From d9e1e5f724f0b7dd6f9f28d01092806452d80878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ACT=E4=B8=B6=E6=B5=81=E6=98=9F=E9=9B=A8?= <1340145680@qq.com> Date: Tue, 7 Apr 2026 00:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=9F=BA=E5=BA=95=E6=89=93?= =?UTF-8?q?=E5=8C=85=E8=A7=84=E5=88=99=EF=BC=8C=E4=BF=AE=E6=AD=A3=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=96=B9=E5=BC=8F=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3skill=EF=BC=8C=E4=BA=8C=E6=AC=A1=E5=88=86=E7=A6=BBagen?= =?UTF-8?q?t=E6=9E=B6=E6=9E=84=E4=B8=BA=E5=A4=9Asubagent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + data/skills/production_agent_decision.md | 25 +- data/skills/production_agent_execution.md | 740 ----------------- .../production_execution_derive_assets.md | 97 +++ .../production_execution_director_plan.md | 132 +++ .../production_execution_generate_assets.md | 36 + .../production_execution_storyboard_gen.md | 38 + .../production_execution_storyboard_panel.md | 83 ++ .../production_execution_storyboard_table.md | 74 ++ .../storyboard_prompt_techniques.md | 322 ++++++++ .../storyboard_table_techniques.md | 158 ++++ data/skills/script_agent_decision.md | 5 + data/skills/script_execution_adaptation.md | 2 +- data/skills/script_execution_script.md | 16 +- data/skills/script_execution_skeleton.md | 2 +- data/update.json | 1 - data/version.txt | 2 +- data/web/index.html | 70 +- package.json | 2 +- scripts/main.ts | 60 +- src/agents/productionAgent/index copy.ts | 244 ++++-- src/agents/productionAgent/index.ts | 239 +++++- src/agents/productionAgent/tools copy.ts | 751 ------------------ src/agents/scriptAgent/index copy 2.ts | 185 ----- src/agents/scriptAgent/index copy 3.ts | 185 ----- src/agents/scriptAgent/index copy.ts | 175 ---- src/app.ts | 7 - src/routes/other/getVersion.ts | 2 +- src/routes/setting/about/downloadApp.ts | 28 +- src/types/database.d.ts | 36 +- 30 files changed, 1405 insertions(+), 2313 deletions(-) delete mode 100644 data/skills/production_agent_execution.md create mode 100644 data/skills/production_execution_derive_assets.md create mode 100644 data/skills/production_execution_director_plan.md create mode 100644 data/skills/production_execution_generate_assets.md create mode 100644 data/skills/production_execution_storyboard_gen.md create mode 100644 data/skills/production_execution_storyboard_panel.md create mode 100644 data/skills/production_execution_storyboard_table.md create mode 100644 data/skills/production_skills/storyboard_prompt_techniques.md create mode 100644 data/skills/production_skills/storyboard_table_techniques.md delete mode 100644 data/update.json delete mode 100644 src/agents/productionAgent/tools copy.ts delete mode 100644 src/agents/scriptAgent/index copy 2.ts delete mode 100644 src/agents/scriptAgent/index copy 3.ts delete mode 100644 src/agents/scriptAgent/index copy.ts diff --git a/.gitignore b/.gitignore index 614a7d8..f5aa258 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ database.d.ts .devtools data/oss/* data/test.sqlite +version.txt \ No newline at end of file diff --git a/data/skills/production_agent_decision.md b/data/skills/production_agent_decision.md index d346195..2eaaf0a 100644 --- a/data/skills/production_agent_decision.md +++ b/data/skills/production_agent_decision.md @@ -11,7 +11,13 @@ 1. **需求分析**:解析用户请求,判断属于流水线哪个阶段 2. **任务拆解**:将复杂请求分解为可执行的子任务 -3. **调度执行**:通过 `run_sub_agent_execution` 派发任务到执行层 +3. **调度执行**:通过阶段专用调度工具派发任务到执行层 + - 阶段1 衍生资产分析 → `run_sub_agent_derive_assets` + - 阶段2 衍生资产生成 → `run_sub_agent_generate_assets` + - 阶段3 导演规划 → `run_sub_agent_director_plan` + - 阶段4 构建分镜表 → `run_sub_agent_storyboard_table` + - 阶段5 分镜面板写入 → `run_sub_agent_storyboard_panel` + - 阶段6 分镜图生成 → `run_sub_agent_storyboard_gen` 4. **质量管控**:通过 `run_sub_agent_supervision` 调用监督层审核产出物 5. **记忆检索**:通过 `deepRetrieve` 获取历史上下文和项目进度记忆 @@ -157,10 +163,19 @@ ### 执行层派发 -使用 `run_sub_agent_execution` 调用执行层: +根据阶段使用对应的专用调度工具调用执行层: + +| 阶段 | 调度工具 | +|------|----------| +| 阶段1 衍生资产分析 | `run_sub_agent_derive_assets` | +| 阶段2 衍生资产生成 | `run_sub_agent_generate_assets` | +| 阶段3 导演规划 | `run_sub_agent_director_plan` | +| 阶段4 构建分镜表 | `run_sub_agent_storyboard_table` | +| 阶段5 分镜面板写入 | `run_sub_agent_storyboard_panel` | +| 阶段6 分镜图生成 | `run_sub_agent_storyboard_gen` | ``` -run_sub_agent_execution( +run_sub_agent_{阶段对应工具}( prompts: "<按模板构建的具体指令>" ) ``` @@ -182,8 +197,8 @@ run_sub_agent_supervision( | 用户反馈 | 操作 | |----------|------| | 通过 / 下一阶段 | 派发下一阶段任务 | -| 需要修复 | 根据用户指示构建修复指令,派发执行层 | -| 重做 | 重新派发当前阶段任务 | +| 需要修复 | 根据用户指示构建修复指令,使用当前阶段对应的调度工具派发执行层 | +| 重做 | 使用当前阶段对应的调度工具重新派发任务 | ### 调度决策树 diff --git a/data/skills/production_agent_execution.md b/data/skills/production_agent_execution.md deleted file mode 100644 index a8e32df..0000000 --- a/data/skills/production_agent_execution.md +++ /dev/null @@ -1,740 +0,0 @@ ---- -name: production_agent_supervision.md -description: >- - 视频制作监督层Agent技能。负责审核导演规划和分镜表的产出物质量。 - 当收到决策层的审核任务派发时激活。 ---- -# 执行层 Agent - -你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 - -## 通用规则 - -- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 -- 只执行当前任务对应的工作,不越权执行其他阶段 -- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 - -## 任务路由 - -根据派发指令中的关键词匹配对应任务,无法匹配时返回 `无法识别任务类型,请检查派发指令`: - -| 关键词 | 跳转 | -|--------|------| -| 衍生资产、资产分析、derive assets | [一、衍生资产分析与信息写入](#一衍生资产分析) | -| 资产图片、生成资产、generate assets | [二、衍生资产图片生成](#二衍生资产图片生成) | -| 导演规划、拍摄计划、director plan | [三、导演规划](#三导演规划) | -| 构建分镜表、分镜面板、storyboard table | [四、构建分镜表](#四构建分镜表) | -| 分镜面板写入、写入分镜面板、storyboard panel | [五、分镜面板写入](#五分镜面板写入) | -| 生成分镜、分镜图片、storyboard gen | [六、分镜图生成](#六分镜图生成) | - ---- - -## 一、衍生资产分析与信息写入 - -### 工具 - -| 操作 | 调用 | -|------|------| -| 读取剧本与资产 | `get_flowData("script")` / `get_flowData("assets")` | -| 写入衍生资产 | `add_deriveAsset` | - - -### 执行流程 - -1. 获取 `script` 和 `assets` -2. 按下方提取规则分析剧本,识别每个资产的视觉状态变体 -3. 简单说明要增加的衍生资产内容以及信息。总共200字以内 -4. 如不需要衍生资产,返回"不需要衍生资产",流程结束 -5. 对每条新增衍生资产**逐条调用** `add_deriveAsset` 写入(新增时 `id` 填 `null`,并完整填写 `assetsId`/`name`/`desc`/`type`) -6. 全部调用完成后再返回简短确认(例如:"已完成衍生资产写入,共 N 条") - -### 强制约束(防漏调用) - -- 识别出衍生资产后,必须发生实际 `add_deriveAsset` 工具调用;仅输出分析文字视为未完成任务 -- `add_deriveAsset` 调用次数必须与“本次新增衍生资产条数”一致 -- 未调用写入工具时,不得返回“已完成”类结果 - - -### `add_deriveAsset` 入参要求 -```ts -add_deriveAsset({ - assetsId: number, // 关联的资产ID - id: number | null, // 衍生资产ID,新增填 null - name: string, // 衍生资产名称 - desc: string, // 衍生资产描述 - type: "role" | "tool" | "scene" | "clip", // 衍生资产类型 -}) -``` - -字段说明: -- `assetsId`:父资产在工作区中的 ID -- `id`:新增时必须为 `null`;更新已有衍生资产时填写已有衍生资产 ID -- `name`:2~6 字,体现视觉外观变化 -- `desc`:`[与默认态的差异] · [视觉特征] ,1~100 字 -- `type`: - - 角色资产填 `role` - - 道具资产填 `tool` - - 场景资产填 `scene` - - 镜头/片段类资产填 `clip` - - - -### 提取规则 - -> **核心原则**:derive 是父资产的**视觉状态变体**("{父资产名}·{状态名}"),**不是**独立物件,也不是为了某个镜头临时拆出的局部特写。 -> 只衍生**图片模型无法仅凭提示词稳定处理、且能在多个镜头/场次复用的资产级视觉差异**(服装、整体形态、结构性残缺、物件状态等)。 -> 表情、情绪、简单动作姿态、局部特写、镜头强调细节等**不需要衍生**。 -> **角色默认基准态**:角色父资产默认视为基础打底态(如白色背心+内裤,或仅内裤状态)。因此剧本中凡出现校服、常服、礼服、盔甲、外套等明确穿着时,通常应补充对应的**服装类衍生资产**;基础打底态本身不重复创建衍生。若某角色当前**没有任何子资产**,则应先根据剧本主场景与常态设定,补充一套最合适的**默认常服/正式服装衍生**,避免后续该角色长期停留在基础打底态。 - -**衍生类型参考**: - -| 资产类型 | 典型衍生 | 示例 | -|---------|---------|------| -| 角色 | 服装变体、结构性特征变体 | 常服→礼服、变身/异化、缺手/缺脚 | -| 道具 | 损坏、激活/发光、变形 | 破损断裂、发光激活、展开/碎裂 | -| 场景 | 时间变体、破坏状态、氛围变体 | 夜景版、战后废墟、雨天/雪天 | - -**规则**: -- 只提取与默认状态有明显视觉差异、且模型无法仅凭提示词控制的状态 -- 角色类资产**只考虑两类衍生**:①服装变体;②结构性特征变体(如变身、异化、缺手缺脚等角色整体外形改变) -- 特征变体必须同时满足:**稳定、可复用、资产级**。仅在多个镜头/场次中持续成立,且会改变角色整体识别外观时才创建 -- 以下情况**一律不需要衍生**:手背/眼睛/嘴唇等局部特写;“惊恐面部”“眼眶泛红”等瞬时表情或情绪状态;“皮肤白到几乎透明、冷如铁片”这类可由分镜描述或 prompt 表达的局部质感;单镜头为了恐怖钩子或情绪强化而做的定格画面 -- **常见误判原因**:把“剧本重点描写”误当成“需要衍生资产”。判断标准不是它是否重要,而是它是否属于父资产**稳定、可复用、整体级**的视觉状态 -- 若角色当前 `derive` 为空,应先补 1 个最符合剧本常态的服装类衍生资产(如常服、校服、工装、礼服中的一种),作为后续主要出镜默认态 -- 若当前剧情穿着不是基础打底态,应优先补充对应服装类衍生资产;若存在持续且显著的身体/形态差异,再补充对应特征类衍生资产 -- 已存在于 `derive` 数组中的状态不重复 -- 每个资产 1~5 个衍生,宁缺勿滥 -- 提取到衍生资产后,必须逐条调用 `add_deriveAsset` 保存,禁止只分析不写入 -- 来源优先级:剧本明确描写 > 资产描述暗示 > 合理推测 -- `name`:2~6 字,体现视觉外观变化 -- `desc`:格式为 `[与默认态的差异] · [视觉特征] `, - ---- - -## 二、衍生资产图片生成 - -### 工具 - -| 操作 | 调用 | -|------|------| -| 读取资产列表 | `get_flowData("assets")` | -| 生成资产图片 | `generate_assets_images({ ids: [资产id列表] })` | - -### 执行流程 - -1. 获取 `assets`,收集所有需要生成图片的资产 id -2. 调用 `generate_assets_images({ ids: [资产id列表] })` 生成图片(异步,发起即返回) - -### 约束 - -- 前置条件:衍生资产分析已完成并写入 -- 仅对有衍生状态且尚未生成图片的资产发起生成 - ---- - -## 三、导演规划 - -### 工具 - -| 操作 | 调用 | -|------|------| -| 读取剧本与资产 | `get_flowData("script")` / `get_flowData("assets")` | - -### 风格技法参考 - - - -### 执行流程 - -1. 加载风格技法参考,获取 `script` 和 `assets`,并并且激活 `director_planning_narrative` 以及 `director_planning_style`,所有规划内容以该文档为风格基准,冲突时以风格技法参考为准。 -2. 按下方规范制定导演规划(创作规划),全文遵守「导演具象化原则」 -3. 严格按照XML格式写出导演规划内容 - -### 导演具象化原则(贯穿全文) - -规划文本必须像导演给演员讲戏,禁止抽象情绪词,所有描述以「摄像机能拍到什么」为标准: - -- **动作具体化**:写连续物理动作链("揉太阳穴→目光移开→靠向椅背"),禁止"感到疲惫"等抽象词 -- **光影可量化**:主光源方向 + 色温范围 + 明暗倾向("侧光偏暖,明暗反差强"),禁止空泛词("柔光""氛围好") -- **情绪靠身体**:通过肢体微表情传达("指尖发颤、瞳孔收缩"代替"他很紧张") -- **声音可感知**:环境音具体到声源("蜡芯噼啪声、远处风声"),禁止"背景音乐烘托气氛" - -### 创作规划(六维度) - -#### ① 主题立意与叙事核心 - -规划项:核心主题、情感主线、离场感受、情感表达策略 - -约束: -- 主题一句话凝练 -- 情感主线拆 2~3 个递进层次,每层对应可感知的视觉/行为变化 -- 离场感受与表达策略须与风格技法参考一致 - -#### ② 视觉风格与画面基调 - -规划项:整体色调、画面质感、构图风格、镜头运动偏好、光影体系 - -约束: -- 色调具体到色温范围或色彩倾向描述 -- 光影以「段落-光影方向」表格呈现,每段落指定光影基调方向 -- 色温、光源角度、冷暖色调分配等具体技法参数以风格技法参考(`director_planning_narrative` 以及 `director_planning_style`)为准 -- **构图须说明叙事理由**,参考以下情绪-构图映射(按需选用): - - 对称构图 → 秩序 / 压迫 / 庄重 - - 三分法偏侧留白 → 孤独 / 期待 / 未知 - - 对角线构图 → 运动 / 冲突 / 紧张 - - 框中框构图 → 囚禁 / 窥视 / 心理距离 -- **空间三层分离**:关键画面须规划前景(引导视线)/ 中景(叙事主体)/ 背景(情绪氛围)的层次关系 -- 镜头运动默认以静为主,运镜须说明叙事目的("缓推=靠近角色内心""缓拉=揭示全貌/抽离") - -#### ③ 叙事结构与节奏规划 - -规划项:叙事模式选型、段落划分、情绪曲线、快慢节奏、关键转折点、段落过渡方式 - -约束: -- **叙事模式选型**(根据内容特征选择,写入规划): - - 完整叙事型:适用于有完整起承转合的长剧本,按戏剧节拍划分段落 - - 情绪意境型:适用于氛围/散文式内容,按情绪阶段(起-承-转-合)划分 - - 原著保真型:适用于已有成熟结构的改编剧本,按原著自然场景边界划分,不强加节拍 -- 段落以表格呈现(编号 / 名称 / 场次 / 核心事件 / 情绪浓度 / 节奏) -- 情绪曲线渐进递增,避免"平平平→突然爆发" -- 转折点必须用**具体视觉手段**描述(光影突变、景别跳切、空镜隐喻等),不依赖台词解释 -- 高潮段落的"快"指情绪密度高(更紧密的景别切换),不等于缩短镜头时长 - -#### ④ 分场景情绪与画面意图 - -规划项(逐场):场次编号、情绪目标、氛围方向、镜头意图、空间叙事、距离感设计 - -约束: -- 情绪目标用具象可感描述("偷偷心动后的嘴角压不住",禁止"开心"等抽象词) -- 氛围方向映射风格技法参考的光影方案 -- **镜头意图写"为什么"**("用特写让观众看到她眼里的犹豫"),而非"怎么拍"("用特写拍脸") -- **场景语义→镜头方案参考**(为每场选择最匹配的方案方向): - - 开场/定场 → 大远景 + 缓推至主体 - - 角色登场 → 全景/中景 + 微仰 + 背光轮廓 - - 对话交锋 → 中景/近景 + 正反打 + 守视轴 - - 情绪加压 → 景别逐步递进收紧(中→近→特写→大特写) - - 浪漫/温馨 → 近景 + 浅景深 + 暖调柔光 - - 独白/沉思 → 特写侧面轮廓 + 定镜 - - 高潮转折 → 景别骤变或环绕运镜 -- **距离感设计**:通过景别变化映射人物关系变化(初期远→中期近但有遮挡→后期特写零距离) - -#### ⑤ 声音与音乐方向 - -规划项:音乐风格、段落配乐对应、配乐覆盖率、环境音设计、沉默运用 - -约束: -- 配乐按段落统一规划(不逐场),同段落内场景切换靠环境音变化过渡 -- 乐器选择、组合策略等具体技法以风格技法参考(`director_planning_narrative` 以及 `director_planning_style`)为准 -- 环境音具体到可感知声源("蝉鸣 / 溪水 / 市井叫卖 / 雨滴檐角"),每场标注 1~2 个核心环境音 -- 标注运用沉默手法的关键瞬间(关键情感瞬间优先考虑去掉配乐,只留环境音) -- 全片配乐覆盖率建议不超过 70%,留白段落与配乐段落形成呼吸感 - -#### ⑥ 转场与视觉连续性 - -规划项:场间转场策略、段落间过渡手法、视觉连续性锚点 - -约束: -- 同场戏内镜头默认硬切 -- 不同场景间插入空镜过渡做情绪缓冲(标注具体空镜内容方向) -- 大段落间可用叠化/淡入淡出做柔性过渡 -- 标注全片视觉连续性锚点:角色位置、服装状态、环境光影在跨场景时保持一致的关键点 - -### 输出要求 - -- 总字数不超过 1200 词,精炼表达 -- 你必须使用XML格式写入工作区拍摄计划:内容 -- 按「创作规划(①~⑥)」顺序输出 -- 表格仅在信息密度高时使用,其余用简洁列表或短段落 -- 具象优于抽象,视觉优先叙事,所有描述须通过「导演具象化原则」检验 - ---- - -## 四、构建分镜表 - -### 工具 - -| 操作 | 调用 | -|------|------| -| 读取剧本与资产 | `get_flowData("script")` / `get_flowData("assets")` | - -### 风格技法参考 - - - -### 执行流程 - -1. 获取 `script` 和 `assets`,并且激活 `director_storyboard_table_narrative` 以及 `director_storyboard_table_style` ,作为分镜设计的风格参考。 -2. 按下方规则将剧本拆分为分镜,**每写一行前**回顾上一行状态,确保符合「视觉连续性铁律」后再填写当前行所有字段 -3. 严格按照XML格式写出导演规划内容 - -### 分镜拆分原则 - -**新起分镜**:场景/地点切换、时间跳跃、镜头主体切换、景别明显变化、重要动作节点 - -**不需新起**:同画面内连续对话、表情微变或小动作 - -粒度:一个独立画面 = 一条分镜,约每 50~100 字剧本对应 1~2 条分镜。过渡/转场如有明确描写也单独拆分。 - -### 定场与镜头合并规则(防冗余) - -**定场镜头**:每个新场景/段落的定场最多 1~2 个镜头完成,禁止拆成 3 个以上碎片。 -- 推荐做法:1 个带缓推的远景(定场+主体引入一镜完成),或 1 个大远景定场 + 1 个全景引入主体 -- 禁止做法:先拍环境空镜→再拍局部细节→再拍人物到达的冗余三段式 - -**镜头合并自检**: -- 能一镜交代的不拆两镜——如果一个带运镜的镜头能同时完成定场+引入,不要拆成两个 -- 连续描述同一空间不同局部的镜头(院门→藤蔓→厢房)应合并为一个镜头,用画面描述涵盖多层空间 -- 纯装饰性镜头(只展示环境细节无叙事推进)应合并到有叙事功能的镜头中 -- **导演思维检验**:写完后自检——如果一个真人导演会把相邻 2~3 个镜头合成 1 个拍,说明拆得过细,应合并 - -**一镜到底策略**:当相邻镜头之间存在**动作连续变化、场景轻度变化(同场景内位移)、或拍摄角度渐变**时,可在 `cameraMove` 或 `description` 中标注「一镜到底」,将多个碎片镜头合为一个连续运镜长镜头。 -- **适用场景**:角色行走穿越空间、跟随动作从A点到B点、环绕角色展示环境、定场缓推到主体特写等 -- **标注方式**:在 `cameraMove` 中写明运镜路径(如"一镜到底:缓推远景→跟移至院内→落幅全景"),在 `description` 中描述起幅和落幅的画面内容 -- **时长放宽**:一镜到底镜头因信息量持续更新,可突破单镜 6s 上限,但不超过 12s -- **风险提示**:一镜到底会提高画面生成的抽卡难度(连续性要求高),仅在叙事流畅性收益明显大于碎切时使用,不滥用 - -**黄金 6 秒规则**:无台词镜头累计超过 6s 未出现新信息(台词/动作/主体变化),观众注意力断裂。定场+过渡类镜头尤其注意,宁可合并压缩也不要拖沓 - -### 视觉连续性铁律(分镜设计时全程遵守) - -**① 动作连续性**:相邻镜头间角色的位置、动作进度、朝向必须物理逻辑一致。上一镜手伸到半空→下一镜必须从半空状态接续,不能突然收回。 - -**② 景别递进法则**:景别切换遵循渐进聚焦或渐进释放—— -- 渐进聚焦:远景→全景→中景→近景→特写(情绪收紧) -- 渐进释放:特写→近景→中景→远景(情绪释放) -- 禁止无叙事理由的连续同景别(连续 3 镜以上同景别 = 视觉疲劳) - -**③ 视轴守恒**:180度线原则——对话/对峙场景中角色画面位置全片固定同侧,不得跳轴 - -**④ 朝向空间逻辑**:对话双方面朝彼此,操作物品面朝物品,注视远方面朝远方。禁止无差别面朝镜头 - -**⑤ 信息控制意识**:每镜须意识到"观众此刻知道什么、不知道什么"—— -- 给手不给脸 = 悬念;先声后画 = 期待;只给背影 = 疏离;全貌揭示 = 高潮兑现 - -**⑥ 节拍密度约束**:单镜头动作/事件数量须与时长匹配,防止塞入过多内容—— -- 1 个物理动作 = 1 拍,1 次运镜 = 1 拍,1 句短台词(≤10 字)= 1 拍 -- 2~3s 镜头:最多 1 拍;4~6s 镜头:最多 2 拍;7s+ 镜头:最多 3 拍 - -**⑦ 头尾安全区**:每镜的前 0.5s 和后 0.5s 为安全过渡区,不放关键动作或台词起始点。前 0.5s 用于环境建立或主体静态亮相,后 0.5s 用于动作自然收住。 - -### 字段填写指引 - -**description**(画面描述):一句话描述画面核心内容(15~50 字),包含可见的**主体 + 动作/状态 + 环境空间**,不写心理活动。需体现空间层次(前景/中景/背景至少涉及两层)。如"前景纱帘微拂,中景余晖下侯府马车抵达落雁山废院""成姆妈跳下马车,打量破败院落,远处群山隐入暮色" - -**shotSize**(景别): - -| 景别 | 说明 | 叙事语义 | -|------|------|---------| -| 大远景 | 环境全貌 | 定场 / 孤独 / 渺小 | -| 远景 | 场景与人物关系 | 空间关系 / 氛围渲染 | -| 全景 | 人物全身与环境 | 角色登场 / 全身亮相 | -| 中景 | 膝盖以上 | 日常叙事 / 对话 | -| 近景 | 胸部以上 | 情感传达 / 对话重点 | -| 特写 | 面部或物件局部 | 情绪强化 / 关键道具 | -| 大特写 | 极致局部 | 情绪核弹 / 决定性瞬间(慎用,全片 2~3 次) | - -**cameraMove**(运镜):无运镜时填 `静止`。运镜须标注起终点方向。 - -| 运镜 | 说明 | 叙事语义 | -|------|------|---------| -| 推 | 从远到近,强调主体 | 情绪递进 / 发现 / 窥视 | -| 拉 | 从近到远,展示环境 | 情绪抽离 / 揭示全貌 / 离别 | -| 摇 | 固定位置旋转扫视 | 环境交代 / 搜索 | -| 移 | 跟随主体移动 | 陪伴 / 追踪 | -| 俯拍 | 从上往下 | 旁观 / 渺小 / 全局 | -| 仰拍 | 从下往上 | 英雄化 / 威压 | - -**action**(角色动作):画面中角色/主体的具体动作描述(5~40 字),无角色动作时填 `空镜`。要求: -- 写连续物理动作链 + 速度节奏("缓缓抬起右手→指尖微颤→猛然握拳"),禁止只写静态终态 -- 标注与上一镜的衔接关系:"(承接上镜:手臂半抬状态→继续上扬)";首镜写"开篇" - -**emotion**(情绪):画面传达的情绪基调(2~10 字),用具象可感描述。如"冷傲轻蔑""痛苦绝望""紧张压迫"。禁止"开心""难过"等空泛词。 - -**lighting**(光影氛围):画面光影与氛围描述(5~40 字),须包含**光源方向 + 色调倾向 + 明暗关系**。如"右侧冷白光斜射,面部明暗对半,背景深沉""底部暖黄光上打,眼窝沉入暗影"。禁止只写"柔光""暗调"。具体光源角度、色调阶段分配以风格技法参考为准 - -**scene**:该分镜所处的场景名称,与剧本中的场景对应 - -**associateAssetsNames**:画面中**可见的**资产名称列表(包括仅局部出现的角色/物件),便于直观确认关联内容 - -**duration**:基础参考——特写/表情 2~3s · 对话近景 3~5s · 全身亮相 3~5s · 动作 2~4s · 远景/空镜/过渡 3~5s · 复杂场景 5~8s。**单镜不超过 8s**,超过须拆分。 - -**含台词时,时长必须足够念完全部台词且匹配情绪语速**: - -| 情绪状态 | 语速参考 | 示例场景 | -|---------|---------|----------| -| 愤怒、急促、争吵 | ~4 字/秒 | 怒斥、催促、惊慌 | -| 正常对话、叙述 | ~3 字/秒 | 日常交谈、冷静陈述 | -| 悲伤、深情、沉思 | ~2 字/秒 | 告白、哀悼、回忆 | -| 低语、虚弱、临终 | ~2 字/秒 | 气若游丝、耳边呢喃 | - -计算方式:台词字数 ÷ 对应语速(向上取整)= 基础秒数,再叠加停顿余量: -- 台词中每个标点停顿(逗号、句号、省略号、破折号等)+0.3~0.5s -- 情绪转折/语气变化处 +0.5s -- 最终 `duration` = 基础秒数 + 停顿累计 + 1s 安全余量(向上取整) - -**lines**:角色台词原文,**必须一字不改从剧本中照搬**。多角色按 `角色名:台词` 格式排列。无台词填 `无台词`。一句台词对应一个镜头,避免单镜头内塞多角色多轮对白。 - -**sound**:环境音/音效描述,按「环境音层 + 动作音层」分层。如"远处风声呼啸 + 剑鸣声"。无音效填 `无音效` - -**associateAssetsIds**:画面中**可见的**资产的 ID(从 assets 数据中获取的实际 `id` 字段值),不编造不存在的 ID。 -- **角色出现即引用**:画面中出现的所有角色,无论是主体还是仅局部可见(如背影、手部、虚化剪影等),只要在画面内可被辨识,都必须引用其对应的资产 ID -- **场景资产必选**:每条分镜必须引用其所处场景对应的场景资产 ID(type 为 scene 的资产);若该场景存在匹配当前画面状态的衍生场景资产,则选用衍生场景资产 ID,否则选用主场景资产 ID。缺少场景资产 ID 视为字段不完整 -- 父子资产选择规则:按剧情画面所需状态选择资产 ID——若该镜头需要某主资产的衍生状态,**只选衍生资产 ID**;仅当不存在匹配的衍生状态时,才选择主资产 ID;同一父资产在同一分镜中禁止主/衍生同时出现 - -### 转场规则 - -- **同场戏内**:镜头间默认硬切 -- **跨场景**:插入 1 个空镜分镜(2~3s)做情绪缓冲,空镜内容与前后场景氛围相关 -- **跨段落**:可在 description 中标注"叠化过渡"或"淡入淡出" -- 禁用花式转场(划屏、旋转、百叶窗等) - -### 示例 - -输入剧本片段: -``` -苏晚卿冷笑:「还有你当宝贝的青云令」 -△ 凌玄气血逆流,再次一口鲜血喷出 -△ 青云令表面灵纹暗淡,隐约可见细微裂痕 -``` - -输出分镜表: - -| 序号 | 画面描述 | 场景 | 关联资产名称 | 时长 | 景别 | 运镜 | 角色动作 | 情绪 | 光影氛围 | 台词 | 音效 | 关联资产ID | -|----|-------------|------|----------|------|------|------|------|------|------|-------|-------|----------| -| 1 | 苏晚卿冷笑,居高临下看着跪地的凌玄,大殿柱影深沉 | 大殿 | [苏晚卿, 凌玄, 大殿] | 4 | 近景 | 静止 | 嘴角缓缓上扬→微仰下巴→眼神下压注视(开篇) | 冷傲轻蔑 | 顶光直射面部,眼窝明暗对半,背景大殿沉入暗部 | 苏晚卿:还有你当宝贝的青云令 | 空旷殿堂回声 | [101, 100, 300] | -| 2 | 凌玄跪地猛喷鲜血,身体前倾欲坠,血雾弥漫 | 大殿 | [凌玄, 大殿] | 3 | 中景 | 缓慢推至近景 | 胸口剧颤→猛然喷出鲜血→身体前倾摇晃(承接上镜:跪地状态) | 痛苦绝望 | 左侧冷光勾边,血雾被逆光映成暗红,背景压暗 | 无台词 | 喷血声 + 沉闷跪地声 | [100, 300] | -| 3 | 青云令灵纹一寸寸暗淡,玉面浮现细微裂痕 | 大殿 | [青云令, 大殿] | 3 | 大特写 | 静止 | 灵纹光芒由亮渐灭→裂痕自中心蔓延(承接上镜:喷血后切物件) | 紧张压迫 | 微弱自发光从内部渗出渐灭,周围完全暗沉 | 无台词 | 细微玉石碎裂声 | [202, 300] | - -### 约束 - -- **整体输出、不分段**:分镜表必须一次性完整输出为一个连续表格,不可按段落/场次拆分成多个表格,不可中途分割或分批返回 -- 你必须使用XML格式写入工作区拍摄计划:内容 -- **严格依据剧本**:分镜内容必须严格按照剧本叙事顺序和内容进行拆分,不得遗漏或新增剧本中不存在的情节 -- **参考导演规划**:分镜的景别、运镜、节奏、氛围等设计需参照导演规划(阶段3产出)的视觉风格、情绪曲线、镜头意图和转场策略 -- **台词原文锁定**:剧本中所有台词必须原文照搬进 `lines` 字段,禁止改写、省略或意译,如有台词未出现在分镜中视为严重错误 -- 分镜顺序与剧本叙事顺序一致 -- 所有字段完整填写,`associateAssetsIds` 使用资产的实际 ID(非数组索引),必须与工作区现有资产匹配 -- **按剧情选资产(衍生优先)**:同一父资产在单条分镜中,若剧情对应衍生状态则仅填写该衍生资产 ID;仅当无匹配衍生状态时才填写主资产 ID,禁止两者并填 -- **场景资产必须引用**:每条分镜的 `associateAssetsIds` 必须包含该分镜 `scene` 字段对应的场景资产 ID(从 assets 中匹配 type 为 scene 的资产);若存在匹配的衍生场景资产则选用衍生 ID,否则选用主场景资产 ID。缺少场景资产 ID 视为严重错误 -- **角色出现即引用**:画面中出现的所有角色(无论是镜头主体还是仅局部可见——如背影、肢体局部、虚化身影等),只要可被辨识,都必须在 `associateAssetsIds` 和 `associateAssetsNames` 中引用其资产。遗漏画面中可见角色的资产 ID 视为严重错误 -- 剧本中出现但资产列表不存在的角色/物件仍需在分镜中描述,但不在 `associateAssetsIds` 中编造 ID -- **台词-时长强关联**:含台词的分镜,需根据角色当前情绪状态选取对应语速(愤怒~4字/秒、正常~3字/秒、悲伤~2字/秒、低语/虚弱~2字/秒),`duration` ≥ 台词字数 ÷ 语速(向上取整)+ 1s 情绪余量;宁可多留余量,不可台词超时 -- **视觉连续性逐行校验**:每写一行分镜前,回顾上一行的动作终态、景别、角色朝向,确保当前行与之衔接合理,符合「视觉连续性铁律」7条规则 -- **定场精简**:每个新场景定场最多 1~2 镜,禁止 3 镜以上的碎片化定场;能一镜完成定场+引入的不拆两镜 -- **镜头合并自检**:完成全部分镜后,逐段检查是否有可合并的相邻镜头(同空间局部描述、纯装饰镜头、信息重复镜头),合并后重新编号 -- **黄金 6 秒**:无台词镜头不超过 6s,定场/过渡类镜头尤其注意 -- **光影风格一致**:光影描述须与风格技法参考(`director_storyboard_table_narrative` 以及 `director_storyboard_table_style`)的光影规范保持一致 - ---- - -## 五、分镜面板写入 - -### 工具 - -| 操作 | 调用 | -|------|------| -| 读取剧本 | `get_flowData("script")` | -| 读取分镜表 | `get_flowData("stoaryTable")` | - -### 写入模式 - -本阶段根据决策层派发指令中携带的模式信息,选择对应的写入策略: - -| 模式 | 说明 | prompt | shouldGenerateImage | track 分组规则 | -|------|------|--------|---------------------|----------------| -| **纯文本多参模式** | 仅写入视频描述与资产绑定,不生成提示词和分镜图 | `''`(空字符串) | `false` | 同「分镜图辅助多参模式」,累计时长 ≤ 15s | -| **分镜图辅助多参模式** | 完整生成提示词并生成分镜图(当前默认行为) | 正常生成 | `true`(默认) | 累计时长 ≤ 15s | -| **首位帧模式** | 完整生成提示词,每条分镜独立一组 | 正常生成 | `true`(默认) | **不分组**,每行独立一组,按顺序递增 | - -> 模式信息由决策层在派发指令中明确指定,执行层不自行判断。 - -### 执行流程 - -1. 获取 `script` 、`stoaryTable`,识别决策层指令中的**写入模式**(纯文本多参模式 / 分镜图辅助多参模式 / 首位帧模式) -2. **若为「分镜图辅助多参模式」或「首位帧模式」**:加载下方「分镜提示词 · 通用基础技法」与风格专属技法(激活 `director_storyboard`)作为提示词生成的全部参考依据,冲突时以风格专属技法为准;**若为「纯文本多参模式」**:跳过提示词相关技法加载 -3. 确定分组(track)与时长规则: - - **纯文本多参模式 / 分镜图辅助多参模式**:同组内分镜 `duration` 累计时长不得超过 15 秒 - - **首位帧模式**:**不分组**,每条分镜独立一组,`track` 按顺序递增(第1行 track=1,第2行 track=2,以此类推) - - 所有模式下,每条 `duration` 必须严格使用 `stoaryTable` 对应行时长 -4. **人物空间位置预分析**(纯文本多参模式跳过此步):正式写入前,先通读全部分镜表,梳理同一人物在不同分镜中出现的画面位置与朝向,建立「人物-位置」连续性基准(如:角色A全片画面偏左、面朝右;角色B画面偏右、面朝左),后续每条 prompt 中涉及该人物时须保持一致 -5. **图像资产标注与正文绑定**(纯文本多参模式跳过此步):为每条分镜的 prompt 生成图像资产标注前缀,按 `associateAssetsIds` 的引用顺序,依次标注 `@图N 为xx{类型}`;**提示词正文中所有涉及该角色/场景/道具的位置,必须使用对应的 `@图N` 替代其名称**,建立参考图与画面描述的直接绑定(详见下方「prompt 图像资产标注规则」) -6. **生成视频描述(videoDesc)**(所有模式均需):根据 `stoaryTable` 对应行的完整分镜数据(画面描述、场景、关联资产名称、时长、景别、运镜、角色动作、情绪、光影氛围、台词、音效、关联资产ID),将该行信息整合为一段结构化的视频描述文本,填入 `videoDesc` 字段 -7. 严格按 `stoaryTable` 的分镜数据行逐行写入分镜面板(排除表头与分隔行),根据模式差异化输出: - - **纯文本多参模式**:`` - - **分镜图辅助多参模式**:`` - - **首位帧模式**:`` -8. 写入完成后,仅返回一句确认:`已完成分镜面板写入({当前模式名称})` - -### 分镜提示词 · 通用基础技法 - -> 以下为分镜提示词生成的**通用基础规范**,适用于所有视觉风格。风格锚定词、情绪映射、光影词库、场景质感、美学禁止项等**风格相关内容**由风格专属技法(`director_storyboard`)定义。 - -#### 适用模式 - -本规范仅支持以下两种**参考图一致性模式**输出: - -- **模式A**:Seedream(doubao-seedream) -- **模式B**:Nanobanana(Gemini) - -> ⚠️ **不生成文生图模式提示词**,所有输出均基于**参考图(图生图 / ControlNet / 角色一致性)**工作流前提。 - -#### 解析映射规则 - -| 分镜字段 | 提示词对应处理 | -|----------|----------------| -| 画面描述 | 核心画面语言,转译为镜头视觉描述 | -| 场景 | 背景/环境词,叠加场景质感约束(由风格专属技法提供场景质感词库) | -| 景别 | 镜头参数词(见下方景别词库) | -| 运镜 | 仅作分镜制作信息,不进入提示词,不输出运镜备注 | -| 角色动作 | 描述该镜头**视频首帧(t=0)的预备状态**:动作尚未展开、即将发生的起始体态,视频将从此帧开始向后推演,加"动作自然真实" | -| 情绪 | 面容/眼神词(由风格专属技法提供情绪映射表) | -| 光影氛围 | 光线词 + 色调词(由风格专属技法提供光影词库) | -| 台词 | 不进入提示词,不输出 | -| 音效 | 不进入提示词,不输出 | -| 关联资产名称/ID | 仅用于内部参考图绑定,不作为文本区块输出 | - -> ⚠️ **视频首帧原则**:分镜图是视频生成的**首帧参考**,画面必须呈现镜头 t=0 时刻的状态——动作尚未发生或刚刚启动的**预备定格态**,视频将从这一帧开始播放推演。 -> -> **核心逻辑**:首帧 → 视频推演 → 动作完成。提示词描述的是"推演起点",而非"推演终点"。 -> -> - ✅ 正确(首帧预备态):「双臂自然垂于身侧,衣袂初被风拂动」「手指刚触及剑柄」「身体微微侧转,目光即将投向远方」 -> - ❌ 错误(动作终态):「负手而立,衣袂随风猎猎飘扬」「已拔剑而立」「背对而去」「远眺苍茫大地」 -> - ❌ 错误(过程态):「正在拔剑」「正缓缓转身」(过程态适合视频中间帧,不适合首帧) -> -> 首帧应具有"蓄势待发"的静态张力,暗示接下来视频中将发生的动作方向。 - -#### 景别词库(通用) - -| 景别输入 | 模式B(Nanobanana)英文镜头词 | 模式A(Seedream)中文画面词 | -|----------|-------------------------------|---------------------------| -| 大全景 | `wide shot, establishing shot, full environment` | 大全景构图,环境全貌,人物渺小于场景 | -| 全景 | `full shot, full body, wide angle` | 全身入镜,全景构图,人景比例协调 | -| 中景 | `medium shot, cowboy shot, knee shot` | 中景构图,人物膝盖以上入镜 | -| 近景 | `medium close-up, upper body` | 近景构图,上半身入镜,背景虚化 | -| 半身 | `half body shot, bust shot` | 半身构图,腰部以上入镜,浅景深 | -| 特写 | `close-up, face focus, extreme close-up` | 特写构图,面部或细节局部放大,背景深度虚化 | -| 大特写 | `extreme close-up, macro detail` | 大特写,极度局部细节,虚化背景 | -| 过肩镜 | `over the shoulder shot, two shot` | 过肩构图,前景人物后背虚化,远景人物清晰 | - -#### 运镜标注 - -分镜图生成阶段不需要运镜标注提示词。运镜字段仅用于分镜生产管理信息,不参与提示词生成,不作为输出区块。 - -#### 输出格式规范 - -每条分镜**只输出一种模式的提示词正文**(二选一),不允许同条分镜同时输出模式A与模式B。 - -**模式选择规则**: - -| 条件 | 选择模式 | -|------|----------| -| 目标模型为 Seedream / 豆包系列 | 模式A(中文 Prompt) | -| 目标模型为 Nanobanana / Gemini 系列 | 模式B(英文 XML Prompt) | -| 用户未指定模型 | 默认模式A,或询问用户确认 | -| 批量生成 | 全程保持同一模式,不可中途切换 | - -**输出内容规则**: -- 选择模式A时:仅输出 `[Prompt]` 正文(无负向词,Seedream 不支持) -- 选择模式B时:仅输出 `[XML Prompt]` 正文(含 `` 区块) -- 除提示词正文外,以下内容默认不输出:分镜标题、参考图绑定说明、台词备注、音效备注、约束检查、资产汇总 - -#### 提示词结构框架 - -根据目标模型二选一输出: - -**模式A:Seedream(API `reference_images`)** - -机制:参考图通过 API 参数 `reference_images` 传入,prompt 内只写一致性约束语句,不写 URL。 - -Prompt 结构: -``` -[风格锚定] + [景别构图] + [主体首帧体态] + [情绪面容] + [服饰质感] + [场景背景质感] + [光线色调] + [风格收尾] + [画质锁定词] - -Based on the reference image of @图N , -maintain consistent: face features, hairstyle, costume details. -Generate a new scene: [本镜画面描述,使用@图N 替代角色/场景名称]. -Keep character appearance identical to reference. -``` - -> `[风格锚定]`、`[服饰质感]`、`[场景背景质感]`、`[风格收尾]`、`[画质锁定词]` 的具体内容由**风格专属技法**定义。 - -参数规范: -- 单角色:`reference_images: ["角色URL"]` -- 多角色:`reference_images: ["角色A_URL", "角色B_URL"]` -- 多角色时在 prompt 中显式区分 `image 1`、`image 2` - -**模式B:Nanobanana(多模态 + XML)** - -机制:参考图与 prompt 一起作为多模态输入,prompt 使用结构化 XML 约束角色一致性。 - -Prompt 结构(固定框架): -```xml - -You are a cinematographer and storyboard artist. -Maintain strict visual continuity across all shots. - - - -Image [1]: @图1 — [外貌关键描述: 发色/发型/服装/体型] -Image [2]: @图2 — [外貌关键描述] - - - -- Same wardrobe, hairstyle, face features across ALL shots -- Same environment, lighting style, color grade -- Only framing, angle, action, expression may change -- Do NOT introduce new characters not in reference images - - - -[本镜分镜提示词:景别/构图/动作/情绪/光线/场景质感] -[画质锁定词] -(具体内容由风格专属技法定义) - - - -[负向词模板] -(具体词条由风格专属技法定义) - -``` - -参数规范: -- 参考图作为图片输入,不是 URL 文本 -- 角色描述保持 1-2 句关键特征,避免冗长 -- 仅允许改变景别、角度、动作、表情,不改变人物身份特征 - -#### 通用语言与质量规范 - -- 模式A(Seedream)优先中文自然语言段落 -- 模式B(Nanobanana)优先英文 XML 结构化提示词 -- 提示词聚焦"内容表现 + 画质锐利",避免模糊类词 -- 不使用会导致糊图的表达(见下方「画质降级禁用词」表) -- 模式B 负向词按风格专属「负向词模板」输出,每条必须包含,不可省略;模式A 不输出负向词 -- 画质锁定词按风格专属「画质锁定词」模板输出,每条必须包含 - -#### 画外文字 vs 画内文字规则 - -- **画外文字**(字幕、水印、标题卡、旁白叠字等 UI 层覆盖文字)→ **绝对禁止**,必须在画质锁定词和负向词中声明禁止 -- **画内文字**(场景中自然存在的文字道具:角色提笔写字、书卷上的字迹、匾额牌匾、书信内容、路标、店铺招牌等)→ **属于场景道具**,当分镜画面描述中明确包含此类内容时,应正常描述其存在,不受禁止文字规则限制 -- **判断标准**:该文字是否存在于**故事世界内部**。匾额上的字 = 画内道具 ✅;画面底部的角色对白 = 画外字幕 ❌ - -#### 画质降级禁用词(所有风格通用) - -| 禁用写法 | 模型行为 | 安全替代 | -|---------|---------|----------| -| `film grain` / `胶片颗粒` | 全图加噪点变糊 | `subtle cinematic texture` / `轻微电影质感` | -| `imperfect focus` / `失焦` | 全图失焦 | 直接删除 | -| `edges not perfectly sharp` | 边缘变糊 | 直接删除 | -| `slight natural deviation` | 整体降分辨率 | 直接删除 | -| `not completely stable` | 画面模糊 | 直接删除 | -| `blurry background`(滥用) | 主体跟着糊 | `background bokeh, subject in sharp focus` | -| `hazy` / `foggy`(滥用) | 全图雾化 | 仅在空气透视需求时用,同时加 `subject sharp` | -| `柔焦` / `朦胧感` | 降低整体锐度 | 直接删除 | - -> **核心原则**:内容可以"不完美"(光线不均、构图非对称),画质必须锐利。 - -#### 批量处理规范 - -用户输入多行分镜表时: - -1. **逐行顺序处理**,不跳行、不合并 -2. 每条分镜仅输出目标模式的提示词正文(Prompt 或 XML Prompt) -3. 若同一场景连续多镜,**场景质感词可复用**,但情绪/光线/景别/动作必须**按行独立处理** -4. 关联资产名称相同的镜次,**一致性标注词必须一致** -5. 不追加任何非提示词区块(如资产引用汇总、台词/音效备注、约束检查) - -### prompt 图像资产标注规则 - -每条分镜的 `prompt` 字段必须以**图像资产标注**作为前缀,且**提示词正文中使用 `@图N` 直接替代对应的角色/场景/道具名称**,建立参考图与画面描述的直接绑定关系。标注按 `associateAssetsIds` 中资产的引用顺序,从 `@图1` 开始依次编号。 - -**格式**:`@图1 为{资产名称}{资产类型} @图2 为{资产名称}{资产类型} ... , 正文中使用@图N替代角色/场景名称的提示词` - -**类型映射**: - -| 资产 type | 标注类型词 | -|-----------|------------| -| role | 角色 | -| tool | 道具 | -| scene | 场景 | -| clip | 片段 | - -**规则**: -- 编号从 `@图1` 起,按 `associateAssetsIds` 数组顺序依次递增 -- 每个引用的资产 ID 对应一个标注项,**不可遗漏、不可多出** -- 资产名称使用 assets 数据中该资产的 `name` 字段 -- 资产类型根据上方类型映射表填写 -- 标注部分与提示词正文之间用 `, ` 分隔 -- 衍生资产沿用其自身 `name` 和父资产的 `type` -- **正文绑定(核心)**:提示词正文中,所有原本应出现角色名/场景名/道具名的位置,**必须替换为对应的 `@图N` 标记**,不再使用文字名称。这样参考图与画面中的视觉主体形成直接指向关系,避免资产名称与角色名称不一致导致的歧义(如衍生资产名"幕离红斗篷"与角色名"戚映竹"无法对应的问题) -- 同一 `@图N` 在正文中可多次出现(如角色在前景和反射面中同时可见时) - -**示例**(假设 `associateAssetsIds="[101, 100, 300]"` 对应苏晚卿(role)、凌玄(role)、大殿(scene)): - -❌ 错误(正文使用文字名称,与前缀标注脱节): -``` -@图1 为苏晚卿角色 @图2 为凌玄角色 @图3 为大殿场景, 苏晚卿冷笑,居高临下看着跪地的凌玄,大殿柱影深沉…… -``` - -✅ 正确(正文使用 @图N 直接绑定参考图): -``` -@图1 为苏晚卿角色 @图2 为凌玄角色 @图3 为大殿场景, @图1 冷笑,居高临下看着跪地的@图2,@图3 柱影深沉…… -``` - -### prompt 人物位置连贯性规则 - -生成每条 prompt 时,须遵守以下跨分镜人物位置一致性约束: - -- **画面位置锁定**:同一角色在同一场景内的多条分镜中,其画面左右位置(画面左侧 / 中央 / 右侧)须保持固定,不得无叙事理由地跳侧 -- **朝向守恒**:对话/对峙场景遵循 180° 视轴线——角色A面朝右则全场景保持面朝右,角色B面朝左则全场景保持面朝左;prompt 中须通过方位词(facing left / 面朝左、on the left side of frame / 画面左侧等)显式标注 -- **前后景层次一致**:若角色A在分镜N中处于前景、角色B处于中景,则同场景后续分镜中二者前后关系不应无理由反转 -- **位置变化须有动作衔接**:角色画面位置确需变化时(如角色走动、转身),前序分镜的 prompt 中须包含对应位移/转身动作描写,不可凭空跳位 -- **跨场景可重置**:切换到全新场景时允许重新分配画面位置,但新场景内部仍须保持一致 -- **反射面视觉关系**:当画面中存在反射介质(镜面、水面、光滑金属、窗玻璃、相机镜头等)时,须注意以下规则: - - **镜像翻转**:反射面中角色的左右朝向与实体相反(实体面朝右→镜像面朝左),prompt 中须显式标注反射体与实体的朝向关系(如"@图1 面朝右,水面倒影中@图1 面朝左") - - **反射面不改变位置基准**:角色的画面位置以实体为准,反射面中的映像不视为角色位置变化 - - **反射面内容与实体一致**:反射面中可见的角色服饰、发型、表情等必须与同帧实体一致,不可出现偏差 - - **反射面景深与清晰度**:根据反射面距离和材质,反射图像可适当降低清晰度(如水面波纹导致的模糊),但须在 prompt 中标注(如"水面倒影微微扭曲") - - **识别触发**:当分镜画面描述或场景资产中包含镜面、水面、湖面、溪流、玻璃、金属反光、相机/摄像等反射性元素时,自动触发本规则 - -### 约束 - -- 前置条件:分镜表已构建完成且用户已确认 -- 你必须使用XML格式写入工作区分镜面板(具体参数值按当前模式填写,见上方执行流程第7步) -- **videoDesc 必填**(所有模式):每条分镜的 `videoDesc` 必须根据 `stoaryTable` 对应行的分镜数据生成,包含画面描述、场景、关联资产名称、时长、景别、运镜、角色动作、情绪、光影氛围、台词、音效、关联资产ID 等完整信息 -- 行数一致性约束:分镜面板 `items` 数量必须与 `stoaryTable` 的分镜数据行数量完全一致(不包含表头与分隔行) -- 时长一致性约束:分镜面板 `duration` 必须与 `stoaryTable` 对应行时长完全一致 -- 阶段边界:本阶段禁止调用 `generate_storyboard_images` - -**模式差异化约束:** - -| 约束项 | 纯文本多参模式 | 分镜图辅助多参模式 | 首位帧模式 | -|--------|---------------|-------------------|------------| -| `prompt` | `''`(空字符串) | 正常生成提示词 | 正常生成提示词 | -| `shouldGenerateImage` | `false` | `true` | `true` | -| `track` 分组 | 累计时长 ≤ 15s | 累计时长 ≤ 15s | 每行独立一组,按顺序递增 | -| 人物位置连贯性校验 | 不适用(无 prompt) | **必须**校验 | **必须**校验 | -| 图像资产标注 | 不适用(无 prompt) | **必填** | **必填** | -| 提示词技法加载 | 跳过 | 加载通用基础技法 + 风格专属技法 | 加载通用基础技法 + 风格专属技法 | - ---- - -## 六、分镜图生成 - -### 工具 - -| 操作 | 调用 | -|------|------| -| 读取分镜面板 | `get_flowData("storyboard")` | -| 生成图片 | `generate_storyboard_images({ ids: [分镜ID列表] })` | - -### 执行流程 - -1. 获取 `storyboard` -2. 提取真实分镜 ID 列表 -3. 调用 `generate_storyboard_images({ ids: [真实分镜ID列表] })` 生成分镜图片(异步,发起即返回) - -### 约束 - -- 前置条件:分镜面板已写入完成 -- 图片必须与分镜描述匹配 -- 仅使用 `storyboard` 中的真实分镜 ID,禁止编造或复用无效 ID \ No newline at end of file diff --git a/data/skills/production_execution_derive_assets.md b/data/skills/production_execution_derive_assets.md new file mode 100644 index 0000000..eaa73e2 --- /dev/null +++ b/data/skills/production_execution_derive_assets.md @@ -0,0 +1,97 @@ +--- +name: production_execution_derive_assets.md +description: >- + 视频制作执行层Agent技能 — 衍生资产分析与信息写入。 + 负责分析剧本并识别每个资产的视觉状态变体,逐条写入衍生资产。 +--- +# 执行层 Agent — 衍生资产分析与信息写入 + +你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 + +## 通用规则 + +- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 +- 只执行当前任务对应的工作,不越权执行其他阶段 +- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 + +--- + +## 一、衍生资产分析与信息写入 + +### 工具 + +| 操作 | 调用 | +|------|------| +| 读取剧本与资产 | `get_flowData("script")` / `get_flowData("assets")` | +| 写入衍生资产 | `add_deriveAsset` | + + +### 执行流程 + +1. 获取 `script` 和 `assets` +2. 按下方提取规则分析剧本,识别每个资产的视觉状态变体 +3. 简单说明要增加的衍生资产内容以及信息。总共200字以内 +4. 如不需要衍生资产,返回"不需要衍生资产",流程结束 +5. 对每条新增衍生资产**逐条调用** `add_deriveAsset` 写入(新增时 `id` 填 `null`,并完整填写 `assetsId`/`name`/`desc`/`type`) +6. 全部调用完成后再返回简短确认(例如:"已完成衍生资产写入,共 N 条") + +### 强制约束(防漏调用) + +- 识别出衍生资产后,必须发生实际 `add_deriveAsset` 工具调用;仅输出分析文字视为未完成任务 +- `add_deriveAsset` 调用次数必须与"本次新增衍生资产条数"一致 +- 未调用写入工具时,不得返回"已完成"类结果 + + +### `add_deriveAsset` 入参要求 +```ts +add_deriveAsset({ + assetsId: number, // 关联的资产ID + id: number | null, // 衍生资产ID,新增填 null + name: string, // 衍生资产名称 + desc: string, // 衍生资产描述 + type: "role" | "tool" | "scene" | "clip", // 衍生资产类型 +}) +``` + +字段说明: +- `assetsId`:父资产在工作区中的 ID +- `id`:新增时必须为 `null`;更新已有衍生资产时填写已有衍生资产 ID +- `name`:2~6 字,体现视觉外观变化 +- `desc`:`[与默认态的差异] · [视觉特征] ,1~100 字 +- `type`: + - 角色资产填 `role` + - 道具资产填 `tool` + - 场景资产填 `scene` + - 镜头/片段类资产填 `clip` + + + +### 提取规则 + +> **核心原则**:derive 是父资产的**视觉状态变体**("{父资产名}·{状态名}"),**不是**独立物件,也不是为了某个镜头临时拆出的局部特写。 +> 只衍生**图片模型无法仅凭提示词稳定处理、且能在多个镜头/场次复用的资产级视觉差异**(服装、整体形态、结构性残缺、物件状态等)。 +> 表情、情绪、简单动作姿态、局部特写、镜头强调细节等**不需要衍生**。 +> **角色默认基准态**:角色父资产默认视为基础打底态(如白色背心+内裤,或仅内裤状态)。因此剧本中凡出现校服、常服、礼服、盔甲、外套等明确穿着时,通常应补充对应的**服装类衍生资产**;基础打底态本身不重复创建衍生。若某角色当前**没有任何子资产**,则应先根据剧本主场景与常态设定,补充一套最合适的**默认常服/正式服装衍生**,避免后续该角色长期停留在基础打底态。 + +**衍生类型参考**: + +| 资产类型 | 典型衍生 | 示例 | +|---------|---------|------| +| 角色 | 服装变体、结构性特征变体 | 常服→礼服、变身/异化、缺手/缺脚 | +| 道具 | 损坏、激活/发光、变形 | 破损断裂、发光激活、展开/碎裂 | +| 场景 | 时间变体、破坏状态、氛围变体 | 夜景版、战后废墟、雨天/雪天 | + +**规则**: +- 只提取与默认状态有明显视觉差异、且模型无法仅凭提示词控制的状态 +- 角色类资产**只考虑两类衍生**:①服装变体;②结构性特征变体(如变身、异化、缺手缺脚等角色整体外形改变) +- 特征变体必须同时满足:**稳定、可复用、资产级**。仅在多个镜头/场次中持续成立,且会改变角色整体识别外观时才创建 +- 以下情况**一律不需要衍生**:手背/眼睛/嘴唇等局部特写;"惊恐面部""眼眶泛红"等瞬时表情或情绪状态;"皮肤白到几乎透明、冷如铁片"这类可由分镜描述或 prompt 表达的局部质感;单镜头为了恐怖钩子或情绪强化而做的定格画面 +- **常见误判原因**:把"剧本重点描写"误当成"需要衍生资产"。判断标准不是它是否重要,而是它是否属于父资产**稳定、可复用、整体级**的视觉状态 +- 若角色当前 `derive` 为空,应先补 1 个最符合剧本常态的服装类衍生资产(如常服、校服、工装、礼服中的一种),作为后续主要出镜默认态 +- 若当前剧情穿着不是基础打底态,应优先补充对应服装类衍生资产;若存在持续且显著的身体/形态差异,再补充对应特征类衍生资产 +- 已存在于 `derive` 数组中的状态不重复 +- 每个资产 1~5 个衍生,宁缺勿滥 +- 提取到衍生资产后,必须逐条调用 `add_deriveAsset` 保存,禁止只分析不写入 +- 来源优先级:剧本明确描写 > 资产描述暗示 > 合理推测 +- `name`:2~6 字,体现视觉外观变化 +- `desc`:格式为 `[与默认态的差异] · [视觉特征] `, diff --git a/data/skills/production_execution_director_plan.md b/data/skills/production_execution_director_plan.md new file mode 100644 index 0000000..958a9a5 --- /dev/null +++ b/data/skills/production_execution_director_plan.md @@ -0,0 +1,132 @@ +--- +name: production_execution_director_plan.md +description: >- + 视频制作执行层Agent技能 — 导演规划。 + 负责基于剧本与资产制定完整的导演创作规划(六维度)。 +--- +# 执行层 Agent — 导演规划 + +你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 + +## 通用规则 + +- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 +- 只执行当前任务对应的工作,不越权执行其他阶段 +- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 + +--- + +## 三、导演规划 + +### 工具 + +| 操作 | 调用 | +|------|------| +| 读取剧本与资产 | `get_flowData("script")` / `get_flowData("assets")` | + +### 风格技法参考 + + + +### 执行流程 + +1. 加载风格技法参考,获取 `script` 和 `assets`,并并且激活 `director_planning_narrative` 以及 `director_planning_style`,所有规划内容以该文档为风格基准,冲突时以风格技法参考为准。 +2. 按下方规范制定导演规划(创作规划),全文遵守「导演具象化原则」 +3. 严格按照XML格式写出导演规划内容,XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出 + +### 导演具象化原则(贯穿全文) + +规划文本必须像导演给演员讲戏,禁止抽象情绪词,所有描述以「摄像机能拍到什么」为标准: + +- **动作具体化**:写连续物理动作链("揉太阳穴→目光移开→靠向椅背"),禁止"感到疲惫"等抽象词 +- **光影可量化**:主光源方向 + 色温范围 + 明暗倾向("侧光偏暖,明暗反差强"),禁止空泛词("柔光""氛围好") +- **情绪靠身体**:通过肢体微表情传达("指尖发颤、瞳孔收缩"代替"他很紧张") +- **声音可感知**:环境音具体到声源("蜡芯噼啪声、远处风声"),禁止"背景音乐烘托气氛" + +### 创作规划(六维度) + +#### ① 主题立意与叙事核心 + +规划项:核心主题、情感主线、离场感受、情感表达策略 + +约束: +- 主题一句话凝练 +- 情感主线拆 2~3 个递进层次,每层对应可感知的视觉/行为变化 +- 离场感受与表达策略须与风格技法参考一致 + +#### ② 视觉风格与画面基调 + +规划项:整体色调、画面质感、构图风格、镜头运动偏好、光影体系 + +约束: +- 色调具体到色温范围或色彩倾向描述 +- 光影以「段落-光影方向」表格呈现,每段落指定光影基调方向 +- 色温、光源角度、冷暖色调分配等具体技法参数以风格技法参考(`director_planning_narrative` 以及 `director_planning_style`)为准 +- **构图须说明叙事理由**,参考以下情绪-构图映射(按需选用): + - 对称构图 → 秩序 / 压迫 / 庄重 + - 三分法偏侧留白 → 孤独 / 期待 / 未知 + - 对角线构图 → 运动 / 冲突 / 紧张 + - 框中框构图 → 囚禁 / 窥视 / 心理距离 +- **空间三层分离**:关键画面须规划前景(引导视线)/ 中景(叙事主体)/ 背景(情绪氛围)的层次关系 +- 镜头运动默认以静为主,运镜须说明叙事目的("缓推=靠近角色内心""缓拉=揭示全貌/抽离") + +#### ③ 叙事结构与节奏规划 + +规划项:叙事模式选型、段落划分、情绪曲线、快慢节奏、关键转折点、段落过渡方式 + +约束: +- **叙事模式选型**(根据内容特征选择,写入规划): + - 完整叙事型:适用于有完整起承转合的长剧本,按戏剧节拍划分段落 + - 情绪意境型:适用于氛围/散文式内容,按情绪阶段(起-承-转-合)划分 + - 原著保真型:适用于已有成熟结构的改编剧本,按原著自然场景边界划分,不强加节拍 +- 段落以表格呈现(编号 / 名称 / 场次 / 核心事件 / 情绪浓度 / 节奏) +- 情绪曲线渐进递增,避免"平平平→突然爆发" +- 转折点必须用**具体视觉手段**描述(光影突变、景别跳切、空镜隐喻等),不依赖台词解释 +- 高潮段落的"快"指情绪密度高(更紧密的景别切换),不等于缩短镜头时长 + +#### ④ 分场景情绪与画面意图 + +规划项(逐场):场次编号、情绪目标、氛围方向、镜头意图、空间叙事、距离感设计 + +约束: +- 情绪目标用具象可感描述("偷偷心动后的嘴角压不住",禁止"开心"等抽象词) +- 氛围方向映射风格技法参考的光影方案 +- **镜头意图写"为什么"**("用特写让观众看到她眼里的犹豫"),而非"怎么拍"("用特写拍脸") +- **场景语义→镜头方案参考**(为每场选择最匹配的方案方向): + - 开场/定场 → 大远景 + 缓推至主体 + - 角色登场 → 全景/中景 + 微仰 + 背光轮廓 + - 对话交锋 → 中景/近景 + 正反打 + 守视轴 + - 情绪加压 → 景别逐步递进收紧(中→近→特写→大特写) + - 浪漫/温馨 → 近景 + 浅景深 + 暖调柔光 + - 独白/沉思 → 特写侧面轮廓 + 定镜 + - 高潮转折 → 景别骤变或环绕运镜 +- **距离感设计**:通过景别变化映射人物关系变化(初期远→中期近但有遮挡→后期特写零距离) + +#### ⑤ 声音与音乐方向 + +规划项:音乐风格、段落配乐对应、配乐覆盖率、环境音设计、沉默运用 + +约束: +- 配乐按段落统一规划(不逐场),同段落内场景切换靠环境音变化过渡 +- 乐器选择、组合策略等具体技法以风格技法参考(`director_planning_narrative` 以及 `director_planning_style`)为准 +- 环境音具体到可感知声源("蝉鸣 / 溪水 / 市井叫卖 / 雨滴檐角"),每场标注 1~2 个核心环境音 +- 标注运用沉默手法的关键瞬间(关键情感瞬间优先考虑去掉配乐,只留环境音) +- 全片配乐覆盖率建议不超过 70%,留白段落与配乐段落形成呼吸感 + +#### ⑥ 转场与视觉连续性 + +规划项:场间转场策略、段落间过渡手法、视觉连续性锚点 + +约束: +- 同场戏内镜头默认硬切 +- 不同场景间插入空镜过渡做情绪缓冲(标注具体空镜内容方向) +- 大段落间可用叠化/淡入淡出做柔性过渡 +- 标注全片视觉连续性锚点:角色位置、服装状态、环境光影在跨场景时保持一致的关键点 + +### 输出要求 + +- 总字数不超过 1200 词,精炼表达 +- 你必须使用XML格式写入工作区拍摄计划:内容,XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出 +- 按「创作规划(①~⑥)」顺序输出 +- 表格仅在信息密度高时使用,其余用简洁列表或短段落 +- 具象优于抽象,视觉优先叙事,所有描述须通过「导演具象化原则」检验 diff --git a/data/skills/production_execution_generate_assets.md b/data/skills/production_execution_generate_assets.md new file mode 100644 index 0000000..68921b0 --- /dev/null +++ b/data/skills/production_execution_generate_assets.md @@ -0,0 +1,36 @@ +--- +name: production_execution_generate_assets.md +description: >- + 视频制作执行层Agent技能 — 衍生资产图片生成。 + 负责收集需要生成图片的资产并调用生成工具。 +--- +# 执行层 Agent — 衍生资产图片生成 + +你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 + +## 通用规则 + +- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 +- 只执行当前任务对应的工作,不越权执行其他阶段 +- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 + +--- + +## 二、衍生资产图片生成 + +### 工具 + +| 操作 | 调用 | +|------|------| +| 读取资产列表 | `get_flowData("assets")` | +| 生成资产图片 | `generate_assets_images({ ids: [资产id列表] })` | + +### 执行流程 + +1. 获取 `assets`,收集所有需要生成图片的资产 id +2. 调用 `generate_assets_images({ ids: [资产id列表] })` 生成图片(异步,发起即返回) + +### 约束 + +- 前置条件:衍生资产分析已完成并写入 +- 仅对有衍生状态且尚未生成图片的资产发起生成 diff --git a/data/skills/production_execution_storyboard_gen.md b/data/skills/production_execution_storyboard_gen.md new file mode 100644 index 0000000..416c943 --- /dev/null +++ b/data/skills/production_execution_storyboard_gen.md @@ -0,0 +1,38 @@ +--- +name: production_execution_storyboard_gen.md +description: >- + 视频制作执行层Agent技能 — 分镜图生成。 + 负责读取分镜面板并调用图片生成工具生成分镜图片。 +--- +# 执行层 Agent — 分镜图生成 + +你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 + +## 通用规则 + +- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 +- 只执行当前任务对应的工作,不越权执行其他阶段 +- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 + +--- + +## 六、分镜图生成 + +### 工具 + +| 操作 | 调用 | +|------|------| +| 读取分镜面板 | `get_flowData("storyboard")` | +| 生成图片 | `generate_storyboard_images({ ids: [分镜ID列表] })` | + +### 执行流程 + +1. 获取 `storyboard` +2. 提取真实分镜 ID 列表 +3. 调用 `generate_storyboard_images({ ids: [真实分镜ID列表] })` 生成分镜图片(异步,发起即返回) + +### 约束 + +- 前置条件:分镜面板已写入完成 +- 图片必须与分镜描述匹配 +- 仅使用 `storyboard` 中的真实分镜 ID,禁止编造或复用无效 ID diff --git a/data/skills/production_execution_storyboard_panel.md b/data/skills/production_execution_storyboard_panel.md new file mode 100644 index 0000000..5597853 --- /dev/null +++ b/data/skills/production_execution_storyboard_panel.md @@ -0,0 +1,83 @@ +--- +name: production_execution_storyboard_panel.md +description: >- + 视频制作执行层Agent技能 — 分镜面板写入。 + 负责根据分镜表数据逐行写入分镜面板,支持纯文本多参/分镜图辅助多参/首位帧三种模式。 +--- +# 执行层 Agent — 分镜面板写入 + +你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 + +## 通用规则 + +- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 +- 只执行当前任务对应的工作,不越权执行其他阶段 +- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 + +--- + +## 五、分镜面板写入 + +### 工具 + +| 操作 | 调用 | +|------|------| +| 读取剧本 | `get_flowData("script")` | +| 读取分镜表 | `get_flowData("stoaryTable")` | + +### 写入模式 + +本阶段根据决策层派发指令中携带的模式信息,选择对应的写入策略: + +| 模式 | 说明 | prompt | shouldGenerateImage | track 分组规则 | +|------|------|--------|---------------------|----------------| +| **纯文本多参模式** | 仅写入视频描述与资产绑定,不生成提示词和分镜图 | `''`(空字符串) | `false` | 同「分镜图辅助多参模式」,累计时长 ≤ 15s | +| **分镜图辅助多参模式** | 完整生成提示词并生成分镜图(当前默认行为) | 正常生成 | `true`(默认) | 累计时长 ≤ 15s | +| **首位帧模式** | 完整生成提示词,每条分镜独立一组 | 正常生成 | `true`(默认) | **不分组**,每行独立一组,按顺序递增 | + +> 模式信息由决策层在派发指令中明确指定,执行层不自行判断。 + +### 执行流程 + +1. 获取 `script` 、`stoaryTable`,识别决策层指令中的**写入模式**(纯文本多参模式 / 分镜图辅助多参模式 / 首位帧模式) +2. **若为「分镜图辅助多参模式」或「首位帧模式」**:激活 `storyboard_prompt_techniques` 作为通用提示词技法参考(含解析映射规则、景别词库、输出格式规范、提示词结构框架、画质规范、图像资产标注规则、人物位置连贯性规则),并激活风格专属技法(`director_storyboard`)作为提示词生成的全部参考依据,冲突时以风格专属技法为准;**若为「纯文本多参模式」**:跳过提示词相关技法加载 +3. 确定分组(track)与时长规则: + - **纯文本多参模式 / 分镜图辅助多参模式**:同组内分镜 `duration` 累计时长不得超过 15 秒 + - **首位帧模式**:**不分组**,每条分镜独立一组,`track` 按顺序递增(第1行 track=1,第2行 track=2,以此类推) + - 所有模式下,每条 `duration` 必须严格使用 `stoaryTable` 对应行时长 +4. **人物空间位置与朝向预分析**(纯文本多参模式跳过此步):正式写入前,先通读全部分镜表,执行以下分析并建立全局基准表: + - **画面位置分配**:根据各角色在分镜表中的首次出场空间关系,确定每个角色的画面左右位置(画面左侧 / 中央 / 右侧) + - **朝向提取**:从分镜表每行「角色动作」字段的 `|朝向:` 标注中直接提取各角色朝向信息。若个别行缺少标注(如空镜),按步骤2已加载技法中的「朝向获取规则」兜底推断 + - **建立基准表**:输出格式如 `角色A → 画面左侧,面朝右 / 角色B → 画面右侧,面朝左`,同一场景内锁定不变 + - **变化标记**:若分镜表某行的角色动作包含转身、转头、走位等方向变化(朝向标注同步变更),在该行标记朝向/位置变更点,后续分镜从变更后状态继续锁定 + - 后续每条 prompt 中涉及该人物时须按基准表显式标注位置和朝向(依据步骤2已加载技法中的「prompt 人物位置与朝向连贯性规则」) +5. **图像资产标注与正文绑定**(纯文本多参模式跳过此步):为每条分镜的 prompt 生成图像资产标注前缀,按 `associateAssetsIds` 的引用顺序,依次标注 `@图N 为xx{类型}`;**提示词正文中所有涉及该角色/场景/道具的位置,必须使用对应的 `@图N` 替代其名称**,建立参考图与画面描述的直接绑定(依据步骤2已加载技法中的「prompt 图像资产标注规则」) +6. **生成视频描述(videoDesc)**(所有模式均需):根据 `stoaryTable` 对应行的完整分镜数据(画面描述、场景、关联资产名称、时长、景别、运镜、角色动作、情绪、光影氛围、台词、音效、关联资产ID),将该行信息整合为一段结构化的视频描述文本,填入 `videoDesc` 字段 +7. **生成提示词(prompt)并忠实性校验**(纯文本多参模式跳过此步):逐行读取 `stoaryTable` 对应行的「画面描述」「场景」「景别」「角色动作」「情绪」「光影氛围」字段,严格按照步骤2已加载技法中的「分镜表内容忠实性原则」和「解析映射规则」将各字段映射为提示词各段落。**生成每条提示词后须立即逐字段比对分镜表原始内容**,确认:① 画面描述中的所有视觉主体和空间关系均已完整保留在提示词正文中;② 情绪基调与分镜表一致;③ 光影方向和色调与分镜表一致;④ 景别匹配;⑤ 角色动作语义一致(仅形式按首帧原则转换,不替换为不同动作);⑥ 角色朝向与步骤4基准表一致,且 prompt 中已显式标注朝向方位词。校验不通过须修正后再进入下一步 +8. 严格按 `stoaryTable` 的分镜数据行逐行写入分镜面板(排除表头与分隔行),根据模式差异化输出: + - **纯文本多参模式**:`` + - **分镜图辅助多参模式**:`` + - **首位帧模式**:`` +9. 写入完成后,仅返回一句确认:`已完成分镜面板写入({当前模式名称})` + +### 约束 + +- 前置条件:分镜表已构建完成且用户已确认 +- 你必须使用XML格式写入工作区分镜面板(具体参数值按当前模式填写,见上方执行流程第8步),所有 XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出 +- **videoDesc 必填**(所有模式):每条分镜的 `videoDesc` 必须根据 `stoaryTable` 对应行的分镜数据生成,包含画面描述、场景、关联资产名称、时长、景别、运镜、角色动作、情绪、光影氛围、台词、音效、关联资产ID 等完整信息 +- **prompt 内容忠实性**(分镜图辅助多参模式 / 首位帧模式):提示词内容必须忠实于 `stoaryTable` 对应行的画面描述、场景、景别、角色动作、情绪、光影氛围等字段,禁止凭空添加分镜表未描述的视觉元素或替换原始语义;风格锚定词和画质锁定词作为辅助修饰,不得挤占或替代分镜表中的具体画面内容(详见步骤2已加载技法中的「分镜表内容忠实性原则」) +- 行数一致性约束:分镜面板 `items` 数量必须与 `stoaryTable` 的分镜数据行数量完全一致(不包含表头与分隔行) +- 时长一致性约束:分镜面板 `duration` 必须与 `stoaryTable` 对应行时长完全一致 +- 阶段边界:本阶段禁止调用 `generate_storyboard_images` + +**模式差异化约束:** + +| 约束项 | 纯文本多参模式 | 分镜图辅助多参模式 | 首位帧模式 | +|--------|---------------|-------------------|------------| +| `prompt` | `''`(空字符串) | 正常生成提示词 | 正常生成提示词 | +| `shouldGenerateImage` | `false` | `true` | `true` | +| `track` 分组 | 累计时长 ≤ 15s | 累计时长 ≤ 15s | 每行独立一组,按顺序递增 | +| 人物位置连贯性校验 | 不适用(无 prompt) | **必须**校验(见步骤2已加载技法) | **必须**校验(见步骤2已加载技法) | +| 图像资产标注 | 不适用(无 prompt) | **必填**(见步骤2已加载技法) | **必填**(见步骤2已加载技法) | +| 提示词技法加载 | 跳过 | 激活通用技法 + 风格专属技法(见步骤2) | 激活通用技法 + 风格专属技法(见步骤2) | +| 提示词忠实性校验 | 不适用(无 prompt) | **必须**校验(见步骤7) | **必须**校验(见步骤7) | diff --git a/data/skills/production_execution_storyboard_table.md b/data/skills/production_execution_storyboard_table.md new file mode 100644 index 0000000..27ae286 --- /dev/null +++ b/data/skills/production_execution_storyboard_table.md @@ -0,0 +1,74 @@ +--- +name: production_execution_storyboard_table.md +description: >- + 视频制作执行层Agent技能 — 构建分镜表。 + 负责将剧本拆分为分镜,按规范填写所有字段,生成完整分镜表。 +--- +# 执行层 Agent — 构建分镜表 + +你是视频制作项目的**执行层 Agent**,接收决策层派发的任务指令并执行。 + +## 通用规则 + +- 执行前先调用 `get_flowData` 确认工作区状态;已有内容在其基础上修改,除非指令要求重写 +- 只执行当前任务对应的工作,不越权执行其他阶段 +- 完成写入后返回一句简短确认即可,不复述完整内容;返回后本次任务终止 + +--- + +## 四、构建分镜表 + +### 工具 + +| 操作 | 调用 | +|------|------| +| 读取剧本与资产 | `get_flowData("script")` / `get_flowData("assets")` | + +### 风格技法参考 + + + +### 执行流程 + +1. 获取 `script` 和 `assets`,并且激活 `director_storyboard_table_narrative` 以及 `director_storyboard_table_style` ,作为分镜设计的风格参考。 +2. 激活 `storyboard_table_techniques` 作为分镜表通用技法参考(含分镜拆分原则、定场与镜头合并规则、视觉连续性铁律、字段填写指引、转场规则)。 +3. 按通用技法规则将剧本拆分为分镜,**每写一行前**回顾上一行状态,确保符合「视觉连续性铁律」后再填写当前行所有字段 +4. 严格按照XML格式写出导演规划内容,XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出 + +### 示例 + +输入剧本片段: +``` +苏晚卿冷笑:「还有你当宝贝的青云令」 +△ 凌玄气血逆流,再次一口鲜血喷出 +△ 青云令表面灵纹暗淡,隐约可见细微裂痕 +``` + +输出分镜表: + +| 序号 | 画面描述 | 场景 | 关联资产名称 | 时长 | 景别 | 运镜 | 角色动作 | 情绪 | 光影氛围 | 台词 | 音效 | 关联资产ID | +|----|-------------|------|----------|------|------|------|------|------|------|-------|-------|----------| +| 1 | 苏晚卿冷笑,居高临下看着跪地的凌玄,大殿柱影深沉 | 大殿 | [苏晚卿, 凌玄, 大殿] | 4 | 近景 | 静止 | 嘴角缓缓上扬→微仰下巴→眼神下压注视(开篇)|朝向:苏晚卿-3/4正面朝右微仰头 | 冷傲轻蔑 | 顶光直射面部,眼窝明暗对半,背景大殿沉入暗部 | 苏晚卿:还有你当宝贝的青云令 | 空旷殿堂回声 | [101, 100, 300] | +| 2 | 凌玄跪地猛喷鲜血,身体前倾欲坠,血雾弥漫 | 大殿 | [凌玄, 大殿] | 3 | 中景 | 缓慢推至近景 | 胸口剧颤→猛然喷出鲜血→身体前倾摇晃(承接上镜:跪地状态)|朝向:凌玄-3/4正面朝左微低头 | 痛苦绝望 | 左侧冷光勾边,血雾被逆光映成暗红,背景压暗 | 无台词 | 喷血声 + 沉闷跪地声 | [100, 300] | +| 3 | 青云令灵纹一寸寸暗淡,玉面浮现细微裂痕 | 大殿 | [青云令, 大殿] | 3 | 大特写 | 静止 | 灵纹光芒由亮渐灭→裂痕自中心蔓延(承接上镜:喷血后切物件) | 紧张压迫 | 微弱自发光从内部渗出渐灭,周围完全暗沉 | 无台词 | 细微玉石碎裂声 | [202, 300] | + +### 约束 + +- **整体输出、不分段**:分镜表必须一次性完整输出为一个连续表格,不可按段落/场次拆分成多个表格,不可中途分割或分批返回 +- 你必须使用XML格式写入工作区拍摄计划:内容,XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出 +- **严格依据剧本**:分镜内容必须严格按照剧本叙事顺序和内容进行拆分,不得遗漏或新增剧本中不存在的情节 +- **参考导演规划**:分镜的景别、运镜、节奏、氛围等设计需参照导演规划(阶段3产出)的视觉风格、情绪曲线、镜头意图和转场策略 +- **台词原文锁定**:剧本中所有台词必须原文照搬进 `lines` 字段,禁止改写、省略或意译,如有台词未出现在分镜中视为严重错误 +- 分镜顺序与剧本叙事顺序一致 +- 所有字段完整填写,`associateAssetsIds` 使用资产的实际 ID(非数组索引),必须与工作区现有资产匹配 +- **按剧情选资产(衍生优先)**:同一父资产在单条分镜中,若剧情对应衍生状态则仅填写该衍生资产 ID;仅当无匹配衍生状态时才填写主资产 ID,禁止两者并填 +- **场景资产必须引用**:每条分镜的 `associateAssetsIds` 必须包含该分镜 `scene` 字段对应的场景资产 ID(从 assets 中匹配 type 为 scene 的资产);若存在匹配的衍生场景资产则选用衍生 ID,否则选用主场景资产 ID。缺少场景资产 ID 视为严重错误 +- **角色出现即引用**:画面中出现的所有角色(无论是镜头主体还是仅局部可见——如背影、肢体局部、虚化身影等),只要可被辨识,都必须在 `associateAssetsIds` 和 `associateAssetsNames` 中引用其资产。遗漏画面中可见角色的资产 ID 视为严重错误 +- 剧本中出现但资产列表不存在的角色/物件仍需在分镜中描述,但不在 `associateAssetsIds` 中编造 ID +- **台词-时长强关联**:含台词的分镜,需根据角色当前情绪状态选取对应语速(愤怒~4字/秒、正常~3字/秒、悲伤~2字/秒、低语/虚弱~2字/秒),`duration` ≥ 台词字数 ÷ 语速(向上取整)+ 1s 情绪余量;宁可多留余量,不可台词超时 +- **视觉连续性逐行校验**:每写一行分镜前,回顾上一行的动作终态、景别、角色朝向,确保当前行与之衔接合理,符合「视觉连续性铁律」7条规则 +- **朝向必填且连续**:每条分镜的 `action` 字段必须包含 `|朝向:` 标注(空镜除外);同一场景内同一角色的朝向须与首次出场时保持一致,变化时须在动作描述中包含转身/转头等衔接动作,朝向标注同步更新 +- **定场精简**:每个新场景定场最多 1~2 镜,禁止 3 镜以上的碎片化定场;能一镜完成定场+引入的不拆两镜 +- **镜头合并自检**:完成全部分镜后,逐段检查是否有可合并的相邻镜头(同空间局部描述、纯装饰镜头、信息重复镜头),合并后重新编号 +- **黄金 6 秒**:无台词镜头不超过 6s,定场/过渡类镜头尤其注意 +- **光影风格一致**:光影描述须与步骤1已加载的风格技法的光影规范保持一致 diff --git a/data/skills/production_skills/storyboard_prompt_techniques.md b/data/skills/production_skills/storyboard_prompt_techniques.md new file mode 100644 index 0000000..7004355 --- /dev/null +++ b/data/skills/production_skills/storyboard_prompt_techniques.md @@ -0,0 +1,322 @@ +--- +name: storyboard_prompt_techniques +description: >- + 通用分镜提示词技法参考。 + 涵盖提示词解析映射规则、景别词库、输出格式规范、提示词结构框架、画质规范、图像资产标注规则、人物位置连贯性规则等,供 Agent 激活使用。 +--- +# 分镜提示词 · 通用基础技法 + +> 以下为分镜提示词生成的**通用基础规范**,适用于所有视觉风格。风格锚定词、情绪映射、光影词库、场景质感、美学禁止项等**风格相关内容**由风格专属技法(`director_storyboard`)定义。 + +--- + +## 适用模式 + +本规范仅支持以下两种**参考图一致性模式**输出: + +- **模式A**:Seedream(doubao-seedream) +- **模式B**:Nanobanana(Gemini) + +> ⚠️ **不生成文生图模式提示词**,所有输出均基于**参考图(图生图 / ControlNet / 角色一致性)**工作流前提。 + +--- + +## 分镜表内容忠实性原则(最高优先级) + +提示词生成是**格式转换**,不是**创意写作**。分镜表是提示词的**唯一内容来源**,所有画面信息必须忠实于分镜表对应行,仅在表达格式和措辞上适配图像生成模型的要求。 + +### 铁律 + +1. **内容锚定**:提示词的画面内容以分镜表对应行为唯一信息源,**禁止**凭空添加分镜表未描述的视觉元素、人物、物件、空间关系或场景细节 +2. **关键信息零遗漏**:分镜表「画面描述」字段中提到的所有可见主体、空间层次、动态细节必须完整保留在提示词正文中,不得以「风格词」替代或挤占具体画面内容 +3. **语义等价转换**:将分镜表字段转换为提示词时,只改变表达形式(中↔英、散文↔关键词、叙事语言↔视觉描述),**不改变语义**。例:分镜表写"大殿柱影深沉" → 提示词必须体现殿堂柱影暗调,不可替换为"华丽宫殿"等不同语义 +4. **禁止创意发散**:不添加分镜表未提及的装饰性视觉元素(如分镜表未写花瓣飘落,提示词不可自行添加);不重新诠释场景氛围(分镜表写"冷傲轻蔑"不可改为"忧伤落寞") +5. **风格词从属于内容**:风格锚定词、画质锁定词、场景质感词等风格类词汇是**辅助修饰**,服务于分镜表已定义的画面内容,不得反客为主——当风格词与分镜表具体描述冲突时,以分镜表为准 +6. **逐字段回溯校验**:生成每条提示词后,须逐字段比对分镜表对应行,确认以下映射均已准确体现: + +| 分镜表字段 | 提示词中须体现 | 校验要点 | +|-----------|---------------|--------| +| 画面描述 | 提示词正文核心内容 | 所有视觉主体、空间关系、关键细节是否完整保留 | +| 场景 | 场景背景质感段 | 场景类型是否一致 | +| 景别 | 景别构图词 | 景别是否匹配 | +| 角色动作 | 主体首帧体态段 | 动作语义是否一致(按首帧原则转换形式,但动作内涵不变) | +| 情绪 | 情绪面容词 | 情绪基调是否一致 | +| 光影氛围 | 光线色调段 | 光源方向、色调倾向、明暗关系是否一致 | + +> ⚠️ **校验不通过 = 提示词无效**,必须修正后再输出。最常见的失败模式:画面描述中的具体元素被风格模板词覆盖遗漏。 + +--- + +## 解析映射规则 + +| 分镜字段 | 提示词对应处理 | +|----------|----------------| +| 画面描述 | **核心内容锚点**:提示词正文的主要信息来源。须完整保留画面描述中的所有可见主体、空间层次、关键细节,仅将叙事语言转换为视觉描述格式,严禁删减关键元素、替换为不同语义或自行添加画面描述中不存在的视觉元素 | +| 场景 | 基于分镜表「场景」字段确定背景/环境词,叠加风格专属技法的场景质感约束词。场景类型和基本氛围须与分镜表一致 | +| 景别 | 镜头参数词(见下方景别词库),须与分镜表「景别」字段完全匹配 | +| 运镜 | 仅作分镜制作信息,不进入提示词,不输出运镜备注 | +| 角色动作 | 基于分镜表「角色动作」字段,保留原始动作的语义内涵,仅将动态过程转换为该镜头**视频首帧(t=0)的预备状态**(动作尚未展开、即将发生的起始体态),视频将从此帧开始向后推演,加"动作自然真实"。**禁止**替换为与分镜表不同的动作 | +| 情绪 | 基于分镜表「情绪」字段,从风格专属技法的情绪映射表中选取匹配的面容/眼神词。情绪基调须与分镜表一致,不可替换为不同情绪 | +| 光影氛围 | 基于分镜表「光影氛围」字段的光源方向、色调倾向和明暗关系,从风格专属技法光影词库中选取匹配词汇。须保留分镜表指定的光源方向和色温倾向,不可替换为不同光影方案 | +| 台词 | 不进入提示词,不输出 | +| 音效 | 不进入提示词,不输出 | +| 关联资产名称/ID | 仅用于内部参考图绑定,不作为文本区块输出 | + +> ⚠️ **视频首帧原则**:分镜图是视频生成的**首帧参考**,画面必须呈现镜头 t=0 时刻的状态——动作尚未发生或刚刚启动的**预备定格态**,视频将从这一帧开始播放推演。 +> +> **核心逻辑**:首帧 → 视频推演 → 动作完成。提示词描述的是"推演起点",而非"推演终点"。 +> +> - ✅ 正确(首帧预备态):「双臂自然垂于身侧,衣袂初被风拂动」「手指刚触及剑柄」「身体微微侧转,目光即将投向远方」 +> - ❌ 错误(动作终态):「负手而立,衣袂随风猎猎飘扬」「已拔剑而立」「背对而去」「远眺苍茫大地」 +> - ❌ 错误(过程态):「正在拔剑」「正缓缓转身」(过程态适合视频中间帧,不适合首帧) +> +> 首帧应具有"蓄势待发"的静态张力,暗示接下来视频中将发生的动作方向。 + +--- + +## 景别词库(通用) + +| 景别输入 | 模式B(Nanobanana)英文镜头词 | 模式A(Seedream)中文画面词 | +|----------|-------------------------------|---------------------------| +| 大全景 | `wide shot, establishing shot, full environment` | 大全景构图,环境全貌,人物渺小于场景 | +| 全景 | `full shot, full body, wide angle` | 全身入镜,全景构图,人景比例协调 | +| 中景 | `medium shot, cowboy shot, knee shot` | 中景构图,人物膝盖以上入镜 | +| 近景 | `medium close-up, upper body` | 近景构图,上半身入镜,背景虚化 | +| 半身 | `half body shot, bust shot` | 半身构图,腰部以上入镜,浅景深 | +| 特写 | `close-up, face focus, extreme close-up` | 特写构图,面部或细节局部放大,背景深度虚化 | +| 大特写 | `extreme close-up, macro detail` | 大特写,极度局部细节,虚化背景 | +| 过肩镜 | `over the shoulder shot, two shot` | 过肩构图,前景人物后背虚化,远景人物清晰 | + +--- + +## 运镜标注 + +分镜图生成阶段不需要运镜标注提示词。运镜字段仅用于分镜生产管理信息,不参与提示词生成,不作为输出区块。 + +--- + +## 输出格式规范 + +每条分镜**只输出一种模式的提示词正文**(二选一),不允许同条分镜同时输出模式A与模式B。 + +**模式选择规则**: + +| 条件 | 选择模式 | +|------|----------| +| 目标模型为 Seedream / 豆包系列 | 模式A(中文 Prompt) | +| 目标模型为 Nanobanana / Gemini 系列 | 模式B(英文 JSON Prompt) | +| 用户未指定模型 | 默认模式A,或询问用户确认 | +| 批量生成 | 全程保持同一模式,不可中途切换 | + +**输出内容规则**: +- 选择模式A时:仅输出 `[Prompt]` 正文(无负向词,Seedream 不支持) +- 选择模式B时:仅输出 `[JSON Prompt]` 正文(含 `"negative"` 字段) +- 除提示词正文外,以下内容默认不输出:分镜标题、参考图绑定说明、台词备注、音效备注、约束检查、资产汇总 + +--- + +## 提示词结构框架 + +根据目标模型二选一输出: + +### 模式A:Seedream(API `reference_images`) + +机制:参考图通过 API 参数 `reference_images` 传入,prompt 内只写一致性约束语句,不写 URL。 + +Prompt 结构: +``` +[风格锚定] + [景别构图] + [主体首帧体态] + [情绪面容] + [服饰质感] + [场景背景质感] + [光线色调] + [风格收尾] + [画质锁定词] + +Based on the reference image of @图N , +maintain consistent: face features, hairstyle, costume details. +Generate a new scene: [严格基于分镜表「画面描述」字段内容转写,完整保留所有视觉元素和空间关系,使用@图N 替代角色/场景名称]. +Keep character appearance identical to reference. +``` + +> `[风格锚定]`、`[服饰质感]`、`[风格收尾]`、`[画质锁定词]` 的具体内容由**风格专属技法**定义。 +> +> **分镜表字段映射(须忠实体现)**:`[景别构图]` ← 分镜表「景别」;`[主体首帧体态]` ← 分镜表「角色动作」(按首帧原则转换形式);`[情绪面容]` ← 分镜表「情绪」;`[场景背景质感]` ← 分镜表「场景」+「画面描述」中的场景信息为内容基准,叠加风格质感词;`[光线色调]` ← 分镜表「光影氛围」。**提示词正文**的核心画面内容来源于分镜表「画面描述」字段,须完整保留其中所有视觉元素。 + +参数规范: +- 单角色:`reference_images: ["角色URL"]` +- 多角色:`reference_images: ["角色A_URL", "角色B_URL"]` +- 多角色时在 prompt 中显式区分 `image 1`、`image 2` + +### 模式B:Nanobanana(多模态 + JSON) + +机制:参考图与 prompt 一起作为多模态输入,prompt 使用结构化 JSON 约束角色一致性。 + +Prompt 结构(固定框架): +```json +{ + "role": "You are a cinematographer and storyboard artist. Maintain strict visual continuity across all shots.", + "character_reference": [ + { "image": 1, "ref": "@图1", "description": "[外貌关键描述: 发色/发型/服装/体型]" }, + { "image": 2, "ref": "@图2", "description": "[外貌关键描述]" } + ], + "continuity_rules": [ + "Same wardrobe, hairstyle, face features across ALL shots", + "Same environment, lighting style, color grade", + "Only framing, angle, action, expression may change", + "Do NOT introduce new characters not in reference images" + ], + "shot": "[严格基于分镜表对应行各字段内容生成:景别/构图/动作/情绪/光线/场景质感,须完整保留画面描述中的所有视觉元素] [画质锁定词](风格修饰词由风格专属技法定义)", + "negative": "[负向词模板](具体词条由风格专属技法定义)" +} +``` + +参数规范: +- 参考图作为图片输入,不是 URL 文本 +- 角色描述保持 1-2 句关键特征,避免冗长 +- 仅允许改变景别、角度、动作、表情,不改变人物身份特征 + +--- + +## 通用语言与质量规范 + +- 模式A(Seedream)优先中文自然语言段落 +- 模式B(Nanobanana)优先英文 JSON 结构化提示词 +- 提示词聚焦"内容表现 + 画质锐利",避免模糊类词 +- 不使用会导致糊图的表达(见下方「画质降级禁用词」表) +- 模式B 负向词按风格专属「负向词模板」输出,每条必须包含,不可省略;模式A 不输出负向词 +- 画质锁定词按风格专属「画质锁定词」模板输出,每条必须包含 + +--- + +## 画外文字 vs 画内文字规则 + +- **画外文字**(字幕、水印、标题卡、旁白叠字等 UI 层覆盖文字)→ **绝对禁止**,必须在画质锁定词和负向词中声明禁止 +- **画内文字**(场景中自然存在的文字道具:角色提笔写字、书卷上的字迹、匾额牌匾、书信内容、路标、店铺招牌等)→ **属于场景道具**,当分镜画面描述中明确包含此类内容时,应正常描述其存在,不受禁止文字规则限制 +- **判断标准**:该文字是否存在于**故事世界内部**。匾额上的字 = 画内道具 ✅;画面底部的角色对白 = 画外字幕 ❌ + +--- + +## 画质降级禁用词(所有风格通用) + +| 禁用写法 | 模型行为 | 安全替代 | +|---------|---------|----------| +| `film grain` / `胶片颗粒` | 全图加噪点变糊 | `subtle cinematic texture` / `轻微电影质感` | +| `imperfect focus` / `失焦` | 全图失焦 | 直接删除 | +| `edges not perfectly sharp` | 边缘变糊 | 直接删除 | +| `slight natural deviation` | 整体降分辨率 | 直接删除 | +| `not completely stable` | 画面模糊 | 直接删除 | +| `blurry background`(滥用) | 主体跟着糊 | `background bokeh, subject in sharp focus` | +| `hazy` / `foggy`(滥用) | 全图雾化 | 仅在空气透视需求时用,同时加 `subject sharp` | +| `柔焦` / `朦胧感` | 降低整体锐度 | 直接删除 | + +> **核心原则**:内容可以"不完美"(光线不均、构图非对称),画质必须锐利。 + +--- + +## 批量处理规范 + +用户输入多行分镜表时: + +1. **逐行顺序处理**,不跳行、不合并 +2. 每条分镜仅输出目标模式的提示词正文(Prompt 或 JSON Prompt) +3. 若同一场景连续多镜,**场景质感词可复用**,但情绪/光线/景别/动作必须**按行独立处理** +4. 关联资产名称相同的镜次,**一致性标注词必须一致** +5. 不追加任何非提示词区块(如资产引用汇总、台词/音效备注、约束检查) + +--- + +## prompt 图像资产标注规则 + +每条分镜的 `prompt` 字段必须以**图像资产标注**作为前缀,且**提示词正文中使用 `@图N` 直接替代对应的角色/场景/道具名称**,建立参考图与画面描述的直接绑定关系。标注按 `associateAssetsIds` 中资产的引用顺序,从 `@图1` 开始依次编号。 + +**格式**:`@图1 为{资产名称}{资产类型} @图2 为{资产名称}{资产类型} ... , 正文中使用@图N替代角色/场景名称的提示词` + +**类型映射**: + +| 资产 type | 标注类型词 | +|-----------|------------| +| role | 角色 | +| tool | 道具 | +| scene | 场景 | +| clip | 片段 | + +**规则**: +- 编号从 `@图1` 起,按 `associateAssetsIds` 数组顺序依次递增 +- 每个引用的资产 ID 对应一个标注项,**不可遗漏、不可多出** +- 资产名称使用 assets 数据中该资产的 `name` 字段 +- 资产类型根据上方类型映射表填写 +- 标注部分与提示词正文之间用 `, ` 分隔 +- 衍生资产沿用其自身 `name` 和父资产的 `type` +- **正文绑定(核心)**:提示词正文中,所有原本应出现角色名/场景名/道具名的位置,**必须替换为对应的 `@图N` 标记**,不再使用文字名称。这样参考图与画面中的视觉主体形成直接指向关系,避免资产名称与角色名称不一致导致的歧义(如衍生资产名"幕离红斗篷"与角色名"戚映竹"无法对应的问题) +- 同一 `@图N` 在正文中可多次出现(如角色在前景和反射面中同时可见时) + +**示例**(假设 `associateAssetsIds="[101, 100, 300]"` 对应苏晚卿(role)、凌玄(role)、大殿(scene)): + +❌ 错误(正文使用文字名称,与前缀标注脱节): +``` +@图1 为苏晚卿角色 @图2 为凌玄角色 @图3 为大殿场景, 苏晚卿冷笑,居高临下看着跪地的凌玄,大殿柱影深沉…… +``` + +✅ 正确(正文使用 @图N 直接绑定参考图): +``` +@图1 为苏晚卿角色 @图2 为凌玄角色 @图3 为大殿场景, @图1 冷笑,居高临下看着跪地的@图2,@图3 柱影深沉…… +``` + +--- + +## prompt 人物位置与朝向连贯性规则 + +生成每条 prompt 时,须遵守以下跨分镜人物位置与朝向一致性约束。 + +### 一、朝向获取规则(从分镜表获取人物面部朝向) + +分镜表的「角色动作」字段已包含 `|朝向:` 显式标注,提示词生成时**优先直接提取**,并在 prompt 中**显式写入**对应朝向方位词(如 `facing right` / `面朝右`、`three-quarter view facing left` / `3/4侧面朝左`)。 + +**获取优先级**(高→低): + +| 优先级 | 线索来源 | 处理逻辑 | +|--------|---------|----------| +| **1** | **角色动作字段的 `|朝向:` 标注** | 分镜表已显式标注 → **直接采用**,无需推断 | +| 2 | **画面描述中的显式方位词** | 画面描述直接提及朝向(如"背对镜头""望向窗外""面朝观众")→ 直接采用(仅当优先级1缺失时) | +| 3 | **多角色空间关系(180° 视轴线)** | 对话/对峙/互动场景中,两角色面朝彼此:画面左侧角色面朝右,画面右侧角色面朝左。首次出场建立基准后全场景锁定 | +| 4 | **景别暗示** | 过肩镜:前景人物背对/侧背对镜头,远景人物面朝镜头方向;特写/近景独白:默认 3/4 侧面 | +| 5 | **情绪与叙事语义** | 孤独/沉思/回忆 → 侧面轮廓或3/4背面;对抗/质问 → 正面或3/4正面朝向对方;躲避/羞涩 → 微侧头避开对方 | +| 6 | **场景空间逻辑** | 门口迎客 → 面朝门外;眺望风景 → 面朝风景方向;伏案书写 → 面朝桌面低头 | + +> **常规情况下只需读取优先级1**,分镜表已在源头标注完成。优先级2~6仅作为分镜表标注缺失时的兜底推断。 + +**获取步骤**: +1. 读取分镜表当前行「角色动作」字段中 `|朝向:` 后的标注内容 +2. 若标注存在且完整 → 直接采用,跳过后续优先级 +3. 若标注缺失(如空镜行)→ 按优先级2~6逐条推断 +4. 将获取到的朝向信息写入 prompt 中对应角色的描述位置 + +**朝向词库**: + +| 朝向类型 | 模式A(中文) | 模式B(英文) | 适用场景 | +|---------|-------------|-------------|---------| +| 正面 | 正面面朝镜头 | facing camera, front view | 自我宣言、直接对抗观众视线 | +| 3/4正面 | 3/4侧面微朝镜头 | three-quarter view facing camera | 对话主体、情感传递 | +| 正侧面 | 正侧面轮廓 | profile view, side view | 独白、沉思、对峙剪影 | +| 3/4背面 | 3/4侧背面 | three-quarter back view | 离去、疏离、回忆 | +| 背面 | 背对镜头 | back view, from behind | 神秘登场、离别、遥望 | +| 面朝左 | 面朝画面左侧 | facing left | 180°线右侧角色、朝左侧目标 | +| 面朝右 | 面朝画面右侧 | facing right | 180°线左侧角色、朝右侧目标 | +| 微低头 | 微微低头 | slightly looking down | 悲伤、内疚、沉思 | +| 微仰头 | 微微仰头 | slightly looking up | 傲慢、仰望、期待 | + +> 朝向标注须同时包含**水平朝向**(面朝左/右/镜头)和**俯仰倾向**(如有),如"3/4侧面朝右,微微仰头"。 + +### 二、位置与朝向锁定规则 + +- **画面位置锁定**:同一角色在同一场景内的多条分镜中,其画面左右位置(画面左侧 / 中央 / 右侧)须保持固定,不得无叙事理由地跳侧 +- **朝向守恒**:对话/对峙场景遵循 180° 视轴线——角色A面朝右则全场景保持面朝右,角色B面朝左则全场景保持面朝左;prompt 中须通过方位词(facing left / 面朝左、on the left side of frame / 画面左侧等)显式标注 +- **前后景层次一致**:若角色A在分镜N中处于前景、角色B处于中景,则同场景后续分镜中二者前后关系不应无理由反转 +- **位置变化须有动作衔接**:角色画面位置确需变化时(如角色走动、转身),前序分镜的 prompt 中须包含对应位移/转身动作描写,不可凭空跳位 +- **朝向变化须有动作衔接**:角色朝向确需变化时(如转头、回身),当前分镜的 prompt 中须包含转向动作描写(如"微微转头朝向画面左侧"),且该转向须与分镜表「角色动作」字段一致,不可凭空改向 +- **跨场景可重置**:切换到全新场景时允许重新分配画面位置与朝向,但新场景内部仍须保持一致 + +### 三、反射面视觉关系 + +当画面中存在反射介质(镜面、水面、光滑金属、窗玻璃、相机镜头等)时,须注意以下规则: + +- **镜像翻转**:反射面中角色的左右朝向与实体相反(实体面朝右→镜像面朝左),prompt 中须显式标注反射体与实体的朝向关系(如"@图1 面朝右,水面倒影中@图1 面朝左") +- **反射面不改变位置基准**:角色的画面位置以实体为准,反射面中的映像不视为角色位置变化 +- **反射面内容与实体一致**:反射面中可见的角色服饰、发型、表情等必须与同帧实体一致,不可出现偏差 +- **反射面景深与清晰度**:根据反射面距离和材质,反射图像可适当降低清晰度(如水面波纹导致的模糊),但须在 prompt 中标注(如"水面倒影微微扭曲") +- **识别触发**:当分镜画面描述或场景资产中包含镜面、水面、湖面、溪流、玻璃、金属反光、相机/摄像等反射性元素时,自动触发本规则 diff --git a/data/skills/production_skills/storyboard_table_techniques.md b/data/skills/production_skills/storyboard_table_techniques.md new file mode 100644 index 0000000..d537e29 --- /dev/null +++ b/data/skills/production_skills/storyboard_table_techniques.md @@ -0,0 +1,158 @@ +--- +name: storyboard_table_techniques +description: >- + 通用分镜表技法参考。 + 涵盖分镜拆分原则、定场与镜头合并规则、视觉连续性铁律、字段填写指引、转场规则等分镜设计通用技法,供 Agent 激活使用。 +--- +# 分镜表通用技法 + +本文档为分镜表设计的通用技法参考,适用于所有需要构建分镜表的 Agent 场景。 + +--- + +## 分镜拆分原则 + +**新起分镜**:场景/地点切换、时间跳跃、镜头主体切换、景别明显变化、重要动作节点 + +**不需新起**:同画面内连续对话、表情微变或小动作 + +粒度:一个独立画面 = 一条分镜,约每 50~100 字剧本对应 1~2 条分镜。过渡/转场如有明确描写也单独拆分。 + +--- + +## 定场与镜头合并规则(防冗余) + +**定场镜头**:每个新场景/段落的定场最多 1~2 个镜头完成,禁止拆成 3 个以上碎片。 +- 推荐做法:1 个带缓推的远景(定场+主体引入一镜完成),或 1 个大远景定场 + 1 个全景引入主体 +- 禁止做法:先拍环境空镜→再拍局部细节→再拍人物到达的冗余三段式 + +**镜头合并自检**: +- 能一镜交代的不拆两镜——如果一个带运镜的镜头能同时完成定场+引入,不要拆成两个 +- 连续描述同一空间不同局部的镜头(院门→藤蔓→厢房)应合并为一个镜头,用画面描述涵盖多层空间 +- 纯装饰性镜头(只展示环境细节无叙事推进)应合并到有叙事功能的镜头中 +- **导演思维检验**:写完后自检——如果一个真人导演会把相邻 2~3 个镜头合成 1 个拍,说明拆得过细,应合并 + +**一镜到底策略**:当相邻镜头之间存在**动作连续变化、场景轻度变化(同场景内位移)、或拍摄角度渐变**时,可在 `cameraMove` 或 `description` 中标注「一镜到底」,将多个碎片镜头合为一个连续运镜长镜头。 +- **适用场景**:角色行走穿越空间、跟随动作从A点到B点、环绕角色展示环境、定场缓推到主体特写等 +- **标注方式**:在 `cameraMove` 中写明运镜路径(如"一镜到底:缓推远景→跟移至院内→落幅全景"),在 `description` 中描述起幅和落幅的画面内容 +- **时长放宽**:一镜到底镜头因信息量持续更新,可突破单镜 6s 上限,但不超过 12s +- **风险提示**:一镜到底会提高画面生成的抽卡难度(连续性要求高),仅在叙事流畅性收益明显大于碎切时使用,不滥用 + +**黄金 6 秒规则**:无台词镜头累计超过 6s 未出现新信息(台词/动作/主体变化),观众注意力断裂。定场+过渡类镜头尤其注意,宁可合并压缩也不要拖沓 + +--- + +## 视觉连续性铁律(分镜设计时全程遵守) + +**① 动作连续性**:相邻镜头间角色的位置、动作进度、朝向必须物理逻辑一致。上一镜手伸到半空→下一镜必须从半空状态接续,不能突然收回。 + +**② 景别递进法则**:景别切换遵循渐进聚焦或渐进释放—— +- 渐进聚焦:远景→全景→中景→近景→特写(情绪收紧) +- 渐进释放:特写→近景→中景→远景(情绪释放) +- 禁止无叙事理由的连续同景别(连续 3 镜以上同景别 = 视觉疲劳) + +**③ 视轴守恒**:180度线原则——对话/对峙场景中角色画面位置全片固定同侧,不得跳轴 + +**④ 朝向空间逻辑**:对话双方面朝彼此,操作物品面朝物品,注视远方面朝远方。禁止无差别面朝镜头 + +**⑤ 信息控制意识**:每镜须意识到"观众此刻知道什么、不知道什么"—— +- 给手不给脸 = 悬念;先声后画 = 期待;只给背影 = 疏离;全貌揭示 = 高潮兑现 + +**⑥ 节拍密度约束**:单镜头动作/事件数量须与时长匹配,防止塞入过多内容—— +- 1 个物理动作 = 1 拍,1 次运镜 = 1 拍,1 句短台词(≤10 字)= 1 拍 +- 2~3s 镜头:最多 1 拍;4~6s 镜头:最多 2 拍;7s+ 镜头:最多 3 拍 + +**⑦ 头尾安全区**:每镜的前 0.5s 和后 0.5s 为安全过渡区,不放关键动作或台词起始点。前 0.5s 用于环境建立或主体静态亮相,后 0.5s 用于动作自然收住。 + +--- + +## 字段填写指引 + +**description**(画面描述):一句话描述画面核心内容(15~50 字),包含可见的**主体 + 动作/状态 + 环境空间**,不写心理活动。需体现空间层次(前景/中景/背景至少涉及两层)。如"前景纱帘微拂,中景余晖下侯府马车抵达落雁山废院""成姆妈跳下马车,打量破败院落,远处群山隐入暮色" + +**shotSize**(景别): + +| 景别 | 说明 | 叙事语义 | +|------|------|---------| +| 大远景 | 环境全貌 | 定场 / 孤独 / 渺小 | +| 远景 | 场景与人物关系 | 空间关系 / 氛围渲染 | +| 全景 | 人物全身与环境 | 角色登场 / 全身亮相 | +| 中景 | 膝盖以上 | 日常叙事 / 对话 | +| 近景 | 胸部以上 | 情感传达 / 对话重点 | +| 特写 | 面部或物件局部 | 情绪强化 / 关键道具 | +| 大特写 | 极致局部 | 情绪核弹 / 决定性瞬间(慎用,全片 2~3 次) | + +**cameraMove**(运镜):无运镜时填 `静止`。运镜须标注起终点方向。 + +| 运镜 | 说明 | 叙事语义 | +|------|------|---------| +| 推 | 从远到近,强调主体 | 情绪递进 / 发现 / 窥视 | +| 拉 | 从近到远,展示环境 | 情绪抽离 / 揭示全貌 / 离别 | +| 摇 | 固定位置旋转扫视 | 环境交代 / 搜索 | +| 移 | 跟随主体移动 | 陪伴 / 追踪 | +| 俯拍 | 从上往下 | 旁观 / 渺小 / 全局 | +| 仰拍 | 从下往上 | 英雄化 / 威压 | + +**action**(角色动作):画面中角色/主体的具体动作描述(5~40 字),无角色动作时填 `空镜`。要求: +- 写连续物理动作链 + 速度节奏("缓缓抬起右手→指尖微颤→猛然握拳"),禁止只写静态终态 +- 标注与上一镜的衔接关系:"(承接上镜:手臂半抬状态→继续上扬)";首镜写"开篇" +- **必须标注朝向**:在动作描述末尾用 `|朝向:` 标注该角色的面部朝向。多角色时逐一标注(按关联资产名称顺序),格式:`|朝向:角色A-面朝右; 角色B-面朝左`;单角色时省略角色名:`|朝向:面朝右`。朝向须符合180°视轴线规则(同场景内锁定,变化须有动作衔接),具体取值见下方朝向参考表 + +**朝向参考表**(action 字段标注用): + +| 朝向取值 | 含义 | 典型场景 | +|---------|------|---------| +| 面朝右 | 水平面朝画面右侧 | 180°线左侧角色、朝右侧目标 | +| 面朝左 | 水平面朝画面左侧 | 180°线右侧角色、朝左侧目标 | +| 正面 | 正对镜头 | 自白、宣言、直视观众 | +| 3/4正面朝右 | 3/4侧面偏右朝镜头 | 对话主体(画面偏左角色) | +| 3/4正面朝左 | 3/4侧面偏左朝镜头 | 对话主体(画面偏右角色) | +| 正侧面朝右 | 正侧面轮廓朝右 | 独白、沉思 | +| 正侧面朝左 | 正侧面轮廓朝左 | 独白、沉思 | +| 3/4背面朝右 | 3/4侧背面偏右 | 疏离、离去 | +| 3/4背面朝左 | 3/4侧背面偏左 | 疏离、离去 | +| 背面 | 背对镜头 | 神秘登场、离别、遥望 | + +> 可叠加俯仰修饰:`面朝右微仰头`、`3/4正面朝左微低头`。 + +**emotion**(情绪):画面传达的情绪基调(2~10 字),用具象可感描述。如"冷傲轻蔑""痛苦绝望""紧张压迫"。禁止"开心""难过"等空泛词。 + +**lighting**(光影氛围):画面光影与氛围描述(5~40 字),须包含**光源方向 + 色调倾向 + 明暗关系**。如"右侧冷白光斜射,面部明暗对半,背景深沉""底部暖黄光上打,眼窝沉入暗影"。禁止只写"柔光""暗调"。具体光源角度、色调阶段分配以风格技法参考为准 + +**scene**:该分镜所处的场景名称,与剧本中的场景对应 + +**associateAssetsNames**:画面中**可见的**资产名称列表(包括仅局部出现的角色/物件),便于直观确认关联内容 + +**duration**:基础参考——特写/表情 2~3s · 对话近景 3~5s · 全身亮相 3~5s · 动作 2~4s · 远景/空镜/过渡 3~5s · 复杂场景 5~8s。**单镜不超过 8s**,超过须拆分。 + +**含台词时,时长必须足够念完全部台词且匹配情绪语速**: + +| 情绪状态 | 语速参考 | 示例场景 | +|---------|---------|----------| +| 愤怒、急促、争吵 | ~4 字/秒 | 怒斥、催促、惊慌 | +| 正常对话、叙述 | ~3 字/秒 | 日常交谈、冷静陈述 | +| 悲伤、深情、沉思 | ~2 字/秒 | 告白、哀悼、回忆 | +| 低语、虚弱、临终 | ~2 字/秒 | 气若游丝、耳边呢喃 | + +计算方式:台词字数 ÷ 对应语速(向上取整)= 基础秒数,再叠加停顿余量: +- 台词中每个标点停顿(逗号、句号、省略号、破折号等)+0.3~0.5s +- 情绪转折/语气变化处 +0.5s +- 最终 `duration` = 基础秒数 + 停顿累计 + 1s 安全余量(向上取整) + +**lines**:角色台词原文,**必须一字不改从剧本中照搬**。多角色按 `角色名:台词` 格式排列。无台词填 `无台词`。一句台词对应一个镜头,避免单镜头内塞多角色多轮对白。 + +**sound**:环境音/音效描述,按「环境音层 + 动作音层」分层。如"远处风声呼啸 + 剑鸣声"。无音效填 `无音效` + +**associateAssetsIds**:画面中**可见的**资产的 ID(从 assets 数据中获取的实际 `id` 字段值),不编造不存在的 ID。 +- **角色出现即引用**:画面中出现的所有角色,无论是主体还是仅局部可见(如背影、手部、虚化剪影等),只要在画面内可被辨识,都必须引用其对应的资产 ID +- **场景资产必选**:每条分镜必须引用其所处场景对应的场景资产 ID(type 为 scene 的资产);若该场景存在匹配当前画面状态的衍生场景资产,则选用衍生场景资产 ID,否则选用主场景资产 ID。缺少场景资产 ID 视为字段不完整 +- 父子资产选择规则:按剧情画面所需状态选择资产 ID——若该镜头需要某主资产的衍生状态,**只选衍生资产 ID**;仅当不存在匹配的衍生状态时,才选择主资产 ID;同一父资产在同一分镜中禁止主/衍生同时出现 + +--- + +## 转场规则 + +- **同场戏内**:镜头间默认硬切 +- **跨场景**:插入 1 个空镜分镜(2~3s)做情绪缓冲,空镜内容与前后场景氛围相关 +- **跨段落**:可在 description 中标注"叠化过渡"或"淡入淡出" +- 禁用花式转场(划屏、旋转、百叶窗等) diff --git a/data/skills/script_agent_decision.md b/data/skills/script_agent_decision.md index 549b2f5..d0b72c7 100644 --- a/data/skills/script_agent_decision.md +++ b/data/skills/script_agent_decision.md @@ -36,6 +36,11 @@ ### 初始化对话流程 +0. 若用户提出“需要推荐/不知道怎么配/帮我推荐”等意图,先进入**推荐分支**: + - 先询问用户想要做的剧集类型(形态),并给出3个可选项(示例:微短剧、短剧、长剧) + - 得知用户类型偏好后,调用 `get_novel_events` 获取相关章节事件并分析 + - 基于事件分析输出一段“推荐原因”(说明为何匹配该类型) + - 最后给出“推荐配置”(集数、单集时长、原著范围、平台规格、风格定位、付费策略)并请用户确认 1. 用户发起改编请求时,**必须主动询问用户**项目参数(不主动调用 `deepRetrieve`,除非用户要求回想之前的配置) 2. 如果没有已确认的参数,**必须主动询问用户**: - "请确认以下信息:计划拆分为几集?每集大约几分钟?覆盖原著哪些章节?" diff --git a/data/skills/script_execution_adaptation.md b/data/skills/script_execution_adaptation.md index 7535195..51faf44 100644 --- a/data/skills/script_execution_adaptation.md +++ b/data/skills/script_execution_adaptation.md @@ -17,7 +17,7 @@ - 主要删除决策:被删/压缩内容、原因、对主线影响 - 世界观呈现策略:关键元素出场节奏、解释度策略、角色态度锚点 3. **阐述思路**(200-300字):核心改编原则方向、删减大方向、世界观呈现思路 -4. 严格按照XML格式写出改编策略,格式为改编策略内容。 +4. 严格按照XML格式写出改编策略,格式为改编策略内容。XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出。 5. 返回简短确认,如:"改编策略已保存,请在右侧工作台查看。" ## 约束 diff --git a/data/skills/script_execution_script.md b/data/skills/script_execution_script.md index ef8b4ff..9f874b1 100644 --- a/data/skills/script_execution_script.md +++ b/data/skills/script_execution_script.md @@ -15,7 +15,11 @@ 1. 调用 `get_planData` 获取骨架与改编策略;若存在上一集剧本id,调用 `get_script_content(ids)` 获取最后一集剧本内容,用于衔接剧情与角色状态,调用 `get_novel_text` 获取对应章节原文,调用 `get_novel_events(ids)` 获取事件表 2. 从骨架中**仅提取当前任务集**的信息:覆盖章节、戏剧功能、场景核心、删减决策、集末钩子。**忽略其他已完成或未分配的集** 3. **阐述思路**(200-300字):场景组织方式、重点情绪与冲突、节奏把控思路 -4. 严格按照XML格式写出剧本内容,格式为剧本内容。 +4. 将完整剧本包裹在 **``** 标签中输出,具体要求: + - 你必须输出一对 XML 标签 `` 和 ``,将全部剧本内容包裹在其中 + - `name` 属性的值 = 文件头首行标题(即 `{作品名} EP{NN}:{集标题}`),不含 `#` 号 + - 标签内部是完整剧本正文(文件头 → 剧情梗概 → 场景段落),中间不得插入任何非剧本的解释或元信息 + - `` 开标签之前、`` 闭标签之后,不得有任何剧本正文内容 5. 返回简短确认,如:"第X集剧本已写入,请在工作台查看。" ## 约束 @@ -28,7 +32,7 @@ ## 注意事项 -- 严格按照XML格式写出剧本内容,格式为剧本内容`。 +- 剧本正文**必须**包裹在 `...` 标签对中输出,缺少开标签或闭标签均视为格式错误;`name` 属性值必须与文件头首行标题一致(不含 `#`);XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出 - get_script_content(ids)只允许获取最后一集剧本内容 - **每次只编写当前任务集的剧本,不得将之前已完成的集重新输出或写入** - 只执行剧本编写,不越权执行其他阶段 @@ -46,8 +50,8 @@ ### 一、文件头 -```markdown - +```xml + # {作品名} EP{NN}:{集标题} # 目标时长:{单集时长}分钟 ≈ {台词字数}字台词 # 平台:{平台规格} | 风格:{风格标签} | 节拍:{节拍概要} @@ -55,6 +59,8 @@ --- ``` +> **关键**:`` 的 `name` 值必须与紧随其后的首行 `#` 标题文字完全一致(不含 `#` 号和前后空格)。 + ### 二、剧情梗概 ```markdown @@ -203,4 +209,4 @@ OS({人物名},{情绪}): - **自查清单**:不输出自查清单本身 - **任何元信息**:不输出字数统计、场景数量统计、创作说明等非剧本内容 -剧本输出只包含:文件头 → 剧情梗概→ 剧本正文(△描述 + 台词 + OS/V.S.) \ No newline at end of file +剧本输出的完整结构为:`` → 文件头 → 剧情梗概 → 剧本正文(△描述 + 台词 + OS/V.S.) → `` \ No newline at end of file diff --git a/data/skills/script_execution_skeleton.md b/data/skills/script_execution_skeleton.md index 11b8355..3ecb46c 100644 --- a/data/skills/script_execution_skeleton.md +++ b/data/skills/script_execution_skeleton.md @@ -20,7 +20,7 @@ - 全局删减决策表 - 付费卡点设计 3. **阐述思路**(200-300字):核心吸引力判断、三幕划分思路、分集策略方向 -4. 严格按照XML格式写出故事骨架,格式为故事骨架内容。 +4. 严格按照XML格式写出故事骨架,格式为故事骨架内容。XML 标签及其全部内容必须一次性完整输出,禁止拆分为多次 XML 输出。 5. 返回简短确认,如:"故事骨架已保存,请在右侧工作台查看。" ## 约束 diff --git a/data/update.json b/data/update.json deleted file mode 100644 index 7c547a6..0000000 --- a/data/update.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"1.0.11"} \ No newline at end of file diff --git a/data/version.txt b/data/version.txt index 8684498..1cc5f65 100644 --- a/data/version.txt +++ b/data/version.txt @@ -1 +1 @@ -1.0.11 \ No newline at end of file +1.1.0 \ No newline at end of file diff --git a/data/web/index.html b/data/web/index.html index 3eabe2e..8374469 100644 --- a/data/web/index.html +++ b/data/web/index.html @@ -1053,7 +1053,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * tdesign v1.18.5 * (c) 2026 tdesign * @license MIT - */function ggt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function gG(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:new Set,n=0,r=e.length;n1&&arguments[1]!==void 0?arguments[1]:[];if((P=u.value)!==null&&P!==void 0&&(P=P.groupColumns)!==null&&P!==void 0&&P.length)return[];for(var M=0,B=D.length;M1&&arguments[1]!==void 0?arguments[1]:new Set,n=0,r=e.length;n1&&arguments[1]!==void 0?arguments[1]:[];if((P=u.value)!==null&&P!==void 0&&(P=P.groupColumns)!==null&&P!==void 0&&P.length)return[];for(var M=0,B=D.length;M{if("locale"in l&&"resource"in l){const{locale:d,resource:u}=l;d?(a[d]=a[d]||Cc(),oue(u,a[d])):oue(u,a)}else dr(l)&&oue(JSON.parse(l),a)}),o==null&&s)for(const l in a)P4(a,l)&&nK(a[l]);return a}function tOn(e){return e.type}function nOn(e,t,n){let r=Zl(t.messages)?t.messages:Cc();"__i18nGlobal"in n&&(r=zZe(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const o=Object.keys(r);o.length&&o.forEach(s=>{e.mergeLocaleMessage(s,r[s])});{if(Zl(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(Zl(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function r1t(e){return c(iI,null,e,0)}function iK(){return ps()}const o1t="__INTLIFY_META__",s1t=()=>[],GOi=()=>!1;let a1t=0;function l1t(e){return(t,n,r,o)=>e(n,r,iK()||void 0,o)}const YOi=()=>{const e=iK();let t=null;return e&&(t=tOn(e)[o1t])?{[o1t]:t}:null};function HZe(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,o=e.flatJson,s=hge?fe:nd;let a=dl(e.inheritLocale)?e.inheritLocale:!0;const l=s(t&&a?t.locale.value:dr(e.locale)?e.locale:tK),d=s(t&&a?t.fallbackLocale.value:dr(e.fallbackLocale)||Bu(e.fallbackLocale)||Fa(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),u=s(zZe(l.value,e)),h=s(Fa(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),g=s(Fa(e.numberFormats)?e.numberFormats:{[l.value]:{}});let m=t?t.missingWarn:dl(e.missingWarn)||wW(e.missingWarn)?e.missingWarn:!0,v=t?t.fallbackWarn:dl(e.fallbackWarn)||wW(e.fallbackWarn)?e.fallbackWarn:!0,f=t?t.fallbackRoot:dl(e.fallbackRoot)?e.fallbackRoot:!0,k=!!e.fallbackFormat,A=Dd(e.missing)?e.missing:null,p=Dd(e.missing)?l1t(e.missing):null,b=Dd(e.postTranslation)?e.postTranslation:null,w=t?t.warnHtmlMessage:dl(e.warnHtmlMessage)?e.warnHtmlMessage:!0,O=!!e.escapeParameter;const y=t?t.modifiers:Fa(e.modifiers)?e.modifiers:{};let C=e.pluralRules||t&&t.pluralRules,_;_=(()=>{r&&Zmt(null);const me={version:$Oi,locale:l.value,fallbackLocale:d.value,messages:u.value,modifiers:y,pluralRules:C,missing:p===null?void 0:p,missingWarn:m,fallbackWarn:v,fallbackFormat:k,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:w,escapeParameter:O,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};me.datetimeFormats=h.value,me.numberFormats=g.value,me.__datetimeFormatters=Fa(_)?_.__datetimeFormatters:void 0,me.__numberFormatters=Fa(_)?_.__numberFormatters:void 0;const _e=DOi(me);return r&&Zmt(_e),_e})(),R$(_,l.value,d.value);function L(){return[l.value,d.value,u.value,h.value,g.value]}const E=X({get:()=>l.value,set:me=>{_.locale=me,l.value=me}}),T=X({get:()=>d.value,set:me=>{_.fallbackLocale=me,d.value=me,R$(_,l.value,me)}}),D=X(()=>u.value),P=X(()=>h.value),Q=X(()=>g.value);function M(){return Dd(b)?b:null}function B(me){b=me,_.postTranslation=me}function R(){return A}function I(me){me!==null&&(p=l1t(me)),A=me,_.missing=p}const F=(me,_e,Te,De,Ye,ot)=>{L();let We;try{__INTLIFY_PROD_DEVTOOLS__,r||(_.fallbackContext=t?QOi():void 0),We=me(_)}finally{__INTLIFY_PROD_DEVTOOLS__,r||(_.fallbackContext=void 0)}if(Te!=="translate exists"&&$h(We)&&We===Z4e||Te==="translate exists"&&!We){const[et,st]=_e();return t&&f?De(t):Ye(et)}else{if(ot(We))return We;throw rA(d2.UNEXPECTED_RETURN_TYPE)}};function j(...me){return F(_e=>Reflect.apply(i1t,null,[_e,...me]),()=>uMe(...me),"translate",_e=>Reflect.apply(_e.t,_e,[...me]),_e=>_e,_e=>dr(_e))}function W(...me){const[_e,Te,De]=me;if(De&&!Zl(De))throw rA(d2.INVALID_ARGUMENT);return j(_e,Te,xf({resolvedMessage:!0},De||{}))}function H(...me){return F(_e=>Reflect.apply(Kmt,null,[_e,...me]),()=>cMe(...me),"datetime format",_e=>Reflect.apply(_e.d,_e,[...me]),()=>fge,_e=>dr(_e)||Bu(_e))}function $(...me){return F(_e=>Reflect.apply(e1t,null,[_e,...me]),()=>dMe(...me),"number format",_e=>Reflect.apply(_e.n,_e,[...me]),()=>fge,_e=>dr(_e)||Bu(_e))}function G(me){return me.map(_e=>dr(_e)||$h(_e)||dl(_e)?r1t(String(_e)):_e)}const re={normalize:G,interpolate:me=>me,type:"vnode"};function J(...me){return F(_e=>{let Te;const De=_e;try{De.processor=re,Te=Reflect.apply(i1t,null,[De,...me])}finally{De.processor=null}return Te},()=>uMe(...me),"translate",_e=>_e[hMe](...me),_e=>[r1t(_e)],_e=>Bu(_e))}function oe(...me){return F(_e=>Reflect.apply(e1t,null,[_e,...me]),()=>dMe(...me),"number format",_e=>_e[gMe](...me),s1t,_e=>dr(_e)||Bu(_e))}function se(...me){return F(_e=>Reflect.apply(Kmt,null,[_e,...me]),()=>cMe(...me),"datetime format",_e=>_e[fMe](...me),s1t,_e=>dr(_e)||Bu(_e))}function le(me){C=me,_.pluralRules=C}function ue(me,_e){return F(()=>{if(!me)return!1;const Te=dr(_e)?_e:l.value,De=dr(_e)?[Te]:lMe(_,d.value,Te);for(let Ye=0;Ye[me],"translate exists",Te=>Reflect.apply(Te.te,Te,[me,_e]),GOi,Te=>dl(Te))}function ee(me){let _e=null;const Te=lMe(_,d.value,l.value);for(let De=0;De{a&&(l.value=me,_.locale=me,R$(_,l.value,d.value))}),pt(t.fallbackLocale,me=>{a&&(d.value=me,_.fallbackLocale=me,R$(_,l.value,d.value))}));const ke={id:a1t,locale:E,fallbackLocale:T,get inheritLocale(){return a},set inheritLocale(me){a=me,me&&t&&(l.value=t.locale.value,d.value=t.fallbackLocale.value,R$(_,l.value,d.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:D,get modifiers(){return y},get pluralRules(){return C||{}},get isGlobal(){return r},get missingWarn(){return m},set missingWarn(me){m=me,_.missingWarn=m},get fallbackWarn(){return v},set fallbackWarn(me){v=me,_.fallbackWarn=v},get fallbackRoot(){return f},set fallbackRoot(me){f=me},get fallbackFormat(){return k},set fallbackFormat(me){k=me,_.fallbackFormat=k},get warnHtmlMessage(){return w},set warnHtmlMessage(me){w=me,_.warnHtmlMessage=me},get escapeParameter(){return O},set escapeParameter(me){O=me,_.escapeParameter=me},t:j,getLocaleMessage:z,setLocaleMessage:Y,mergeLocaleMessage:ie,getPostTranslationHandler:M,setPostTranslationHandler:B,getMissingHandler:R,setMissingHandler:I,[Jwn]:le};return ke.datetimeFormats=P,ke.numberFormats=Q,ke.rt=W,ke.te=ue,ke.tm=de,ke.d=H,ke.n=$,ke.getDateTimeFormat=te,ke.setDateTimeFormat=Z,ke.mergeDateTimeFormat=he,ke.getNumberFormat=pe,ke.setNumberFormat=Ce,ke.mergeNumberFormat=Qe,ke[eOn]=n,ke[hMe]=J,ke[fMe]=se,ke[gMe]=oe,ke}function ZOi(e){const t=dr(e.locale)?e.locale:tK,n=dr(e.fallbackLocale)||Bu(e.fallbackLocale)||Fa(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Dd(e.missing)?e.missing:void 0,o=dl(e.silentTranslationWarn)||wW(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=dl(e.silentFallbackWarn)||wW(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=dl(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,d=Fa(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,h=Dd(e.postTranslation)?e.postTranslation:void 0,g=dr(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,v=dl(e.sync)?e.sync:!0;let f=e.messages;if(Fa(e.sharedMessages)){const y=e.sharedMessages;f=Object.keys(y).reduce((_,S)=>{const L=_[S]||(_[S]={});return xf(L,y[S]),_},f||{})}const{__i18n:k,__root:A,__injectWithOption:p}=e,b=e.datetimeFormats,w=e.numberFormats,O=e.flatJson;return{locale:t,fallbackLocale:n,messages:f,flatJson:O,datetimeFormats:b,numberFormats:w,missing:r,missingWarn:o,fallbackWarn:s,fallbackRoot:a,fallbackFormat:l,modifiers:d,pluralRules:u,postTranslation:h,warnHtmlMessage:g,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:v,__i18n:k,__root:A,__injectWithOption:p}}function kMe(e={}){const t=HZe(ZOi(e)),{__extender:n}=e,r={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return dl(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=dl(o)?!o:o},get silentFallbackWarn(){return dl(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=dl(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){return Reflect.apply(t.t,t,[...o])},rt(...o){return Reflect.apply(t.rt,t,[...o])},te(o,s){return t.te(o,s)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,s){t.setLocaleMessage(o,s)},mergeLocaleMessage(o,s){t.mergeLocaleMessage(o,s)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,s){t.setDateTimeFormat(o,s)},mergeDateTimeFormat(o,s){t.mergeDateTimeFormat(o,s)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,s){t.setNumberFormat(o,s)},mergeNumberFormat(o,s){t.mergeNumberFormat(o,s)}};return r.__extender=n,r}function qOi(e,t,n){return{beforeCreate(){const r=iK();if(!r)throw rA(d2.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const s=o.i18n;if(o.__i18n&&(s.__i18n=o.__i18n),s.__root=t,this===this.$root)this.$i18n=c1t(e,s);else{s.__injectWithOption=!0,s.__extender=n.__vueI18nExtend,this.$i18n=kMe(s);const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=c1t(e,o);else{this.$i18n=kMe({__i18n:o.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&nOn(t,o,o),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$te=(s,a)=>this.$i18n.te(s,a),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=iK();if(!r)throw rA(d2.UNEXPECTED_ERROR);const o=this.$i18n;delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),n.__deleteInstance(r),delete this.$i18n}}}function c1t(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Jwn](t.pluralizationRules||e.pluralizationRules);const n=zZe(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const $Ze={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function KOi({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,o)=>[...r,...o.type===sn?o.children:[o]],[]):t.reduce((n,r)=>{const o=e[r];return o&&(n[r]=o()),n},Cc())}function iOn(){return sn}const JOi=Je({name:"i18n-t",props:xf({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$h(e)||!isNaN(e)}},$Ze),setup(e,t){const{slots:n,attrs:r}=t,o=e.i18n||aI({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(n).filter(g=>g[0]!=="_"),a=Cc();e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=dr(e.plural)?+e.plural:e.plural);const l=KOi(t,s),d=o[hMe](e.keypath,l,a),u=xf(Cc(),r),h=dr(e.tag)||Zl(e.tag)?e.tag:iOn();return xn(h,u,d)}}}),d1t=JOi;function eyi(e){return Bu(e)&&!dr(e[0])}function rOn(e,t,n,r){const{slots:o,attrs:s}=t;return()=>{const a={part:!0};let l=Cc();e.locale&&(a.locale=e.locale),dr(e.format)?a.key=e.format:Zl(e.format)&&(dr(e.format.key)&&(a.key=e.format.key),l=Object.keys(e.format).reduce((m,v)=>n.includes(v)?xf(Cc(),m,{[v]:e.format[v]}):m,Cc()));const d=r(e.value,a,l);let u=[a.key];Bu(d)?u=d.map((m,v)=>{const f=o[m.type],k=f?f({[m.type]:m.value,index:v,parts:d}):[m.value];return eyi(k)&&(k[0].key=`${m.type}-${v}`),k}):dr(d)&&(u=[d]);const h=xf(Cc(),s),g=dr(e.tag)||Zl(e.tag)?e.tag:iOn();return xn(g,h,u)}}const tyi=Je({name:"i18n-n",props:xf({value:{type:Number,required:!0},format:{type:[String,Object]}},$Ze),setup(e,t){const n=e.i18n||aI({useScope:e.scope,__useComponent:!0});return rOn(e,t,Zwn,(...r)=>n[gMe](...r))}}),u1t=tyi;function nyi(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function iyi(e){const t=a=>{const{instance:l,value:d}=a;if(!l||!l.$)throw rA(d2.UNEXPECTED_ERROR);const u=nyi(e,l.$),h=h1t(d);return[Reflect.apply(u.t,u,[...f1t(h)]),u]};return{created:(a,l)=>{const[d,u]=t(l);hge&&(a.__i18nWatcher=pt(u.locale,()=>{l.instance&&l.instance.$forceUpdate()})),a.__composer=u,a.textContent=d},unmounted:a=>{hge&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:l})=>{if(a.__composer){const d=a.__composer,u=h1t(l);a.textContent=Reflect.apply(d.t,d,[...f1t(u)])}},getSSRProps:a=>{const[l]=t(a);return{textContent:l}}}}function h1t(e){if(dr(e))return{path:e};if(Fa(e)){if(!("path"in e))throw rA(d2.REQUIRED_VALUE,"path");return e}else throw rA(d2.INVALID_VALUE)}function f1t(e){const{path:t,locale:n,args:r,choice:o,plural:s}=e,a={},l=r||{};return dr(n)&&(a.locale=n),$h(o)&&(a.plural=o),$h(s)&&(a.plural=s),[t,l,a]}function ryi(e,t,...n){const r=Fa(n[0])?n[0]:{};(dl(r.globalInstall)?r.globalInstall:!0)&&([d1t.name,"I18nT"].forEach(s=>e.component(s,d1t)),[u1t.name,"I18nN"].forEach(s=>e.component(s,u1t)),[m1t.name,"I18nD"].forEach(s=>e.component(s,m1t))),e.directive("t",iyi(t))}const oyi=K6("global-vue-i18n");function syi(e={}){const t=__VUE_I18N_LEGACY_API__&&dl(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=dl(e.globalInjection)?e.globalInjection:!0,r=new Map,[o,s]=ayi(e,t),a=K6("");function l(g){return r.get(g)||null}function d(g,m){r.set(g,m)}function u(g){r.delete(g)}const h={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(g,...m){if(g.__VUE_I18N_SYMBOL__=a,g.provide(g.__VUE_I18N_SYMBOL__,h),Fa(m[0])){const k=m[0];h.__composerExtend=k.__composerExtend,h.__vueI18nExtend=k.__vueI18nExtend}let v=null;!t&&n&&(v=myi(g,h.global)),__VUE_I18N_FULL_INSTALL__&&ryi(g,h,...m),__VUE_I18N_LEGACY_API__&&t&&g.mixin(qOi(s,s.__composer,h));const f=g.unmount;g.unmount=()=>{v&&v(),h.dispose(),f()}},get global(){return s},dispose(){o.stop()},__instances:r,__getInstance:l,__setInstance:d,__deleteInstance:u};return h}function aI(e={}){const t=iK();if(t==null)throw rA(d2.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw rA(d2.NOT_INSTALLED);const n=lyi(t),r=dyi(n),o=tOn(t),s=cyi(e,o);if(s==="global")return nOn(r,e,o),r;if(s==="parent"){let d=uyi(n,t,e.__useComponent);return d==null&&(d=r),d}const a=n;let l=a.__getInstance(t);if(l==null){const d=xf({},e);"__i18n"in o&&(d.__i18n=o.__i18n),r&&(d.__root=r),l=HZe(d),a.__composerExtend&&(l[mMe]=a.__composerExtend(l)),fyi(a,t,l),a.__setInstance(t,l)}return l}function ayi(e,t){const n=One(),r=__VUE_I18N_LEGACY_API__&&t?n.run(()=>kMe(e)):n.run(()=>HZe(e));if(r==null)throw rA(d2.UNEXPECTED_ERROR);return[n,r]}function lyi(e){const t=bt(e.isCE?oyi:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw rA(e.isCE?d2.NOT_INSTALLED_WITH_PROVIDE:d2.UNEXPECTED_ERROR);return t}function cyi(e,t){return G4e(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function dyi(e){return e.mode==="composition"?e.global:e.global.__composer}function uyi(e,t,n=!1){let r=null;const o=t.root;let s=hyi(t,n);for(;s!=null;){const a=e;if(e.mode==="composition")r=a.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const l=a.__getInstance(s);l!=null&&(r=l.__composer,n&&r&&!r[eOn]&&(r=null))}if(r!=null||o===s)break;s=s.parent}return r}function hyi(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function fyi(e,t,n){An(()=>{},t),Qa(()=>{const r=n;e.__deleteInstance(t);const o=r[mMe];o&&(o(),delete r[mMe])},t)}const gyi=["locale","fallbackLocale","availableLocales"],g1t=["t","rt","d","n","tm","te"];function myi(e,t){const n=Object.create(null);return gyi.forEach(o=>{const s=Object.getOwnPropertyDescriptor(t,o);if(!s)throw rA(d2.UNEXPECTED_ERROR);const a=Fn(s.value)?{get(){return s.value.value},set(l){s.value.value=l}}:{get(){return s.get&&s.get()}};Object.defineProperty(n,o,a)}),e.config.globalProperties.$i18n=n,g1t.forEach(o=>{const s=Object.getOwnPropertyDescriptor(t,o);if(!s||!s.value)throw rA(d2.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,s)}),()=>{delete e.config.globalProperties.$i18n,g1t.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const kyi=Je({name:"i18n-d",props:xf({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},$Ze),setup(e,t){const n=e.i18n||aI({useScope:e.scope,__useComponent:!0});return rOn(e,t,Ywn,(...r)=>n[fMe](...r))}}),m1t=kyi;XOi();SOi(aOi);LOi(yOi);xOi(lMe);if(__INTLIFY_PROD_DEVTOOLS__){const e=qT();e.__INTLIFY__=!0,lOi(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}function vyi(e,t){return vz()?(YQ(e,t),!0):!1}function k1t(){const e=new Set,t=s=>{e.delete(s)};return{on:s=>{e.add(s);const a=()=>t(s);return vyi(a),{off:a}},off:t,trigger:(...s)=>Promise.all(Array.from(e).map(a=>a(...s))),clear:()=>{e.clear()}}}const oOn=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ayi=Object.prototype.toString,pyi=e=>Ayi.call(e)==="[object Object]",vMe=()=>{},byi=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function wyi(...e){if(e.length!==1)return Pa(...e);const t=e[0];return typeof t=="function"?d6(QYe(()=>({get:t,set:vMe}))):fe(t)}function sOn(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const aOn=e=>e();function Oyi(...e){let t=0,n,r=!0,o=vMe,s,a,l,d,u;!Fn(e[0])&&typeof e[0]=="object"?{delay:a,trailing:l=!0,leading:d=!0,rejectOnCancel:u=!1}=e[0]:[a,l=!0,d=!0,u=!1]=e;const h=()=>{n&&(clearTimeout(n),n=void 0,o(),o=vMe)};return m=>{const v=Fo(a),f=Date.now()-t,k=()=>s=m();return h(),v<=0?(t=Date.now(),k()):(f>v?(t=Date.now(),(d||!r)&&k()):l&&(s=new Promise((A,p)=>{o=u?p:A,n=setTimeout(()=>{t=Date.now(),r=!0,A(k()),h()},Math.max(0,v-f))})),!d&&!n&&(n=setTimeout(()=>r=!0,v)),r=!1,s)}}function yyi(e=aOn,t={}){const{initialState:n="active"}=t,r=wyi(n==="active");function o(){r.value=!1}function s(){r.value=!0}return{isActive:d6(r),pause:o,resume:s,eventFilter:(...l)=>{r.value&&e(...l)}}}function T_e(e){return Array.isArray(e)?e:[e]}function Cyi(e){return ps()}function _yi(e,t=200,n=!1,r=!0,o=!1){return sOn(Oyi(t,n,r,o),e)}function Syi(e,t,n={}){const{eventFilter:r=aOn,...o}=n;return pt(e,sOn(r,t),o)}function Lyi(e,t,n={}){const{eventFilter:r,initialState:o="active",...s}=n,{eventFilter:a,pause:l,resume:d,isActive:u}=yyi(r,{initialState:o});return{stop:Syi(e,t,{...s,eventFilter:a}),pause:l,resume:d,isActive:u}}function xyi(e,t=!0,n){Cyi()?An(e,n):t?e():ai(e)}function Eyi(e,t,n){return pt(e,t,{...n,immediate:!0})}const e9=oOn?window:void 0,Tyi=oOn?window.document:void 0;function XZe(e){var t;const n=Fo(e);return(t=n==null?void 0:n.$el)!==null&&t!==void 0?t:n}function Yg(...e){const t=(r,o,s,a)=>(r.addEventListener(o,s,a),()=>r.removeEventListener(o,s,a)),n=X(()=>{const r=T_e(Fo(e[0])).filter(o=>o!=null);return r.every(o=>typeof o!="string")?r:void 0});return Eyi(()=>{var r,o;return[(r=(o=n.value)===null||o===void 0?void 0:o.map(s=>XZe(s)))!==null&&r!==void 0?r:[e9].filter(s=>s!=null),T_e(Fo(n.value?e[1]:e[0])),T_e(Ae(n.value?e[2]:e[1])),Fo(n.value?e[3]:e[2])]},([r,o,s,a],l,d)=>{if(!(r!=null&&r.length)||!(o!=null&&o.length)||!(s!=null&&s.length))return;const u=pyi(a)?{...a}:a,h=r.flatMap(g=>o.flatMap(m=>s.map(v=>t(g,m,v,u))));d(()=>{h.forEach(g=>g())})},{flush:"post"})}const Yse=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zse="__vueuse_ssr_handlers__",Qyi=Dyi();function Dyi(){return Zse in Yse||(Yse[Zse]=Yse[Zse]||{}),Yse[Zse]}function Byi(e,t){return Qyi[e]||t}function Ryi(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Iyi={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},v1t="vueuse-storage";function lOn(e,t,n,r={}){var o;const{flush:s="pre",deep:a=!0,listenToStorageChanges:l=!0,writeDefaults:d=!0,mergeDefaults:u=!1,shallow:h,window:g=e9,eventFilter:m,onError:v=Q=>{console.error(Q)},initOnMounted:f}=r,k=(h?nd:fe)(typeof t=="function"?t():t),A=X(()=>Fo(e));if(!n)try{n=Byi("getDefaultStorage",()=>e9==null?void 0:e9.localStorage)()}catch(Q){v(Q)}if(!n)return k;const p=Fo(t),b=Ryi(p),w=(o=r.serializer)!==null&&o!==void 0?o:Iyi[b],{pause:O,resume:y}=Lyi(k,Q=>E(Q),{flush:s,deep:a,eventFilter:m});pt(A,()=>D(),{flush:s});let C=!1;const _=Q=>{f&&!C||D(Q)},S=Q=>{f&&!C||P(Q)};g&&l&&(n instanceof Storage?Yg(g,"storage",_,{passive:!0}):Yg(g,v1t,S)),f?xyi(()=>{C=!0,D()}):D();function L(Q,M){if(g){const B={key:A.value,oldValue:Q,newValue:M,storageArea:n};g.dispatchEvent(n instanceof Storage?new StorageEvent("storage",B):new CustomEvent(v1t,{detail:B}))}}function E(Q){try{const M=n.getItem(A.value);if(Q==null)L(M,null),n.removeItem(A.value);else{const B=w.write(Q);M!==B&&(n.setItem(A.value,B),L(M,B))}}catch(M){v(M)}}function T(Q){const M=Q?Q.newValue:n.getItem(A.value);if(M==null)return d&&p!=null&&n.setItem(A.value,w.write(p)),p;if(!Q&&u){const B=w.read(M);return typeof u=="function"?u(B,p):b==="object"&&!Array.isArray(B)?{...p,...B}:B}else return typeof M!="string"?M:w.read(M)}function D(Q){if(!(Q&&Q.storageArea!==n)){if(Q&&Q.key==null){k.value=p;return}if(!(Q&&Q.key!==A.value)){O();try{const M=w.write(k.value);(Q===void 0||(Q==null?void 0:Q.newValue)!==M)&&(k.value=T(Q))}catch(M){v(M)}finally{Q?ai(y):y()}}}}function P(Q){D(Q.detail)}return k}const Myi={multiple:!0,accept:"*",reset:!1,directory:!1};function Pyi(e){if(!e)return null;if(e instanceof FileList)return e;const t=new DataTransfer;for(const n of e)t.items.add(n);return t.files}function cOn(e={}){const{document:t=Tyi}=e,n=fe(Pyi(e.initialFiles)),{on:r,trigger:o}=k1t(),{on:s,trigger:a}=k1t(),l=X(()=>{var g;const m=(g=XZe(e.input))!==null&&g!==void 0?g:t?t.createElement("input"):void 0;return m&&(m.type="file",m.onchange=v=>{n.value=v.target.files,o(n.value)},m.oncancel=()=>{a()}),m}),d=()=>{n.value=null,l.value&&l.value.value&&(l.value.value="",o(null))},u=g=>{const m=l.value;m&&(m.multiple=Fo(g.multiple),m.accept=Fo(g.accept),m.webkitdirectory=Fo(g.directory),byi(g,"capture")&&(m.capture=Fo(g.capture)))},h=g=>{const m=l.value;if(!m)return;const v={...Myi,...e,...g};u(v),Fo(v.reset)&&d(),m.click()};return u6(()=>{u(e)}),{files:d6(n),open:h,reset:d,onCancel:s,onChange:r}}function q4e(e,t,n={}){const{window:r=e9}=n;return lOn(e,t,r==null?void 0:r.localStorage,n)}const Fyi={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof MouseEvent?[e.movementX,e.movementY]:null};function Nyi(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:o={x:0,y:0},window:s=e9,target:a=s,scroll:l=!0,eventFilter:d}=e;let u=null,h=0,g=0;const m=nd(o.x),v=nd(o.y),f=nd(null),k=typeof t=="function"?t:Fyi[t],A=_=>{const S=k(_);u=_,S&&([m.value,v.value]=S,f.value="mouse"),s&&(h=s.scrollX,g=s.scrollY)},p=_=>{if(_.touches.length>0){const S=k(_.touches[0]);S&&([m.value,v.value]=S,f.value="touch")}},b=()=>{if(!u||!s)return;const _=k(u);u instanceof MouseEvent&&_&&(m.value=_[0]+s.scrollX-h,v.value=_[1]+s.scrollY-g)},w=()=>{m.value=o.x,v.value=o.y},O=d?_=>d(()=>A(_),{}):_=>A(_),y=d?_=>d(()=>p(_),{}):_=>p(_),C=d?()=>d(()=>b(),{}):()=>b();if(a){const _={passive:!0};Yg(a,["mousemove","dragover"],O,_),n&&t!=="movement"&&(Yg(a,["touchstart","touchmove"],y,_),r&&Yg(a,"touchend",w,_)),l&&t==="page"&&Yg(s,"scroll",C,_)}return{x:m,y:v,sourceType:f}}function Uyi(e={}){const{touch:t=!0,drag:n=!0,capture:r=!1,initialValue:o=!1,window:s=e9}=e,a=nd(o),l=nd(null);if(!s)return{pressed:a,sourceType:l};const d=m=>v=>{var f;a.value=!0,l.value=m,(f=e.onPressed)===null||f===void 0||f.call(e,v)},u=m=>{var v;a.value=!1,l.value=null,(v=e.onReleased)===null||v===void 0||v.call(e,m)},h=X(()=>XZe(e.target)||s),g={passive:!0,capture:r};return Yg(h,"mousedown",d("mouse"),g),Yg(s,"mouseleave",u,g),Yg(s,"mouseup",u,g),n&&(Yg(h,"dragstart",d("mouse"),g),Yg(s,"drop",u,g),Yg(s,"dragend",u,g)),t&&(Yg(h,"touchstart",d("touch"),g),Yg(s,"touchend",u,g),Yg(s,"touchcancel",u,g)),{pressed:a,sourceType:l}}const jyi={editMdPreivew:{title:"编辑",confirm:"保存",cancel:"取消"},imageTools:{copy:"复制图片",preview:"预览",download:"下载",msg:{imageLoadFailed:"图片加载失败",convertFailed:"转换失败",copied:"已复制到剪贴板",copyFailed:"复制失败",downloadFailed:"下载失败",downloadStarted:"开始下载",downloadBlockedOpenNewWindow:"当前图片源可能限制下载,已尝试在新窗口打开"}},migrateShow:{title:"迁移数据",desc:"检测到您有旧版本的数据,是否需要迁移?",hide:"不再显示",confirm:"确定",msg:{migrateSuccess:"数据迁移成功",migrateFailed:"数据迁移失败"}},modelSelect:{placeholder:"请选择模型",type:{image:"图像",text:"文本",video:"视频"},msg:{fetchModelFailed:"获取模型数据失败:"},goSetting:"去设置中添加模型"},storyboardImageCheck:{camera:"镜头",dialogTitle:"选择分镜图",preview:"预览",src:"预览图",title:"标题",duration:"时长",lines:"台词",createTime:"创建时间"}},Wyi={title:"ToonFlow设置",menu:{language:"语言设置",vendorConfig:"模型服务",agentConfig:"Agent配置",promptManage:"提示词管理",skillManagement:"Skills技能管理",memoryConfig:"Agent记忆配置",loginConfig:"登录配置",dbConfig:"数据库操作",fileManagement:"文件管理",otherConfig:"其他配置",requestConfig:"请求地址",devConfig:"开发者选项",about:"检查更新",logoutConfig:"退出登录",skillsSkillsManagement:"Skills技能管理"},language:{desc:"选择界面显示语言",msg:{saved:"语言设置已保存"}},vendor:{addVendor:"添加供应商",noVendor:"暂无供应商,请先添加",required:"必填",optionalSection:"选填项",modelSettings:"模型设置",addManually:"手动添加",test:"测试",edit:"编辑",delete:"删除",deleteVendor:"删除供应商",editCode:"编辑代码",updateConfig:"更新配置",addModel:"添加模型",editModel:"编辑模型",displayName:"显示名称",displayNamePlaceholder:"例如:GPT-4o",modelId:"模型标识",modelIdPlaceholder:"例如:gpt-4o",modelType:"模型类型",multimodal:"多模态",supported:"支持",notSupported:"不支持",toolCall:"工具调用",imageMode:"图像模式",videoMode:"视频模式",audioOutput:"音频输出",durationResolution:"时长 / 分辨率映射",durationSec:"时长(秒)",resolution:"分辨率",enterAndPress:"输入后回车",addDurationResolution:"添加一组时长 / 分辨率",testResult:"测试结果",generating:"正在生成中...",addVendorDialog:"添加供应商",codeEditorInfo:"请编写 TypeScript 代码配置供应商信息",reset:"重置",importFile:"导入文件",textModel:"文本模型",imageModel:"图像模型",videoModel:"视频模型",textToImage:"文生图",textToVideo:"文生视频",singleImage:"单图",multiImage:"多图模式",multiReference:"多图参考",gridImage:"网格单图",startEndRequired:"首尾帧(两张必填)",endFrameOptional:"首尾帧(尾帧可选)",startFrameOptional:"首尾帧(首帧可选)",textRef:"文本",imageRef:"图片",videoRef:"视频",audioRef:"音频",audioOptional:"可选",audioOnly:"仅输出有声视频",noAudio:"仅输出无声视频",msg:{getVendorListFailed:"获取供应商列表失败",vendorConfigUpdated:"供应商配置已更新",updateFailed:"更新失败",highRiskConfirm:"⚠️ 高风险操作确认",addVendorRiskBody:"添加新的 AI 供应商将赋予其访问系统 API 的权限,请确认您信任该供应商的代码来源!",iKnowRisk:"我了解风险",cancel:"取消",confirmAgain:"⚠️ 再次确认",addVendorConfirmBody:"确定要添加该供应商吗?添加后它将参与系统的模型调度。",confirmAndAdd:"确认并添加",goBackCheck:"返回检查",vendorAdded:"供应商已成功添加",addFailed:"添加失败",updateVendorRiskBody:"更新 AI 供应商配置将修改其访问系统 API 的权限和行为,请确认您信任修改后的代码来源!",updateVendorConfirmBody:"确定要更新该供应商配置吗?更新后将影响系统的模型调度。",confirmAndUpdate:"确认并更新",updateSuccess:"供应商配置更新成功",fillDisplayName:"请填写显示名称",fillModelId:"请填写模型标识",selectImageMode:"请选择图像模式",selectVideoMode:"请选择视频模式",groupPrefix:"第 {n} 组:",addDuration:"请添加时长",addResolution:"请添加分辨率",selectVendorFirst:"请先选择供应商",modelIdExists:"模型标识已存在",modelAdded:"模型已成功添加",modelUpdated:"模型已成功更新",enterApiKey:"请填写 API KEY",enterApiUrl:"请填写 API URL",testSuccess:"测试成功",imageGenSuccess:"图像生成成功",videoGenSuccess:"视频生成成功",requestFailed:"请求失败:",deleteModelConfirm:"确认删除模型",deleteModelBody:"删除后不可恢复,是否继续?",confirmDelete:"确认删除",modelDeleted:"模型已删除",deleteVendorConfirm:"确认删除供应商",deleteVendorBody:"删除后该供应商下所有模型将一并删除,是否继续?",vendorDeleted:"供应商已删除",deleteFailed:"删除失败",enabled:"已启用",disabled:"已禁用",linkAddVendorRiskBody:"添加新的 AI 供应商将赋予其访问系统 API 的权限,请确认您信任该供应商的链接来源!",importAdd:"添加新的 AI 供应商将赋予其访问系统 API 的权限,请确认您信任该供应商的文件来源!",linkAddFailed:"链接添加失败"},associationSkills:"关联skills",think:"深度思考",code:"代码",linkAddPlaceholder:"输入链接添加",noFileSelected:"成功导入文件",linkAdd:"确认"},agent:{bannerDesc:"使用 Toonflow 官方中转站点,支持一键填入配置,开箱即用,无需手动配置。",visitWebsite:"进入网站",fillKey:"填入KEY",oneClickFill:"一键填入",notOpen:"未开放",notConfigured:"未配置",modelConfig:"模型配置",confirm:"确认",cancel:"取消",selectModel:"选择模型",fillKeyHeader:"填入Toonflow平台的官方KEY",keyPlaceholder:"请输入 KEY",save:"保存",msg:{notAvailable:"该功能暂未开放,敬请期待",configSuccess:"配置成功",updateConfigFailed:"更新配置失败:",keyValid:"KEY有效,已成功连接Toonflow平台",keyInvalid:"KEY无效,请检查后重新输入:",enterKey:"请输入 KEY",saveFailed:"保存失败:",getAgentListFailed:"获取Agent配置列表失败:",toonflowNotFound:"Toonflow官方中转站不存在"}},memory:{warning:"以下配置项已预设为推荐值。除非您清楚了解各项配置的含义及影响,否则建议维持现有设置",vectorModelConfig:"向量模型配置",modelFilePath:"模型文件路径",quantizationType:"量化类型",quantizationPlaceholder:"请输入量化类型",memoryParams:"记忆参数",messagesPerSummary:"触发消息压缩条数",messagesPerSummaryHelp:"保留最近 N 条对话上下文。",shortTermLimit:"单次获取未压缩消息条数",shortTermLimitHelp:"检索时返回的候选记忆条数。",summaryMaxLength:"压缩最大字符",summaryMaxLengthHelp:"消息压缩时允许的最大字符",summaryLimit:"允许查询已压缩消息条数",summaryLimitHelp:"允许查询已压缩消息条数",ragLimit:"搜索记忆条数",ragLimitHelp:"检索时获取的消息数。",deepRetrieveSummaryLimit:"向量召回压缩消息数",deepRetrieveSummaryLimitHelp:"检索压缩消息内容时获取的消息数。",saveConfig:"保存配置",clearMemory:"清空记忆",restoreDefault:"恢复默认配置",msg:{saved:"记忆配置已保存",clearConfirmTitle:"确认清空记忆",clearConfirmBody:"该操作会清空 AI 全局记忆数据,且不可恢复,是否继续?",confirmClear:"确认清空",cancel:"取消",cleared:"记忆已清空",clearFailed:"清空记忆失败"}},login:{username:"用户名",usernamePlaceholder:"请输入用户名",password:"密码",passwordPlaceholder:"请输入密码",modify:"修改",msg:{enterUsername:"请输入用户名",usernameLength:"用户名长度为 2-20 个字符",enterPassword:"请输入密码",passwordLength:"密码长度为 6-20 个字符",fetchFailed:"获取用户信息失败",saveSuccess:"保存成功",saveFailed:"保存失败"}},db:{clearDb:"清空数据库",clearDbDesc:"清空所有数据表中的数据,保留表结构",clearData:"清空数据",confirmAction:"确认操作",msg:{clearDbTitle:"清空数据库",firstConfirm:"确定要清空所有数据表吗?数据清空后无法恢复!",secondConfirm:"这是最后一次确认,清空后所有数据将永久丢失!",keyword:"清空",confirm:"确认",pleaseInput:"请输入",cleared:"所有数据表已清空",operationFailed:"操作失败,请重试",cancelled:"操作已取消"}},skill:{scanSkills:"扫描Skills",addSkill:"新增 Skill",importFromHub:"Toonflow-Hub 导入",filterType:"类型",filterAttribution:"归属",searchPlaceholder:"按名称搜索 skill",search:"查询",totalCount:"共 {count} 条 Skill",typeMain:"核心",typeReferences:"技法",noAttribution:"无归属",noAttributionTip:"⚠️无归属,无法启用Skill",noEmbeddingTip:"⚠️未向量化,无法启用Skill",notEmbedded:"未向量化",stateNormal:"正常",stateGenerating:"生成描述中",stateEmptyDesc:"描述为空",stateAttrError:"归属异常",stateMd5Changed:"MD5变动,建议更新描述",embedding:"向量化",edit:"编辑",delete:"删除",importFromHubDialog:"从 Toonflow-Hub 导入",shareLink:"分享链接",editSkillTitle:"编辑 Skill-",addSkillTitle:"新增 Skill",skillName:"Skill 名称",skillNamePlaceholder:"例如:writing-assistant",path:"路径",attributionAgent:"归属 Agent",selectAttribution:"选择归属 Agent",description:"描述",aiGenerate:"AI生成",descriptionPlaceholder:"描述这个 skill 的用途",cancel:"取消",save:"保存",createSkill:"创建 Skill",attr:{productionDecision:"视频生产-执行导演",productionExecution:"视频生产-摄影指导",productionSupervision:"视频生产-监制",scriptDecision:"剧本Agent-统筹",scriptExecution:"剧本Agent-编剧",scriptSupervision:"剧本Agent-编辑",universalAgent:"制片助理"},msg:{scanSuccess:"扫描成功,共扫描到 {count} 个 Skill 文件",fetchListFailed:"获取 skill 列表失败",fillContentFirst:"请先填写 Markdown 内容",descGenSuccess:"描述生成成功",descGenFailed:"描述生成失败",fillNameFirst:"请先填写 Skill 名称",updateSuccess:"Skill 更新成功",createSuccess:"Skill 创建成功",updateFailed:"Skill 更新失败",createFailed:"Skill 创建失败",deleteConfirmTitle:"确认删除",deleteConfirmBody:"确定要删除 Skill「{name}」吗?此操作不可恢复。",deleteSuccess:"删除成功",deleteFailed:"删除失败",embeddingSuccess:"向量化成功",embeddingFailed:"向量化失败"},fileLost:"文件丢失"},other:{requestTimeout:"请求超时时间",seconds:"秒",inputSeconds:"请输入秒",assetConcurrency:"资产生成并发数",count:"个",inputCount:"请输入个数",chapterRegex:"章节拆分正则",restoreDefault:"恢复默认",regexPlaceholder:"请输入正则表达式",canvasScroll:"画布滚动",canvasIsDisabled:"画布缩放",agentCanvasScalingMethod:"生产页无限画布滚轮操作",zoom:"缩放",scroll:"滚动",isInteracting:"生产页无限画布拖拽性能优化",closeIsInteracting:"关闭",openIsInteracting:"开启"},request:{warning:"如非特殊情况,不需要修改或者配置",apiAddress:"API 地址",apiPlaceholder:"请输入 API 请求地址",save:"保存",reset:"重置",msg:{enterApi:"请输入 API 地址",validUrl:"请输入有效的 HTTP/HTTPS 地址",saved:"请求地址保存成功",reset:"已重置为默认地址",refreshFailed:"刷新失败",refreshSuccess:"刷新成功"},refresh:"刷新"},about:{slogan:"开源的AI驱动漫画 / 分镜创作工具",latestVersion:"当前为最新版本",checkUpdate:"检查更新",codeRepository:"代码仓库",githubRepo:"GitHub 仓库",giteeRepo:"Gitee 仓库",versionUpdate:"版本更新",checkUpdateGithub:"检查更新(GitHub)",getFromGithub:"从GitHub Release 获取最新版本",checkUpdateGitee:"检查更新(Gitee)",getFromGitee:"从Gitee Release获取最新版本",license:"许可证",licenseDesc:"开源许可协议·点击查看详情",updateAvailable:"发现新版本",currentVersion:"当前版本",latestVersionLabel:"最新版本",selectUpdateSource:"选择更新源",github:"GitHub",gitee:"Gitee",confirmUpdate:"确认更新",cancel:"取消",updating:"正在更新...",updateSuccess:"更新成功,请重启应用",updateFailed:"更新失败,请重试",noUpdate:"当前已是最新版本",upToDate:"检测到新版本"},logout:{warning:"退出登录后,您需要重新登录才能继续使用系统。",confirmLogout:"确定要退出登录吗?",logout:"退出登录",msg:{logoutSuccess:"退出登录成功",logoutFailed:"退出登录失败,请重试"}},file:{quickOpen:"快捷打开目录",open:"打开",dockerDesc:'Docker/前后端分离部署请前往"/data/*"目录手动管理文件。',desktopOnly:"该功能仅支持桌面端",folders:{data:"data",dataDesc:"数据目录。",logs:"data/logs",logsDesc:"运行日志与错误日志。",oss:"data/oss",ossDesc:"文件存储相关资源。",skills:"data/skills",skillsDesc:"技能与提示配置文件。",models:"data/models",modelsDesc:"模型文件与配置。",web:"data/web",webDesc:"Web 相关资源,如前端构建产物等。",serve:"data/serve",serveDesc:"后端服务相关文件。"},openFailed:"打开文件夹失败"},dev:{aiDevtool:"切换桌面端模式",devtool:"打开控制台",switchAiDevTool:"关闭/开启 {'@'}ai-sdk/devtools",warning:"以下为开发者工具,谨慎操作!",openDevtool:"打开",devtoolsDoc:"文档地址",devtoolsDesc:"开启后会在Toonflow安装目录创建.devtools文件夹,请确保Toonflow有写入权限(管理员身份运行)。",devtoolsDesc2:"在该目录运行 npx {'@'}ai-sdk/devtools 开启遥测调试",openDevtoolFailed:"打开开发者工具失败,请确保已安装Toonflow桌面端",notInElectron:"WEB环境请手动打开浏览器控制台"}},Vyi={selectProject:"请选择项目",menu:{myProject:"我的项目",taskCenter:"任务中心",novel:"小说原文",scriptAgent:"剧本Agent",scriptManage:"剧本管理",cornerScape:"塑角造景",production:"视频生产",assetCenter:"资产中心",settings:"设置",jumpGithub:"跳转Github",feedbackQuestions:"反馈问题"},project:{title:"我的项目",subtitle:"管理您的所有短剧项目",newProject:"新建项目",dialog:{editTitle:"编辑项目",addTitle:"新建项目",save:"保存",ok:"确定",cancel:"取消",projectType:"项目类型",selectType:"选择项目类型",basedOnNovel:"基于小说原文",projectName:"项目名称",projectNamePh:"请输入项目名称",novelType:"小说类型",novelTypePh:"例如:玄幻、科幻、言情",artStyle:"画风",selected:"已选:",selectArtStyle:"请选择画风",newArtStyle:"新建画风",loading:"加载中...",videoRatio:"影片比例",novelIntro:"小说简介",novelIntroPh:"请输入小说简介",editArtStyleTitle:"编辑画风",newArtStyleTitle:"新建画风",artStyleName:"画风名称",artStyleNamePh:"请输入画风名称",artStyleImage:"画风图片",remove:"移除",uploadCover:"上传封面",artStylePrompt:"提示词",aiExtract:"AI提取提示词",promptPlaceholder:"描述提示词",visualManual:"视觉手册",newVisualManual:"新建视觉手册",editVisualManualTitle:"编辑视觉手册",newVisualManualTitle:"新建视觉手册",visualManualName:"视觉手册名称",visualManualNamePh:"请输入视觉手册名称",visualManualCover:"视觉手册封面",visualManualPrompt:"视觉手册提示词",modelData:"选择图片模型",videoModelData:"选择视频模型",prompt:{placeholder:"输入提示词",saveSuccess:"更新成功",title:"提示词"},basedOnScript:"基于剧本",mdFile:"视觉手册文件",directorManual:"导演手册",addDirectorManual:"新建导演手册",editingDirectorManual:"编辑导演手册",newDirecorManualTitle:"新建导演手册",directorManualPrompt:"导演手册提示词",directorManualName:"导演手册名称",directorManualNamePh:"输入导演手册名称",directorFile:"导演手册文件",directorManualCover:"导演手册封面"},msg:{fetchFailed:"获取项目列表失败",notFound:"未找到该项目!",editSuccess:"编辑项目成功",editFailed:"编辑项目失败",addSuccess:"新增项目成功",addFailed:"新增项目失败",deleteHeader:"删除项目",deleteBody:"确定要删除该项目吗?",deleteConfirm:"删除",deleteCancel:"取消",deleteSuccess:"删除项目成功",deleteFailed:"删除项目失败",extractSuccess:"提示词提取成功",extractFailed:"提取失败",enterArtStyleName:"请输入画风名称",artStyleUpdated:"画风已更新",artStyleAdded:"画风已添加",operationFailed:"操作失败",enterVisualManualName:"请输入视觉手册名称",enterVisualManualImage:"请上传视觉手册封面图片",enterVisualManualTabData:"提示词不能为空",visualManualUpdated:"视觉手册已更新",visualManualAdded:"视觉手册已添加",deleteVisualManualHeader:"删除视觉手册",deleteVisualManualBody:"确定要删除视觉手册「{name}」吗?",deleteVisualManualConfirm:"删除",deleteVisualManualCancel:"取消",enterProjectName:"请输入项目名称",enterProjectIntro:"请输入小说简介",enterProjectType:"请输入小说类型",enterArtStyle:"请选择项目视觉手册",enterVideoRatio:"请选择影片比例",enterImageModel:"请选择图片模型",enterVideoModel:"请选择视频模型",visualManualDeleted:"删除成功",selectMode:"请选择模式",deleteDirectorManualHeader:"删除导演手册",deleteDirectorManualBody:"确定要删除导演手册「{name}」吗?",directorManualUpdated:"导演手册已更新",directorManualAdded:"导演手册已添加",directorManual:"请选择项目导演手册"},type:{novel:"基于小说原文",script:"基于小说剧本"}},novel:{importText:"导入原文",batchDelete:"批量删除",eventAnalysis:"事件分析",searchPlaceholder:"搜索原文名称...",search:"搜索",generating:"生成中...",genFailed:"生成失败",none:"无",edit:"编辑",delete:"删除",col:{id:"序号",reel:"卷",chapter:"章节名称",chapterData:"章节内容",event:"事件",operation:"操作"},msg:{batchDeleteHeader:"批量删除",batchDeleteBody:"确定要删除选中的 {count} 条数据吗?",batchDeleteSuccess:"批量删除成功",deleteHeader:"删除确认",deleteBody:"确定要删除章节名称为「{name}」的数据吗?",deleteSuccess:"删除成功",eventAnalysisHeader:"事件分析",eventAnalysisBody:"确定要对选中的 {count} 条数据进行事件分析吗?"},import:{title:"上传小说原文",step1:"第一步",step2:"第二步",step3:"第三步",dragUpload:"拖拽小说原文文件到此处或点击上传",uploadHint:"支持 .txt, .docx 格式,建议文件大小不超过 10MB",or:"或",pasteLabel:"直接粘贴小说原文内容",pastePlaceholder:"请输入小说原文内容",chars:"字符",tooShort:"内容过短,建议至少100字符",parsedChapters:"已解析 {count} 章节",nextStep:"下一步",prevStep:"上一步",selectedInfo:"已勾选:{count}字(小于200000字)",eventAnalysis:"事件分析",saveAndAnalyze:"保存原文并分析事件",col:{chapter:"章",reel:"卷",chapterName:"章节名称",chapterData:"章节内容"},msg:{parseFailed:"文件解析失败,请重新上传",selectFile:"选择文件",docNotSupported:".doc文件不支持解析,请转换为.ts文件",unsupportedType:"不支持的文件类型",fileTooLarge:"文件大小超过10MB,请上传更小的文件",selectChapters:"请先勾选章节",saveSuccess:"小说原文保存成功"},importAdd:"拖拽文件到此处或点击上传",limit:"支持 .ts格式"},editDialog:{title:"编辑小说原文",chapterName:"章节名称",chapterNamePh:"请输入章节名称",eventContent:"事件内容",eventContentPh:"输入事件内容",chapterContent:"章节内容",chapterContentPh:"请输入章节内容",cancel:"取消",save:"保存",msg:{updateSuccess:"小说原文更新成功"}},event:{regenerate:"重新生成事件",batchDelete:"批量删除",noData:"暂无事件数据,点击开始生成",generate:"生成事件",generatingHint:"事件生成中,请稍候...",loading:"加载中...",delete:"删除",col:{id:"事件ID",eventName:"事件名称",chapters:"来源章节",detail:"事件过程",createTime:"创建时间",operation:"操作"},msg:{deleteHeader:"删除事件",deleteBody:"确定要删除这个事件吗?",deleteSuccess:"删除成功",generateSuccess:"事件生成成功",batchDeleteHeader:"批量删除",batchDeleteBody:"确定要删除选中的 {count} 条数据吗?",batchDeleteSuccess:"批量删除成功"}},analysis:{analyzeFirst:"请先分析事件",startAnalysis:"开始分析",chapterHeader:"第{index}章 - {name}",analyzing:"事件分析中"}},scriptAgent:{inputPlaceholder:"请输入内容",chapterEvents:"章节事件",clearMessageMemory:"清空消息记忆",clearSummaryMemory:"清空摘要记忆",clearAllMemory:"清空全部记忆",edit:"编辑",storySkeleton:"故事骨架",adaptationStrategy:"改编策略",script:"剧本",noContent:"暂无内容",relatedAssets:"关联资产",editScript:"编辑剧本",save:"保存",scriptTitle:"标题",titlePlaceholder:"请输入标题",content:"内容",contentPlaceholder:"请输入剧本内容",selectAssets:"选择资产",noAssets:"暂未关联资产",selectAssetsTitle:"选择关联资产",welcomeMsg:"你好!我是 Toonflow 智能助手,需要我开始为您生成剧本吗?",start:"开始",memoryType:{message:"消息记忆",summary:"摘要记忆",all:"全部记忆"},forceGenerate:{title:"是否强制生成",desc:"当前存在尚未完成事件分析的章节,是否仍然强制继续生成?",confirm:"强制生成",cancel:"取消"},msg:{clearConfirm:"确认清空",clearBody:"确定要清空{type}吗?此操作无法撤销。",confirmClear:"确认清空",cancel:"取消",memoryCleared:"{type}已清空",scriptUpdated:"剧本更新成功",scriptUpdateFailed:"更新剧本失败,请稍后再试",searchScriptFailed:"搜索剧本失败",updated:"保存成功",error:"保存失败",reconnect:"重新连接",notReconnect:"重新连接对话会被切断是否确认",keepReconnect:"确认",deleteConfirm:"删除确认",deleteBody:"删除正文",confirmDelete:"确认删除",scriptDeleted:"脚本已删除"},reconnect:"重新连接"},cornerScape:{batchSettings:"批量生成设置",quickActions:"快捷指令",selectUngenerated:"全选未生成项",selectGenerated:"全选已生成项",selectFailed:"全选错误项",invertSelection:"反选",clearSelection:"取消选择",batchPreview:"批预览图片",assetTypeFilter:"素材类型筛选",genModel:"生成模型",resolution:"分辨率",resolutionPh:"请选择分辨率",concurrency:"并发数量",concurrencyPh:"请输入并发数",startBatch:"开始批量生成图片",waitingGen:"等待生成",generating:"生成中",genFailed:"生成失败",imageError:"图片错误",typeRole:"角色",typeScene:"场景",typeTool:"工具",typeUnknown:"未知",descriptionSuffix:"描述:",operateScriptFirst:"请先操作剧本",individualConfig:"单独配置",noImage:"暂无图片",promptLabel:"提示词",promptPh:"请输入提示词",aiPolish:"AI 润色",regenerate:"重新生成",filterRole:"人物",filterScene:"场景",filterTool:"道具",unnamed:"未命名",noDescription:"无描述",msg:{selectModel:"请选择生成模型",selectResolution:"请选择分辨率",enterPrompt:"请输入提示词",enterPromptFirst:"请先输入提示词",genSuccess:"{name} 生成成功",genFailed:"{name} 生成失败",promptGenSuccess:"提示词生成成功",polishFailed:"润色失败,请重试",selectAtLeastOne:"请至少选择一个资产进行批量生成",batchStarted:"开始批量生成,共 {count} 个,并发数 {concurrent}",batchItemFailed:"{name} 生成失败:{error}",batchComplete:"批量生成完成",batchFailed:"批量生成失败",replaceFailed:"替换失败",replaceSuccess:"替换成功",emptyPrompt:"勾选的数据{emptyPromptNames}提示词为空,请先生成提示词",promptGenFail:"提示词生成失败",saveSuccess:"修改提示词成功",saveFailed:"提示词修改失败"},history:"历史图片",confirmReplace:"确认替换",batchGenerationPrompt:"批量生成提示词",generatingPrompt:"生成中",selectPromptEmpty:"全选提示词为空",noEmptyPrompt:"没有提示词为空的资产",selectedCount:"已选中{count}个资产"},script:{searchPlaceholder:"搜索剧本名称...",search:"搜索",addScript:"新建剧本",cancelSelectAll:"取消全选",selectAll:"全选",exportScript:"导出剧本",msg:{extracting:"资产提取中",extractFailed:"资产提取失败",extractingInProgress:"正在提取中",projectNotFound:"项目未找到",selectExport:"请选择导出剧本",deleteHeader:"确认删除",deleteBody:"确认要删除这个剧本吗?次操作无法复原",deleteConfirm:"删除",cancel:"取消",deleteSuccess:"删除成功",deleteFailed:"删除失败",selectDelScript:"请选择删除剧本",batchDeleteHeader:"批量删除",batchDeleteBody:"确定要删除选中的{count}个剧本吗?此操作无法复原",batchDeleteSuccess:"批量删除成功",searchFailed:"搜索剧本失败",selectsExport:"请选择导出剧本"},add:{title:"新增剧本",scriptName:"剧本名称",scriptNamePh:"请输入剧本名称",uploadFile:"上传文件",dragUpload:"拖拽剧本文件到此处或点击上传",uploadHint:"支持 .txt, .docx 格式,建议文件大小不超过 10MB",scriptContent:"剧本内容",scriptContentPh:"请上传或输入剧本内容...",relatedAssets:"关联资产",selectAssets:"选择资产",noAssets:"暂未关联资产",cancel:"取消",confirm:"确认",msg:{fileReadFailed:"文件读取失败",docNotSupported:".doc文件不支持解析,请转换为.txt或.docx文件",unsupportedType:"不支持的文件类型",fileTooLarge:"文件大小超过10MB,请上传更小的文件",parsing:"文件解析中...",parseFailed:"文件解析失败,请重新上传",selectAssetsTitle:"选择关联资产",enterContent:"请上传或输入剧本内容",enterName:"请输入剧本名称",addSuccess:"剧本添加成功",addFailed:"添加剧本失败,请稍后再试"}},edit:{title:"剧本详情",scriptName:"剧本名称",scriptNamePh:"请输入剧本名称",scriptContent:"剧本内容",scriptContentPh:"请输入剧本内容...",relatedAssets:"关联资产",selectAssets:"选择资产",noAssets:"暂未关联资产",msg:{selectAssetsTitle:"选择关联资产",updateSuccess:"剧本更新成功",updateFailed:"更新剧本失败,请稍后再试"}},deleteScript:"批量删除剧本",extractAssets:"提取资产"},assets:{addPrefix:"新增",batchGenerate:"批量生成",generatePrompt:"生成提示词",generateImage:"生成图片",batchDelete:"批量删除",searchPlaceholder:"搜索资产名称...",search:"搜索",preview:"预览",generate:"生成",edit:"编辑",delete:"删除",generating:"生成中",play:"播放",mediaPreview:"媒体预览",confirmBatch:"是否确认{type}!",model:"模型",resolution:"分辨率",resolutionPh:"请选择分辨率",batchGenPrompt:"批量生成提示词",batchGenImage:"批量生成图片",role:"角色",prop:"道具",scene:"场景",clip:"素材",uploadSuccess:"上传成功",selectAtLeastOne:"请至少选择一个资产",noDescription:"无描述",promptGenSuccess:"「{name}」提示词生成成功",promptGenFail:"「{name}」提示词生成失败:{error}",selectModel:"请选择模型",selectResolution:"请选择分辨率",noPromptForImage:"「{name}」没有提示词,无法生成图片",imageGenSuccess:"「{name}」图片生成成功",imageGenFail:"「{name}」图片生成失败:{error}",confirmDeleteHeader:"确认删除",confirmBatchDeleteBody:"确定要批量删除这些资产吗?此操作无法撤销。",confirmDeleteBody:"确定要删除这资产吗?此操作无法撤销。",deleteBtn:"删除",cancelBtn:"取消",deleteSuccess:"资产删除成功",deleteFail:"资产删除失败",colPreview:"预览",colName:"名称",colPrompt:"提示词",colDescribe:"描述",colRemark:"备注",colCreateTime:"创建时间",colOperation:"操作",add:{name:"名称",namePh:"请输入名称",describe:"描述",describePh:"请输入描述",remark:"备注",remarkPh:"请输入备注",prompt:"提示词",promptPh:"请输入提示词",nameRequired:"请输入名称",describeRequired:"请输入详情",remarkRequired:"请输入备注",updateSuccess:"资产更新成功",addSuccess:"资产添加成功"},gen:{header:"图片生成",uploadRef:"上传参考图片",optional:"可选",promptLabel:"生图提示词",smartGenerate:"智能生成",generatingPrompt:"智能生成提示词中...",promptPlaceholder:"描述您想要生成的图片内容,例如:一个充满科技感的未来城市,霓虹灯闪烁,赛博朋克风格...",selectModel:"选择模型",selectResolution:"选择分辨率",generateBtn:"生成图片",resultTitle:"生成结果",generatedCount:"已生成 {count} 张,请选择一张",generatingLabel:"生成中...",genFailed:"生成失败",confirmSelect:"确认选择",promptSuccess:"提示词生成成功",promptFail:"提示词生成失败",fillPrompt:"请填写提示词",pickResolution:"请选择分辨率",pickModel:"请选择模型",unnamed:"未命名",assetGenSuccess:"资产生成成功",assetGenFail:"资产生成失败",uploadOk:"上传成功",imageSelected:"已选择该图片",imageDeleted:"已删除该图片",imageSaved:"图片已保存",completed:"已完成"},batch:{header:"批量生成",selected:"已选择 {count} 项",selectAll:"全选",clearSelection:"清空选择",inputPh:"请输入内容",saveSelected:"保存选中 ({count})",colPreviewImg:"预览图",selectToSave:"请选择要保存的项目",saveSuccess:"保存成功",saveFail:"保存失败,请重试",promptDone:"提示词生成完成",promptFail:"提示词生成失败",missingPrompts:"有 {count} 个资产缺少提示词,请先生成提示词",imageDone:"图片生成完成",imageGenFail:"图片生成失败",unknownError:"未知错误",promptGenCancelled:"已取消生成"}},production:{selectPlaceholder:"请选择剧集",edit:"编辑",node:{script:{title:"剧本",editDialog:"编辑剧本"},scriptPlan:{title:"导演计划",editDialog:"编辑导演计划"},storyboard:{title:"分镜面板",notGenerated:"未生成",scaleRatio:"缩放比例",gridPreview:"宫格预览",noPreviewImages:"暂无可预览的图片",imageLoadFailed:"图片加载失败",promptPlaceholder:"请输入提示词",prompt:"提示词",editInfo:"提示词修改"},storyboardTable:{title:"分镜表",editDialog:"编辑分镜表"},assets:{title:"衍生资产",generateFailed:"生成失败",notGenerated:"未生成",originalAsset:"原资产",derived:"衍生",noDerivedAssets:"无衍生资产"},poster:{title:"视频封面",coverCount:"{count} 张"},workbench:{title:"视频工作台"}},editImage:{upload:"上传",generate:"生成",saveFailed:"保存失败,请重试",fetchFailed:"获取数据失败",generating:"生成中...",deleteNode:"删除节点",ratio:"比例",quality:"质量",generateBtn:"生成图片",selectImage:"选择图片",imageGeneration:"图片生成",promptPlaceholder:"描述你想要生成的图片...",imageRef:"图{index}",videoRef:"视频{index}",audioRef:"音频{index}",reference:"参考{index}",noReferences:"暂无可引用的参考文件",selectModel:"请先选择模型",selectQuality:"请选择画质",selectRatio:"请选择比例",generateFailed:"生成失败",generateFirst:"请先生成图片",generatedResult:"生成结果",waitingGenerate:"等待生成",layoutLR:"自动排版-左右布局",layoutTB:"自动排版-上下布局",uploadAssetImage:"资产图片上传",uploadStoryboardImage:"分镜图片上传",uploadImage:"资产图片上传",mode:"模式",closeConfirmTitle:"是否关闭编辑面板?",closeConfirmBody:"关闭之后未保存的数据会丢失"},save:"选取",cancel:"取消",chatBox:{inputPlaceholder:"输入消息...",generateDerivedAssets:"生成衍生资产",welcomeMessage:"你好!我是你的 AI 助手,有什么可以帮你的吗?",adjustModel:"调整模型",startMakingVideo:"开始制作视频",startMakingVideoPrompt:"请帮我开始制作视频",clearMessageMemory:"清除消息记忆",clearSummaryMemory:"清除摘要记忆",clearAllMemory:"清除所有记忆",messageMemory:"消息记忆",summaryMemory:"摘要记忆",allMemory:"所有记忆",confirmClear:"清除记忆",confirmClearBody:"确定要清除{type}吗?",confirmClearBtn:"确定清除",memoryCleared:"{type}已清除"},wb:{quickPreview:"快速预览",videoGeneration:"分镜台",videoEditing:"剪辑台",hint:"提示",extractLines:"是否从视频中提取台词?",no:"否",confirm:"确定",extractLinesQuestion:"是否从视频中提取台词作为字幕?",importingLoading:"正在导入中,请稍候...",mainTrackVideo:"主轨道(视频)",subtitle1:"字幕1",storyboardVideoName:"分镜视频-{storyboard}.mp4"},preview:{noImage:"暂无图片",storyboardDesc:"分镜描述",serialNumber:"序号",noDescription:"暂无描述",duration:"时长",seconds:"秒",relatedAssets:"涉及资产",role:"角色",prop:"道具",scene:"场景",noCharacters:"暂无出场人物",imagePrompt:"图片提示词",selectAll:"全选",exportImage:"导出图片",sceneDescription:"画面描述",promptLabel:"提示词",restoreSort:"还原排序",restoreSortConfirm:"确定要还原为初始排序吗?",tip:"提示",selectAtLeastOne:"请至少选择一个分镜进行导出",exportFilename:"分镜图片"},generate:{noVideo:"暂无数据",videoPrompt:"视频提示词",promptPlaceholder:"输入提示词,描述你想要生成的视频内容...",refImage:"参考图",image:"图片",refVideo:"参考视频",refImageLabel:"参考图片",refAudio:"参考音频",muteAudio:"关闭音频",enableAudio:"开启音频",resolution:"分辨率",duration:"时长",generate:"生成",historyVersions:"历史版本",confirmSelection:"确认选中",noHistory:"暂无历史记录",generating:"生成中",generatingPrompt:"智能生成提示词中",generateFailed:"生成失败",selectAll:"全选",videoTrack:"视频轨道",batchGenerate:"批量生成",importToEditor:"导入剪辑台",modeSingleImage:"单图",modeMultiImage:"多图",modeGridImage:"网格多图",modeStartEnd:"首尾帧",modeText:"文生视频",modeVideoRef:"视频参考",modeImageRef:"图片参考",modeAudioRef:"音频参考",modeTextRef:"文本参考",startFrame:"首帧",startFrameOptional:"首帧(可选)",endFrame:"尾帧",endFrameOptional:"尾帧(可选)",selectRefImage:"选择参考图",selectRefImages:"选择参考图片",selectEndFrame:"选择尾帧图",selectRefVideoAsset:"选择参考视频",selectRefAudioAsset:"选择参考音频",selectRefImageAsset:"选择参考图片",selectImageSource:"选择图片来源",fromStoryboard:"分镜图",fromStoryboardDesc:"从分镜列表中选择图片",fromAssets:"资产图",fromAssetsDesc:"从资产库中选择图片",confirmDelete:"确认删除",confirmDeleteBody:"确定要删除这个视频吗?此操作无法撤销。",delete:"删除",cancel:"取消",deleteSuccess:"视频删除成功",deleteFailed:"删除失败",selectVideoFirst:"请先选择一个视频",confirmSuccess:"确认选中成功",batchSubmitted:"已提交批量生成请求,正在处理中...",configNotFound:"配置不存在",stateSuccess:"生成成功",statePending:"待生产",pollingFailed:"视频状态查询失败,请手动刷新",batchGeneratePrompt:"批量生成提示词",promptEmpty:"请先输入视频提示词",modelEmpty:"请先选择视频生成模型",batchPromptEmpty:"分镜 {names} 的视频提示词为空,请先生成或填写提示词",batchModelEmpty:"分镜 {names} 未配置视频生成模型,请先选择模型"},editVideo:{reset:"重置",undo:"撤销",redo:"重做",split:"分割",delete:"删除",rendering:"渲染中...",exportVideo:"导出视频",exportSuccess:"视频导出完成",exportFailed:"导出失败",sampleSubtitle:"示例字幕文本",customText:"自定义文本内容",transitionBetweenClips:"转场需要添加在两个相邻的 Clip 之间",transitionExists:"该位置已存在转场",videoPreviewArea:"视频预览区域",clipMaterials:"剪辑素材",propertyPanel:"属性面板",selectClip:"选择一个 Clip 查看属性",basicInfo:"基础信息",name:"名称",clipNamePlaceholder:"Clip 名称",startTime:"开始",endTime:"结束",totalDuration:"总时长",videoProperties:"视频属性",opacity:"不透明度",volume:"音量",playbackSpeed:"播放速度",audioProperties:"音频属性",fadeIn:"淡入",fadeOut:"淡出",transitionProperties:"转场属性",transitionType:"转场类型",transFade:"淡入淡出",transSlide:"滑动",transWipe:"擦除",transDissolve:"溶解",transZoom:"缩放",transRotate:"旋转",transitionDuration:"转场时长",subtitleProperties:"字幕属性",textContent:"文本内容",fontSize:"字体大小",copy:"复制",deleteConfirm:"删除确认",deleteClipConfirm:"确定要删除这个 Clip 吗?",avCanvasNotInit:"AVCanvas 尚未初始化",noExportContent:"没有可导出的内容",exportProject:"导出项目",transitionAdded:"已添加转场: {name}",splitClip:"分割片段",deleteClip:"删除片段",addClip:"添加 {name}",duplicateClip:"复制 Clip",addTransition:"添加转场",updateClip:"更新 Clip {key}",updatePlaybackRate:"更新播放倍速为 {rate}x",updateTransitionDuration:"更新转场时长",playbackRateRange:"播放倍速必须在 0.1 到 10 之间",updatePlaybackRateFailed:"更新播放倍速失败:",importProject:"导入项目",import:"导入"},clipType:{video:"视频",audio:"音频",subtitle:"字幕",transition:"转场",sticker:"贴纸",filter:"滤镜",effect:"特效"},track:{video:"视频",image:"图片",audio:"音频",subtitle:"字幕",text:"文本",sticker:"贴纸",filter:"滤镜",effect:"特效"},transition:{fade:"淡入淡出",slide:"滑动",slideLeft:"向左滑动",slideRight:"向右滑动",slideUp:"向上滑动",slideDown:"向下滑动",wipe:"擦除",wipeLeft:"向左擦除",wipeRight:"向右擦除",wipeUp:"向上擦除",wipeDown:"向下擦除",dissolve:"溶解",zoom:"缩放",zoomIn:"放大",zoomOut:"缩小",rotate:"旋转",circle:"圆形",diamond:"菱形",clock:"时钟",blur:"模糊"},media:{titleText:"标题文本",subtitleText:"字幕文本",customText:"自定义文本",media:"媒体",image:"图片",audio:"音频",subtitle:"字幕",transition:"转场",effect:"特效",filter:"滤镜",loading:"加载中...",subtitlePreview:"字",video:"视频"},effect:{fadeIn:"淡入",fadeOut:"淡出",flash:"闪烁",shake:"抖动",zoomIn:"放大进入",zoomOut:"缩小退出",pulse:"脉冲",rotateIn:"旋转进入",sticker1:"贴纸 1",sticker2:"贴纸 2"},filter:{grayscale:"黑白",sepia:"复古",warm:"暖色",cool:"冷色",vivid:"鲜艳",bright:"明亮",highContrast:"高对比",blur:"模糊",invert:"反色",semiTransparent:"半透明"},guideSwitchEpisode:"切换剧集",guideSwitchEpisodeBody:"切换剧集挪移到这里了哦",guideRefresh:"刷新数据",guideRefreshBody:"点击刷新按钮重新获取工作区数据",guideCanvasNav:"画布操作",guideCanvasNavBody:"滚轮上下平移画布,Ctrl + 滚轮缩放画布,按住鼠标左键拖拽自由平移",guideRightChat:"AI 对话",guideRightChatBody:"在右侧对话框中与 AI 交流,驱动自动化流程",guideLayoutBtn:"自动排版",guideLayoutBtnBody:"点击此按钮可自动整理节点布局",autoLayoutLR:"自动排版-左右布局",autoLayoutTB:"自动排版-上下布局",getFlowData:"刷新工作区",confirm:"切换剧集确认",confirmEpisodesSwitch:"当前任务仍在进行中,切换剧集会重连会话,是否继续切换?"},task:{title:"任务列表",subtitle:"您的最新任务执行记录",refresh:"刷新",categoryLabel:"任务大类:",stateLabel:"状态:",noFailReason:"暂无失败原因",stateAll:"全部",stateRunning:"进行中",stateCompleted:"已完成",stateFailed:"生成失败",fetchFailed:"获取任务列表失败",col:{taskClass:"任务大类",relatedObjects:"关联对象",model:"模型",describe:"描述",state:"状态",startTime:"时间",reason:"失败原因"},project:"项目名称:"},noVideo:"暂无视频",prompt:"视频提示词",generateText:"AI生成提示词",selectStoryboard:"选择分镜",generate:{noVideo:"暂无数据",prompt:"视频提示词",generateText:"AI生成提示词",selectStoryboard:"选择分镜",generate:"生成视频",history:"历史版本",generating:"生成中",generateFailed:"失败",selectAll:"全选",selected:"已选",batchGenerateText:"批量生成提示词",batchGenerateVideo:"批量生成视频",importVideo:"导入剪辑台",emptyTrack:"第{index}段",del:"删除",delConfirm:"确认删除该段?",selectSource:"选择来源",confirm:"从资产选择",cancel:"从分镜选择",generateSuccess:"视频生成成功",selectVideoFailed:"视频选择失败",selectVideoSuccess:"视频选择成功",selectTrackFirst:"请先选择分镜",noSelectedVideo:"没有选择的视频",generateConfirm:"确认生成",generateConfirmBody:"是否确认生成视频",generateVideosInBatches:"批量生成视频",generateStarted:"生成开始",promptEmpty:"勾选需要生成视频的数据有提示词为空,是否继续生成",skipDataWithEmptyVideoPromptWords:"需要生成的视频数据存在提示词为空",duration:"时长",resolution:"分辨率",delVideo:"确认删除此视频?",delSuccess:"删除成功",addReference:"添加参考",promptPlaceholder:"请输入视频提示词",downloadVideo:"批量下载视频",selectVideo:"请勾选需要下载的视频"}},zyi={slogan:"智能短剧创作平台",tips:"默认账号:admin / admin123",settings:"服务器设置",requestAddress:"请求地址",username:"用户名",password:"密码",login:"登录",usernameRequired:"请输入用户名",passwordRequired:"请输入密码",enterUsernameAndPassword:"请输入用户名或密码",loginSuccess:"登录成功",settingsSaved:"设置已保存"},Hyi={cancel:"取消",confirm:"确定",selectAssets:"选择资产",sessionExpired:"登录已过期,请重新登录",openSettings:"打开设置",cancelled:"已取消生成",defaultReel:"正文卷",save:"保存",submitting:"提交中",editSuccess:"修改成功",editFailed:"修改失败",submit:"提交"},$yi={prompt:"提示词"},Xyi={welcomeTitle:"欢迎使用 ToonFlow",welcomeDesc:"AI 驱动的漫画创作工作流平台,让我们花一分钟完成初始配置。",startConfig:"开始配置",skip:"跳过引导",configModel:"添加模型服务",configData:"配置 Agent",startUse:"开始使用",configModelTitle:"添加模型服务供应商",configModelDesc:"首先,你需要在设置中添加至少一个 AI 模型服务供应商(如 OpenAI、Claude 等),并填写对应的 API Key。",configModelTip:"点击下方按钮将打开设置页面的「模型服务」选项卡,添加供应商后回到此处继续。",configModelBtn:"前往配置模型服务",configAgentTitle:"分配 Agent 模型",configAgentDesc:"接下来,在 Agent 配置中为各个功能模块分配模型,这样系统才知道调用哪个模型来完成任务。",configAgentTip:"点击下方按钮将打开设置页面的「Agent 配置」选项卡,为各功能分配模型后回到此处。",configAgentBtn:"前往配置 Agent",finishTitle:"🎉 一切就绪!",finishDesc:"配置完成,现在你可以开始使用所有功能了。如需调整,随时可以在设置中修改。",qrcodeLabel:"加入微信交流群,获取更多帮助:",githubLabel:"如果觉得好用,请给我们一个 ⭐ Star 吧!",prevStep:"上一步",nextStep:"下一步",finish:"开始使用"},Gyi={skillManagement:{search:"搜索文件名",empty:"没有匹配的文件",edit:"编辑",selectOnTheLeft:"请从左侧选择文件"}},Yyi={assetsNotExists:"资产不存在",assets:{notExist:"资产不存在",notDerivativeExist:"衍生资产不存在",derivativeUpdateSuccess:"更新成功",derivativeState:"未生成",derivativeAddSuccess:"添加成功",derivativeDelSuccess:"删除成功",notGenerated:"未生成"},addSuccess:"更新成功",state:{unused:"未生成"},saveSuccess:"添加成功"},Zyi={generating:"生成中"},qyi={scanning:"🔍 正在解析加载Skill",scanComplete:"✨ Skill 扫描完成",inserted:"✅ 新增{count}个Skill",updated:"🔄 更新{count}个Skill",removed:"🗑️ 移除{count}个Skill",scannedFiles:"📁 扫描 {count} 个文件",noDescription:"📝 {count}个Skill缺少描述",noAttribution:"👤 {count}个Skill缺少归属",configWarning:"⚠️ Skill 配置警告",openSettings:"打开设置",scanFailed:"❌ 扫描失败",checkNetwork:"🔌 请检查网络连接或稍后重试",retryLater:"🔁 请稍后重试"},Kyi="生成视频",Jyi="历史版本",eCi="生成中",tCi="失败",nCi="全选",iCi="已选 ",rCi="导入视频",oCi="123",sCi="确认删除",aCi="确认删除该段?",lCi="选择来源",cCi="从资产选择",dCi="从分镜选择",uCi={newVersion:"有新版本,是否更新?"},hCi={components:jyi,settings:Wyi,workbench:Vyi,login:zyi,common:Hyi,"workbench.project.msg.enterProjectQuality":"请选择图片质量",promptManage:$yi,"workbench.production.node.storyboard.batchGenerateImage":"重新生成","workbench.production.node.storyboard.batchGenerateFailed":"生成失败","workbench.production.node.storyboard.batchGenerateSuccess":"开始生成分镜","workbench.production.node.storyboard.removeFailed":"删除分镜失败","workbench.production.node.storyboard.editNode":"编辑","workbench.production.node.storyboard.deleteNode":"删除","workbench.production.node.storyboard.confirmDeleteBody":"确认是否删除该分镜",hello:Xyi,setting:Gyi,storyboard:Yyi,productionAgent:Zyi,skillScan:qyi,generate:Kyi,history:Jyi,generating:eCi,generateFailed:tCi,selectAll:nCi,selected:iCi,importVideo:rCi,emptyTrack:oCi,del:sCi,delConfirm:aCi,selectSource:lCi,confirm:cCi,cancel:dCi,"workbench.script.msg.waitExtract":"等待提取","workbench.script.msg.exportSuccess":"导出成功","workbench.script.msg.exportFailed":"导出失败","workbench.production.node.storyboard.videoDescPlaceholder":"请输入视频描述","workbench.production.node.storyboard.videoDesc":"视频描述","workbench.production.node.assets.confirmDeleteBody":"确认是否删除该资产","workbench.production.node.assets.removeFailed":"删除资产失败",version:uCi,"workbench.production.generatedNode.localUpload":"本地上传","workbench.production.editImage.uploadFailed":"图片上传失败","workbench.production.editImage.noImage":"请先添加图片"},fCi={editMdPreivew:{title:"編輯",confirm:"儲存",cancel:"取消"},imageTools:{copy:"複製圖片",preview:"預覽",download:"下載",msg:{imageLoadFailed:"圖片載入失敗",convertFailed:"轉換失敗",copied:"已複製到剪貼簿",copyFailed:"複製失敗",downloadFailed:"下載失敗",downloadStarted:"開始下載",downloadBlockedOpenNewWindow:"目前的圖片來源可能限制下載,已嘗試在新視窗開啟"}},migrateShow:{title:"轉移資料",desc:"偵測到您有舊版本的資料,是否需要轉移?",hide:"不再顯示",confirm:"確定",msg:{migrateSuccess:"資料轉移成功",migrateFailed:"資料轉移失敗"}},modelSelect:{placeholder:"請選擇模型",type:{image:"圖片",text:"文字",video:"影片"},msg:{fetchModelFailed:"取得模型資料失敗:"},goSetting:"去設定中加入模型"},update:{title:"發現新版本",currentVersion:"目前版本:",latestVersion:"最新版本:",tip:"發現新版本,建議您更新以獲得更好的體驗",later:"稍後提醒",updateNow:"立即更新"}},gCi={title:"ToonFlow 設定",menu:{language:"語言設定",vendorConfig:"模型服務",agentConfig:"Agent 設定",promptManage:"提示詞管理",skillManagement:"Skills技能管理",memoryConfig:"Agent 記憶設定",loginConfig:"登入設定",dbConfig:"資料庫操作",fileManagement:"檔案管理",otherConfig:"其他設定",requestConfig:"請求網址",about:"檢查更新",logoutConfig:"登出",skillsSkillsManagement:"Skills技能管理"},language:{desc:"選擇介面顯示語言",msg:{saved:"語言設定已儲存"}},vendor:{addVendor:"新增供應商",noVendor:"暫無供應商,請先新增",required:"必填",optionalSection:"選填項目",modelSettings:"模型設定",addManually:"手動新增",test:"測試",edit:"編輯",delete:"刪除",deleteVendor:"刪除供應商",editCode:"編輯程式碼",updateConfig:"更新設定",addModel:"新增模型",editModel:"編輯模型",displayName:"顯示名稱",displayNamePlaceholder:"例如:GPT-4o",modelId:"模型 ID",modelIdPlaceholder:"例如:gpt-4o",modelType:"模型類型",multimodal:"多模態",supported:"支援",notSupported:"不支援",toolCall:"工具呼叫",imageMode:"圖片模式",videoMode:"影片模式",audioOutput:"音訊輸出",durationResolution:"時長 / 解析度對應",durationSec:"時長(秒)",resolution:"解析度",enterAndPress:"輸入後按下 Enter",addDurationResolution:"新增一組時長 / 解析度",testResult:"測試結果",generating:"正在生成中...",addVendorDialog:"新增供應商",codeEditorInfo:"請撰寫 TypeScript 程式碼設定供應商資訊",reset:"重設",importFile:"匯入檔案",textModel:"文字模型",imageModel:"圖片模型",videoModel:"影片模型",textToImage:"文字生成圖片",textToVideo:"文字生成影片",singleImage:"單圖",multiImage:"多圖模式",multiReference:"多圖參考",gridImage:"網格單圖",startEndRequired:"首尾影格(兩張必填)",endFrameOptional:"首尾影格(尾影格選填)",startFrameOptional:"首尾影格(首影格選填)",textRef:"文字",imageRef:"圖片",videoRef:"影片",audioRef:"音訊",audioOptional:"選填",audioOnly:"僅輸出有聲影片",noAudio:"僅輸出無聲影片",msg:{getVendorListFailed:"取得供應商列表失敗",vendorConfigUpdated:"供應商設定已更新",updateFailed:"更新失敗",highRiskConfirm:"⚠️ 高風險操作確認",addVendorRiskBody:"新增的 AI 供應商將賦予其存取系統 API 的權限,請確認您信任該供應商的程式碼來源!",iKnowRisk:"我了解風險",cancel:"取消",confirmAgain:"⚠️ 再次確認",addVendorConfirmBody:"確定要新增該供應商嗎?新增後它將參與系統的模型排程。",confirmAndAdd:"確認並新增",goBackCheck:"返回檢查",vendorAdded:"供應商已成功新增",addFailed:"新增失敗",updateVendorRiskBody:"更新 AI 供應商設定將修改其存取系統 API 的權限和行為,請確認您信任修改後的程式碼來源!",updateVendorConfirmBody:"確定要更新該供應商設定嗎?更新後將影響系統的模型排程。",confirmAndUpdate:"確認並更新",updateSuccess:"供應商設定更新成功",fillDisplayName:"請填寫顯示名稱",fillModelId:"請填寫模型 ID",selectImageMode:"請選擇圖片模式",selectVideoMode:"請選擇影片模式",groupPrefix:"第 {n} 組:",addDuration:"請新增時長",addResolution:"請新增解析度",selectVendorFirst:"請先選擇供應商",modelIdExists:"模型 ID 已存在",modelAdded:"模型已成功新增",modelUpdated:"模型已成功更新",enterApiKey:"請填寫 API KEY",enterApiUrl:"請填寫 API URL",testSuccess:"測試成功",imageGenSuccess:"圖片生成成功",videoGenSuccess:"影片生成成功",requestFailed:"請求失敗",deleteModelConfirm:"確認刪除模型",deleteModelBody:"刪除後不可恢復,是否繼續?",confirmDelete:"確認刪除",modelDeleted:"模型已刪除",deleteVendorConfirm:"確認刪除供應商",deleteVendorBody:"刪除後該供應商下所有模型將一併刪除,是否繼續?",vendorDeleted:"供應商已刪除",deleteFailed:"刪除失敗",enabled:"已啟用",disabled:"已停用",linkAddVendorRiskBody:"新增新的 AI 供應商將賦予其存取系統 ​​API 的權限,請確認您信任該供應商的連結來源!",importAdd:"新增新的 AI 供應商將賦予其存取系統 ​​API 的權限,請確認您信任該供應商的文件來源!",linkAddFailed:"連結新增失敗"},associationSkills:"關聯skills",think:"深度思考",code:"程式碼",linkAddPlaceholder:"輸入連結添加",noFileSelected:"成功導入文件",linkAdd:"確認"},agent:{bannerDesc:"使用 Toonflow 官方中繼網站,支援一鍵帶入設定,開箱即用,無需手動設定。",visitWebsite:"進入網站",fillKey:"填入 KEY",oneClickFill:"一鍵帶入",notOpen:"尚未開放",notConfigured:"尚未設定",modelConfig:"模型設定",confirm:"確認",cancel:"取消",selectModel:"選擇模型",fillKeyHeader:"填入 Toonflow 平台的官方 KEY",keyPlaceholder:"請輸入 KEY",save:"儲存",msg:{notAvailable:"該功能暫未開放,敬請期待",configSuccess:"設定成功",updateConfigFailed:"更新設定失敗:",keyValid:"KEY 有效,已成功連接 Toonflow 平台",keyInvalid:"KEY 無效,請檢查後重新輸入:",enterKey:"請輸入 KEY",saveFailed:"儲存失敗:",getAgentListFailed:"取得 Agent 設定列表失敗:"}},memory:{warning:"以下設定項目已預設為推薦值。除非您清楚了解各項設定的含義及影響,否則建議維持現有設定",vectorModelConfig:"向量模型設定",modelFilePath:"模型檔案路徑",quantizationType:"量化類型",quantizationPlaceholder:"請輸入量化類型",memoryParams:"記憶參數",messagesPerSummary:"觸發訊息壓縮筆數",messagesPerSummaryHelp:"保留最近 N 筆對話上下文。",shortTermLimit:"單次取得未壓縮訊息筆數",shortTermLimitHelp:"檢索時回傳的候選記憶筆數。",summaryMaxLength:"壓縮最大字元數",summaryMaxLengthHelp:"訊息壓縮時允許的最大字元數",summaryLimit:"允許查詢已壓縮訊息筆數",summaryLimitHelp:"允許查詢已壓縮訊息筆數",ragLimit:"搜尋記憶筆數",ragLimitHelp:"檢索時取得的訊息數。",deepRetrieveSummaryLimit:"向量召回壓縮訊息數",deepRetrieveSummaryLimitHelp:"檢索壓縮訊息內容時取得的訊息數。",saveConfig:"儲存設定",clearMemory:"清除記憶",restoreDefault:"還原預設設定",msg:{saved:"記憶設定已儲存",clearConfirmTitle:"確認清除記憶",clearConfirmBody:"該操作會清除 AI 全域記憶資料,且不可復原,是否繼續?",confirmClear:"確認清除",cancel:"取消",cleared:"記憶已清除",clearFailed:"清除記憶失敗"}},login:{username:"使用者名稱",usernamePlaceholder:"請輸入使用者名稱",password:"密碼",passwordPlaceholder:"請輸入密碼",modify:"修改",msg:{enterUsername:"請輸入使用者名稱",usernameLength:"使用者名稱長度為 2-20 個字元",enterPassword:"請輸入密碼",passwordLength:"密碼長度為 6-20 個字元",fetchFailed:"取得使用者資訊失敗",saveSuccess:"儲存成功",saveFailed:"儲存失敗"}},db:{clearDb:"清除資料庫",clearDbDesc:"清除所有資料表中的資料,保留資料表結構",clearData:"清除資料",confirmAction:"確認操作",msg:{clearDbTitle:"清除資料庫",firstConfirm:"確定要清除所有資料表嗎?資料清除後無法復原!",secondConfirm:"這是最後一次確認,清除後所有資料將永久遺失!",keyword:"清除",confirm:"確認",pleaseInput:"請輸入",cleared:"所有資料表已清除",operationFailed:"操作失敗,請重試",cancelled:"操作已取消"}},other:{requestTimeout:"請求逾時時間",seconds:"秒",inputSeconds:"請輸入秒",assetConcurrency:"資產生成並發數",count:"個",inputCount:"請輸入個數",chapterRegex:"章節拆分正規表示式",restoreDefault:"還原預設",regexPlaceholder:"請輸入正規表示式",canvasScroll:"畫布滾動",canvasIsDisabled:"畫布縮放",agentCanvasScalingMethod:"生產頁無限畫布滾輪操作",zoom:"縮放",scroll:"捲動",isInteracting:"生產頁無限畫布拖曳性能優化",closeIsInteracting:"關閉"},request:{warning:"若非特殊情況,不需要修改或者設定",apiAddress:"API 網址",apiPlaceholder:"請輸入 API 請求網址",save:"儲存",reset:"重設",msg:{enterApi:"請輸入 API 網址",validUrl:"請輸入有效的 HTTP/HTTPS 網址",saved:"請求網址儲存成功",reset:"已重設為預設網址",refreshFailed:"刷新失敗",refreshSuccess:"刷新成功"},refresh:"重新整理"},about:{slogan:"開源的 AI 驅動漫畫 / 分鏡創作工具",latestVersion:"目前為最新版本",checkUpdate:"檢查更新",codeRepository:"程式碼儲存庫",githubRepo:"GitHub 儲存庫",giteeRepo:"Gitee 儲存庫",versionUpdate:"版本更新",checkUpdateGithub:"檢查更新(GitHub)",getFromGithub:"從 GitHub Release 取得最新版本",checkUpdateGitee:"檢查更新(Gitee)",getFromGitee:"從 Gitee Release 取得最新版本",license:"授權條款",licenseDesc:"開源授權條款·點擊查看詳情",updateAvailable:"發現新版本",upToDate:"偵測到新版本"},logout:{warning:"登出後,您需要重新登入才能繼續使用系統。",confirmLogout:"確定要登出嗎?",logout:"登出",msg:{logoutSuccess:"登出成功",logoutFailed:"登出失敗,請重試"}},file:{quickOpen:"快速開啟目錄",open:"開啟",dockerDesc:'Docker/前後端分離部署請前往 "/data/*" 目錄手動管理檔案。',desktopOnly:"該功能僅支援桌面版",folders:{data:"data",dataDesc:"資料目錄。",logs:"data/logs",logsDesc:"執行記錄與錯誤記錄。",oss:"data/oss",ossDesc:"檔案儲存相關資源。",skills:"data/skills",skillsDesc:"技能與提示設定檔。",models:"data/models",modelsDesc:"模型檔案與設定。",web:"data/web",webDesc:"Web 相關資源,如前端建置產物等。",serve:"data/serve",serveDesc:"後端服務相關檔案。"},openFailed:"開啟資料夾失敗"},skill:{scanSkills:"掃描Skills"},dev:{warning:"以下為開發者工具,謹慎操作!",openDevtool:"打開",devtoolsDoc:"文件地址",devtoolsDesc:"開啟後會在Toonflow安裝目錄建立.devtools資料夾,請確保Toonflow有寫入權限(管理員身分執行)。",openDevtoolFailed:"開啟開發者工具失敗,請確保已安裝Toonflow桌面端",notInElectron:"WEB環境請手動開啟瀏覽器控制台"}},mCi={selectProject:"請選擇專案",menu:{myProject:"我的專案",taskCenter:"任務中心",novel:"小說原文",scriptAgent:"劇本 Agent",scriptManage:"劇本管理",cornerScape:"塑造角色與場景",production:"影片製作",assetCenter:"資產中心",settings:"設定",jumpGithub:"跳轉Github",feedbackQuestions:"回饋問題"},project:{title:"我的專案",subtitle:"管理您的所有短劇專案",newProject:"建立專案",dialog:{editTitle:"編輯專案",addTitle:"建立專案",save:"儲存",ok:"確定",cancel:"取消",projectType:"專案類型",selectType:"選擇專案類型",basedOnNovel:"基於小說原文",basedOnScript:"基於劇本",projectName:"專案名稱",projectNamePh:"請輸入專案名稱",novelType:"小說類型",novelTypePh:"例如:玄幻、科幻、言情",artStyle:"視覺手冊",selected:"已選:",selectArtStyle:"請選擇視覺手冊",newArtStyle:"新視覺手冊",loading:"載入中...",videoRatio:"影片比例",novelIntro:"小說簡介",novelIntroPh:"請輸入小說簡介",editArtStyleTitle:"編輯視覺手冊",newArtStyleTitle:"新視覺手冊",artStyleName:"視覺手冊名稱",artStyleNamePh:"請輸入視覺手冊名稱",artStyleImage:"視覺手冊封面",remove:"移除",uploadCover:"上傳封面",artStylePrompt:"視覺手冊提示詞",aiExtract:"AI 萃取提示詞",promptPlaceholder:"描述視覺手冊提示詞,用於產生圖片時指定視覺手冊",visualManual:"視覺手冊",newVisualManual:"新視覺手冊",editVisualManualTitle:"編輯視覺手冊",newVisualManualTitle:"新視覺手冊",visualManualName:"視覺手冊名稱",visualManualNamePh:"請輸入視覺手冊名稱",visualManualCover:"視覺手冊封面",visualManualPrompt:"視覺手冊提示詞",modelData:"選擇圖片模型",videoModelData:"選擇視訊模型",prompt:{placeholder:"輸入提示詞",saveSuccess:"更新成功",title:"提示詞"},mdFile:"視覺手冊文件",directorManual:"導演手冊",addDirectorManual:"新導演手冊",editingDirectorManual:"編輯導演手冊",newDirecorManualTitle:"新導演手冊",directorManualPrompt:"導演手冊提示詞",directorManualName:"導演手冊名稱",directorFile:"導演手冊文件",directorManualCover:"導演手冊封面"},msg:{fetchFailed:"取得專案列表失敗",notFound:"找不到該專案!",editSuccess:"編輯專案成功",editFailed:"編輯專案失敗",addSuccess:"新增專案成功",addFailed:"新增專案失敗",deleteHeader:"刪除專案",deleteBody:"確定要刪除該專案嗎?",deleteConfirm:"刪除",deleteCancel:"取消",deleteSuccess:"刪除專案成功",deleteFailed:"刪除專案失敗",extractSuccess:"提示詞萃取成功",extractFailed:"萃取失敗",enterArtStyleName:"請輸入視覺手冊名稱",artStyleUpdated:"視覺手冊已更新",artStyleAdded:"視覺手冊已添加",operationFailed:"操作失敗",enterVisualManualName:"請輸入視覺手冊名稱",enterVisualManualImage:"請上傳視覺手冊封面圖片",enterVisualManualTabData:"提示詞不能為空",visualManualUpdated:"視覺手冊已更新",visualManualAdded:"視覺手冊已添加",deleteVisualManualHeader:"刪除視覺手冊",deleteVisualManualBody:"確定要刪除視覺手冊「{name}」嗎?",deleteVisualManualConfirm:"刪除",deleteVisualManualCancel:"取消",emptyFields:"參數缺失",enterProjectName:"請輸入項目名稱",enterProjectIntro:"請輸入小說簡介",enterProjectType:"請輸入項目類型",enterArtStyle:"請選擇項目視覺手冊",enterVideoRatio:"請選擇影片比例",enterImageModel:"請選擇圖片模型",enterVideoModel:"請選擇視訊模型",visualManualDeleted:"刪除成功",selectMode:"請選擇模式",deleteDirectorManualHeader:"刪除導演手冊",deleteDirectorManualBody:"確定要刪除導演手冊「{name}」嗎?",directorManualUpdated:"導演手冊已更新",directorManualAdded:"導演手冊已添加",directorManual:"請選擇項目導演手冊"},type:{novel:"基於小說原文",script:"基於小說劇本"}},novel:{importText:"匯入原文",batchDelete:"批次刪除",eventAnalysis:"事件分析",searchPlaceholder:"搜尋原文名稱...",search:"搜尋",generating:"生成中...",genFailed:"生成失敗",none:"無",edit:"編輯",delete:"刪除",col:{id:"序號",reel:"卷",chapter:"章節名稱",chapterData:"章節內容",event:"事件",operation:"操作"},msg:{batchDeleteHeader:"批次刪除",batchDeleteBody:"確定要刪除選定的 {count} 筆資料嗎?",batchDeleteSuccess:"批次刪除成功",deleteHeader:"刪除確認",deleteBody:"確定要刪除章節名稱為「{name}」的資料嗎?",deleteSuccess:"刪除成功",eventAnalysisHeader:"事件分析",eventAnalysisBody:"確定要對選定的 {count} 筆資料進行事件分析嗎?"},import:{title:"上傳小說原文",step1:"第一步",step2:"第二步",step3:"第三步",dragUpload:"拖曳小說原文檔案到此處或點擊上傳",uploadHint:"支援 .txt, .docx 格式,建議檔案大小不超過 10MB",or:"或",pasteLabel:"直接貼上小說原文內容",pastePlaceholder:"請輸入小說原文內容",chars:"字元",tooShort:"內容過短,建議至少 100 字元",parsedChapters:"已解析 {count} 章節",nextStep:"下一步",prevStep:"上一步",selectedInfo:"已勾選:{count} 字 (小於 200000 字)",eventAnalysis:"事件分析",saveAndAnalyze:"儲存原文並分析事件",col:{chapter:"章",reel:"卷",chapterName:"章節名稱",chapterData:"章節內容"},msg:{parseFailed:"檔案解析失敗,請重新上傳",selectFile:"選擇文件",docNotSupported:".doc檔案不支援解析,請轉換為.ts文件",unsupportedType:"不支援的檔案類型",fileTooLarge:"檔案大小超過 10MB,請上傳更小的檔案",selectChapters:"請先勾選章節",saveSuccess:"小說原文儲存成功"},importAdd:"拖曳文件到此處或點擊上傳",limit:"支援 .ts格式"},editDialog:{title:"編輯小說原文",chapterName:"章節名稱",chapterNamePh:"請輸入章節名稱",eventContent:"事件內容",eventContentPh:"輸入事件內容",chapterContent:"章節內容",chapterContentPh:"請輸入章節內容",cancel:"取消",save:"儲存",msg:{updateSuccess:"小說原文更新成功"}},event:{regenerate:"重新生成事件",batchDelete:"批次刪除",noData:"暫無事件資料,點擊開始生成",generate:"生成事件",generatingHint:"事件生成中,請稍候...",loading:"載入中...",delete:"刪除",col:{id:"事件 ID",eventName:"事件名稱",chapters:"來源章節",detail:"事件過程",createTime:"建立時間",operation:"操作"},msg:{deleteHeader:"刪除事件",deleteBody:"確定要刪除這個事件嗎?",deleteSuccess:"刪除成功",generateSuccess:"事件生成成功",batchDeleteHeader:"批次刪除",batchDeleteBody:"確定要刪除選定的 {count} 筆資料嗎?",batchDeleteSuccess:"批次刪除成功"}},analysis:{analyzeFirst:"請先分析事件",startAnalysis:"開始分析",chapterHeader:"第{index}章 - {name}",analyzing:"事件分析中"}},scriptAgent:{inputPlaceholder:"請輸入內容",chapterEvents:"章節事件",clearMessageMemory:"清除訊息記憶",clearSummaryMemory:"清除摘要記憶",clearAllMemory:"清除全部記憶",edit:"編輯",storySkeleton:"故事骨架",adaptationStrategy:"改編策略",script:"劇本",noContent:"暫無內容",relatedAssets:"關聯資產",editScript:"編輯劇本",save:"儲存",scriptTitle:"標題",titlePlaceholder:"請輸入標題",content:"內容",contentPlaceholder:"請輸入劇本內容",selectAssets:"選擇資產",noAssets:"暫未關聯資產",selectAssetsTitle:"選擇關聯資產",welcomeMsg:"你好!我是 Toonflow 智慧助手,需要我開始為您生成劇本嗎?",start:"開始",memoryType:{message:"訊息記憶",summary:"摘要記憶",all:"全部記憶"},msg:{clearConfirm:"確認清除",clearBody:"確定要清除{type}嗎?此操作無法復原。",confirmClear:"確認清除",cancel:"取消",memoryCleared:"{type}已清除",scriptUpdated:"劇本更新成功",scriptUpdateFailed:"更新劇本失敗,請稍後再試",searchScriptFailed:"搜尋劇本失敗",updated:"保存成功",error:"保存失敗",reconnect:"重新連接",notReconnect:"重新連結對話會被切斷是否確認",keepReconnect:"確認",deleteConfirm:"刪除確認",deleteBody:"刪除正文",confirmDelete:"確認刪除",scriptDeleted:"腳本已刪除"},reconnect:"重新連接"},cornerScape:{batchSettings:"批次生成設定",quickActions:"捷徑指令",selectUngenerated:"全選未生成項目",selectGenerated:"全選已生成項目",selectFailed:"全選錯誤項目",invertSelection:"反選",clearSelection:"取消選擇",batchPreview:"批次預覽圖片",assetTypeFilter:"素材類型篩選",genModel:"生成模型",resolution:"解析度",resolutionPh:"請選擇解析度",concurrency:"並發數量",concurrencyPh:"請輸入並發數",startBatch:"開始批量生成圖片",waitingGen:"等待生成",generating:"生成中",genFailed:"生成失敗",imageError:"圖片錯誤",typeRole:"角色",typeScene:"場景",typeTool:"工具",typeUnknown:"未知",descriptionSuffix:"描述:",operateScriptFirst:"請先操作劇本",individualConfig:"獨立設定",noImage:"暫無圖片",promptLabel:"提示詞",promptPh:"請輸入提示詞",aiPolish:"AI 潤飾",regenerate:"重新生成",filterRole:"人物",filterScene:"場景",filterTool:"道具",unnamed:"未命名",noDescription:"無描述",msg:{selectModel:"請選擇生成模型",selectResolution:"請選擇解析度",enterPrompt:"請輸入提示詞",enterPromptFirst:"請先輸入提示詞",genSuccess:"{name} 生成成功",genFailed:"{name} 生成失敗",promptGenSuccess:"提示詞生成成功",polishFailed:"潤飾失敗,請重試",selectAtLeastOne:"請至少選擇一個資產進行批次生成",batchStarted:"開始批次生成,共 {count} 個,並發數 {concurrent}",batchItemFailed:"{name} 生成失敗:{error}",batchComplete:"批次生成完成",batchFailed:"批量生成失敗",replaceFailed:"替換失敗",replaceSuccess:"替換成功",promptGenFail:"提示詞生成失敗",saveSuccess:"修改提示詞成功",saveFailed:"提示詞修改失敗"},history:"歷史圖片",confirmReplace:"確認替換",batchGenerationPrompt:"大量生成提示詞",generatingPrompt:"生成中",selectPromptEmpty:"全選提示詞為空",noEmptyPrompt:"沒有提示詞為空的資產",selectedCount:"已選取{count}個資產"},script:{searchPlaceholder:"搜尋劇本名稱...",search:"搜尋",addScript:"建立劇本",cancelSelectAll:"取消全選",selectAll:"全選",exportScript:"匯出劇本",msg:{searchFailed:"搜尋劇本失敗",selectExport:"請先選擇要匯出的劇本",exportSuccess:"匯出成功",exportFailed:"匯出劇本失敗",deleteHeader:"確認刪除",deleteBody:"確定要刪除這個劇本嗎?此操作無法復原。",deleteConfirm:"刪除",cancel:"取消",deleteSuccess:"刪除成功",deleteFailed:"刪除失敗",selectDelScript:"請選擇刪除劇本",batchDeleteHeader:"批量刪除",batchDeleteBody:"確定要刪除選中的 {count} 個劇本嗎?此操作無法復原。",batchDeleteSuccess:"批量刪除成功",extractingInProgress:"正在提取中",projectNotFound:"項目未找到",selectsExport:"請選擇匯出劇本"},add:{title:"新增劇本",scriptName:"劇本名稱",scriptNamePh:"請輸入劇本名稱",uploadFile:"上傳檔案",dragUpload:"拖曳劇本檔案到此處或點擊上傳",uploadHint:"支援 .txt, .docx 格式,建議檔案大小不超過 10MB",scriptContent:"劇本內容",scriptContentPh:"請上傳或輸入劇本內容...",relatedAssets:"關聯資產",selectAssets:"選擇資產",noAssets:"暫未關聯資產",cancel:"取消",confirm:"確認",msg:{fileReadFailed:"檔案讀取失敗",docNotSupported:".doc 檔案不支援解析,請轉換為 .txt 或 .docx 檔案",unsupportedType:"不支援的檔案類型",fileTooLarge:"檔案大小超過 10MB,請上傳更小的檔案",parsing:"檔案解析中...",parseFailed:"檔案解析失敗,請重新上傳",selectAssetsTitle:"選擇關聯資產",enterContent:"請上傳或輸入劇本內容",enterName:"請輸入劇本名稱",addSuccess:"劇本新增成功",addFailed:"新增劇本失敗,請稍後再試"}},edit:{title:"劇本詳情",scriptName:"劇本名稱",scriptNamePh:"請輸入劇本名稱",scriptContent:"劇本內容",scriptContentPh:"請輸入劇本內容...",relatedAssets:"關聯資產",selectAssets:"選擇資產",noAssets:"暫未關聯資產",msg:{selectAssetsTitle:"選擇關聯資產",updateSuccess:"劇本更新成功",updateFailed:"更新劇本失敗,請稍後再試"}},deleteScript:"大量刪除劇本",extractAssets:""},assets:{addPrefix:"新增",batchGenerate:"批次生成",generatePrompt:"生成提示詞",generateImage:"生成圖片",batchDelete:"批次刪除",searchPlaceholder:"搜尋資產名稱...",search:"搜尋",preview:"預覽",generate:"生成",edit:"編輯",delete:"刪除",generating:"生成中",play:"播放",mediaPreview:"媒體預覽",confirmBatch:"是否確認{type}!",model:"模型",resolution:"解析度",resolutionPh:"請選擇解析度",batchGenPrompt:"批次生成提示詞",batchGenImage:"批次生成圖片",role:"角色",prop:"道具",scene:"場景",clip:"素材",uploadSuccess:"上傳成功",selectAtLeastOne:"請至少選擇一個資產",noDescription:"無描述",promptGenSuccess:"「{name}」提示詞生成成功",promptGenFail:"「{name}」提示詞生成失敗:{error}",selectModel:"請選擇模型",selectResolution:"請選擇解析度",noPromptForImage:"「{name}」沒有提示詞,無法生成圖片",imageGenSuccess:"「{name}」圖片生成成功",imageGenFail:"「{name}」圖片生成失敗:{error}",confirmDeleteHeader:"確認刪除",confirmBatchDeleteBody:"確定要批次刪除這些資產嗎?此操作無法復原。",confirmDeleteBody:"確定要刪除這個資產嗎?此操作無法復原。",deleteBtn:"刪除",cancelBtn:"取消",deleteSuccess:"資產刪除成功",deleteFail:"資產刪除失敗",colPreview:"預覽",colName:"名稱",colPrompt:"提示詞",colDescribe:"描述",colRemark:"備註",colCreateTime:"建立時間",colOperation:"操作",add:{name:"名稱",namePh:"請輸入名稱",describe:"描述",describePh:"請輸入描述",remark:"備註",remarkPh:"請輸入備註",prompt:"提示詞",promptPh:"請輸入提示詞",nameRequired:"請輸入名稱",describeRequired:"請輸入詳情",remarkRequired:"請輸入備註",updateSuccess:"資產更新成功",addSuccess:"資產新增成功"},gen:{header:"圖片生成",uploadRef:"上傳參考圖片",optional:"選填",promptLabel:"生圖提示詞",smartGenerate:"智能生成",generatingPrompt:"智能生成提示詞中...",promptPlaceholder:"描述您想要生成的圖片內容,例如:一個充滿科技感的未來城市,霓虹燈閃爍,賽博龐克風格...",selectModel:"選擇模型",selectResolution:"選擇解析度",generateBtn:"生成圖片",resultTitle:"生成結果",generatedCount:"已生成 {count} 張,請選擇一張",generatingLabel:"生成中...",genFailed:"生成失敗",confirmSelect:"確認選擇",promptSuccess:"提示詞生成成功",promptFail:"提示詞生成失敗",fillPrompt:"請填寫提示詞",pickResolution:"請選擇解析度",pickModel:"請選擇模型",unnamed:"未命名",assetGenSuccess:"資產生成成功",assetGenFail:"資產生成失敗",uploadOk:"上傳成功",imageSelected:"已選擇該圖片",imageDeleted:"已刪除該圖片",imageSaved:"圖片已儲存",completed:"已完成"},batch:{header:"批次生成",selected:"已選擇 {count} 項",selectAll:"全選",clearSelection:"清除選擇",inputPh:"請輸入內容",saveSelected:"儲存選取項目 ({count})",colPreviewImg:"預覽圖",selectToSave:"請選擇要儲存的項目",saveSuccess:"儲存成功",saveFail:"儲存失敗,請重試",promptDone:"提示詞生成完成",promptFail:"提示詞生成失敗",missingPrompts:"有 {count} 個資產缺少提示詞,請先生成提示詞",imageDone:"圖片生成完成",imageGenFail:"圖片生成失敗",unknownError:"未知錯誤",promptGenCancelled:"已取消生成"}},production:{selectPlaceholder:"請選擇劇集",edit:"編輯",node:{script:{title:"劇本",editDialog:"編輯劇本"},scriptPlan:{title:"拍攝計畫",editDialog:"編輯拍攝計畫"},storyboard:{title:"分鏡面板",notGenerated:"未生成",scaleRatio:"縮放比例",gridPreview:"九宮格預覽",noPreviewImages:"暫無可預覽的圖片",loadFailed:"載入失敗: {src}",imageLoadFailed:"圖片載入失敗",promptPlaceholder:"請輸入提示詞",prompt:"提示詞",editInfo:"提示詞修改"},storyboardTable:{title:"分鏡表",editDialog:"編輯分鏡表"},assets:{title:"衍生資產",generateFailed:"生成失敗",notGenerated:"未生成",originalAsset:"原資產",derived:"衍生",noDerivedAssets:"無衍生資產"},poster:{title:"影片封面",coverCount:"{count} 張"},workbench:{title:"影片工作區"}},editImage:{upload:"上傳",generate:"生成",saveFailed:"儲存失敗,請重試",fetchFailed:"取得資料失敗",generating:"生成中...",deleteNode:"刪除節點",ratio:"比例",quality:"畫質",generateBtn:"生成圖片",selectImage:"選擇圖片",imageGeneration:"圖片生成",promptPlaceholder:"描述你想要生成的圖片...",imageRef:"圖{index}",noReferences:"暫無可引用的參考圖",selectModel:"請先選擇模型",selectQuality:"請選擇畫質",selectRatio:"請選擇比例",generateFailed:"生成失敗",generateFirst:"請先生成圖片",generatedResult:"生成結果",waitingGenerate:"等待生成",uploadImage:"資產圖片上傳",mode:"模式",closeConfirmTitle:"關閉確認標題",closeConfirmBody:"關閉之後未儲存的資料會遺失"},save:"選取",cancel:"取消",chatBox:{inputPlaceholder:"輸入訊息...",generateDerivedAssets:"生成衍生資產",welcomeMessage:"你好!我是你的 AI 助手,有什麼可以幫你的嗎?",adjustModel:"調整模型",startMakingVideo:"開始製作影片",startMakingVideoPrompt:"請幫我開始製作影片",clearMessageMemory:"清除訊息記憶",clearSummaryMemory:"清除摘要記憶",clearAllMemory:"清除所有記憶",messageMemory:"訊息記憶",summaryMemory:"摘要記憶",allMemory:"所有記憶",confirmClear:"清除記憶",confirmClearBody:"確定要清除{type}嗎?",confirmClearBtn:"確定清除",memoryCleared:"{type}已清除"},wb:{quickPreview:"快速預覽",videoGeneration:"分鏡台",videoEditing:"剪輯台",hint:"提示",extractLines:"是否從影片中提取台詞?",no:"否",confirm:"確定",extractLinesQuestion:"是否從影片中提取台詞作為字幕?",importingLoading:"正在匯入中,請稍候...",mainTrackVideo:"主軌道(影片)",subtitle1:"字幕1",stereo441:"44.1kHz 立體聲",mono16:"16kHz 單聲道",sampleImage1:"範例圖片 1"},preview:{noImage:"暫無圖片",storyboardDesc:"分鏡描述",serialNumber:"序號",noDescription:"暫無描述",duration:"時長",seconds:"秒",relatedAssets:"涉及資產",role:"角色",prop:"道具",scene:"場景",noCharacters:"暫無出場人物",imagePrompt:"圖片提示詞",selectAll:"全選",exportImage:"匯出圖片",sceneDescription:"畫面描述",promptLabel:"提示詞",restoreSort:"還原排序",restoreSortConfirm:"確定要還原為初始排序嗎?",tip:"提示",selectAtLeastOne:"請至少選擇一個分鏡進行匯出",exportFilename:"分鏡圖片"},generate:{noVideo:"暫無影片",videoPrompt:"影片提示詞",promptPlaceholder:"輸入提示詞,描述你想要生成的影片內容...",refImage:"參考圖",image:"圖片",refVideo:"參考影片",refImageLabel:"參考圖片",refAudio:"參考音訊",muteAudio:"關閉音訊",enableAudio:"開啟音訊",resolution:"解析度",duration:"時長",generate:"生成",historyVersions:"歷史版本",refresh:"重新整理",confirmSelection:"確認選取項目",noHistory:"暫無歷史記錄",generating:"生成中",generateFailed:"生成失敗",selectAll:"全選",videoTrack:"影片軌道",batchGenerate:"批次生成",importToEditor:"匯入剪輯台",modeSingleImage:"單圖",modeMultiImage:"多圖",modeGridImage:"網格多圖",modeStartEnd:"首尾影格",modeText:"文字生成影片",modeVideoRef:"影片參考",modeImageRef:"圖片參考",modeAudioRef:"音訊參考",modeTextRef:"文字參考",startFrame:"首影格",startFrameOptional:"首影格(選填)",endFrame:"尾影格",endFrameOptional:"尾影格(選填)",selectRefImage:"選擇參考圖",selectRefImages:"選擇參考圖片",selectEndFrame:"選擇尾影格圖",selectRefVideoAsset:"選擇參考影片",selectRefAudioAsset:"選擇參考音訊",selectRefImageAsset:"選擇參考圖片",selectImageSource:"選擇圖片來源",fromStoryboard:"分鏡圖",fromStoryboardDesc:"從分鏡列表中選擇圖片",fromAssets:"資產圖",fromAssetsDesc:"從資產庫中選擇圖片",confirmDelete:"確認刪除",confirmDeleteBody:"確定要刪除這個影片嗎?此操作無法復原。",delete:"刪除",cancel:"取消",deleteSuccess:"影片刪除成功",deleteFailed:"刪除失敗",selectVideoFirst:"請先選擇一個影片",confirmSuccess:"確認選取成功",batchSubmitted:"已送出批次生成請求,正在處理中...",configNotFound:"設定不存在",pollingFailed:"視訊狀態查詢失敗,請手動刷新",batchGeneratePrompt:"大量生成提示詞",batchPromptEmpty:`分鏡 {name} 有空視訊提示。 + */const $Oi="11.3.0";function XOi(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(qT().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(qT().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(qT().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(qT().__INTLIFY_PROD_DEVTOOLS__=!1)}const d2={UNEXPECTED_RETURN_TYPE:hOi,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function rA(e,...t){return Y4e(e,null,void 0)}const hMe=K6("__translateVNode"),fMe=K6("__datetimeParts"),gMe=K6("__numberParts"),Jwn=K6("__setPluralRules"),eOn=K6("__injectWithOption"),mMe=K6("__dispose");function nK(e){if(!Zl(e)||ry(e))return e;for(const t in e)if(P4(e,t))if(!t.includes("."))Zl(e[t])&&nK(e[t]);else{const n=t.split("."),r=n.length-1;let o=e,s=!1;for(let a=0;a{if("locale"in l&&"resource"in l){const{locale:d,resource:u}=l;d?(a[d]=a[d]||Cc(),oue(u,a[d])):oue(u,a)}else dr(l)&&oue(JSON.parse(l),a)}),o==null&&s)for(const l in a)P4(a,l)&&nK(a[l]);return a}function tOn(e){return e.type}function nOn(e,t,n){let r=Zl(t.messages)?t.messages:Cc();"__i18nGlobal"in n&&(r=zZe(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const o=Object.keys(r);o.length&&o.forEach(s=>{e.mergeLocaleMessage(s,r[s])});{if(Zl(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(Zl(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function r1t(e){return c(iI,null,e,0)}function iK(){return ps()}const o1t="__INTLIFY_META__",s1t=()=>[],GOi=()=>!1;let a1t=0;function l1t(e){return(t,n,r,o)=>e(n,r,iK()||void 0,o)}const YOi=()=>{const e=iK();let t=null;return e&&(t=tOn(e)[o1t])?{[o1t]:t}:null};function HZe(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,o=e.flatJson,s=hge?fe:nd;let a=dl(e.inheritLocale)?e.inheritLocale:!0;const l=s(t&&a?t.locale.value:dr(e.locale)?e.locale:tK),d=s(t&&a?t.fallbackLocale.value:dr(e.fallbackLocale)||Bu(e.fallbackLocale)||Fa(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),u=s(zZe(l.value,e)),h=s(Fa(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),g=s(Fa(e.numberFormats)?e.numberFormats:{[l.value]:{}});let m=t?t.missingWarn:dl(e.missingWarn)||wW(e.missingWarn)?e.missingWarn:!0,v=t?t.fallbackWarn:dl(e.fallbackWarn)||wW(e.fallbackWarn)?e.fallbackWarn:!0,f=t?t.fallbackRoot:dl(e.fallbackRoot)?e.fallbackRoot:!0,k=!!e.fallbackFormat,A=Dd(e.missing)?e.missing:null,p=Dd(e.missing)?l1t(e.missing):null,b=Dd(e.postTranslation)?e.postTranslation:null,w=t?t.warnHtmlMessage:dl(e.warnHtmlMessage)?e.warnHtmlMessage:!0,O=!!e.escapeParameter;const y=t?t.modifiers:Fa(e.modifiers)?e.modifiers:{};let C=e.pluralRules||t&&t.pluralRules,_;_=(()=>{r&&Zmt(null);const me={version:$Oi,locale:l.value,fallbackLocale:d.value,messages:u.value,modifiers:y,pluralRules:C,missing:p===null?void 0:p,missingWarn:m,fallbackWarn:v,fallbackFormat:k,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:w,escapeParameter:O,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};me.datetimeFormats=h.value,me.numberFormats=g.value,me.__datetimeFormatters=Fa(_)?_.__datetimeFormatters:void 0,me.__numberFormatters=Fa(_)?_.__numberFormatters:void 0;const _e=DOi(me);return r&&Zmt(_e),_e})(),R$(_,l.value,d.value);function L(){return[l.value,d.value,u.value,h.value,g.value]}const E=X({get:()=>l.value,set:me=>{_.locale=me,l.value=me}}),T=X({get:()=>d.value,set:me=>{_.fallbackLocale=me,d.value=me,R$(_,l.value,me)}}),D=X(()=>u.value),P=X(()=>h.value),Q=X(()=>g.value);function M(){return Dd(b)?b:null}function B(me){b=me,_.postTranslation=me}function R(){return A}function I(me){me!==null&&(p=l1t(me)),A=me,_.missing=p}const F=(me,_e,Te,De,Ye,ot)=>{L();let We;try{__INTLIFY_PROD_DEVTOOLS__,r||(_.fallbackContext=t?QOi():void 0),We=me(_)}finally{__INTLIFY_PROD_DEVTOOLS__,r||(_.fallbackContext=void 0)}if(Te!=="translate exists"&&$h(We)&&We===Z4e||Te==="translate exists"&&!We){const[et,st]=_e();return t&&f?De(t):Ye(et)}else{if(ot(We))return We;throw rA(d2.UNEXPECTED_RETURN_TYPE)}};function j(...me){return F(_e=>Reflect.apply(i1t,null,[_e,...me]),()=>uMe(...me),"translate",_e=>Reflect.apply(_e.t,_e,[...me]),_e=>_e,_e=>dr(_e))}function W(...me){const[_e,Te,De]=me;if(De&&!Zl(De))throw rA(d2.INVALID_ARGUMENT);return j(_e,Te,xf({resolvedMessage:!0},De||{}))}function H(...me){return F(_e=>Reflect.apply(Kmt,null,[_e,...me]),()=>cMe(...me),"datetime format",_e=>Reflect.apply(_e.d,_e,[...me]),()=>fge,_e=>dr(_e)||Bu(_e))}function $(...me){return F(_e=>Reflect.apply(e1t,null,[_e,...me]),()=>dMe(...me),"number format",_e=>Reflect.apply(_e.n,_e,[...me]),()=>fge,_e=>dr(_e)||Bu(_e))}function G(me){return me.map(_e=>dr(_e)||$h(_e)||dl(_e)?r1t(String(_e)):_e)}const re={normalize:G,interpolate:me=>me,type:"vnode"};function J(...me){return F(_e=>{let Te;const De=_e;try{De.processor=re,Te=Reflect.apply(i1t,null,[De,...me])}finally{De.processor=null}return Te},()=>uMe(...me),"translate",_e=>_e[hMe](...me),_e=>[r1t(_e)],_e=>Bu(_e))}function oe(...me){return F(_e=>Reflect.apply(e1t,null,[_e,...me]),()=>dMe(...me),"number format",_e=>_e[gMe](...me),s1t,_e=>dr(_e)||Bu(_e))}function se(...me){return F(_e=>Reflect.apply(Kmt,null,[_e,...me]),()=>cMe(...me),"datetime format",_e=>_e[fMe](...me),s1t,_e=>dr(_e)||Bu(_e))}function le(me){C=me,_.pluralRules=C}function ue(me,_e){return F(()=>{if(!me)return!1;const Te=dr(_e)?_e:l.value,De=dr(_e)?[Te]:lMe(_,d.value,Te);for(let Ye=0;Ye[me],"translate exists",Te=>Reflect.apply(Te.te,Te,[me,_e]),GOi,Te=>dl(Te))}function ee(me){let _e=null;const Te=lMe(_,d.value,l.value);for(let De=0;De{a&&(l.value=me,_.locale=me,R$(_,l.value,d.value))}),pt(t.fallbackLocale,me=>{a&&(d.value=me,_.fallbackLocale=me,R$(_,l.value,d.value))}));const ke={id:a1t,locale:E,fallbackLocale:T,get inheritLocale(){return a},set inheritLocale(me){a=me,me&&t&&(l.value=t.locale.value,d.value=t.fallbackLocale.value,R$(_,l.value,d.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:D,get modifiers(){return y},get pluralRules(){return C||{}},get isGlobal(){return r},get missingWarn(){return m},set missingWarn(me){m=me,_.missingWarn=m},get fallbackWarn(){return v},set fallbackWarn(me){v=me,_.fallbackWarn=v},get fallbackRoot(){return f},set fallbackRoot(me){f=me},get fallbackFormat(){return k},set fallbackFormat(me){k=me,_.fallbackFormat=k},get warnHtmlMessage(){return w},set warnHtmlMessage(me){w=me,_.warnHtmlMessage=me},get escapeParameter(){return O},set escapeParameter(me){O=me,_.escapeParameter=me},t:j,getLocaleMessage:z,setLocaleMessage:Y,mergeLocaleMessage:ie,getPostTranslationHandler:M,setPostTranslationHandler:B,getMissingHandler:R,setMissingHandler:I,[Jwn]:le};return ke.datetimeFormats=P,ke.numberFormats=Q,ke.rt=W,ke.te=ue,ke.tm=de,ke.d=H,ke.n=$,ke.getDateTimeFormat=te,ke.setDateTimeFormat=Z,ke.mergeDateTimeFormat=he,ke.getNumberFormat=pe,ke.setNumberFormat=Ce,ke.mergeNumberFormat=Qe,ke[eOn]=n,ke[hMe]=J,ke[fMe]=se,ke[gMe]=oe,ke}function ZOi(e){const t=dr(e.locale)?e.locale:tK,n=dr(e.fallbackLocale)||Bu(e.fallbackLocale)||Fa(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Dd(e.missing)?e.missing:void 0,o=dl(e.silentTranslationWarn)||wW(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=dl(e.silentFallbackWarn)||wW(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=dl(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,d=Fa(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,h=Dd(e.postTranslation)?e.postTranslation:void 0,g=dr(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,v=dl(e.sync)?e.sync:!0;let f=e.messages;if(Fa(e.sharedMessages)){const y=e.sharedMessages;f=Object.keys(y).reduce((_,S)=>{const L=_[S]||(_[S]={});return xf(L,y[S]),_},f||{})}const{__i18n:k,__root:A,__injectWithOption:p}=e,b=e.datetimeFormats,w=e.numberFormats,O=e.flatJson;return{locale:t,fallbackLocale:n,messages:f,flatJson:O,datetimeFormats:b,numberFormats:w,missing:r,missingWarn:o,fallbackWarn:s,fallbackRoot:a,fallbackFormat:l,modifiers:d,pluralRules:u,postTranslation:h,warnHtmlMessage:g,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:v,__i18n:k,__root:A,__injectWithOption:p}}function kMe(e={}){const t=HZe(ZOi(e)),{__extender:n}=e,r={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return dl(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=dl(o)?!o:o},get silentFallbackWarn(){return dl(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=dl(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){return Reflect.apply(t.t,t,[...o])},rt(...o){return Reflect.apply(t.rt,t,[...o])},te(o,s){return t.te(o,s)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,s){t.setLocaleMessage(o,s)},mergeLocaleMessage(o,s){t.mergeLocaleMessage(o,s)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,s){t.setDateTimeFormat(o,s)},mergeDateTimeFormat(o,s){t.mergeDateTimeFormat(o,s)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,s){t.setNumberFormat(o,s)},mergeNumberFormat(o,s){t.mergeNumberFormat(o,s)}};return r.__extender=n,r}function qOi(e,t,n){return{beforeCreate(){const r=iK();if(!r)throw rA(d2.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const s=o.i18n;if(o.__i18n&&(s.__i18n=o.__i18n),s.__root=t,this===this.$root)this.$i18n=c1t(e,s);else{s.__injectWithOption=!0,s.__extender=n.__vueI18nExtend,this.$i18n=kMe(s);const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=c1t(e,o);else{this.$i18n=kMe({__i18n:o.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&nOn(t,o,o),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$te=(s,a)=>this.$i18n.te(s,a),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=iK();if(!r)throw rA(d2.UNEXPECTED_ERROR);const o=this.$i18n;delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),n.__deleteInstance(r),delete this.$i18n}}}function c1t(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Jwn](t.pluralizationRules||e.pluralizationRules);const n=zZe(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const $Ze={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function KOi({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,o)=>[...r,...o.type===sn?o.children:[o]],[]):t.reduce((n,r)=>{const o=e[r];return o&&(n[r]=o()),n},Cc())}function iOn(){return sn}const JOi=Je({name:"i18n-t",props:xf({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$h(e)||!isNaN(e)}},$Ze),setup(e,t){const{slots:n,attrs:r}=t,o=e.i18n||aI({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(n).filter(g=>g[0]!=="_"),a=Cc();e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=dr(e.plural)?+e.plural:e.plural);const l=KOi(t,s),d=o[hMe](e.keypath,l,a),u=xf(Cc(),r),h=dr(e.tag)||Zl(e.tag)?e.tag:iOn();return xn(h,u,d)}}}),d1t=JOi;function eyi(e){return Bu(e)&&!dr(e[0])}function rOn(e,t,n,r){const{slots:o,attrs:s}=t;return()=>{const a={part:!0};let l=Cc();e.locale&&(a.locale=e.locale),dr(e.format)?a.key=e.format:Zl(e.format)&&(dr(e.format.key)&&(a.key=e.format.key),l=Object.keys(e.format).reduce((m,v)=>n.includes(v)?xf(Cc(),m,{[v]:e.format[v]}):m,Cc()));const d=r(e.value,a,l);let u=[a.key];Bu(d)?u=d.map((m,v)=>{const f=o[m.type],k=f?f({[m.type]:m.value,index:v,parts:d}):[m.value];return eyi(k)&&(k[0].key=`${m.type}-${v}`),k}):dr(d)&&(u=[d]);const h=xf(Cc(),s),g=dr(e.tag)||Zl(e.tag)?e.tag:iOn();return xn(g,h,u)}}const tyi=Je({name:"i18n-n",props:xf({value:{type:Number,required:!0},format:{type:[String,Object]}},$Ze),setup(e,t){const n=e.i18n||aI({useScope:e.scope,__useComponent:!0});return rOn(e,t,Zwn,(...r)=>n[gMe](...r))}}),u1t=tyi;function nyi(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function iyi(e){const t=a=>{const{instance:l,value:d}=a;if(!l||!l.$)throw rA(d2.UNEXPECTED_ERROR);const u=nyi(e,l.$),h=h1t(d);return[Reflect.apply(u.t,u,[...f1t(h)]),u]};return{created:(a,l)=>{const[d,u]=t(l);hge&&(a.__i18nWatcher=pt(u.locale,()=>{l.instance&&l.instance.$forceUpdate()})),a.__composer=u,a.textContent=d},unmounted:a=>{hge&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:l})=>{if(a.__composer){const d=a.__composer,u=h1t(l);a.textContent=Reflect.apply(d.t,d,[...f1t(u)])}},getSSRProps:a=>{const[l]=t(a);return{textContent:l}}}}function h1t(e){if(dr(e))return{path:e};if(Fa(e)){if(!("path"in e))throw rA(d2.REQUIRED_VALUE,"path");return e}else throw rA(d2.INVALID_VALUE)}function f1t(e){const{path:t,locale:n,args:r,choice:o,plural:s}=e,a={},l=r||{};return dr(n)&&(a.locale=n),$h(o)&&(a.plural=o),$h(s)&&(a.plural=s),[t,l,a]}function ryi(e,t,...n){const r=Fa(n[0])?n[0]:{};(dl(r.globalInstall)?r.globalInstall:!0)&&([d1t.name,"I18nT"].forEach(s=>e.component(s,d1t)),[u1t.name,"I18nN"].forEach(s=>e.component(s,u1t)),[m1t.name,"I18nD"].forEach(s=>e.component(s,m1t))),e.directive("t",iyi(t))}const oyi=K6("global-vue-i18n");function syi(e={}){const t=__VUE_I18N_LEGACY_API__&&dl(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=dl(e.globalInjection)?e.globalInjection:!0,r=new Map,[o,s]=ayi(e,t),a=K6("");function l(g){return r.get(g)||null}function d(g,m){r.set(g,m)}function u(g){r.delete(g)}const h={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(g,...m){if(g.__VUE_I18N_SYMBOL__=a,g.provide(g.__VUE_I18N_SYMBOL__,h),Fa(m[0])){const k=m[0];h.__composerExtend=k.__composerExtend,h.__vueI18nExtend=k.__vueI18nExtend}let v=null;!t&&n&&(v=myi(g,h.global)),__VUE_I18N_FULL_INSTALL__&&ryi(g,h,...m),__VUE_I18N_LEGACY_API__&&t&&g.mixin(qOi(s,s.__composer,h));const f=g.unmount;g.unmount=()=>{v&&v(),h.dispose(),f()}},get global(){return s},dispose(){o.stop()},__instances:r,__getInstance:l,__setInstance:d,__deleteInstance:u};return h}function aI(e={}){const t=iK();if(t==null)throw rA(d2.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw rA(d2.NOT_INSTALLED);const n=lyi(t),r=dyi(n),o=tOn(t),s=cyi(e,o);if(s==="global")return nOn(r,e,o),r;if(s==="parent"){let d=uyi(n,t,e.__useComponent);return d==null&&(d=r),d}const a=n;let l=a.__getInstance(t);if(l==null){const d=xf({},e);"__i18n"in o&&(d.__i18n=o.__i18n),r&&(d.__root=r),l=HZe(d),a.__composerExtend&&(l[mMe]=a.__composerExtend(l)),fyi(a,t,l),a.__setInstance(t,l)}return l}function ayi(e,t){const n=One(),r=__VUE_I18N_LEGACY_API__&&t?n.run(()=>kMe(e)):n.run(()=>HZe(e));if(r==null)throw rA(d2.UNEXPECTED_ERROR);return[n,r]}function lyi(e){const t=bt(e.isCE?oyi:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw rA(e.isCE?d2.NOT_INSTALLED_WITH_PROVIDE:d2.UNEXPECTED_ERROR);return t}function cyi(e,t){return G4e(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function dyi(e){return e.mode==="composition"?e.global:e.global.__composer}function uyi(e,t,n=!1){let r=null;const o=t.root;let s=hyi(t,n);for(;s!=null;){const a=e;if(e.mode==="composition")r=a.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const l=a.__getInstance(s);l!=null&&(r=l.__composer,n&&r&&!r[eOn]&&(r=null))}if(r!=null||o===s)break;s=s.parent}return r}function hyi(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function fyi(e,t,n){An(()=>{},t),Qa(()=>{const r=n;e.__deleteInstance(t);const o=r[mMe];o&&(o(),delete r[mMe])},t)}const gyi=["locale","fallbackLocale","availableLocales"],g1t=["t","rt","d","n","tm","te"];function myi(e,t){const n=Object.create(null);return gyi.forEach(o=>{const s=Object.getOwnPropertyDescriptor(t,o);if(!s)throw rA(d2.UNEXPECTED_ERROR);const a=Fn(s.value)?{get(){return s.value.value},set(l){s.value.value=l}}:{get(){return s.get&&s.get()}};Object.defineProperty(n,o,a)}),e.config.globalProperties.$i18n=n,g1t.forEach(o=>{const s=Object.getOwnPropertyDescriptor(t,o);if(!s||!s.value)throw rA(d2.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,s)}),()=>{delete e.config.globalProperties.$i18n,g1t.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const kyi=Je({name:"i18n-d",props:xf({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},$Ze),setup(e,t){const n=e.i18n||aI({useScope:e.scope,__useComponent:!0});return rOn(e,t,Ywn,(...r)=>n[fMe](...r))}}),m1t=kyi;XOi();SOi(aOi);LOi(yOi);xOi(lMe);if(__INTLIFY_PROD_DEVTOOLS__){const e=qT();e.__INTLIFY__=!0,lOi(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}function vyi(e,t){return vz()?(YQ(e,t),!0):!1}function k1t(){const e=new Set,t=s=>{e.delete(s)};return{on:s=>{e.add(s);const a=()=>t(s);return vyi(a),{off:a}},off:t,trigger:(...s)=>Promise.all(Array.from(e).map(a=>a(...s))),clear:()=>{e.clear()}}}const oOn=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ayi=Object.prototype.toString,pyi=e=>Ayi.call(e)==="[object Object]",vMe=()=>{},byi=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function wyi(...e){if(e.length!==1)return Pa(...e);const t=e[0];return typeof t=="function"?d6(QYe(()=>({get:t,set:vMe}))):fe(t)}function sOn(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const aOn=e=>e();function Oyi(...e){let t=0,n,r=!0,o=vMe,s,a,l,d,u;!Fn(e[0])&&typeof e[0]=="object"?{delay:a,trailing:l=!0,leading:d=!0,rejectOnCancel:u=!1}=e[0]:[a,l=!0,d=!0,u=!1]=e;const h=()=>{n&&(clearTimeout(n),n=void 0,o(),o=vMe)};return m=>{const v=Fo(a),f=Date.now()-t,k=()=>s=m();return h(),v<=0?(t=Date.now(),k()):(f>v?(t=Date.now(),(d||!r)&&k()):l&&(s=new Promise((A,p)=>{o=u?p:A,n=setTimeout(()=>{t=Date.now(),r=!0,A(k()),h()},Math.max(0,v-f))})),!d&&!n&&(n=setTimeout(()=>r=!0,v)),r=!1,s)}}function yyi(e=aOn,t={}){const{initialState:n="active"}=t,r=wyi(n==="active");function o(){r.value=!1}function s(){r.value=!0}return{isActive:d6(r),pause:o,resume:s,eventFilter:(...l)=>{r.value&&e(...l)}}}function T_e(e){return Array.isArray(e)?e:[e]}function Cyi(e){return ps()}function _yi(e,t=200,n=!1,r=!0,o=!1){return sOn(Oyi(t,n,r,o),e)}function Syi(e,t,n={}){const{eventFilter:r=aOn,...o}=n;return pt(e,sOn(r,t),o)}function Lyi(e,t,n={}){const{eventFilter:r,initialState:o="active",...s}=n,{eventFilter:a,pause:l,resume:d,isActive:u}=yyi(r,{initialState:o});return{stop:Syi(e,t,{...s,eventFilter:a}),pause:l,resume:d,isActive:u}}function xyi(e,t=!0,n){Cyi()?An(e,n):t?e():ai(e)}function Eyi(e,t,n){return pt(e,t,{...n,immediate:!0})}const e9=oOn?window:void 0,Tyi=oOn?window.document:void 0;function XZe(e){var t;const n=Fo(e);return(t=n==null?void 0:n.$el)!==null&&t!==void 0?t:n}function Yg(...e){const t=(r,o,s,a)=>(r.addEventListener(o,s,a),()=>r.removeEventListener(o,s,a)),n=X(()=>{const r=T_e(Fo(e[0])).filter(o=>o!=null);return r.every(o=>typeof o!="string")?r:void 0});return Eyi(()=>{var r,o;return[(r=(o=n.value)===null||o===void 0?void 0:o.map(s=>XZe(s)))!==null&&r!==void 0?r:[e9].filter(s=>s!=null),T_e(Fo(n.value?e[1]:e[0])),T_e(Ae(n.value?e[2]:e[1])),Fo(n.value?e[3]:e[2])]},([r,o,s,a],l,d)=>{if(!(r!=null&&r.length)||!(o!=null&&o.length)||!(s!=null&&s.length))return;const u=pyi(a)?{...a}:a,h=r.flatMap(g=>o.flatMap(m=>s.map(v=>t(g,m,v,u))));d(()=>{h.forEach(g=>g())})},{flush:"post"})}const Yse=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zse="__vueuse_ssr_handlers__",Qyi=Dyi();function Dyi(){return Zse in Yse||(Yse[Zse]=Yse[Zse]||{}),Yse[Zse]}function Byi(e,t){return Qyi[e]||t}function Ryi(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Iyi={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},v1t="vueuse-storage";function lOn(e,t,n,r={}){var o;const{flush:s="pre",deep:a=!0,listenToStorageChanges:l=!0,writeDefaults:d=!0,mergeDefaults:u=!1,shallow:h,window:g=e9,eventFilter:m,onError:v=Q=>{console.error(Q)},initOnMounted:f}=r,k=(h?nd:fe)(typeof t=="function"?t():t),A=X(()=>Fo(e));if(!n)try{n=Byi("getDefaultStorage",()=>e9==null?void 0:e9.localStorage)()}catch(Q){v(Q)}if(!n)return k;const p=Fo(t),b=Ryi(p),w=(o=r.serializer)!==null&&o!==void 0?o:Iyi[b],{pause:O,resume:y}=Lyi(k,Q=>E(Q),{flush:s,deep:a,eventFilter:m});pt(A,()=>D(),{flush:s});let C=!1;const _=Q=>{f&&!C||D(Q)},S=Q=>{f&&!C||P(Q)};g&&l&&(n instanceof Storage?Yg(g,"storage",_,{passive:!0}):Yg(g,v1t,S)),f?xyi(()=>{C=!0,D()}):D();function L(Q,M){if(g){const B={key:A.value,oldValue:Q,newValue:M,storageArea:n};g.dispatchEvent(n instanceof Storage?new StorageEvent("storage",B):new CustomEvent(v1t,{detail:B}))}}function E(Q){try{const M=n.getItem(A.value);if(Q==null)L(M,null),n.removeItem(A.value);else{const B=w.write(Q);M!==B&&(n.setItem(A.value,B),L(M,B))}}catch(M){v(M)}}function T(Q){const M=Q?Q.newValue:n.getItem(A.value);if(M==null)return d&&p!=null&&n.setItem(A.value,w.write(p)),p;if(!Q&&u){const B=w.read(M);return typeof u=="function"?u(B,p):b==="object"&&!Array.isArray(B)?{...p,...B}:B}else return typeof M!="string"?M:w.read(M)}function D(Q){if(!(Q&&Q.storageArea!==n)){if(Q&&Q.key==null){k.value=p;return}if(!(Q&&Q.key!==A.value)){O();try{const M=w.write(k.value);(Q===void 0||(Q==null?void 0:Q.newValue)!==M)&&(k.value=T(Q))}catch(M){v(M)}finally{Q?ai(y):y()}}}}function P(Q){D(Q.detail)}return k}const Myi={multiple:!0,accept:"*",reset:!1,directory:!1};function Pyi(e){if(!e)return null;if(e instanceof FileList)return e;const t=new DataTransfer;for(const n of e)t.items.add(n);return t.files}function cOn(e={}){const{document:t=Tyi}=e,n=fe(Pyi(e.initialFiles)),{on:r,trigger:o}=k1t(),{on:s,trigger:a}=k1t(),l=X(()=>{var g;const m=(g=XZe(e.input))!==null&&g!==void 0?g:t?t.createElement("input"):void 0;return m&&(m.type="file",m.onchange=v=>{n.value=v.target.files,o(n.value)},m.oncancel=()=>{a()}),m}),d=()=>{n.value=null,l.value&&l.value.value&&(l.value.value="",o(null))},u=g=>{const m=l.value;m&&(m.multiple=Fo(g.multiple),m.accept=Fo(g.accept),m.webkitdirectory=Fo(g.directory),byi(g,"capture")&&(m.capture=Fo(g.capture)))},h=g=>{const m=l.value;if(!m)return;const v={...Myi,...e,...g};u(v),Fo(v.reset)&&d(),m.click()};return u6(()=>{u(e)}),{files:d6(n),open:h,reset:d,onCancel:s,onChange:r}}function q4e(e,t,n={}){const{window:r=e9}=n;return lOn(e,t,r==null?void 0:r.localStorage,n)}const Fyi={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof MouseEvent?[e.movementX,e.movementY]:null};function Nyi(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:o={x:0,y:0},window:s=e9,target:a=s,scroll:l=!0,eventFilter:d}=e;let u=null,h=0,g=0;const m=nd(o.x),v=nd(o.y),f=nd(null),k=typeof t=="function"?t:Fyi[t],A=_=>{const S=k(_);u=_,S&&([m.value,v.value]=S,f.value="mouse"),s&&(h=s.scrollX,g=s.scrollY)},p=_=>{if(_.touches.length>0){const S=k(_.touches[0]);S&&([m.value,v.value]=S,f.value="touch")}},b=()=>{if(!u||!s)return;const _=k(u);u instanceof MouseEvent&&_&&(m.value=_[0]+s.scrollX-h,v.value=_[1]+s.scrollY-g)},w=()=>{m.value=o.x,v.value=o.y},O=d?_=>d(()=>A(_),{}):_=>A(_),y=d?_=>d(()=>p(_),{}):_=>p(_),C=d?()=>d(()=>b(),{}):()=>b();if(a){const _={passive:!0};Yg(a,["mousemove","dragover"],O,_),n&&t!=="movement"&&(Yg(a,["touchstart","touchmove"],y,_),r&&Yg(a,"touchend",w,_)),l&&t==="page"&&Yg(s,"scroll",C,_)}return{x:m,y:v,sourceType:f}}function Uyi(e={}){const{touch:t=!0,drag:n=!0,capture:r=!1,initialValue:o=!1,window:s=e9}=e,a=nd(o),l=nd(null);if(!s)return{pressed:a,sourceType:l};const d=m=>v=>{var f;a.value=!0,l.value=m,(f=e.onPressed)===null||f===void 0||f.call(e,v)},u=m=>{var v;a.value=!1,l.value=null,(v=e.onReleased)===null||v===void 0||v.call(e,m)},h=X(()=>XZe(e.target)||s),g={passive:!0,capture:r};return Yg(h,"mousedown",d("mouse"),g),Yg(s,"mouseleave",u,g),Yg(s,"mouseup",u,g),n&&(Yg(h,"dragstart",d("mouse"),g),Yg(s,"drop",u,g),Yg(s,"dragend",u,g)),t&&(Yg(h,"touchstart",d("touch"),g),Yg(s,"touchend",u,g),Yg(s,"touchcancel",u,g)),{pressed:a,sourceType:l}}const jyi={editMdPreivew:{title:"编辑",confirm:"保存",cancel:"取消"},imageTools:{copy:"复制图片",preview:"预览",download:"下载",msg:{imageLoadFailed:"图片加载失败",convertFailed:"转换失败",copied:"已复制到剪贴板",copyFailed:"复制失败",downloadFailed:"下载失败",downloadStarted:"开始下载",downloadBlockedOpenNewWindow:"当前图片源可能限制下载,已尝试在新窗口打开"}},migrateShow:{title:"迁移数据",desc:"检测到您有旧版本的数据,是否需要迁移?",hide:"不再显示",confirm:"确定",msg:{migrateSuccess:"数据迁移成功",migrateFailed:"数据迁移失败"}},modelSelect:{placeholder:"请选择模型",type:{image:"图像",text:"文本",video:"视频"},msg:{fetchModelFailed:"获取模型数据失败:"},goSetting:"去设置中添加模型"},storyboardImageCheck:{camera:"镜头",dialogTitle:"选择分镜图",preview:"预览",src:"预览图",title:"标题",duration:"时长",lines:"台词",createTime:"创建时间"}},Wyi={title:"ToonFlow设置",menu:{language:"语言设置",vendorConfig:"模型服务",agentConfig:"Agent配置",promptManage:"提示词管理",skillManagement:"Skills技能管理",memoryConfig:"Agent记忆配置",loginConfig:"登录配置",dbConfig:"数据库操作",fileManagement:"文件管理",otherConfig:"其他配置",requestConfig:"请求地址",devConfig:"开发者选项",about:"检查更新",logoutConfig:"退出登录",skillsSkillsManagement:"Skills技能管理"},language:{desc:"选择界面显示语言",msg:{saved:"语言设置已保存"}},vendor:{addVendor:"添加供应商",noVendor:"暂无供应商,请先添加",required:"必填",optionalSection:"选填项",modelSettings:"模型设置",addManually:"手动添加",test:"测试",edit:"编辑",delete:"删除",deleteVendor:"删除供应商",editCode:"编辑代码",updateConfig:"更新配置",addModel:"添加模型",editModel:"编辑模型",displayName:"显示名称",displayNamePlaceholder:"例如:GPT-4o",modelId:"模型标识",modelIdPlaceholder:"例如:gpt-4o",modelType:"模型类型",multimodal:"多模态",supported:"支持",notSupported:"不支持",toolCall:"工具调用",imageMode:"图像模式",videoMode:"视频模式",audioOutput:"音频输出",durationResolution:"时长 / 分辨率映射",durationSec:"时长(秒)",resolution:"分辨率",enterAndPress:"输入后回车",addDurationResolution:"添加一组时长 / 分辨率",testResult:"测试结果",generating:"正在生成中...",addVendorDialog:"添加供应商",codeEditorInfo:"请编写 TypeScript 代码配置供应商信息",reset:"重置",importFile:"导入文件",textModel:"文本模型",imageModel:"图像模型",videoModel:"视频模型",textToImage:"文生图",textToVideo:"文生视频",singleImage:"单图",multiImage:"多图模式",multiReference:"多图参考",gridImage:"网格单图",startEndRequired:"首尾帧(两张必填)",endFrameOptional:"首尾帧(尾帧可选)",startFrameOptional:"首尾帧(首帧可选)",textRef:"文本",imageRef:"图片",videoRef:"视频",audioRef:"音频",audioOptional:"可选",audioOnly:"仅输出有声视频",noAudio:"仅输出无声视频",msg:{getVendorListFailed:"获取供应商列表失败",vendorConfigUpdated:"供应商配置已更新",updateFailed:"更新失败",highRiskConfirm:"⚠️ 高风险操作确认",addVendorRiskBody:"添加新的 AI 供应商将赋予其访问系统 API 的权限,请确认您信任该供应商的代码来源!",iKnowRisk:"我了解风险",cancel:"取消",confirmAgain:"⚠️ 再次确认",addVendorConfirmBody:"确定要添加该供应商吗?添加后它将参与系统的模型调度。",confirmAndAdd:"确认并添加",goBackCheck:"返回检查",vendorAdded:"供应商已成功添加",addFailed:"添加失败",updateVendorRiskBody:"更新 AI 供应商配置将修改其访问系统 API 的权限和行为,请确认您信任修改后的代码来源!",updateVendorConfirmBody:"确定要更新该供应商配置吗?更新后将影响系统的模型调度。",confirmAndUpdate:"确认并更新",updateSuccess:"供应商配置更新成功",fillDisplayName:"请填写显示名称",fillModelId:"请填写模型标识",selectImageMode:"请选择图像模式",selectVideoMode:"请选择视频模式",groupPrefix:"第 {n} 组:",addDuration:"请添加时长",addResolution:"请添加分辨率",selectVendorFirst:"请先选择供应商",modelIdExists:"模型标识已存在",modelAdded:"模型已成功添加",modelUpdated:"模型已成功更新",enterApiKey:"请填写 API KEY",enterApiUrl:"请填写 API URL",testSuccess:"测试成功",imageGenSuccess:"图像生成成功",videoGenSuccess:"视频生成成功",requestFailed:"请求失败:",deleteModelConfirm:"确认删除模型",deleteModelBody:"删除后不可恢复,是否继续?",confirmDelete:"确认删除",modelDeleted:"模型已删除",deleteVendorConfirm:"确认删除供应商",deleteVendorBody:"删除后该供应商下所有模型将一并删除,是否继续?",vendorDeleted:"供应商已删除",deleteFailed:"删除失败",enabled:"已启用",disabled:"已禁用",linkAddVendorRiskBody:"添加新的 AI 供应商将赋予其访问系统 API 的权限,请确认您信任该供应商的链接来源!",importAdd:"添加新的 AI 供应商将赋予其访问系统 API 的权限,请确认您信任该供应商的文件来源!",linkAddFailed:"链接添加失败"},associationSkills:"关联skills",think:"深度思考",code:"代码",linkAddPlaceholder:"输入链接添加",noFileSelected:"成功导入文件",linkAdd:"确认"},agent:{bannerDesc:"使用 Toonflow 官方中转站点,支持一键填入配置,开箱即用,无需手动配置。",visitWebsite:"进入网站",fillKey:"填入KEY",oneClickFill:"一键填入",notOpen:"未开放",notConfigured:"未配置",modelConfig:"模型配置",confirm:"确认",cancel:"取消",selectModel:"选择模型",fillKeyHeader:"填入Toonflow平台的官方KEY",keyPlaceholder:"请输入 KEY",save:"保存",msg:{notAvailable:"该功能暂未开放,敬请期待",configSuccess:"配置成功",updateConfigFailed:"更新配置失败:",keyValid:"KEY有效,已成功连接Toonflow平台",keyInvalid:"KEY无效,请检查后重新输入:",enterKey:"请输入 KEY",saveFailed:"保存失败:",getAgentListFailed:"获取Agent配置列表失败:",toonflowNotFound:"Toonflow官方中转站不存在"}},memory:{warning:"以下配置项已预设为推荐值。除非您清楚了解各项配置的含义及影响,否则建议维持现有设置",vectorModelConfig:"向量模型配置",modelFilePath:"模型文件路径",quantizationType:"量化类型",quantizationPlaceholder:"请输入量化类型",memoryParams:"记忆参数",messagesPerSummary:"触发消息压缩条数",messagesPerSummaryHelp:"保留最近 N 条对话上下文。",shortTermLimit:"单次获取未压缩消息条数",shortTermLimitHelp:"检索时返回的候选记忆条数。",summaryMaxLength:"压缩最大字符",summaryMaxLengthHelp:"消息压缩时允许的最大字符",summaryLimit:"允许查询已压缩消息条数",summaryLimitHelp:"允许查询已压缩消息条数",ragLimit:"搜索记忆条数",ragLimitHelp:"检索时获取的消息数。",deepRetrieveSummaryLimit:"向量召回压缩消息数",deepRetrieveSummaryLimitHelp:"检索压缩消息内容时获取的消息数。",saveConfig:"保存配置",clearMemory:"清空记忆",restoreDefault:"恢复默认配置",msg:{saved:"记忆配置已保存",clearConfirmTitle:"确认清空记忆",clearConfirmBody:"该操作会清空 AI 全局记忆数据,且不可恢复,是否继续?",confirmClear:"确认清空",cancel:"取消",cleared:"记忆已清空",clearFailed:"清空记忆失败"}},login:{username:"用户名",usernamePlaceholder:"请输入用户名",password:"密码",passwordPlaceholder:"请输入密码",modify:"修改",msg:{enterUsername:"请输入用户名",usernameLength:"用户名长度为 2-20 个字符",enterPassword:"请输入密码",passwordLength:"密码长度为 6-20 个字符",fetchFailed:"获取用户信息失败",saveSuccess:"保存成功",saveFailed:"保存失败"}},db:{clearDb:"清空数据库",clearDbDesc:"清空所有数据表中的数据,保留表结构",clearData:"清空数据",confirmAction:"确认操作",msg:{clearDbTitle:"清空数据库",firstConfirm:"确定要清空所有数据表吗?数据清空后无法恢复!",secondConfirm:"这是最后一次确认,清空后所有数据将永久丢失!",keyword:"清空",confirm:"确认",pleaseInput:"请输入",cleared:"所有数据表已清空",operationFailed:"操作失败,请重试",cancelled:"操作已取消"}},skill:{scanSkills:"扫描Skills",addSkill:"新增 Skill",importFromHub:"Toonflow-Hub 导入",filterType:"类型",filterAttribution:"归属",searchPlaceholder:"按名称搜索 skill",search:"查询",totalCount:"共 {count} 条 Skill",typeMain:"核心",typeReferences:"技法",noAttribution:"无归属",noAttributionTip:"⚠️无归属,无法启用Skill",noEmbeddingTip:"⚠️未向量化,无法启用Skill",notEmbedded:"未向量化",stateNormal:"正常",stateGenerating:"生成描述中",stateEmptyDesc:"描述为空",stateAttrError:"归属异常",stateMd5Changed:"MD5变动,建议更新描述",embedding:"向量化",edit:"编辑",delete:"删除",importFromHubDialog:"从 Toonflow-Hub 导入",shareLink:"分享链接",editSkillTitle:"编辑 Skill-",addSkillTitle:"新增 Skill",skillName:"Skill 名称",skillNamePlaceholder:"例如:writing-assistant",path:"路径",attributionAgent:"归属 Agent",selectAttribution:"选择归属 Agent",description:"描述",aiGenerate:"AI生成",descriptionPlaceholder:"描述这个 skill 的用途",cancel:"取消",save:"保存",createSkill:"创建 Skill",attr:{productionDecision:"视频生产-执行导演",productionExecution:"视频生产-摄影指导",productionSupervision:"视频生产-监制",scriptDecision:"剧本Agent-统筹",scriptExecution:"剧本Agent-编剧",scriptSupervision:"剧本Agent-编辑",universalAgent:"制片助理"},msg:{scanSuccess:"扫描成功,共扫描到 {count} 个 Skill 文件",fetchListFailed:"获取 skill 列表失败",fillContentFirst:"请先填写 Markdown 内容",descGenSuccess:"描述生成成功",descGenFailed:"描述生成失败",fillNameFirst:"请先填写 Skill 名称",updateSuccess:"Skill 更新成功",createSuccess:"Skill 创建成功",updateFailed:"Skill 更新失败",createFailed:"Skill 创建失败",deleteConfirmTitle:"确认删除",deleteConfirmBody:"确定要删除 Skill「{name}」吗?此操作不可恢复。",deleteSuccess:"删除成功",deleteFailed:"删除失败",embeddingSuccess:"向量化成功",embeddingFailed:"向量化失败"},fileLost:"文件丢失"},other:{requestTimeout:"请求超时时间",seconds:"秒",inputSeconds:"请输入秒",assetConcurrency:"资产生成并发数",count:"个",inputCount:"请输入个数",chapterRegex:"章节拆分正则",restoreDefault:"恢复默认",regexPlaceholder:"请输入正则表达式",canvasScroll:"画布滚动",canvasIsDisabled:"画布缩放",agentCanvasScalingMethod:"生产页无限画布滚轮操作",zoom:"缩放",scroll:"滚动",isInteracting:"生产页无限画布拖拽性能优化",closeIsInteracting:"关闭",openIsInteracting:"开启"},request:{warning:"如非特殊情况,不需要修改或者配置",apiAddress:"API 地址",apiPlaceholder:"请输入 API 请求地址",save:"保存",reset:"重置",msg:{enterApi:"请输入 API 地址",validUrl:"请输入有效的 HTTP/HTTPS 地址",saved:"请求地址保存成功",reset:"已重置为默认地址",refreshFailed:"刷新失败",refreshSuccess:"刷新成功"},refresh:"刷新"},about:{slogan:"开源的AI驱动漫画 / 分镜创作工具",latestVersion:"当前为最新版本",checkUpdate:"检查更新",codeRepository:"代码仓库",githubRepo:"GitHub 仓库",giteeRepo:"Gitee 仓库",versionUpdate:"版本更新",checkUpdateGithub:"检查更新(GitHub)",getFromGithub:"从GitHub Release 获取最新版本",checkUpdateGitee:"检查更新(Gitee)",getFromGitee:"从Gitee Release获取最新版本",license:"许可证",licenseDesc:"开源许可协议·点击查看详情",updateAvailable:"发现新版本",currentVersion:"当前版本",latestVersionLabel:"最新版本",selectUpdateSource:"选择更新源",github:"GitHub",gitee:"Gitee",confirmUpdate:"确认更新",cancel:"取消",updating:"正在更新...",updateSuccess:"更新成功,请重启应用",updateFailed:"更新失败,请重试",noUpdate:"当前已是最新版本",upToDate:"检测到新版本",reinstallRequired:"将自动打开浏览器并下载,如未打开请手动打开",confirmReinstall:"复制链接"},logout:{warning:"退出登录后,您需要重新登录才能继续使用系统。",confirmLogout:"确定要退出登录吗?",logout:"退出登录",msg:{logoutSuccess:"退出登录成功",logoutFailed:"退出登录失败,请重试"}},file:{quickOpen:"快捷打开目录",open:"打开",dockerDesc:'Docker/前后端分离部署请前往"/data/*"目录手动管理文件。',desktopOnly:"该功能仅支持桌面端",folders:{data:"data",dataDesc:"数据目录。",logs:"data/logs",logsDesc:"运行日志与错误日志。",oss:"data/oss",ossDesc:"文件存储相关资源。",skills:"data/skills",skillsDesc:"技能与提示配置文件。",models:"data/models",modelsDesc:"模型文件与配置。",web:"data/web",webDesc:"Web 相关资源,如前端构建产物等。",serve:"data/serve",serveDesc:"后端服务相关文件。"},openFailed:"打开文件夹失败"},dev:{aiDevtool:"切换桌面端模式",devtool:"打开控制台",switchAiDevTool:"关闭/开启 {'@'}ai-sdk/devtools",warning:"以下为开发者工具,谨慎操作!",openDevtool:"打开",devtoolsDoc:"文档地址",devtoolsDesc:"开启后会在Toonflow安装目录创建.devtools文件夹,请确保Toonflow有写入权限(管理员身份运行)。",devtoolsDesc2:"在该目录运行 npx {'@'}ai-sdk/devtools 开启遥测调试",openDevtoolFailed:"打开开发者工具失败,请确保已安装Toonflow桌面端",notInElectron:"WEB环境请手动打开浏览器控制台"}},Vyi={selectProject:"请选择项目",menu:{myProject:"我的项目",taskCenter:"任务中心",novel:"小说原文",scriptAgent:"剧本Agent",scriptManage:"剧本管理",cornerScape:"塑角造景",production:"视频生产",assetCenter:"资产中心",settings:"设置",jumpGithub:"跳转Github",feedbackQuestions:"反馈问题"},project:{title:"我的项目",subtitle:"管理您的所有短剧项目",newProject:"新建项目",dialog:{editTitle:"编辑项目",addTitle:"新建项目",save:"保存",ok:"确定",cancel:"取消",projectType:"项目类型",selectType:"选择项目类型",basedOnNovel:"基于小说原文",projectName:"项目名称",projectNamePh:"请输入项目名称",novelType:"小说类型",novelTypePh:"例如:玄幻、科幻、言情",artStyle:"画风",selected:"已选:",selectArtStyle:"请选择画风",newArtStyle:"新建画风",loading:"加载中...",videoRatio:"影片比例",novelIntro:"小说简介",novelIntroPh:"请输入小说简介",editArtStyleTitle:"编辑画风",newArtStyleTitle:"新建画风",artStyleName:"画风名称",artStyleNamePh:"请输入画风名称",artStyleImage:"画风图片",remove:"移除",uploadCover:"上传封面",artStylePrompt:"提示词",aiExtract:"AI提取提示词",promptPlaceholder:"描述提示词",visualManual:"视觉手册",newVisualManual:"新建视觉手册",editVisualManualTitle:"编辑视觉手册",newVisualManualTitle:"新建视觉手册",visualManualName:"视觉手册名称",visualManualNamePh:"请输入视觉手册名称",visualManualCover:"视觉手册封面",visualManualPrompt:"视觉手册提示词",modelData:"选择图片模型",videoModelData:"选择视频模型",prompt:{placeholder:"输入提示词",saveSuccess:"更新成功",title:"提示词"},basedOnScript:"基于剧本",mdFile:"视觉手册文件",directorManual:"导演手册",addDirectorManual:"新建导演手册",editingDirectorManual:"编辑导演手册",newDirecorManualTitle:"新建导演手册",directorManualPrompt:"导演手册提示词",directorManualName:"导演手册名称",directorManualNamePh:"输入导演手册名称",directorFile:"导演手册文件",directorManualCover:"导演手册封面"},msg:{fetchFailed:"获取项目列表失败",notFound:"未找到该项目!",editSuccess:"编辑项目成功",editFailed:"编辑项目失败",addSuccess:"新增项目成功",addFailed:"新增项目失败",deleteHeader:"删除项目",deleteBody:"确定要删除该项目吗?",deleteConfirm:"删除",deleteCancel:"取消",deleteSuccess:"删除项目成功",deleteFailed:"删除项目失败",extractSuccess:"提示词提取成功",extractFailed:"提取失败",enterArtStyleName:"请输入画风名称",artStyleUpdated:"画风已更新",artStyleAdded:"画风已添加",operationFailed:"操作失败",enterVisualManualName:"请输入视觉手册名称",enterVisualManualImage:"请上传视觉手册封面图片",enterVisualManualTabData:"提示词不能为空",visualManualUpdated:"视觉手册已更新",visualManualAdded:"视觉手册已添加",deleteVisualManualHeader:"删除视觉手册",deleteVisualManualBody:"确定要删除视觉手册「{name}」吗?",deleteVisualManualConfirm:"删除",deleteVisualManualCancel:"取消",enterProjectName:"请输入项目名称",enterProjectIntro:"请输入小说简介",enterProjectType:"请输入小说类型",enterArtStyle:"请选择项目视觉手册",enterVideoRatio:"请选择影片比例",enterImageModel:"请选择图片模型",enterVideoModel:"请选择视频模型",visualManualDeleted:"删除成功",selectMode:"请选择模式",deleteDirectorManualHeader:"删除导演手册",deleteDirectorManualBody:"确定要删除导演手册「{name}」吗?",directorManualUpdated:"导演手册已更新",directorManualAdded:"导演手册已添加",directorManual:"请选择项目导演手册"},type:{novel:"基于小说原文",script:"基于小说剧本"}},novel:{importText:"导入原文",batchDelete:"批量删除",eventAnalysis:"事件分析",searchPlaceholder:"搜索原文名称...",search:"搜索",generating:"生成中...",genFailed:"生成失败",none:"无",edit:"编辑",delete:"删除",col:{id:"序号",reel:"卷",chapter:"章节名称",chapterData:"章节内容",event:"事件",operation:"操作"},msg:{batchDeleteHeader:"批量删除",batchDeleteBody:"确定要删除选中的 {count} 条数据吗?",batchDeleteSuccess:"批量删除成功",deleteHeader:"删除确认",deleteBody:"确定要删除章节名称为「{name}」的数据吗?",deleteSuccess:"删除成功",eventAnalysisHeader:"事件分析",eventAnalysisBody:"确定要对选中的 {count} 条数据进行事件分析吗?"},import:{title:"上传小说原文",step1:"第一步",step2:"第二步",step3:"第三步",dragUpload:"拖拽小说原文文件到此处或点击上传",uploadHint:"支持 .txt, .docx 格式,建议文件大小不超过 10MB",or:"或",pasteLabel:"直接粘贴小说原文内容",pastePlaceholder:"请输入小说原文内容",chars:"字符",tooShort:"内容过短,建议至少100字符",parsedChapters:"已解析 {count} 章节",nextStep:"下一步",prevStep:"上一步",selectedInfo:"已勾选:{count}字(小于200000字)",eventAnalysis:"事件分析",saveAndAnalyze:"保存原文并分析事件",col:{chapter:"章",reel:"卷",chapterName:"章节名称",chapterData:"章节内容"},msg:{parseFailed:"文件解析失败,请重新上传",selectFile:"选择文件",docNotSupported:".doc文件不支持解析,请转换为.ts文件",unsupportedType:"不支持的文件类型",fileTooLarge:"文件大小超过10MB,请上传更小的文件",selectChapters:"请先勾选章节",saveSuccess:"小说原文保存成功"},importAdd:"拖拽文件到此处或点击上传",limit:"支持 .ts格式"},editDialog:{title:"编辑小说原文",chapterName:"章节名称",chapterNamePh:"请输入章节名称",eventContent:"事件内容",eventContentPh:"输入事件内容",chapterContent:"章节内容",chapterContentPh:"请输入章节内容",cancel:"取消",save:"保存",msg:{updateSuccess:"小说原文更新成功"}},event:{regenerate:"重新生成事件",batchDelete:"批量删除",noData:"暂无事件数据,点击开始生成",generate:"生成事件",generatingHint:"事件生成中,请稍候...",loading:"加载中...",delete:"删除",col:{id:"事件ID",eventName:"事件名称",chapters:"来源章节",detail:"事件过程",createTime:"创建时间",operation:"操作"},msg:{deleteHeader:"删除事件",deleteBody:"确定要删除这个事件吗?",deleteSuccess:"删除成功",generateSuccess:"事件生成成功",batchDeleteHeader:"批量删除",batchDeleteBody:"确定要删除选中的 {count} 条数据吗?",batchDeleteSuccess:"批量删除成功"}},analysis:{analyzeFirst:"请先分析事件",startAnalysis:"开始分析",chapterHeader:"第{index}章 - {name}",analyzing:"事件分析中"}},scriptAgent:{inputPlaceholder:"请输入内容",chapterEvents:"章节事件",clearMessageMemory:"清空消息记忆",clearSummaryMemory:"清空摘要记忆",clearAllMemory:"清空全部记忆",edit:"编辑",storySkeleton:"故事骨架",adaptationStrategy:"改编策略",script:"剧本",noContent:"暂无内容",relatedAssets:"关联资产",editScript:"编辑剧本",save:"保存",scriptTitle:"标题",titlePlaceholder:"请输入标题",content:"内容",contentPlaceholder:"请输入剧本内容",selectAssets:"选择资产",noAssets:"暂未关联资产",selectAssetsTitle:"选择关联资产",welcomeMsg:"你好!我是 Toonflow 智能助手,需要我开始为您生成剧本吗?",start:"开始",memoryType:{message:"消息记忆",summary:"摘要记忆",all:"全部记忆"},forceGenerate:{title:"是否强制生成",desc:"当前存在尚未完成事件分析的章节,是否仍然强制继续生成?",confirm:"强制生成",cancel:"取消"},msg:{clearConfirm:"确认清空",clearBody:"确定要清空{type}吗?此操作无法撤销。",confirmClear:"确认清空",cancel:"取消",memoryCleared:"{type}已清空",scriptUpdated:"剧本更新成功",scriptUpdateFailed:"更新剧本失败,请稍后再试",searchScriptFailed:"搜索剧本失败",updated:"保存成功",error:"保存失败",reconnect:"重新连接",notReconnect:"重新连接对话会被切断是否确认",keepReconnect:"确认",deleteConfirm:"删除确认",deleteBody:"删除正文",confirmDelete:"确认删除",scriptDeleted:"脚本已删除"},reconnect:"重新连接"},cornerScape:{batchSettings:"批量生成设置",quickActions:"快捷指令",selectUngenerated:"全选未生成项",selectGenerated:"全选已生成项",selectFailed:"全选错误项",invertSelection:"反选",clearSelection:"取消选择",batchPreview:"批预览图片",assetTypeFilter:"素材类型筛选",genModel:"生成模型",resolution:"分辨率",resolutionPh:"请选择分辨率",concurrency:"并发数量",concurrencyPh:"请输入并发数",startBatch:"开始批量生成图片",waitingGen:"等待生成",generating:"生成中",genFailed:"生成失败",imageError:"图片错误",typeRole:"角色",typeScene:"场景",typeTool:"工具",typeUnknown:"未知",descriptionSuffix:"描述:",operateScriptFirst:"请先操作剧本",individualConfig:"单独配置",noImage:"暂无图片",promptLabel:"提示词",promptPh:"请输入提示词",aiPolish:"AI 润色",regenerate:"重新生成",filterRole:"人物",filterScene:"场景",filterTool:"道具",unnamed:"未命名",noDescription:"无描述",msg:{selectModel:"请选择生成模型",selectResolution:"请选择分辨率",enterPrompt:"请输入提示词",enterPromptFirst:"请先输入提示词",genSuccess:"{name} 生成成功",genFailed:"{name} 生成失败",promptGenSuccess:"提示词生成成功",polishFailed:"润色失败,请重试",selectAtLeastOne:"请至少选择一个资产进行批量生成",batchStarted:"开始批量生成,共 {count} 个,并发数 {concurrent}",batchItemFailed:"{name} 生成失败:{error}",batchComplete:"批量生成完成",batchFailed:"批量生成失败",replaceFailed:"替换失败",replaceSuccess:"替换成功",emptyPrompt:"勾选的数据{emptyPromptNames}提示词为空,请先生成提示词",promptGenFail:"提示词生成失败",saveSuccess:"修改提示词成功",saveFailed:"提示词修改失败"},history:"历史图片",confirmReplace:"确认替换",batchGenerationPrompt:"批量生成提示词",generatingPrompt:"生成中",selectPromptEmpty:"全选提示词为空",noEmptyPrompt:"没有提示词为空的资产",selectedCount:"已选中{count}个资产"},script:{searchPlaceholder:"搜索剧本名称...",search:"搜索",addScript:"新建剧本",cancelSelectAll:"取消全选",selectAll:"全选",exportScript:"导出剧本",msg:{extracting:"资产提取中",extractFailed:"资产提取失败",extractingInProgress:"正在提取中",projectNotFound:"项目未找到",selectExport:"请选择导出剧本",deleteHeader:"确认删除",deleteBody:"确认要删除这个剧本吗?次操作无法复原",deleteConfirm:"删除",cancel:"取消",deleteSuccess:"删除成功",deleteFailed:"删除失败",selectDelScript:"请选择删除剧本",batchDeleteHeader:"批量删除",batchDeleteBody:"确定要删除选中的{count}个剧本吗?此操作无法复原",batchDeleteSuccess:"批量删除成功",searchFailed:"搜索剧本失败",selectsExport:"请选择导出剧本"},add:{title:"新增剧本",scriptName:"剧本名称",scriptNamePh:"请输入剧本名称",uploadFile:"上传文件",dragUpload:"拖拽剧本文件到此处或点击上传",uploadHint:"支持 .txt, .docx 格式,建议文件大小不超过 10MB",scriptContent:"剧本内容",scriptContentPh:"请上传或输入剧本内容...",relatedAssets:"关联资产",selectAssets:"选择资产",noAssets:"暂未关联资产",cancel:"取消",confirm:"确认",msg:{fileReadFailed:"文件读取失败",docNotSupported:".doc文件不支持解析,请转换为.txt或.docx文件",unsupportedType:"不支持的文件类型",fileTooLarge:"文件大小超过10MB,请上传更小的文件",parsing:"文件解析中...",parseFailed:"文件解析失败,请重新上传",selectAssetsTitle:"选择关联资产",enterContent:"请上传或输入剧本内容",enterName:"请输入剧本名称",addSuccess:"剧本添加成功",addFailed:"添加剧本失败,请稍后再试"}},edit:{title:"剧本详情",scriptName:"剧本名称",scriptNamePh:"请输入剧本名称",scriptContent:"剧本内容",scriptContentPh:"请输入剧本内容...",relatedAssets:"关联资产",selectAssets:"选择资产",noAssets:"暂未关联资产",msg:{selectAssetsTitle:"选择关联资产",updateSuccess:"剧本更新成功",updateFailed:"更新剧本失败,请稍后再试"}},deleteScript:"批量删除剧本",extractAssets:"提取资产"},assets:{addPrefix:"新增",batchGenerate:"批量生成",generatePrompt:"生成提示词",generateImage:"生成图片",batchDelete:"批量删除",searchPlaceholder:"搜索资产名称...",search:"搜索",preview:"预览",generate:"生成",edit:"编辑",delete:"删除",generating:"生成中",play:"播放",mediaPreview:"媒体预览",confirmBatch:"是否确认{type}!",model:"模型",resolution:"分辨率",resolutionPh:"请选择分辨率",batchGenPrompt:"批量生成提示词",batchGenImage:"批量生成图片",role:"角色",prop:"道具",scene:"场景",clip:"素材",uploadSuccess:"上传成功",selectAtLeastOne:"请至少选择一个资产",noDescription:"无描述",promptGenSuccess:"「{name}」提示词生成成功",promptGenFail:"「{name}」提示词生成失败:{error}",selectModel:"请选择模型",selectResolution:"请选择分辨率",noPromptForImage:"「{name}」没有提示词,无法生成图片",imageGenSuccess:"「{name}」图片生成成功",imageGenFail:"「{name}」图片生成失败:{error}",confirmDeleteHeader:"确认删除",confirmBatchDeleteBody:"确定要批量删除这些资产吗?此操作无法撤销。",confirmDeleteBody:"确定要删除这资产吗?此操作无法撤销。",deleteBtn:"删除",cancelBtn:"取消",deleteSuccess:"资产删除成功",deleteFail:"资产删除失败",colPreview:"预览",colName:"名称",colPrompt:"提示词",colDescribe:"描述",colRemark:"备注",colCreateTime:"创建时间",colOperation:"操作",add:{name:"名称",namePh:"请输入名称",describe:"描述",describePh:"请输入描述",remark:"备注",remarkPh:"请输入备注",prompt:"提示词",promptPh:"请输入提示词",nameRequired:"请输入名称",describeRequired:"请输入详情",remarkRequired:"请输入备注",updateSuccess:"资产更新成功",addSuccess:"资产添加成功"},gen:{header:"图片生成",uploadRef:"上传参考图片",optional:"可选",promptLabel:"生图提示词",smartGenerate:"智能生成",generatingPrompt:"智能生成提示词中...",promptPlaceholder:"描述您想要生成的图片内容,例如:一个充满科技感的未来城市,霓虹灯闪烁,赛博朋克风格...",selectModel:"选择模型",selectResolution:"选择分辨率",generateBtn:"生成图片",resultTitle:"生成结果",generatedCount:"已生成 {count} 张,请选择一张",generatingLabel:"生成中...",genFailed:"生成失败",confirmSelect:"确认选择",promptSuccess:"提示词生成成功",promptFail:"提示词生成失败",fillPrompt:"请填写提示词",pickResolution:"请选择分辨率",pickModel:"请选择模型",unnamed:"未命名",assetGenSuccess:"资产生成成功",assetGenFail:"资产生成失败",uploadOk:"上传成功",imageSelected:"已选择该图片",imageDeleted:"已删除该图片",imageSaved:"图片已保存",completed:"已完成"},batch:{header:"批量生成",selected:"已选择 {count} 项",selectAll:"全选",clearSelection:"清空选择",inputPh:"请输入内容",saveSelected:"保存选中 ({count})",colPreviewImg:"预览图",selectToSave:"请选择要保存的项目",saveSuccess:"保存成功",saveFail:"保存失败,请重试",promptDone:"提示词生成完成",promptFail:"提示词生成失败",missingPrompts:"有 {count} 个资产缺少提示词,请先生成提示词",imageDone:"图片生成完成",imageGenFail:"图片生成失败",unknownError:"未知错误",promptGenCancelled:"已取消生成"}},production:{selectPlaceholder:"请选择剧集",edit:"编辑",node:{script:{title:"剧本",editDialog:"编辑剧本"},scriptPlan:{title:"导演计划",editDialog:"编辑导演计划"},storyboard:{title:"分镜面板",notGenerated:"未生成",scaleRatio:"缩放比例",gridPreview:"宫格预览",noPreviewImages:"暂无可预览的图片",imageLoadFailed:"图片加载失败",promptPlaceholder:"请输入提示词",prompt:"提示词",editInfo:"提示词修改"},storyboardTable:{title:"分镜表",editDialog:"编辑分镜表"},assets:{title:"衍生资产",generateFailed:"生成失败",notGenerated:"未生成",originalAsset:"原资产",derived:"衍生",noDerivedAssets:"无衍生资产"},poster:{title:"视频封面",coverCount:"{count} 张"},workbench:{title:"视频工作台"}},editImage:{upload:"上传",generate:"生成",saveFailed:"保存失败,请重试",fetchFailed:"获取数据失败",generating:"生成中...",deleteNode:"删除节点",ratio:"比例",quality:"质量",generateBtn:"生成图片",selectImage:"选择图片",imageGeneration:"图片生成",promptPlaceholder:"描述你想要生成的图片...",imageRef:"图{index}",videoRef:"视频{index}",audioRef:"音频{index}",reference:"参考{index}",noReferences:"暂无可引用的参考文件",selectModel:"请先选择模型",selectQuality:"请选择画质",selectRatio:"请选择比例",generateFailed:"生成失败",generateFirst:"请先生成图片",generatedResult:"生成结果",waitingGenerate:"等待生成",layoutLR:"自动排版-左右布局",layoutTB:"自动排版-上下布局",uploadAssetImage:"资产图片上传",uploadStoryboardImage:"分镜图片上传",uploadImage:"资产图片上传",mode:"模式",closeConfirmTitle:"是否关闭编辑面板?",closeConfirmBody:"关闭之后未保存的数据会丢失"},save:"选取",cancel:"取消",chatBox:{inputPlaceholder:"输入消息...",generateDerivedAssets:"生成衍生资产",welcomeMessage:"你好!我是你的 AI 助手,有什么可以帮你的吗?",adjustModel:"调整模型",startMakingVideo:"开始制作视频",startMakingVideoPrompt:"请帮我开始制作视频",clearMessageMemory:"清除消息记忆",clearSummaryMemory:"清除摘要记忆",clearAllMemory:"清除所有记忆",messageMemory:"消息记忆",summaryMemory:"摘要记忆",allMemory:"所有记忆",confirmClear:"清除记忆",confirmClearBody:"确定要清除{type}吗?",confirmClearBtn:"确定清除",memoryCleared:"{type}已清除"},wb:{quickPreview:"快速预览",videoGeneration:"分镜台",videoEditing:"剪辑台",hint:"提示",extractLines:"是否从视频中提取台词?",no:"否",confirm:"确定",extractLinesQuestion:"是否从视频中提取台词作为字幕?",importingLoading:"正在导入中,请稍候...",mainTrackVideo:"主轨道(视频)",subtitle1:"字幕1",storyboardVideoName:"分镜视频-{storyboard}.mp4"},preview:{noImage:"暂无图片",storyboardDesc:"分镜描述",serialNumber:"序号",noDescription:"暂无描述",duration:"时长",seconds:"秒",relatedAssets:"涉及资产",role:"角色",prop:"道具",scene:"场景",noCharacters:"暂无出场人物",imagePrompt:"图片提示词",selectAll:"全选",exportImage:"导出图片",sceneDescription:"画面描述",promptLabel:"提示词",restoreSort:"还原排序",restoreSortConfirm:"确定要还原为初始排序吗?",tip:"提示",selectAtLeastOne:"请至少选择一个分镜进行导出",exportFilename:"分镜图片"},generate:{noVideo:"暂无数据",videoPrompt:"视频提示词",promptPlaceholder:"输入提示词,描述你想要生成的视频内容...",refImage:"参考图",image:"图片",refVideo:"参考视频",refImageLabel:"参考图片",refAudio:"参考音频",muteAudio:"关闭音频",enableAudio:"开启音频",resolution:"分辨率",duration:"时长",generate:"生成",historyVersions:"历史版本",confirmSelection:"确认选中",noHistory:"暂无历史记录",generating:"生成中",generatingPrompt:"智能生成提示词中",generateFailed:"生成失败",selectAll:"全选",videoTrack:"视频轨道",batchGenerate:"批量生成",importToEditor:"导入剪辑台",modeSingleImage:"单图",modeMultiImage:"多图",modeGridImage:"网格多图",modeStartEnd:"首尾帧",modeText:"文生视频",modeVideoRef:"视频参考",modeImageRef:"图片参考",modeAudioRef:"音频参考",modeTextRef:"文本参考",startFrame:"首帧",startFrameOptional:"首帧(可选)",endFrame:"尾帧",endFrameOptional:"尾帧(可选)",selectRefImage:"选择参考图",selectRefImages:"选择参考图片",selectEndFrame:"选择尾帧图",selectRefVideoAsset:"选择参考视频",selectRefAudioAsset:"选择参考音频",selectRefImageAsset:"选择参考图片",selectImageSource:"选择图片来源",fromStoryboard:"分镜图",fromStoryboardDesc:"从分镜列表中选择图片",fromAssets:"资产图",fromAssetsDesc:"从资产库中选择图片",confirmDelete:"确认删除",confirmDeleteBody:"确定要删除这个视频吗?此操作无法撤销。",delete:"删除",cancel:"取消",deleteSuccess:"视频删除成功",deleteFailed:"删除失败",selectVideoFirst:"请先选择一个视频",confirmSuccess:"确认选中成功",batchSubmitted:"已提交批量生成请求,正在处理中...",configNotFound:"配置不存在",stateSuccess:"生成成功",statePending:"待生产",pollingFailed:"视频状态查询失败,请手动刷新",batchGeneratePrompt:"批量生成提示词",promptEmpty:"请先输入视频提示词",modelEmpty:"请先选择视频生成模型",batchPromptEmpty:"分镜 {names} 的视频提示词为空,请先生成或填写提示词",batchModelEmpty:"分镜 {names} 未配置视频生成模型,请先选择模型"},editVideo:{reset:"重置",undo:"撤销",redo:"重做",split:"分割",delete:"删除",rendering:"渲染中...",exportVideo:"导出视频",exportSuccess:"视频导出完成",exportFailed:"导出失败",sampleSubtitle:"示例字幕文本",customText:"自定义文本内容",transitionBetweenClips:"转场需要添加在两个相邻的 Clip 之间",transitionExists:"该位置已存在转场",videoPreviewArea:"视频预览区域",clipMaterials:"剪辑素材",propertyPanel:"属性面板",selectClip:"选择一个 Clip 查看属性",basicInfo:"基础信息",name:"名称",clipNamePlaceholder:"Clip 名称",startTime:"开始",endTime:"结束",totalDuration:"总时长",videoProperties:"视频属性",opacity:"不透明度",volume:"音量",playbackSpeed:"播放速度",audioProperties:"音频属性",fadeIn:"淡入",fadeOut:"淡出",transitionProperties:"转场属性",transitionType:"转场类型",transFade:"淡入淡出",transSlide:"滑动",transWipe:"擦除",transDissolve:"溶解",transZoom:"缩放",transRotate:"旋转",transitionDuration:"转场时长",subtitleProperties:"字幕属性",textContent:"文本内容",fontSize:"字体大小",copy:"复制",deleteConfirm:"删除确认",deleteClipConfirm:"确定要删除这个 Clip 吗?",avCanvasNotInit:"AVCanvas 尚未初始化",noExportContent:"没有可导出的内容",exportProject:"导出项目",transitionAdded:"已添加转场: {name}",splitClip:"分割片段",deleteClip:"删除片段",addClip:"添加 {name}",duplicateClip:"复制 Clip",addTransition:"添加转场",updateClip:"更新 Clip {key}",updatePlaybackRate:"更新播放倍速为 {rate}x",updateTransitionDuration:"更新转场时长",playbackRateRange:"播放倍速必须在 0.1 到 10 之间",updatePlaybackRateFailed:"更新播放倍速失败:",importProject:"导入项目",import:"导入"},clipType:{video:"视频",audio:"音频",subtitle:"字幕",transition:"转场",sticker:"贴纸",filter:"滤镜",effect:"特效"},track:{video:"视频",image:"图片",audio:"音频",subtitle:"字幕",text:"文本",sticker:"贴纸",filter:"滤镜",effect:"特效"},transition:{fade:"淡入淡出",slide:"滑动",slideLeft:"向左滑动",slideRight:"向右滑动",slideUp:"向上滑动",slideDown:"向下滑动",wipe:"擦除",wipeLeft:"向左擦除",wipeRight:"向右擦除",wipeUp:"向上擦除",wipeDown:"向下擦除",dissolve:"溶解",zoom:"缩放",zoomIn:"放大",zoomOut:"缩小",rotate:"旋转",circle:"圆形",diamond:"菱形",clock:"时钟",blur:"模糊"},media:{titleText:"标题文本",subtitleText:"字幕文本",customText:"自定义文本",media:"媒体",image:"图片",audio:"音频",subtitle:"字幕",transition:"转场",effect:"特效",filter:"滤镜",loading:"加载中...",subtitlePreview:"字",video:"视频"},effect:{fadeIn:"淡入",fadeOut:"淡出",flash:"闪烁",shake:"抖动",zoomIn:"放大进入",zoomOut:"缩小退出",pulse:"脉冲",rotateIn:"旋转进入",sticker1:"贴纸 1",sticker2:"贴纸 2"},filter:{grayscale:"黑白",sepia:"复古",warm:"暖色",cool:"冷色",vivid:"鲜艳",bright:"明亮",highContrast:"高对比",blur:"模糊",invert:"反色",semiTransparent:"半透明"},guideSwitchEpisode:"切换剧集",guideSwitchEpisodeBody:"切换剧集挪移到这里了哦",guideRefresh:"刷新数据",guideRefreshBody:"点击刷新按钮重新获取工作区数据",guideCanvasNav:"画布操作",guideCanvasNavBody:"滚轮上下平移画布,Ctrl + 滚轮缩放画布,按住鼠标左键拖拽自由平移",guideRightChat:"AI 对话",guideRightChatBody:"在右侧对话框中与 AI 交流,驱动自动化流程",guideLayoutBtn:"自动排版",guideLayoutBtnBody:"点击此按钮可自动整理节点布局",autoLayoutLR:"自动排版-左右布局",autoLayoutTB:"自动排版-上下布局",getFlowData:"刷新工作区",confirm:"切换剧集确认",confirmEpisodesSwitch:"当前任务仍在进行中,切换剧集会重连会话,是否继续切换?"},task:{title:"任务列表",subtitle:"您的最新任务执行记录",refresh:"刷新",categoryLabel:"任务大类:",stateLabel:"状态:",noFailReason:"暂无失败原因",stateAll:"全部",stateRunning:"进行中",stateCompleted:"已完成",stateFailed:"生成失败",fetchFailed:"获取任务列表失败",col:{taskClass:"任务大类",relatedObjects:"关联对象",model:"模型",describe:"描述",state:"状态",startTime:"时间",reason:"失败原因"},project:"项目名称:"},noVideo:"暂无视频",prompt:"视频提示词",generateText:"AI生成提示词",selectStoryboard:"选择分镜",generate:{noVideo:"暂无数据",prompt:"视频提示词",generateText:"AI生成提示词",selectStoryboard:"选择分镜",generate:"生成视频",history:"历史版本",generating:"生成中",generateFailed:"失败",selectAll:"全选",selected:"已选",batchGenerateText:"批量生成提示词",batchGenerateVideo:"批量生成视频",importVideo:"导入剪辑台",emptyTrack:"第{index}段",del:"删除",delConfirm:"确认删除该段?",selectSource:"选择来源",confirm:"从资产选择",cancel:"从分镜选择",generateSuccess:"视频生成成功",selectVideoFailed:"视频选择失败",selectVideoSuccess:"视频选择成功",selectTrackFirst:"请先选择分镜",noSelectedVideo:"没有选择的视频",generateConfirm:"确认生成",generateConfirmBody:"是否确认生成视频",generateVideosInBatches:"批量生成视频",generateStarted:"生成开始",promptEmpty:"勾选需要生成视频的数据有提示词为空,是否继续生成",skipDataWithEmptyVideoPromptWords:"需要生成的视频数据存在提示词为空",duration:"时长",resolution:"分辨率",delVideo:"确认删除此视频?",delSuccess:"删除成功",addReference:"添加参考",promptPlaceholder:"请输入视频提示词",downloadVideo:"批量下载视频",selectVideo:"请勾选需要下载的视频"}},zyi={slogan:"智能短剧创作平台",tips:"默认账号:admin / admin123",settings:"服务器设置",requestAddress:"请求地址",username:"用户名",password:"密码",login:"登录",usernameRequired:"请输入用户名",passwordRequired:"请输入密码",enterUsernameAndPassword:"请输入用户名或密码",loginSuccess:"登录成功",settingsSaved:"设置已保存"},Hyi={cancel:"取消",confirm:"确定",selectAssets:"选择资产",sessionExpired:"登录已过期,请重新登录",openSettings:"打开设置",cancelled:"已取消生成",defaultReel:"正文卷",save:"保存",submitting:"提交中",editSuccess:"修改成功",editFailed:"修改失败",submit:"提交"},$yi={prompt:"提示词"},Xyi={welcomeTitle:"欢迎使用 ToonFlow",welcomeDesc:"AI 驱动的漫画创作工作流平台,让我们花一分钟完成初始配置。",startConfig:"开始配置",skip:"跳过引导",configModel:"添加模型服务",configData:"配置 Agent",startUse:"开始使用",configModelTitle:"添加模型服务供应商",configModelDesc:"首先,你需要在设置中添加至少一个 AI 模型服务供应商(如 OpenAI、Claude 等),并填写对应的 API Key。",configModelTip:"点击下方按钮将打开设置页面的「模型服务」选项卡,添加供应商后回到此处继续。",configModelBtn:"前往配置模型服务",configAgentTitle:"分配 Agent 模型",configAgentDesc:"接下来,在 Agent 配置中为各个功能模块分配模型,这样系统才知道调用哪个模型来完成任务。",configAgentTip:"点击下方按钮将打开设置页面的「Agent 配置」选项卡,为各功能分配模型后回到此处。",configAgentBtn:"前往配置 Agent",finishTitle:"🎉 一切就绪!",finishDesc:"配置完成,现在你可以开始使用所有功能了。如需调整,随时可以在设置中修改。",qrcodeLabel:"加入微信交流群,获取更多帮助:",githubLabel:"如果觉得好用,请给我们一个 ⭐ Star 吧!",prevStep:"上一步",nextStep:"下一步",finish:"开始使用"},Gyi={skillManagement:{search:"搜索文件名",empty:"没有匹配的文件",edit:"编辑",selectOnTheLeft:"请从左侧选择文件"}},Yyi={assetsNotExists:"资产不存在",assets:{notExist:"资产不存在",notDerivativeExist:"衍生资产不存在",derivativeUpdateSuccess:"更新成功",derivativeState:"未生成",derivativeAddSuccess:"添加成功",derivativeDelSuccess:"删除成功",notGenerated:"未生成"},addSuccess:"更新成功",state:{unused:"未生成"},saveSuccess:"添加成功"},Zyi={generating:"生成中"},qyi={scanning:"🔍 正在解析加载Skill",scanComplete:"✨ Skill 扫描完成",inserted:"✅ 新增{count}个Skill",updated:"🔄 更新{count}个Skill",removed:"🗑️ 移除{count}个Skill",scannedFiles:"📁 扫描 {count} 个文件",noDescription:"📝 {count}个Skill缺少描述",noAttribution:"👤 {count}个Skill缺少归属",configWarning:"⚠️ Skill 配置警告",openSettings:"打开设置",scanFailed:"❌ 扫描失败",checkNetwork:"🔌 请检查网络连接或稍后重试",retryLater:"🔁 请稍后重试"},Kyi="生成视频",Jyi="历史版本",eCi="生成中",tCi="失败",nCi="全选",iCi="已选 ",rCi="导入视频",oCi="123",sCi="确认删除",aCi="确认删除该段?",lCi="选择来源",cCi="从资产选择",dCi="从分镜选择",uCi={newVersion:"有新版本,是否更新?"},hCi={components:jyi,settings:Wyi,workbench:Vyi,login:zyi,common:Hyi,"workbench.project.msg.enterProjectQuality":"请选择图片质量",promptManage:$yi,"workbench.production.node.storyboard.batchGenerateImage":"重新生成","workbench.production.node.storyboard.batchGenerateFailed":"生成失败","workbench.production.node.storyboard.batchGenerateSuccess":"开始生成分镜","workbench.production.node.storyboard.removeFailed":"删除分镜失败","workbench.production.node.storyboard.editNode":"编辑","workbench.production.node.storyboard.deleteNode":"删除","workbench.production.node.storyboard.confirmDeleteBody":"确认是否删除该分镜",hello:Xyi,setting:Gyi,storyboard:Yyi,productionAgent:Zyi,skillScan:qyi,generate:Kyi,history:Jyi,generating:eCi,generateFailed:tCi,selectAll:nCi,selected:iCi,importVideo:rCi,emptyTrack:oCi,del:sCi,delConfirm:aCi,selectSource:lCi,confirm:cCi,cancel:dCi,"workbench.script.msg.waitExtract":"等待提取","workbench.script.msg.exportSuccess":"导出成功","workbench.script.msg.exportFailed":"导出失败","workbench.production.node.storyboard.videoDescPlaceholder":"请输入视频描述","workbench.production.node.storyboard.videoDesc":"视频描述","workbench.production.node.assets.confirmDeleteBody":"确认是否删除该资产","workbench.production.node.assets.removeFailed":"删除资产失败",version:uCi,"workbench.production.generatedNode.localUpload":"本地上传","workbench.production.editImage.uploadFailed":"图片上传失败","workbench.production.editImage.noImage":"请先添加图片"},fCi={editMdPreivew:{title:"編輯",confirm:"儲存",cancel:"取消"},imageTools:{copy:"複製圖片",preview:"預覽",download:"下載",msg:{imageLoadFailed:"圖片載入失敗",convertFailed:"轉換失敗",copied:"已複製到剪貼簿",copyFailed:"複製失敗",downloadFailed:"下載失敗",downloadStarted:"開始下載",downloadBlockedOpenNewWindow:"目前的圖片來源可能限制下載,已嘗試在新視窗開啟"}},migrateShow:{title:"轉移資料",desc:"偵測到您有舊版本的資料,是否需要轉移?",hide:"不再顯示",confirm:"確定",msg:{migrateSuccess:"資料轉移成功",migrateFailed:"資料轉移失敗"}},modelSelect:{placeholder:"請選擇模型",type:{image:"圖片",text:"文字",video:"影片"},msg:{fetchModelFailed:"取得模型資料失敗:"},goSetting:"去設定中加入模型"},update:{title:"發現新版本",currentVersion:"目前版本:",latestVersion:"最新版本:",tip:"發現新版本,建議您更新以獲得更好的體驗",later:"稍後提醒",updateNow:"立即更新"}},gCi={title:"ToonFlow 設定",menu:{language:"語言設定",vendorConfig:"模型服務",agentConfig:"Agent 設定",promptManage:"提示詞管理",skillManagement:"Skills技能管理",memoryConfig:"Agent 記憶設定",loginConfig:"登入設定",dbConfig:"資料庫操作",fileManagement:"檔案管理",otherConfig:"其他設定",requestConfig:"請求網址",about:"檢查更新",logoutConfig:"登出",skillsSkillsManagement:"Skills技能管理"},language:{desc:"選擇介面顯示語言",msg:{saved:"語言設定已儲存"}},vendor:{addVendor:"新增供應商",noVendor:"暫無供應商,請先新增",required:"必填",optionalSection:"選填項目",modelSettings:"模型設定",addManually:"手動新增",test:"測試",edit:"編輯",delete:"刪除",deleteVendor:"刪除供應商",editCode:"編輯程式碼",updateConfig:"更新設定",addModel:"新增模型",editModel:"編輯模型",displayName:"顯示名稱",displayNamePlaceholder:"例如:GPT-4o",modelId:"模型 ID",modelIdPlaceholder:"例如:gpt-4o",modelType:"模型類型",multimodal:"多模態",supported:"支援",notSupported:"不支援",toolCall:"工具呼叫",imageMode:"圖片模式",videoMode:"影片模式",audioOutput:"音訊輸出",durationResolution:"時長 / 解析度對應",durationSec:"時長(秒)",resolution:"解析度",enterAndPress:"輸入後按下 Enter",addDurationResolution:"新增一組時長 / 解析度",testResult:"測試結果",generating:"正在生成中...",addVendorDialog:"新增供應商",codeEditorInfo:"請撰寫 TypeScript 程式碼設定供應商資訊",reset:"重設",importFile:"匯入檔案",textModel:"文字模型",imageModel:"圖片模型",videoModel:"影片模型",textToImage:"文字生成圖片",textToVideo:"文字生成影片",singleImage:"單圖",multiImage:"多圖模式",multiReference:"多圖參考",gridImage:"網格單圖",startEndRequired:"首尾影格(兩張必填)",endFrameOptional:"首尾影格(尾影格選填)",startFrameOptional:"首尾影格(首影格選填)",textRef:"文字",imageRef:"圖片",videoRef:"影片",audioRef:"音訊",audioOptional:"選填",audioOnly:"僅輸出有聲影片",noAudio:"僅輸出無聲影片",msg:{getVendorListFailed:"取得供應商列表失敗",vendorConfigUpdated:"供應商設定已更新",updateFailed:"更新失敗",highRiskConfirm:"⚠️ 高風險操作確認",addVendorRiskBody:"新增的 AI 供應商將賦予其存取系統 API 的權限,請確認您信任該供應商的程式碼來源!",iKnowRisk:"我了解風險",cancel:"取消",confirmAgain:"⚠️ 再次確認",addVendorConfirmBody:"確定要新增該供應商嗎?新增後它將參與系統的模型排程。",confirmAndAdd:"確認並新增",goBackCheck:"返回檢查",vendorAdded:"供應商已成功新增",addFailed:"新增失敗",updateVendorRiskBody:"更新 AI 供應商設定將修改其存取系統 API 的權限和行為,請確認您信任修改後的程式碼來源!",updateVendorConfirmBody:"確定要更新該供應商設定嗎?更新後將影響系統的模型排程。",confirmAndUpdate:"確認並更新",updateSuccess:"供應商設定更新成功",fillDisplayName:"請填寫顯示名稱",fillModelId:"請填寫模型 ID",selectImageMode:"請選擇圖片模式",selectVideoMode:"請選擇影片模式",groupPrefix:"第 {n} 組:",addDuration:"請新增時長",addResolution:"請新增解析度",selectVendorFirst:"請先選擇供應商",modelIdExists:"模型 ID 已存在",modelAdded:"模型已成功新增",modelUpdated:"模型已成功更新",enterApiKey:"請填寫 API KEY",enterApiUrl:"請填寫 API URL",testSuccess:"測試成功",imageGenSuccess:"圖片生成成功",videoGenSuccess:"影片生成成功",requestFailed:"請求失敗",deleteModelConfirm:"確認刪除模型",deleteModelBody:"刪除後不可恢復,是否繼續?",confirmDelete:"確認刪除",modelDeleted:"模型已刪除",deleteVendorConfirm:"確認刪除供應商",deleteVendorBody:"刪除後該供應商下所有模型將一併刪除,是否繼續?",vendorDeleted:"供應商已刪除",deleteFailed:"刪除失敗",enabled:"已啟用",disabled:"已停用",linkAddVendorRiskBody:"新增新的 AI 供應商將賦予其存取系統 ​​API 的權限,請確認您信任該供應商的連結來源!",importAdd:"新增新的 AI 供應商將賦予其存取系統 ​​API 的權限,請確認您信任該供應商的文件來源!",linkAddFailed:"連結新增失敗"},associationSkills:"關聯skills",think:"深度思考",code:"程式碼",linkAddPlaceholder:"輸入連結添加",noFileSelected:"成功導入文件",linkAdd:"確認"},agent:{bannerDesc:"使用 Toonflow 官方中繼網站,支援一鍵帶入設定,開箱即用,無需手動設定。",visitWebsite:"進入網站",fillKey:"填入 KEY",oneClickFill:"一鍵帶入",notOpen:"尚未開放",notConfigured:"尚未設定",modelConfig:"模型設定",confirm:"確認",cancel:"取消",selectModel:"選擇模型",fillKeyHeader:"填入 Toonflow 平台的官方 KEY",keyPlaceholder:"請輸入 KEY",save:"儲存",msg:{notAvailable:"該功能暫未開放,敬請期待",configSuccess:"設定成功",updateConfigFailed:"更新設定失敗:",keyValid:"KEY 有效,已成功連接 Toonflow 平台",keyInvalid:"KEY 無效,請檢查後重新輸入:",enterKey:"請輸入 KEY",saveFailed:"儲存失敗:",getAgentListFailed:"取得 Agent 設定列表失敗:"}},memory:{warning:"以下設定項目已預設為推薦值。除非您清楚了解各項設定的含義及影響,否則建議維持現有設定",vectorModelConfig:"向量模型設定",modelFilePath:"模型檔案路徑",quantizationType:"量化類型",quantizationPlaceholder:"請輸入量化類型",memoryParams:"記憶參數",messagesPerSummary:"觸發訊息壓縮筆數",messagesPerSummaryHelp:"保留最近 N 筆對話上下文。",shortTermLimit:"單次取得未壓縮訊息筆數",shortTermLimitHelp:"檢索時回傳的候選記憶筆數。",summaryMaxLength:"壓縮最大字元數",summaryMaxLengthHelp:"訊息壓縮時允許的最大字元數",summaryLimit:"允許查詢已壓縮訊息筆數",summaryLimitHelp:"允許查詢已壓縮訊息筆數",ragLimit:"搜尋記憶筆數",ragLimitHelp:"檢索時取得的訊息數。",deepRetrieveSummaryLimit:"向量召回壓縮訊息數",deepRetrieveSummaryLimitHelp:"檢索壓縮訊息內容時取得的訊息數。",saveConfig:"儲存設定",clearMemory:"清除記憶",restoreDefault:"還原預設設定",msg:{saved:"記憶設定已儲存",clearConfirmTitle:"確認清除記憶",clearConfirmBody:"該操作會清除 AI 全域記憶資料,且不可復原,是否繼續?",confirmClear:"確認清除",cancel:"取消",cleared:"記憶已清除",clearFailed:"清除記憶失敗"}},login:{username:"使用者名稱",usernamePlaceholder:"請輸入使用者名稱",password:"密碼",passwordPlaceholder:"請輸入密碼",modify:"修改",msg:{enterUsername:"請輸入使用者名稱",usernameLength:"使用者名稱長度為 2-20 個字元",enterPassword:"請輸入密碼",passwordLength:"密碼長度為 6-20 個字元",fetchFailed:"取得使用者資訊失敗",saveSuccess:"儲存成功",saveFailed:"儲存失敗"}},db:{clearDb:"清除資料庫",clearDbDesc:"清除所有資料表中的資料,保留資料表結構",clearData:"清除資料",confirmAction:"確認操作",msg:{clearDbTitle:"清除資料庫",firstConfirm:"確定要清除所有資料表嗎?資料清除後無法復原!",secondConfirm:"這是最後一次確認,清除後所有資料將永久遺失!",keyword:"清除",confirm:"確認",pleaseInput:"請輸入",cleared:"所有資料表已清除",operationFailed:"操作失敗,請重試",cancelled:"操作已取消"}},other:{requestTimeout:"請求逾時時間",seconds:"秒",inputSeconds:"請輸入秒",assetConcurrency:"資產生成並發數",count:"個",inputCount:"請輸入個數",chapterRegex:"章節拆分正規表示式",restoreDefault:"還原預設",regexPlaceholder:"請輸入正規表示式",canvasScroll:"畫布滾動",canvasIsDisabled:"畫布縮放",agentCanvasScalingMethod:"生產頁無限畫布滾輪操作",zoom:"縮放",scroll:"捲動",isInteracting:"生產頁無限畫布拖曳性能優化",closeIsInteracting:"關閉"},request:{warning:"若非特殊情況,不需要修改或者設定",apiAddress:"API 網址",apiPlaceholder:"請輸入 API 請求網址",save:"儲存",reset:"重設",msg:{enterApi:"請輸入 API 網址",validUrl:"請輸入有效的 HTTP/HTTPS 網址",saved:"請求網址儲存成功",reset:"已重設為預設網址",refreshFailed:"刷新失敗",refreshSuccess:"刷新成功"},refresh:"重新整理"},about:{slogan:"開源的 AI 驅動漫畫 / 分鏡創作工具",latestVersion:"目前為最新版本",checkUpdate:"檢查更新",codeRepository:"程式碼儲存庫",githubRepo:"GitHub 儲存庫",giteeRepo:"Gitee 儲存庫",versionUpdate:"版本更新",checkUpdateGithub:"檢查更新(GitHub)",getFromGithub:"從 GitHub Release 取得最新版本",checkUpdateGitee:"檢查更新(Gitee)",getFromGitee:"從 Gitee Release 取得最新版本",license:"授權條款",licenseDesc:"開源授權條款·點擊查看詳情",updateAvailable:"發現新版本",upToDate:"偵測到新版本",confirmReinstall:"複製連結",reinstallRequired:"將自動開啟瀏覽器並下載,如未開啟請手動開啟"},logout:{warning:"登出後,您需要重新登入才能繼續使用系統。",confirmLogout:"確定要登出嗎?",logout:"登出",msg:{logoutSuccess:"登出成功",logoutFailed:"登出失敗,請重試"}},file:{quickOpen:"快速開啟目錄",open:"開啟",dockerDesc:'Docker/前後端分離部署請前往 "/data/*" 目錄手動管理檔案。',desktopOnly:"該功能僅支援桌面版",folders:{data:"data",dataDesc:"資料目錄。",logs:"data/logs",logsDesc:"執行記錄與錯誤記錄。",oss:"data/oss",ossDesc:"檔案儲存相關資源。",skills:"data/skills",skillsDesc:"技能與提示設定檔。",models:"data/models",modelsDesc:"模型檔案與設定。",web:"data/web",webDesc:"Web 相關資源,如前端建置產物等。",serve:"data/serve",serveDesc:"後端服務相關檔案。"},openFailed:"開啟資料夾失敗"},skill:{scanSkills:"掃描Skills"},dev:{warning:"以下為開發者工具,謹慎操作!",openDevtool:"打開",devtoolsDoc:"文件地址",devtoolsDesc:"開啟後會在Toonflow安裝目錄建立.devtools資料夾,請確保Toonflow有寫入權限(管理員身分執行)。",openDevtoolFailed:"開啟開發者工具失敗,請確保已安裝Toonflow桌面端",notInElectron:"WEB環境請手動開啟瀏覽器控制台"}},mCi={selectProject:"請選擇專案",menu:{myProject:"我的專案",taskCenter:"任務中心",novel:"小說原文",scriptAgent:"劇本 Agent",scriptManage:"劇本管理",cornerScape:"塑造角色與場景",production:"影片製作",assetCenter:"資產中心",settings:"設定",jumpGithub:"跳轉Github",feedbackQuestions:"回饋問題"},project:{title:"我的專案",subtitle:"管理您的所有短劇專案",newProject:"建立專案",dialog:{editTitle:"編輯專案",addTitle:"建立專案",save:"儲存",ok:"確定",cancel:"取消",projectType:"專案類型",selectType:"選擇專案類型",basedOnNovel:"基於小說原文",basedOnScript:"基於劇本",projectName:"專案名稱",projectNamePh:"請輸入專案名稱",novelType:"小說類型",novelTypePh:"例如:玄幻、科幻、言情",artStyle:"視覺手冊",selected:"已選:",selectArtStyle:"請選擇視覺手冊",newArtStyle:"新視覺手冊",loading:"載入中...",videoRatio:"影片比例",novelIntro:"小說簡介",novelIntroPh:"請輸入小說簡介",editArtStyleTitle:"編輯視覺手冊",newArtStyleTitle:"新視覺手冊",artStyleName:"視覺手冊名稱",artStyleNamePh:"請輸入視覺手冊名稱",artStyleImage:"視覺手冊封面",remove:"移除",uploadCover:"上傳封面",artStylePrompt:"視覺手冊提示詞",aiExtract:"AI 萃取提示詞",promptPlaceholder:"描述視覺手冊提示詞,用於產生圖片時指定視覺手冊",visualManual:"視覺手冊",newVisualManual:"新視覺手冊",editVisualManualTitle:"編輯視覺手冊",newVisualManualTitle:"新視覺手冊",visualManualName:"視覺手冊名稱",visualManualNamePh:"請輸入視覺手冊名稱",visualManualCover:"視覺手冊封面",visualManualPrompt:"視覺手冊提示詞",modelData:"選擇圖片模型",videoModelData:"選擇視訊模型",prompt:{placeholder:"輸入提示詞",saveSuccess:"更新成功",title:"提示詞"},mdFile:"視覺手冊文件",directorManual:"導演手冊",addDirectorManual:"新導演手冊",editingDirectorManual:"編輯導演手冊",newDirecorManualTitle:"新導演手冊",directorManualPrompt:"導演手冊提示詞",directorManualName:"導演手冊名稱",directorFile:"導演手冊文件",directorManualCover:"導演手冊封面"},msg:{fetchFailed:"取得專案列表失敗",notFound:"找不到該專案!",editSuccess:"編輯專案成功",editFailed:"編輯專案失敗",addSuccess:"新增專案成功",addFailed:"新增專案失敗",deleteHeader:"刪除專案",deleteBody:"確定要刪除該專案嗎?",deleteConfirm:"刪除",deleteCancel:"取消",deleteSuccess:"刪除專案成功",deleteFailed:"刪除專案失敗",extractSuccess:"提示詞萃取成功",extractFailed:"萃取失敗",enterArtStyleName:"請輸入視覺手冊名稱",artStyleUpdated:"視覺手冊已更新",artStyleAdded:"視覺手冊已添加",operationFailed:"操作失敗",enterVisualManualName:"請輸入視覺手冊名稱",enterVisualManualImage:"請上傳視覺手冊封面圖片",enterVisualManualTabData:"提示詞不能為空",visualManualUpdated:"視覺手冊已更新",visualManualAdded:"視覺手冊已添加",deleteVisualManualHeader:"刪除視覺手冊",deleteVisualManualBody:"確定要刪除視覺手冊「{name}」嗎?",deleteVisualManualConfirm:"刪除",deleteVisualManualCancel:"取消",emptyFields:"參數缺失",enterProjectName:"請輸入項目名稱",enterProjectIntro:"請輸入小說簡介",enterProjectType:"請輸入項目類型",enterArtStyle:"請選擇項目視覺手冊",enterVideoRatio:"請選擇影片比例",enterImageModel:"請選擇圖片模型",enterVideoModel:"請選擇視訊模型",visualManualDeleted:"刪除成功",selectMode:"請選擇模式",deleteDirectorManualHeader:"刪除導演手冊",deleteDirectorManualBody:"確定要刪除導演手冊「{name}」嗎?",directorManualUpdated:"導演手冊已更新",directorManualAdded:"導演手冊已添加",directorManual:"請選擇項目導演手冊"},type:{novel:"基於小說原文",script:"基於小說劇本"}},novel:{importText:"匯入原文",batchDelete:"批次刪除",eventAnalysis:"事件分析",searchPlaceholder:"搜尋原文名稱...",search:"搜尋",generating:"生成中...",genFailed:"生成失敗",none:"無",edit:"編輯",delete:"刪除",col:{id:"序號",reel:"卷",chapter:"章節名稱",chapterData:"章節內容",event:"事件",operation:"操作"},msg:{batchDeleteHeader:"批次刪除",batchDeleteBody:"確定要刪除選定的 {count} 筆資料嗎?",batchDeleteSuccess:"批次刪除成功",deleteHeader:"刪除確認",deleteBody:"確定要刪除章節名稱為「{name}」的資料嗎?",deleteSuccess:"刪除成功",eventAnalysisHeader:"事件分析",eventAnalysisBody:"確定要對選定的 {count} 筆資料進行事件分析嗎?"},import:{title:"上傳小說原文",step1:"第一步",step2:"第二步",step3:"第三步",dragUpload:"拖曳小說原文檔案到此處或點擊上傳",uploadHint:"支援 .txt, .docx 格式,建議檔案大小不超過 10MB",or:"或",pasteLabel:"直接貼上小說原文內容",pastePlaceholder:"請輸入小說原文內容",chars:"字元",tooShort:"內容過短,建議至少 100 字元",parsedChapters:"已解析 {count} 章節",nextStep:"下一步",prevStep:"上一步",selectedInfo:"已勾選:{count} 字 (小於 200000 字)",eventAnalysis:"事件分析",saveAndAnalyze:"儲存原文並分析事件",col:{chapter:"章",reel:"卷",chapterName:"章節名稱",chapterData:"章節內容"},msg:{parseFailed:"檔案解析失敗,請重新上傳",selectFile:"選擇文件",docNotSupported:".doc檔案不支援解析,請轉換為.ts文件",unsupportedType:"不支援的檔案類型",fileTooLarge:"檔案大小超過 10MB,請上傳更小的檔案",selectChapters:"請先勾選章節",saveSuccess:"小說原文儲存成功"},importAdd:"拖曳文件到此處或點擊上傳",limit:"支援 .ts格式"},editDialog:{title:"編輯小說原文",chapterName:"章節名稱",chapterNamePh:"請輸入章節名稱",eventContent:"事件內容",eventContentPh:"輸入事件內容",chapterContent:"章節內容",chapterContentPh:"請輸入章節內容",cancel:"取消",save:"儲存",msg:{updateSuccess:"小說原文更新成功"}},event:{regenerate:"重新生成事件",batchDelete:"批次刪除",noData:"暫無事件資料,點擊開始生成",generate:"生成事件",generatingHint:"事件生成中,請稍候...",loading:"載入中...",delete:"刪除",col:{id:"事件 ID",eventName:"事件名稱",chapters:"來源章節",detail:"事件過程",createTime:"建立時間",operation:"操作"},msg:{deleteHeader:"刪除事件",deleteBody:"確定要刪除這個事件嗎?",deleteSuccess:"刪除成功",generateSuccess:"事件生成成功",batchDeleteHeader:"批次刪除",batchDeleteBody:"確定要刪除選定的 {count} 筆資料嗎?",batchDeleteSuccess:"批次刪除成功"}},analysis:{analyzeFirst:"請先分析事件",startAnalysis:"開始分析",chapterHeader:"第{index}章 - {name}",analyzing:"事件分析中"}},scriptAgent:{inputPlaceholder:"請輸入內容",chapterEvents:"章節事件",clearMessageMemory:"清除訊息記憶",clearSummaryMemory:"清除摘要記憶",clearAllMemory:"清除全部記憶",edit:"編輯",storySkeleton:"故事骨架",adaptationStrategy:"改編策略",script:"劇本",noContent:"暫無內容",relatedAssets:"關聯資產",editScript:"編輯劇本",save:"儲存",scriptTitle:"標題",titlePlaceholder:"請輸入標題",content:"內容",contentPlaceholder:"請輸入劇本內容",selectAssets:"選擇資產",noAssets:"暫未關聯資產",selectAssetsTitle:"選擇關聯資產",welcomeMsg:"你好!我是 Toonflow 智慧助手,需要我開始為您生成劇本嗎?",start:"開始",memoryType:{message:"訊息記憶",summary:"摘要記憶",all:"全部記憶"},msg:{clearConfirm:"確認清除",clearBody:"確定要清除{type}嗎?此操作無法復原。",confirmClear:"確認清除",cancel:"取消",memoryCleared:"{type}已清除",scriptUpdated:"劇本更新成功",scriptUpdateFailed:"更新劇本失敗,請稍後再試",searchScriptFailed:"搜尋劇本失敗",updated:"保存成功",error:"保存失敗",reconnect:"重新連接",notReconnect:"重新連結對話會被切斷是否確認",keepReconnect:"確認",deleteConfirm:"刪除確認",deleteBody:"刪除正文",confirmDelete:"確認刪除",scriptDeleted:"腳本已刪除"},reconnect:"重新連接"},cornerScape:{batchSettings:"批次生成設定",quickActions:"捷徑指令",selectUngenerated:"全選未生成項目",selectGenerated:"全選已生成項目",selectFailed:"全選錯誤項目",invertSelection:"反選",clearSelection:"取消選擇",batchPreview:"批次預覽圖片",assetTypeFilter:"素材類型篩選",genModel:"生成模型",resolution:"解析度",resolutionPh:"請選擇解析度",concurrency:"並發數量",concurrencyPh:"請輸入並發數",startBatch:"開始批量生成圖片",waitingGen:"等待生成",generating:"生成中",genFailed:"生成失敗",imageError:"圖片錯誤",typeRole:"角色",typeScene:"場景",typeTool:"工具",typeUnknown:"未知",descriptionSuffix:"描述:",operateScriptFirst:"請先操作劇本",individualConfig:"獨立設定",noImage:"暫無圖片",promptLabel:"提示詞",promptPh:"請輸入提示詞",aiPolish:"AI 潤飾",regenerate:"重新生成",filterRole:"人物",filterScene:"場景",filterTool:"道具",unnamed:"未命名",noDescription:"無描述",msg:{selectModel:"請選擇生成模型",selectResolution:"請選擇解析度",enterPrompt:"請輸入提示詞",enterPromptFirst:"請先輸入提示詞",genSuccess:"{name} 生成成功",genFailed:"{name} 生成失敗",promptGenSuccess:"提示詞生成成功",polishFailed:"潤飾失敗,請重試",selectAtLeastOne:"請至少選擇一個資產進行批次生成",batchStarted:"開始批次生成,共 {count} 個,並發數 {concurrent}",batchItemFailed:"{name} 生成失敗:{error}",batchComplete:"批次生成完成",batchFailed:"批量生成失敗",replaceFailed:"替換失敗",replaceSuccess:"替換成功",promptGenFail:"提示詞生成失敗",saveSuccess:"修改提示詞成功",saveFailed:"提示詞修改失敗"},history:"歷史圖片",confirmReplace:"確認替換",batchGenerationPrompt:"大量生成提示詞",generatingPrompt:"生成中",selectPromptEmpty:"全選提示詞為空",noEmptyPrompt:"沒有提示詞為空的資產",selectedCount:"已選取{count}個資產"},script:{searchPlaceholder:"搜尋劇本名稱...",search:"搜尋",addScript:"建立劇本",cancelSelectAll:"取消全選",selectAll:"全選",exportScript:"匯出劇本",msg:{searchFailed:"搜尋劇本失敗",selectExport:"請先選擇要匯出的劇本",exportSuccess:"匯出成功",exportFailed:"匯出劇本失敗",deleteHeader:"確認刪除",deleteBody:"確定要刪除這個劇本嗎?此操作無法復原。",deleteConfirm:"刪除",cancel:"取消",deleteSuccess:"刪除成功",deleteFailed:"刪除失敗",selectDelScript:"請選擇刪除劇本",batchDeleteHeader:"批量刪除",batchDeleteBody:"確定要刪除選中的 {count} 個劇本嗎?此操作無法復原。",batchDeleteSuccess:"批量刪除成功",extractingInProgress:"正在提取中",projectNotFound:"項目未找到",selectsExport:"請選擇匯出劇本"},add:{title:"新增劇本",scriptName:"劇本名稱",scriptNamePh:"請輸入劇本名稱",uploadFile:"上傳檔案",dragUpload:"拖曳劇本檔案到此處或點擊上傳",uploadHint:"支援 .txt, .docx 格式,建議檔案大小不超過 10MB",scriptContent:"劇本內容",scriptContentPh:"請上傳或輸入劇本內容...",relatedAssets:"關聯資產",selectAssets:"選擇資產",noAssets:"暫未關聯資產",cancel:"取消",confirm:"確認",msg:{fileReadFailed:"檔案讀取失敗",docNotSupported:".doc 檔案不支援解析,請轉換為 .txt 或 .docx 檔案",unsupportedType:"不支援的檔案類型",fileTooLarge:"檔案大小超過 10MB,請上傳更小的檔案",parsing:"檔案解析中...",parseFailed:"檔案解析失敗,請重新上傳",selectAssetsTitle:"選擇關聯資產",enterContent:"請上傳或輸入劇本內容",enterName:"請輸入劇本名稱",addSuccess:"劇本新增成功",addFailed:"新增劇本失敗,請稍後再試"}},edit:{title:"劇本詳情",scriptName:"劇本名稱",scriptNamePh:"請輸入劇本名稱",scriptContent:"劇本內容",scriptContentPh:"請輸入劇本內容...",relatedAssets:"關聯資產",selectAssets:"選擇資產",noAssets:"暫未關聯資產",msg:{selectAssetsTitle:"選擇關聯資產",updateSuccess:"劇本更新成功",updateFailed:"更新劇本失敗,請稍後再試"}},deleteScript:"大量刪除劇本",extractAssets:""},assets:{addPrefix:"新增",batchGenerate:"批次生成",generatePrompt:"生成提示詞",generateImage:"生成圖片",batchDelete:"批次刪除",searchPlaceholder:"搜尋資產名稱...",search:"搜尋",preview:"預覽",generate:"生成",edit:"編輯",delete:"刪除",generating:"生成中",play:"播放",mediaPreview:"媒體預覽",confirmBatch:"是否確認{type}!",model:"模型",resolution:"解析度",resolutionPh:"請選擇解析度",batchGenPrompt:"批次生成提示詞",batchGenImage:"批次生成圖片",role:"角色",prop:"道具",scene:"場景",clip:"素材",uploadSuccess:"上傳成功",selectAtLeastOne:"請至少選擇一個資產",noDescription:"無描述",promptGenSuccess:"「{name}」提示詞生成成功",promptGenFail:"「{name}」提示詞生成失敗:{error}",selectModel:"請選擇模型",selectResolution:"請選擇解析度",noPromptForImage:"「{name}」沒有提示詞,無法生成圖片",imageGenSuccess:"「{name}」圖片生成成功",imageGenFail:"「{name}」圖片生成失敗:{error}",confirmDeleteHeader:"確認刪除",confirmBatchDeleteBody:"確定要批次刪除這些資產嗎?此操作無法復原。",confirmDeleteBody:"確定要刪除這個資產嗎?此操作無法復原。",deleteBtn:"刪除",cancelBtn:"取消",deleteSuccess:"資產刪除成功",deleteFail:"資產刪除失敗",colPreview:"預覽",colName:"名稱",colPrompt:"提示詞",colDescribe:"描述",colRemark:"備註",colCreateTime:"建立時間",colOperation:"操作",add:{name:"名稱",namePh:"請輸入名稱",describe:"描述",describePh:"請輸入描述",remark:"備註",remarkPh:"請輸入備註",prompt:"提示詞",promptPh:"請輸入提示詞",nameRequired:"請輸入名稱",describeRequired:"請輸入詳情",remarkRequired:"請輸入備註",updateSuccess:"資產更新成功",addSuccess:"資產新增成功"},gen:{header:"圖片生成",uploadRef:"上傳參考圖片",optional:"選填",promptLabel:"生圖提示詞",smartGenerate:"智能生成",generatingPrompt:"智能生成提示詞中...",promptPlaceholder:"描述您想要生成的圖片內容,例如:一個充滿科技感的未來城市,霓虹燈閃爍,賽博龐克風格...",selectModel:"選擇模型",selectResolution:"選擇解析度",generateBtn:"生成圖片",resultTitle:"生成結果",generatedCount:"已生成 {count} 張,請選擇一張",generatingLabel:"生成中...",genFailed:"生成失敗",confirmSelect:"確認選擇",promptSuccess:"提示詞生成成功",promptFail:"提示詞生成失敗",fillPrompt:"請填寫提示詞",pickResolution:"請選擇解析度",pickModel:"請選擇模型",unnamed:"未命名",assetGenSuccess:"資產生成成功",assetGenFail:"資產生成失敗",uploadOk:"上傳成功",imageSelected:"已選擇該圖片",imageDeleted:"已刪除該圖片",imageSaved:"圖片已儲存",completed:"已完成"},batch:{header:"批次生成",selected:"已選擇 {count} 項",selectAll:"全選",clearSelection:"清除選擇",inputPh:"請輸入內容",saveSelected:"儲存選取項目 ({count})",colPreviewImg:"預覽圖",selectToSave:"請選擇要儲存的項目",saveSuccess:"儲存成功",saveFail:"儲存失敗,請重試",promptDone:"提示詞生成完成",promptFail:"提示詞生成失敗",missingPrompts:"有 {count} 個資產缺少提示詞,請先生成提示詞",imageDone:"圖片生成完成",imageGenFail:"圖片生成失敗",unknownError:"未知錯誤",promptGenCancelled:"已取消生成"}},production:{selectPlaceholder:"請選擇劇集",edit:"編輯",node:{script:{title:"劇本",editDialog:"編輯劇本"},scriptPlan:{title:"拍攝計畫",editDialog:"編輯拍攝計畫"},storyboard:{title:"分鏡面板",notGenerated:"未生成",scaleRatio:"縮放比例",gridPreview:"九宮格預覽",noPreviewImages:"暫無可預覽的圖片",loadFailed:"載入失敗: {src}",imageLoadFailed:"圖片載入失敗",promptPlaceholder:"請輸入提示詞",prompt:"提示詞",editInfo:"提示詞修改"},storyboardTable:{title:"分鏡表",editDialog:"編輯分鏡表"},assets:{title:"衍生資產",generateFailed:"生成失敗",notGenerated:"未生成",originalAsset:"原資產",derived:"衍生",noDerivedAssets:"無衍生資產"},poster:{title:"影片封面",coverCount:"{count} 張"},workbench:{title:"影片工作區"}},editImage:{upload:"上傳",generate:"生成",saveFailed:"儲存失敗,請重試",fetchFailed:"取得資料失敗",generating:"生成中...",deleteNode:"刪除節點",ratio:"比例",quality:"畫質",generateBtn:"生成圖片",selectImage:"選擇圖片",imageGeneration:"圖片生成",promptPlaceholder:"描述你想要生成的圖片...",imageRef:"圖{index}",noReferences:"暫無可引用的參考圖",selectModel:"請先選擇模型",selectQuality:"請選擇畫質",selectRatio:"請選擇比例",generateFailed:"生成失敗",generateFirst:"請先生成圖片",generatedResult:"生成結果",waitingGenerate:"等待生成",uploadImage:"資產圖片上傳",mode:"模式",closeConfirmTitle:"關閉確認標題",closeConfirmBody:"關閉之後未儲存的資料會遺失"},save:"選取",cancel:"取消",chatBox:{inputPlaceholder:"輸入訊息...",generateDerivedAssets:"生成衍生資產",welcomeMessage:"你好!我是你的 AI 助手,有什麼可以幫你的嗎?",adjustModel:"調整模型",startMakingVideo:"開始製作影片",startMakingVideoPrompt:"請幫我開始製作影片",clearMessageMemory:"清除訊息記憶",clearSummaryMemory:"清除摘要記憶",clearAllMemory:"清除所有記憶",messageMemory:"訊息記憶",summaryMemory:"摘要記憶",allMemory:"所有記憶",confirmClear:"清除記憶",confirmClearBody:"確定要清除{type}嗎?",confirmClearBtn:"確定清除",memoryCleared:"{type}已清除"},wb:{quickPreview:"快速預覽",videoGeneration:"分鏡台",videoEditing:"剪輯台",hint:"提示",extractLines:"是否從影片中提取台詞?",no:"否",confirm:"確定",extractLinesQuestion:"是否從影片中提取台詞作為字幕?",importingLoading:"正在匯入中,請稍候...",mainTrackVideo:"主軌道(影片)",subtitle1:"字幕1",stereo441:"44.1kHz 立體聲",mono16:"16kHz 單聲道",sampleImage1:"範例圖片 1"},preview:{noImage:"暫無圖片",storyboardDesc:"分鏡描述",serialNumber:"序號",noDescription:"暫無描述",duration:"時長",seconds:"秒",relatedAssets:"涉及資產",role:"角色",prop:"道具",scene:"場景",noCharacters:"暫無出場人物",imagePrompt:"圖片提示詞",selectAll:"全選",exportImage:"匯出圖片",sceneDescription:"畫面描述",promptLabel:"提示詞",restoreSort:"還原排序",restoreSortConfirm:"確定要還原為初始排序嗎?",tip:"提示",selectAtLeastOne:"請至少選擇一個分鏡進行匯出",exportFilename:"分鏡圖片"},generate:{noVideo:"暫無影片",videoPrompt:"影片提示詞",promptPlaceholder:"輸入提示詞,描述你想要生成的影片內容...",refImage:"參考圖",image:"圖片",refVideo:"參考影片",refImageLabel:"參考圖片",refAudio:"參考音訊",muteAudio:"關閉音訊",enableAudio:"開啟音訊",resolution:"解析度",duration:"時長",generate:"生成",historyVersions:"歷史版本",refresh:"重新整理",confirmSelection:"確認選取項目",noHistory:"暫無歷史記錄",generating:"生成中",generateFailed:"生成失敗",selectAll:"全選",videoTrack:"影片軌道",batchGenerate:"批次生成",importToEditor:"匯入剪輯台",modeSingleImage:"單圖",modeMultiImage:"多圖",modeGridImage:"網格多圖",modeStartEnd:"首尾影格",modeText:"文字生成影片",modeVideoRef:"影片參考",modeImageRef:"圖片參考",modeAudioRef:"音訊參考",modeTextRef:"文字參考",startFrame:"首影格",startFrameOptional:"首影格(選填)",endFrame:"尾影格",endFrameOptional:"尾影格(選填)",selectRefImage:"選擇參考圖",selectRefImages:"選擇參考圖片",selectEndFrame:"選擇尾影格圖",selectRefVideoAsset:"選擇參考影片",selectRefAudioAsset:"選擇參考音訊",selectRefImageAsset:"選擇參考圖片",selectImageSource:"選擇圖片來源",fromStoryboard:"分鏡圖",fromStoryboardDesc:"從分鏡列表中選擇圖片",fromAssets:"資產圖",fromAssetsDesc:"從資產庫中選擇圖片",confirmDelete:"確認刪除",confirmDeleteBody:"確定要刪除這個影片嗎?此操作無法復原。",delete:"刪除",cancel:"取消",deleteSuccess:"影片刪除成功",deleteFailed:"刪除失敗",selectVideoFirst:"請先選擇一個影片",confirmSuccess:"確認選取成功",batchSubmitted:"已送出批次生成請求,正在處理中...",configNotFound:"設定不存在",pollingFailed:"視訊狀態查詢失敗,請手動刷新",batchGeneratePrompt:"大量生成提示詞",batchPromptEmpty:`分鏡 {name} 有空視訊提示。 請先生成或填寫提示`,modelEmpty:"請先選擇影片生成模型",generatingPrompt:"智慧生成提示詞中"},editVideo:{reset:"重設",undo:"復原",redo:"重做",split:"分割",delete:"刪除",rendering:"算圖渲染中...",exportVideo:"匯出影片",exportSuccess:"影片匯出完成",exportFailed:"匯出失敗",sampleSubtitle:"範例字幕文字",customText:"自訂文字內容",transitionBetweenClips:"轉場需要加入在兩個相鄰的片段之間",transitionExists:"該位置已存在轉場",videoPreviewArea:"影片預覽區域",clipMaterials:"剪輯素材",propertyPanel:"屬性面板",selectClip:"選擇一個片段查看屬性",basicInfo:"基本資訊",name:"名稱",clipNamePlaceholder:"片段名稱",startTime:"開始",endTime:"結束",totalDuration:"總時長",videoProperties:"影片屬性",opacity:"不透明度",volume:"音量",playbackSpeed:"播放速度",audioProperties:"音訊屬性",fadeIn:"淡入",fadeOut:"淡出",transitionProperties:"轉場屬性",transitionType:"轉場類型",transFade:"淡入淡出",transSlide:"滑動",transWipe:"擦除",transDissolve:"溶解",transZoom:"縮放",transRotate:"旋轉",transitionDuration:"轉場時長",subtitleProperties:"字幕屬性",textContent:"文字內容",fontSize:"字體大小",copy:"複製",deleteConfirm:"刪除確認",deleteClipConfirm:"確定要刪除這個片段嗎?",avCanvasNotInit:"AVCanvas 尚未初始化",noExportContent:"沒有可匯出的內容",exportProject:"匯出專案",transitionAdded:"已加入轉場: {name}",splitClip:"分割片段",deleteClip:"刪除片段",addClip:"新增 {name}",duplicateClip:"複製片段",addTransition:"加入轉場",updateClip:"更新片段 {key}",updatePlaybackRate:"更新播放速度為 {rate}x",updateTransitionDuration:"更新轉場時長",playbackRateRange:"播放速度必須在 0.1 到 10 之間",updatePlaybackRateFailed:"更新播放速度失敗:",importProject:"匯入專案",import:"匯入"},clipType:{video:"影片",audio:"音訊",subtitle:"字幕",transition:"轉場",sticker:"貼紙",filter:"濾鏡",effect:"特效"},track:{video:"影片",image:"圖片",audio:"音訊",subtitle:"字幕",text:"文字",sticker:"貼紙",filter:"濾鏡",effect:"特效"},transition:{fade:"淡入淡出",slide:"滑動",slideLeft:"向左滑動",slideRight:"向右滑動",slideUp:"向上滑動",slideDown:"向下滑動",wipe:"擦除",wipeLeft:"向左擦除",wipeRight:"向右擦除",wipeUp:"向上擦除",wipeDown:"向下擦除",dissolve:"溶解",zoom:"縮放",zoomIn:"放大",zoomOut:"縮小",rotate:"旋轉",circle:"圓形",diamond:"菱形",clock:"時鐘",blur:"模糊"},media:{titleText:"標題文字",subtitleText:"字幕文字",customText:"自訂文字",media:"媒體",image:"圖片",audio:"音訊",subtitle:"字幕",transition:"轉場",effect:"特效",filter:"濾鏡",loading:"載入中...",subtitlePreview:"字",video:"影片"},effect:{fadeIn:"淡入",fadeOut:"淡出",flash:"閃爍",shake:"抖動",zoomIn:"放大進入",zoomOut:"縮小退出",pulse:"脈衝",rotateIn:"旋轉進入",sticker1:"貼紙 1",sticker2:"貼紙 2"},filter:{grayscale:"黑白",sepia:"復古",warm:"暖色",cool:"冷色",vivid:"鮮豔",bright:"明亮",highContrast:"高對比",blur:"模糊",invert:"反色",semiTransparent:"半透明"},guideSwitchEpisode:"切換劇集",guideSwitchEpisodeBody:"切換劇集移到這裡了喔",autoLayoutLR:"自動排版-左右佈局",autoLayoutTB:"自動排版-上下佈局",getFlowData:"刷新工作區",confirm:"切換劇集確認",confirmEpisodesSwitch:"目前任務仍在進行中,切換劇集會重連會話,是否繼續切換?"},task:{title:"任務列表",subtitle:"您的最新任務執行紀錄",refresh:"重新整理",categoryLabel:"任務大類:",stateLabel:"狀態:",noFailReason:"暫無失敗原因",stateAll:"全部",stateRunning:"進行中",stateCompleted:"已完成",stateFailed:"生成失敗",fetchFailed:"取得任務列表失敗",col:{taskClass:"任務大類",relatedObjects:"關聯物件",model:"模型",describe:"描述",state:"狀態",startTime:"時間",reason:"失敗原因"},project:"項目名稱:"},noVideo:"暫無影片",prompt:"影片提示詞",generateText:"AI生成提示詞",selectStoryboard:"選擇分鏡",generate:{noVideo:"暫無影片",generateText:"AI生成提示詞",selectStoryboard:"選擇分鏡",generate:"產生影片",history:"歷史版本",generating:"生成中",generateFailed:"失敗",selectAll:"全選",selected:"已選",batchGenerateText:"大量生成提示詞",batchGenerateVideo:"大量生成視頻",importVideo:"導入剪輯台",emptyTrack:"第{index 1}段",del:"刪除",delConfirm:"確認刪除該段?",selectSource:"選擇來源",confirm:"從資產選擇",cancel:"從分鏡選擇",selectVideoFailed:"視訊選擇失敗",selectVideoSuccess:"影片選擇成功",selectTrackFirst:"請先選擇分鏡",noSelectedVideo:"沒有選擇的視頻",generateConfirm:"確認生成",generateConfirmBody:"是否確認生成視頻",generateVideosInBatches:"大量生成視頻",generateStarted:"生成開始",promptEmpty:"勾選需要產生影片的資料有提示詞為空,是否繼續生成",skipDataWithEmptyVideoPromptWords:"需要產生的影片資料存在提示詞為空",duration:"時長",resolution:"解析度",delVideo:"確認刪除此影片?",delSuccess:"刪除成功",addReference:"新增參考",promptPlaceholder:"請輸入影片提示詞",downloadVideo:"批量下載視頻",selectVideo:"請勾選需要下載的視頻"}},kCi={slogan:"智慧短劇創作平台",tips:"預設帳號:admin / admin123",settings:"伺服器設定",requestAddress:"請求網址",username:"使用者名稱",password:"密碼",login:"登入",usernameRequired:"請輸入使用者名稱",passwordRequired:"請輸入密碼",enterUsernameAndPassword:"請輸入使用者名稱或密碼",loginSuccess:"登入成功",settingsSaved:"設定已儲存"},vCi={prompt:"提示詞"},ACi={welcomeTitle:"歡迎使用 ToonFlow",welcomeDesc:"AI 驅動的漫畫創作工作流程平台,讓我們花一分鐘完成初始設定。",startConfig:"開始配置",skip:"跳過引導",configModel:"新增模型服務",configData:"配置 Agent",startUse:"開始使用",configModelTitle:"新增模型服務供應商",configModelDesc:"首先,你需要在設定中新增至少一個 AI 模型服務供應商(如 OpenAI、Claude 等),並填寫對應的 API Key。",configModelTip:"點擊下方按鈕將開啟設定頁面的「模型服務」選項卡,新增供應商後回到此處繼續。",configModelBtn:"前往配置模型服務",configAgentTitle:"分配 Agent 模型",configAgentDesc:"接下來,在 Agent 配置中為各個功能模組分配模型,這樣系統才知道要呼叫哪個模型來完成任務。",configAgentTip:"點擊下方按鈕將開啟設定頁面的「Agent 設定」標籤,為各功能指派模型後回到此處。",configAgentBtn:"前往配置 Agent",finishTitle:"🎉 一切就緒!",finishDesc:`配置完成,現在你可以開始使用所有功能了。 -如需調整,隨時可以在設定中修改。`,qrcodeLabel:"加入微信交流群,獲得更多協助:",githubLabel:"如果覺得好用,請給我們一個 ⭐ Star 吧!",prevStep:"上一步",nextStep:"下一步",finish:"開始使用"},pCi={skillManagement:{search:"搜尋檔案名稱",empty:"沒有匹配的文件",edit:"編輯",selectOnTheLeft:"請從左側選擇文件"}},bCi={save:"儲存",submitting:"提交中",editSuccess:"修改成功",editFailed:"修改失敗",submit:"提交"},wCi={assets:{notExist:"資產不存在",notDerivativeExist:"衍生資產不存在",derivativeUpdateSuccess:"更新成功",derivativeState:"未生成",derivativeAddSuccess:"添加成功",derivativeDelSuccess:"刪除成功",notGenerated:"未生成"},addSuccess:"更新成功",state:{unused:"未生成"},saveSuccess:"添加成功"},OCi={generating:"生成中"},yCi={scanning:"🔍 正在解析載入Skill",scanComplete:"✨ Skill 掃描完成",inserted:"✅ 新增{count}個Skill",updated:"🔄 更新{count}個Skill",removed:"🗑️ 移除{count}個Skill",scannedFiles:"📁 掃描 {count} 個檔案",noDescription:"📝 {count}個Skill缺少描述",noAttribution:"👤 {count}個Skill缺少歸屬",configWarning:"⚠️ Skill 配置警告",openSettings:"打開設定",scanFailed:"❌ 掃描失敗",checkNetwork:"🔌 請檢查網路連線或稍後重試",retryLater:"🔁 請稍後重試"},CCi="產生影片",_Ci="歷史版本",SCi="生成中",LCi="失敗",xCi="全選",ECi="已選",TCi="導入影片",QCi="第{index 1}段",DCi="確認刪除",BCi="確認刪除該段?",RCi="選擇來源",ICi="從資產選擇",MCi="從分鏡選擇",PCi={newVersion:"有新版本,是否更新?"},FCi={components:fCi,settings:gCi,workbench:mCi,login:kCi,promptManage:vCi,hello:ACi,setting:pCi,common:bCi,storyboard:wCi,productionAgent:OCi,skillScan:yCi,generate:CCi,history:_Ci,generating:SCi,generateFailed:LCi,selectAll:xCi,selected:ECi,importVideo:TCi,emptyTrack:QCi,del:DCi,delConfirm:BCi,selectSource:RCi,confirm:ICi,cancel:MCi,"workbench.script.msg.exportFailed":"匯出失敗","workbench.production.node.assets.confirmDeleteBody":"確認是否刪除該資產","workbench.production.node.assets.removeFailed":"刪除資產失敗",version:PCi,"workbench.production.generatedNode.localUpload":"本地上傳","workbench.production.editImage.uploadFailed":"圖片上傳失敗","workbench.production.editImage.noImage":"請先加入圖片"},NCi={editMdPreivew:{title:"Edit",confirm:"Save",cancel:"Cancel"},imageTools:{copy:"Copy Image",preview:"Preview",download:"Download",msg:{imageLoadFailed:"Failed to load image",convertFailed:"Conversion failed",copied:"Copied to clipboard",copyFailed:"Copy failed",downloadFailed:"Download failed",downloadStarted:"Download started",downloadBlockedOpenNewWindow:"The current image source may restrict downloads; tried opening in a new window"}},migrateShow:{title:"Migrate Data",desc:"Data from an older version was detected. Do you want to migrate it?",hide:"Don't show again",confirm:"OK",msg:{migrateSuccess:"Data migration successful",migrateFailed:"Data migration failed"}},modelSelect:{placeholder:"Please select a model",type:{image:"Image",text:"Text",video:"Video"},msg:{fetchModelFailed:"Failed to fetch model data:"},goSetting:"Go to settings and add a model"}},UCi={title:"ToonFlow Settings",menu:{language:"Language",vendorConfig:"Model Providers",agentConfig:"Agent Config",promptManage:"Prompt Management",skillManagement:"skillsSkillsManagement",memoryConfig:"Agent Memory",loginConfig:"Login Config",dbConfig:"Database",fileManagement:"File Management",otherConfig:"Other Config",requestConfig:"Request URL",about:"Check for Updates",logoutConfig:"Logout",skillsSkillsManagement:"SkillsSkills Management"},language:{desc:"Select the interface display language",msg:{saved:"Language settings saved"}},vendor:{addVendor:"Add Provider",noVendor:"No providers yet. Please add one.",required:"Required",optionalSection:"Optional",modelSettings:"Model Settings",addManually:"Add Manually",test:"Test",edit:"Edit",delete:"Delete",deleteVendor:"Delete Provider",editCode:"Edit Code",updateConfig:"Update Config",addModel:"Add Model",editModel:"Edit Model",displayName:"Display Name",displayNamePlaceholder:"e.g., GPT-4o",modelId:"Model ID",modelIdPlaceholder:"e.g., gpt-4o",modelType:"Model Type",multimodal:"Multimodal",supported:"Supported",notSupported:"Not Supported",toolCall:"Tool Call",imageMode:"Image Mode",videoMode:"Video Mode",audioOutput:"Audio Output",durationResolution:"Duration / Resolution Mapping",durationSec:"Duration (sec)",resolution:"Resolution",enterAndPress:"Press Enter to add",addDurationResolution:"Add a Duration/Resolution pair",testResult:"Test Results",generating:"Generating...",addVendorDialog:"Add Provider",codeEditorInfo:"Please write TypeScript code to configure provider information",reset:"Reset",importFile:"Import File",textModel:"Text Model",imageModel:"Image Model",videoModel:"Video Model",textToImage:"Text to Image",textToVideo:"Text to Video",singleImage:"Single Image",multiImage:"Multi-Image Mode",multiReference:"Multi-Image Reference",gridImage:"Grid Single Image",startEndRequired:"Start & End Frames (Both Required)",endFrameOptional:"Start & End Frames (End Frame Optional)",startFrameOptional:"Start & End Frames (Start Frame Optional)",textRef:"Text",imageRef:"Image",videoRef:"Video",audioRef:"Audio",audioOptional:"Optional",audioOnly:"Audio Video Only",noAudio:"Silent Video Only",msg:{getVendorListFailed:"Failed to fetch provider list",vendorConfigUpdated:"Provider config updated",updateFailed:"Update failed",highRiskConfirm:"⚠️ High-Risk Operation Confirmation",addVendorRiskBody:"Adding a new AI provider grants it access to system APIs. Please ensure you trust the code source of this provider!",iKnowRisk:"I understand the risks",cancel:"Cancel",confirmAgain:"⚠️ Confirm Again",addVendorConfirmBody:"Are you sure you want to add this provider? It will be included in the system's model scheduling.",confirmAndAdd:"Confirm & Add",goBackCheck:"Go Back",vendorAdded:"Provider added successfully",addFailed:"Failed to add",updateVendorRiskBody:"Updating AI provider configurations modifies its API access and behaviors. Please ensure you trust the modified code source!",updateVendorConfirmBody:"Are you sure you want to update this provider config? This will affect the system's model scheduling.",confirmAndUpdate:"Confirm & Update",updateSuccess:"Provider config updated successfully",fillDisplayName:"Please enter a display name",fillModelId:"Please enter a model ID",selectImageMode:"Please select an image mode",selectVideoMode:"Please select a video mode",groupPrefix:"Group {n}: ",addDuration:"Please add a duration",addResolution:"Please add a resolution",selectVendorFirst:"Please select a provider first",modelIdExists:"Model ID already exists",modelAdded:"Model added successfully",modelUpdated:"Model updated successfully",enterApiKey:"Please enter API KEY",enterApiUrl:"Please enter API URL",testSuccess:"Test successful",imageGenSuccess:"Image generated successfully",videoGenSuccess:"Video generated successfully",requestFailed:"Request failed",deleteModelConfirm:"Confirm Model Deletion",deleteModelBody:"This action cannot be undone. Do you want to continue?",confirmDelete:"Delete",modelDeleted:"Model deleted",deleteVendorConfirm:"Confirm Provider Deletion",deleteVendorBody:"Deleting this provider will also delete all its associated models. Do you want to continue?",vendorDeleted:"Provider deleted",deleteFailed:"Deletion failed",enabled:"Enabled",disabled:"Disabled",linkAddVendorRiskBody:"Adding a new AI vendor will give it access to the system API, please make sure you trust the vendor's link source!",importAdd:"Adding a new AI vendor will give it access to the system API, please make sure you trust the vendor's documentation source!",linkAddFailed:"Failed to add link"},associationSkills:"Associated skills",think:"deep thinking",code:"code",linkAddPlaceholder:"Enter link to add",noFileSelected:"File imported successfully",linkAdd:"confirm"},agent:{bannerDesc:"Use the official Toonflow relay site for one-click configuration. Ready out-of-the-box, no manual setup needed.",visitWebsite:"Visit Website",fillKey:"Enter KEY",oneClickFill:"One-Click Fill",notOpen:"Not Available",notConfigured:"Not Configured",modelConfig:"Model Config",confirm:"Confirm",cancel:"Cancel",selectModel:"Select Model",fillKeyHeader:"Enter official KEY from Toonflow platform",keyPlaceholder:"Please enter KEY",save:"Save",msg:{notAvailable:"This feature is not yet available. Stay tuned!",configSuccess:"Configured successfully",updateConfigFailed:"Failed to update config: ",keyValid:"KEY is valid. Successfully connected to the Toonflow platform",keyInvalid:"KEY is invalid. Please check and re-enter: ",enterKey:"Please enter KEY",saveFailed:"Save failed: ",getAgentListFailed:"Failed to fetch Agent config list: ",toonflowNotFound:"Toonflow official transfer station does not exist"}},memory:{warning:"The following settings are preset to recommended values. Unless you fully understand their implications, we recommend keeping the current settings.",vectorModelConfig:"Vector Model Config",modelFilePath:"Model File Path",quantizationType:"Quantization Type",quantizationPlaceholder:"Please enter quantization type",memoryParams:"Memory Parameters",messagesPerSummary:"Messages per Summary Trigger",messagesPerSummaryHelp:"Retains the last N conversation contexts.",shortTermLimit:"Short-Term Memory Limit",shortTermLimitHelp:"Number of candidate memories returned during retrieval.",summaryMaxLength:"Summary Max Length",summaryMaxLengthHelp:"Maximum characters allowed during message compression.",summaryLimit:"Compressed Message Query Limit",summaryLimitHelp:"Allowed number of compressed messages to query.",ragLimit:"RAG Search Limit",ragLimitHelp:"Number of messages retrieved during a search.",deepRetrieveSummaryLimit:"Vector Recall Compressed Limit",deepRetrieveSummaryLimitHelp:"Number of messages fetched when retrieving compressed message content.",saveConfig:"Save Config",clearMemory:"Clear Memory",restoreDefault:"Restore Defaults",msg:{saved:"Memory config saved",clearConfirmTitle:"Confirm Clear Memory",clearConfirmBody:"This will erase the AI's global memory data and cannot be undone. Continue?",confirmClear:"Clear",cancel:"Cancel",cleared:"Memory cleared",clearFailed:"Failed to clear memory"}},login:{username:"Username",usernamePlaceholder:"Please enter username",password:"Password",passwordPlaceholder:"Please enter password",modify:"Modify",msg:{enterUsername:"Please enter username",usernameLength:"Username must be 2-20 characters long",enterPassword:"Please enter password",passwordLength:"Password must be 6-20 characters long",fetchFailed:"Failed to fetch user information",saveSuccess:"Saved successfully",saveFailed:"Failed to save"}},db:{clearDb:"Clear Database",clearDbDesc:"Clear data in all tables while keeping table structures",clearData:"Clear Data",confirmAction:"Confirm Action",msg:{clearDbTitle:"Clear Database",firstConfirm:"Are you sure you want to clear all data tables? This cannot be recovered!",secondConfirm:"Final confirmation: all data will be permanently lost after clearing!",keyword:"Clear",confirm:"Confirm",pleaseInput:"Please type",cleared:"All data tables have been cleared",operationFailed:"Operation failed, please try again",cancelled:"Operation cancelled"}},skill:{scanSkills:"Scan Skills",addSkill:"Add Skill",importFromHub:"Import from Toonflow-Hub",filterType:"Type",filterAttribution:"Attribution",searchPlaceholder:"Search skill by name",search:"Search",totalCount:"{count} Skills in total",typeMain:"Core",typeReferences:"Technique",noAttribution:"No Attribution",noAttributionTip:"⚠️ No attribution, Skill cannot be enabled",noEmbeddingTip:"⚠️ Not embedded, Skill cannot be enabled",notEmbedded:"Not Embedded",stateNormal:"Normal",stateGenerating:"Generating description",stateEmptyDesc:"Empty description",stateAttrError:"Attribution error",stateMd5Changed:"MD5 changed, update description recommended",embedding:"Embed",edit:"Edit",delete:"Delete",importFromHubDialog:"Import from Toonflow-Hub",shareLink:"Share Link",editSkillTitle:"Edit Skill - ",addSkillTitle:"Add Skill",skillName:"Skill Name",skillNamePlaceholder:"e.g. writing-assistant",path:"Path",attributionAgent:"Attribution Agent",selectAttribution:"Select Attribution Agent",description:"Description",aiGenerate:"AI Generate",descriptionPlaceholder:"Describe the purpose of this skill",cancel:"Cancel",save:"Save",createSkill:"Create Skill",attr:{productionDecision:"Production - Director",productionExecution:"Production - Cinematographer",productionSupervision:"Production - Supervisor",scriptDecision:"Script Agent - Coordinator",scriptExecution:"Script Agent - Writer",scriptSupervision:"Script Agent - Editor",universalAgent:"Production Assistant"},msg:{scanSuccess:"Scan completed, found {count} Skill files",fetchListFailed:"Failed to fetch skill list",fillContentFirst:"Please fill in Markdown content first",descGenSuccess:"Description generated successfully",descGenFailed:"Failed to generate description",fillNameFirst:"Please fill in Skill name first",updateSuccess:"Skill updated successfully",createSuccess:"Skill created successfully",updateFailed:"Failed to update Skill",createFailed:"Failed to create Skill",deleteConfirmTitle:"Confirm Deletion",deleteConfirmBody:'Are you sure you want to delete Skill "{name}"? This cannot be undone.',deleteSuccess:"Deleted successfully",deleteFailed:"Delete failed",embeddingSuccess:"Embedding completed",embeddingFailed:"Embedding failed"},fileLost:"File missing"},other:{requestTimeout:"Request Timeout",seconds:"Seconds",inputSeconds:"Please enter seconds",assetConcurrency:"Asset Generation Concurrency",count:"Tasks",inputCount:"Please enter number of tasks",chapterRegex:"Chapter Split Regex",restoreDefault:"Restore Defaults",regexPlaceholder:"Please enter a regular expression",showTitleBar:"show title bar",isElectron:"Switch to desktop mode",canvasScroll:"Canvas scroll",canvasIsDisabled:"Canvas zoom",agentCanvasScalingMethod:"Unlimited canvas wheel operation on production page",zoom:"Zoom",scroll:"scroll",isInteracting:"Unlimited canvas drag performance optimization on production page",closeIsInteracting:"closure"},request:{warning:"Do not modify unless absolutely necessary",apiAddress:"API URL",apiPlaceholder:"Please enter API request URL",save:"Save",reset:"Reset",msg:{enterApi:"Please enter API URL",validUrl:"Please enter a valid HTTP/HTTPS URL",saved:"Request URL saved successfully",reset:"Reset to default URL",refreshFailed:"Refresh failed",refreshSuccess:"Refresh successful"}},about:{slogan:"Open-source AI-driven Comic / Storyboard creation tool",latestVersion:"You are on the latest version",checkUpdate:"Check for Updates",codeRepository:"Code Repository",githubRepo:"GitHub Repository",giteeRepo:"Gitee Repository",versionUpdate:"Version Update",checkUpdateGithub:"Check Update (GitHub)",getFromGithub:"Get the latest release from GitHub",checkUpdateGitee:"Check Update (Gitee)",getFromGitee:"Get the latest release from Gitee",license:"License",licenseDesc:"Open-source license agreement · Click for details",updateAvailable:"new version found",currentVersion:"Current Version",latestVersionLabel:"Latest Version",selectUpdateSource:"Select Update Source",github:"GitHub",gitee:"Gitee",confirmUpdate:"Confirm Update",cancel:"Cancel",updating:"Updating...",updateSuccess:"Update successful, please restart the app",updateFailed:"Update failed, please try again",noUpdate:"You are already on the latest version",upToDate:"New version detected"},logout:{warning:"After logging out, you will need to log in again to access the system.",confirmLogout:"Are you sure you want to log out?",logout:"Logout",msg:{logoutSuccess:"Logged out successfully",logoutFailed:"Logout failed, please try again"}},file:{quickOpen:"Quick Open Directory",open:"Open",dockerDesc:'For Docker/Separated deployments, please go to the "/data/*" directory to manage files manually.',desktopOnly:"This feature is only available on the desktop client",folders:{data:"data",dataDesc:"Data directory.",logs:"data/logs",logsDesc:"Runtime and error logs.",oss:"data/oss",ossDesc:"File storage related resources.",skills:"data/skills",skillsDesc:"Skills and prompt configuration files.",models:"data/models",modelsDesc:"Model files and configurations.",web:"data/web",webDesc:"Web-related resources (e.g., frontend build artifacts).",serve:"data/serve",serveDesc:"Backend service related files."},openFailed:"Failed to open folder"},dev:{warning:"The following are developer tools, please operate with caution!",openDevtool:"Open",devtoolsDoc:"Document address",devtoolsDesc:"After being turned on, a .devtools folder will be created in the Toonflow installation directory. Please ensure that Toonflow has write permissions (run as administrator).",devtoolsDesc2:"Run npx {'@'}ai-sdk/devtools in this directory to enable telemetry debugging",openDevtoolFailed:"Failed to open developer tools, please make sure Toonflow desktop is installed",notInElectron:"For WEB environment, please open the browser console manually"}},jCi={selectProject:"Please select a project",menu:{myProject:"My Projects",taskCenter:"Task Center",novel:"Novel Text",scriptAgent:"Script Agent",scriptManage:"Script Management",cornerScape:"Characters & Scenes",production:"Video Production",assetCenter:"Asset Center",settings:"Settings",jumpGithub:"Jump to Github",feedbackQuestions:"Feedback question"},project:{title:"My Projects",subtitle:"Manage all your short drama projects",newProject:"New Project",dialog:{editTitle:"Edit Project",addTitle:"New Project",save:"Save",ok:"OK",cancel:"Cancel",projectType:"Project Type",selectType:"Select Project Type",basedOnNovel:"Based on Novel Text",projectName:"Project Name",projectNamePh:"Please enter project name",novelType:"Novel Genre",novelTypePh:"e.g., Fantasy, Sci-Fi, Romance",artStyle:"Art Style",selected:"Selected:",selectArtStyle:"Please select an art style",newArtStyle:"New art style",loading:"Loading...",videoRatio:"Video Ratio",novelIntro:"Novel Synopsis",novelIntroPh:"Please enter novel synopsis",editArtStyleTitle:"Edit art style",newArtStyleTitle:"New art style",artStyleName:"Art style name",artStyleNamePh:"Please enter art style name",artStyleImage:"Art style image",remove:"Remove",uploadCover:"Upload Cover",artStylePrompt:"Prompt",aiExtract:"AI Extract Prompt",promptPlaceholder:"Enter prompt",visualManual:"Visual Manual",newVisualManual:"New visual manual",editVisualManualTitle:"Edit visual manual",newVisualManualTitle:"New visual manual",visualManualName:"Visual manual name",visualManualNamePh:"Please enter visual manual name",visualManualCover:"Visual manual cover",visualManualPrompt:"Visual manual prompt",modelData:"Select image model",videoModelData:"Select video model",prompt:{placeholder:"Enter prompt word",saveSuccess:"Update successful",title:"prompt word"},basedOnScript:"based on script",mdFile:"visual manual file",directorManual:"Director's Handbook",addDirectorManual:"New director manual",editingDirectorManual:"Edit Director's Manual",newDirecorManualTitle:"New director manual",directorManualPrompt:"Director's Manual Prompt Words",directorManualName:"Director's Manual Name",directorManualNamePh:"Enter Director's Manual name",directorFile:"Director's Manual Document",directorManualCover:"Director's Manual Cover"},msg:{fetchFailed:"Failed to fetch project list",notFound:"Project not found!",editSuccess:"Project edited successfully",editFailed:"Failed to edit project",addSuccess:"Project created successfully",addFailed:"Failed to create project",deleteHeader:"Delete Project",deleteBody:"Are you sure you want to delete this project?",deleteConfirm:"Delete",deleteCancel:"Cancel",deleteSuccess:"Project deleted successfully",deleteFailed:"Failed to delete project",extractSuccess:"Prompt extracted successfully",extractFailed:"Extraction failed",enterArtStyleName:"Please enter art style name",artStyleUpdated:"Art style updated",artStyleAdded:"Art style added",operationFailed:"Operation failed",enterVisualManualName:"Please enter visual manual name",enterVisualManualImage:"Please upload a cover image for the visual manual",enterVisualManualTabData:"prompt cannot be empty",visualManualUpdated:"Visual manual updated",visualManualAdded:"Visual manual added",deleteVisualManualHeader:"Delete Visual Manual",deleteVisualManualBody:'Are you sure you want to delete visual manual "{name}"?',deleteVisualManualConfirm:"Delete",deleteVisualManualCancel:"Cancel",enterProjectName:"Please enter project name",enterProjectIntro:"Please enter the novel introduction",enterProjectType:"Please enter project type",enterArtStyle:"Please select a project visual brochure",enterVideoRatio:"Please select video ratio",enterImageModel:"Please select a picture model",enterVideoModel:"Please select a video model",visualManualDeleted:"Delete successfully",selectMode:"Please select mode",deleteDirectorManualHeader:"Delete Director's Manual",deleteDirectorManualBody:`Are you sure you want to delete Director's Manual "{name}"?`,directorManualUpdated:"Director's Manual updated",directorManualAdded:"Director's Manual added",directorManual:"Please select Project Director's Manual"},type:{novel:"Based on the original novel",script:"Based on novel script"}},novel:{importText:"Import Text",batchDelete:"Batch Delete",eventAnalysis:"Event Analysis",searchPlaceholder:"Search text names...",search:"Search",generating:"Generating...",genFailed:"Generation failed",none:"None",edit:"Edit",delete:"Delete",col:{id:"No.",reel:"Volume",chapter:"Chapter Name",chapterData:"Chapter Content",event:"Event",operation:"Operation"},msg:{batchDeleteHeader:"Batch Delete",batchDeleteBody:"Are you sure you want to delete the selected {count} items?",batchDeleteSuccess:"Batch delete successful",deleteHeader:"Confirm Deletion",deleteBody:'Are you sure you want to delete the chapter named "{name}"?',deleteSuccess:"Deleted successfully",eventAnalysisHeader:"Event Analysis",eventAnalysisBody:"Are you sure you want to analyze events for the selected {count} items?"},import:{title:"Upload Novel Text",step1:"Step 1",step2:"Step 2",step3:"Step 3",dragUpload:"Drag and drop your novel file here or click to upload",uploadHint:"Supports .txt, .docx. Recommended file size under 10MB",or:"OR",pasteLabel:"Directly paste novel text",pastePlaceholder:"Please paste novel text here",chars:"chars",tooShort:"Content is too short, recommend at least 100 characters",parsedChapters:"{count} chapters parsed",nextStep:"Next",prevStep:"Previous",selectedInfo:"Selected: {count} chars (Must be < 200,000)",eventAnalysis:"Event Analysis",saveAndAnalyze:"Save Text and Analyze Events",col:{chapter:"Chapter",reel:"Volume",chapterName:"Chapter Name",chapterData:"Chapter Content"},msg:{parseFailed:"Failed to parse file. Please re-upload",selectFile:"Select file",docNotSupported:".doc files do not support parsing, please convert to .ts files",unsupportedType:"Unsupported file type",fileTooLarge:"File exceeds 10MB. Please upload a smaller file",selectChapters:"Please select chapters first",saveSuccess:"Novel text saved successfully"},importAdd:"Drag and drop files here or click to upload",limit:"Support .ts format"},editDialog:{title:"Edit Novel Text",chapterName:"Chapter Name",chapterNamePh:"Please enter chapter name",eventContent:"Event Content",eventContentPh:"Enter event content",chapterContent:"Chapter Content",chapterContentPh:"Please enter chapter content",cancel:"Cancel",save:"Save",msg:{updateSuccess:"Novel text updated successfully"}},event:{regenerate:"Regenerate Events",batchDelete:"Batch Delete",noData:"No event data. Click to start generation",generate:"Generate Events",generatingHint:"Generating events, please wait...",loading:"Loading...",delete:"Delete",col:{id:"Event ID",eventName:"Event Name",chapters:"Source Chapter",detail:"Event Details",createTime:"Created Time",operation:"Operation"},msg:{deleteHeader:"Delete Event",deleteBody:"Are you sure you want to delete this event?",deleteSuccess:"Deleted successfully",generateSuccess:"Events generated successfully",batchDeleteHeader:"Batch Delete",batchDeleteBody:"Are you sure you want to delete the selected {count} items?",batchDeleteSuccess:"Batch delete successful"}},analysis:{analyzeFirst:"Please analyze events first",startAnalysis:"Start Analysis",chapterHeader:"Chapter {index} - {name}",analyzing:"Analyzing events"}},scriptAgent:{inputPlaceholder:"Please enter content",chapterEvents:"Chapter Events",clearMessageMemory:"Clear Message Memory",clearSummaryMemory:"Clear Summary Memory",clearAllMemory:"Clear All Memory",edit:"Edit",storySkeleton:"Story Skeleton",adaptationStrategy:"Adaptation Strategy",script:"Script",noContent:"No content",relatedAssets:"Related Assets",editScript:"Edit Script",save:"Save",scriptTitle:"Title",titlePlaceholder:"Please enter title",content:"Content",contentPlaceholder:"Please enter script content",selectAssets:"Select Assets",noAssets:"No related assets",selectAssetsTitle:"Select Related Assets",welcomeMsg:"Hello! I am the Toonflow AI Assistant. Would you like me to start generating a script?",start:"Start",memoryType:{message:"Message Memory",summary:"Summary Memory",all:"All Memory"},forceGenerate:{title:"Force Generate?",desc:"Some chapters have not completed event analysis. Do you still want to force generate?",confirm:"Force Generate",cancel:"Cancel"},msg:{clearConfirm:"Confirm Clear",clearBody:"Are you sure you want to clear {type}? This action cannot be undone.",confirmClear:"Clear",cancel:"Cancel",memoryCleared:"{type} cleared",scriptUpdated:"Script updated successfully",scriptUpdateFailed:"Failed to update script, please try again later",searchScriptFailed:"Failed to search scripts",updated:"Saved successfully",error:"Save failed",reconnect:"Reconnect",notReconnect:"Confirm that the reconnection conversation will be cut off?",keepReconnect:"confirm",deleteConfirm:"Delete confirmation",deleteBody:"Delete text",confirmDelete:"Confirm deletion",scriptDeleted:"Script deleted"},reconnect:"Reconnect"},cornerScape:{batchSettings:"Batch Gen Settings",quickActions:"Quick Actions",selectUngenerated:"Select All Ungenerated",selectGenerated:"Select All Generated",selectFailed:"Select Failed",invertSelection:"Invert Selection",clearSelection:"Clear Selection",batchPreview:"Batch Preview Images",assetTypeFilter:"Asset Type Filter",genModel:"Generation Model",resolution:"Resolution",resolutionPh:"Please select a resolution",concurrency:"Concurrency",concurrencyPh:"Enter concurrency level",startBatch:"Start generating images in batches",waitingGen:"Waiting...",generating:"Generating",genFailed:"Generation failed",imageError:"Image Error",typeRole:"Character",typeScene:"Scene",typeTool:"Prop",typeUnknown:"Unknown",descriptionSuffix:"Description: ",operateScriptFirst:"Please handle the script first",individualConfig:"Individual Config",noImage:"No Image",promptLabel:"Prompt",promptPh:"Please enter prompt",aiPolish:"AI Polish",regenerate:"Regenerate",filterRole:"Character",filterScene:"Scene",filterTool:"Prop",unnamed:"Unnamed",noDescription:"No description",msg:{selectModel:"Please select a generation model",selectResolution:"Please select a resolution",enterPrompt:"Please enter a prompt",enterPromptFirst:"Please enter a prompt first",genSuccess:"{name} generated successfully",genFailed:"{name} generation failed",promptGenSuccess:"Prompt generated successfully",polishFailed:"Failed to polish, please try again",selectAtLeastOne:"Select at least one asset for batch generation",batchStarted:"Batch generation started. Total: {count}, Concurrency: {concurrent}",batchItemFailed:"{name} generation failed: {error}",batchComplete:"Batch generation completed",batchFailed:"Batch generation failed",replaceFailed:"Replacement failed",replaceSuccess:"Replacement successful",promptGenFail:"Prompt word generation failed",saveSuccess:"Modification of prompt word successful",saveFailed:"Prompt word modification failed"},history:"historical pictures",confirmReplace:"Confirm replacement",batchGenerationPrompt:"Generate prompt words in batches",generatingPrompt:"Generating",selectPromptEmpty:"Select all prompt word is empty",noEmptyPrompt:"There are no assets with empty prompt word",selectedCount:"{count} assets selected"},script:{searchPlaceholder:"Search script names...",search:"Search",addScript:"New Script",cancelSelectAll:"Deselect All",selectAll:"Select All",exportScript:"Export Script",msg:{searchFailed:"Failed to search scripts",selectExport:"Please select a script to export",exportSuccess:"Export successful",exportFailed:"Failed to export script",deleteHeader:"Confirm Deletion",deleteBody:"Are you sure you want to delete this script? This cannot be undone.",deleteConfirm:"Delete",cancel:"Cancel",deleteSuccess:"Deleted successfully",deleteFailed:"Deletion failed",selectDelScript:"Please choose to delete the script",batchDeleteHeader:"Batch Delete",batchDeleteBody:"Are you sure you want to delete the selected {count} scripts? This cannot be undone.",batchDeleteSuccess:"Batch deletion successful",extractingInProgress:"Extracting",projectNotFound:"Item not found",selectsExport:"Please choose to export the script"},add:{title:"Add Script",scriptName:"Script Name",scriptNamePh:"Please enter script name",uploadFile:"Upload File",dragUpload:"Drag and drop your script file here or click to upload",uploadHint:"Supports .txt, .docx. Recommended file size under 10MB",scriptContent:"Script Content",scriptContentPh:"Please upload or enter script content...",relatedAssets:"Related Assets",selectAssets:"Select Assets",noAssets:"No related assets",cancel:"Cancel",confirm:"Confirm",msg:{fileReadFailed:"Failed to read file",docNotSupported:".doc parsing is not supported. Please convert to .txt or .docx",unsupportedType:"Unsupported file type",fileTooLarge:"File exceeds 10MB. Please upload a smaller file",parsing:"Parsing file...",parseFailed:"Failed to parse file, please re-upload",selectAssetsTitle:"Select Related Assets",enterContent:"Please upload or enter script content",enterName:"Please enter script name",addSuccess:"Script added successfully",addFailed:"Failed to add script, please try again later"}},edit:{title:"Script Details",scriptName:"Script Name",scriptNamePh:"Please enter script name",scriptContent:"Script Content",scriptContentPh:"Please enter script content...",relatedAssets:"Related Assets",selectAssets:"Select Assets",noAssets:"No related assets",msg:{selectAssetsTitle:"Select Related Assets",updateSuccess:"Script updated successfully",updateFailed:"Failed to update script, please try again later"}},deleteScript:"Delete scripts in batches",extractAssets:""},assets:{addPrefix:"Add",batchGenerate:"Batch Generate",generatePrompt:"Generate Prompt",generateImage:"Generate Image",batchDelete:"Batch Delete",searchPlaceholder:"Search asset names...",search:"Search",preview:"Preview",generate:"Generate",edit:"Edit",delete:"Delete",generating:"Generating",play:"Play",mediaPreview:"Media Preview",confirmBatch:"Confirm {type}!",model:"Model",resolution:"Resolution",resolutionPh:"Please select a resolution",batchGenPrompt:"Batch Generate Prompts",batchGenImage:"Batch Generate Images",role:"Character",prop:"Prop",scene:"Scene",clip:"Clip",uploadSuccess:"Upload successful",selectAtLeastOne:"Please select at least one asset",noDescription:"No description",promptGenSuccess:'Prompt for "{name}" generated successfully',promptGenFail:'Prompt generation for "{name}" failed: {error}',selectModel:"Please select a model",selectResolution:"Please select a resolution",noPromptForImage:'"{name}" lacks a prompt; cannot generate image',imageGenSuccess:'Image for "{name}" generated successfully',imageGenFail:'Image generation for "{name}" failed: {error}',confirmDeleteHeader:"Confirm Deletion",confirmBatchDeleteBody:"Are you sure you want to batch delete these assets? This cannot be undone.",confirmDeleteBody:"Are you sure you want to delete this asset? This cannot be undone.",deleteBtn:"Delete",cancelBtn:"Cancel",deleteSuccess:"Asset deleted successfully",deleteFail:"Failed to delete asset",colPreview:"Preview",colName:"Name",colPrompt:"Prompt",colDescribe:"Description",colRemark:"Remarks",colCreateTime:"Created Time",colOperation:"Operation",add:{name:"Name",namePh:"Please enter name",describe:"Description",describePh:"Please enter description",remark:"Remarks",remarkPh:"Please enter remarks",prompt:"Prompt",promptPh:"Please enter prompt",nameRequired:"Please enter a name",describeRequired:"Please enter details",remarkRequired:"Please enter remarks",updateSuccess:"Asset updated successfully",addSuccess:"Asset added successfully"},gen:{header:"Image Generation",uploadRef:"Upload Reference Image",optional:"Optional",promptLabel:"Generation Prompt",smartGenerate:"Smart Generation",generatingPrompt:"Generating smart prompt...",promptPlaceholder:"Describe the image you want to generate. e.g., A futuristic city full of tech, neon lights blinking, cyberpunk style...",selectModel:"Select Model",selectResolution:"Select Resolution",generateBtn:"Generate Image",resultTitle:"Results",generatedCount:"{count} generated. Please select one",generatingLabel:"Generating...",genFailed:"Generation failed",confirmSelect:"Confirm Selection",promptSuccess:"Prompt generated successfully",promptFail:"Failed to generate prompt",fillPrompt:"Please enter a prompt",pickResolution:"Please select a resolution",pickModel:"Please select a model",unnamed:"Unnamed",assetGenSuccess:"Asset generated successfully",assetGenFail:"Asset generation failed",uploadOk:"Uploaded successfully",imageSelected:"Image selected",imageDeleted:"Image deleted",imageSaved:"Image saved",completed:"Completed"},batch:{header:"Batch Generation",selected:"Selected {count} items",selectAll:"Select All",clearSelection:"Clear Selection",inputPh:"Please enter content",saveSelected:"Save Selected ({count})",colPreviewImg:"Preview",selectToSave:"Please select items to save",saveSuccess:"Saved successfully",saveFail:"Failed to save, please try again",promptDone:"Prompt generation completed",promptFail:"Prompt generation failed",missingPrompts:"{count} assets are missing prompts. Please generate prompts first",imageDone:"Image generation completed",imageGenFail:"Image generation failed",unknownError:"Unknown error",promptGenCancelled:"Generation canceled"}},production:{selectPlaceholder:"Please select an episode",edit:"Edit",node:{script:{title:"Script",editDialog:"Edit Script"},scriptPlan:{title:"Shooting Plan",editDialog:"Edit Shooting Plan"},storyboard:{title:"Storyboard Panel",notGenerated:"Not Generated",scaleRatio:"Zoom Ratio",gridPreview:"Grid Preview",noPreviewImages:"No images available to preview",imageLoadFailed:"Failed to load image",promptPlaceholder:"Please enter the prompt word",prompt:"prompt word",editInfo:"Prompt word modification"},storyboardTable:{title:"Storyboard Table",editDialog:"Edit Storyboard Table"},assets:{title:"Derived Assets",generateFailed:"Generation failed",notGenerated:"Not Generated",originalAsset:"Original Asset",derived:"Derived",noDerivedAssets:"No derived assets"},poster:{title:"Video Cover",coverCount:"{count} Items"},workbench:{title:"Video Workbench"}},editImage:{upload:"Upload",generate:"Generate",saveFailed:"Save failed, please try again",fetchFailed:"Failed to fetch data",generating:"Generating...",deleteNode:"Delete Node",ratio:"Ratio",quality:"Quality",generateBtn:"Generate Image",selectImage:"Select Image",imageGeneration:"Image Generation",promptPlaceholder:"Describe the image you want to generate...",imageRef:"Image {index}",videoRef:"Video {index}",audioRef:"Audio {index}",reference:"Ref {index}",noReferences:"No reference images available",selectModel:"Please select a model first",selectQuality:"Please select a quality",selectRatio:"Please select a ratio",generateFailed:"Generation failed",generateFirst:"Please generate an image first",generatedResult:"Results",waitingGenerate:"Waiting...",layoutLR:"Auto Layout - Horizontal",layoutTB:"Auto Layout - Vertical",uploadAssetImage:"Upload Asset Image",uploadStoryboardImage:"Upload Storyboard Image",uploadImage:"Asset image upload",mode:"model",closeConfirmTitle:"Close the editing panel?",closeConfirmBody:"Unsaved data will be lost after closing"},save:"Select",cancel:"Cancel",chatBox:{inputPlaceholder:"Type a message...",generateDerivedAssets:"Generate Derived Assets",welcomeMessage:"Hello! I am your AI Assistant. How can I help you?",adjustModel:"Adjust Model",startMakingVideo:"Start Making Video",startMakingVideoPrompt:"Please help me start making a video",clearMessageMemory:"Clear Message Memory",clearSummaryMemory:"Clear Summary Memory",clearAllMemory:"Clear All Memory",messageMemory:"Message Memory",summaryMemory:"Summary Memory",allMemory:"All Memory",confirmClear:"Clear Memory",confirmClearBody:"Are you sure you want to clear {type}?",confirmClearBtn:"Confirm",memoryCleared:"{type} cleared"},wb:{quickPreview:"Quick Preview",videoGeneration:"Storyboard",videoEditing:"editing desk",hint:"Hint",extractLines:"Extract lines from video?",no:"No",confirm:"Yes",extractLinesQuestion:"Do you want to extract dialogue lines from the video as subtitles?",importingLoading:"Importing, please wait...",mainTrackVideo:"Main Track (Video)",subtitle1:"Subtitle 1",storyboardVideoName:"Storyboard Video-{storyboard}.mp4"},preview:{noImage:"No Image",storyboardDesc:"Storyboard Description",serialNumber:"No.",noDescription:"No Description",duration:"Duration",seconds:"s",relatedAssets:"Related Assets",role:"Character",prop:"Prop",scene:"Scene",noCharacters:"No characters appear",imagePrompt:"Image Prompt",selectAll:"Select All",exportImage:"Export Image",sceneDescription:"Scene Description",promptLabel:"Prompt",restoreSort:"Reset Sorting",restoreSortConfirm:"Are you sure you want to revert to the original sorting?",tip:"Tip",selectAtLeastOne:"Please select at least one storyboard to export",exportFilename:"Storyboard pictures"},generate:{noVideo:"No Video",videoPrompt:"Video Prompt",promptPlaceholder:"Enter prompt words to describe the video content you want to generate...",refImage:"Reference Image",image:"Image",refVideo:"Reference Video",refImageLabel:"Reference Image",refAudio:"Reference Audio",muteAudio:"Mute Audio",enableAudio:"Enable Audio",resolution:"Resolution",duration:"Duration",generate:"Generate",historyVersions:"History Versions",confirmSelection:"Confirm Selection",noHistory:"No history available",generating:"Generating",generatingPrompt:"Intelligent generation of prompt words",generateFailed:"Generation failed",selectAll:"Select All",videoTrack:"Video Track",batchGenerate:"Batch Generate",importToEditor:"Import to Editor",modeSingleImage:"Single Image",modeMultiImage:"Multi-Image",modeGridImage:"Grid Multi-Image",modeStartEnd:"Start & End Frames",modeText:"Text to Video",modeVideoRef:"Video Reference",modeImageRef:"Image Reference",modeAudioRef:"Audio Reference",modeTextRef:"Text Reference",startFrame:"Start Frame",startFrameOptional:"Start Frame (Optional)",endFrame:"End Frame",endFrameOptional:"End Frame (Optional)",selectRefImage:"Select Reference Image",selectRefImages:"Select Reference Images",selectEndFrame:"Select End Frame Image",selectRefVideoAsset:"Select Reference Video",selectRefAudioAsset:"Select Reference Audio",selectRefImageAsset:"Select Reference Image",selectImageSource:"Select Image Source",fromStoryboard:"Storyboard Image",fromStoryboardDesc:"Select image from storyboard list",fromAssets:"Asset Image",fromAssetsDesc:"Select image from asset library",confirmDelete:"Confirm Deletion",confirmDeleteBody:"Are you sure you want to delete this video? This cannot be undone.",delete:"Delete",cancel:"Cancel",deleteSuccess:"Video deleted successfully",deleteFailed:"Deletion failed",selectVideoFirst:"Please select a video first",confirmSuccess:"Selection confirmed",batchSubmitted:"Batch generation request submitted. Processing...",configNotFound:"Configuration not found",pollingFailed:"Video status query failed, please refresh manually",batchGeneratePrompt:"Generate prompt words in batches",promptEmpty:"Please enter a video prompt first",modelEmpty:"Please select a video generation model first",batchPromptEmpty:`Storyboard {name} is available for video prompts. +如需調整,隨時可以在設定中修改。`,qrcodeLabel:"加入微信交流群,獲得更多協助:",githubLabel:"如果覺得好用,請給我們一個 ⭐ Star 吧!",prevStep:"上一步",nextStep:"下一步",finish:"開始使用"},pCi={skillManagement:{search:"搜尋檔案名稱",empty:"沒有匹配的文件",edit:"編輯",selectOnTheLeft:"請從左側選擇文件"}},bCi={save:"儲存",submitting:"提交中",editSuccess:"修改成功",editFailed:"修改失敗",submit:"提交"},wCi={assets:{notExist:"資產不存在",notDerivativeExist:"衍生資產不存在",derivativeUpdateSuccess:"更新成功",derivativeState:"未生成",derivativeAddSuccess:"添加成功",derivativeDelSuccess:"刪除成功",notGenerated:"未生成"},addSuccess:"更新成功",state:{unused:"未生成"},saveSuccess:"添加成功"},OCi={generating:"生成中"},yCi={scanning:"🔍 正在解析載入Skill",scanComplete:"✨ Skill 掃描完成",inserted:"✅ 新增{count}個Skill",updated:"🔄 更新{count}個Skill",removed:"🗑️ 移除{count}個Skill",scannedFiles:"📁 掃描 {count} 個檔案",noDescription:"📝 {count}個Skill缺少描述",noAttribution:"👤 {count}個Skill缺少歸屬",configWarning:"⚠️ Skill 配置警告",openSettings:"打開設定",scanFailed:"❌ 掃描失敗",checkNetwork:"🔌 請檢查網路連線或稍後重試",retryLater:"🔁 請稍後重試"},CCi="產生影片",_Ci="歷史版本",SCi="生成中",LCi="失敗",xCi="全選",ECi="已選",TCi="導入影片",QCi="第{index 1}段",DCi="確認刪除",BCi="確認刪除該段?",RCi="選擇來源",ICi="從資產選擇",MCi="從分鏡選擇",PCi={newVersion:"有新版本,是否更新?"},FCi={components:fCi,settings:gCi,workbench:mCi,login:kCi,promptManage:vCi,hello:ACi,setting:pCi,common:bCi,storyboard:wCi,productionAgent:OCi,skillScan:yCi,generate:CCi,history:_Ci,generating:SCi,generateFailed:LCi,selectAll:xCi,selected:ECi,importVideo:TCi,emptyTrack:QCi,del:DCi,delConfirm:BCi,selectSource:RCi,confirm:ICi,cancel:MCi,"workbench.script.msg.exportFailed":"匯出失敗","workbench.production.node.assets.confirmDeleteBody":"確認是否刪除該資產","workbench.production.node.assets.removeFailed":"刪除資產失敗",version:PCi,"workbench.production.generatedNode.localUpload":"本地上傳","workbench.production.editImage.uploadFailed":"圖片上傳失敗","workbench.production.editImage.noImage":"請先加入圖片"},NCi={editMdPreivew:{title:"Edit",confirm:"Save",cancel:"Cancel"},imageTools:{copy:"Copy Image",preview:"Preview",download:"Download",msg:{imageLoadFailed:"Failed to load image",convertFailed:"Conversion failed",copied:"Copied to clipboard",copyFailed:"Copy failed",downloadFailed:"Download failed",downloadStarted:"Download started",downloadBlockedOpenNewWindow:"The current image source may restrict downloads; tried opening in a new window"}},migrateShow:{title:"Migrate Data",desc:"Data from an older version was detected. Do you want to migrate it?",hide:"Don't show again",confirm:"OK",msg:{migrateSuccess:"Data migration successful",migrateFailed:"Data migration failed"}},modelSelect:{placeholder:"Please select a model",type:{image:"Image",text:"Text",video:"Video"},msg:{fetchModelFailed:"Failed to fetch model data:"},goSetting:"Go to settings and add a model"}},UCi={title:"ToonFlow Settings",menu:{language:"Language",vendorConfig:"Model Providers",agentConfig:"Agent Config",promptManage:"Prompt Management",skillManagement:"skillsSkillsManagement",memoryConfig:"Agent Memory",loginConfig:"Login Config",dbConfig:"Database",fileManagement:"File Management",otherConfig:"Other Config",requestConfig:"Request URL",about:"Check for Updates",logoutConfig:"Logout",skillsSkillsManagement:"SkillsSkills Management"},language:{desc:"Select the interface display language",msg:{saved:"Language settings saved"}},vendor:{addVendor:"Add Provider",noVendor:"No providers yet. Please add one.",required:"Required",optionalSection:"Optional",modelSettings:"Model Settings",addManually:"Add Manually",test:"Test",edit:"Edit",delete:"Delete",deleteVendor:"Delete Provider",editCode:"Edit Code",updateConfig:"Update Config",addModel:"Add Model",editModel:"Edit Model",displayName:"Display Name",displayNamePlaceholder:"e.g., GPT-4o",modelId:"Model ID",modelIdPlaceholder:"e.g., gpt-4o",modelType:"Model Type",multimodal:"Multimodal",supported:"Supported",notSupported:"Not Supported",toolCall:"Tool Call",imageMode:"Image Mode",videoMode:"Video Mode",audioOutput:"Audio Output",durationResolution:"Duration / Resolution Mapping",durationSec:"Duration (sec)",resolution:"Resolution",enterAndPress:"Press Enter to add",addDurationResolution:"Add a Duration/Resolution pair",testResult:"Test Results",generating:"Generating...",addVendorDialog:"Add Provider",codeEditorInfo:"Please write TypeScript code to configure provider information",reset:"Reset",importFile:"Import File",textModel:"Text Model",imageModel:"Image Model",videoModel:"Video Model",textToImage:"Text to Image",textToVideo:"Text to Video",singleImage:"Single Image",multiImage:"Multi-Image Mode",multiReference:"Multi-Image Reference",gridImage:"Grid Single Image",startEndRequired:"Start & End Frames (Both Required)",endFrameOptional:"Start & End Frames (End Frame Optional)",startFrameOptional:"Start & End Frames (Start Frame Optional)",textRef:"Text",imageRef:"Image",videoRef:"Video",audioRef:"Audio",audioOptional:"Optional",audioOnly:"Audio Video Only",noAudio:"Silent Video Only",msg:{getVendorListFailed:"Failed to fetch provider list",vendorConfigUpdated:"Provider config updated",updateFailed:"Update failed",highRiskConfirm:"⚠️ High-Risk Operation Confirmation",addVendorRiskBody:"Adding a new AI provider grants it access to system APIs. Please ensure you trust the code source of this provider!",iKnowRisk:"I understand the risks",cancel:"Cancel",confirmAgain:"⚠️ Confirm Again",addVendorConfirmBody:"Are you sure you want to add this provider? It will be included in the system's model scheduling.",confirmAndAdd:"Confirm & Add",goBackCheck:"Go Back",vendorAdded:"Provider added successfully",addFailed:"Failed to add",updateVendorRiskBody:"Updating AI provider configurations modifies its API access and behaviors. Please ensure you trust the modified code source!",updateVendorConfirmBody:"Are you sure you want to update this provider config? This will affect the system's model scheduling.",confirmAndUpdate:"Confirm & Update",updateSuccess:"Provider config updated successfully",fillDisplayName:"Please enter a display name",fillModelId:"Please enter a model ID",selectImageMode:"Please select an image mode",selectVideoMode:"Please select a video mode",groupPrefix:"Group {n}: ",addDuration:"Please add a duration",addResolution:"Please add a resolution",selectVendorFirst:"Please select a provider first",modelIdExists:"Model ID already exists",modelAdded:"Model added successfully",modelUpdated:"Model updated successfully",enterApiKey:"Please enter API KEY",enterApiUrl:"Please enter API URL",testSuccess:"Test successful",imageGenSuccess:"Image generated successfully",videoGenSuccess:"Video generated successfully",requestFailed:"Request failed",deleteModelConfirm:"Confirm Model Deletion",deleteModelBody:"This action cannot be undone. Do you want to continue?",confirmDelete:"Delete",modelDeleted:"Model deleted",deleteVendorConfirm:"Confirm Provider Deletion",deleteVendorBody:"Deleting this provider will also delete all its associated models. Do you want to continue?",vendorDeleted:"Provider deleted",deleteFailed:"Deletion failed",enabled:"Enabled",disabled:"Disabled",linkAddVendorRiskBody:"Adding a new AI vendor will give it access to the system API, please make sure you trust the vendor's link source!",importAdd:"Adding a new AI vendor will give it access to the system API, please make sure you trust the vendor's documentation source!",linkAddFailed:"Failed to add link"},associationSkills:"Associated skills",think:"deep thinking",code:"code",linkAddPlaceholder:"Enter link to add",noFileSelected:"File imported successfully",linkAdd:"confirm"},agent:{bannerDesc:"Use the official Toonflow relay site for one-click configuration. Ready out-of-the-box, no manual setup needed.",visitWebsite:"Visit Website",fillKey:"Enter KEY",oneClickFill:"One-Click Fill",notOpen:"Not Available",notConfigured:"Not Configured",modelConfig:"Model Config",confirm:"Confirm",cancel:"Cancel",selectModel:"Select Model",fillKeyHeader:"Enter official KEY from Toonflow platform",keyPlaceholder:"Please enter KEY",save:"Save",msg:{notAvailable:"This feature is not yet available. Stay tuned!",configSuccess:"Configured successfully",updateConfigFailed:"Failed to update config: ",keyValid:"KEY is valid. Successfully connected to the Toonflow platform",keyInvalid:"KEY is invalid. Please check and re-enter: ",enterKey:"Please enter KEY",saveFailed:"Save failed: ",getAgentListFailed:"Failed to fetch Agent config list: ",toonflowNotFound:"Toonflow official transfer station does not exist"}},memory:{warning:"The following settings are preset to recommended values. Unless you fully understand their implications, we recommend keeping the current settings.",vectorModelConfig:"Vector Model Config",modelFilePath:"Model File Path",quantizationType:"Quantization Type",quantizationPlaceholder:"Please enter quantization type",memoryParams:"Memory Parameters",messagesPerSummary:"Messages per Summary Trigger",messagesPerSummaryHelp:"Retains the last N conversation contexts.",shortTermLimit:"Short-Term Memory Limit",shortTermLimitHelp:"Number of candidate memories returned during retrieval.",summaryMaxLength:"Summary Max Length",summaryMaxLengthHelp:"Maximum characters allowed during message compression.",summaryLimit:"Compressed Message Query Limit",summaryLimitHelp:"Allowed number of compressed messages to query.",ragLimit:"RAG Search Limit",ragLimitHelp:"Number of messages retrieved during a search.",deepRetrieveSummaryLimit:"Vector Recall Compressed Limit",deepRetrieveSummaryLimitHelp:"Number of messages fetched when retrieving compressed message content.",saveConfig:"Save Config",clearMemory:"Clear Memory",restoreDefault:"Restore Defaults",msg:{saved:"Memory config saved",clearConfirmTitle:"Confirm Clear Memory",clearConfirmBody:"This will erase the AI's global memory data and cannot be undone. Continue?",confirmClear:"Clear",cancel:"Cancel",cleared:"Memory cleared",clearFailed:"Failed to clear memory"}},login:{username:"Username",usernamePlaceholder:"Please enter username",password:"Password",passwordPlaceholder:"Please enter password",modify:"Modify",msg:{enterUsername:"Please enter username",usernameLength:"Username must be 2-20 characters long",enterPassword:"Please enter password",passwordLength:"Password must be 6-20 characters long",fetchFailed:"Failed to fetch user information",saveSuccess:"Saved successfully",saveFailed:"Failed to save"}},db:{clearDb:"Clear Database",clearDbDesc:"Clear data in all tables while keeping table structures",clearData:"Clear Data",confirmAction:"Confirm Action",msg:{clearDbTitle:"Clear Database",firstConfirm:"Are you sure you want to clear all data tables? This cannot be recovered!",secondConfirm:"Final confirmation: all data will be permanently lost after clearing!",keyword:"Clear",confirm:"Confirm",pleaseInput:"Please type",cleared:"All data tables have been cleared",operationFailed:"Operation failed, please try again",cancelled:"Operation cancelled"}},skill:{scanSkills:"Scan Skills",addSkill:"Add Skill",importFromHub:"Import from Toonflow-Hub",filterType:"Type",filterAttribution:"Attribution",searchPlaceholder:"Search skill by name",search:"Search",totalCount:"{count} Skills in total",typeMain:"Core",typeReferences:"Technique",noAttribution:"No Attribution",noAttributionTip:"⚠️ No attribution, Skill cannot be enabled",noEmbeddingTip:"⚠️ Not embedded, Skill cannot be enabled",notEmbedded:"Not Embedded",stateNormal:"Normal",stateGenerating:"Generating description",stateEmptyDesc:"Empty description",stateAttrError:"Attribution error",stateMd5Changed:"MD5 changed, update description recommended",embedding:"Embed",edit:"Edit",delete:"Delete",importFromHubDialog:"Import from Toonflow-Hub",shareLink:"Share Link",editSkillTitle:"Edit Skill - ",addSkillTitle:"Add Skill",skillName:"Skill Name",skillNamePlaceholder:"e.g. writing-assistant",path:"Path",attributionAgent:"Attribution Agent",selectAttribution:"Select Attribution Agent",description:"Description",aiGenerate:"AI Generate",descriptionPlaceholder:"Describe the purpose of this skill",cancel:"Cancel",save:"Save",createSkill:"Create Skill",attr:{productionDecision:"Production - Director",productionExecution:"Production - Cinematographer",productionSupervision:"Production - Supervisor",scriptDecision:"Script Agent - Coordinator",scriptExecution:"Script Agent - Writer",scriptSupervision:"Script Agent - Editor",universalAgent:"Production Assistant"},msg:{scanSuccess:"Scan completed, found {count} Skill files",fetchListFailed:"Failed to fetch skill list",fillContentFirst:"Please fill in Markdown content first",descGenSuccess:"Description generated successfully",descGenFailed:"Failed to generate description",fillNameFirst:"Please fill in Skill name first",updateSuccess:"Skill updated successfully",createSuccess:"Skill created successfully",updateFailed:"Failed to update Skill",createFailed:"Failed to create Skill",deleteConfirmTitle:"Confirm Deletion",deleteConfirmBody:'Are you sure you want to delete Skill "{name}"? This cannot be undone.',deleteSuccess:"Deleted successfully",deleteFailed:"Delete failed",embeddingSuccess:"Embedding completed",embeddingFailed:"Embedding failed"},fileLost:"File missing"},other:{requestTimeout:"Request Timeout",seconds:"Seconds",inputSeconds:"Please enter seconds",assetConcurrency:"Asset Generation Concurrency",count:"Tasks",inputCount:"Please enter number of tasks",chapterRegex:"Chapter Split Regex",restoreDefault:"Restore Defaults",regexPlaceholder:"Please enter a regular expression",showTitleBar:"show title bar",isElectron:"Switch to desktop mode",canvasScroll:"Canvas scroll",canvasIsDisabled:"Canvas zoom",agentCanvasScalingMethod:"Unlimited canvas wheel operation on production page",zoom:"Zoom",scroll:"scroll",isInteracting:"Unlimited canvas drag performance optimization on production page",closeIsInteracting:"closure"},request:{warning:"Do not modify unless absolutely necessary",apiAddress:"API URL",apiPlaceholder:"Please enter API request URL",save:"Save",reset:"Reset",msg:{enterApi:"Please enter API URL",validUrl:"Please enter a valid HTTP/HTTPS URL",saved:"Request URL saved successfully",reset:"Reset to default URL",refreshFailed:"Refresh failed",refreshSuccess:"Refresh successful"}},about:{slogan:"Open-source AI-driven Comic / Storyboard creation tool",latestVersion:"You are on the latest version",checkUpdate:"Check for Updates",codeRepository:"Code Repository",githubRepo:"GitHub Repository",giteeRepo:"Gitee Repository",versionUpdate:"Version Update",checkUpdateGithub:"Check Update (GitHub)",getFromGithub:"Get the latest release from GitHub",checkUpdateGitee:"Check Update (Gitee)",getFromGitee:"Get the latest release from Gitee",license:"License",licenseDesc:"Open-source license agreement · Click for details",updateAvailable:"new version found",currentVersion:"Current Version",latestVersionLabel:"Latest Version",selectUpdateSource:"Select Update Source",github:"GitHub",gitee:"Gitee",confirmUpdate:"Confirm Update",cancel:"Cancel",updating:"Updating...",updateSuccess:"Update successful, please restart the app",updateFailed:"Update failed, please try again",noUpdate:"You are already on the latest version",upToDate:"New version detected",confirmReinstall:"Copy link",reinstallRequired:"The browser will automatically open and download. If it does not open, please open it manually."},logout:{warning:"After logging out, you will need to log in again to access the system.",confirmLogout:"Are you sure you want to log out?",logout:"Logout",msg:{logoutSuccess:"Logged out successfully",logoutFailed:"Logout failed, please try again"}},file:{quickOpen:"Quick Open Directory",open:"Open",dockerDesc:'For Docker/Separated deployments, please go to the "/data/*" directory to manage files manually.',desktopOnly:"This feature is only available on the desktop client",folders:{data:"data",dataDesc:"Data directory.",logs:"data/logs",logsDesc:"Runtime and error logs.",oss:"data/oss",ossDesc:"File storage related resources.",skills:"data/skills",skillsDesc:"Skills and prompt configuration files.",models:"data/models",modelsDesc:"Model files and configurations.",web:"data/web",webDesc:"Web-related resources (e.g., frontend build artifacts).",serve:"data/serve",serveDesc:"Backend service related files."},openFailed:"Failed to open folder"},dev:{warning:"The following are developer tools, please operate with caution!",openDevtool:"Open",devtoolsDoc:"Document address",devtoolsDesc:"After being turned on, a .devtools folder will be created in the Toonflow installation directory. Please ensure that Toonflow has write permissions (run as administrator).",devtoolsDesc2:"Run npx {'@'}ai-sdk/devtools in this directory to enable telemetry debugging",openDevtoolFailed:"Failed to open developer tools, please make sure Toonflow desktop is installed",notInElectron:"For WEB environment, please open the browser console manually"}},jCi={selectProject:"Please select a project",menu:{myProject:"My Projects",taskCenter:"Task Center",novel:"Novel Text",scriptAgent:"Script Agent",scriptManage:"Script Management",cornerScape:"Characters & Scenes",production:"Video Production",assetCenter:"Asset Center",settings:"Settings",jumpGithub:"Jump to Github",feedbackQuestions:"Feedback question"},project:{title:"My Projects",subtitle:"Manage all your short drama projects",newProject:"New Project",dialog:{editTitle:"Edit Project",addTitle:"New Project",save:"Save",ok:"OK",cancel:"Cancel",projectType:"Project Type",selectType:"Select Project Type",basedOnNovel:"Based on Novel Text",projectName:"Project Name",projectNamePh:"Please enter project name",novelType:"Novel Genre",novelTypePh:"e.g., Fantasy, Sci-Fi, Romance",artStyle:"Art Style",selected:"Selected:",selectArtStyle:"Please select an art style",newArtStyle:"New art style",loading:"Loading...",videoRatio:"Video Ratio",novelIntro:"Novel Synopsis",novelIntroPh:"Please enter novel synopsis",editArtStyleTitle:"Edit art style",newArtStyleTitle:"New art style",artStyleName:"Art style name",artStyleNamePh:"Please enter art style name",artStyleImage:"Art style image",remove:"Remove",uploadCover:"Upload Cover",artStylePrompt:"Prompt",aiExtract:"AI Extract Prompt",promptPlaceholder:"Enter prompt",visualManual:"Visual Manual",newVisualManual:"New visual manual",editVisualManualTitle:"Edit visual manual",newVisualManualTitle:"New visual manual",visualManualName:"Visual manual name",visualManualNamePh:"Please enter visual manual name",visualManualCover:"Visual manual cover",visualManualPrompt:"Visual manual prompt",modelData:"Select image model",videoModelData:"Select video model",prompt:{placeholder:"Enter prompt word",saveSuccess:"Update successful",title:"prompt word"},basedOnScript:"based on script",mdFile:"visual manual file",directorManual:"Director's Handbook",addDirectorManual:"New director manual",editingDirectorManual:"Edit Director's Manual",newDirecorManualTitle:"New director manual",directorManualPrompt:"Director's Manual Prompt Words",directorManualName:"Director's Manual Name",directorManualNamePh:"Enter Director's Manual name",directorFile:"Director's Manual Document",directorManualCover:"Director's Manual Cover"},msg:{fetchFailed:"Failed to fetch project list",notFound:"Project not found!",editSuccess:"Project edited successfully",editFailed:"Failed to edit project",addSuccess:"Project created successfully",addFailed:"Failed to create project",deleteHeader:"Delete Project",deleteBody:"Are you sure you want to delete this project?",deleteConfirm:"Delete",deleteCancel:"Cancel",deleteSuccess:"Project deleted successfully",deleteFailed:"Failed to delete project",extractSuccess:"Prompt extracted successfully",extractFailed:"Extraction failed",enterArtStyleName:"Please enter art style name",artStyleUpdated:"Art style updated",artStyleAdded:"Art style added",operationFailed:"Operation failed",enterVisualManualName:"Please enter visual manual name",enterVisualManualImage:"Please upload a cover image for the visual manual",enterVisualManualTabData:"prompt cannot be empty",visualManualUpdated:"Visual manual updated",visualManualAdded:"Visual manual added",deleteVisualManualHeader:"Delete Visual Manual",deleteVisualManualBody:'Are you sure you want to delete visual manual "{name}"?',deleteVisualManualConfirm:"Delete",deleteVisualManualCancel:"Cancel",enterProjectName:"Please enter project name",enterProjectIntro:"Please enter the novel introduction",enterProjectType:"Please enter project type",enterArtStyle:"Please select a project visual brochure",enterVideoRatio:"Please select video ratio",enterImageModel:"Please select a picture model",enterVideoModel:"Please select a video model",visualManualDeleted:"Delete successfully",selectMode:"Please select mode",deleteDirectorManualHeader:"Delete Director's Manual",deleteDirectorManualBody:`Are you sure you want to delete Director's Manual "{name}"?`,directorManualUpdated:"Director's Manual updated",directorManualAdded:"Director's Manual added",directorManual:"Please select Project Director's Manual"},type:{novel:"Based on the original novel",script:"Based on novel script"}},novel:{importText:"Import Text",batchDelete:"Batch Delete",eventAnalysis:"Event Analysis",searchPlaceholder:"Search text names...",search:"Search",generating:"Generating...",genFailed:"Generation failed",none:"None",edit:"Edit",delete:"Delete",col:{id:"No.",reel:"Volume",chapter:"Chapter Name",chapterData:"Chapter Content",event:"Event",operation:"Operation"},msg:{batchDeleteHeader:"Batch Delete",batchDeleteBody:"Are you sure you want to delete the selected {count} items?",batchDeleteSuccess:"Batch delete successful",deleteHeader:"Confirm Deletion",deleteBody:'Are you sure you want to delete the chapter named "{name}"?',deleteSuccess:"Deleted successfully",eventAnalysisHeader:"Event Analysis",eventAnalysisBody:"Are you sure you want to analyze events for the selected {count} items?"},import:{title:"Upload Novel Text",step1:"Step 1",step2:"Step 2",step3:"Step 3",dragUpload:"Drag and drop your novel file here or click to upload",uploadHint:"Supports .txt, .docx. Recommended file size under 10MB",or:"OR",pasteLabel:"Directly paste novel text",pastePlaceholder:"Please paste novel text here",chars:"chars",tooShort:"Content is too short, recommend at least 100 characters",parsedChapters:"{count} chapters parsed",nextStep:"Next",prevStep:"Previous",selectedInfo:"Selected: {count} chars (Must be < 200,000)",eventAnalysis:"Event Analysis",saveAndAnalyze:"Save Text and Analyze Events",col:{chapter:"Chapter",reel:"Volume",chapterName:"Chapter Name",chapterData:"Chapter Content"},msg:{parseFailed:"Failed to parse file. Please re-upload",selectFile:"Select file",docNotSupported:".doc files do not support parsing, please convert to .ts files",unsupportedType:"Unsupported file type",fileTooLarge:"File exceeds 10MB. Please upload a smaller file",selectChapters:"Please select chapters first",saveSuccess:"Novel text saved successfully"},importAdd:"Drag and drop files here or click to upload",limit:"Support .ts format"},editDialog:{title:"Edit Novel Text",chapterName:"Chapter Name",chapterNamePh:"Please enter chapter name",eventContent:"Event Content",eventContentPh:"Enter event content",chapterContent:"Chapter Content",chapterContentPh:"Please enter chapter content",cancel:"Cancel",save:"Save",msg:{updateSuccess:"Novel text updated successfully"}},event:{regenerate:"Regenerate Events",batchDelete:"Batch Delete",noData:"No event data. Click to start generation",generate:"Generate Events",generatingHint:"Generating events, please wait...",loading:"Loading...",delete:"Delete",col:{id:"Event ID",eventName:"Event Name",chapters:"Source Chapter",detail:"Event Details",createTime:"Created Time",operation:"Operation"},msg:{deleteHeader:"Delete Event",deleteBody:"Are you sure you want to delete this event?",deleteSuccess:"Deleted successfully",generateSuccess:"Events generated successfully",batchDeleteHeader:"Batch Delete",batchDeleteBody:"Are you sure you want to delete the selected {count} items?",batchDeleteSuccess:"Batch delete successful"}},analysis:{analyzeFirst:"Please analyze events first",startAnalysis:"Start Analysis",chapterHeader:"Chapter {index} - {name}",analyzing:"Analyzing events"}},scriptAgent:{inputPlaceholder:"Please enter content",chapterEvents:"Chapter Events",clearMessageMemory:"Clear Message Memory",clearSummaryMemory:"Clear Summary Memory",clearAllMemory:"Clear All Memory",edit:"Edit",storySkeleton:"Story Skeleton",adaptationStrategy:"Adaptation Strategy",script:"Script",noContent:"No content",relatedAssets:"Related Assets",editScript:"Edit Script",save:"Save",scriptTitle:"Title",titlePlaceholder:"Please enter title",content:"Content",contentPlaceholder:"Please enter script content",selectAssets:"Select Assets",noAssets:"No related assets",selectAssetsTitle:"Select Related Assets",welcomeMsg:"Hello! I am the Toonflow AI Assistant. Would you like me to start generating a script?",start:"Start",memoryType:{message:"Message Memory",summary:"Summary Memory",all:"All Memory"},forceGenerate:{title:"Force Generate?",desc:"Some chapters have not completed event analysis. Do you still want to force generate?",confirm:"Force Generate",cancel:"Cancel"},msg:{clearConfirm:"Confirm Clear",clearBody:"Are you sure you want to clear {type}? This action cannot be undone.",confirmClear:"Clear",cancel:"Cancel",memoryCleared:"{type} cleared",scriptUpdated:"Script updated successfully",scriptUpdateFailed:"Failed to update script, please try again later",searchScriptFailed:"Failed to search scripts",updated:"Saved successfully",error:"Save failed",reconnect:"Reconnect",notReconnect:"Confirm that the reconnection conversation will be cut off?",keepReconnect:"confirm",deleteConfirm:"Delete confirmation",deleteBody:"Delete text",confirmDelete:"Confirm deletion",scriptDeleted:"Script deleted"},reconnect:"Reconnect"},cornerScape:{batchSettings:"Batch Gen Settings",quickActions:"Quick Actions",selectUngenerated:"Select All Ungenerated",selectGenerated:"Select All Generated",selectFailed:"Select Failed",invertSelection:"Invert Selection",clearSelection:"Clear Selection",batchPreview:"Batch Preview Images",assetTypeFilter:"Asset Type Filter",genModel:"Generation Model",resolution:"Resolution",resolutionPh:"Please select a resolution",concurrency:"Concurrency",concurrencyPh:"Enter concurrency level",startBatch:"Start generating images in batches",waitingGen:"Waiting...",generating:"Generating",genFailed:"Generation failed",imageError:"Image Error",typeRole:"Character",typeScene:"Scene",typeTool:"Prop",typeUnknown:"Unknown",descriptionSuffix:"Description: ",operateScriptFirst:"Please handle the script first",individualConfig:"Individual Config",noImage:"No Image",promptLabel:"Prompt",promptPh:"Please enter prompt",aiPolish:"AI Polish",regenerate:"Regenerate",filterRole:"Character",filterScene:"Scene",filterTool:"Prop",unnamed:"Unnamed",noDescription:"No description",msg:{selectModel:"Please select a generation model",selectResolution:"Please select a resolution",enterPrompt:"Please enter a prompt",enterPromptFirst:"Please enter a prompt first",genSuccess:"{name} generated successfully",genFailed:"{name} generation failed",promptGenSuccess:"Prompt generated successfully",polishFailed:"Failed to polish, please try again",selectAtLeastOne:"Select at least one asset for batch generation",batchStarted:"Batch generation started. Total: {count}, Concurrency: {concurrent}",batchItemFailed:"{name} generation failed: {error}",batchComplete:"Batch generation completed",batchFailed:"Batch generation failed",replaceFailed:"Replacement failed",replaceSuccess:"Replacement successful",promptGenFail:"Prompt word generation failed",saveSuccess:"Modification of prompt word successful",saveFailed:"Prompt word modification failed"},history:"historical pictures",confirmReplace:"Confirm replacement",batchGenerationPrompt:"Generate prompt words in batches",generatingPrompt:"Generating",selectPromptEmpty:"Select all prompt word is empty",noEmptyPrompt:"There are no assets with empty prompt word",selectedCount:"{count} assets selected"},script:{searchPlaceholder:"Search script names...",search:"Search",addScript:"New Script",cancelSelectAll:"Deselect All",selectAll:"Select All",exportScript:"Export Script",msg:{searchFailed:"Failed to search scripts",selectExport:"Please select a script to export",exportSuccess:"Export successful",exportFailed:"Failed to export script",deleteHeader:"Confirm Deletion",deleteBody:"Are you sure you want to delete this script? This cannot be undone.",deleteConfirm:"Delete",cancel:"Cancel",deleteSuccess:"Deleted successfully",deleteFailed:"Deletion failed",selectDelScript:"Please choose to delete the script",batchDeleteHeader:"Batch Delete",batchDeleteBody:"Are you sure you want to delete the selected {count} scripts? This cannot be undone.",batchDeleteSuccess:"Batch deletion successful",extractingInProgress:"Extracting",projectNotFound:"Item not found",selectsExport:"Please choose to export the script"},add:{title:"Add Script",scriptName:"Script Name",scriptNamePh:"Please enter script name",uploadFile:"Upload File",dragUpload:"Drag and drop your script file here or click to upload",uploadHint:"Supports .txt, .docx. Recommended file size under 10MB",scriptContent:"Script Content",scriptContentPh:"Please upload or enter script content...",relatedAssets:"Related Assets",selectAssets:"Select Assets",noAssets:"No related assets",cancel:"Cancel",confirm:"Confirm",msg:{fileReadFailed:"Failed to read file",docNotSupported:".doc parsing is not supported. Please convert to .txt or .docx",unsupportedType:"Unsupported file type",fileTooLarge:"File exceeds 10MB. Please upload a smaller file",parsing:"Parsing file...",parseFailed:"Failed to parse file, please re-upload",selectAssetsTitle:"Select Related Assets",enterContent:"Please upload or enter script content",enterName:"Please enter script name",addSuccess:"Script added successfully",addFailed:"Failed to add script, please try again later"}},edit:{title:"Script Details",scriptName:"Script Name",scriptNamePh:"Please enter script name",scriptContent:"Script Content",scriptContentPh:"Please enter script content...",relatedAssets:"Related Assets",selectAssets:"Select Assets",noAssets:"No related assets",msg:{selectAssetsTitle:"Select Related Assets",updateSuccess:"Script updated successfully",updateFailed:"Failed to update script, please try again later"}},deleteScript:"Delete scripts in batches",extractAssets:""},assets:{addPrefix:"Add",batchGenerate:"Batch Generate",generatePrompt:"Generate Prompt",generateImage:"Generate Image",batchDelete:"Batch Delete",searchPlaceholder:"Search asset names...",search:"Search",preview:"Preview",generate:"Generate",edit:"Edit",delete:"Delete",generating:"Generating",play:"Play",mediaPreview:"Media Preview",confirmBatch:"Confirm {type}!",model:"Model",resolution:"Resolution",resolutionPh:"Please select a resolution",batchGenPrompt:"Batch Generate Prompts",batchGenImage:"Batch Generate Images",role:"Character",prop:"Prop",scene:"Scene",clip:"Clip",uploadSuccess:"Upload successful",selectAtLeastOne:"Please select at least one asset",noDescription:"No description",promptGenSuccess:'Prompt for "{name}" generated successfully',promptGenFail:'Prompt generation for "{name}" failed: {error}',selectModel:"Please select a model",selectResolution:"Please select a resolution",noPromptForImage:'"{name}" lacks a prompt; cannot generate image',imageGenSuccess:'Image for "{name}" generated successfully',imageGenFail:'Image generation for "{name}" failed: {error}',confirmDeleteHeader:"Confirm Deletion",confirmBatchDeleteBody:"Are you sure you want to batch delete these assets? This cannot be undone.",confirmDeleteBody:"Are you sure you want to delete this asset? This cannot be undone.",deleteBtn:"Delete",cancelBtn:"Cancel",deleteSuccess:"Asset deleted successfully",deleteFail:"Failed to delete asset",colPreview:"Preview",colName:"Name",colPrompt:"Prompt",colDescribe:"Description",colRemark:"Remarks",colCreateTime:"Created Time",colOperation:"Operation",add:{name:"Name",namePh:"Please enter name",describe:"Description",describePh:"Please enter description",remark:"Remarks",remarkPh:"Please enter remarks",prompt:"Prompt",promptPh:"Please enter prompt",nameRequired:"Please enter a name",describeRequired:"Please enter details",remarkRequired:"Please enter remarks",updateSuccess:"Asset updated successfully",addSuccess:"Asset added successfully"},gen:{header:"Image Generation",uploadRef:"Upload Reference Image",optional:"Optional",promptLabel:"Generation Prompt",smartGenerate:"Smart Generation",generatingPrompt:"Generating smart prompt...",promptPlaceholder:"Describe the image you want to generate. e.g., A futuristic city full of tech, neon lights blinking, cyberpunk style...",selectModel:"Select Model",selectResolution:"Select Resolution",generateBtn:"Generate Image",resultTitle:"Results",generatedCount:"{count} generated. Please select one",generatingLabel:"Generating...",genFailed:"Generation failed",confirmSelect:"Confirm Selection",promptSuccess:"Prompt generated successfully",promptFail:"Failed to generate prompt",fillPrompt:"Please enter a prompt",pickResolution:"Please select a resolution",pickModel:"Please select a model",unnamed:"Unnamed",assetGenSuccess:"Asset generated successfully",assetGenFail:"Asset generation failed",uploadOk:"Uploaded successfully",imageSelected:"Image selected",imageDeleted:"Image deleted",imageSaved:"Image saved",completed:"Completed"},batch:{header:"Batch Generation",selected:"Selected {count} items",selectAll:"Select All",clearSelection:"Clear Selection",inputPh:"Please enter content",saveSelected:"Save Selected ({count})",colPreviewImg:"Preview",selectToSave:"Please select items to save",saveSuccess:"Saved successfully",saveFail:"Failed to save, please try again",promptDone:"Prompt generation completed",promptFail:"Prompt generation failed",missingPrompts:"{count} assets are missing prompts. Please generate prompts first",imageDone:"Image generation completed",imageGenFail:"Image generation failed",unknownError:"Unknown error",promptGenCancelled:"Generation canceled"}},production:{selectPlaceholder:"Please select an episode",edit:"Edit",node:{script:{title:"Script",editDialog:"Edit Script"},scriptPlan:{title:"Shooting Plan",editDialog:"Edit Shooting Plan"},storyboard:{title:"Storyboard Panel",notGenerated:"Not Generated",scaleRatio:"Zoom Ratio",gridPreview:"Grid Preview",noPreviewImages:"No images available to preview",imageLoadFailed:"Failed to load image",promptPlaceholder:"Please enter the prompt word",prompt:"prompt word",editInfo:"Prompt word modification"},storyboardTable:{title:"Storyboard Table",editDialog:"Edit Storyboard Table"},assets:{title:"Derived Assets",generateFailed:"Generation failed",notGenerated:"Not Generated",originalAsset:"Original Asset",derived:"Derived",noDerivedAssets:"No derived assets"},poster:{title:"Video Cover",coverCount:"{count} Items"},workbench:{title:"Video Workbench"}},editImage:{upload:"Upload",generate:"Generate",saveFailed:"Save failed, please try again",fetchFailed:"Failed to fetch data",generating:"Generating...",deleteNode:"Delete Node",ratio:"Ratio",quality:"Quality",generateBtn:"Generate Image",selectImage:"Select Image",imageGeneration:"Image Generation",promptPlaceholder:"Describe the image you want to generate...",imageRef:"Image {index}",videoRef:"Video {index}",audioRef:"Audio {index}",reference:"Ref {index}",noReferences:"No reference images available",selectModel:"Please select a model first",selectQuality:"Please select a quality",selectRatio:"Please select a ratio",generateFailed:"Generation failed",generateFirst:"Please generate an image first",generatedResult:"Results",waitingGenerate:"Waiting...",layoutLR:"Auto Layout - Horizontal",layoutTB:"Auto Layout - Vertical",uploadAssetImage:"Upload Asset Image",uploadStoryboardImage:"Upload Storyboard Image",uploadImage:"Asset image upload",mode:"model",closeConfirmTitle:"Close the editing panel?",closeConfirmBody:"Unsaved data will be lost after closing"},save:"Select",cancel:"Cancel",chatBox:{inputPlaceholder:"Type a message...",generateDerivedAssets:"Generate Derived Assets",welcomeMessage:"Hello! I am your AI Assistant. How can I help you?",adjustModel:"Adjust Model",startMakingVideo:"Start Making Video",startMakingVideoPrompt:"Please help me start making a video",clearMessageMemory:"Clear Message Memory",clearSummaryMemory:"Clear Summary Memory",clearAllMemory:"Clear All Memory",messageMemory:"Message Memory",summaryMemory:"Summary Memory",allMemory:"All Memory",confirmClear:"Clear Memory",confirmClearBody:"Are you sure you want to clear {type}?",confirmClearBtn:"Confirm",memoryCleared:"{type} cleared"},wb:{quickPreview:"Quick Preview",videoGeneration:"Storyboard",videoEditing:"editing desk",hint:"Hint",extractLines:"Extract lines from video?",no:"No",confirm:"Yes",extractLinesQuestion:"Do you want to extract dialogue lines from the video as subtitles?",importingLoading:"Importing, please wait...",mainTrackVideo:"Main Track (Video)",subtitle1:"Subtitle 1",storyboardVideoName:"Storyboard Video-{storyboard}.mp4"},preview:{noImage:"No Image",storyboardDesc:"Storyboard Description",serialNumber:"No.",noDescription:"No Description",duration:"Duration",seconds:"s",relatedAssets:"Related Assets",role:"Character",prop:"Prop",scene:"Scene",noCharacters:"No characters appear",imagePrompt:"Image Prompt",selectAll:"Select All",exportImage:"Export Image",sceneDescription:"Scene Description",promptLabel:"Prompt",restoreSort:"Reset Sorting",restoreSortConfirm:"Are you sure you want to revert to the original sorting?",tip:"Tip",selectAtLeastOne:"Please select at least one storyboard to export",exportFilename:"Storyboard pictures"},generate:{noVideo:"No Video",videoPrompt:"Video Prompt",promptPlaceholder:"Enter prompt words to describe the video content you want to generate...",refImage:"Reference Image",image:"Image",refVideo:"Reference Video",refImageLabel:"Reference Image",refAudio:"Reference Audio",muteAudio:"Mute Audio",enableAudio:"Enable Audio",resolution:"Resolution",duration:"Duration",generate:"Generate",historyVersions:"History Versions",confirmSelection:"Confirm Selection",noHistory:"No history available",generating:"Generating",generatingPrompt:"Intelligent generation of prompt words",generateFailed:"Generation failed",selectAll:"Select All",videoTrack:"Video Track",batchGenerate:"Batch Generate",importToEditor:"Import to Editor",modeSingleImage:"Single Image",modeMultiImage:"Multi-Image",modeGridImage:"Grid Multi-Image",modeStartEnd:"Start & End Frames",modeText:"Text to Video",modeVideoRef:"Video Reference",modeImageRef:"Image Reference",modeAudioRef:"Audio Reference",modeTextRef:"Text Reference",startFrame:"Start Frame",startFrameOptional:"Start Frame (Optional)",endFrame:"End Frame",endFrameOptional:"End Frame (Optional)",selectRefImage:"Select Reference Image",selectRefImages:"Select Reference Images",selectEndFrame:"Select End Frame Image",selectRefVideoAsset:"Select Reference Video",selectRefAudioAsset:"Select Reference Audio",selectRefImageAsset:"Select Reference Image",selectImageSource:"Select Image Source",fromStoryboard:"Storyboard Image",fromStoryboardDesc:"Select image from storyboard list",fromAssets:"Asset Image",fromAssetsDesc:"Select image from asset library",confirmDelete:"Confirm Deletion",confirmDeleteBody:"Are you sure you want to delete this video? This cannot be undone.",delete:"Delete",cancel:"Cancel",deleteSuccess:"Video deleted successfully",deleteFailed:"Deletion failed",selectVideoFirst:"Please select a video first",confirmSuccess:"Selection confirmed",batchSubmitted:"Batch generation request submitted. Processing...",configNotFound:"Configuration not found",pollingFailed:"Video status query failed, please refresh manually",batchGeneratePrompt:"Generate prompt words in batches",promptEmpty:"Please enter a video prompt first",modelEmpty:"Please select a video generation model first",batchPromptEmpty:`Storyboard {name} is available for video prompts. Please create or fill in the prompt first`,batchModelEmpty:"Storyboard {names} has no model configured. Please select a model first"},editVideo:{reset:"Reset",undo:"Undo",redo:"Redo",split:"Split",delete:"Delete",rendering:"Rendering...",exportVideo:"Export Video",exportSuccess:"Video export completed",exportFailed:"Export failed",sampleSubtitle:"Sample Subtitle Text",customText:"Custom Text Content",transitionBetweenClips:"Transitions must be added between two adjacent clips",transitionExists:"A transition already exists at this location",videoPreviewArea:"Video Preview Area",clipMaterials:"Clip Materials",propertyPanel:"Properties Panel",selectClip:"Select a clip to view properties",basicInfo:"Basic Info",name:"Name",clipNamePlaceholder:"Clip Name",startTime:"Start",endTime:"End",totalDuration:"Total Duration",videoProperties:"Video Properties",opacity:"Opacity",volume:"Volume",playbackSpeed:"Playback Speed",audioProperties:"Audio Properties",fadeIn:"Fade In",fadeOut:"Fade Out",transitionProperties:"Transition Properties",transitionType:"Transition Type",transFade:"Fade",transSlide:"Slide",transWipe:"Wipe",transDissolve:"Dissolve",transZoom:"Zoom",transRotate:"Rotate",transitionDuration:"Transition Duration",subtitleProperties:"Subtitle Properties",textContent:"Text Content",fontSize:"Font Size",copy:"Copy",deleteConfirm:"Confirm Deletion",deleteClipConfirm:"Are you sure you want to delete this clip?",avCanvasNotInit:"AVCanvas not initialized",noExportContent:"No content to export",exportProject:"Export Project",transitionAdded:"Transition added: {name}",splitClip:"Split Clip",deleteClip:"Delete Clip",addClip:"Add {name}",duplicateClip:"Duplicate Clip",addTransition:"Add Transition",updateClip:"Update Clip {key}",updatePlaybackRate:"Update Playback Rate to {rate}x",updateTransitionDuration:"Update Transition Duration",playbackRateRange:"Playback rate must be between 0.1 and 10",updatePlaybackRateFailed:"Failed to update playback rate:",importProject:"Import Project",import:"Import"},clipType:{video:"Video",audio:"Audio",subtitle:"Subtitle",transition:"Transition",sticker:"Sticker",filter:"Filter",effect:"Effect"},track:{video:"Video",image:"Image",audio:"Audio",subtitle:"Subtitle",text:"Text",sticker:"Sticker",filter:"Filter",effect:"Effect"},transition:{fade:"Fade",slide:"Slide",slideLeft:"Slide Left",slideRight:"Slide Right",slideUp:"Slide Up",slideDown:"Slide Down",wipe:"Wipe",wipeLeft:"Wipe Left",wipeRight:"Wipe Right",wipeUp:"Wipe Up",wipeDown:"Wipe Down",dissolve:"Dissolve",zoom:"Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotate:"Rotate",circle:"Circle",diamond:"Diamond",clock:"Clock",blur:"Blur"},media:{titleText:"Title Text",subtitleText:"Subtitle Text",customText:"Custom Text",media:"Media",image:"Image",audio:"Audio",subtitle:"Subtitle",transition:"Transition",effect:"Effect",filter:"Filter",loading:"Loading...",subtitlePreview:"Text",video:"video"},effect:{fadeIn:"Fade In",fadeOut:"Fade Out",flash:"Flash",shake:"Shake",zoomIn:"Zoom In",zoomOut:"Zoom Out",pulse:"Pulse",rotateIn:"Rotate In",sticker1:"Sticker 1",sticker2:"Sticker 2"},filter:{grayscale:"Grayscale",sepia:"Sepia",warm:"Warm",cool:"Cool",vivid:"Vivid",bright:"Bright",highContrast:"High Contrast",blur:"Blur",invert:"Invert",semiTransparent:"Semi-Transparent"},guideSwitchEpisode:"Switch Episodes",guideSwitchEpisodeBody:"Switching episodes has been moved here!",guideRefresh:"Refresh Data",guideRefreshBody:"Click the refresh button to reload workspace data",guideCanvasNav:"Canvas Navigation",guideCanvasNavBody:"Scroll to pan vertically, Ctrl + Scroll to zoom, drag with left mouse button to pan freely",guideRightChat:"AI Chat",guideRightChatBody:"Chat with AI in the right panel to drive automated workflows",guideLayoutBtn:"Auto Layout",guideLayoutBtnBody:"Click this button to automatically arrange node layout",autoLayoutLR:"Automatic typesetting-left and right layout",autoLayoutTB:"Automatic typesetting-top and bottom layout",getFlowData:"Refresh workspace",confirm:"Switch episode confirmation",confirmEpisodesSwitch:"The current task is still in progress. Switching episodes will reconnect the session. Do you want to continue switching?"},task:{title:"Task List",subtitle:"Your latest task execution records",refresh:"Refresh",categoryLabel:"Task Category:",stateLabel:"Status:",noFailReason:"No failure reason",stateAll:"All",stateRunning:"Running",stateCompleted:"Completed",stateFailed:"Failed",fetchFailed:"Failed to fetch task list",col:{taskClass:"Task Category",relatedObjects:"Related Objects",model:"Model",describe:"Description",state:"Status",startTime:"Time",reason:"Reason for failure"},project:"Project name:"},noVideo:"No video yet",prompt:"Video prompt words",generateText:"AI generated prompt words",selectStoryboard:"Select storyboard",generate:{noVideo:"No video yet",generateText:"AI generated prompt words",selectStoryboard:"Select storyboard",generate:"Generate video",history:"Historical version",generating:"Generating",generateFailed:"fail",selectAll:"Select all",selected:"Selected",batchGenerateText:"Generate prompt words in batches",batchGenerateVideo:"Generate videos in batches",importVideo:"Import to editing desk",emptyTrack:"Paragraph {index 1}",del:"delete",delConfirm:"Are you sure you want to delete this paragraph?",selectSource:"Select source",confirm:"Select from assets",cancel:"Select from storyboard",selectVideoFailed:"Video selection failed",selectVideoSuccess:"Video selection successful",selectTrackFirst:"Please select the storyboard first",noSelectedVideo:"No videos selected",generateConfirm:"Confirm generation",generateConfirmBody:"Confirm to generate video",generateVideosInBatches:"Generate videos in batches",generateStarted:"Build starts",skipDataWithEmptyVideoPromptWords:"The video data that needs to be generated exists and the prompt word is empty.",duration:"duration",resolution:"resolution",delVideo:"Confirm to delete this video?",delSuccess:"Delete successfully",addReference:"add reference",promptPlaceholder:"Please enter the video prompt word",downloadVideo:"Download videos in batches",selectVideo:"Please check the video you want to download"}},WCi={slogan:"Intelligent Short Drama Creation Platform",tips:"Default Account: admin / admin123",settings:"Server Settings",requestAddress:"Request URL",username:"Username",password:"Password",login:"Login",usernameRequired:"Please enter username",passwordRequired:"Please enter password",enterUsernameAndPassword:"Please enter username or password",loginSuccess:"Login successful",settingsSaved:"Settings saved"},VCi={prompt:"prompt word"},zCi={welcomeTitle:"Welcome to ToonFlow",welcomeDesc:"AI-driven comic creation workflow platform, let us spend a minute to complete the initial configuration.",startConfig:"Start configuration",skip:"Skip boot",configModel:"Add model service",configData:"Configure Agent",startUse:"Get started",configModelTitle:"Add model service provider",configModelDesc:"First, you need to add at least one AI model service provider (such as OpenAI, Claude, etc.) in the settings and fill in the corresponding API Key.",configModelTip:'Clicking the button below will open the "Model Service" tab of the settings page. After adding the supplier, return here to continue.',configModelBtn:"Go to configure model service",configAgentTitle:"Assign Agent Model",configAgentDesc:"Next, assign models to each functional module in the Agent configuration so that the system knows which model to call to complete the task.",configAgentTip:'Clicking the button below will open the "Agent Configuration" tab of the settings page. Return here after assigning models to each function.',configAgentBtn:"Go to configure Agent",finishTitle:"🎉 Everything is ready!",finishDesc:`The configuration is complete and now you can start using all the features. -If you need to adjust it, you can modify it in the settings at any time.`,qrcodeLabel:"Join the WeChat communication group to get more help:",githubLabel:"If you find it useful, please give us a ⭐ Star!",prevStep:"Previous step",nextStep:"Next step",finish:"Get started"},HCi={skillManagement:{search:"Search file name",empty:"No matching files",edit:"edit",selectOnTheLeft:"Please select a file from the left"}},$Ci={assets:{notExist:"Asset does not exist",notDerivativeExist:"Derivative assets do not exist",derivativeUpdateSuccess:"Update successful",derivativeState:"Not generated",derivativeAddSuccess:"Added successfully",derivativeDelSuccess:"Delete successfully",notGenerated:"Not generated"},addSuccess:"Update successful",state:{unused:"Not generated"},saveSuccess:"Added successfully"},XCi={generating:"Generating"},GCi={scanning:"🔍 Parsing and loading Skill",scanComplete:"✨ Skill Scan Complete",inserted:"✅ Added {count} Skills",updated:"🔄 {count} Skill(s) updated",removed:"🗑️ {count} Skill(s) removed",scannedFiles:"📁 Scanned {count} files",noDescription:"📝 {count} Skill(s) missing description",noAttribution:"👤 {count} Skill(s) missing attribution",configWarning:"⚠️ Skill Config Warning",openSettings:"Open Settings",scanFailed:"❌ Scan Failed",checkNetwork:"🔌 Please check network connection or try again later",retryLater:"🔁 Please try again later"},YCi="Generate video",ZCi="Historical version",qCi="Generating",KCi="fail",JCi="Select all",e_i="Selected",t_i="Import video",n_i="Paragraph {index 1}",i_i="Confirm deletion",r_i="Are you sure you want to delete this paragraph?",o_i="Select source",s_i="Select from assets",a_i="Select from storyboard",l_i={newVersion:"There is a new version, do you want to update it?"},c_i={components:NCi,settings:UCi,workbench:jCi,login:WCi,"components.storyboardImageCheck.camera":"Camera","components.storyboardImageCheck.dialogTitle":"Select Storyboard Image","components.storyboardImageCheck.preview":"Preview","components.storyboardImageCheck.src":"Preview Image","components.storyboardImageCheck.title":"Title","components.storyboardImageCheck.duration":"Duration","components.storyboardImageCheck.lines":"Lines","components.storyboardImageCheck.createTime":"Created Time","workbench.script.extractAssets":"Extract Assets",promptManage:VCi,hello:zCi,setting:HCi,storyboard:$Ci,productionAgent:XCi,skillScan:GCi,generate:YCi,history:ZCi,generating:qCi,generateFailed:KCi,selectAll:JCi,selected:e_i,importVideo:t_i,emptyTrack:n_i,del:i_i,delConfirm:r_i,selectSource:o_i,confirm:s_i,cancel:a_i,"workbench.script.msg.selectExport":"","workbench.script.msg.exportFailed":"Export failed","workbench.production.node.assets.confirmDeleteBody":"Confirm whether to delete the asset","workbench.production.node.assets.removeFailed":"Failed to delete asset",version:l_i,"workbench.production.generatedNode.localUpload":"Local upload","workbench.production.editImage.uploadFailed":"Image upload failed","workbench.production.editImage.noImage":"Please add pictures first"},d_i={editMdPreivew:{title:"แก้ไข",confirm:"บันทึก",cancel:"ยกเลิก"},imageTools:{copy:"คัดลอกรูปภาพ",preview:"ดูตัวอย่าง",download:"ดาวน์โหลด",msg:{imageLoadFailed:"โหลดรูปภาพล้มเหลว",convertFailed:"แปลงไฟล์ล้มเหลว",copied:"คัดลอกไปยังคลิปบอร์ดแล้ว",copyFailed:"คัดลอกล้มเหลว",downloadFailed:"ดาวน์โหลดล้มเหลว",downloadStarted:"เริ่มการดาวน์โหลด",downloadBlockedOpenNewWindow:"แหล่งที่มารูปภาพปัจจุบันอาจจำกัดการดาวน์โหลด ระบบได้ลองเปิดในหน้าต่างใหม่แล้ว"}},migrateShow:{title:"ย้ายข้อมูล",desc:"ตรวจพบว่าคุณมีข้อมูลจากเวอร์ชันเก่า ต้องการย้ายข้อมูลหรือไม่?",hide:"ไม่ต้องแสดงอีก",confirm:"ตกลง",msg:{migrateSuccess:"ย้ายข้อมูลสำเร็จ",migrateFailed:"ย้ายข้อมูลล้มเหลว"}},modelSelect:{placeholder:"โปรดเลือกโมเดล",type:{image:"รูปภาพ",text:"ข้อความ",video:"วิดีโอ"},msg:{fetchModelFailed:"ดึงข้อมูลโมเดลล้มเหลว:"},goSetting:"ไปที่การตั้งค่าและเพิ่มโมเดล"}},u_i={title:"การตั้งค่า ToonFlow",menu:{language:"ตั้งค่าภาษา",vendorConfig:"บริการโมเดล",agentConfig:"การตั้งค่า Agent",promptManage:"การจัดการพรอมต์",skillManagement:"จัดการซิลเลคต",memoryConfig:"หน่วยความจำ Agent",loginConfig:"การตั้งค่าเข้าสู่ระบบ",dbConfig:"จัดการฐานข้อมูล",fileManagement:"จัดการไฟล์",otherConfig:"การตั้งค่าอื่นๆ",requestConfig:"ที่อยู่คำขอ (API URL)",about:"ตรวจสอบการอัปเดต",logoutConfig:"ออกจากระบบ",skillsSkillsManagement:"การจัดการทักษะทักษะ"},language:{desc:"เลือกภาษาที่แสดงบนอินเทอร์เฟซ",msg:{saved:"บันทึกการตั้งค่าภาษาแล้ว"}},vendor:{addVendor:"เพิ่มผู้ให้บริการ",noVendor:"ยังไม่มีผู้ให้บริการ โปรดเพิ่มก่อน",required:"จำเป็น",optionalSection:"ตัวเลือกเสริม",modelSettings:"การตั้งค่าโมเดล",addManually:"เพิ่มด้วยตนเอง",test:"ทดสอบ",edit:"แก้ไข",delete:"ลบ",deleteVendor:"ลบผู้ให้บริการ",editCode:"แก้ไขโค้ด",updateConfig:"อัปเดตการตั้งค่า",addModel:"เพิ่มโมเดล",editModel:"แก้ไขโมเดล",displayName:"ชื่อที่แสดง",displayNamePlaceholder:"ตัวอย่างเช่น: GPT-4o",modelId:"รหัสโมเดล (Model ID)",modelIdPlaceholder:"ตัวอย่างเช่น: gpt-4o",modelType:"ประเภทโมเดล",multimodal:"มัลติโมดัล (Multimodal)",supported:"รองรับ",notSupported:"ไม่รองรับ",toolCall:"การเรียกใช้เครื่องมือ",imageMode:"โหมดรูปภาพ",videoMode:"โหมดวิดีโอ",audioOutput:"เอาต์พุตเสียง",durationResolution:"การจับคู่ความยาว / ความละเอียด",durationSec:"ความยาว (วินาที)",resolution:"ความละเอียด",enterAndPress:"พิมพ์แล้วกด Enter",addDurationResolution:"เพิ่มชุดความยาว / ความละเอียด",testResult:"ผลการทดสอบ",generating:"กำลังสร้าง...",addVendorDialog:"เพิ่มผู้ให้บริการ",codeEditorInfo:"โปรดเขียนโค้ด TypeScript เพื่อตั้งค่าข้อมูลผู้ให้บริการ",reset:"รีเซ็ต",importFile:"นำเข้าไฟล์",textModel:"โมเดลข้อความ",imageModel:"โมเดลรูปภาพ",videoModel:"โมเดลวิดีโอ",textToImage:"สร้างภาพจากข้อความ",textToVideo:"สร้างวิดีโอจากข้อความ",singleImage:"รูปภาพเดียว",multiImage:"โหมดหลายรูปภาพ",multiReference:"อ้างอิงหลายรูปภาพ",gridImage:"รูปภาพกริดเดียว",startEndRequired:"เฟรมแรกและสุดท้าย (จำเป็นต้องระบุทั้งสอง)",endFrameOptional:"เฟรมแรกและสุดท้าย (เฟรมสุดท้ายระบุหรือไม่ก็ได้)",startFrameOptional:"เฟรมแรกและสุดท้าย (เฟรมแรกระบุหรือไม่ก็ได้)",textRef:"ข้อความ",imageRef:"รูปภาพ",videoRef:"วิดีโอ",audioRef:"เสียง",audioOptional:"ตัวเลือก",audioOnly:"ส่งออกเฉพาะวิดีโอที่มีเสียง",noAudio:"ส่งออกเฉพาะวิดีโอที่ไม่มีเสียง",msg:{getVendorListFailed:"ดึงรายการผู้ให้บริการล้มเหลว",vendorConfigUpdated:"อัปเดตการตั้งค่าผู้ให้บริการแล้ว",updateFailed:"อัปเดตล้มเหลว",highRiskConfirm:"⚠️ ยืนยันการดำเนินการที่มีความเสี่ยงสูง",addVendorRiskBody:"การเพิ่มผู้ให้บริการ AI รายใหม่จะให้สิทธิ์ในการเข้าถึง API ของระบบ โปรดยืนยันว่าคุณเชื่อถือแหล่งที่มาของโค้ดจากผู้ให้บริการรายนี้!",iKnowRisk:"ฉันรับทราบความเสี่ยง",cancel:"ยกเลิก",confirmAgain:"⚠️ ยืนยันอีกครั้ง",addVendorConfirmBody:"คุณแน่ใจหรือไม่ว่าต้องการเพิ่มผู้ให้บริการรายนี้? หลังจากเพิ่มแล้ว ระบบจะนำไปใช้ในการจัดสรรโมเดล",confirmAndAdd:"ยืนยันและเพิ่ม",goBackCheck:"กลับไปตรวจสอบ",vendorAdded:"เพิ่มผู้ให้บริการสำเร็จแล้ว",addFailed:"เพิ่มล้มเหลว",updateVendorRiskBody:"การอัปเดตการตั้งค่าผู้ให้บริการ AI จะปรับเปลี่ยนสิทธิ์และพฤติกรรมการเข้าถึง API ของระบบ โปรดยืนยันว่าคุณเชื่อถือแหล่งที่มาของโค้ดที่ถูกแก้ไขนี้!",updateVendorConfirmBody:"คุณแน่ใจหรือไม่ว่าต้องการอัปเดตการตั้งค่าผู้ให้บริการนี้? การอัปเดตจะมีผลต่อการจัดสรรโมเดลของระบบ",confirmAndUpdate:"ยืนยันและอัปเดต",updateSuccess:"อัปเดตการตั้งค่าผู้ให้บริการสำเร็จ",fillDisplayName:"โปรดกรอกชื่อที่แสดง",fillModelId:"โปรดกรอกรหัสโมเดล",selectImageMode:"โปรดเลือกโหมดรูปภาพ",selectVideoMode:"โปรดเลือกโหมดวิดีโอ",groupPrefix:"กลุ่มที่ {n}:",addDuration:"โปรดเพิ่มความยาว",addResolution:"โปรดเพิ่มความละเอียด",selectVendorFirst:"โปรดเลือกผู้ให้บริการก่อน",modelIdExists:"รหัสโมเดลนี้มีอยู่แล้ว",modelAdded:"เพิ่มโมเดลสำเร็จแล้ว",modelUpdated:"อัปเดตโมเดลสำเร็จแล้ว",enterApiKey:"โปรดกรอก API KEY",enterApiUrl:"โปรดกรอก API URL",testSuccess:"ทดสอบสำเร็จ",imageGenSuccess:"สร้างรูปภาพสำเร็จ",videoGenSuccess:"สร้างวิดีโอสำเร็จ",requestFailed:"ส่งคำขอล้มเหลว",deleteModelConfirm:"ยืนยันการลบโมเดล",deleteModelBody:"หลังจากลบแล้วจะไม่สามารถกู้คืนได้ ต้องการดำเนินการต่อหรือไม่?",confirmDelete:"ยืนยันการลบ",modelDeleted:"ลบโมเดลแล้ว",deleteVendorConfirm:"ยืนยันการลบผู้ให้บริการ",deleteVendorBody:"หลังจากลบแล้ว โมเดลทั้งหมดภายใต้ผู้ให้บริการรายนี้จะถูกลบไปด้วย ต้องการดำเนินการต่อหรือไม่?",vendorDeleted:"ลบผู้ให้บริการแล้ว",deleteFailed:"ลบล้มเหลว",enabled:"เปิดใช้งานแล้ว",disabled:"พิการ",linkAddVendorRiskBody:"การเพิ่มผู้จำหน่าย AI ใหม่จะทำให้สามารถเข้าถึง API ระบบได้ โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อถือแหล่งลิงก์ของผู้ขาย!",importAdd:"การเพิ่มผู้จำหน่าย AI ใหม่จะทำให้สามารถเข้าถึง API ระบบได้ โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อถือแหล่งเอกสารประกอบของผู้ขาย!",linkAddFailed:"ไม่สามารถเพิ่มลิงก์"},associationSkills:"ทักษะที่เกี่ยวข้อง",think:"คิดลึก",code:"รหัส",linkAddPlaceholder:"ใส่ลิงค์เพื่อเพิ่ม",noFileSelected:"นำเข้าไฟล์เรียบร้อยแล้ว",linkAdd:"ยืนยัน"},agent:{bannerDesc:"ใช้เซิร์ฟเวอร์ตัวกลางอย่างเป็นทางการของ Toonflow รองรับการกรอกการตั้งค่าในคลิกเดียว พร้อมใช้งานทันทีโดยไม่ต้องตั้งค่าด้วยตนเอง",visitWebsite:"เข้าสู่เว็บไซต์",fillKey:"กรอก KEY",oneClickFill:"กรอกในคลิกเดียว",notOpen:"ยังไม่เปิดให้บริการ",notConfigured:"ยังไม่ได้ตั้งค่า",modelConfig:"การตั้งค่าโมเดล",confirm:"ยืนยัน",cancel:"ยกเลิก",selectModel:"เลือกโมเดล",fillKeyHeader:"กรอก KEY อย่างเป็นทางการจากแพลตฟอร์ม Toonflow",keyPlaceholder:"โปรดกรอก KEY",save:"บันทึก",msg:{notAvailable:"ฟีเจอร์นี้ยังไม่เปิดให้บริการ โปรดติดตามเร็วๆ นี้",configSuccess:"ตั้งค่าสำเร็จ",updateConfigFailed:"อัปเดตการตั้งค่าล้มเหลว:",keyValid:"KEY ถูกต้อง เชื่อมต่อกับแพลตฟอร์ม Toonflow สำเร็จแล้ว",keyInvalid:"KEY ไม่ถูกต้อง โปรดตรวจสอบและกรอกใหม่อีกครั้ง:",enterKey:"โปรดกรอก KEY",saveFailed:"บันทึกล้มเหลว:",getAgentListFailed:"ดึงรายการการตั้งค่า Agent ล้มเหลว:",toonflowNotFound:"ไม่มีสถานีรับส่งอย่างเป็นทางการของ Toonflow"}},memory:{warning:"รายการการตั้งค่าต่อไปนี้ถูกกำหนดล่วงหน้าเป็นค่าที่แนะนำ เว้นแต่คุณจะเข้าใจความหมายและผลกระทบของการตั้งค่าแต่ละรายการอย่างชัดเจน ขอแนะนำให้คงการตั้งค่าปัจจุบันไว้",vectorModelConfig:"การตั้งค่าโมเดลเวกเตอร์ (Vector Model)",modelFilePath:"เส้นทางไฟล์โมเดล",quantizationType:"ประเภท Quantization",quantizationPlaceholder:"โปรดกรอกประเภท Quantization",memoryParams:"พารามิเตอร์หน่วยความจำ",messagesPerSummary:"จำนวนข้อความที่จะทริกเกอร์การบีบอัด",messagesPerSummaryHelp:"เก็บบริบทของบทสนทนา N รายการล่าสุด",shortTermLimit:"จำนวนข้อความที่ยังไม่ถูกบีบอัดในการดึงข้อมูลครั้งเดียว",shortTermLimitHelp:"จำนวนหน่วยความจำที่เป็นไปได้ที่จะถูกส่งคืนเมื่อทำการค้นหา",summaryMaxLength:"จำนวนตัวอักษรสูงสุดในการบีบอัด",summaryMaxLengthHelp:"จำนวนตัวอักษรสูงสุดที่อนุญาตเมื่อทำการบีบอัดข้อความ",summaryLimit:"จำนวนข้อความที่ถูกบีบอัดที่อนุญาตให้สืบค้น",summaryLimitHelp:"จำนวนข้อความที่ถูกบีบอัดที่อนุญาตให้ทำการสืบค้นได้",ragLimit:"จำนวนหน่วยความจำในการค้นหา",ragLimitHelp:"จำนวนข้อความที่จะดึงมาเมื่อทำการค้นหา",deepRetrieveSummaryLimit:"จำนวนข้อความที่ถูกบีบอัดที่จะเรียกคืนด้วยเวกเตอร์",deepRetrieveSummaryLimitHelp:"จำนวนข้อความที่จะดึงมาเมื่อทำการค้นหาเนื้อหาของข้อความที่ถูกบีบอัด",saveConfig:"บันทึกการตั้งค่า",clearMemory:"ล้างหน่วยความจำ",restoreDefault:"กู้คืนการตั้งค่าเริ่มต้น",msg:{saved:"บันทึกการตั้งค่าหน่วยความจำแล้ว",clearConfirmTitle:"ยืนยันการล้างหน่วยความจำ",clearConfirmBody:"การดำเนินการนี้จะล้างข้อมูลหน่วยความจำทั้งหมดของ AI และไม่สามารถกู้คืนได้ ต้องการดำเนินการต่อหรือไม่?",confirmClear:"ยืนยันการล้าง",cancel:"ยกเลิก",cleared:"ล้างหน่วยความจำแล้ว",clearFailed:"ล้างหน่วยความจำล้มเหลว"}},login:{username:"ชื่อผู้ใช้",usernamePlaceholder:"โปรดกรอกชื่อผู้ใช้",password:"รหัสผ่าน",passwordPlaceholder:"โปรดกรอกรหัสผ่าน",modify:"แก้ไข",msg:{enterUsername:"โปรดกรอกชื่อผู้ใช้",usernameLength:"ความยาวชื่อผู้ใช้ต้องอยู่ระหว่าง 2-20 ตัวอักษร",enterPassword:"โปรดกรอกรหัสผ่าน",passwordLength:"ความยาวรหัสผ่านต้องอยู่ระหว่าง 6-20 ตัวอักษร",fetchFailed:"ดึงข้อมูลผู้ใช้ล้มเหลว",saveSuccess:"บันทึกสำเร็จ",saveFailed:"บันทึกล้มเหลว"}},db:{clearDb:"ล้างฐานข้อมูล",clearDbDesc:"ล้างข้อมูลทั้งหมดในตารางข้อมูล โดยคงไว้เพียงโครงสร้างตาราง",clearData:"ล้างข้อมูล",confirmAction:"ยืนยันการดำเนินการ",msg:{clearDbTitle:"ล้างฐานข้อมูล",firstConfirm:"แน่ใจหรือไม่ว่าต้องการล้างข้อมูลในตารางทั้งหมด? ข้อมูลที่ถูกล้างจะไม่สามารถกู้คืนได้!",secondConfirm:"นี่คือการยืนยันครั้งสุดท้าย หลังจากล้างแล้วข้อมูลทั้งหมดจะสูญหายถาวร!",keyword:"ล้างข้อมูล",confirm:"ยืนยัน",pleaseInput:"โปรดพิมพ์",cleared:"ตารางข้อมูลทั้งหมดถูกล้างเรียบร้อยแล้ว",operationFailed:"การดำเนินการล้มเหลว โปรดลองอีกครั้ง",cancelled:"ยกเลิกการดำเนินการแล้ว"}},other:{requestTimeout:"หมดเวลาคำขอ (Timeout)",seconds:"วินาที",inputSeconds:"โปรดกรอกเวลา (วินาที)",assetConcurrency:"จำนวนการสร้างสินทรัพย์พร้อมกัน (Concurrency)",count:"รายการ",inputCount:"โปรดกรอกจำนวนรายการ",chapterRegex:"นิพจน์ปกติสำหรับแยกตอน (Regex)",restoreDefault:"กู้คืนค่าเริ่มต้น",regexPlaceholder:"โปรดกรอกนิพจน์ปกติ (Regex)",showTitleBar:"แสดงแถบชื่อเรื่อง",isElectron:"สลับไปที่โหมดเดสก์ท็อป",canvasScroll:"เลื่อนผ้าใบ",canvasIsDisabled:"แคนวาสซูม",agentCanvasScalingMethod:"งานล้อผ้าใบตัวแทน",zoom:"ซูม",scroll:"เลื่อน",isInteracting:"การเพิ่มประสิทธิภาพการลากผ้าใบไม่จำกัดบนหน้าการผลิต",closeIsInteracting:"ปิด"},request:{warning:"หากไม่มีกรณีพิเศษ ไม่จำเป็นต้องแก้ไขหรือตั้งค่าใดๆ",apiAddress:"ที่อยู่ API",apiPlaceholder:"โปรดกรอกที่อยู่คำขอ API",save:"บันทึก",reset:"รีเซ็ต",msg:{enterApi:"โปรดกรอกที่อยู่ API",validUrl:"โปรดกรอกที่อยู่ HTTP/HTTPS ที่ถูกต้อง",saved:"บันทึกที่อยู่คำขอสำเร็จ",reset:"รีเซ็ตเป็นที่อยู่เริ่มต้นแล้ว",refreshFailed:"รีเฟรชล้มเหลว",refreshSuccess:"รีเฟรชสำเร็จ"},refresh:"รีเฟรช"},about:{slogan:"เครื่องมือสร้างการ์ตูน / สตอรี่บอร์ดที่ขับเคลื่อนด้วย AI แบบโอเพนซอร์ส",latestVersion:"นี่คือเวอร์ชันล่าสุด",checkUpdate:"ตรวจสอบการอัปเดต",codeRepository:"คลังเก็บโค้ด",githubRepo:"คลัง GitHub",giteeRepo:"คลัง Gitee",versionUpdate:"อัปเดตเวอร์ชัน",checkUpdateGithub:"ตรวจสอบการอัปเดต (GitHub)",getFromGithub:"รับเวอร์ชันล่าสุดจาก GitHub Release",checkUpdateGitee:"ตรวจสอบการอัปเดต (Gitee)",getFromGitee:"รับเวอร์ชันล่าสุดจาก Gitee Release",license:"ใบอนุญาต (License)",licenseDesc:"ข้อตกลงใบอนุญาตโอเพนซอร์ส · คลิกเพื่อดูรายละเอียด",updateAvailable:"พบเวอร์ชันใหม่แล้ว",upToDate:"ตรวจพบเวอร์ชันใหม่"},logout:{warning:"หลังจากออกจากระบบ คุณจะต้องเข้าสู่ระบบใหม่เพื่อใช้งานระบบต่อไป",confirmLogout:"แน่ใจหรือไม่ว่าต้องการออกจากระบบ?",logout:"ออกจากระบบ",msg:{logoutSuccess:"ออกจากระบบสำเร็จ",logoutFailed:"ออกจากระบบล้มเหลว โปรดลองอีกครั้ง"}},file:{quickOpen:"เปิดไดเรกทอรีอย่างรวดเร็ว",open:"เปิด",dockerDesc:'สำหรับการปรับใช้ Docker/แยกส่วนหน้าและส่วนหลัง โปรดไปที่ไดเรกทอรี "/data/*" เพื่อจัดการไฟล์ด้วยตนเอง',desktopOnly:"ฟีเจอร์นี้รองรับเฉพาะเวอร์ชันเดสก์ท็อปเท่านั้น",folders:{data:"data",dataDesc:"ไดเรกทอรีข้อมูล",logs:"data/logs",logsDesc:"บันทึกการทำงานและบันทึกข้อผิดพลาด",oss:"data/oss",ossDesc:"ทรัพยากรที่เกี่ยวข้องกับการจัดเก็บไฟล์",skills:"data/skills",skillsDesc:"ไฟล์การตั้งค่าทักษะ (Skills) และพรอมต์",models:"data/models",modelsDesc:"ไฟล์โมเดลและการตั้งค่า",web:"data/web",webDesc:"ทรัพยากรเว็บ เช่น ผลลัพธ์จากการบิลด์ส่วนหน้า เป็นต้น",serve:"data/serve",serveDesc:"ไฟล์ที่เกี่ยวข้องกับบริการส่วนหลัง"},openFailed:"เปิดโฟลเดอร์ล้มเหลว"},skill:{scanSkills:"สแกนทักษะ",fileLost:"ไฟล์หายไป"},dev:{warning:"ต่อไปนี้เป็นเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ โปรดดำเนินการด้วยความระมัดระวัง!",openDevtool:"เปิด",devtoolsDoc:"ที่อยู่เอกสาร",devtoolsDesc:"หลังจากเปิดใช้งานแล้ว โฟลเดอร์ .devtools จะถูกสร้างขึ้นในไดเร็กทอรีการติดตั้ง Toonflow โปรดตรวจสอบให้แน่ใจว่า Toonflow มีสิทธิ์ในการเขียน (ทำงานในฐานะผู้ดูแลระบบ)",devtoolsDesc2:"เรียกใช้ npx {'@'}ai-sdk/devtools ในไดเรกทอรีนี้เพื่อเปิดใช้งานการแก้ไขจุดบกพร่องการวัดและส่งข้อมูลทางไกล",openDevtoolFailed:"ไม่สามารถเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้ง Toonflow desktop แล้ว",notInElectron:"สำหรับสภาพแวดล้อมแบบเว็บ โปรดเปิดคอนโซลเบราว์เซอร์ด้วยตนเอง"}},h_i={selectProject:"โปรดเลือกโปรเจกต์",menu:{myProject:"โปรเจกต์ของฉัน",taskCenter:"ศูนย์งาน",novel:"ต้นฉบับนิยาย",scriptAgent:"Agent บทภาพยนตร์",scriptManage:"จัดการบทภาพยนตร์",cornerScape:"สร้างตัวละครและฉาก",production:"ผลิตวิดีโอ",assetCenter:"ศูนย์สินทรัพย์",settings:"การตั้งค่า",jumpGithub:"ข้ามไปที่ Github",feedbackQuestions:"คำถามคำติชม"},project:{title:"โปรเจกต์ของฉัน",subtitle:"จัดการโปรเจกต์ละครสั้นทั้งหมดของคุณ",newProject:"โปรเจกต์ใหม่",dialog:{editTitle:"แก้ไขโปรเจกต์",addTitle:"โปรเจกต์ใหม่",save:"บันทึก",ok:"ตกลง",cancel:"ยกเลิก",projectType:"ประเภทโปรเจกต์",selectType:"เลือกประเภทโปรเจกต์",basedOnNovel:"สร้างจากต้นฉบับนิยาย",projectName:"ชื่อโปรเจกต์",projectNamePh:"โปรดกรอกชื่อโปรเจกต์",novelType:"ประเภทนิยาย",novelTypePh:"ตัวอย่างเช่น: แฟนตาซี, ไซไฟ, โรแมนติก",artStyle:"คู่มือภาพ",selected:"เลือกแล้ว:",selectArtStyle:"โปรดเลือกคู่มือแบบภาพ",newArtStyle:"คู่มือภาพใหม่",loading:"กำลังโหลด...",videoRatio:"อัตราส่วนวิดีโอ",novelIntro:"เรื่องย่อนิยาย",novelIntroPh:"โปรดกรอกเรื่องย่อนิยาย",editArtStyleTitle:"แก้ไขคู่มือภาพ",newArtStyleTitle:"คู่มือภาพใหม่",artStyleName:"ชื่อคู่มือแบบภาพ",artStyleNamePh:"โปรดป้อนชื่อคู่มือแบบภาพ",artStyleImage:"ภาพปกคู่มือภาพ",remove:"ลบออก",uploadCover:"อัปโหลดภาพปก",artStylePrompt:"ภาพพร้อมคำคู่มือ",aiExtract:"AI สกัดพรอมต์",promptPlaceholder:"อธิบายคำพร้อมท์คู่มือแบบภาพ ซึ่งใช้เพื่อระบุคู่มือแบบภาพเมื่อสร้างภาพ",visualManual:"คู่มือภาพ",newVisualManual:"คู่มือภาพใหม่",editVisualManualTitle:"แก้ไขคู่มือภาพ",newVisualManualTitle:"คู่มือภาพใหม่",visualManualName:"ชื่อคู่มือภาพ",visualManualNamePh:"โปรดป้อนชื่อคู่มือภาพ",visualManualCover:"ภาพปกคู่มือภาพ",visualManualPrompt:"Prompt คู่มือภาพ",modelData:"เลือกรุ่นรูปภาพ",videoModelData:"เลือกรุ่นวิดีโอ",prompt:{placeholder:"ป้อนคำที่พร้อมท์",saveSuccess:"อัปเดตสำเร็จ",title:"คำพูดที่รวดเร็ว"},basedOnScript:"ขึ้นอยู่กับสคริปต์",mdFile:"ไฟล์คู่มือภาพ",directorManual:"คู่มือกรรมการ",addDirectorManual:"คู่มือกรรมการใหม่",editingDirectorManual:"แก้ไขคู่มือกรรมการ",newDirecorManualTitle:"คู่มือกรรมการใหม่",directorManualPrompt:"คำพร้อมท์คู่มือผู้อำนวยการ",directorManualName:"ชื่อคู่มือผู้อำนวยการ",directorManualNamePh:"กรอกชื่อคู่มือผู้อำนวยการ",directorFile:"เอกสารคู่มือผู้อำนวยการ",directorManualCover:"ปกคู่มือผู้อำนวยการ"},msg:{fetchFailed:"ดึงรายการโปรเจกต์ล้มเหลว",notFound:"ไม่พบโปรเจกต์นี้!",editSuccess:"แก้ไขโปรเจกต์สำเร็จ",editFailed:"แก้ไขโปรเจกต์ล้มเหลว",addSuccess:"สร้างโปรเจกต์สำเร็จ",addFailed:"สร้างโปรเจกต์ล้มเหลว",deleteHeader:"ลบโปรเจกต์",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบโปรเจกต์นี้?",deleteConfirm:"ลบ",deleteCancel:"ยกเลิก",deleteSuccess:"ลบโปรเจกต์สำเร็จ",deleteFailed:"ลบโปรเจกต์ล้มเหลว",extractSuccess:"สกัดพรอมต์สำเร็จ",extractFailed:"สกัดพรอมต์ล้มเหลว",enterArtStyleName:"โปรดป้อนชื่อคู่มือภาพ",artStyleUpdated:"อัปเดตคู่มือภาพแล้ว",artStyleAdded:"เพิ่มคู่มือภาพแล้ว",operationFailed:"การดำเนินการล้มเหลว",enterVisualManualName:"โปรดป้อนชื่อคู่มือภาพ",enterVisualManualImage:"โปรดอัปโหลดภาพปกคู่มือภาพ",enterVisualManualTabData:"Prompt ไม่สามารถว่างเปล่า",visualManualUpdated:"อัปเดตคู่มือภาพแล้ว",visualManualAdded:"เพิ่มคู่มือภาพแล้ว",deleteVisualManualHeader:"ลบคู่มือภาพ",deleteVisualManualBody:'คุณแน่ใจหรือไม่ว่าต้องการลบคู่มือภาพ "{name}"?',deleteVisualManualConfirm:"ลบ",deleteVisualManualCancel:"ยกเลิก",enterProjectName:"กรุณากรอกชื่อโครงการ",enterProjectIntro:"กรุณากรอกคำนำนวนิยาย",enterProjectType:"กรุณากรอกประเภทโครงการ",enterArtStyle:"โปรดเลือกโบรชัวร์ภาพโครงการ",enterVideoRatio:"โปรดเลือกอัตราส่วนวิดีโอ",enterImageModel:"กรุณาเลือกรุ่นรูปภาพ",enterVideoModel:"โปรดเลือกรุ่นวิดีโอ",visualManualDeleted:"ลบสำเร็จ",selectMode:"กรุณาเลือกโหมด",deleteDirectorManualHeader:"ลบคู่มือผู้อำนวยการ",deleteDirectorManualBody:'คุณแน่ใจหรือไม่ว่าต้องการลบคู่มือผู้อำนวยการ "{name}"?',directorManualUpdated:"ปรับปรุงคู่มือผู้อำนวยการแล้ว",directorManualAdded:"เพิ่มคู่มือผู้อำนวยการ",directorManual:"กรุณาเลือกคู่มือผู้อำนวยการโครงการ"},type:{novel:"อิงจากนวนิยายต้นฉบับ",script:"อิงจากบทนวนิยาย"}},novel:{importText:"นำเข้าต้นฉบับ",batchDelete:"ลบเป็นชุด",eventAnalysis:"วิเคราะห์เหตุการณ์",searchPlaceholder:"ค้นหาชื่อต้นฉบับ...",search:"ค้นหา",generating:"กำลังสร้าง...",genFailed:"สร้างล้มเหลว",none:"ไม่มี",edit:"แก้ไข",delete:"ลบ",col:{id:"ลำดับ",reel:"เล่ม",chapter:"ชื่อบท",chapterData:"เนื้อหาในบท",event:"เหตุการณ์",operation:"การจัดการ"},msg:{batchDeleteHeader:"ลบเป็นชุด",batchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบข้อมูลที่เลือกจำนวน {count} รายการ?",batchDeleteSuccess:"ลบเป็นชุดสำเร็จ",deleteHeader:"ยืนยันการลบ",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบข้อมูลบทที่ชื่อว่า「{name}」?",deleteSuccess:"ลบสำเร็จ",eventAnalysisHeader:"วิเคราะห์เหตุการณ์",eventAnalysisBody:"แน่ใจหรือไม่ว่าต้องการวิเคราะห์เหตุการณ์ข้อมูลที่เลือกจำนวน {count} รายการ?"},import:{title:"อัปโหลดต้นฉบับนิยาย",step1:"ขั้นตอนที่ 1",step2:"ขั้นตอนที่ 2",step3:"ขั้นตอนที่ 3",dragUpload:"ลากไฟล์ต้นฉบับนิยายมาที่นี่ หรือคลิกเพื่ออัปโหลด",uploadHint:"รองรับรูปแบบ .txt, .docx แนะนำให้มีขนาดไฟล์ไม่เกิน 10MB",or:"หรือ",pasteLabel:"วางเนื้อหาต้นฉบับนิยายโดยตรง",pastePlaceholder:"โปรดกรอกเนื้อหาต้นฉบับนิยาย",chars:"ตัวอักษร",tooShort:"เนื้อหาสั้นเกินไป แนะนำให้อย่างน้อย 100 ตัวอักษร",parsedChapters:"แยกวิเคราะห์แล้ว {count} บท",nextStep:"ขั้นตอนถัดไป",prevStep:"ขั้นตอนก่อนหน้า",selectedInfo:"เลือกแล้ว: {count} ตัวอักษร (ต้องน้อยกว่า 200,000 ตัวอักษร)",eventAnalysis:"วิเคราะห์เหตุการณ์",saveAndAnalyze:"บันทึกต้นฉบับและวิเคราะห์เหตุการณ์",col:{chapter:"บท",reel:"เล่ม",chapterName:"ชื่อบท",chapterData:"เนื้อหาในบท"},msg:{parseFailed:"แยกวิเคราะห์ไฟล์ล้มเหลว โปรดอัปโหลดใหม่อีกครั้ง",selectFile:"เลือกไฟล์",docNotSupported:"ไฟล์ .doc ไม่รองรับการแยกวิเคราะห์ โปรดแปลงเป็นไฟล์ .ts",unsupportedType:"ไม่รองรับประเภทไฟล์นี้",fileTooLarge:"ไฟล์มีขนาดเกิน 10MB โปรดอัปโหลดไฟล์ขนาดเล็กกว่านี้",selectChapters:"โปรดทำเครื่องหมายเลือกบทก่อน",saveSuccess:"บันทึกต้นฉบับนิยายสำเร็จ"},importAdd:"ลากและวางไฟล์ที่นี่หรือคลิกเพื่ออัปโหลด",limit:"รองรับรูปแบบ .ts"},editDialog:{title:"แก้ไขต้นฉบับนิยาย",chapterName:"ชื่อบท",chapterNamePh:"โปรดกรอกชื่อบท",eventContent:"เนื้อหาเหตุการณ์",eventContentPh:"กรอกเนื้อหาเหตุการณ์",chapterContent:"เนื้อหาในบท",chapterContentPh:"โปรดกรอกเนื้อหาในบท",cancel:"ยกเลิก",save:"บันทึก",msg:{updateSuccess:"อัปเดตต้นฉบับนิยายสำเร็จ"}},event:{regenerate:"สร้างเหตุการณ์ใหม่",batchDelete:"ลบเป็นชุด",noData:"ยังไม่มีข้อมูลเหตุการณ์ คลิกเพื่อเริ่มสร้าง",generate:"สร้างเหตุการณ์",generatingHint:"กำลังสร้างเหตุการณ์ โปรดรอสักครู่...",loading:"กำลังโหลด...",delete:"ลบ",col:{id:"ID เหตุการณ์",eventName:"ชื่อเหตุการณ์",chapters:"บทที่มา",detail:"ขั้นตอนเหตุการณ์",createTime:"เวลาที่สร้าง",operation:"การจัดการ"},msg:{deleteHeader:"ลบเหตุการณ์",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบเหตุการณ์นี้?",deleteSuccess:"ลบสำเร็จ",generateSuccess:"สร้างเหตุการณ์สำเร็จ",batchDeleteHeader:"ลบเป็นชุด",batchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบข้อมูลที่เลือกจำนวน {count} รายการ?",batchDeleteSuccess:"ลบเป็นชุดสำเร็จ"}},analysis:{analyzeFirst:"โปรดวิเคราะห์เหตุการณ์ก่อน",startAnalysis:"เริ่มวิเคราะห์",chapterHeader:"บทที่ {index} - {name}",analyzing:"กำลังวิเคราะห์เหตุการณ์"}},scriptAgent:{inputPlaceholder:"โปรดกรอกเนื้อหา",chapterEvents:"เหตุการณ์ในบท",clearMessageMemory:"ล้างหน่วยความจำข้อความ",clearSummaryMemory:"ล้างหน่วยความจำสรุป",clearAllMemory:"ล้างหน่วยความจำทั้งหมด",edit:"แก้ไข",storySkeleton:"โครงเรื่อง",adaptationStrategy:"กลยุทธ์การดัดแปลง",script:"บทภาพยนตร์",noContent:"ยังไม่มีเนื้อหา",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",editScript:"แก้ไขบทภาพยนตร์",save:"บันทึก",scriptTitle:"ชื่อเรื่อง",titlePlaceholder:"โปรดกรอกชื่อเรื่อง",content:"เนื้อหา",contentPlaceholder:"โปรดกรอกเนื้อหาบทภาพยนตร์",selectAssets:"เลือกสินทรัพย์",noAssets:"ยังไม่ได้เชื่อมโยงสินทรัพย์",selectAssetsTitle:"เลือกสินทรัพย์ที่เกี่ยวข้อง",welcomeMsg:"สวัสดี! ฉันคือผู้ช่วยอัจฉริยะ Toonflow ต้องการให้ฉันเริ่มสร้างบทภาพยนตร์ให้คุณเลยไหม?",start:"เริ่มต้น",memoryType:{message:"หน่วยความจำข้อความ",summary:"หน่วยความจำสรุป",all:"หน่วยความจำทั้งหมด"},msg:{clearConfirm:"ยืนยันการล้าง",clearBody:"แน่ใจหรือไม่ว่าต้องการล้าง{type}? การดำเนินการนี้ไม่สามารถยกเลิกได้",confirmClear:"ยืนยันการล้าง",cancel:"ยกเลิก",memoryCleared:"ล้าง{type}แล้ว",scriptUpdated:"อัปเดตบทภาพยนตร์สำเร็จ",scriptUpdateFailed:"อัปเดตบทภาพยนตร์ล้มเหลว โปรดลองอีกครั้งในภายหลัง",searchScriptFailed:"ค้นหาบทภาพยนตร์ล้มเหลว",updated:"บันทึกเรียบร้อยแล้ว",error:"บันทึกล้มเหลว",reconnect:"เชื่อมต่อใหม่",notReconnect:"ยืนยันว่าการสนทนาการเชื่อมต่อใหม่จะถูกตัดออกหรือไม่",keepReconnect:"ยืนยัน",deleteConfirm:"ลบการยืนยัน",deleteBody:"ลบข้อความ",confirmDelete:"ยืนยันการลบ",scriptDeleted:"ลบสคริปต์แล้ว"},reconnect:"เชื่อมต่อใหม่"},cornerScape:{batchSettings:"การตั้งค่าการสร้างเป็นชุด",quickActions:"คำสั่งด่วน",selectUngenerated:"เลือกรายการที่ยังไม่สร้างทั้งหมด",selectGenerated:"เลือกรายการที่สร้างแล้วทั้งหมด",selectFailed:"เลือกรายการที่เกิดข้อผิดพลาดทั้งหมด",invertSelection:"สลับการเลือก",clearSelection:"ยกเลิกการเลือก",batchPreview:"ดูตัวอย่างรูปภาพเป็นชุด",assetTypeFilter:"กรองตามประเภทสื่อ",genModel:"โมเดลการสร้าง",resolution:"ความละเอียด",resolutionPh:"โปรดเลือกความละเอียด",concurrency:"จำนวนที่สร้างพร้อมกัน",concurrencyPh:"โปรดกรอกจำนวนที่สร้างพร้อมกัน",startBatch:"เริ่มสร้างภาพเป็นชุด",waitingGen:"รอการสร้าง",generating:"กำลังสร้าง",genFailed:"สร้างล้มเหลว",imageError:"รูปภาพมีข้อผิดพลาด",typeRole:"ตัวละคร",typeScene:"ฉาก",typeTool:"เครื่องมือ",typeUnknown:"ไม่ทราบ",descriptionSuffix:"คำอธิบาย:",operateScriptFirst:"โปรดจัดการบทภาพยนตร์ก่อน",individualConfig:"ตั้งค่าแบบแยกเดี่ยว",noImage:"ยังไม่มีรูปภาพ",promptLabel:"พรอมต์",promptPh:"โปรดกรอกพรอมต์",aiPolish:"ใช้ AI ขัดเกลาข้อความ",regenerate:"สร้างใหม่",filterRole:"ตัวละคร",filterScene:"ฉาก",filterTool:"อุปกรณ์ประกอบฉาก",unnamed:"ไม่ได้ตั้งชื่อ",noDescription:"ไม่มีคำอธิบาย",msg:{selectModel:"โปรดเลือกโมเดลการสร้าง",selectResolution:"โปรดเลือกความละเอียด",enterPrompt:"โปรดกรอกพรอมต์",enterPromptFirst:"โปรดกรอกพรอมต์ก่อน",genSuccess:"สร้าง {name} สำเร็จ",genFailed:"สร้าง {name} ล้มเหลว",promptGenSuccess:"สร้างพรอมต์สำเร็จ",polishFailed:"ขัดเกลาข้อความล้มเหลว โปรดลองอีกครั้ง",selectAtLeastOne:"โปรดเลือกสินทรัพย์อย่างน้อยหนึ่งรายการเพื่อสร้างเป็นชุด",batchStarted:"เริ่มการสร้างเป็นชุดแล้ว จำนวน {count} รายการ ทำพร้อมกัน {concurrent} รายการ",batchItemFailed:"สร้าง {name} ล้มเหลว: {error}",batchComplete:"การสร้างเป็นชุดเสร็จสมบูรณ์",batchFailed:"การสร้างแบทช์ล้มเหลว",replaceFailed:"การเปลี่ยนล้มเหลว",replaceSuccess:"การเปลี่ยนสำเร็จ",promptGenFail:"การสร้างคำพร้อมท์ล้มเหลว",saveSuccess:"การแก้ไขคำพร้อมท์สำเร็จ",saveFailed:"การแก้ไขคำพร้อมท์ล้มเหลว"},history:"ภาพประวัติศาสตร์",confirmReplace:"ยืนยันการเปลี่ยน",batchGenerationPrompt:"สร้างคำพร้อมท์เป็นชุด",generatingPrompt:"กำลังสร้าง",selectPromptEmpty:"เลือกทั้งหมด คำที่แจ้งว่างเปล่า",noEmptyPrompt:"ไม่มีเนื้อหาที่มีคำว่าง",selectedCount:"เลือกเนื้อหาแล้ว {count} รายการ"},script:{searchPlaceholder:"ค้นหาชื่อบทภาพยนตร์...",search:"ค้นหา",addScript:"สร้างบทภาพยนตร์ใหม่",cancelSelectAll:"ยกเลิกการเลือกทั้งหมด",selectAll:"เลือกทั้งหมด",exportScript:"ส่งออกบทภาพยนตร์",msg:{searchFailed:"ค้นหาบทภาพยนตร์ล้มเหลว",selectExport:"โปรดเลือกบทภาพยนตร์ที่จะส่งออกก่อน",exportSuccess:"ส่งออกสำเร็จ",exportFailed:"ส่งออกบทภาพยนตร์ล้มเหลว",deleteHeader:"ยืนยันการลบ",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบบทภาพยนตร์นี้? การดำเนินการนี้ไม่สามารถยกเลิกได้",deleteConfirm:"ลบ",cancel:"ยกเลิก",deleteSuccess:"ลบสำเร็จ",deleteFailed:"ลบล้มเหลว",selectDelScript:"โปรดเลือกที่จะลบสคริปต์",batchDeleteHeader:"ลบเป็นกลุ่ม",batchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบบทภาพยนตร์ที่เลือก {count} รายการ? การดำเนินการนี้ไม่สามารถยกเลิกได้",batchDeleteSuccess:"ลบเป็นกลุ่มสำเร็จ",extractingInProgress:"การสกัด",projectNotFound:"ไม่พบรายการ",selectsExport:"โปรดเลือกส่งออกสคริปต์"},add:{title:"เพิ่มบทภาพยนตร์",scriptName:"ชื่อบทภาพยนตร์",scriptNamePh:"โปรดกรอกชื่อบทภาพยนตร์",uploadFile:"อัปโหลดไฟล์",dragUpload:"ลากไฟล์บทภาพยนตร์มาที่นี่ หรือคลิกเพื่ออัปโหลด",uploadHint:"รองรับรูปแบบ .txt, .docx แนะนำให้มีขนาดไฟล์ไม่เกิน 10MB",scriptContent:"เนื้อหาบทภาพยนตร์",scriptContentPh:"โปรดอัปโหลดหรือกรอกเนื้อหาบทภาพยนตร์...",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",selectAssets:"เลือกสินทรัพย์",noAssets:"ยังไม่ได้เชื่อมโยงสินทรัพย์",cancel:"ยกเลิก",confirm:"ยืนยัน",msg:{fileReadFailed:"อ่านไฟล์ล้มเหลว",docNotSupported:"ไม่รองรับการแยกวิเคราะห์ไฟล์ .doc โปรดแปลงเป็นไฟล์ .txt หรือ .docx",unsupportedType:"ไม่รองรับประเภทไฟล์นี้",fileTooLarge:"ไฟล์มีขนาดเกิน 10MB โปรดอัปโหลดไฟล์ขนาดเล็กกว่านี้",parsing:"กำลังแยกวิเคราะห์ไฟล์...",parseFailed:"แยกวิเคราะห์ไฟล์ล้มเหลว โปรดอัปโหลดใหม่อีกครั้ง",selectAssetsTitle:"เลือกสินทรัพย์ที่เกี่ยวข้อง",enterContent:"โปรดอัปโหลดหรือกรอกเนื้อหาบทภาพยนตร์",enterName:"โปรดกรอกชื่อบทภาพยนตร์",addSuccess:"เพิ่มบทภาพยนตร์สำเร็จ",addFailed:"เพิ่มบทภาพยนตร์ล้มเหลว โปรดลองอีกครั้งในภายหลัง"}},edit:{title:"รายละเอียดบทภาพยนตร์",scriptName:"ชื่อบทภาพยนตร์",scriptNamePh:"โปรดกรอกชื่อบทภาพยนตร์",scriptContent:"เนื้อหาบทภาพยนตร์",scriptContentPh:"โปรดกรอกเนื้อหาบทภาพยนตร์...",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",selectAssets:"เลือกสินทรัพย์",noAssets:"ยังไม่ได้เชื่อมโยงสินทรัพย์",msg:{selectAssetsTitle:"เลือกสินทรัพย์ที่เกี่ยวข้อง",updateSuccess:"อัปเดตบทภาพยนตร์สำเร็จ",updateFailed:"อัปเดตบทภาพยนตร์ล้มเหลว โปรดลองอีกครั้งในภายหลัง"}},deleteScript:"ลบสคริปต์เป็นชุด",extractAssets:""},assets:{addPrefix:"เพิ่ม",batchGenerate:"สร้างเป็นชุด",generatePrompt:"สร้างพรอมต์",generateImage:"สร้างรูปภาพ",batchDelete:"ลบเป็นชุด",searchPlaceholder:"ค้นหาชื่อสินทรัพย์...",search:"ค้นหา",preview:"ดูตัวอย่าง",generate:"สร้าง",edit:"แก้ไข",delete:"ลบ",generating:"กำลังสร้าง",play:"เล่น",mediaPreview:"ดูตัวอย่างสื่อ",confirmBatch:"ยืนยัน{type}หรือไม่!",model:"โมเดล",resolution:"ความละเอียด",resolutionPh:"โปรดเลือกความละเอียด",batchGenPrompt:"สร้างพรอมต์เป็นชุด",batchGenImage:"สร้างรูปภาพเป็นชุด",role:"ตัวละคร",prop:"อุปกรณ์",scene:"ฉาก",clip:"ฟุตเทจ",uploadSuccess:"อัปโหลดสำเร็จ",selectAtLeastOne:"โปรดเลือกสินทรัพย์อย่างน้อย 1 รายการ",noDescription:"ไม่มีคำอธิบาย",promptGenSuccess:"สร้างพรอมต์「{name}」สำเร็จ",promptGenFail:"สร้างพรอมต์「{name}」ล้มเหลว: {error}",selectModel:"โปรดเลือกโมเดล",selectResolution:"โปรดเลือกความละเอียด",noPromptForImage:"「{name}」ไม่มีพรอมต์ ไม่สามารถสร้างรูปภาพได้",imageGenSuccess:"สร้างรูปภาพ「{name}」สำเร็จ",imageGenFail:"สร้างรูปภาพ「{name}」ล้มเหลว: {error}",confirmDeleteHeader:"ยืนยันการลบ",confirmBatchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบสินทรัพย์เหล่านี้เป็นชุด? การดำเนินการนี้ไม่สามารถยกเลิกได้",confirmDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบสินทรัพย์นี้? การดำเนินการนี้ไม่สามารถยกเลิกได้",deleteBtn:"ลบ",cancelBtn:"ยกเลิก",deleteSuccess:"ลบสินทรัพย์สำเร็จ",deleteFail:"ลบสินทรัพย์ล้มเหลว",colPreview:"ดูตัวอย่าง",colName:"ชื่อ",colPrompt:"พรอมต์",colDescribe:"คำอธิบาย",colRemark:"หมายเหตุ",colCreateTime:"เวลาที่สร้าง",colOperation:"การจัดการ",add:{name:"ชื่อ",namePh:"โปรดกรอกชื่อ",describe:"คำอธิบาย",describePh:"โปรดกรอกคำอธิบาย",remark:"หมายเหตุ",remarkPh:"โปรดกรอกหมายเหตุ",prompt:"พรอมต์",promptPh:"โปรดกรอกพรอมต์",nameRequired:"โปรดกรอกชื่อ",describeRequired:"โปรดกรอกรายละเอียด",remarkRequired:"โปรดกรอกหมายเหตุ",updateSuccess:"อัปเดตสินทรัพย์สำเร็จ",addSuccess:"เพิ่มสินทรัพย์สำเร็จ"},gen:{header:"สร้างรูปภาพ",uploadRef:"อัปโหลดรูปภาพอ้างอิง",optional:"ตัวเลือก",promptLabel:"พรอมต์สร้างรูปภาพ",smartGenerate:"สร้างอัตโนมัติ (Smart Generate)",generatingPrompt:"กำลังสร้างพรอมต์อัจฉริยะ...",promptPlaceholder:"อธิบายเนื้อหารูปภาพที่คุณต้องการสร้าง ตัวอย่างเช่น: เมืองแห่งอนาคตที่เต็มไปด้วยเทคโนโลยี, แสงไฟนีออนกะพริบ, สไตล์ไซเบอร์พังค์...",selectModel:"เลือกโมเดล",selectResolution:"เลือกความละเอียด",generateBtn:"สร้างรูปภาพ",resultTitle:"ผลลัพธ์การสร้าง",generatedCount:"สร้างสำเร็จ {count} รูป โปรดเลือกหนึ่งรูป",generatingLabel:"กำลังสร้าง...",genFailed:"สร้างล้มเหลว",confirmSelect:"ยืนยันการเลือก",promptSuccess:"สร้างพรอมต์สำเร็จ",promptFail:"สร้างพรอมต์ล้มเหลว",fillPrompt:"โปรดกรอกพรอมต์",pickResolution:"โปรดเลือกความละเอียด",pickModel:"โปรดเลือกโมเดล",unnamed:"ไม่ได้ตั้งชื่อ",assetGenSuccess:"สร้างสินทรัพย์สำเร็จ",assetGenFail:"สร้างสินทรัพย์ล้มเหลว",uploadOk:"อัปโหลดสำเร็จ",imageSelected:"เลือกรูปภาพนี้แล้ว",imageDeleted:"ลบรูปภาพนี้แล้ว",imageSaved:"บันทึกรูปภาพแล้ว",completed:"สมบูรณ์"},batch:{header:"สร้างเป็นชุด",selected:"เลือกแล้ว {count} รายการ",selectAll:"เลือกทั้งหมด",clearSelection:"ล้างการเลือก",inputPh:"โปรดกรอกเนื้อหา",saveSelected:"บันทึกที่เลือก ({count})",colPreviewImg:"รูปตัวอย่าง",selectToSave:"โปรดเลือกรายการที่ต้องการบันทึก",saveSuccess:"บันทึกสำเร็จ",saveFail:"บันทึกล้มเหลว โปรดลองอีกครั้ง",promptDone:"สร้างพรอมต์เสร็จสมบูรณ์",promptFail:"สร้างพรอมต์ล้มเหลว",missingPrompts:"มี {count} สินทรัพย์ที่ไม่มีพรอมต์ โปรดสร้างพรอมต์ก่อน",imageDone:"สร้างรูปภาพเสร็จสมบูรณ์",imageGenFail:"สร้างรูปภาพล้มเหลว",unknownError:"ข้อผิดพลาดที่ไม่ทราบสาเหตุ",promptGenCancelled:"รุ่นถูกยกเลิก"}},production:{selectPlaceholder:"โปรดเลือกตอน",edit:"แก้ไข",node:{script:{title:"บทภาพยนตร์",editDialog:"แก้ไขบทภาพยนตร์"},scriptPlan:{title:"แผนการถ่ายทำ",editDialog:"แก้ไขแผนการถ่ายทำ"},storyboard:{title:"แผงสตอรี่บอร์ด",notGenerated:"ยังไม่สร้าง",scaleRatio:"อัตราส่วนการย่อ/ขยาย",gridPreview:"ดูตัวอย่างแบบกริด",noPreviewImages:"ไม่มีรูปภาพให้ดูตัวอย่าง",imageLoadFailed:"โหลดรูปภาพล้มเหลว",promptPlaceholder:"กรุณากรอกคำที่พร้อมท์",prompt:"คำพูดที่รวดเร็ว",editInfo:"การปรับเปลี่ยนคำทันที"},storyboardTable:{title:"ตารางสตอรี่บอร์ด",editDialog:"แก้ไขตารางสตอรี่บอร์ด"},assets:{title:"สินทรัพย์ต่อยอด",generateFailed:"สร้างล้มเหลว",notGenerated:"ยังไม่สร้าง",originalAsset:"สินทรัพย์ต้นฉบับ",derived:"ต่อยอด",noDerivedAssets:"ไม่มีสินทรัพย์ต่อยอด"},poster:{title:"ภาพปกวิดีโอ",coverCount:"{count} รูป"},workbench:{title:"พื้นที่ทำงานวิดีโอ"}},editImage:{upload:"อัปโหลด",generate:"สร้าง",saveFailed:"บันทึกล้มเหลว โปรดลองอีกครั้ง",fetchFailed:"ดึงข้อมูลล้มเหลว",generating:"กำลังสร้าง...",deleteNode:"ลบโหนด (Node)",ratio:"สัดส่วน",quality:"คุณภาพ",generateBtn:"สร้างรูปภาพ",selectImage:"เลือกรูปภาพ",imageGeneration:"สร้างรูปภาพ",promptPlaceholder:"อธิบายรูปภาพที่คุณต้องการสร้าง...",imageRef:"รูปที่ {index}",noReferences:"ไม่มีรูปภาพอ้างอิงให้ใช้งาน",selectModel:"โปรดเลือกโมเดลก่อน",selectQuality:"โปรดเลือกคุณภาพภาพ",selectRatio:"โปรดเลือกสัดส่วน",generateFailed:"สร้างล้มเหลว",generateFirst:"โปรดสร้างรูปภาพก่อน",generatedResult:"ผลลัพธ์การสร้าง",waitingGenerate:"รอการสร้าง",layoutLR:"จัดวางอัตโนมัติ-ซ้ายขวา",layoutTB:"จัดวางอัตโนมัติ-บนล่าง",uploadAssetImage:"อัปโหลดรูปทรัพยากร",uploadStoryboardImage:"อัปโหลดรูปสตอรี่บอร์ด",uploadImage:"การอัพโหลดรูปภาพสินทรัพย์",mode:"แบบอย่าง",closeConfirmTitle:"ปิดแผงแก้ไขใช่ไหม",closeConfirmBody:"ข้อมูลที่ไม่ได้บันทึกจะสูญหายไปหลังจากการปิด"},save:"เลือก",cancel:"ยกเลิก",chatBox:{inputPlaceholder:"พิมพ์ข้อความ...",generateDerivedAssets:"สร้างสินทรัพย์ต่อยอด",welcomeMessage:"สวัสดี! ฉันคือผู้ช่วย AI ของคุณ มีอะไรให้ฉันช่วยไหม?",adjustModel:"ปรับแต่งโมเดล",startMakingVideo:"เริ่มสร้างวิดีโอ",startMakingVideoPrompt:"โปรดช่วยฉันเริ่มสร้างวิดีโอ",clearMessageMemory:"ล้างหน่วยความจำข้อความ",clearSummaryMemory:"ล้างหน่วยความจำสรุป",clearAllMemory:"ล้างหน่วยความจำทั้งหมด",messageMemory:"หน่วยความจำข้อความ",summaryMemory:"หน่วยความจำสรุป",allMemory:"หน่วยความจำทั้งหมด",confirmClear:"ล้างหน่วยความจำ",confirmClearBody:"แน่ใจหรือไม่ว่าต้องการล้าง{type}?",confirmClearBtn:"ยืนยันการล้าง",memoryCleared:"ล้าง{type}แล้ว"},wb:{quickPreview:"ดูตัวอย่างแบบเร็ว",videoGeneration:"สตอรี่บอร์ด",videoEditing:"โต๊ะบรรณาธิการ",hint:"ข้อแนะนำ",extractLines:"ต้องการแยกบทสนทนาจากวิดีโอหรือไม่?",no:"ไม่",confirm:"ตกลง",extractLinesQuestion:"ต้องการแยกบทสนทนาจากวิดีโอมาเป็นซับไตเติลหรือไม่?",importingLoading:"กำลังนำเข้า โปรดรอสักครู่...",mainTrackVideo:"แทร็กหลัก (วิดีโอ)",subtitle1:"ซับไตเติล 1",storyboardVideoName:"วิดีโอสตอรี่บอร์ด-{storyboard}.mp4"},preview:{noImage:"ยังไม่มีรูปภาพ",storyboardDesc:"คำอธิบายสตอรี่บอร์ด",serialNumber:"ลำดับ",noDescription:"ยังไม่มีคำอธิบาย",duration:"ความยาว",seconds:"วินาที",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",role:"ตัวละคร",prop:"อุปกรณ์",scene:"ฉาก",noCharacters:"ไม่มีตัวละครปรากฏ",imagePrompt:"พรอมต์รูปภาพ",selectAll:"เลือกทั้งหมด",exportImage:"ส่งออกรูปภาพ",sceneDescription:"คำอธิบายฉาก",promptLabel:"พรอมต์",restoreSort:"คืนค่าการจัดเรียง",restoreSortConfirm:"แน่ใจหรือไม่ว่าต้องการคืนค่าการจัดเรียงกลับเป็นค่าเริ่มต้น?",tip:"เคล็ดลับ",selectAtLeastOne:"โปรดเลือกสตอรี่บอร์ดอย่างน้อยหนึ่งรายการเพื่อส่งออก",exportFilename:"ภาพสตอรี่บอร์ด"},generate:{noVideo:"ยังไม่มีวิดีโอ",videoPrompt:"พรอมต์วิดีโอ",promptPlaceholder:"ป้อนคำพร้อมท์เพื่ออธิบายเนื้อหาวิดีโอที่คุณต้องการสร้าง...",refImage:"รูปภาพอ้างอิง",image:"รูปภาพ",refVideo:"วิดีโออ้างอิง",refImageLabel:"รูปภาพอ้างอิง",refAudio:"เสียงอ้างอิง",muteAudio:"ปิดเสียง",enableAudio:"เปิดเสียง",resolution:"ความละเอียด",duration:"ความยาว",generate:"สร้าง",historyVersions:"ประวัติเวอร์ชัน",confirmSelection:"ยืนยันการเลือก",noHistory:"ยังไม่มีประวัติ",generating:"กำลังสร้าง",generateFailed:"สร้างล้มเหลว",selectAll:"เลือกทั้งหมด",videoTrack:"แทร็กวิดีโอ",batchGenerate:"สร้างเป็นชุด",importToEditor:"นำเข้าสู่หน้าต่างตัดต่อ",modeSingleImage:"รูปภาพเดียว",modeMultiImage:"หลายรูปภาพ",modeGridImage:"รูปภาพกริดหลายรูป",modeStartEnd:"เฟรมแรกและสุดท้าย",modeText:"ข้อความเป็นวิดีโอ",modeVideoRef:"อ้างอิงจากวิดีโอ",modeImageRef:"อ้างอิงจากรูปภาพ",modeAudioRef:"อ้างอิงจากเสียง",modeTextRef:"อ้างอิงจากข้อความ",startFrame:"เฟรมแรก",startFrameOptional:"เฟรมแรก (ตัวเลือก)",endFrame:"เฟรมสุดท้าย",endFrameOptional:"เฟรมสุดท้าย (ตัวเลือก)",selectRefImage:"เลือกรูปภาพอ้างอิง",selectRefImages:"เลือกรูปภาพอ้างอิงหลายรูป",selectEndFrame:"เลือกรูปเฟรมสุดท้าย",selectRefVideoAsset:"เลือกวิดีโออ้างอิง",selectRefAudioAsset:"เลือกเสียงอ้างอิง",selectRefImageAsset:"เลือกรูปภาพอ้างอิง",selectImageSource:"เลือกแหล่งที่มาของภาพ",fromStoryboard:"ภาพสตอรี่บอร์ด",fromStoryboardDesc:"เลือกภาพจากรายการสตอรี่บอร์ด",fromAssets:"ภาพแอสเซท",fromAssetsDesc:"เลือกภาพจากคลังแอสเซท",confirmDelete:"ยืนยันการลบ",confirmDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบวิดีโอนี้? การดำเนินการนี้ไม่สามารถยกเลิกได้",delete:"ลบ",cancel:"ยกเลิก",deleteSuccess:"ลบวิดีโอสำเร็จ",deleteFailed:"ลบล้มเหลว",selectVideoFirst:"โปรดเลือกวิดีโอก่อน",confirmSuccess:"ยืนยันการเลือกสำเร็จ",batchSubmitted:"ส่งคำขอสร้างเป็นชุดแล้ว กำลังดำเนินการ...",configNotFound:"ไม่พบการตั้งค่า",pollingFailed:"การค้นหาสถานะวิดีโอล้มเหลว โปรดรีเฟรชด้วยตนเอง",batchGeneratePrompt:"สร้างคำพร้อมท์เป็นชุด",batchPromptEmpty:"บอร์ดเรื่องราว {name} พร้อมใช้งานสำหรับวิดีโอแจ้ง กรุณาสร้างหรือกรอกข้อความแจ้งก่อน",modelEmpty:"โปรดเลือกรุ่นการสร้างวิดีโอก่อน",generatingPrompt:"การสร้างคำที่รวดเร็วอย่างชาญฉลาด"},editVideo:{reset:"รีเซ็ต",undo:"เลิกทำ",redo:"ทำซ้ำ",split:"แยกคลิป (Split)",delete:"ลบ",rendering:"กำลังเรนเดอร์...",exportVideo:"ส่งออกวิดีโอ",exportSuccess:"ส่งออกวิดีโอสำเร็จแล้ว",exportFailed:"ส่งออกล้มเหลว",sampleSubtitle:"ข้อความซับไตเติลตัวอย่าง",customText:"เนื้อหาข้อความกำหนดเอง",transitionBetweenClips:"จำเป็นต้องเพิ่มทรานซิชันไว้ระหว่าง Clip สองอันที่อยู่ติดกัน",transitionExists:"มีทรานซิชันอยู่ตำแหน่งนี้แล้ว",videoPreviewArea:"พื้นที่ดูตัวอย่างวิดีโอ",clipMaterials:"ฟุตเทจตัดต่อ",propertyPanel:"แผงคุณสมบัติ (Properties)",selectClip:"เลือก Clip เพื่อดูคุณสมบัติ",basicInfo:"ข้อมูลพื้นฐาน",name:"ชื่อ",clipNamePlaceholder:"ชื่อ Clip",startTime:"เริ่มต้น",endTime:"สิ้นสุด",totalDuration:"ความยาวทั้งหมด",videoProperties:"คุณสมบัติวิดีโอ",opacity:"ความทึบแสง",volume:"ระดับเสียง",playbackSpeed:"ความเร็วในการเล่น",audioProperties:"คุณสมบัติเสียง",fadeIn:"เฟดอิน (Fade In)",fadeOut:"เฟดเอาต์ (Fade Out)",transitionProperties:"คุณสมบัติทรานซิชัน",transitionType:"ประเภททรานซิชัน",transFade:"เลือนหาย (Fade)",transSlide:"เลื่อน (Slide)",transWipe:"ปาด (Wipe)",transDissolve:"ละลาย (Dissolve)",transZoom:"ซูม (Zoom)",transRotate:"หมุน (Rotate)",transitionDuration:"ความยาวทรานซิชัน",subtitleProperties:"คุณสมบัติซับไตเติล",textContent:"เนื้อหาข้อความ",fontSize:"ขนาดตัวอักษร",copy:"คัดลอก",deleteConfirm:"ยืนยันการลบ",deleteClipConfirm:"แน่ใจหรือไม่ว่าต้องการลบ Clip นี้?",avCanvasNotInit:"AVCanvas ยังไม่ได้ถูกเตรียมเริ่มต้น",noExportContent:"ไม่มีเนื้อหาให้ส่งออก",exportProject:"ส่งออกโปรเจกต์",transitionAdded:"เพิ่มทรานซิชันแล้ว: {name}",splitClip:"แยกคลิป",deleteClip:"ลบคลิป",addClip:"เพิ่ม {name}",duplicateClip:"ทำซ้ำคลิป (Duplicate)",addTransition:"เพิ่มทรานซิชัน",updateClip:"อัปเดตคลิป {key}",updatePlaybackRate:"อัปเดตความเร็วการเล่นเป็น {rate}x",updateTransitionDuration:"อัปเดตความยาวทรานซิชัน",playbackRateRange:"ความเร็วในการเล่นต้องอยู่ระหว่าง 0.1 ถึง 10",updatePlaybackRateFailed:"อัปเดตความเร็วการเล่นล้มเหลว:",importProject:"นำเข้าโปรเจกต์",import:"นำเข้า"},clipType:{video:"วิดีโอ",audio:"เสียง",subtitle:"ซับไตเติล",transition:"ทรานซิชัน",sticker:"สติกเกอร์",filter:"ฟิลเตอร์",effect:"เอฟเฟกต์"},track:{video:"วิดีโอ",image:"รูปภาพ",audio:"เสียง",subtitle:"ซับไตเติล",text:"ข้อความ",sticker:"สติกเกอร์",filter:"ฟิลเตอร์",effect:"เอฟเฟกต์"},transition:{fade:"เลือนหาย (Fade)",slide:"เลื่อน (Slide)",slideLeft:"เลื่อนไปทางซ้าย",slideRight:"เลื่อนไปทางขวา",slideUp:"เลื่อนขึ้น",slideDown:"เลื่อนลง",wipe:"ปาด (Wipe)",wipeLeft:"ปาดไปทางซ้าย",wipeRight:"ปาดไปทางขวา",wipeUp:"ปาดขึ้น",wipeDown:"ปาดลง",dissolve:"ละลาย (Dissolve)",zoom:"ซูม (Zoom)",zoomIn:"ซูมเข้า",zoomOut:"ซูมออก",rotate:"หมุน",circle:"วงกลม",diamond:"สี่เหลี่ยมข้าวหลามตัด",clock:"นาฬิกา",blur:"เบลอ"},media:{titleText:"ข้อความชื่อเรื่อง",subtitleText:"ข้อความซับไตเติล",customText:"ข้อความกำหนดเอง",media:"สื่อ",image:"รูปภาพ",audio:"เสียง",subtitle:"ซับไตเติล",transition:"ทรานซิชัน",effect:"เอฟเฟกต์",filter:"ฟิลเตอร์",loading:"กำลังโหลด...",subtitlePreview:"ข้อความ",video:"วิดีโอ"},effect:{fadeIn:"เฟดอิน",fadeOut:"เฟดเอาต์",flash:"กะพริบ (Flash)",shake:"สั่น (Shake)",zoomIn:"ซูมเข้ามา",zoomOut:"ซูมออกไป",pulse:"เต้นเป็นจังหวะ (Pulse)",rotateIn:"หมุนเข้ามา",sticker1:"สติกเกอร์ 1",sticker2:"สติกเกอร์ 2"},filter:{grayscale:"ขาวดำ",sepia:"เรโทร (Sepia)",warm:"โทนอุ่น",cool:"โทนเย็น",vivid:"สีสดใส",bright:"สว่าง",highContrast:"คอนทราสต์สูง",blur:"เบลอ",invert:"สลับสี (Invert)",semiTransparent:"กึ่งโปร่งใส"},guideSwitchEpisode:"สลับตอน",guideSwitchEpisodeBody:"ฟีเจอร์การสลับตอนถูกย้ายมาที่นี่แล้วนะ!",autoLayoutLR:"เรียงพิมพ์อัตโนมัติ - เค้าโครงซ้ายและขวา",autoLayoutTB:"เค้าโครงเรียงพิมพ์อัตโนมัติบนและล่าง",getFlowData:"รีเฟรชพื้นที่ทำงาน",confirm:"สลับการยืนยันตอน",confirmEpisodesSwitch:"งานปัจจุบันยังอยู่ในระหว่างดำเนินการ การเปลี่ยนตอนจะเชื่อมต่อเซสชันอีกครั้ง คุณต้องการเปลี่ยนต่อหรือไม่?"},task:{title:"รายการงาน",subtitle:"บันทึกการทำงานล่าสุดของคุณ",refresh:"รีเฟรช",categoryLabel:"หมวดหมู่งานหลัก:",stateLabel:"สถานะ:",noFailReason:"ไม่มีระบุสาเหตุข้อผิดพลาด",stateAll:"ทั้งหมด",stateRunning:"กำลังดำเนินการ",stateCompleted:"เสร็จสมบูรณ์",stateFailed:"สร้างล้มเหลว",fetchFailed:"ดึงรายการงานล้มเหลว",col:{taskClass:"หมวดหมู่งานหลัก",relatedObjects:"ออบเจกต์ที่เกี่ยวข้อง",model:"โมเดล",describe:"คำอธิบาย",state:"สถานะ",startTime:"เวลา",reason:"สาเหตุของความล้มเหลว"},project:"ชื่อโครงการ:"},noVideo:"ยังไม่มีวิดีโอ",prompt:"คำแจ้งวิดีโอ",generateText:"AI สร้างคำที่รวดเร็ว",selectStoryboard:"เลือกกระดานเรื่องราว",generate:{noVideo:"ยังไม่มีวิดีโอ",generateText:"AI สร้างคำที่รวดเร็ว",selectStoryboard:"เลือกกระดานเรื่องราว",generate:"สร้างวิดีโอ",history:"เวอร์ชันประวัติศาสตร์",generating:"กำลังสร้าง",generateFailed:"ล้มเหลว",selectAll:"เลือกทั้งหมด",selected:"เลือกแล้ว",batchGenerateText:"สร้างคำพร้อมท์เป็นชุด",batchGenerateVideo:"สร้างวิดีโอเป็นชุด",importVideo:"นำเข้าไปยังโต๊ะแก้ไข",emptyTrack:"ย่อหน้า {ดัชนี 1}",del:"ลบ",delConfirm:"คุณแน่ใจหรือไม่ว่าต้องการลบย่อหน้านี้",selectSource:"เลือกแหล่งที่มา",confirm:"เลือกจากสินทรัพย์",cancel:"เลือกจากกระดานเรื่องราว",selectVideoFailed:"การเลือกวิดีโอล้มเหลว",selectVideoSuccess:"การเลือกวิดีโอสำเร็จ",selectTrackFirst:"โปรดเลือกกระดานเรื่องราวก่อน",noSelectedVideo:"ไม่ได้เลือกวิดีโอ",generateConfirm:"ยืนยันการสร้าง",generateConfirmBody:"ยืนยันการสร้างวิดีโอ",generateVideosInBatches:"สร้างวิดีโอเป็นชุด",generateStarted:"เริ่มสร้าง",promptEmpty:"ตรวจสอบข้อมูลที่จำเป็นในการสร้างวิดีโอและคำแจ้งว่างเปล่า คุณต้องการสร้างมันต่อไปหรือไม่?",skipDataWithEmptyVideoPromptWords:"มีข้อมูลวิดีโอที่ต้องสร้างและคำแจ้งว่างเปล่า",duration:"ระยะเวลา",resolution:"ปณิธาน",delVideo:"ยืนยันการลบวิดีโอนี้หรือไม่",delSuccess:"ลบสำเร็จ",addReference:"เพิ่มการอ้างอิง",promptPlaceholder:"โปรดป้อนคำแจ้งของวิดีโอ",downloadVideo:"ดาวน์โหลดวิดีโอเป็นชุด",selectVideo:"โปรดตรวจสอบวิดีโอที่คุณต้องการดาวน์โหลด"}},f_i={slogan:"แพลตฟอร์มสร้างละครสั้นอัจฉริยะ",tips:"บัญชีผู้ใช้เริ่มต้น: admin / admin123",settings:"การตั้งค่าเซิร์ฟเวอร์",requestAddress:"ที่อยู่คำขอ (Request Address)",username:"ชื่อผู้ใช้",password:"รหัสผ่าน",login:"เข้าสู่ระบบ",usernameRequired:"โปรดกรอกชื่อผู้ใช้",passwordRequired:"โปรดกรอกรหัสผ่าน",enterUsernameAndPassword:"โปรดกรอกชื่อผู้ใช้หรือรหัสผ่าน",loginSuccess:"เข้าสู่ระบบสำเร็จ",settingsSaved:"บันทึกการตั้งค่าแล้ว"},g_i={prompt:"คำพูดที่รวดเร็ว"},m_i={welcomeTitle:"ยินดีต้อนรับสู่ ToonFlow",welcomeDesc:"แพลตฟอร์มเวิร์กโฟลว์การสร้างการ์ตูนที่ขับเคลื่อนด้วย AI ให้เราใช้เวลาสักครู่เพื่อกำหนดค่าเริ่มต้นให้เสร็จสิ้น",startConfig:"เริ่มการกำหนดค่า",skip:"ข้ามการบูต",configModel:"เพิ่มบริการโมเดล",configData:"กำหนดค่าตัวแทน",startUse:"เริ่มต้นเลย",configModelTitle:"เพิ่มผู้ให้บริการโมเดล",configModelDesc:"ขั้นแรก คุณต้องเพิ่มผู้ให้บริการโมเดล AI อย่างน้อยหนึ่งราย (เช่น OpenAI, Claude ฯลฯ) ในการตั้งค่าและกรอกคีย์ API ที่เกี่ยวข้อง",configModelTip:'การคลิกปุ่มด้านล่างจะเป็นการเปิดแท็บ "บริการโมเดล" ของหน้าการตั้งค่า หลังจากเพิ่มซัพพลายเออร์แล้ว ให้กลับมาที่นี่เพื่อดำเนินการต่อ',configModelBtn:"ไปที่กำหนดค่าบริการโมเดล",configAgentTitle:"กำหนดโมเดลตัวแทน",configAgentDesc:"จากนั้น กำหนดโมเดลให้กับโมดูลการทำงานแต่ละโมดูลในการกำหนดค่าตัวแทน เพื่อให้ระบบทราบว่าควรเรียกโมเดลใดเพื่อให้งานเสร็จสมบูรณ์",configAgentTip:'การคลิกปุ่มด้านล่างจะเป็นการเปิดแท็บ "การกำหนดค่าตัวแทน" ของหน้าการตั้งค่า กลับมาที่นี่หลังจากกำหนดโมเดลให้กับแต่ละฟังก์ชันแล้ว',configAgentBtn:"ไปที่กำหนดค่าตัวแทน",finishTitle:"🎉 ทุกอย่างพร้อมแล้ว!",finishDesc:"การกำหนดค่าเสร็จสมบูรณ์ และตอนนี้คุณสามารถเริ่มใช้คุณสมบัติทั้งหมดได้แล้ว หากคุณต้องการปรับเปลี่ยน คุณสามารถแก้ไขได้ในการตั้งค่าได้ตลอดเวลา",qrcodeLabel:"เข้าร่วมกลุ่มการสื่อสาร WeChat เพื่อรับความช่วยเหลือเพิ่มเติม:",githubLabel:"หากคุณพบว่ามีประโยชน์ โปรดให้ ⭐ ดาวแก่เรา!",prevStep:"ขั้นตอนก่อนหน้า",nextStep:"ขั้นตอนต่อไป",finish:"เริ่มต้นเลย"},k_i={skillManagement:{search:"ค้นหาชื่อไฟล์",empty:"ไม่มีไฟล์ที่ตรงกัน",edit:"แก้ไข",selectOnTheLeft:"โปรดเลือกไฟล์จากด้านซ้าย"}},v_i={assets:{notExist:"ไม่มีเนื้อหาอยู่",notDerivativeExist:"ไม่มีสินทรัพย์อนุพันธ์",derivativeUpdateSuccess:"อัปเดตสำเร็จ",derivativeState:"ไม่ได้สร้างขึ้น",derivativeAddSuccess:"เพิ่มเรียบร้อยแล้ว",derivativeDelSuccess:"ลบสำเร็จ",notGenerated:"ไม่ได้สร้างขึ้น"},addSuccess:"อัปเดตสำเร็จ",state:{unused:"ไม่ได้สร้างขึ้น"},saveSuccess:"เพิ่มเรียบร้อยแล้ว"},A_i={generating:"กำลังสร้าง"},p_i={scanning:"🔍 การแยกวิเคราะห์และการโหลดทักษะ",scanComplete:"✨ สแกน Skill เสร็จสมบูรณ์",inserted:"✅ เพิ่มทักษะ {count}",updated:"🔄 อัปเดตทักษะ {count}",removed:"🗑️ ลบ {count} Skill",scannedFiles:"📁 สแกน {count} ไฟล์",noDescription:"📝 {count} Skill ไม่มีคำอธิบาย",noAttribution:"👤 {count} Skill ไม่มีการระบุแหล่งที่มา",configWarning:"⚠️ คำเตือนการตั้งค่า Skill",openSettings:"เปิดการตั้งค่า",scanFailed:"❌ สแกนล้มเหลว",checkNetwork:"🔌 กรุณาตรวจสอบการเชื่อมต่อเครือข่ายหรือลองใหม่ภายหลัง",retryLater:"🔁 กรุณาลองใหม่ภายหลัง"},b_i="สร้างวิดีโอ",w_i="เวอร์ชันประวัติศาสตร์",O_i="กำลังสร้าง",y_i="ล้มเหลว",C_i="เลือกทั้งหมด",__i="เลือกแล้ว",S_i="นำเข้าวิดีโอ",L_i="ย่อหน้า {ดัชนี 1}",x_i="ยืนยันการลบ",E_i="คุณแน่ใจหรือไม่ว่าต้องการลบย่อหน้านี้",T_i="เลือกแหล่งที่มา",Q_i="เลือกจากสินทรัพย์",D_i="เลือกจากกระดานเรื่องราว",B_i={newVersion:"มีเวอร์ชั่นใหม่แล้ว คุณต้องการอัปเดตหรือไม่?"},R_i={components:d_i,settings:u_i,workbench:h_i,login:f_i,"components.storyboardImageCheck.camera":"กล้อง","components.storyboardImageCheck.dialogTitle":"เลือกรูปสตอรี่บอร์ด","components.storyboardImageCheck.preview":"ดูตัวอย่าง","components.storyboardImageCheck.src":"รูปตัวอย่าง","components.storyboardImageCheck.title":"หัวข้อ","components.storyboardImageCheck.duration":"ระยะเวลา","components.storyboardImageCheck.lines":"บทพูด","components.storyboardImageCheck.createTime":"เวลาสร้าง","workbench.script.extractAssets":"ดึงทรัพยากร",promptManage:g_i,hello:m_i,setting:k_i,storyboard:v_i,productionAgent:A_i,skillScan:p_i,generate:b_i,history:w_i,generating:O_i,generateFailed:y_i,selectAll:C_i,selected:__i,importVideo:S_i,emptyTrack:L_i,del:x_i,delConfirm:E_i,selectSource:T_i,confirm:Q_i,cancel:D_i,"workbench.script.msg.exportFailed":"การส่งออกล้มเหลว","workbench.production.node.assets.confirmDeleteBody":"ยืนยันว่าจะลบเนื้อหาหรือไม่","workbench.production.node.assets.removeFailed":"ลบเนื้อหาไม่สำเร็จ",version:B_i,"workbench.production.generatedNode.localUpload":"การอัปโหลดในเครื่อง","workbench.production.editImage.uploadFailed":"การอัปโหลดรูปภาพล้มเหลว","workbench.production.editImage.noImage":"กรุณาเพิ่มรูปภาพก่อน"},I_i={editMdPreivew:{title:"Chỉnh sửa",confirm:"Lưu",cancel:"Hủy"},imageTools:{copy:"Sao chép hình ảnh",preview:"Xem trước",download:"Tải xuống",msg:{imageLoadFailed:"Tải hình ảnh thất bại",convertFailed:"Chuyển đổi thất bại",copied:"Đã sao chép vào clipboard",copyFailed:"Sao chép thất bại",downloadFailed:"Tải xuống thất bại",downloadStarted:"Bắt đầu tải xuống",downloadBlockedOpenNewWindow:"Nguồn hình ảnh hiện tại có thể hạn chế tải xuống, đã thử mở trong cửa sổ mới"}},migrateShow:{title:"Di chuyển dữ liệu",desc:"Phát hiện bạn có dữ liệu từ phiên bản cũ, bạn có muốn di chuyển không?",hide:"Không hiển thị lại",confirm:"Xác nhận",msg:{migrateSuccess:"Di chuyển dữ liệu thành công",migrateFailed:"Di chuyển dữ liệu thất bại"}},modelSelect:{placeholder:"Vui lòng chọn mô hình",type:{image:"Hình ảnh",text:"Văn bản",video:"Video"},msg:{fetchModelFailed:"Lấy dữ liệu mô hình thất bại:"}}},M_i={title:"Cài đặt ToonFlow",menu:{language:"Cài đặt ngôn ngữ",vendorConfig:"Dịch vụ mô hình",agentConfig:"Cấu hình Agent",promptManage:"Quản lý Prompt",skillManagement:"Quản lý kĩ năng",memoryConfig:"Cấu hình bộ nhớ Agent",loginConfig:"Cấu hình đăng nhập",dbConfig:"Thao tác cơ sở dữ liệu",fileManagement:"Quản lý tệp",otherConfig:"Cấu hình khác",requestConfig:"Địa chỉ yêu cầu (API)",about:"Kiểm tra cập nhật",logoutConfig:"Đăng xuất",skillsSkillsManagement:"Kỹ năngQuản lý kỹ năng"},language:{desc:"Chọn ngôn ngữ hiển thị giao diện",msg:{saved:"Cài đặt ngôn ngữ đã được lưu"}},vendor:{addVendor:"Thêm nhà cung cấp",noVendor:"Chưa có nhà cung cấp, vui lòng thêm trước",required:"Bắt buộc",optionalSection:"Tùy chọn",modelSettings:"Cài đặt mô hình",addManually:"Thêm thủ công",test:"Kiểm tra",edit:"Chỉnh sửa",delete:"Xóa",deleteVendor:"Xóa nhà cung cấp",editCode:"Chỉnh sửa mã",updateConfig:"Cập nhật cấu hình",addModel:"Thêm mô hình",editModel:"Chỉnh sửa mô hình",displayName:"Tên hiển thị",displayNamePlaceholder:"Ví dụ: GPT-4o",modelId:"Mã mô hình (Model ID)",modelIdPlaceholder:"Ví dụ: gpt-4o",modelType:"Loại mô hình",multimodal:"Đa phương thức (Multimodal)",supported:"Hỗ trợ",notSupported:"Không hỗ trợ",toolCall:"Gọi công cụ (Tool Call)",imageMode:"Chế độ hình ảnh",videoMode:"Chế độ video",audioOutput:"Đầu ra âm thanh",durationResolution:"Ánh xạ Thời lượng / Độ phân giải",durationSec:"Thời lượng (giây)",resolution:"Độ phân giải",enterAndPress:"Nhập và nhấn Enter",addDurationResolution:"Thêm một bộ Thời lượng / Độ phân giải",testResult:"Kết quả kiểm tra",generating:"Đang tạo...",addVendorDialog:"Thêm nhà cung cấp",codeEditorInfo:"Vui lòng viết mã TypeScript để cấu hình thông tin nhà cung cấp",reset:"Đặt lại",importFile:"Nhập tệp",textModel:"Mô hình văn bản",imageModel:"Mô hình hình ảnh",videoModel:"Mô hình video",textToImage:"Văn bản -> Hình ảnh",textToVideo:"Văn bản -> Video",singleImage:"Ảnh đơn",multiImage:"Chế độ nhiều ảnh",multiReference:"Tham chiếu nhiều ảnh",gridImage:"Lưới ảnh đơn",startEndRequired:"Khung hình đầu và cuối (Bắt buộc cả hai)",endFrameOptional:"Khung hình đầu và cuối (Khung hình cuối tùy chọn)",startFrameOptional:"Khung hình đầu và cuối (Khung hình đầu tùy chọn)",textRef:"Văn bản",imageRef:"Hình ảnh",videoRef:"Video",audioRef:"Âm thanh",audioOptional:"Tùy chọn",audioOnly:"Chỉ xuất video có âm thanh",noAudio:"Chỉ xuất video không âm thanh",msg:{getVendorListFailed:"Lấy danh sách nhà cung cấp thất bại",vendorConfigUpdated:"Cấu hình nhà cung cấp đã được cập nhật",updateFailed:"Cập nhật thất bại",highRiskConfirm:"⚠️ Xác nhận thao tác rủi ro cao",addVendorRiskBody:"Việc thêm nhà cung cấp AI mới sẽ cấp cho họ quyền truy cập vào API hệ thống, vui lòng đảm bảo bạn tin tưởng nguồn mã của nhà cung cấp này!",iKnowRisk:"Tôi hiểu rủi ro",cancel:"Hủy",confirmAgain:"⚠️ Xác nhận lại",addVendorConfirmBody:"Bạn có chắc chắn muốn thêm nhà cung cấp này không? Sau khi thêm, nó sẽ tham gia vào việc điều phối mô hình của hệ thống.",confirmAndAdd:"Xác nhận và thêm",goBackCheck:"Quay lại kiểm tra",vendorAdded:"Đã thêm nhà cung cấp thành công",addFailed:"Thêm thất bại",updateVendorRiskBody:"Cập nhật cấu hình nhà cung cấp AI sẽ thay đổi quyền truy cập API hệ thống và hành vi của họ, vui lòng đảm bảo bạn tin tưởng nguồn mã sau khi sửa đổi!",updateVendorConfirmBody:"Bạn có chắc chắn muốn cập nhật cấu hình nhà cung cấp này không? Việc cập nhật sẽ ảnh hưởng đến việc điều phối mô hình của hệ thống.",confirmAndUpdate:"Xác nhận và cập nhật",updateSuccess:"Cập nhật cấu hình nhà cung cấp thành công",fillDisplayName:"Vui lòng điền tên hiển thị",fillModelId:"Vui lòng điền mã mô hình",selectImageMode:"Vui lòng chọn chế độ hình ảnh",selectVideoMode:"Vui lòng chọn chế độ video",groupPrefix:"Nhóm thứ {n}:",addDuration:"Vui lòng thêm thời lượng",addResolution:"Vui lòng thêm độ phân giải",selectVendorFirst:"Vui lòng chọn nhà cung cấp trước",modelIdExists:"Mã mô hình đã tồn tại",modelAdded:"Đã thêm mô hình thành công",modelUpdated:"Đã cập nhật mô hình thành công",enterApiKey:"Vui lòng điền API KEY",enterApiUrl:"Vui lòng điền API URL",testSuccess:"Kiểm tra thành công",imageGenSuccess:"Tạo hình ảnh thành công",videoGenSuccess:"Tạo video thành công",requestFailed:"Yêu cầu thất bại",deleteModelConfirm:"Xác nhận xóa mô hình",deleteModelBody:"Không thể khôi phục sau khi xóa, bạn có muốn tiếp tục?",confirmDelete:"Xác nhận xóa",modelDeleted:"Mô hình đã bị xóa",deleteVendorConfirm:"Xác nhận xóa nhà cung cấp",deleteVendorBody:"Sau khi xóa, tất cả các mô hình thuộc nhà cung cấp này cũng sẽ bị xóa, bạn có muốn tiếp tục?",vendorDeleted:"Nhà cung cấp đã bị xóa",deleteFailed:"Xóa thất bại",enabled:"Đã bật",disabled:"Tàn tật",linkAddVendorRiskBody:"Việc thêm nhà cung cấp AI mới sẽ cấp cho nhà cung cấp đó quyền truy cập vào API hệ thống, vui lòng đảm bảo rằng bạn tin cậy nguồn liên kết của nhà cung cấp đó!",importAdd:"Việc thêm nhà cung cấp AI mới sẽ cấp cho nhà cung cấp đó quyền truy cập vào API hệ thống, vui lòng đảm bảo rằng bạn tin cậy vào nguồn tài liệu của nhà cung cấp đó!",linkAddFailed:"Không thể thêm liên kết"},associationSkills:"Kỹ năng liên quan",think:"suy nghĩ sâu sắc",code:"mã số",linkAddPlaceholder:"Nhập liên kết để thêm",noFileSelected:"Đã nhập tệp thành công",linkAdd:"xác nhận"},agent:{bannerDesc:"Sử dụng máy chủ trung gian chính thức của Toonflow, hỗ trợ điền cấu hình bằng 1 cú nhấp chuột, sẵn sàng sử dụng ngay mà không cần thiết lập thủ công.",visitWebsite:"Truy cập trang web",fillKey:"Điền KEY",oneClickFill:"Điền bằng 1 cú nhấp chuột",notOpen:"Chưa mở",notConfigured:"Chưa cấu hình",modelConfig:"Cấu hình mô hình",confirm:"Xác nhận",cancel:"Hủy",selectModel:"Chọn mô hình",fillKeyHeader:"Điền KEY chính thức của nền tảng Toonflow",keyPlaceholder:"Vui lòng nhập KEY",save:"Lưu",msg:{notAvailable:"Tính năng này hiện chưa khả dụng, vui lòng chờ",configSuccess:"Cấu hình thành công",updateConfigFailed:"Cập nhật cấu hình thất bại:",keyValid:"KEY hợp lệ, kết nối với nền tảng Toonflow thành công",keyInvalid:"KEY không hợp lệ, vui lòng kiểm tra và nhập lại:",enterKey:"Vui lòng nhập KEY",saveFailed:"Lưu thất bại:",getAgentListFailed:"Lấy danh sách cấu hình Agent thất bại:",toonflowNotFound:"Trạm trung chuyển chính thức của Toonflow không tồn tại"}},memory:{warning:"Các mục cấu hình dưới đây đã được đặt sẵn ở mức khuyến nghị. Trừ khi bạn hiểu rõ ý nghĩa và tác động của từng cấu hình, nếu không khuyên bạn nên giữ nguyên thiết lập hiện tại",vectorModelConfig:"Cấu hình mô hình vector",modelFilePath:"Đường dẫn tệp mô hình",quantizationType:"Loại lượng tử hóa",quantizationPlaceholder:"Vui lòng nhập loại lượng tử hóa",memoryParams:"Thông số bộ nhớ",messagesPerSummary:"Số tin nhắn kích hoạt nén",messagesPerSummaryHelp:"Giữ lại ngữ cảnh của N cuộc hội thoại gần nhất.",shortTermLimit:"Số tin nhắn chưa nén lấy trong 1 lần",shortTermLimitHelp:"Số lượng bộ nhớ đề xuất được trả về khi truy xuất.",summaryMaxLength:"Ký tự nén tối đa",summaryMaxLengthHelp:"Ký tự tối đa cho phép khi nén tin nhắn",summaryLimit:"Số tin nhắn đã nén cho phép truy vấn",summaryLimitHelp:"Số tin nhắn đã nén cho phép truy vấn",ragLimit:"Số lượng bộ nhớ tìm kiếm",ragLimitHelp:"Số lượng tin nhắn lấy được khi truy xuất.",deepRetrieveSummaryLimit:"Số tin nhắn nén thu hồi bằng vector",deepRetrieveSummaryLimitHelp:"Số lượng tin nhắn lấy được khi truy xuất nội dung tin nhắn đã nén.",saveConfig:"Lưu cấu hình",clearMemory:"Xóa bộ nhớ",restoreDefault:"Khôi phục cấu hình mặc định",msg:{saved:"Cấu hình bộ nhớ đã được lưu",clearConfirmTitle:"Xác nhận xóa bộ nhớ",clearConfirmBody:"Thao tác này sẽ xóa toàn bộ dữ liệu bộ nhớ toàn cục của AI và không thể khôi phục, bạn có muốn tiếp tục?",confirmClear:"Xác nhận xóa",cancel:"Hủy",cleared:"Bộ nhớ đã được xóa",clearFailed:"Xóa bộ nhớ thất bại"}},login:{username:"Tên người dùng",usernamePlaceholder:"Vui lòng nhập tên người dùng",password:"Mật khẩu",passwordPlaceholder:"Vui lòng nhập mật khẩu",modify:"Sửa đổi",msg:{enterUsername:"Vui lòng nhập tên người dùng",usernameLength:"Độ dài tên người dùng từ 2-20 ký tự",enterPassword:"Vui lòng nhập mật khẩu",passwordLength:"Độ dài mật khẩu từ 6-20 ký tự",fetchFailed:"Lấy thông tin người dùng thất bại",saveSuccess:"Lưu thành công",saveFailed:"Lưu thất bại"}},db:{clearDb:"Xóa sạch cơ sở dữ liệu",clearDbDesc:"Xóa toàn bộ dữ liệu trong tất cả các bảng, giữ lại cấu trúc bảng",clearData:"Xóa dữ liệu",confirmAction:"Xác nhận thao tác",msg:{clearDbTitle:"Xóa sạch cơ sở dữ liệu",firstConfirm:"Bạn có chắc chắn muốn xóa toàn bộ bảng dữ liệu không? Dữ liệu sau khi xóa sẽ không thể khôi phục!",secondConfirm:"Đây là lần xác nhận cuối cùng, sau khi xóa toàn bộ dữ liệu sẽ bị mất vĩnh viễn!",keyword:"Xóa sạch",confirm:"Xác nhận",pleaseInput:"Vui lòng nhập",cleared:"Toàn bộ bảng dữ liệu đã được xóa",operationFailed:"Thao tác thất bại, vui lòng thử lại",cancelled:"Thao tác đã bị hủy"}},other:{requestTimeout:"Thời gian chờ yêu cầu (Timeout)",seconds:"giây",inputSeconds:"Vui lòng nhập số giây",assetConcurrency:"Số luồng tạo tài nguyên đồng thời",count:"cái",inputCount:"Vui lòng nhập số lượng",chapterRegex:"Regex tách chương",restoreDefault:"Khôi phục mặc định",regexPlaceholder:"Vui lòng nhập biểu thức chính quy (Regex)",canvasScroll:"Cuộn vải",canvasIsDisabled:"Thu phóng canvas",agentCanvasScalingMethod:"Hoạt động bánh xe vải không giới hạn trên trang sản xuất",zoom:"Phóng",scroll:"cuộn",isInteracting:"Tối ưu hóa hiệu suất kéo canvas không giới hạn trên trang sản xuất",closeIsInteracting:"đóng cửa"},request:{warning:"Nếu không có trường hợp đặc biệt, không cần sửa đổi hoặc cấu hình",apiAddress:"Địa chỉ API",apiPlaceholder:"Vui lòng nhập địa chỉ yêu cầu API",save:"Lưu",reset:"Đặt lại",msg:{enterApi:"Vui lòng nhập địa chỉ API",validUrl:"Vui lòng nhập địa chỉ HTTP/HTTPS hợp lệ",saved:"Địa chỉ yêu cầu đã lưu thành công",reset:"Đã đặt lại về địa chỉ mặc định"}},about:{slogan:"Công cụ sáng tạo truyện tranh / phân cảnh mã nguồn mở do AI điều khiển",latestVersion:"Đây là phiên bản mới nhất",checkUpdate:"Kiểm tra cập nhật",codeRepository:"Kho lưu trữ mã nguồn",githubRepo:"Kho GitHub",giteeRepo:"Kho Gitee",versionUpdate:"Cập nhật phiên bản",checkUpdateGithub:"Kiểm tra cập nhật (GitHub)",getFromGithub:"Lấy phiên bản mới nhất từ GitHub Release",checkUpdateGitee:"Kiểm tra cập nhật (Gitee)",getFromGitee:"Lấy phiên bản mới nhất từ Gitee Release",license:"Giấy phép",licenseDesc:"Thỏa thuận giấy phép mã nguồn mở · Nhấn để xem chi tiết",updateAvailable:"phiên bản mới được tìm thấy",upToDate:"Đã phát hiện phiên bản mới"},logout:{warning:"Sau khi đăng xuất, bạn cần đăng nhập lại để tiếp tục sử dụng hệ thống.",confirmLogout:"Bạn có chắc chắn muốn đăng xuất không?",logout:"Đăng xuất",msg:{logoutSuccess:"Đăng xuất thành công",logoutFailed:"Đăng xuất thất bại, vui lòng thử lại"}},file:{quickOpen:"Mở thư mục nhanh",open:"Mở",dockerDesc:'Đối với Docker/Triển khai tách biệt Frontend-Backend, vui lòng đi tới thư mục "/data/*" để quản lý tệp thủ công.',desktopOnly:"Tính năng này chỉ hỗ trợ trên ứng dụng Desktop",folders:{data:"data",dataDesc:"Thư mục dữ liệu.",logs:"data/logs",logsDesc:"Nhật ký hệ thống và nhật ký lỗi.",oss:"data/oss",ossDesc:"Tài nguyên liên quan đến lưu trữ tệp.",skills:"data/skills",skillsDesc:"Tệp cấu hình kỹ năng và lời nhắc (Prompt).",models:"data/models",modelsDesc:"Tệp mô hình và cấu hình.",web:"data/web",webDesc:"Tài nguyên liên quan đến Web, như các sản phẩm build Frontend.",serve:"data/serve",serveDesc:"Tệp liên quan đến dịch vụ Backend."},openFailed:"Mở thư mục thất bại"},dev:{warning:"Sau đây là các công cụ dành cho nhà phát triển, vui lòng sử dụng thận trọng!",openDevtool:"Mở",devtoolsDoc:"Địa chỉ tài liệu",devtoolsDesc:"Sau khi bật lên sẽ tạo một thư mục .devtools trong thư mục cài đặt Toonflow. Hãy đảm bảo rằng Toonflow có quyền ghi (chạy với tư cách quản trị viên).",devtoolsDesc2:"Chạy npx {'@'}ai-sdk/devtools trong thư mục này để bật gỡ lỗi đo từ xa",openDevtoolFailed:"Không mở được công cụ dành cho nhà phát triển, vui lòng đảm bảo đã cài đặt Toonflow desktop",notInElectron:"Đối với môi trường WEB, vui lòng mở bảng điều khiển trình duyệt theo cách thủ công"}},P_i={selectProject:"Vui lòng chọn dự án",menu:{myProject:"Dự án của tôi",taskCenter:"Trung tâm tác vụ",novel:"Bản gốc tiểu thuyết",scriptAgent:"Agent Kịch bản",scriptManage:"Quản lý kịch bản",cornerScape:"Nhân vật & Bối cảnh",production:"Sản xuất video",assetCenter:"Trung tâm tài nguyên",settings:"Cài đặt",jumpGithub:"Chuyển tới Github",feedbackQuestions:"Câu hỏi phản hồi"},project:{title:"Dự án của tôi",subtitle:"Quản lý tất cả các dự án phim ngắn của bạn",newProject:"Dự án mới",dialog:{editTitle:"Chỉnh sửa dự án",addTitle:"Dự án mới",save:"Lưu",ok:"Xác nhận",cancel:"Hủy",projectType:"Loại dự án",selectType:"Chọn loại dự án",basedOnNovel:"Dựa trên bản gốc tiểu thuyết",projectName:"Tên dự án",projectNamePh:"Vui lòng nhập tên dự án",novelType:"Thể loại tiểu thuyết",novelTypePh:"Ví dụ: Huyền huyễn, Khoa học viễn tưởng, Ngôn tình",artStyle:"Hướng dẫn trực quan",selected:"Đã chọn:",selectArtStyle:"Vui lòng chọn hướng dẫn trực quan",newArtStyle:"Hướng dẫn trực quan mới",loading:"Đang tải...",videoRatio:"Tỷ lệ video",novelIntro:"Tóm tắt tiểu thuyết",novelIntroPh:"Vui lòng nhập tóm tắt tiểu thuyết",editArtStyleTitle:"Chỉnh sửa hướng dẫn trực quan",newArtStyleTitle:"Hướng dẫn trực quan mới",artStyleName:"Tên hướng dẫn trực quan",artStyleNamePh:"Vui lòng nhập tên hướng dẫn trực quan",artStyleImage:"Ảnh bìa hướng dẫn trực quan",remove:"Xóa bỏ",uploadCover:"Tải lên ảnh bìa",artStylePrompt:"Lời nhắc hướng dẫn sử dụng trực quan",aiExtract:"AI trích xuất Prompt",promptPlaceholder:"Mô tả từ nhắc hướng dẫn sử dụng trực quan, được sử dụng để chỉ định hướng dẫn trực quan khi tạo hình ảnh.",visualManual:"Hướng dẫn trực quan",newVisualManual:"Hướng dẫn trực quan mới",editVisualManualTitle:"Chỉnh sỮa hướng dẫn trực quan",newVisualManualTitle:"Hướng dẫn trực quan mới",visualManualName:"Tên hướng dẫn trực quan",visualManualNamePh:"Vui lòng nhập tên hướng dẫn trực quan",visualManualCover:"Ảnh bìa hướng dẫn trực quan",visualManualPrompt:"Prompt hướng dẫn trực quan",modelData:"Chọn mô hình hình ảnh",videoModelData:"Chọn mô hình video",prompt:{placeholder:"Nhập từ gợi ý",saveSuccess:"Cập nhật thành công",title:"lời nhắc"},basedOnScript:"dựa trên kịch bản",mdFile:"tập tin hướng dẫn trực quan",directorManual:"Sổ tay Giám đốc",addDirectorManual:"Hướng dẫn đạo diễn mới",editingDirectorManual:"Chỉnh sửa Sổ tay Giám đốc",newDirecorManualTitle:"Hướng dẫn đạo diễn mới",directorManualPrompt:"Hướng dẫn sử dụng lời nhắc của đạo diễn",directorManualName:"Tên sổ tay giám đốc",directorManualNamePh:"Nhập tên Sổ tay Giám đốc",directorFile:"Tài liệu hướng dẫn của Giám đốc",directorManualCover:"Bìa sách hướng dẫn của giám đốc"},msg:{fetchFailed:"Lấy danh sách dự án thất bại",notFound:"Không tìm thấy dự án này!",editSuccess:"Chỉnh sửa dự án thành công",editFailed:"Chỉnh sửa dự án thất bại",addSuccess:"Thêm dự án thành công",addFailed:"Thêm dự án thất bại",deleteHeader:"Xóa dự án",deleteBody:"Bạn có chắc chắn muốn xóa dự án này không?",deleteConfirm:"Xóa",deleteCancel:"Hủy",deleteSuccess:"Xóa dự án thành công",deleteFailed:"Xóa dự án thất bại",extractSuccess:"Trích xuất lời nhắc thành công",extractFailed:"Trích xuất thất bại",enterArtStyleName:"Vui lòng nhập tên hướng dẫn trực quan",artStyleUpdated:"Hướng dẫn trực quan được cập nhật",artStyleAdded:"Đã thêm hướng dẫn trực quan",operationFailed:"Thao tác thất bại",enterVisualManualName:"Vui lòng nhập tên hướng dẫn trực quan",enterVisualManualImage:"Vui lòng tải lên ảnh bìa hướng dẫn trực quan",enterVisualManualTabData:"Prompt không được để trống",visualManualUpdated:"Hướng dẫn trực quan được cập nhật",visualManualAdded:"Đã thêm hướng dẫn trực quan",deleteVisualManualHeader:"Xóa hướng dẫn trực quan",deleteVisualManualBody:'Bạn có chắc chắn muốn xóa hướng dẫn trực quan "{name}" không?',deleteVisualManualConfirm:"Xóa",deleteVisualManualCancel:"Hủy",enterProjectName:"Vui lòng nhập tên dự án",enterProjectIntro:"Vui lòng nhập phần giới thiệu tiểu thuyết",enterProjectType:"Vui lòng nhập loại dự án",enterArtStyle:"Vui lòng chọn một tài liệu trực quan của dự án",enterVideoRatio:"Vui lòng chọn tỷ lệ video",enterImageModel:"Vui lòng chọn mẫu hình ảnh",enterVideoModel:"Vui lòng chọn một mẫu video",visualManualDeleted:"Xóa thành công",selectMode:"Vui lòng chọn chế độ",deleteDirectorManualHeader:"Xóa sổ tay giám đốc",deleteDirectorManualBody:'Bạn có chắc chắn muốn xóa Sổ tay Giám đốc "{name}" không?',directorManualUpdated:"Sổ tay Giám đốc được cập nhật",directorManualAdded:"Đã thêm hướng dẫn sử dụng của Giám đốc",directorManual:"Vui lòng chọn Sổ tay Giám đốc Dự án"},type:{novel:"Dựa trên tiểu thuyết gốc",script:"Dựa trên kịch bản tiểu thuyết"}},novel:{importText:"Nhập bản gốc",batchDelete:"Xóa hàng loạt",eventAnalysis:"Phân tích sự kiện",searchPlaceholder:"Tìm kiếm tên bản gốc...",search:"Tìm kiếm",generating:"Đang tạo...",genFailed:"Tạo thất bại",none:"Không có",edit:"Chỉnh sửa",delete:"Xóa",col:{id:"STT",reel:"Tập",chapter:"Tên chương",chapterData:"Nội dung chương",event:"Sự kiện",operation:"Thao tác"},msg:{batchDeleteHeader:"Xóa hàng loạt",batchDeleteBody:"Bạn có chắc chắn muốn xóa {count} dữ liệu đã chọn không?",batchDeleteSuccess:"Xóa hàng loạt thành công",deleteHeader:"Xác nhận xóa",deleteBody:'Bạn có chắc chắn muốn xóa dữ liệu của chương có tên "{name}" không?',deleteSuccess:"Xóa thành công",eventAnalysisHeader:"Phân tích sự kiện",eventAnalysisBody:"Bạn có chắc chắn muốn phân tích sự kiện cho {count} dữ liệu đã chọn không?"},import:{title:"Tải lên bản gốc tiểu thuyết",step1:"Bước 1",step2:"Bước 2",step3:"Bước 3",dragUpload:"Kéo thả tệp văn bản tiểu thuyết vào đây hoặc nhấp để tải lên",uploadHint:"Hỗ trợ định dạng .txt, .docx, dung lượng tệp khuyên dùng dưới 10MB",or:"Hoặc",pasteLabel:"Dán trực tiếp nội dung tiểu thuyết",pastePlaceholder:"Vui lòng nhập nội dung tiểu thuyết",chars:"ký tự",tooShort:"Nội dung quá ngắn, khuyên dùng ít nhất 100 ký tự",parsedChapters:"Đã phân tích {count} chương",nextStep:"Tiếp theo",prevStep:"Quay lại",selectedInfo:"Đã chọn: {count} chữ (nhỏ hơn 200.000 chữ)",eventAnalysis:"Phân tích sự kiện",saveAndAnalyze:"Lưu bản gốc và phân tích sự kiện",col:{chapter:"Chương",reel:"Tập",chapterName:"Tên chương",chapterData:"Nội dung chương"},msg:{parseFailed:"Phân tích tệp thất bại, vui lòng tải lên lại",selectFile:"Chọn tập tin",docNotSupported:"File .doc không hỗ trợ phân tích cú pháp, vui lòng chuyển đổi sang file .ts",unsupportedType:"Loại tệp không được hỗ trợ",fileTooLarge:"Dung lượng tệp vượt quá 10MB, vui lòng tải lên tệp nhỏ hơn",selectChapters:"Vui lòng đánh dấu chọn chương trước",saveSuccess:"Lưu bản gốc tiểu thuyết thành công"},importAdd:"Kéo và thả file vào đây hoặc bấm vào để tải lên",limit:"Hỗ trợ định dạng .ts"},editDialog:{title:"Chỉnh sửa bản gốc tiểu thuyết",chapterName:"Tên chương",chapterNamePh:"Vui lòng nhập tên chương",eventContent:"Nội dung sự kiện",eventContentPh:"Nhập nội dung sự kiện",chapterContent:"Nội dung chương",chapterContentPh:"Vui lòng nhập nội dung chương",cancel:"Hủy",save:"Lưu",msg:{updateSuccess:"Cập nhật bản gốc tiểu thuyết thành công"}},event:{regenerate:"Tạo lại sự kiện",batchDelete:"Xóa hàng loạt",noData:"Chưa có dữ liệu sự kiện, nhấp để bắt đầu tạo",generate:"Tạo sự kiện",generatingHint:"Đang tạo sự kiện, vui lòng chờ...",loading:"Đang tải...",delete:"Xóa",col:{id:"ID Sự kiện",eventName:"Tên sự kiện",chapters:"Chương nguồn",detail:"Quá trình sự kiện",createTime:"Thời gian tạo",operation:"Thao tác"},msg:{deleteHeader:"Xóa sự kiện",deleteBody:"Bạn có chắc chắn muốn xóa sự kiện này không?",deleteSuccess:"Xóa thành công",generateSuccess:"Tạo sự kiện thành công",batchDeleteHeader:"Xóa hàng loạt",batchDeleteBody:"Bạn có chắc chắn muốn xóa {count} dữ liệu đã chọn không?",batchDeleteSuccess:"Xóa hàng loạt thành công"}},analysis:{analyzeFirst:"Vui lòng phân tích sự kiện trước",startAnalysis:"Bắt đầu phân tích",chapterHeader:"Chương {index} - {name}",analyzing:"Đang phân tích sự kiện"}},scriptAgent:{inputPlaceholder:"Vui lòng nhập nội dung",chapterEvents:"Sự kiện chương",clearMessageMemory:"Xóa bộ nhớ tin nhắn",clearSummaryMemory:"Xóa bộ nhớ tóm tắt",clearAllMemory:"Xóa toàn bộ bộ nhớ",edit:"Chỉnh sửa",storySkeleton:"Khung xương cốt truyện",adaptationStrategy:"Chiến lược chuyển thể",script:"Kịch bản",noContent:"Chưa có nội dung",relatedAssets:"Tài nguyên liên kết",editScript:"Chỉnh sửa kịch bản",save:"Lưu",scriptTitle:"Tiêu đề",titlePlaceholder:"Vui lòng nhập tiêu đề",content:"Nội dung",contentPlaceholder:"Vui lòng nhập nội dung kịch bản",selectAssets:"Chọn tài nguyên",noAssets:"Chưa liên kết tài nguyên",selectAssetsTitle:"Chọn tài nguyên liên kết",welcomeMsg:"Xin chào! Tôi là trợ lý thông minh Toonflow, bạn có muốn tôi bắt đầu tạo kịch bản cho bạn không?",start:"Bắt đầu",memoryType:{message:"Bộ nhớ tin nhắn",summary:"Bộ nhớ tóm tắt",all:"Toàn bộ bộ nhớ"},msg:{clearConfirm:"Xác nhận xóa",clearBody:"Bạn có chắc chắn muốn xóa {type} không? Không thể hoàn tác thao tác này.",confirmClear:"Xác nhận xóa",cancel:"Hủy",memoryCleared:"Đã xóa {type}",scriptUpdated:"Cập nhật kịch bản thành công",scriptUpdateFailed:"Cập nhật kịch bản thất bại, vui lòng thử lại sau",searchScriptFailed:"Tìm kiếm kịch bản thất bại",updated:"Đã lưu thành công",error:"Lưu không thành công",reconnect:"Kết nối lại",notReconnect:"Xác nhận rằng cuộc trò chuyện kết nối lại sẽ bị cắt?",keepReconnect:"xác nhận",deleteConfirm:"Xóa xác nhận",deleteBody:"Xóa văn bản",confirmDelete:"Xác nhận xóa",scriptDeleted:"Đã xóa tập lệnh"},reconnect:"kết nối lại"},cornerScape:{batchSettings:"Cài đặt tạo hàng loạt",quickActions:"Lệnh lối tắt",selectUngenerated:"Chọn tất cả các mục chưa tạo",selectGenerated:"Chọn tất cả các mục đã tạo",selectFailed:"Chọn các mục lỗi",invertSelection:"Đảo ngược vùng chọn",clearSelection:"Bỏ chọn",batchPreview:"Xem trước ảnh hàng loạt",assetTypeFilter:"Lọc loại tài nguyên",genModel:"Mô hình tạo",resolution:"Độ phân giải",resolutionPh:"Vui lòng chọn độ phân giải",concurrency:"Số lượng đồng thời",concurrencyPh:"Vui lòng nhập số lượng đồng thời",startBatch:"Bắt đầu tạo hình ảnh theo đợt",waitingGen:"Đang chờ tạo",generating:"Đang tạo",genFailed:"Tạo thất bại",imageError:"Lỗi hình ảnh",typeRole:"Nhân vật",typeScene:"Cảnh",typeTool:"Công cụ",typeUnknown:"Không xác định",descriptionSuffix:"Mô tả:",operateScriptFirst:"Vui lòng thao tác với kịch bản trước",individualConfig:"Cấu hình riêng lẻ",noImage:"Chưa có hình ảnh",promptLabel:"Lời nhắc (Prompt)",promptPh:"Vui lòng nhập lời nhắc",aiPolish:"AI trau chuốt",regenerate:"Tạo lại",filterRole:"Nhân vật",filterScene:"Cảnh",filterTool:"Đạo cụ",unnamed:"Chưa đặt tên",noDescription:"Không có mô tả",msg:{selectModel:"Vui lòng chọn mô hình tạo",selectResolution:"Vui lòng chọn độ phân giải",enterPrompt:"Vui lòng nhập lời nhắc",enterPromptFirst:"Vui lòng nhập lời nhắc trước",genSuccess:"Tạo {name} thành công",genFailed:"Tạo {name} thất bại",promptGenSuccess:"Tạo lời nhắc thành công",polishFailed:"Trau chuốt thất bại, vui lòng thử lại",selectAtLeastOne:"Vui lòng chọn ít nhất một tài nguyên để tạo hàng loạt",batchStarted:"Bắt đầu tạo hàng loạt, tổng cộng {count} mục, số luồng đồng thời {concurrent}",batchItemFailed:"Tạo {name} thất bại: {error}",batchComplete:"Tạo hàng loạt hoàn tất",batchFailed:"Tạo hàng loạt không thành công",replaceFailed:"Thay thế không thành công",replaceSuccess:"Thay thế thành công",promptGenFail:"Tạo từ nhắc nhở không thành công",saveSuccess:"Sửa đổi lời nhắc thành công",saveFailed:"Sửa đổi từ nhắc nhở không thành công"},history:"hình ảnh lịch sử",confirmReplace:"Xác nhận thay thế",batchGenerationPrompt:"Tạo các từ nhắc nhở theo đợt",generatingPrompt:"Đang tạo",selectPromptEmpty:"Chọn tất cả từ nhắc trống",noEmptyPrompt:"Không có nội dung nào có từ nhắc trống",selectedCount:"đã chọn {count} nội dung"},script:{searchPlaceholder:"Tìm kiếm tên kịch bản...",search:"Tìm kiếm",addScript:"Kịch bản mới",cancelSelectAll:"Bỏ chọn tất cả",selectAll:"Chọn tất cả",exportScript:"Xuất kịch bản",msg:{searchFailed:"Tìm kiếm kịch bản thất bại",selectExport:"Vui lòng chọn kịch bản cần xuất trước",exportSuccess:"Xuất thành công",exportFailed:"Xuất kịch bản thất bại",deleteHeader:"Xác nhận xóa",deleteBody:"Bạn có chắc chắn muốn xóa kịch bản này không? Không thể hoàn tác thao tác này.",deleteConfirm:"Xóa",cancel:"Hủy",deleteSuccess:"Xóa thành công",deleteFailed:"Xóa thất bại",selectDelScript:"Vui lòng chọn xóa tập lệnh",batchDeleteHeader:"Xóa hàng loạt",batchDeleteBody:"Bạn có chắc chắn muốn xóa {count} kịch bản đã chọn không? Không thể hoàn tác thao tác này.",batchDeleteSuccess:"Xóa hàng loạt thành công",extractingInProgress:"Giải nén",projectNotFound:"Không tìm thấy mục",selectsExport:"Vui lòng chọn xuất tập lệnh"},add:{title:"Thêm kịch bản mới",scriptName:"Tên kịch bản",scriptNamePh:"Vui lòng nhập tên kịch bản",uploadFile:"Tải lên tệp",dragUpload:"Kéo thả tệp kịch bản vào đây hoặc nhấp để tải lên",uploadHint:"Hỗ trợ định dạng .txt, .docx, dung lượng tệp khuyên dùng dưới 10MB",scriptContent:"Nội dung kịch bản",scriptContentPh:"Vui lòng tải lên hoặc nhập nội dung kịch bản...",relatedAssets:"Tài nguyên liên kết",selectAssets:"Chọn tài nguyên",noAssets:"Chưa liên kết tài nguyên",cancel:"Hủy",confirm:"Xác nhận",msg:{fileReadFailed:"Đọc tệp thất bại",docNotSupported:"Không hỗ trợ phân tích tệp .doc, vui lòng chuyển đổi sang .txt hoặc .docx",unsupportedType:"Loại tệp không được hỗ trợ",fileTooLarge:"Dung lượng tệp vượt quá 10MB, vui lòng tải lên tệp nhỏ hơn",parsing:"Đang phân tích tệp...",parseFailed:"Phân tích tệp thất bại, vui lòng tải lên lại",selectAssetsTitle:"Chọn tài nguyên liên kết",enterContent:"Vui lòng tải lên hoặc nhập nội dung kịch bản",enterName:"Vui lòng nhập tên kịch bản",addSuccess:"Thêm kịch bản thành công",addFailed:"Thêm kịch bản thất bại, vui lòng thử lại sau"}},edit:{title:"Chi tiết kịch bản",scriptName:"Tên kịch bản",scriptNamePh:"Vui lòng nhập tên kịch bản",scriptContent:"Nội dung kịch bản",scriptContentPh:"Vui lòng nhập nội dung kịch bản...",relatedAssets:"Tài nguyên liên kết",selectAssets:"Chọn tài nguyên",noAssets:"Chưa liên kết tài nguyên",msg:{selectAssetsTitle:"Chọn tài nguyên liên kết",updateSuccess:"Cập nhật kịch bản thành công",updateFailed:"Cập nhật kịch bản thất bại, vui lòng thử lại sau"}},deleteScript:"Xóa tập lệnh theo đợt",extractAssets:""},assets:{addPrefix:"Thêm mới",batchGenerate:"Tạo hàng loạt",generatePrompt:"Tạo lời nhắc",generateImage:"Tạo hình ảnh",batchDelete:"Xóa hàng loạt",searchPlaceholder:"Tìm kiếm tên tài nguyên...",search:"Tìm kiếm",preview:"Xem trước",generate:"Tạo",edit:"Chỉnh sửa",delete:"Xóa",generating:"Đang tạo",play:"Phát",mediaPreview:"Xem trước Media",confirmBatch:"Xác nhận {type}!",model:"Mô hình",resolution:"Độ phân giải",resolutionPh:"Vui lòng chọn độ phân giải",batchGenPrompt:"Tạo lời nhắc hàng loạt",batchGenImage:"Tạo hình ảnh hàng loạt",role:"Nhân vật",prop:"Đạo cụ",scene:"Cảnh",clip:"Chất liệu (Clip)",uploadSuccess:"Tải lên thành công",selectAtLeastOne:"Vui lòng chọn ít nhất một tài nguyên",noDescription:"Không có mô tả",promptGenSuccess:"Tạo lời nhắc cho「{name}」thành công",promptGenFail:"Tạo lời nhắc cho「{name}」thất bại: {error}",selectModel:"Vui lòng chọn mô hình",selectResolution:"Vui lòng chọn độ phân giải",noPromptForImage:"「{name}」không có lời nhắc, không thể tạo hình ảnh",imageGenSuccess:"Tạo hình ảnh「{name}」thành công",imageGenFail:"Tạo hình ảnh「{name}」thất bại: {error}",confirmDeleteHeader:"Xác nhận xóa",confirmBatchDeleteBody:"Bạn có chắc chắn muốn xóa hàng loạt các tài nguyên này không? Không thể hoàn tác thao tác này.",confirmDeleteBody:"Bạn có chắc chắn muốn xóa tài nguyên này không? Không thể hoàn tác thao tác này.",deleteBtn:"Xóa",cancelBtn:"Hủy",deleteSuccess:"Xóa tài nguyên thành công",deleteFail:"Xóa tài nguyên thất bại",colPreview:"Xem trước",colName:"Tên",colPrompt:"Lời nhắc",colDescribe:"Mô tả",colRemark:"Ghi chú",colCreateTime:"Thời gian tạo",colOperation:"Thao tác",add:{name:"Tên",namePh:"Vui lòng nhập tên",describe:"Mô tả",describePh:"Vui lòng nhập mô tả",remark:"Ghi chú",remarkPh:"Vui lòng nhập ghi chú",prompt:"Lời nhắc",promptPh:"Vui lòng nhập lời nhắc",nameRequired:"Vui lòng nhập tên",describeRequired:"Vui lòng nhập chi tiết",remarkRequired:"Vui lòng nhập ghi chú",updateSuccess:"Cập nhật tài nguyên thành công",addSuccess:"Thêm tài nguyên thành công"},gen:{header:"Tạo hình ảnh",uploadRef:"Tải lên ảnh tham khảo",optional:"Tùy chọn",promptLabel:"Lời nhắc tạo ảnh",smartGenerate:"Tạo thông minh",generatingPrompt:"Đang tạo lời nhắc thông minh...",promptPlaceholder:"Mô tả nội dung hình ảnh bạn muốn tạo, ví dụ: Một thành phố tương lai đầy công nghệ, ánh đèn neon nhấp nháy, phong cách cyberpunk...",selectModel:"Chọn mô hình",selectResolution:"Chọn độ phân giải",generateBtn:"Tạo hình ảnh",resultTitle:"Kết quả tạo",generatedCount:"Đã tạo {count} ảnh, vui lòng chọn một",generatingLabel:"Đang tạo...",genFailed:"Tạo thất bại",confirmSelect:"Xác nhận lựa chọn",promptSuccess:"Tạo lời nhắc thành công",promptFail:"Tạo lời nhắc thất bại",fillPrompt:"Vui lòng điền lời nhắc",pickResolution:"Vui lòng chọn độ phân giải",pickModel:"Vui lòng chọn mô hình",unnamed:"Chưa đặt tên",assetGenSuccess:"Tạo tài nguyên thành công",assetGenFail:"Tạo tài nguyên thất bại",uploadOk:"Tải lên thành công",imageSelected:"Đã chọn hình ảnh này",imageDeleted:"Đã xóa hình ảnh này",imageSaved:"Hình ảnh đã được lưu",completed:"Hoàn thành"},batch:{header:"Tạo hàng loạt",selected:"Đã chọn {count} mục",selectAll:"Chọn tất cả",clearSelection:"Bỏ chọn tất cả",inputPh:"Vui lòng nhập nội dung",saveSelected:"Lưu các mục đã chọn ({count})",colPreviewImg:"Ảnh xem trước",selectToSave:"Vui lòng chọn mục để lưu",saveSuccess:"Lưu thành công",saveFail:"Lưu thất bại, vui lòng thử lại",promptDone:"Tạo lời nhắc hoàn tất",promptFail:"Tạo lời nhắc thất bại",missingPrompts:"Có {count} tài nguyên thiếu lời nhắc, vui lòng tạo lời nhắc trước",imageDone:"Tạo hình ảnh hoàn tất",imageGenFail:"Tạo hình ảnh thất bại",unknownError:"Lỗi không xác định",promptGenCancelled:"Thế hệ bị hủy"}},production:{selectPlaceholder:"Vui lòng chọn tập",edit:"Chỉnh sửa",node:{script:{title:"Kịch bản",editDialog:"Chỉnh sửa kịch bản"},scriptPlan:{title:"Kế hoạch quay",editDialog:"Chỉnh sửa kế hoạch quay"},storyboard:{title:"Bảng phân cảnh",notGenerated:"Chưa tạo",scaleRatio:"Tỷ lệ thu phóng",gridPreview:"Xem trước dạng lưới",noPreviewImages:"Không có ảnh để xem trước",imageLoadFailed:"Tải hình ảnh thất bại",promptPlaceholder:"Vui lòng nhập từ gợi ý",prompt:"lời nhắc",editInfo:"Sửa đổi từ nhanh chóng"},storyboardTable:{title:"Bảng danh sách phân cảnh",editDialog:"Chỉnh sửa bảng phân cảnh"},assets:{title:"Tài nguyên phái sinh",generateFailed:"Tạo thất bại",notGenerated:"Chưa tạo",originalAsset:"Tài nguyên gốc",derived:"Phái sinh",noDerivedAssets:"Không có tài nguyên phái sinh"},poster:{title:"Ảnh bìa video",coverCount:"{count} ảnh"},workbench:{title:"Bàn làm việc Video"}},editImage:{upload:"Tải lên",generate:"Tạo",saveFailed:"Lưu thất bại, vui lòng thử lại",fetchFailed:"Lấy dữ liệu thất bại",generating:"Đang tạo...",deleteNode:"Xóa Node",ratio:"Tỷ lệ",quality:"Chất lượng",generateBtn:"Tạo hình ảnh",selectImage:"Chọn hình ảnh",imageGeneration:"Tạo hình ảnh",promptPlaceholder:"Mô tả hình ảnh bạn muốn tạo...",imageRef:"Ảnh {index}",noReferences:"Không có ảnh tham khảo nào có thể sử dụng",selectModel:"Vui lòng chọn mô hình trước",selectQuality:"Vui lòng chọn chất lượng",selectRatio:"Vui lòng chọn tỷ lệ",generateFailed:"Tạo thất bại",generateFirst:"Vui lòng tạo hình ảnh trước",generatedResult:"Kết quả tạo",waitingGenerate:"Đang chờ tạo",layoutLR:"Bố cục tự động - Ngang",layoutTB:"Bố cục tự động - Dọc",uploadAssetImage:"Tải lên hình ảnh tài sản",uploadStoryboardImage:"Tải lên hình ảnh storyboard",uploadImage:"Tải lên hình ảnh nội dung",mode:"người mẫu",closeConfirmTitle:"Đóng bảng chỉnh sửa?",closeConfirmBody:"Dữ liệu chưa lưu sẽ bị mất sau khi đóng"},save:"Lựa chọn",cancel:"Hủy",chatBox:{inputPlaceholder:"Nhập tin nhắn...",generateDerivedAssets:"Tạo tài nguyên phái sinh",welcomeMessage:"Xin chào! Tôi là trợ lý AI của bạn, tôi có thể giúp gì cho bạn?",adjustModel:"Điều chỉnh mô hình",startMakingVideo:"Bắt đầu làm video",startMakingVideoPrompt:"Hãy giúp tôi bắt đầu làm video",clearMessageMemory:"Xóa bộ nhớ tin nhắn",clearSummaryMemory:"Xóa bộ nhớ tóm tắt",clearAllMemory:"Xóa tất cả bộ nhớ",messageMemory:"Bộ nhớ tin nhắn",summaryMemory:"Bộ nhớ tóm tắt",allMemory:"Tất cả bộ nhớ",confirmClear:"Xóa bộ nhớ",confirmClearBody:"Bạn có chắc chắn muốn xóa {type} không?",confirmClearBtn:"Xác nhận xóa",memoryCleared:"Đã xóa {type}"},wb:{quickPreview:"Xem trước nhanh",videoGeneration:"Bảng phân cảnh",videoEditing:"bàn biên tập",hint:"Gợi ý",extractLines:"Bạn có muốn trích xuất lời thoại từ video không?",no:"Không",confirm:"Xác nhận",extractLinesQuestion:"Bạn có muốn trích xuất lời thoại từ video làm phụ đề không?",importingLoading:"Đang nhập, vui lòng chờ...",mainTrackVideo:"Track chính (Video)",subtitle1:"Phụ đề 1",storyboardVideoName:"Video storyboard-{storyboard}.mp4"},preview:{noImage:"Chưa có hình ảnh",storyboardDesc:"Mô tả phân cảnh",serialNumber:"STT",noDescription:"Chưa có mô tả",duration:"Thời lượng",seconds:"giây",relatedAssets:"Tài nguyên liên quan",role:"Nhân vật",prop:"Đạo cụ",scene:"Cảnh",noCharacters:"Không có nhân vật xuất hiện",imagePrompt:"Lời nhắc hình ảnh",selectAll:"Chọn tất cả",exportImage:"Xuất hình ảnh",sceneDescription:"Mô tả khung hình",promptLabel:"Lời nhắc",restoreSort:"Khôi phục sắp xếp",restoreSortConfirm:"Bạn có chắc chắn muốn khôi phục về thứ tự sắp xếp ban đầu không?",tip:"Mẹo",selectAtLeastOne:"Vui lòng chọn ít nhất một phân cảnh để xuất",exportFilename:"Hình ảnh kịch bản"},generate:{noVideo:"Chưa có video",videoPrompt:"Lời nhắc video",promptPlaceholder:"Nhập từ gợi ý để mô tả nội dung video bạn muốn tạo...",refImage:"Ảnh tham khảo",image:"Hình ảnh",refVideo:"Video tham khảo",refImageLabel:"Hình ảnh tham khảo",refAudio:"Âm thanh tham khảo",muteAudio:"Tắt âm thanh",enableAudio:"Bật âm thanh",resolution:"Độ phân giải",duration:"Thời lượng",generate:"Tạo",historyVersions:"Phiên bản lịch sử",confirmSelection:"Xác nhận đã chọn",noHistory:"Chưa có lịch sử",generating:"Đang tạo",generateFailed:"Tạo thất bại",selectAll:"Chọn tất cả",videoTrack:"Track video",batchGenerate:"Tạo hàng loạt",importToEditor:"Nhập vào bàn dựng",modeSingleImage:"Ảnh đơn",modeMultiImage:"Nhiều ảnh",modeGridImage:"Lưới nhiều ảnh",modeStartEnd:"Khung hình đầu/cuối",modeText:"Văn bản -> Video",modeVideoRef:"Video tham khảo",modeImageRef:"Ảnh tham khảo",modeAudioRef:"Âm thanh tham khảo",modeTextRef:"Văn bản tham khảo",startFrame:"Khung hình đầu",startFrameOptional:"Khung hình đầu (Tùy chọn)",endFrame:"Khung hình cuối",endFrameOptional:"Khung hình cuối (Tùy chọn)",selectRefImage:"Chọn ảnh tham khảo",selectRefImages:"Chọn các ảnh tham khảo",selectEndFrame:"Chọn ảnh khung hình cuối",selectRefVideoAsset:"Chọn video tham khảo",selectRefAudioAsset:"Chọn âm thanh tham khảo",selectRefImageAsset:"Chọn ảnh tham khảo",selectImageSource:"Chọn nguồn hình ảnh",fromStoryboard:"Hình storyboard",fromStoryboardDesc:"Chọn hình từ danh sách storyboard",fromAssets:"Hình tài nguyên",fromAssetsDesc:"Chọn hình từ thư viện tài nguyên",confirmDelete:"Xác nhận xóa",confirmDeleteBody:"Bạn có chắc chắn muốn xóa video này không? Không thể hoàn tác thao tác này.",delete:"Xóa",cancel:"Hủy",deleteSuccess:"Xóa video thành công",deleteFailed:"Xóa thất bại",selectVideoFirst:"Vui lòng chọn một video trước",confirmSuccess:"Xác nhận chọn thành công",batchSubmitted:"Đã gửi yêu cầu tạo hàng loạt, đang xử lý...",configNotFound:"Cấu hình không tồn tại",pollingFailed:"Truy vấn trạng thái video không thành công, vui lòng làm mới theo cách thủ công",batchGeneratePrompt:"Tạo các từ nhắc nhở theo đợt",batchPromptEmpty:"Có sẵn bảng phân cảnh {name} cho lời nhắc bằng video. Vui lòng tạo hoặc điền vào lời nhắc trước",modelEmpty:"Trước tiên hãy chọn mô hình tạo video",generatingPrompt:"Tạo lời nhắc thông minh"},editVideo:{reset:"Đặt lại",undo:"Hoàn tác (Undo)",redo:"Làm lại (Redo)",split:"Cắt / Chia nhỏ",delete:"Xóa",rendering:"Đang kết xuất (Render)...",exportVideo:"Xuất Video",exportSuccess:"Đã xuất video hoàn tất",exportFailed:"Xuất video thất bại",sampleSubtitle:"Văn bản phụ đề mẫu",customText:"Nội dung văn bản tùy chỉnh",transitionBetweenClips:"Chuyển cảnh cần được thêm vào giữa 2 Đoạn video (Clip) liền kề",transitionExists:"Vị trí này đã có chuyển cảnh",videoPreviewArea:"Khu vực xem trước video",clipMaterials:"Tài liệu dựng phim",propertyPanel:"Bảng thuộc tính",selectClip:"Chọn một Đoạn video (Clip) để xem thuộc tính",basicInfo:"Thông tin cơ bản",name:"Tên",clipNamePlaceholder:"Tên Đoạn video",startTime:"Bắt đầu",endTime:"Kết thúc",totalDuration:"Tổng thời lượng",videoProperties:"Thuộc tính video",opacity:"Độ mờ",volume:"Âm lượng",playbackSpeed:"Tốc độ phát",audioProperties:"Thuộc tính âm thanh",fadeIn:"Fade in (Rõ dần)",fadeOut:"Fade out (Mờ dần)",transitionProperties:"Thuộc tính chuyển cảnh",transitionType:"Loại chuyển cảnh",transFade:"Làm mờ (Fade)",transSlide:"Trượt (Slide)",transWipe:"Gạt (Wipe)",transDissolve:"Hòa tan (Dissolve)",transZoom:"Thu phóng (Zoom)",transRotate:"Xoay (Rotate)",transitionDuration:"Thời lượng chuyển cảnh",subtitleProperties:"Thuộc tính phụ đề",textContent:"Nội dung văn bản",fontSize:"Cỡ chữ",copy:"Sao chép",deleteConfirm:"Xác nhận xóa",deleteClipConfirm:"Bạn có chắc chắn muốn xóa Đoạn video này không?",avCanvasNotInit:"AVCanvas chưa được khởi tạo",noExportContent:"Không có nội dung nào để xuất",exportProject:"Xuất dự án",transitionAdded:"Đã thêm chuyển cảnh: {name}",splitClip:"Cắt Đoạn video",deleteClip:"Xóa Đoạn video",addClip:"Thêm {name}",duplicateClip:"Nhân bản Đoạn video",addTransition:"Thêm chuyển cảnh",updateClip:"Cập nhật Đoạn video {key}",updatePlaybackRate:"Cập nhật tốc độ phát thành {rate}x",updateTransitionDuration:"Cập nhật thời lượng chuyển cảnh",playbackRateRange:"Tốc độ phát phải nằm trong khoảng từ 0.1 đến 10",updatePlaybackRateFailed:"Cập nhật tốc độ phát thất bại:",importProject:"Nhập dự án",import:"Nhập"},clipType:{video:"Video",audio:"Âm thanh",subtitle:"Phụ đề",transition:"Chuyển cảnh",sticker:"Nhãn dán",filter:"Bộ lọc",effect:"Hiệu ứng"},track:{video:"Video",image:"Hình ảnh",audio:"Âm thanh",subtitle:"Phụ đề",text:"Văn bản",sticker:"Nhãn dán",filter:"Bộ lọc",effect:"Hiệu ứng"},transition:{fade:"Làm mờ (Fade)",slide:"Trượt (Slide)",slideLeft:"Trượt sang trái",slideRight:"Trượt sang phải",slideUp:"Trượt lên trên",slideDown:"Trượt xuống dưới",wipe:"Gạt (Wipe)",wipeLeft:"Gạt sang trái",wipeRight:"Gạt sang phải",wipeUp:"Gạt lên trên",wipeDown:"Gạt xuống dưới",dissolve:"Hòa tan",zoom:"Thu phóng",zoomIn:"Phóng to",zoomOut:"Thu nhỏ",rotate:"Xoay",circle:"Hình tròn",diamond:"Hình thoi",clock:"Đồng hồ",blur:"Làm mờ (Blur)"},media:{titleText:"Văn bản tiêu đề",subtitleText:"Văn bản phụ đề",customText:"Văn bản tùy chỉnh",media:"Media (Phương tiện)",image:"Hình ảnh",audio:"Âm thanh",subtitle:"Phụ đề",transition:"Chuyển cảnh",effect:"Hiệu ứng",filter:"Bộ lọc",loading:"Đang tải...",subtitlePreview:"Chữ",video:"băng hình"},effect:{fadeIn:"Rõ dần",fadeOut:"Mờ dần",flash:"Chớp nháy",shake:"Rung lắc",zoomIn:"Phóng to vào",zoomOut:"Thu nhỏ ra",pulse:"Nhịp đập",rotateIn:"Xoay vào",sticker1:"Nhãn dán 1",sticker2:"Nhãn dán 2"},filter:{grayscale:"Đen trắng",sepia:"Cổ điển (Sepia)",warm:"Tone ấm",cool:"Tone lạnh",vivid:"Rực rỡ",bright:"Sáng sủa",highContrast:"Độ tương phản cao",blur:"Làm mờ",invert:"Đảo màu",semiTransparent:"Bán trong suốt"},guideSwitchEpisode:"Chuyển đổi tập",guideSwitchEpisodeBody:"Tính năng chuyển đổi tập đã được chuyển đến đây nhé!",autoLayoutLR:"Tự động sắp chữ-bố trí bên trái và bên phải",autoLayoutTB:"Tự động sắp chữ bố cục trên và dưới",getFlowData:"Làm mới không gian làm việc",confirm:"Xác nhận chuyển tập",confirmEpisodesSwitch:"Nhiệm vụ hiện tại vẫn đang được tiến hành. Việc chuyển các tập sẽ kết nối lại phiên. Bạn có muốn tiếp tục chuyển đổi không?"},task:{title:"Danh sách tác vụ",subtitle:"Nhật ký thực thi tác vụ mới nhất của bạn",refresh:"Làm mới",categoryLabel:"Loại tác vụ:",stateLabel:"Trạng thái:",noFailReason:"Chưa có lý do thất bại",stateAll:"Tất cả",stateRunning:"Đang tiến hành",stateCompleted:"Đã hoàn thành",stateFailed:"Tạo thất bại",fetchFailed:"Lấy danh sách tác vụ thất bại",col:{taskClass:"Loại tác vụ",relatedObjects:"Đối tượng liên quan",model:"Mô hình",describe:"Mô tả",state:"Trạng thái",startTime:"Thời gian",reason:"Lý do thất bại"},project:"Tên dự án:"},noVideo:"Chưa có video",prompt:"Lời nhắc video",generateText:"Lời nhắc do AI tạo ra",selectStoryboard:"Chọn bảng phân cảnh",generate:{noVideo:"Chưa có video",generateText:"Lời nhắc do AI tạo ra",selectStoryboard:"Chọn bảng phân cảnh",generate:"Tạo video",history:"Phiên bản lịch sử",generating:"Đang tạo",generateFailed:"thất bại",selectAll:"Chọn tất cả",selected:"Đã chọn",batchGenerateText:"Tạo các từ nhắc nhở theo đợt",batchGenerateVideo:"Tạo video hàng loạt",importVideo:"Nhập vào bàn chỉnh sửa",emptyTrack:"Đoạn {chỉ mục 1}",del:"xóa bỏ",delConfirm:"Bạn có chắc chắn muốn xóa đoạn này?",selectSource:"Chọn nguồn",confirm:"Chọn từ nội dung",cancel:"Chọn từ bảng phân cảnh",selectVideoFailed:"Lựa chọn video không thành công",selectVideoSuccess:"Lựa chọn video thành công",selectTrackFirst:"Vui lòng chọn bảng phân cảnh trước",noSelectedVideo:"Không có video nào được chọn",generateConfirm:"Xác nhận thế hệ",generateConfirmBody:"Xác nhận để tạo video",generateVideosInBatches:"Tạo video hàng loạt",generateStarted:"Bắt đầu xây dựng",promptEmpty:"Kiểm tra dữ liệu cần tạo video và từ nhắc trống. Bạn có muốn tiếp tục tạo nó không?",skipDataWithEmptyVideoPromptWords:"Dữ liệu video cần được tạo đã tồn tại và từ nhắc trống.",duration:"khoảng thời gian",resolution:"nghị quyết",delVideo:"Xác nhận xóa video này?",delSuccess:"Xóa thành công",addReference:"thêm tài liệu tham khảo",promptPlaceholder:"Vui lòng nhập từ nhắc video",downloadVideo:"Tải xuống video hàng loạt",selectVideo:"Vui lòng kiểm tra video bạn muốn tải xuống"}},F_i={slogan:"Nền tảng sáng tạo phim ngắn thông minh",tips:"Tài khoản mặc định: admin / admin123",settings:"Cài đặt máy chủ",requestAddress:"Địa chỉ yêu cầu",username:"Tên người dùng",password:"Mật khẩu",login:"Đăng nhập",usernameRequired:"Vui lòng nhập tên người dùng",passwordRequired:"Vui lòng nhập mật khẩu",enterUsernameAndPassword:"Vui lòng nhập tên người dùng hoặc mật khẩu",loginSuccess:"Đăng nhập thành công",settingsSaved:"Đã lưu cài đặt"},N_i={cancel:"Hủy",confirm:"Xác nhận",selectAssets:"Chọn tài sản",sessionExpired:"Phiên đã hết hạn, vui lòng đăng nhập lại",openSettings:"Mở cài đặt",cancelled:"Đã hủy tạo",defaultReel:"Tập chính",save:"cứu",submitting:"Đang gửi",editSuccess:"Sửa đổi thành công",editFailed:"Sửa đổi không thành công",submit:"nộp"},U_i={prompt:"lời nhắc"},j_i={welcomeTitle:"Chào mừng đến với ToonFlow",welcomeDesc:"Nền tảng quy trình tạo truyện tranh do AI điều khiển, chúng ta hãy dành một phút để hoàn thành cấu hình ban đầu.",startConfig:"Bắt đầu cấu hình",skip:"Bỏ qua khởi động",configModel:"Thêm dịch vụ mẫu",configData:"Cấu hình tác nhân",startUse:"Bắt đầu",configModelTitle:"Thêm nhà cung cấp dịch vụ mô hình",configModelDesc:"Trước tiên, bạn cần thêm ít nhất một nhà cung cấp dịch vụ mô hình AI (như OpenAI, Claude, v.v.) vào cài đặt và điền API Key tương ứng.",configModelTip:'Nhấp vào nút bên dưới sẽ mở tab "Dịch vụ mẫu" của trang cài đặt. Sau khi thêm nhà cung cấp, quay lại đây để tiếp tục.',configModelBtn:"Đi tới cấu hình dịch vụ mô hình",configAgentTitle:"Chỉ định mô hình đại lý",configAgentDesc:"Tiếp theo, gán mô hình cho từng mô-đun chức năng trong cấu hình Tác nhân để hệ thống biết cần gọi mô hình nào để hoàn thành nhiệm vụ.",configAgentTip:'Nhấp vào nút bên dưới sẽ mở tab "Cấu hình tác nhân" của trang cài đặt. Quay lại đây sau khi gán mô hình cho từng chức năng.',configAgentBtn:"Đi tới cấu hình Đại lý",finishTitle:"🎉 Mọi thứ đã sẵn sàng!",finishDesc:"Cấu hình đã hoàn tất và bây giờ bạn có thể bắt đầu sử dụng tất cả các tính năng. Nếu bạn cần điều chỉnh nó, bạn có thể sửa đổi nó trong cài đặt bất cứ lúc nào.",qrcodeLabel:"Tham gia nhóm liên lạc WeChat để nhận thêm trợ giúp:",githubLabel:"Nếu bạn thấy nó hữu ích, vui lòng cho chúng tôi ⭐ Sao!",prevStep:"Bước trước",nextStep:"Bước tiếp theo",finish:"Bắt đầu"},W_i={skillManagement:{search:"Tìm kiếm tên tập tin",empty:"Không có tập tin phù hợp",edit:"biên tập",selectOnTheLeft:"Vui lòng chọn một tập tin từ bên trái"}},V_i={assets:{notExist:"Tài sản không tồn tại",notDerivativeExist:"Tài sản phái sinh không tồn tại",derivativeUpdateSuccess:"Cập nhật thành công",derivativeState:"Không được tạo",derivativeAddSuccess:"Đã thêm thành công",derivativeDelSuccess:"Xóa thành công",notGenerated:"Không được tạo"},addSuccess:"Cập nhật thành công",state:{unused:"Không được tạo"},saveSuccess:"Đã thêm thành công"},z_i={generating:"Đang tạo"},H_i={scanning:"🔍 Phân tích và tải Skill",scanComplete:"✨ Quét Skill hoàn tất",inserted:"✅ Đã thêm kỹ năng {count}",updated:"🔄 Cập nhật {count} kỹ năng",removed:"🗑️ Xóa {count} Skill",scannedFiles:"📁 Đã quét {count} tệp",noDescription:"📝 {count} Skill thiếu mô tả",noAttribution:"👤 {count} Skill thiếu thông tin tác giả",configWarning:"⚠️ Cảnh báo cấu hình Skill",openSettings:"Mở cài đặt",scanFailed:"❌ Quét thất bại",checkNetwork:"🔌 Vui lòng kiểm tra kết nối mạng hoặc thử lại sau",retryLater:"🔁 Vui lòng thử lại sau"},$_i="Tạo video",X_i="Phiên bản lịch sử",G_i="Đang tạo",Y_i="thất bại",Z_i="Chọn tất cả",q_i="Đã chọn",K_i="Nhập video",J_i="Đoạn {chỉ mục 1}",eSi="Xác nhận xóa",tSi="Bạn có chắc chắn muốn xóa đoạn này?",nSi="Chọn nguồn",iSi="Chọn từ nội dung",rSi="Chọn từ bảng phân cảnh",oSi={newVersion:"Có phiên bản mới, bạn có muốn cập nhật không?"},sSi={components:I_i,settings:M_i,workbench:P_i,login:F_i,common:N_i,"components.storyboardImageCheck.camera":"Máy quay","components.storyboardImageCheck.dialogTitle":"Chọn hình storyboard","components.storyboardImageCheck.preview":"Xem trước","components.storyboardImageCheck.src":"Ảnh xem trước","components.storyboardImageCheck.title":"Tiêu đề","components.storyboardImageCheck.duration":"Thời lượng","components.storyboardImageCheck.lines":"Lời thoại","components.storyboardImageCheck.createTime":"Thời gian tạo","workbench.script.extractAssets":"Trích xuất tài sản",promptManage:U_i,hello:j_i,setting:W_i,storyboard:V_i,productionAgent:z_i,skillScan:H_i,generate:$_i,history:X_i,generating:G_i,generateFailed:Y_i,selectAll:Z_i,selected:q_i,importVideo:K_i,emptyTrack:J_i,del:eSi,delConfirm:tSi,selectSource:nSi,confirm:iSi,cancel:rSi,"workbench.script.msg.exportFailed":"Xuất không thành công","workbench.production.node.assets.confirmDeleteBody":"Xác nhận xem có xóa nội dung hay không","workbench.production.node.assets.removeFailed":"Không thể xóa nội dung",version:oSi,"workbench.production.generatedNode.localUpload":"Tải lên cục bộ","workbench.production.editImage.uploadFailed":"Tải hình ảnh lên không thành công","workbench.production.editImage.noImage":"Vui lòng thêm hình ảnh trước"},aSi={editMdPreivew:{title:"編集",confirm:"保存",cancel:"キャンセル"},imageTools:{copy:"画像をコピー",preview:"プレビュー",download:"ダウンロード",msg:{imageLoadFailed:"画像の読み込みに失敗しました",convertFailed:"変換に失敗しました",copied:"クリップボードにコピーしました",copyFailed:"コピーに失敗しました",downloadFailed:"ダウンロードに失敗しました",downloadStarted:"ダウンロードを開始します",downloadBlockedOpenNewWindow:"現在の画像ソースでダウンロードが制限されている可能性があるため、新しいウィンドウで開きました"}},migrateShow:{title:"データの移行",desc:"旧バージョンのデータが検出されました。データを移行しますか?",hide:"今後表示しない",confirm:"確定",msg:{migrateSuccess:"データの移行に成功しました",migrateFailed:"データの移行に失敗しました"}},modelSelect:{placeholder:"モデルを選択してください",type:{image:"画像",text:"テキスト",video:"動画"},msg:{fetchModelFailed:"モデルデータの取得に失敗しました:"},goSetting:"設定に移動してモデルを追加します"}},lSi={title:"ToonFlow 設定",menu:{language:"言語設定",vendorConfig:"モデルサービス",agentConfig:"Agent 設定",promptManage:"プロンプト管理",skillManagement:"スキル管理",memoryConfig:"Agent メモリ設定",loginConfig:"ログイン設定",dbConfig:"データベース操作",fileManagement:"ファイル管理",otherConfig:"その他の設定",requestConfig:"リクエストURL",about:"アップデートの確認",logoutConfig:"ログアウト",skillsSkillsManagement:"スキルスキル管理"},language:{desc:"インターフェースの表示言語を選択します",msg:{saved:"言語設定を保存しました"}},vendor:{addVendor:"プロバイダーを追加",noVendor:"プロバイダーがありません。先に追加してください",required:"必須",optionalSection:"任意項目",modelSettings:"モデル設定",addManually:"手動追加",test:"テスト",edit:"編集",delete:"削除",deleteVendor:"プロバイダーを削除",editCode:"コードを編集",updateConfig:"設定を更新",addModel:"モデルを追加",editModel:"モデルを編集",displayName:"表示名",displayNamePlaceholder:"例:GPT-4o",modelId:"モデルID",modelIdPlaceholder:"例:gpt-4o",modelType:"モデルタイプ",multimodal:"マルチモーダル",supported:"対応",notSupported:"非対応",toolCall:"ツール呼び出し",imageMode:"画像モード",videoMode:"動画モード",audioOutput:"音声出力",durationResolution:"デュレーション/解像度マッピング",durationSec:"デュレーション(秒)",resolution:"解像度",enterAndPress:"入力してEnterを押す",addDurationResolution:"デュレーションと解像度を追加",testResult:"テスト結果",generating:"生成中...",addVendorDialog:"プロバイダーの追加",codeEditorInfo:"プロバイダー情報の設定にはTypeScriptコードを記述してください",reset:"リセット",importFile:"ファイルをインポート",textModel:"テキストモデル",imageModel:"画像モデル",videoModel:"動画モデル",textToImage:"テキストから画像生成",textToVideo:"テキストから動画生成",singleImage:"単一画像",multiImage:"複数画像モード",multiReference:"複数画像参照",gridImage:"グリッド単一画像",startEndRequired:"開始・終了フレーム(両方必須)",endFrameOptional:"開始・終了フレーム(終了フレームは任意)",startFrameOptional:"開始・終了フレーム(開始フレームは任意)",textRef:"テキスト",imageRef:"画像",videoRef:"動画",audioRef:"音声",audioOptional:"任意",audioOnly:"音声付き動画のみ出力",noAudio:"無音動画のみ出力",msg:{getVendorListFailed:"プロバイダーリストの取得に失敗しました",vendorConfigUpdated:"プロバイダー設定を更新しました",updateFailed:"更新に失敗しました",highRiskConfirm:"⚠️ 高リスク操作の確認",addVendorRiskBody:"新しいAIプロバイダーを追加すると、システムAPIへのアクセス権が付与されます。プロバイダーのコードソースが信頼できるか確認してください!",iKnowRisk:"リスクを承知しました",cancel:"キャンセル",confirmAgain:"⚠️ 再確認",addVendorConfirmBody:"本当にこのプロバイダーを追加しますか?追加後、システムのモデルスケジューリングに組み込まれます。",confirmAndAdd:"確認して追加",goBackCheck:"戻って確認",vendorAdded:"プロバイダーが正常に追加されました",addFailed:"追加に失敗しました",updateVendorRiskBody:"AIプロバイダー設定を更新すると、システムAPIへのアクセス権と動作が変更されます。変更後のコードソースが信頼できるか確認してください!",updateVendorConfirmBody:"本当にこのプロバイダー設定を更新しますか?更新後、システムのモデルスケジューリングに影響します。",confirmAndUpdate:"確認して更新",updateSuccess:"プロバイダー設定の更新に成功しました",fillDisplayName:"表示名を入力してください",fillModelId:"モデルIDを入力してください",selectImageMode:"画像モードを選択してください",selectVideoMode:"動画モードを選択してください",groupPrefix:"第 {n} グループ:",addDuration:"デュレーションを追加してください",addResolution:"解像度を追加してください",selectVendorFirst:"先にプロバイダーを選択してください",modelIdExists:"モデルIDが既に存在します",modelAdded:"モデルが正常に追加されました",modelUpdated:"モデルが正常に更新されました",enterApiKey:"API KEY を入力してください",enterApiUrl:"API URL を入力してください",testSuccess:"テスト成功",imageGenSuccess:"画像の生成に成功しました",videoGenSuccess:"動画の生成に成功しました",requestFailed:"リクエストに失敗しました",deleteModelConfirm:"モデルの削除確認",deleteModelBody:"削除後は元に戻せません。続行しますか?",confirmDelete:"削除を確認",modelDeleted:"モデルを削除しました",deleteVendorConfirm:"プロバイダーの削除確認",deleteVendorBody:"削除すると、このプロバイダーのすべてのモデルも一緒に削除されます。続行しますか?",vendorDeleted:"プロバイダーを削除しました",deleteFailed:"削除に失敗しました",enabled:"有効",disabled:"無効",linkAddVendorRiskBody:"新しい AI ベンダーを追加すると、システム API にアクセスできるようになります。ベンダーのリンク ソースが信頼できることを確認してください。",importAdd:"新しい AI ベンダーを追加すると、システム API にアクセスできるようになります。ベンダーのドキュメント ソースが信頼できることを確認してください。",linkAddFailed:"リンクの追加に失敗しました"},associationSkills:"関連スキル",think:"深い考え",code:"コード",linkAddPlaceholder:"追加するリンクを入力してください",noFileSelected:"ファイルは正常にインポートされました",linkAdd:"確認する"},agent:{bannerDesc:"Toonflow公式中継サイトを使用すると、設定をワンクリックで入力でき、手動設定なしですぐに使用できます。",visitWebsite:"サイトへ移動",fillKey:"KEYを入力",oneClickFill:"ワンクリック入力",notOpen:"未公開",notConfigured:"未設定",modelConfig:"モデル設定",confirm:"確定",cancel:"キャンセル",selectModel:"モデルを選択",fillKeyHeader:"Toonflowプラットフォームの公式KEYを入力",keyPlaceholder:"KEYを入力してください",save:"保存",msg:{notAvailable:"この機能は現在準備中です。ご期待ください",configSuccess:"設定に成功しました",updateConfigFailed:"設定の更新に失敗しました:",keyValid:"KEYが有効です。Toonflowプラットフォームに接続しました",keyInvalid:"KEYが無効です。確認して再入力してください:",enterKey:"KEYを入力してください",saveFailed:"保存に失敗しました:",getAgentListFailed:"Agent設定リストの取得に失敗しました:",toonflowNotFound:"トゥーンフロー公式乗換駅は存在しない"}},memory:{warning:"以下の設定項目には推奨値がプリセットされています。各設定の意味と影響を明確に理解していない限り、現在の設定を維持することをお勧めします。",vectorModelConfig:"ベクトルモデル設定",modelFilePath:"モデルファイルパス",quantizationType:"量子化タイプ",quantizationPlaceholder:"量子化タイプを入力してください",memoryParams:"メモリパラメータ",messagesPerSummary:"メッセージ圧縮トリガー件数",messagesPerSummaryHelp:"直近 N 件の会話コンテキストを保持します。",shortTermLimit:"単発取得の未圧縮メッセージ数",shortTermLimitHelp:"検索時に返される候補メモリの件数です。",summaryMaxLength:"要約最大文字数",summaryMaxLengthHelp:"メッセージ圧縮時に許容される最大文字数です。",summaryLimit:"検索可能な圧縮メッセージ数",summaryLimitHelp:"検索可能な圧縮メッセージの件数です。",ragLimit:"検索メモリ件数",ragLimitHelp:"検索時に取得するメッセージ数です。",deepRetrieveSummaryLimit:"ベクトル検索の圧縮メッセージ数",deepRetrieveSummaryLimitHelp:"圧縮メッセージ内容を検索する際に取得するメッセージ数です。",saveConfig:"設定を保存",clearMemory:"メモリをクリア",restoreDefault:"デフォルトに戻す",msg:{saved:"メモリ設定を保存しました",clearConfirmTitle:"メモリのクリア確認",clearConfirmBody:"AIのグローバルメモリデータがクリアされ、元に戻せなくなります。続行しますか?",confirmClear:"クリアを確認",cancel:"キャンセル",cleared:"メモリをクリアしました",clearFailed:"メモリのクリアに失敗しました"}},login:{username:"ユーザー名",usernamePlaceholder:"ユーザー名を入力してください",password:"パスワード",passwordPlaceholder:"パスワードを入力してください",modify:"変更",msg:{enterUsername:"ユーザー名を入力してください",usernameLength:"ユーザー名は2〜20文字である必要があります",enterPassword:"パスワードを入力してください",passwordLength:"パスワードは6〜20文字である必要があります",fetchFailed:"ユーザー情報の取得に失敗しました",saveSuccess:"保存に成功しました",saveFailed:"保存に失敗しました"}},db:{clearDb:"データベースをクリア",clearDbDesc:"データ構造を保持し、全テーブルのデータをクリアします",clearData:"データをクリア",confirmAction:"操作の確認",msg:{clearDbTitle:"データベースのクリア",firstConfirm:"本当にすべてのテーブルをクリアしますか?クリアしたデータは復元できません!",secondConfirm:"これが最後の確認です。クリアするとすべてのデータが永久に失われます!",keyword:"クリア",confirm:"確定",pleaseInput:"入力してください",cleared:"すべてのテーブルをクリアしました",operationFailed:"操作に失敗しました。再試行してください",cancelled:"操作がキャンセルされました"}},other:{requestTimeout:"リクエストタイムアウト",seconds:"秒",inputSeconds:"秒を入力してください",assetConcurrency:"アセット生成の同時実行数",count:"個",inputCount:"個数を入力してください",chapterRegex:"章分割の正規表現",restoreDefault:"デフォルトに戻す",regexPlaceholder:"正規表現を入力してください",showTitleBar:"タイトルバーを表示する",isElectron:"デスクトップモードに切り替える",canvasScroll:"キャンバススクロール",canvasIsDisabled:"キャンバスのズーム",agentCanvasScalingMethod:"制作ページでの無制限のキャンバス ホイール操作",zoom:"ズーム",scroll:"スクロール",isInteracting:"制作ページでの無制限のキャンバス ドラッグ パフォーマンスの最適化",closeIsInteracting:"閉鎖"},request:{warning:"特別な理由がない限り、変更や設定は不要です",apiAddress:"API アドレス",apiPlaceholder:"API リクエストアドレスを入力してください",save:"保存",reset:"リセット",msg:{enterApi:"API アドレスを入力してください",validUrl:"有効な HTTP/HTTPS アドレスを入力してください",saved:"リクエストアドレスを保存しました",reset:"デフォルトアドレスにリセットしました",refreshFailed:"更新に失敗しました"},refresh:"リフレッシュする"},about:{slogan:"オープンソースのAI主導コミック/絵コンテ制作ツール",latestVersion:"現在は最新バージョンです",checkUpdate:"アップデートの確認",codeRepository:"コードリポジトリ",githubRepo:"GitHub リポジトリ",giteeRepo:"Gitee リポジトリ",versionUpdate:"バージョンアップデート",checkUpdateGithub:"アップデート確認 (GitHub)",getFromGithub:"GitHub Releaseから最新版を取得",checkUpdateGitee:"アップデート確認 (Gitee)",getFromGitee:"Gitee Releaseから最新版を取得",license:"ライセンス",licenseDesc:"オープンソースライセンス・クリックして詳細を確認",updateAvailable:"新しいバージョンが見つかりました",upToDate:"新しいバージョンが検出されました"},logout:{warning:"ログアウト後、システムを継続して使用するには再ログインが必要です。",confirmLogout:"本当にログアウトしますか?",logout:"ログアウト",msg:{logoutSuccess:"ログアウトに成功しました",logoutFailed:"ログアウトに失敗しました。再試行してください"}},file:{quickOpen:"ディレクトリをすばやく開く",open:"開く",dockerDesc:"Docker / フロント・バックエンド分離デプロイの場合は、「/data/*」ディレクトリに移動して手動でファイルを管理してください。",desktopOnly:"この機能はデスクトップ版のみ対応しています",folders:{data:"data",dataDesc:"データディレクトリ。",logs:"data/logs",logsDesc:"実行ログとエラーログ。",oss:"data/oss",ossDesc:"ファイルストレージ関連リソース。",skills:"data/skills",skillsDesc:"スキルとプロンプト設定ファイル。",models:"data/models",modelsDesc:"モデルファイルと設定。",web:"data/web",webDesc:"Web関連リソース(フロントエンドビルド成果物など)。",serve:"data/serve",serveDesc:"バックエンドサービス関連ファイル。"},openFailed:"フォルダを開けませんでした"},skill:{scanSkills:"スキャンスキル",fileLost:"ファイルがありません"},dev:{warning:"以下は開発者ツールです。注意して操作してください。",openDevtool:"開ける",devtoolsDoc:"書類のアドレス",devtoolsDesc:"オンにすると、Toonflow のインストール ディレクトリに .devtools フォルダーが作成されます。 Toonflow に書き込み権限があることを確認してください (管理者として実行)。",devtoolsDesc2:"このディレクトリで npx {'@'}ai-sdk/devtools を実行して、テレメトリのデバッグを有効にします",openDevtoolFailed:"開発者ツールを開けませんでした。Toonflow デスクトップがインストールされていることを確認してください",notInElectron:"WEB環境の場合はブラウザコンソールを手動で開いてください"}},cSi={selectProject:"プロジェクトを選択してください",menu:{myProject:"マイプロジェクト",taskCenter:"タスクセンター",novel:"小説の原文",scriptAgent:"シナリオ Agent",scriptManage:"シナリオ管理",cornerScape:"キャラ・背景制作",production:"動画制作",assetCenter:"アセットセンター",settings:"設定",jumpGithub:"Githubにジャンプ",feedbackQuestions:"フィードバックの質問"},project:{title:"マイプロジェクト",subtitle:"すべてのショートドラマプロジェクトを管理します",newProject:"新規プロジェクト",dialog:{editTitle:"プロジェクトの編集",addTitle:"新規プロジェクト",save:"保存",ok:"確定",cancel:"キャンセル",projectType:"プロジェクトタイプ",selectType:"プロジェクトタイプを選択",basedOnNovel:"小説の原文に基づく",projectName:"プロジェクト名",projectNamePh:"プロジェクト名を入力してください",novelType:"小説のジャンル",novelTypePh:"例:ファンタジー、SF、恋愛",artStyle:"ビジュアルマニュアル",selected:"選択済み:",selectArtStyle:"ビジュアルマニュアルを選択してください",newArtStyle:"新しいビジュアルマニュアル",loading:"読み込み中...",videoRatio:"画面アスペクト比",novelIntro:"小説のあらすじ",novelIntroPh:"あらすじを入力してください",editArtStyleTitle:"ビジュアルマニュアルの編集",newArtStyleTitle:"新しいビジュアルマニュアル",artStyleName:"ビジュアルマニュアル名",artStyleNamePh:"ビジュアルマニュアル名を入力してください",artStyleImage:"ビジュアルマニュアルカバー",remove:"削除",uploadCover:"カバーをアップロード",artStylePrompt:"ビジュアルマニュアルのプロンプトワード",aiExtract:"AI プロンプト抽出",promptPlaceholder:"画像生成時にビジュアルマニュアルを指定するために使用されるビジュアルマニュアルプロンプトワードについて説明します。",visualManual:"ビジュアルマニュアル",newVisualManual:"新しいビジュアルマニュアル",editVisualManualTitle:"ビジュアルマニュアルの編集",newVisualManualTitle:"新しいビジュアルマニュアル",visualManualName:"ビジュアルマニュアル名",visualManualNamePh:"ビジュアルマニュアル名を入力してください",visualManualCover:"ビジュアルマニュアルカバー",visualManualPrompt:"ビジュアルマニュアルのプロンプト",modelData:"画像モデルの選択",videoModelData:"ビデオモデルを選択してください",prompt:{placeholder:"プロンプトの単語を入力してください",saveSuccess:"更新に成功しました",title:"即効性のある言葉"},basedOnScript:"脚本に基づいて",mdFile:"ビジュアルマニュアルファイル",directorManual:"ディレクターズハンドブック",addDirectorManual:"新しいディレクターマニュアル",editingDirectorManual:"ディレクターズマニュアルを編集する",newDirecorManualTitle:"新しいディレクターマニュアル",directorManualPrompt:"ディレクターズマニュアル プロンプトワード",directorManualName:"ディレクターズマニュアル名",directorManualNamePh:"ディレクターズマニュアル名を入力してください",directorFile:"ディレクターズマニュアル文書",directorManualCover:"ディレクターズマニュアルの表紙"},msg:{fetchFailed:"プロジェクトリストの取得に失敗しました",notFound:"プロジェクトが見つかりません!",editSuccess:"プロジェクトを編集しました",editFailed:"プロジェクトの編集に失敗しました",addSuccess:"プロジェクトを新規作成しました",addFailed:"プロジェクトの作成に失敗しました",deleteHeader:"プロジェクトの削除",deleteBody:"本当にこのプロジェクトを削除しますか?",deleteConfirm:"削除",deleteCancel:"キャンセル",deleteSuccess:"プロジェクトを削除しました",deleteFailed:"プロジェクトの削除に失敗しました",extractSuccess:"プロンプトの抽出に成功しました",extractFailed:"抽出に失敗しました",enterArtStyleName:"ビジュアルマニュアル名を入力してください",artStyleUpdated:"ビジュアルマニュアルを更新しました",artStyleAdded:"ビジュアルマニュアルを追加しました",operationFailed:"操作に失敗しました",enterVisualManualName:"ビジュアルマニュアル名を入力してください",enterVisualManualImage:"ビジュアルマニュアルのカバー画像をアップロードしてください",enterVisualManualTabData:"プロンプトは空にできません",visualManualUpdated:"ビジュアルマニュアルを更新しました",visualManualAdded:"ビジュアルマニュアルを追加しました",deleteVisualManualHeader:"ビジュアルマニュアルを削除",deleteVisualManualBody:"ビジュアルマニュアル「{name}」を削除してよろしいですか?",deleteVisualManualConfirm:"削除",deleteVisualManualCancel:"キャンセル",enterProjectName:"プロジェクト名を入力してください",enterProjectIntro:"小説の紹介文を入力してください",enterProjectType:"プロジェクトのタイプを入力してください",enterArtStyle:"プロジェクトのビジュアルパンフレットを選択してください",enterVideoRatio:"ビデオ比率を選択してください",enterImageModel:"画像モデルを選択してください",enterVideoModel:"ビデオモデルを選択してください",visualManualDeleted:"正常に削除されました",selectMode:"モードを選択してください",deleteDirectorManualHeader:"ディレクターズマニュアルの削除",deleteDirectorManualBody:"ディレクターズマニュアル「{名前}」を削除してもよろしいですか?",directorManualUpdated:"ディレクターズマニュアルを更新しました",directorManualAdded:"ディレクターズマニュアルを追加しました",directorManual:"プロジェクトディレクターズマニュアルを選択してください"},type:{novel:"原作小説に基づいて",script:"小説の脚本に基づく"}},novel:{importText:"原文をインポート",batchDelete:"一括削除",eventAnalysis:"イベント分析",searchPlaceholder:"原文の名前を検索...",search:"検索",generating:"生成中...",genFailed:"生成失敗",none:"なし",edit:"編集",delete:"削除",col:{id:"No.",reel:"巻",chapter:"章名",chapterData:"章の内容",event:"イベント",operation:"操作"},msg:{batchDeleteHeader:"一括削除",batchDeleteBody:"選択した {count} 件のデータを削除してもよろしいですか?",batchDeleteSuccess:"一括削除に成功しました",deleteHeader:"削除の確認",deleteBody:"章名「{name}」のデータを削除してもよろしいですか?",deleteSuccess:"削除に成功しました",eventAnalysisHeader:"イベント分析",eventAnalysisBody:"選択した {count} 件のデータのイベント分析を実行してもよろしいですか?"},import:{title:"小説の原文をアップロード",step1:"ステップ 1",step2:"ステップ 2",step3:"ステップ 3",dragUpload:"ここに小説ファイルをドラッグ&ドロップするか、クリックしてアップロード",uploadHint:"対応形式: .txt, .docx。ファイルサイズは10MB以下を推奨します",or:"または",pasteLabel:"小説の原文を直接貼り付け",pastePlaceholder:"小説の原文を入力してください",chars:"文字",tooShort:"内容が短すぎます。100文字以上を推奨します",parsedChapters:"{count} 章を解析しました",nextStep:"次へ",prevStep:"戻る",selectedInfo:"選択済み:{count} 文字 (200,000文字以内)",eventAnalysis:"イベント分析",saveAndAnalyze:"原文を保存してイベントを分析",col:{chapter:"章",reel:"巻",chapterName:"章名",chapterData:"章の内容"},msg:{parseFailed:"ファイルの解析に失敗しました。再アップロードしてください",selectFile:"ファイルを選択",docNotSupported:".doc ファイルは解析をサポートしていません。.ts ファイルに変換してください。",unsupportedType:"未対応のファイル形式です",fileTooLarge:"ファイルサイズが10MBを超えています。より小さなファイルをアップロードしてください",selectChapters:"先に章を選択してください",saveSuccess:"小説の原文を保存しました"},importAdd:"ここにファイルをドラッグ アンド ドロップするか、クリックしてアップロードします",limit:".ts形式をサポート"},editDialog:{title:"小説の原文を編集",chapterName:"章名",chapterNamePh:"章名を入力してください",eventContent:"イベント内容",eventContentPh:"イベント内容を入力してください",chapterContent:"章の内容",chapterContentPh:"章の内容を入力してください",cancel:"キャンセル",save:"保存",msg:{updateSuccess:"小説の原文を更新しました"}},event:{regenerate:"イベントを再生成",batchDelete:"一括削除",noData:"イベントデータがありません。生成を開始してください",generate:"イベントを生成",generatingHint:"イベント生成中。しばらくお待ちください...",loading:"読み込み中...",delete:"削除",col:{id:"イベントID",eventName:"イベント名",chapters:"元の章",detail:"イベントのプロセス",createTime:"作成時間",operation:"操作"},msg:{deleteHeader:"イベントの削除",deleteBody:"このイベントを削除してもよろしいですか?",deleteSuccess:"削除に成功しました",generateSuccess:"イベントの生成に成功しました",batchDeleteHeader:"一括削除",batchDeleteBody:"選択した {count} 件のデータを削除してもよろしいですか?",batchDeleteSuccess:"一括削除に成功しました"}},analysis:{analyzeFirst:"先にイベントを分析してください",startAnalysis:"分析を開始",chapterHeader:"第{index}章 - {name}",analyzing:"イベント分析中"}},scriptAgent:{inputPlaceholder:"内容を入力してください",chapterEvents:"章のイベント",clearMessageMemory:"メッセージメモリをクリア",clearSummaryMemory:"要約メモリをクリア",clearAllMemory:"すべてのメモリをクリア",edit:"編集",storySkeleton:"ストーリーの骨格",adaptationStrategy:"脚色戦略",script:"シナリオ",noContent:"コンテンツがありません",relatedAssets:"関連アセット",editScript:"シナリオを編集",save:"保存",scriptTitle:"タイトル",titlePlaceholder:"タイトルを入力してください",content:"内容",contentPlaceholder:"シナリオの内容を入力してください",selectAssets:"アセットを選択",noAssets:"関連アセットがありません",selectAssetsTitle:"関連アセットの選択",welcomeMsg:"こんにちは!Toonflow アシスタントです。シナリオの生成を開始しましょうか?",start:"開始",memoryType:{message:"メッセージメモリ",summary:"要約メモリ",all:"すべてのメモリ"},msg:{clearConfirm:"クリアを確認",clearBody:"{type}をクリアしてもよろしいですか?この操作は取り消せません。",confirmClear:"クリアを確認",cancel:"キャンセル",memoryCleared:"{type}をクリアしました",scriptUpdated:"シナリオの更新に成功しました",scriptUpdateFailed:"シナリオの更新に失敗しました。後で再試行してください",searchScriptFailed:"シナリオの検索に失敗しました",updated:"正常に保存されました",error:"保存に失敗しました",reconnect:"再接続",notReconnect:"再接続の会話が切断されることを確認しますか?",keepReconnect:"確認する",deleteConfirm:"削除確認",deleteBody:"テキストの削除",confirmDelete:"削除の確認",scriptDeleted:"スクリプトが削除されました"},reconnect:"再接続"},cornerScape:{batchSettings:"一括生成設定",quickActions:"クイックコマンド",selectUngenerated:"未生成をすべて選択",selectGenerated:"生成済みをすべて選択",selectFailed:"エラーをすべて選択",invertSelection:"選択を反転",clearSelection:"選択を解除",batchPreview:"画像の一括プレビュー",assetTypeFilter:"アセットタイプで絞り込み",genModel:"生成モデル",resolution:"解像度",resolutionPh:"解像度を選択してください",concurrency:"同時実行数",concurrencyPh:"同時実行数を入力してください",startBatch:"バッチでイメージの生成を開始する",waitingGen:"生成待ち",generating:"生成中",genFailed:"生成失敗",imageError:"画像エラー",typeRole:"キャラクター",typeScene:"シーン",typeTool:"小道具",typeUnknown:"不明",descriptionSuffix:"説明:",operateScriptFirst:"先にシナリオを操作してください",individualConfig:"個別設定",noImage:"画像がありません",promptLabel:"プロンプト",promptPh:"プロンプトを入力してください",aiPolish:"AI で推敲",regenerate:"再生成",filterRole:"人物",filterScene:"シーン",filterTool:"小道具",unnamed:"無名",noDescription:"説明なし",msg:{selectModel:"生成モデルを選択してください",selectResolution:"解像度を選択してください",enterPrompt:"プロンプトを入力してください",enterPromptFirst:"先にプロンプトを入力してください",genSuccess:"{name} の生成に成功しました",genFailed:"{name} の生成に失敗しました",promptGenSuccess:"プロンプトの生成に成功しました",polishFailed:"推敲に失敗しました。再試行してください",selectAtLeastOne:"一括生成するアセットを少なくとも1つ選択してください",batchStarted:"一括生成を開始しました。全 {count} 件、同時実行数 {concurrent}",batchItemFailed:"{name} の生成に失敗しました:{error}",batchComplete:"一括生成が完了しました",batchFailed:"バッチ生成に失敗しました",replaceFailed:"交換に失敗しました",replaceSuccess:"交換に成功しました",promptGenFail:"プロンプト単語の生成に失敗しました",saveSuccess:"プロンプトワードの変更が成功しました",saveFailed:"プロンプトワードの変更に失敗しました"},history:"歴史的な写真",confirmReplace:"交換の確認",batchGenerationPrompt:"プロンプト単語をバッチで生成する",generatingPrompt:"生成中",selectPromptEmpty:"プロンプトの単語が空であることをすべて選択してください",noEmptyPrompt:"空のプロンプトワードを含むアセットはありません",selectedCount:"{count} 個のアセットが選択されました"},script:{searchPlaceholder:"シナリオ名を検索...",search:"検索",addScript:"シナリオを新規作成",cancelSelectAll:"全選択を解除",selectAll:"すべて選択",exportScript:"シナリオをエクスポート",msg:{searchFailed:"シナリオの検索に失敗しました",selectExport:"先にエクスポートするシナリオを選択してください",exportSuccess:"エクスポートに成功しました",exportFailed:"シナリオのエクスポートに失敗しました",deleteHeader:"削除の確認",deleteBody:"このシナリオを削除してもよろしいですか?この操作は取り消せません。",deleteConfirm:"削除",cancel:"キャンセル",deleteSuccess:"削除に成功しました",deleteFailed:"削除に失敗しました",selectDelScript:"スクリプトを削除することを選択してください",batchDeleteHeader:"一括削除",batchDeleteBody:"選択した {count} 件のシナリオを削除してもよろしいですか?この操作は取り消せません。",batchDeleteSuccess:"一括削除に成功しました",extractingInProgress:"抽出中",projectNotFound:"アイテムが見つかりません",selectsExport:"スクリプトをエクスポートすることを選択してください"},add:{title:"シナリオの追加",scriptName:"シナリオ名",scriptNamePh:"シナリオ名を入力してください",uploadFile:"ファイルをアップロード",dragUpload:"ここにシナリオファイルをドラッグ&ドロップするか、クリックしてアップロード",uploadHint:"対応形式: .txt, .docx。ファイルサイズは10MB以下を推奨します",scriptContent:"シナリオ内容",scriptContentPh:"シナリオ内容をアップロードまたは入力してください...",relatedAssets:"関連アセット",selectAssets:"アセットを選択",noAssets:"関連アセットがありません",cancel:"キャンセル",confirm:"確定",msg:{fileReadFailed:"ファイルの読み取りに失敗しました",docNotSupported:".docファイルの解析は未対応です。.txtまたは.docx形式に変換してください",unsupportedType:"未対応のファイル形式です",fileTooLarge:"ファイルサイズが10MBを超えています。より小さなファイルをアップロードしてください",parsing:"ファイルを解析中...",parseFailed:"ファイルの解析に失敗しました。再アップロードしてください",selectAssetsTitle:"関連アセットの選択",enterContent:"シナリオ内容をアップロードまたは入力してください",enterName:"シナリオ名を入力してください",addSuccess:"シナリオを追加しました",addFailed:"シナリオの追加に失敗しました。後で再試行してください"}},edit:{title:"シナリオ詳細",scriptName:"シナリオ名",scriptNamePh:"シナリオ名を入力してください",scriptContent:"シナリオ内容",scriptContentPh:"シナリオ内容を入力してください...",relatedAssets:"関連アセット",selectAssets:"アセットを選択",noAssets:"関連アセットがありません",msg:{selectAssetsTitle:"関連アセットの選択",updateSuccess:"シナリオの更新に成功しました",updateFailed:"シナリオの更新に失敗しました。後で再試行してください"}},deleteScript:"スクリプトを一括で削除する",extractAssets:""},assets:{addPrefix:"追加",batchGenerate:"一括生成",generatePrompt:"プロンプトを生成",generateImage:"画像を生成",batchDelete:"一括削除",searchPlaceholder:"アセット名を検索...",search:"検索",preview:"プレビュー",generate:"生成",edit:"編集",delete:"削除",generating:"生成中",play:"再生",mediaPreview:"メディアプレビュー",confirmBatch:"{type} を確認してください!",model:"モデル",resolution:"解像度",resolutionPh:"解像度を選択してください",batchGenPrompt:"プロンプトの一括生成",batchGenImage:"画像の一括生成",role:"キャラクター",prop:"小道具",scene:"シーン",clip:"素材",uploadSuccess:"アップロードに成功しました",selectAtLeastOne:"アセットを少なくとも1つ選択してください",noDescription:"説明なし",promptGenSuccess:"「{name}」のプロンプト生成に成功しました",promptGenFail:"「{name}」のプロンプト生成に失敗しました:{error}",selectModel:"モデルを選択してください",selectResolution:"解像度を選択してください",noPromptForImage:"「{name}」にはプロンプトがありません。画像を生成できません",imageGenSuccess:"「{name}」の画像生成に成功しました",imageGenFail:"「{name}」の画像生成に失敗しました:{error}",confirmDeleteHeader:"削除の確認",confirmBatchDeleteBody:"これらのアセットを一括削除してもよろしいですか?この操作は取り消せません。",confirmDeleteBody:"このアセットを削除してもよろしいですか?この操作は取り消せません。",deleteBtn:"削除",cancelBtn:"キャンセル",deleteSuccess:"アセットの削除に成功しました",deleteFail:"アセットの削除に失敗しました",colPreview:"プレビュー",colName:"名前",colPrompt:"プロンプト",colDescribe:"説明",colRemark:"備考",colCreateTime:"作成時間",colOperation:"操作",add:{name:"名前",namePh:"名前を入力してください",describe:"説明",describePh:"説明を入力してください",remark:"備考",remarkPh:"備考を入力してください",prompt:"プロンプト",promptPh:"プロンプトを入力してください",nameRequired:"名前を入力してください",describeRequired:"詳細を入力してください",remarkRequired:"備考を入力してください",updateSuccess:"アセットの更新に成功しました",addSuccess:"アセットの追加に成功しました"},gen:{header:"画像の生成",uploadRef:"参照画像をアップロード",optional:"任意",promptLabel:"画像生成プロンプト",smartGenerate:"スマート生成",generatingPrompt:"スマートプロンプトを生成中...",promptPlaceholder:"生成したい画像の内容を記述してください。例:テクノロジー感あふれる未来都市、ネオンの瞬き、サイバーパンクスタイル...",selectModel:"モデルを選択",selectResolution:"解像度を選択",generateBtn:"画像を生成",resultTitle:"生成結果",generatedCount:"{count} 枚生成されました。1枚選択してください",generatingLabel:"生成中...",genFailed:"生成に失敗しました",confirmSelect:"選択を確定",promptSuccess:"プロンプトの生成に成功しました",promptFail:"プロンプトの生成に失敗しました",fillPrompt:"プロンプトを入力してください",pickResolution:"解像度を選択してください",pickModel:"モデルを選択してください",unnamed:"無名",assetGenSuccess:"アセットの生成に成功しました",assetGenFail:"アセットの生成に失敗しました",uploadOk:"アップロードに成功しました",imageSelected:"この画像を選択しました",imageDeleted:"この画像を削除しました",imageSaved:"画像を保存しました",completed:"完了"},batch:{header:"一括生成",selected:"{count} 件選択中",selectAll:"すべて選択",clearSelection:"選択をクリア",inputPh:"内容を入力してください",saveSelected:"選択項目を保存 ({count})",colPreviewImg:"プレビュー画像",selectToSave:"保存する項目を選択してください",saveSuccess:"保存に成功しました",saveFail:"保存に失敗しました。再試行してください",promptDone:"プロンプトの生成が完了しました",promptFail:"プロンプトの生成に失敗しました",missingPrompts:"プロンプトがないアセットが {count} 件あります。先にプロンプトを生成してください",imageDone:"画像の生成が完了しました",imageGenFail:"画像の生成に失敗しました",unknownError:"不明なエラー",promptGenCancelled:"生成がキャンセルされました"}},production:{selectPlaceholder:"エピソードを選択してください",edit:"編集",node:{script:{title:"シナリオ",editDialog:"シナリオの編集"},scriptPlan:{title:"撮影プラン",editDialog:"撮影プランの編集"},storyboard:{title:"絵コンテボード",notGenerated:"未生成",scaleRatio:"ズーム倍率",gridPreview:"グリッドプレビュー",noPreviewImages:"プレビュー可能な画像がありません",imageLoadFailed:"画像の読み込みに失敗しました",promptPlaceholder:"プロンプトの単語を入力してください",prompt:"即効性のある言葉",editInfo:"即時の単語の修正"},storyboardTable:{title:"絵コンテ表",editDialog:"絵コンテ表の編集"},assets:{title:"派生アセット",generateFailed:"生成失敗",notGenerated:"未生成",originalAsset:"元のアセット",derived:"派生",noDerivedAssets:"派生アセットなし"},poster:{title:"動画カバー",coverCount:"{count} 枚"},workbench:{title:"動画ワークベンチ"}},editImage:{upload:"アップロード",generate:"生成",saveFailed:"保存に失敗しました。再試行してください",fetchFailed:"データの取得に失敗しました",generating:"生成中...",deleteNode:"ノードを削除",ratio:"アスペクト比",quality:"画質",generateBtn:"画像を生成",selectImage:"画像を選択",imageGeneration:"画像生成",promptPlaceholder:"生成したい画像を記述してください...",imageRef:"画像{index}",noReferences:"引用可能な参照画像がありません",selectModel:"先にモデルを選択してください",selectQuality:"画質を選択してください",selectRatio:"アスペクト比を選択してください",generateFailed:"生成に失敗しました",generateFirst:"先に画像を生成してください",generatedResult:"生成結果",waitingGenerate:"生成待ち",layoutLR:"自動レイアウト-左右",layoutTB:"自動レイアウト-上下",uploadAssetImage:"アセット画像アップロード",uploadStoryboardImage:"絵コンテ画像アップロード",uploadImage:"アセットイメージのアップロード",mode:"モデル",closeConfirmTitle:"編集パネルを閉じますか?",closeConfirmBody:"保存していないデータは閉じると失われます"},save:"選択",cancel:"キャンセル",chatBox:{inputPlaceholder:"メッセージを入力...",generateDerivedAssets:"派生アセットを生成",welcomeMessage:"こんにちは!AI アシスタントです。何かお手伝いできることはありますか?",adjustModel:"モデルを調整",startMakingVideo:"動画制作を開始",startMakingVideoPrompt:"動画の制作を開始してください",clearMessageMemory:"メッセージメモリをクリア",clearSummaryMemory:"要約メモリをクリア",clearAllMemory:"すべてのメモリをクリア",messageMemory:"メッセージメモリ",summaryMemory:"要約メモリ",allMemory:"すべてのメモリ",confirmClear:"メモリのクリア",confirmClearBody:"{type}をクリアしてもよろしいですか?",confirmClearBtn:"クリアを確定",memoryCleared:"{type}をクリアしました"},wb:{quickPreview:"クイックプレビュー",videoGeneration:"絵コンテ",videoEditing:"編集デスク",hint:"ヒント",extractLines:"動画からセリフを抽出しますか?",no:"いいえ",confirm:"確定",extractLinesQuestion:"字幕用に動画からセリフを抽出しますか?",importingLoading:"インポート中です。しばらくお待ちください...",mainTrackVideo:"メイントラック(動画)",subtitle1:"字幕1",storyboardVideoName:"絵コンテ動画-{storyboard}.mp4"},preview:{noImage:"画像なし",storyboardDesc:"絵コンテの説明",serialNumber:"No.",noDescription:"説明なし",duration:"デュレーション",seconds:"秒",relatedAssets:"関連アセット",role:"キャラクター",prop:"小道具",scene:"シーン",noCharacters:"登場人物なし",imagePrompt:"画像のプロンプト",selectAll:"すべて選択",exportImage:"画像をエクスポート",sceneDescription:"画面の説明",promptLabel:"プロンプト",restoreSort:"並び順をリセット",restoreSortConfirm:"初期の並び順にリセットしてもよろしいですか?",tip:"ヒント",selectAtLeastOne:"エクスポートする絵コンテを少なくとも1つ選択してください",exportFilename:"絵コンテの絵"},generate:{noVideo:"動画なし",videoPrompt:"動画プロンプト",promptPlaceholder:"生成するビデオ コンテンツを説明するプロンプト ワードを入力してください...",refImage:"参照画像",image:"画像",refVideo:"参照動画",refImageLabel:"参照画像",refAudio:"参照音声",muteAudio:"音声をミュート",enableAudio:"音声をオン",resolution:"解像度",duration:"デュレーション",generate:"生成",historyVersions:"履歴バージョン",confirmSelection:"選択を確定",noHistory:"履歴がありません",generating:"生成中",generateFailed:"生成失敗",selectAll:"すべて選択",videoTrack:"ビデオトラック",batchGenerate:"一括生成",importToEditor:"編集エディタにインポート",modeSingleImage:"単一画像",modeMultiImage:"複数画像",modeGridImage:"グリッド複数画像",modeStartEnd:"開始・終了フレーム",modeText:"テキストから動画生成",modeVideoRef:"動画参照",modeImageRef:"画像参照",modeAudioRef:"音声参照",modeTextRef:"テキスト参照",startFrame:"開始フレーム",startFrameOptional:"開始フレーム (任意)",endFrame:"終了フレーム",endFrameOptional:"終了フレーム (任意)",selectRefImage:"参照画像を選択",selectRefImages:"参照画像を選択",selectEndFrame:"終了フレーム画像を選択",selectRefVideoAsset:"参照動画を選択",selectRefAudioAsset:"参照音声を選択",selectRefImageAsset:"参照画像を選択",selectImageSource:"画像ソースを選択",fromStoryboard:"絵コンテ画像",fromStoryboardDesc:"絵コンテリストから画像を選択",fromAssets:"アセット画像",fromAssetsDesc:"アセットライブラリから画像を選択",confirmDelete:"削除の確認",confirmDeleteBody:"この動画を削除してもよろしいですか?この操作は取り消せません。",delete:"削除",cancel:"キャンセル",deleteSuccess:"動画の削除に成功しました",deleteFailed:"削除に失敗しました",selectVideoFirst:"先に動画を1つ選択してください",confirmSuccess:"選択の確定に成功しました",batchSubmitted:"一括生成リクエストを送信しました。処理中です...",configNotFound:"設定が見つかりません",pollingFailed:"ビデオ ステータスのクエリに失敗しました。手動で更新してください",batchGeneratePrompt:"プロンプト単語をバッチで生成する",batchPromptEmpty:"ストーリーボード {name} はビデオ プロンプトで使用できます。最初にプロンプ​​トを作成または入力してください",modelEmpty:"最初にビデオ生成モデルを選択してください",generatingPrompt:"プロンプトワードのインテリジェントな生成"},editVideo:{reset:"リセット",undo:"取り消し",redo:"やり直し",split:"分割",delete:"削除",rendering:"レンダリング中...",exportVideo:"動画をエクスポート",exportSuccess:"動画のエクスポートが完了しました",exportFailed:"エクスポートに失敗しました",sampleSubtitle:"サンプルの字幕テキスト",customText:"カスタムテキスト内容",transitionBetweenClips:"トランジションは2つの隣接するクリップ間に追加する必要があります",transitionExists:"この位置にはすでにトランジションが存在します",videoPreviewArea:"動画プレビューエリア",clipMaterials:"編集素材",propertyPanel:"プロパティパネル",selectClip:"属性を表示するクリップを選択してください",basicInfo:"基本情報",name:"名前",clipNamePlaceholder:"クリップ名",startTime:"開始",endTime:"終了",totalDuration:"合計デュレーション",videoProperties:"動画プロパティ",opacity:"不透明度",volume:"音量",playbackSpeed:"再生速度",audioProperties:"音声プロパティ",fadeIn:"フェードイン",fadeOut:"フェードアウト",transitionProperties:"トランジションプロパティ",transitionType:"トランジションの種類",transFade:"フェード",transSlide:"スライド",transWipe:"ワイプ",transDissolve:"ディゾルブ",transZoom:"ズーム",transRotate:"回転",transitionDuration:"トランジションの長さ",subtitleProperties:"字幕プロパティ",textContent:"テキスト内容",fontSize:"フォントサイズ",copy:"コピー",deleteConfirm:"削除の確認",deleteClipConfirm:"このクリップを削除してもよろしいですか?",avCanvasNotInit:"AVCanvas が初期化されていません",noExportContent:"エクスポートするコンテンツがありません",exportProject:"プロジェクトをエクスポート",transitionAdded:"トランジションを追加しました: {name}",splitClip:"クリップを分割",deleteClip:"クリップを削除",addClip:"{name} を追加",duplicateClip:"クリップを複製",addTransition:"トランジションを追加",updateClip:"クリップ {key} を更新",updatePlaybackRate:"再生速度を {rate}x に更新",updateTransitionDuration:"トランジションの長さを更新",playbackRateRange:"再生速度は 0.1 から 10 の間である必要があります",updatePlaybackRateFailed:"再生速度の更新に失敗しました:",importProject:"プロジェクトをインポート",import:"インポート"},clipType:{video:"動画",audio:"音声",subtitle:"字幕",transition:"トランジション",sticker:"ステッカー",filter:"フィルター",effect:"エフェクト"},track:{video:"動画",image:"画像",audio:"音声",subtitle:"字幕",text:"テキスト",sticker:"ステッカー",filter:"フィルター",effect:"エフェクト"},transition:{fade:"フェード",slide:"スライド",slideLeft:"左へスライド",slideRight:"右へスライド",slideUp:"上へスライド",slideDown:"下へスライド",wipe:"ワイプ",wipeLeft:"左へワイプ",wipeRight:"右へワイプ",wipeUp:"上へワイプ",wipeDown:"下へワイプ",dissolve:"ディゾルブ",zoom:"ズーム",zoomIn:"ズームイン",zoomOut:"ズームアウト",rotate:"回転",circle:"サークル",diamond:"ひし形",clock:"時計",blur:"ブラー"},media:{titleText:"タイトルテキスト",subtitleText:"字幕テキスト",customText:"カスタムテキスト",media:"メディア",image:"画像",audio:"音声",subtitle:"字幕",transition:"トランジション",effect:"エフェクト",filter:"フィルター",loading:"読み込み中...",subtitlePreview:"字",video:"ビデオ"},effect:{fadeIn:"フェードイン",fadeOut:"フェードアウト",flash:"フラッシュ",shake:"シェイク",zoomIn:"ズームイン",zoomOut:"ズームアウト",pulse:"パルス",rotateIn:"回転しながらイン",sticker1:"ステッカー 1",sticker2:"ステッカー 2"},filter:{grayscale:"モノクロ",sepia:"セピア",warm:"ウォーム",cool:"クール",vivid:"ビビッド",bright:"ブライト",highContrast:"ハイコントラスト",blur:"ブラー",invert:"反転",semiTransparent:"半透明"},guideSwitchEpisode:"エピソードを切り替え",guideSwitchEpisodeBody:"エピソードの切り替えはこちらに移動しました",autoLayoutLR:"自動組版 - 左右レイアウト",autoLayoutTB:"自動写植上下レイアウト",getFlowData:"ワークスペースを更新する",confirm:"エピソード切り替え確認",confirmEpisodesSwitch:"現在のタスクはまだ進行中です。エピソードを切り替えるとセッションが再接続されます。切り替えを続けますか?"},task:{title:"タスクリスト",subtitle:"最新のタスク実行履歴",refresh:"更新",categoryLabel:"タスクカテゴリ:",stateLabel:"ステータス:",noFailReason:"失敗理由なし",stateAll:"すべて",stateRunning:"進行中",stateCompleted:"完了",stateFailed:"生成失敗",fetchFailed:"タスクリストの取得に失敗しました",col:{taskClass:"タスクカテゴリ",relatedObjects:"関連オブジェクト",model:"モデル",describe:"説明",state:"ステータス",startTime:"時間",reason:"失敗の理由"},project:"プロジェクト名:"},noVideo:"まだビデオはありません",prompt:"ビデオのプロンプトワード",generateText:"AIが生成したプロンプトワード",selectStoryboard:"ストーリーボードを選択",generate:{noVideo:"まだビデオはありません",generateText:"AIが生成したプロンプトワード",selectStoryboard:"ストーリーボードを選択",generate:"ビデオの生成",history:"歴史的バージョン",generating:"生成中",generateFailed:"失敗",selectAll:"すべて選択",selected:"選択済み",batchGenerateText:"プロンプト単語をバッチで生成する",batchGenerateVideo:"バッチでビデオを生成する",importVideo:"編集デスクにインポートする",emptyTrack:"段落 {インデックス 1}",del:"消去",delConfirm:"この段落を削除してもよろしいですか?",selectSource:"ソースを選択",confirm:"アセットから選択",cancel:"ストーリーボードから選択",selectVideoFailed:"ビデオの選択に失敗しました",selectVideoSuccess:"ビデオの選択が成功しました",selectTrackFirst:"最初にストーリーボードを選択してください",noSelectedVideo:"動画が選択されていません",generateConfirm:"世代の確認",generateConfirmBody:"ビデオの生成を確認します",generateVideosInBatches:"バッチでビデオを生成する",generateStarted:"ビルドの開始",promptEmpty:"ビデオを生成するために必要なデータを確認してください。プロンプトの単語が空です。生成を続けますか?",skipDataWithEmptyVideoPromptWords:"生成する必要があるビデオ データは存在しますが、プロンプト ワードは空です。",duration:"間隔",resolution:"解決",delVideo:"このビデオを削除しますか?",delSuccess:"正常に削除されました",addReference:"参照を追加",promptPlaceholder:"動画のプロンプトワードを入力してください",downloadVideo:"動画をバッチでダウンロードする",selectVideo:"ダウンロードしたい動画にチェックを入れてください"}},dSi={slogan:"ショードラ制作支援ツール",tips:"デフォルトアカウント:admin / admin123",settings:"サーバー設定",requestAddress:"リクエストアドレス",username:"ユーザー名",password:"パスワード",login:"ログイン",usernameRequired:"ユーザー名を入力してください",passwordRequired:"パスワードを入力してください",enterUsernameAndPassword:"ユーザー名またはパスワードを入力してください",loginSuccess:"ログインに成功しました",settingsSaved:"設定を保存しました"},uSi={cancel:"キャンセル",confirm:"確認",selectAssets:"アセットを選択",sessionExpired:"セッションが期限切れです。再度ログインしてください",openSettings:"設定を開く",defaultReel:"本文巻",save:"保存",submitting:"提出する",editSuccess:"変更が成功しました",editFailed:"変更に失敗しました",submit:"提出する"},hSi={prompt:"即効性のある言葉"},fSi={welcomeTitle:"トゥーンフローへようこそ",welcomeDesc:"AI 主導のコミック作成ワークフロー プラットフォーム。1 分ほどかけて初期構成を完了してみましょう。",startConfig:"設定を開始する",skip:"スキップブート",configModel:"モデルサービスの追加",configData:"エージェントの構成",startUse:"始めましょう",configModelTitle:"モデルサービスプロバイダーを追加",configModelDesc:"まず、設定に少なくとも 1 つの AI モデル サービス プロバイダー (OpenAI、Claude など) を追加し、対応する API キーを入力する必要があります。",configModelTip:"下のボタンをクリックすると、設定ページの「モデルサービス」タブが開きます。サプライヤーを追加したら、ここに戻って続行します。",configModelBtn:"モデルサービスの構成に移動します",configAgentTitle:"エージェントモデルの割り当て",configAgentDesc:"次に、エージェント構成内の各機能モジュールにモデルを割り当て、タスクを完了するためにどのモデルを呼び出すべきかをシステムが認識できるようにします。",configAgentTip:"下のボタンをクリックすると、設定ページの「エージェント構成」タブが開きます。各機能にモデルを割り当てた後、ここに戻ります。",configAgentBtn:"エージェントの構成に移動します",finishTitle:"🎉 準備は万端です!",finishDesc:"設定が完了したので、すべての機能を使用できるようになります。調整する必要がある場合は、いつでも設定で変更できます。",qrcodeLabel:"さらに詳しいサポートを得るには、WeChat コミュニケーション グループに参加してください。",githubLabel:"役に立ったと思ったら、⭐スターをお願いします!",prevStep:"前のステップ",nextStep:"次のステップ",finish:"始めましょう"},gSi={skillManagement:{search:"ファイル名を検索する",empty:"一致するファイルがありません",edit:"編集",selectOnTheLeft:"左からファイルを選択してください"}},mSi={assets:{notExist:"アセットが存在しません",notDerivativeExist:"派生資産は存在しません",derivativeUpdateSuccess:"更新に成功しました",derivativeState:"生成されない",derivativeAddSuccess:"正常に追加されました",derivativeDelSuccess:"正常に削除されました",notGenerated:"生成されない"},addSuccess:"更新に成功しました",state:{unused:"生成されない"},saveSuccess:"正常に追加されました"},kSi={generating:"生成中"},vSi={scanning:"🔍 解析と読み込みスキル",scanComplete:"✨ Skill スキャン完了",inserted:"✅ {count} 個のスキルを追加しました",updated:"🔄 {count}個のSkillを更新",removed:"🗑️ {count}個のSkillを削除",scannedFiles:"📁 {count}個のファイルをスキャン",noDescription:"📝 {count}個のSkillに説明がありません",noAttribution:"👤 {count}個のSkillに帰属がありません",configWarning:"⚠️ Skill 設定警告",openSettings:"設定を開く",scanFailed:"❌ スキャン失敗",checkNetwork:"🔌 ネットワーク接続を確認するか、後で再試行してください",retryLater:"🔁 後で再試行してください"},ASi="ビデオの生成",pSi="歴史的バージョン",bSi="生成中",wSi="失敗",OSi="すべて選択",ySi="選択済み",CSi="ビデオをインポートする",_Si="段落 {インデックス 1}",SSi="削除の確認",LSi="この段落を削除してもよろしいですか?",xSi="ソースを選択",ESi="アセットから選択",TSi="ストーリーボードから選択",QSi={newVersion:"新しいバージョンがあります。更新しますか?"},DSi={components:aSi,settings:lSi,workbench:cSi,login:dSi,common:uSi,"components.storyboardImageCheck.camera":"カメラ","components.storyboardImageCheck.dialogTitle":"絵コンテ画像を選択","components.storyboardImageCheck.preview":"プレビュー","components.storyboardImageCheck.src":"プレビュー画像","components.storyboardImageCheck.title":"タイトル","components.storyboardImageCheck.duration":"時間","components.storyboardImageCheck.lines":"セリフ","components.storyboardImageCheck.createTime":"作成日時","workbench.script.extractAssets":"アセットを抽出",promptManage:hSi,hello:fSi,setting:gSi,storyboard:mSi,productionAgent:kSi,skillScan:vSi,generate:ASi,history:pSi,generating:bSi,generateFailed:wSi,selectAll:OSi,selected:ySi,importVideo:CSi,emptyTrack:_Si,del:SSi,delConfirm:LSi,selectSource:xSi,confirm:ESi,cancel:TSi,"workbench.script.msg.exportFailed":"エクスポートに失敗しました","workbench.production.node.assets.confirmDeleteBody":"アセットを削除するかどうかの確認","workbench.production.node.assets.removeFailed":"アセットの削除に失敗しました",version:QSi,"workbench.production.generatedNode.localUpload":"ローカルアップロード","workbench.production.editImage.uploadFailed":"画像のアップロードに失敗しました","workbench.production.editImage.noImage":"まずは写真を追加してください"},BSi={editMdPreivew:{title:"Редактировать",confirm:"Сохранить",cancel:"Отмена"},imageTools:{copy:"Копировать изображение",preview:"Предпросмотр",download:"Скачать",msg:{imageLoadFailed:"Не удалось загрузить изображение",convertFailed:"Ошибка конвертации",copied:"Скопировано в буфер обмена",copyFailed:"Ошибка копирования",downloadFailed:"Ошибка скачивания",downloadStarted:"Скачивание началось",downloadBlockedOpenNewWindow:"Текущий источник изображения может ограничивать скачивание, предпринята попытка открыть в новом окне"}},migrateShow:{title:"Перенос данных",desc:"Обнаружены данные старой версии. Выполнить перенос?",hide:"Больше не показывать",confirm:"ОК",msg:{migrateSuccess:"Данные успешно перенесены",migrateFailed:"Ошибка переноса данных"}},modelSelect:{placeholder:"Пожалуйста, выберите модель",type:{image:"Изображение",text:"Текст",video:"Видео"},msg:{fetchModelFailed:"Не удалось получить данные модели:"},goSetting:"Зайди в настройки и добавь модель."}},RSi={title:"Настройки ToonFlow",menu:{language:"Язык",vendorConfig:"Поставщики моделей",agentConfig:"Настройки Agent",promptManage:"Управление подсказками",skillManagement:"Управление навыками",memoryConfig:"Память Agent",loginConfig:"Настройки входа",dbConfig:"База данных",fileManagement:"Управление файлами",otherConfig:"Другие настройки",requestConfig:"URL запросов",about:"Проверить обновления",logoutConfig:"Выйти",skillsSkillsManagement:"НавыкиУправление навыками"},language:{desc:"Выберите язык интерфейса",msg:{saved:"Языковые настройки сохранены"}},vendor:{addVendor:"Добавить поставщика",noVendor:"Нет поставщиков. Пожалуйста, добавьте.",required:"Обязательно",optionalSection:"Необязательно",modelSettings:"Настройки модели",addManually:"Добавить вручную",test:"Тест",edit:"Редактировать",delete:"Удалить",deleteVendor:"Удалить поставщика",editCode:"Редактировать код",updateConfig:"Обновить конфигурацию",addModel:"Добавить модель",editModel:"Редактировать модель",displayName:"Отображаемое имя",displayNamePlaceholder:"Например: GPT-4o",modelId:"ID модели",modelIdPlaceholder:"Например: gpt-4o",modelType:"Тип модели",multimodal:"Мультимодальная",supported:"Поддерживается",notSupported:"Не поддерживается",toolCall:"Вызов инструментов",imageMode:"Режим изображения",videoMode:"Режим видео",audioOutput:"Аудиовыход",durationResolution:"Длительность / Разрешение",durationSec:"Длительность (сек)",resolution:"Разрешение",enterAndPress:"Введите и нажмите Enter",addDurationResolution:"Добавить длительность / разрешение",testResult:"Результаты теста",generating:"Генерация...",addVendorDialog:"Добавление поставщика",codeEditorInfo:"Пожалуйста, напишите код на TypeScript для конфигурации поставщика",reset:"Сброс",importFile:"Импорт файла",textModel:"Текстовая модель",imageModel:"Модель изображений",videoModel:"Видеомодель",textToImage:"Текст в изображение",textToVideo:"Текст в видео",singleImage:"Одно изображение",multiImage:"Много изображений",multiReference:"Множественный референс",gridImage:"Сетка изображений",startEndRequired:"Первый и последний кадры (Оба обязательны)",endFrameOptional:"Первый и последний кадры (Последний необязателен)",startFrameOptional:"Первый и последний кадры (Первый необязателен)",textRef:"Текст",imageRef:"Изображение",videoRef:"Видео",audioRef:"Аудио",audioOptional:"Необязательно",audioOnly:"Только видео со звуком",noAudio:"Только видео без звука",msg:{getVendorListFailed:"Не удалось получить список поставщиков",vendorConfigUpdated:"Конфигурация поставщика обновлена",updateFailed:"Ошибка обновления",highRiskConfirm:"⚠️ Подтверждение опасной операции",addVendorRiskBody:"Добавление нового поставщика ИИ даст ему доступ к API системы. Убедитесь, что вы доверяете исходному коду этого поставщика!",iKnowRisk:"Я осознаю риски",cancel:"Отмена",confirmAgain:"⚠️ Повторное подтверждение",addVendorConfirmBody:"Вы уверены, что хотите добавить этого поставщика? Он будет включен в системное планирование моделей.",confirmAndAdd:"Подтвердить и добавить",goBackCheck:"Вернуться и проверить",vendorAdded:"Поставщик успешно добавлен",addFailed:"Ошибка добавления",updateVendorRiskBody:"Обновление конфигурации поставщика ИИ изменит его доступ к API системы и поведение. Убедитесь, что вы доверяете измененному коду!",updateVendorConfirmBody:"Вы уверены, что хотите обновить конфигурацию этого поставщика? Это повлияет на системное планирование моделей.",confirmAndUpdate:"Подтвердить и обновить",updateSuccess:"Конфигурация поставщика успешно обновлена",fillDisplayName:"Пожалуйста, введите отображаемое имя",fillModelId:"Пожалуйста, введите ID модели",selectImageMode:"Пожалуйста, выберите режим изображения",selectVideoMode:"Пожалуйста, выберите режим видео",groupPrefix:"Группа {n}: ",addDuration:"Пожалуйста, добавьте длительность",addResolution:"Пожалуйста, добавьте разрешение",selectVendorFirst:"Пожалуйста, сначала выберите поставщика",modelIdExists:"ID модели уже существует",modelAdded:"Модель успешно добавлена",modelUpdated:"Модель успешно обновлена",enterApiKey:"Пожалуйста, введите API KEY",enterApiUrl:"Пожалуйста, введите API URL",testSuccess:"Тест пройден",imageGenSuccess:"Изображение успешно сгенерировано",videoGenSuccess:"Видео успешно сгенерировано",requestFailed:"Ошибка запроса",deleteModelConfirm:"Подтверждение удаления модели",deleteModelBody:"Это действие необратимо. Продолжить?",confirmDelete:"Удалить",modelDeleted:"Модель удалена",deleteVendorConfirm:"Подтверждение удаления поставщика",deleteVendorBody:"Удаление поставщика также удалит все связанные с ним модели. Продолжить?",vendorDeleted:"Поставщик удален",deleteFailed:"Ошибка удаления",enabled:"Включено",disabled:"Неполноценный",linkAddVendorRiskBody:"Добавление нового поставщика ИИ предоставит ему доступ к системному API. Убедитесь, что вы доверяете источнику ссылок поставщика!",importAdd:"Добавление нового поставщика ИИ предоставит ему доступ к системному API. Убедитесь, что вы доверяете источнику документации поставщика!",linkAddFailed:"Не удалось добавить ссылку"},associationSkills:"Сопутствующие навыки",think:"глубокое мышление",code:"код",linkAddPlaceholder:"Введите ссылку для добавления",noFileSelected:"Файл успешно импортирован",linkAdd:"подтверждать"},agent:{bannerDesc:"Используйте официальный прокси-сервер Toonflow для конфигурации в один клик. Готово к использованию без ручной настройки.",visitWebsite:"Перейти на сайт",fillKey:"Введите KEY",oneClickFill:"Вставить в 1 клик",notOpen:"Недоступно",notConfigured:"Не настроено",modelConfig:"Настройки модели",confirm:"ОК",cancel:"Отмена",selectModel:"Выберите модель",fillKeyHeader:"Введите официальный KEY платформы Toonflow",keyPlaceholder:"Пожалуйста, введите KEY",save:"Сохранить",msg:{notAvailable:"Эта функция пока недоступна. Следите за обновлениями!",configSuccess:"Успешно настроено",updateConfigFailed:"Ошибка обновления конфигурации: ",keyValid:"KEY действителен. Успешное подключение к платформе Toonflow",keyInvalid:"KEY недействителен. Пожалуйста, проверьте и введите снова: ",enterKey:"Пожалуйста, введите KEY",saveFailed:"Ошибка сохранения: ",getAgentListFailed:"Не удалось получить список конфигураций Agent: "}},memory:{warning:"Следующие параметры предварительно настроены на рекомендуемые значения. Не изменяйте их, если не понимаете их значения и влияния.",vectorModelConfig:"Настройки векторной модели",modelFilePath:"Путь к файлу модели",quantizationType:"Тип квантования",quantizationPlaceholder:"Введите тип квантования",memoryParams:"Параметры памяти",messagesPerSummary:"Сообщений для запуска сжатия",messagesPerSummaryHelp:"Сохраняет контекст последних N сообщений.",shortTermLimit:"Лимит кратковременной памяти",shortTermLimitHelp:"Количество кандидатов памяти, возвращаемых при поиске.",summaryMaxLength:"Макс. длина сжатия",summaryMaxLengthHelp:"Максимальное количество символов при сжатии сообщений.",summaryLimit:"Лимит запросов сжатых сообщений",summaryLimitHelp:"Разрешенное количество сжатых сообщений для запроса.",ragLimit:"Лимит поиска RAG",ragLimitHelp:"Количество сообщений, извлекаемых при поиске.",deepRetrieveSummaryLimit:"Лимит извлечения векторов сжатия",deepRetrieveSummaryLimitHelp:"Количество сообщений, получаемых при поиске содержимого сжатых сообщений.",saveConfig:"Сохранить",clearMemory:"Очистить память",restoreDefault:"По умолчанию",msg:{saved:"Настройки памяти сохранены",clearConfirmTitle:"Подтверждение очистки",clearConfirmBody:"Это удалит глобальные данные памяти ИИ без возможности восстановления. Продолжить?",confirmClear:"Очистить",cancel:"Отмена",cleared:"Память очищена",clearFailed:"Не удалось очистить память"}},login:{username:"Имя пользователя",usernamePlaceholder:"Введите имя пользователя",password:"Пароль",passwordPlaceholder:"Введите пароль",modify:"Изменить",msg:{enterUsername:"Пожалуйста, введите имя пользователя",usernameLength:"Имя пользователя должно содержать 2-20 символов",enterPassword:"Пожалуйста, введите пароль",passwordLength:"Пароль должен содержать 6-20 символов",fetchFailed:"Не удалось получить информацию о пользователе",saveSuccess:"Успешно сохранено",saveFailed:"Ошибка сохранения"}},db:{clearDb:"Очистить базу данных",clearDbDesc:"Очистить данные во всех таблицах, сохранив их структуру",clearData:"Очистить данные",confirmAction:"Подтверждение",msg:{clearDbTitle:"Очистка базы данных",firstConfirm:"Вы уверены, что хотите очистить все таблицы? Данные нельзя будет восстановить!",secondConfirm:"Это последнее предупреждение. Все данные будут потеряны навсегда!",keyword:"Очистить",confirm:"Подтвердить",pleaseInput:"Пожалуйста, введите",cleared:"Все таблицы очищены",operationFailed:"Ошибка операции, попробуйте снова",cancelled:"Операция отменена"}},other:{requestTimeout:"Тайм-аут запроса",seconds:"Сек",inputSeconds:"Введите секунды",assetConcurrency:"Параллельная генерация ассетов",count:"Шт",inputCount:"Введите количество",chapterRegex:"Регулярное выражение для разбивки на главы",restoreDefault:"По умолчанию",regexPlaceholder:"Введите регулярное выражение",showTitleBar:"показать строку заголовка",isElectron:"Переключиться в режим рабочего стола",canvasScroll:"Прокрутка холста",canvasIsDisabled:"Масштабирование холста",agentCanvasScalingMethod:"Неограниченное использование колеса холста на рабочей странице",zoom:"Увеличить",scroll:"прокрутка",isInteracting:"Неограниченная оптимизация производительности перетаскивания холста на рабочей странице",closeIsInteracting:"закрытие"},request:{warning:"Не изменяйте без крайней необходимости",apiAddress:"URL API",apiPlaceholder:"Введите URL-адрес запроса API",save:"Сохранить",reset:"Сброс",msg:{enterApi:"Пожалуйста, введите URL API",validUrl:"Пожалуйста, введите действительный HTTP/HTTPS адрес",saved:"URL запроса успешно сохранен",reset:"Сброшено на адрес по умолчанию",refreshFailed:"Обновить не удалось",refreshSuccess:"Обновить успешно"},refresh:"обновить"},about:{slogan:"Опенсорсный ИИ-инструмент для создания комиксов и раскадровок",latestVersion:"У вас установлена последняя версия",checkUpdate:"Проверить обновления",codeRepository:"Репозиторий кода",githubRepo:"Репозиторий GitHub",giteeRepo:"Репозиторий Gitee",versionUpdate:"Обновление версии",checkUpdateGithub:"Проверить (GitHub)",getFromGithub:"Скачать последний релиз с GitHub",checkUpdateGitee:"Проверить (Gitee)",getFromGitee:"Скачать последний релиз с Gitee",license:"Лицензия",licenseDesc:"Лицензионное соглашение · Нажмите для подробностей",updateAvailable:"найдена новая версия",upToDate:"Обнаружена новая версия"},logout:{warning:"После выхода вам нужно будет снова войти в систему.",confirmLogout:"Вы уверены, что хотите выйти?",logout:"Выйти",msg:{logoutSuccess:"Успешный выход",logoutFailed:"Ошибка выхода, попробуйте снова"}},file:{quickOpen:"Быстро открыть каталог",open:"Открыть",dockerDesc:'Для Docker/раздельного развертывания перейдите в каталог "/data/*" для управления файлами.',desktopOnly:"Эта функция доступна только в десктопной версии",folders:{data:"data",dataDesc:"Каталог данных.",logs:"data/logs",logsDesc:"Журналы выполнения и ошибок.",oss:"data/oss",ossDesc:"Ресурсы файлового хранилища.",skills:"data/skills",skillsDesc:"Файлы конфигурации навыков и промптов.",models:"data/models",modelsDesc:"Файлы моделей и конфигурации.",web:"data/web",webDesc:"Веб-ресурсы, например, сборка фронтенда.",serve:"data/serve",serveDesc:"Файлы бэкенд-сервисов."},openFailed:"Не удалось открыть папку"},skill:{scanSkills:"ScanSkills",fileLost:"Файл отсутствует"},dev:{warning:"Ниже приведены инструменты разработчика, будьте осторожны!",openDevtool:"Открыть",devtoolsDoc:"Адрес документа",devtoolsDesc:"После включения в каталоге установки Toonflow будет создана папка .devtools. Убедитесь, что у Toonflow есть права на запись (запуск от имени администратора).",devtoolsDesc2:"Запустите npx {'@'}ai-sdk/devtools в этом каталоге, чтобы включить отладку телеметрии.",openDevtoolFailed:"Не удалось открыть инструменты разработчика. Убедитесь, что установлен рабочий стол Toonflow.",notInElectron:"Для веб-среды откройте консоль браузера вручную."}},ISi={selectProject:"Пожалуйста, выберите проект",menu:{myProject:"Мои проекты",taskCenter:"Центр задач",novel:"Текст романа",scriptAgent:"Сценарий Agent",scriptManage:"Управление сценариями",cornerScape:"Персонажи и сцены",production:"Создание видео",assetCenter:"Центр ассетов",settings:"Настройки",jumpGithub:"Перейти на Гитхаб",feedbackQuestions:"Вопрос обратной связи"},project:{title:"Мои проекты",subtitle:"Управление всеми проектами коротких драм",newProject:"Новый проект",dialog:{editTitle:"Редактировать проект",addTitle:"Новый проект",save:"Сохранить",ok:"ОК",cancel:"Отмена",projectType:"Тип проекта",selectType:"Выберите тип",basedOnNovel:"На основе текста романа",projectName:"Название проекта",projectNamePh:"Введите название проекта",novelType:"Жанр романа",novelTypePh:"Например: Фэнтези, Фантастика, Романтика",artStyle:"Визуальное руководство",selected:"Выбрано:",selectArtStyle:"Пожалуйста, выберите визуальное руководство",newArtStyle:"Новое визуальное руководство",loading:"Загрузка...",videoRatio:"Соотношение сторон",novelIntro:"Синопсис романа",novelIntroPh:"Введите синопсис романа",editArtStyleTitle:"Редактировать визуальное руководство",newArtStyleTitle:"Новое визуальное руководство",artStyleName:"Визуальное название руководства",artStyleNamePh:"Пожалуйста, введите название визуального руководства",artStyleImage:"Обложка визуального руководства",remove:"Удалить",uploadCover:"Загрузить обложку",artStylePrompt:"Слова подсказки визуального руководства",aiExtract:"Извлечь промпт (ИИ)",promptPlaceholder:"Описывает слово-подсказку визуального руководства, используемое для указания визуального руководства при создании изображений.",visualManual:"Визуальное руководство",newVisualManual:"Новое визуальное руководство",editVisualManualTitle:"Редактировать визуальное руководство",newVisualManualTitle:"Новое визуальное руководство",visualManualName:"Название визуального руководства",visualManualNamePh:"Пожалуйста, введите название визуального руководства",visualManualCover:"Обложка визуального руководства",visualManualPrompt:"Промпт визуального руководства",modelData:"Выберите модель изображения",videoModelData:"Выберите модель видео",prompt:{placeholder:"Введите слово-подсказку",saveSuccess:"Обновление успешно выполнено",title:"подсказать слово"},basedOnScript:"на основе сценария",mdFile:"визуальный файл руководства",directorManual:"Справочник директора",addDirectorManual:"Новое руководство директора",editingDirectorManual:"Редактировать Руководство режиссера",newDirecorManualTitle:"Новое руководство директора",directorManualPrompt:"Слова-подсказки в руководстве режиссера",directorManualName:"Название руководства режиссера",directorManualNamePh:"Введите название руководства режиссера",directorFile:"Документ «Руководство директора»",directorManualCover:"Обложка руководства режиссера"},msg:{fetchFailed:"Не удалось получить список проектов",notFound:"Проект не найден!",editSuccess:"Проект успешно отредактирован",editFailed:"Ошибка редактирования проекта",addSuccess:"Проект успешно создан",addFailed:"Ошибка создания проекта",deleteHeader:"Удалить проект",deleteBody:"Вы уверены, что хотите удалить этот проект?",deleteConfirm:"Удалить",deleteCancel:"Отмена",deleteSuccess:"Проект успешно удален",deleteFailed:"Ошибка удаления проекта",extractSuccess:"Промпт успешно извлечен",extractFailed:"Ошибка извлечения",enterArtStyleName:"Пожалуйста, введите название визуального руководства",artStyleUpdated:"Обновлено визуальное руководство",artStyleAdded:"Добавлен визуальный мануал",operationFailed:"Ошибка операции",enterVisualManualName:"Пожалуйста, введите название визуального руководства",enterVisualManualImage:"Пожалуйста, загрузите обложку визуального руководства",enterVisualManualTabData:"Промпт не может быть пустым",visualManualUpdated:"Визуальное руководство обновлено",visualManualAdded:"Визуальное руководство добавлено",deleteVisualManualHeader:"Удалить визуальное руководство",deleteVisualManualBody:'Вы уверены, что хотите удалить визуальное руководство "{name}"?',deleteVisualManualConfirm:"Удалить",deleteVisualManualCancel:"Отмена",enterProjectName:"Пожалуйста, введите название проекта",enterProjectIntro:"Пожалуйста, введите вступление к роману",enterProjectType:"Пожалуйста, введите тип проекта",enterArtStyle:"Пожалуйста, выберите визуальную брошюру проекта",enterVideoRatio:"Пожалуйста, выберите соотношение видео",enterImageModel:"Пожалуйста, выберите модель изображения",enterVideoModel:"Пожалуйста, выберите модель видео",visualManualDeleted:"Удалить успешно",selectMode:"Пожалуйста, выберите режим",deleteDirectorManualHeader:"Удалить руководство режиссера",deleteDirectorManualBody:"Вы уверены, что хотите удалить Руководство режиссёра «{name}»?",directorManualUpdated:"Обновлено Руководство директора",directorManualAdded:"Добавлено Руководство режиссера",directorManual:"Пожалуйста, выберите Руководство для директора проекта"},type:{novel:"По мотивам оригинального романа",script:"По новому сценарию"}},novel:{importText:"Импорт текста",batchDelete:"Пакетное удаление",eventAnalysis:"Анализ событий",searchPlaceholder:"Поиск по названию...",search:"Поиск",generating:"Генерация...",genFailed:"Ошибка генерации",none:"Нет",edit:"Редактировать",delete:"Удалить",col:{id:"№",reel:"Том",chapter:"Название главы",chapterData:"Содержимое главы",event:"Событие",operation:"Действие"},msg:{batchDeleteHeader:"Пакетное удаление",batchDeleteBody:"Вы уверены, что хотите удалить выбранные {count} элементов?",batchDeleteSuccess:"Пакетное удаление завершено",deleteHeader:"Подтверждение удаления",deleteBody:"Удалить главу под названием «{name}»?",deleteSuccess:"Успешно удалено",eventAnalysisHeader:"Анализ событий",eventAnalysisBody:"Выполнить анализ событий для выбранных {count} элементов?"},import:{title:"Загрузить текст романа",step1:"Шаг 1",step2:"Шаг 2",step3:"Шаг 3",dragUpload:"Перетащите файл с романом сюда или нажмите для загрузки",uploadHint:"Поддерживаются форматы .txt, .docx. Рекомендуемый размер файла до 10 МБ",or:"ИЛИ",pasteLabel:"Вставить текст напрямую",pastePlaceholder:"Вставьте текст романа сюда",chars:"симв.",tooShort:"Слишком короткий текст, рекомендуется не менее 100 символов",parsedChapters:"Распознано {count} глав",nextStep:"Далее",prevStep:"Назад",selectedInfo:"Выбрано: {count} симв. (Максимум 200 000)",eventAnalysis:"Анализ событий",saveAndAnalyze:"Сохранить текст и анализировать",col:{chapter:"Глава",reel:"Том",chapterName:"Название главы",chapterData:"Содержимое главы"},msg:{parseFailed:"Не удалось распознать файл. Загрузите заново",selectFile:"Выберите файл",docNotSupported:"Файлы .doc не поддерживают синтаксический анализ, конвертируйте их в файлы .ts.",unsupportedType:"Неподдерживаемый тип файла",fileTooLarge:"Файл больше 10 МБ. Загрузите файл меньшего размера",selectChapters:"Сначала выберите главы",saveSuccess:"Текст романа успешно сохранен"},importAdd:"Перетащите файлы сюда или нажмите, чтобы загрузить",limit:"Поддержка формата .ts"},editDialog:{title:"Редактировать текст романа",chapterName:"Название главы",chapterNamePh:"Введите название главы",eventContent:"Содержание события",eventContentPh:"Введите содержание события",chapterContent:"Содержимое главы",chapterContentPh:"Введите содержимое главы",cancel:"Отмена",save:"Сохранить",msg:{updateSuccess:"Текст романа успешно обновлен"}},event:{regenerate:"Перегенерировать события",batchDelete:"Пакетное удаление",noData:"Нет данных о событиях. Нажмите, чтобы начать генерацию",generate:"Сгенерировать события",generatingHint:"Генерация событий, пожалуйста, подождите...",loading:"Загрузка...",delete:"Удалить",col:{id:"ID события",eventName:"Название события",chapters:"Исходная глава",detail:"Детали события",createTime:"Время создания",operation:"Действие"},msg:{deleteHeader:"Удалить событие",deleteBody:"Вы уверены, что хотите удалить это событие?",deleteSuccess:"Успешно удалено",generateSuccess:"События успешно сгенерированы",batchDeleteHeader:"Пакетное удаление",batchDeleteBody:"Вы уверены, что хотите удалить выбранные {count} элементов?",batchDeleteSuccess:"Пакетное удаление завершено"}},analysis:{analyzeFirst:"Пожалуйста, сначала проанализируйте события",startAnalysis:"Начать анализ",chapterHeader:"Глава {index} - {name}",analyzing:"Анализ событий"}},scriptAgent:{inputPlaceholder:"Введите текст",chapterEvents:"События главы",clearMessageMemory:"Очистить память сообщений",clearSummaryMemory:"Очистить память сжатий",clearAllMemory:"Очистить всю память",edit:"Редактировать",storySkeleton:"Скелет истории",adaptationStrategy:"Стратегия адаптации",script:"Сценарий",noContent:"Нет содержимого",relatedAssets:"Связанные ассеты",editScript:"Редактировать сценарий",save:"Сохранить",scriptTitle:"Заголовок",titlePlaceholder:"Введите заголовок",content:"Содержимое",contentPlaceholder:"Введите текст сценария",selectAssets:"Выбрать ассеты",noAssets:"Нет связанных ассетов",selectAssetsTitle:"Выбор связанных ассетов",welcomeMsg:"Привет! Я ИИ-ассистент Toonflow. Хотите, чтобы я начал генерировать сценарий?",start:"Начать",memoryType:{message:"Память сообщений",summary:"Память сжатий",all:"Вся память"},msg:{clearConfirm:"Подтверждение очистки",clearBody:"Вы уверены, что хотите очистить {type}? Это действие необратимо.",confirmClear:"Очистить",cancel:"Отмена",memoryCleared:"{type} очищена",scriptUpdated:"Сценарий успешно обновлен",scriptUpdateFailed:"Не удалось обновить сценарий, попробуйте позже",searchScriptFailed:"Не удалось найти сценарии",updated:"Сохранено успешно.",error:"Сохранить не удалось",reconnect:"Восстановить соединение",notReconnect:"Подтвердить, что разговор при повторном подключении будет прерван?",keepReconnect:"подтверждать",deleteConfirm:"Удалить подтверждение",deleteBody:"Удалить текст",confirmDelete:"Подтвердить удаление",scriptDeleted:"Скрипт удален."},reconnect:"Восстановить соединение"},cornerScape:{batchSettings:"Пакетные настройки",quickActions:"Быстрые команды",selectUngenerated:"Выбрать несгенерированные",selectGenerated:"Выбрать сгенерированные",selectFailed:"Выбрать с ошибками",invertSelection:"Инвертировать выбор",clearSelection:"Снять выделение",batchPreview:"Пакетный предпросмотр",assetTypeFilter:"Фильтр по типу",genModel:"Модель генерации",resolution:"Разрешение",resolutionPh:"Выберите разрешение",concurrency:"Потоки",concurrencyPh:"Введите количество потоков",startBatch:"Начните генерировать изображения в пакетном режиме",waitingGen:"В очереди",generating:"Генерация",genFailed:"Ошибка генерации",imageError:"Ошибка изображения",typeRole:"Персонаж",typeScene:"Сцена",typeTool:"Предмет",typeUnknown:"Неизвестно",descriptionSuffix:"Описание: ",operateScriptFirst:"Пожалуйста, сначала обработайте сценарий",individualConfig:"Индивидуальные настройки",noImage:"Нет изображения",promptLabel:"Промпт",promptPh:"Введите промпт",aiPolish:"Улучшить с ИИ",regenerate:"Перегенерировать",filterRole:"Персонаж",filterScene:"Сцена",filterTool:"Предмет",unnamed:"Без имени",noDescription:"Нет описания",msg:{selectModel:"Выберите модель для генерации",selectResolution:"Выберите разрешение",enterPrompt:"Введите промпт",enterPromptFirst:"Сначала введите промпт",genSuccess:"{name} успешно сгенерирован",genFailed:"Ошибка генерации {name}",promptGenSuccess:"Промпт успешно сгенерирован",polishFailed:"Не удалось улучшить, попробуйте снова",selectAtLeastOne:"Выберите хотя бы один ассет для пакетной генерации",batchStarted:"Начата пакетная генерация. Всего: {count}, Потоков: {concurrent}",batchItemFailed:"Ошибка генерации {name}: {error}",batchComplete:"Пакетная генерация завершена",batchFailed:"Генерация пакета не удалась",replaceFailed:"Замена не удалась",replaceSuccess:"Замена прошла успешно",promptGenFail:"Не удалось создать быстрое слово.",saveSuccess:"Изменение слова подсказки успешно выполнено",saveFailed:"Изменение слова подсказки не удалось"},history:"исторические фотографии",confirmReplace:"Подтвердить замену",batchGenerationPrompt:"Генерируйте подсказки в пакетном режиме",generatingPrompt:"Создание",selectPromptEmpty:"Выбрать все подсказки. Слово пусто.",noEmptyPrompt:"Нет ресурсов с пустым словом-подсказкой.",selectedCount:"Выбрано {count} объектов"},script:{searchPlaceholder:"Поиск по названию сценария...",search:"Поиск",addScript:"Новый сценарий",cancelSelectAll:"Снять выбор со всех",selectAll:"Выбрать все",exportScript:"Экспорт сценария",msg:{searchFailed:"Не удалось найти сценарии",selectExport:"Сначала выберите сценарий для экспорта",exportSuccess:"Экспорт завершен",exportFailed:"Ошибка экспорта сценария",deleteHeader:"Подтверждение удаления",deleteBody:"Вы уверены, что хотите удалить этот сценарий? Это действие необратимо.",deleteConfirm:"Удалить",cancel:"Отмена",deleteSuccess:"Успешно удалено",deleteFailed:"Ошибка удаления",selectDelScript:"Пожалуйста, выберите удаление сценария",batchDeleteHeader:"Массовое удаление",batchDeleteBody:"Вы уверены, что хотите удалить выбранные {count} сценариев? Это действие необратимо.",batchDeleteSuccess:"Массовое удаление выполнено успешно",extractingInProgress:"Извлечение",projectNotFound:"Товар не найден",selectsExport:"Пожалуйста, выберите экспорт скрипта"},add:{title:"Добавить сценарий",scriptName:"Название сценария",scriptNamePh:"Введите название сценария",uploadFile:"Загрузить файл",dragUpload:"Перетащите файл сценария сюда или нажмите для загрузки",uploadHint:"Поддерживаются форматы .txt, .docx. Рекомендуемый размер файла до 10 МБ",scriptContent:"Текст сценария",scriptContentPh:"Загрузите или введите текст сценария...",relatedAssets:"Связанные ассеты",selectAssets:"Выбрать ассеты",noAssets:"Нет связанных ассетов",cancel:"Отмена",confirm:"ОК",msg:{fileReadFailed:"Ошибка чтения файла",docNotSupported:"Формат .doc не поддерживается. Конвертируйте в .txt или .docx",unsupportedType:"Неподдерживаемый тип файла",fileTooLarge:"Файл больше 10 МБ. Загрузите файл меньшего размера",parsing:"Распознавание файла...",parseFailed:"Не удалось распознать файл. Загрузите заново",selectAssetsTitle:"Выбор связанных ассетов",enterContent:"Пожалуйста, загрузите или введите текст сценария",enterName:"Пожалуйста, введите название сценария",addSuccess:"Сценарий успешно добавлен",addFailed:"Не удалось добавить сценарий, попробуйте позже"}},edit:{title:"Детали сценария",scriptName:"Название сценария",scriptNamePh:"Введите название сценария",scriptContent:"Текст сценария",scriptContentPh:"Введите текст сценария...",relatedAssets:"Связанные ассеты",selectAssets:"Выбрать ассеты",noAssets:"Нет связанных ассетов",msg:{selectAssetsTitle:"Выбор связанных ассетов",updateSuccess:"Сценарий успешно обновлен",updateFailed:"Не удалось обновить сценарий, попробуйте позже"}},deleteScript:"Удаление скриптов в пакетном режиме",extractAssets:""},assets:{addPrefix:"Добавить",batchGenerate:"Пакетная генерация",generatePrompt:"Сгенерировать промпт",generateImage:"Сгенерировать изображение",batchDelete:"Пакетное удаление",searchPlaceholder:"Поиск по названию ассета...",search:"Поиск",preview:"Предпросмотр",generate:"Генерация",edit:"Редактировать",delete:"Удалить",generating:"Генерация",play:"Воспроизведение",mediaPreview:"Предпросмотр медиа",confirmBatch:"Подтвердите {type}!",model:"Модель",resolution:"Разрешение",resolutionPh:"Выберите разрешение",batchGenPrompt:"Пакетная генерация промптов",batchGenImage:"Пакетная генерация изображений",role:"Персонаж",prop:"Предмет",scene:"Сцена",clip:"Клип",uploadSuccess:"Успешно загружено",selectAtLeastOne:"Выберите хотя бы один ассет",noDescription:"Нет описания",promptGenSuccess:"Промпт для «{name}» успешно сгенерирован",promptGenFail:"Ошибка генерации промпта для «{name}»: {error}",selectModel:"Пожалуйста, выберите модель",selectResolution:"Пожалуйста, выберите разрешение",noPromptForImage:"У «{name}» нет промпта; невозможно сгенерировать изображение",imageGenSuccess:"Изображение для «{name}» успешно сгенерировано",imageGenFail:"Ошибка генерации изображения для «{name}»: {error}",confirmDeleteHeader:"Подтверждение удаления",confirmBatchDeleteBody:"Вы уверены, что хотите удалить эти ассеты? Это действие необратимо.",confirmDeleteBody:"Вы уверены, что хотите удалить этот ассет? Это действие необратимо.",deleteBtn:"Удалить",cancelBtn:"Отмена",deleteSuccess:"Ассет успешно удален",deleteFail:"Не удалось удалить ассет",colPreview:"Превью",colName:"Название",colPrompt:"Промпт",colDescribe:"Описание",colRemark:"Примечание",colCreateTime:"Время создания",colOperation:"Действие",add:{name:"Название",namePh:"Введите название",describe:"Описание",describePh:"Введите описание",remark:"Примечание",remarkPh:"Введите примечание",prompt:"Промпт",promptPh:"Введите промпт",nameRequired:"Пожалуйста, введите название",describeRequired:"Пожалуйста, введите детали",remarkRequired:"Пожалуйста, введите примечание",updateSuccess:"Ассет успешно обновлен",addSuccess:"Ассет успешно добавлен"},gen:{header:"Генерация изображения",uploadRef:"Загрузить референс",optional:"Необязательно",promptLabel:"Промпт",smartGenerate:"Смарт-генерация",generatingPrompt:"Умная генерация промпта...",promptPlaceholder:"Опишите изображение, которое хотите сгенерировать. Например: футуристичный город будущего, неоновые огни, киберпанк...",selectModel:"Выбрать модель",selectResolution:"Выбрать разрешение",generateBtn:"Сгенерировать",resultTitle:"Результаты",generatedCount:"Сгенерировано {count} шт. Пожалуйста, выберите одно",generatingLabel:"Генерация...",genFailed:"Ошибка генерации",confirmSelect:"Подтвердить выбор",promptSuccess:"Промпт успешно сгенерирован",promptFail:"Ошибка генерации промпта",fillPrompt:"Пожалуйста, введите промпт",pickResolution:"Пожалуйста, выберите разрешение",pickModel:"Пожалуйста, выберите модель",unnamed:"Без имени",assetGenSuccess:"Ассет успешно сгенерирован",assetGenFail:"Ошибка генерации ассета",uploadOk:"Успешно загружено",imageSelected:"Изображение выбрано",imageDeleted:"Изображение удалено",imageSaved:"Изображение сохранено",completed:"Завершенный"},batch:{header:"Пакетная генерация",selected:"Выбрано {count} шт.",selectAll:"Выбрать все",clearSelection:"Очистить выбор",inputPh:"Введите текст",saveSelected:"Сохранить выбранное ({count})",colPreviewImg:"Превью",selectToSave:"Выберите элементы для сохранения",saveSuccess:"Успешно сохранено",saveFail:"Ошибка сохранения, попробуйте снова",promptDone:"Генерация промптов завершена",promptFail:"Ошибка генерации промптов",missingPrompts:"{count} ассетов не имеют промптов. Сначала сгенерируйте промпты",imageDone:"Генерация изображений завершена",imageGenFail:"Ошибка генерации изображений",unknownError:"Неизвестная ошибка",promptGenCancelled:"Генерация отменена"}},production:{selectPlaceholder:"Выберите эпизод",edit:"Редактировать",node:{script:{title:"Сценарий",editDialog:"Редактировать сценарий"},scriptPlan:{title:"План съемок",editDialog:"Редактировать план съемок"},storyboard:{title:"Панель раскадровки",notGenerated:"Не сгенерировано",scaleRatio:"Масштаб",gridPreview:"Просмотр сеткой",noPreviewImages:"Нет изображений для предпросмотра",imageLoadFailed:"Не удалось загрузить изображение",promptPlaceholder:"Пожалуйста, введите слово-подсказку",prompt:"подсказать слово",editInfo:"Подскажите изменение слова"},storyboardTable:{title:"Таблица раскадровки",editDialog:"Редактировать таблицу раскадровки"},assets:{title:"Производные ассеты",generateFailed:"Ошибка генерации",notGenerated:"Не сгенерировано",originalAsset:"Оригинал",derived:"Производные",noDerivedAssets:"Нет производных ассетов"},poster:{title:"Обложка видео",coverCount:"{count} шт."},workbench:{title:"Рабочий стол видео"}},editImage:{upload:"Загрузить",generate:"Сгенерировать",saveFailed:"Ошибка сохранения, попробуйте снова",fetchFailed:"Не удалось получить данные",generating:"Генерация...",deleteNode:"Удалить узел",ratio:"Соотношение",quality:"Качество",generateBtn:"Сгенерировать изображение",selectImage:"Выбрать изображение",imageGeneration:"Генерация изображения",promptPlaceholder:"Опишите изображение, которое хотите сгенерировать...",imageRef:"Изображение {index}",noReferences:"Нет доступных референсов",selectModel:"Сначала выберите модель",selectQuality:"Выберите качество",selectRatio:"Выберите соотношение",generateFailed:"Ошибка генерации",generateFirst:"Сначала сгенерируйте изображение",generatedResult:"Результаты",waitingGenerate:"В очереди",layoutLR:"Авторазметка - горизонтально",layoutTB:"Авторазметка - вертикально",uploadAssetImage:"Загрузить изображение ресурса",uploadStoryboardImage:"Загрузить изображение раскадровки",uploadImage:"Загрузка изображения объекта",mode:"модель",closeConfirmTitle:"Закрыть панель редактирования?",closeConfirmBody:"Несохраненные данные будут потеряны после закрытия."},save:"Выбирать",cancel:"Отмена",chatBox:{inputPlaceholder:"Введите сообщение...",generateDerivedAssets:"Сгенерировать производные ассеты",welcomeMessage:"Привет! Я ваш ИИ-ассистент. Чем могу помочь?",adjustModel:"Настроить модель",startMakingVideo:"Начать создание видео",startMakingVideoPrompt:"Пожалуйста, помоги мне начать создание видео",clearMessageMemory:"Очистить память сообщений",clearSummaryMemory:"Очистить память сжатий",clearAllMemory:"Очистить всю память",messageMemory:"Память сообщений",summaryMemory:"Память сжатий",allMemory:"Вся память",confirmClear:"Очистить память",confirmClearBody:"Вы уверены, что хотите очистить {type}?",confirmClearBtn:"Подтвердить очистку",memoryCleared:"{type} очищена"},wb:{quickPreview:"Быстрый предпросмотр",videoGeneration:"Раскадровка",videoEditing:"монтажный стол",hint:"Подсказка",extractLines:"Извлечь реплики из видео?",no:"Нет",confirm:"Да",extractLinesQuestion:"Хотите извлечь диалоги из видео в качестве субтитров?",importingLoading:"Импорт, пожалуйста, подождите...",mainTrackVideo:"Основная дорожка (Видео)",subtitle1:"Субтитры 1",storyboardVideoName:"Видео раскадровки-{storyboard}.mp4"},preview:{noImage:"Нет изображения",storyboardDesc:"Описание раскадровки",serialNumber:"№",noDescription:"Нет описания",duration:"Длит.",seconds:"с",relatedAssets:"Связанные ассеты",role:"Персонаж",prop:"Предмет",scene:"Сцена",noCharacters:"Без персонажей",imagePrompt:"Промпт изображения",selectAll:"Выбрать все",exportImage:"Экспорт изображений",sceneDescription:"Описание кадра",promptLabel:"Промпт",restoreSort:"Сбросить сортировку",restoreSortConfirm:"Вы уверены, что хотите вернуть исходную сортировку?",tip:"Подсказка",selectAtLeastOne:"Пожалуйста, выберите хотя бы один кадр для экспорта",exportFilename:"Раскадровки изображений"},generate:{noVideo:"Нет видео",videoPrompt:"Промпт видео",promptPlaceholder:"Введите слова-подсказки, описывающие видеоконтент, который вы хотите создать...",refImage:"Референс",image:"Изображение",refVideo:"Референс видео",refImageLabel:"Референс изображения",refAudio:"Референс аудио",muteAudio:"Выключить звук",enableAudio:"Включить звук",resolution:"Разрешение",duration:"Длит.",generate:"Сгенерировать",historyVersions:"История версий",confirmSelection:"Подтвердить выбор",noHistory:"Нет истории",generating:"Генерация",generateFailed:"Ошибка генерации",selectAll:"Выбрать все",videoTrack:"Видеодорожка",batchGenerate:"Пакетная генерация",importToEditor:"Импорт в редактор",modeSingleImage:"Одно изображение",modeMultiImage:"Много изображений",modeGridImage:"Сетка изображений",modeStartEnd:"Первый и последний кадры",modeText:"Текст в видео",modeVideoRef:"По видео-референсу",modeImageRef:"По изображению",modeAudioRef:"По аудио-референсу",modeTextRef:"По тексту",startFrame:"Первый кадр",startFrameOptional:"Первый кадр (Необязательно)",endFrame:"Последний кадр",endFrameOptional:"Последний кадр (Необязательно)",selectRefImage:"Выбрать референс",selectRefImages:"Выбрать референсы",selectEndFrame:"Выбрать последний кадр",selectRefVideoAsset:"Выбрать видео-референс",selectRefAudioAsset:"Выбрать аудио-референс",selectRefImageAsset:"Выбрать изображение-референс",selectImageSource:"Выбрать источник изображения",fromStoryboard:"Раскадровка",fromStoryboardDesc:"Выбрать изображение из раскадровки",fromAssets:"Ресурс",fromAssetsDesc:"Выбрать изображение из библиотеки ресурсов",confirmDelete:"Подтверждение удаления",confirmDeleteBody:"Вы уверены, что хотите удалить это видео? Это действие необратимо.",delete:"Удалить",cancel:"Отмена",deleteSuccess:"Видео успешно удалено",deleteFailed:"Ошибка удаления",selectVideoFirst:"Пожалуйста, сначала выберите видео",confirmSuccess:"Выбор подтвержден",batchSubmitted:"Запрос на пакетную генерацию отправлен. В обработке...",configNotFound:"Конфигурация не найдена",pollingFailed:"Не удалось выполнить запрос статуса видео. Обновите вручную.",batchGeneratePrompt:"Генерируйте подсказки в пакетном режиме",batchPromptEmpty:"Раскадровка {name} доступна для видеоподсказок. Пожалуйста, сначала создайте или заполните приглашение",modelEmpty:"Сначала выберите модель создания видео",generatingPrompt:"Интеллектуальное генерирование подсказок"},editVideo:{reset:"Сброс",undo:"Отменить",redo:"Повторить",split:"Разделить",delete:"Удалить",rendering:"Рендеринг...",exportVideo:"Экспорт видео",exportSuccess:"Экспорт видео завершен",exportFailed:"Ошибка экспорта",sampleSubtitle:"Пример текста субтитров",customText:"Пользовательский текст",transitionBetweenClips:"Переходы должны добавляться между двумя соседними клипами",transitionExists:"Переход уже существует в этом месте",videoPreviewArea:"Область предпросмотра",clipMaterials:"Материалы клипа",propertyPanel:"Панель свойств",selectClip:"Выберите клип для просмотра свойств",basicInfo:"Основная информация",name:"Название",clipNamePlaceholder:"Название клипа",startTime:"Начало",endTime:"Конец",totalDuration:"Общая длительность",videoProperties:"Свойства видео",opacity:"Непрозрачность",volume:"Громкость",playbackSpeed:"Скорость",audioProperties:"Свойства аудио",fadeIn:"Плавное появление",fadeOut:"Плавное затухание",transitionProperties:"Свойства перехода",transitionType:"Тип перехода",transFade:"Затухание",transSlide:"Сдвиг",transWipe:"Вытеснение",transDissolve:"Растворение",transZoom:"Масштаб",transRotate:"Вращение",transitionDuration:"Длительность перехода",subtitleProperties:"Свойства субтитров",textContent:"Текст",fontSize:"Размер шрифта",copy:"Копировать",deleteConfirm:"Подтверждение удаления",deleteClipConfirm:"Вы уверены, что хотите удалить этот клип?",avCanvasNotInit:"AVCanvas не инициализирован",noExportContent:"Нет содержимого для экспорта",exportProject:"Экспорт проекта",transitionAdded:"Переход добавлен: {name}",splitClip:"Разделить клип",deleteClip:"Удалить клип",addClip:"Добавить {name}",duplicateClip:"Дублировать клип",addTransition:"Добавить переход",updateClip:"Обновить клип {key}",updatePlaybackRate:"Изменить скорость на {rate}x",updateTransitionDuration:"Обновить длительность перехода",playbackRateRange:"Скорость воспроизведения должна быть от 0.1 до 10",updatePlaybackRateFailed:"Ошибка изменения скорости:",importProject:"Импорт проекта",import:"Импорт"},clipType:{video:"Видео",audio:"Аудио",subtitle:"Субтитры",transition:"Переход",sticker:"Стикер",filter:"Фильтр",effect:"Эффект"},track:{video:"Видео",image:"Изображение",audio:"Аудио",subtitle:"Субтитры",text:"Текст",sticker:"Стикер",filter:"Фильтр",effect:"Эффект"},transition:{fade:"Затухание",slide:"Сдвиг",slideLeft:"Сдвиг влево",slideRight:"Сдвиг вправо",slideUp:"Сдвиг вверх",slideDown:"Сдвиг вниз",wipe:"Вытеснение",wipeLeft:"Вытеснение влево",wipeRight:"Вытеснение вправо",wipeUp:"Вытеснение вверх",wipeDown:"Вытеснение вниз",dissolve:"Растворение",zoom:"Масштаб",zoomIn:"Приближение",zoomOut:"Отдаление",rotate:"Вращение",circle:"Круг",diamond:"Ромб",clock:"Часы",blur:"Размытие"},media:{titleText:"Текст заголовка",subtitleText:"Текст субтитров",customText:"Пользовательский текст",media:"Медиа",image:"Изображение",audio:"Аудио",subtitle:"Субтитры",transition:"Переход",effect:"Эффект",filter:"Фильтр",loading:"Загрузка...",subtitlePreview:"Т",video:"видео"},effect:{fadeIn:"Появление",fadeOut:"Затухание",flash:"Вспышка",shake:"Тряска",zoomIn:"Приближение (эффект)",zoomOut:"Отдаление (эффект)",pulse:"Пульсация",rotateIn:"Вращение (вход)",sticker1:"Стикер 1",sticker2:"Стикер 2"},filter:{grayscale:"Ч/Б",sepia:"Сепия",warm:"Теплый",cool:"Холодный",vivid:"Яркий",bright:"Светлый",highContrast:"Контрастный",blur:"Размытие",invert:"Инверсия",semiTransparent:"Полупрозрачный"},guideSwitchEpisode:"Переключение эпизодов",guideSwitchEpisodeBody:"Переключение эпизодов перенесено сюда!",autoLayoutLR:"Автоматический набор текста — левая и правая раскладка",autoLayoutTB:"Автоматический набор текста — верхняя и нижняя раскладка",getFlowData:"Обновить рабочую область",confirm:"Подтверждение переключения эпизода",confirmEpisodesSwitch:"Текущая задача все еще находится в стадии выполнения. Переключение эпизодов приведет к переподключению сеанса. Продолжить переключение?"},task:{title:"Список задач",subtitle:"История выполнения ваших задач",refresh:"Обновить",categoryLabel:"Категория:",stateLabel:"Статус:",noFailReason:"Нет причины ошибки",stateAll:"Все",stateRunning:"В процессе",stateCompleted:"Завершено",stateFailed:"Ошибка",fetchFailed:"Не удалось получить список задач",col:{taskClass:"Категория задачи",relatedObjects:"Связанные объекты",model:"Модель",describe:"Описание",state:"Статус",startTime:"Время",reason:"Причина неудачи"},project:"Название проекта:"},noVideo:"Видео пока нет",prompt:"Видео слова-подсказки",generateText:"ИИ генерировал слова-подсказки",selectStoryboard:"Выберите раскадровку",generate:{noVideo:"Видео пока нет",generateText:"ИИ генерировал слова-подсказки",selectStoryboard:"Выберите раскадровку",generate:"Создать видео",history:"Историческая версия",generating:"Создание",generateFailed:"неудача",selectAll:"Выбрать все",selected:"Выбрано",batchGenerateText:"Генерируйте подсказки в пакетном режиме",batchGenerateVideo:"Генерируйте видео в пакетном режиме",importVideo:"Импортировать в редакторский стол",emptyTrack:"Абзац {индекс 1}",del:"удалить",delConfirm:"Вы уверены, что хотите удалить этот абзац?",selectSource:"Выберите источник",confirm:"Выбрать из активов",cancel:"Выбрать из раскадровки",selectVideoFailed:"Не удалось выбрать видео.",selectVideoSuccess:"Видео выбрано успешно",selectTrackFirst:"Пожалуйста, сначала выберите раскадровку",noSelectedVideo:"Видео не выбрано",generateConfirm:"Подтвердить генерацию",generateConfirmBody:"Подтвердите создание видео",generateVideosInBatches:"Генерируйте видео в пакетном режиме",generateStarted:"Начало сборки",promptEmpty:"Проверьте данные, необходимые для создания видео, и слово подсказки пусто. Хотите ли вы продолжить его создание?",skipDataWithEmptyVideoPromptWords:"Видеоданные, которые необходимо сгенерировать, существуют, а слово подсказки пусто.",duration:"продолжительность",resolution:"разрешение",delVideo:"Подтвердить удаление этого видео?",delSuccess:"Удалить успешно",addReference:"добавить ссылку",promptPlaceholder:"Пожалуйста, введите слово-подсказку к видео",downloadVideo:"Скачивайте видео партиями",selectVideo:"Пожалуйста, проверьте видео, которое вы хотите скачать"}},MSi={slogan:"Умная платформа для создания коротких драм",tips:"Аккаунт по умолчанию: admin / admin123",settings:"Настройки сервера",requestAddress:"URL запроса",username:"Имя пользователя",password:"Пароль",login:"Войти",usernameRequired:"Пожалуйста, введите имя пользователя",passwordRequired:"Пожалуйста, введите пароль",enterUsernameAndPassword:"Пожалуйста, введите имя пользователя или пароль",loginSuccess:"Успешный вход",settingsSaved:"Настройки сохранены"},PSi={cancel:"Отмена",confirm:"Подтвердить",selectAssets:"Выбрать ресурсы",sessionExpired:"Сессия истекла, пожалуйста, войдите снова",openSettings:"Открыть настройки",defaultReel:"Основной том",save:"сохранять",submitting:"Отправка",editSuccess:"Модификация прошла успешно",editFailed:"Модификация не удалась",submit:"представлять на рассмотрение"},FSi={prompt:"подсказать слово"},NSi={welcomeTitle:"Добро пожаловать в ToonFlow",welcomeDesc:"Платформа рабочего процесса создания комиксов, управляемая искусственным интеллектом, давайте потратим минуту, чтобы завершить первоначальную настройку.",startConfig:"Начать настройку",skip:"Пропустить загрузку",configModel:"Добавить модельный сервис",configData:"Настроить агент",startUse:"Начать",configModelTitle:"Добавить поставщика услуг модели",configModelDesc:"Сначала вам необходимо добавить в настройках хотя бы одного поставщика услуг модели ИИ (например, OpenAI, Claude и т. д.) и заполнить соответствующий ключ API.",configModelTip:"Нажатие кнопки ниже откроет вкладку «Сервис модели» на странице настроек. После добавления поставщика вернитесь сюда, чтобы продолжить.",configModelBtn:"Перейти к настройке сервиса модели",configAgentTitle:"Назначить модель агента",configAgentDesc:"Затем назначьте модели каждому функциональному модулю в конфигурации агента, чтобы система знала, какую модель вызывать для выполнения задачи.",configAgentTip:"Нажатие кнопки ниже откроет вкладку «Конфигурация агента» на странице настроек. Вернитесь сюда после назначения моделей каждой функции.",configAgentBtn:"Перейти к настройке агента",finishTitle:"🎉Все готово!",finishDesc:"Настройка завершена, и теперь вы можете начать использовать все функции. Если вам нужно его настроить, вы можете изменить его в настройках в любое время.",qrcodeLabel:"Присоединяйтесь к группе общения WeChat, чтобы получить дополнительную помощь:",githubLabel:"Если вы найдете это полезным, пожалуйста, поставьте нам ⭐ Звезду!",prevStep:"Предыдущий шаг",nextStep:"Следующий шаг",finish:"Начать"},USi={skillManagement:{search:"Поиск по имени файла",empty:"Нет подходящих файлов",edit:"редактировать",selectOnTheLeft:"Пожалуйста, выберите файл слева"}},jSi={assets:{notExist:"Актив не существует",notDerivativeExist:"Производные активы не существуют",derivativeUpdateSuccess:"Обновление успешно выполнено",derivativeState:"Не создано",derivativeAddSuccess:"Добавлено успешно",derivativeDelSuccess:"Удалить успешно",notGenerated:"Не создано"},addSuccess:"Обновление успешно выполнено",state:{unused:"Не создано"},saveSuccess:"Добавлено успешно"},WSi={generating:"Создание"},VSi={scanning:"🔍 Парсинг и загрузка навыков",scanComplete:"✨ Сканирование Skill завершено",inserted:"✅ Добавлено {count} навыков",updated:"🔄 Обновлено {count} Skill",removed:"🗑️ Удалено {count} Skill",scannedFiles:"📁 Просканировано {count} файлов",noDescription:"📝 {count} Skill без описания",noAttribution:"👤 {count} Skill без атрибуции",configWarning:"⚠️ Предупреждение конфигурации Skill",openSettings:"Открыть настройки",scanFailed:"❌ Сканирование не удалось",checkNetwork:"🔌 Проверьте сетевое подключение или повторите попытку позже",retryLater:"🔁 Повторите попытку позже"},zSi="Создать видео",HSi="Историческая версия",$Si="Создание",XSi="неудача",GSi="Выбрать все",YSi="Выбрано",ZSi="Импортировать видео",qSi="Абзац {индекс 1}",KSi="Подтвердить удаление",JSi="Вы уверены, что хотите удалить этот абзац?",e8i="Выберите источник",t8i="Выбрать из активов",n8i="Выбрать из раскадровки",i8i={newVersion:"Вышла новая версия, хотите ее обновить?"},r8i={components:BSi,settings:RSi,workbench:ISi,login:MSi,common:PSi,"components.storyboardImageCheck.camera":"Камера","components.storyboardImageCheck.dialogTitle":"Выбрать изображение раскадровки","components.storyboardImageCheck.preview":"Предпросмотр","components.storyboardImageCheck.src":"Предпросмотр изображения","components.storyboardImageCheck.title":"Заголовок","components.storyboardImageCheck.duration":"Длительность","components.storyboardImageCheck.lines":"Реплики","components.storyboardImageCheck.createTime":"Дата создания","workbench.script.extractAssets":"Извлечь ресурсы",promptManage:FSi,hello:NSi,setting:USi,storyboard:jSi,productionAgent:WSi,skillScan:VSi,generate:zSi,history:HSi,generating:$Si,generateFailed:XSi,selectAll:GSi,selected:YSi,importVideo:ZSi,emptyTrack:qSi,del:KSi,delConfirm:JSi,selectSource:e8i,confirm:t8i,cancel:n8i,"workbench.script.msg.exportFailed":"Экспорт не удался","workbench.production.node.assets.confirmDeleteBody":"Подтвердите, следует ли удалить объект","workbench.production.node.assets.removeFailed":"Не удалось удалить объект.",version:i8i,"workbench.production.generatedNode.localUpload":"Локальная загрузка","workbench.production.editImage.uploadFailed":"Не удалось загрузить изображение.","workbench.production.editImage.noImage":"Пожалуйста, сначала добавьте фотографии"},GZe=[{label:"简体中文",tips:"Chinese (Simplified)",value:"zh-CN"},{label:"繁體中文",tips:"Chinese (Traditional)",value:"zh-TW"},{label:"English",tips:"English",value:"en"},{label:"ไทย",tips:"Thai",value:"th-TH"},{label:"Tiếng Việt",tips:"Vietnamese",value:"vi-VN"},{label:"日本語",tips:"Japanese",value:"ja-JP"},{label:"Русский",tips:"Russian",value:"ru-RU"}],yW=q4e("locale","zh-CN"),dOn=syi({legacy:!1,locale:yW.value,fallbackLocale:"en",messages:{"zh-CN":hCi,"zh-TW":FCi,en:c_i,"th-TH":R_i,"vi-VN":sSi,"ja-JP":DSi,"ru-RU":r8i}}),qse=lOn("theme-setting",{mode:"light",primaryColor:"#000"}),o8i=e=>{const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t)return{h:0,s:0,l:0};const n=parseInt(t[1],16)/255,r=parseInt(t[2],16)/255,o=parseInt(t[3],16)/255,s=Math.max(n,r,o),a=Math.min(n,r,o),l=(s+a)/2;let d=0,u=0;if(s!==a){const h=s-a;u=l>.5?h/(2-s-a):h/(s+a),s===n?d=((r-o)/h+(r{t/=100,n/=100;const r=(1-Math.abs(2*n-1))*t,o=r*(1-Math.abs(e/60%2-1)),s=n-r/2;let a=0,l=0,d=0;e<60?[a,l,d]=[r,o,0]:e<120?[a,l,d]=[o,r,0]:e<180?[a,l,d]=[0,r,o]:e<240?[a,l,d]=[0,o,r]:e<300?[a,l,d]=[o,0,r]:[a,l,d]=[r,0,o];const u=h=>Math.round((h+s)*255).toString(16).padStart(2,"0");return`#${u(a)}${u(l)}${u(d)}`},a8i=e=>{const{h:t,s:n,l:r}=o8i(e);return[97,92,85,75,62,r,Math.max(r-12,20),Math.max(r-24,15),Math.max(r-36,10),Math.max(r-48,5)].map(s=>s8i(t,n,s))},l8i=e=>{const t=e==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;t==="dark"?document.documentElement.setAttribute("theme-mode","dark"):document.documentElement.removeAttribute("theme-mode"),t==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},A1t=e=>{const t=document.documentElement,n=a8i(e),r=t.getAttribute("theme-mode")==="dark";(r?[...n].reverse():n).forEach((s,a)=>t.style.setProperty(`--td-brand-color-${a+1}`,s)),["","-hover:5","-focus:2","-active:7","-disabled:3","-light:1","-light-hover:2"].forEach(s=>{const[a,l]=s.split(":");t.style.setProperty(`--td-brand-color${a}`,l?`var(--td-brand-color-${l})`:"var(--td-brand-color-6)")}),t.style.setProperty("--td-text-color-brand",`var(--td-brand-color-${r?8:7})`),t.style.setProperty("--td-text-color-link","var(--td-brand-color-8)")},c8i=(e,t)=>{if(!document.startViewTransition){t();return}const n=window.innerWidth/2,r=window.innerHeight/2,o=Math.hypot(Math.max(n,window.innerWidth-n),Math.max(r,window.innerHeight-r)),s=document.documentElement;s.style.setProperty("--x",`${n}px`),s.style.setProperty("--y",`${r}px`),s.style.setProperty("--r",`${o}px`),document.startViewTransition(t)},d8i=()=>{l8i(qse.value.mode),A1t(qse.value.primaryColor),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{qse.value.mode==="auto"&&c8i(void 0,()=>{(e.matches?"dark":"light")==="dark"?(document.documentElement.setAttribute("theme-mode","dark"),document.documentElement.classList.add("dark")):(document.documentElement.removeAttribute("theme-mode"),document.documentElement.classList.remove("dark")),A1t(qse.value.primaryColor)})})},u8i=e=>{const t=typeof e;return t!=="function"&&t!=="object"||e===null},h8i=e=>{const t=e.flags===""?void 0:e.flags;return new RegExp(e.source,t)},pG=(e,t=new WeakMap)=>{if(e===null||u8i(e))return e;if(t.has(e))return t.get(e);if(e instanceof RegExp)return h8i(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Function)return e;if(e instanceof Map){const r=new Map;return t.set(e,r),e.forEach((o,s)=>{r.set(s,pG(o,t))}),r}if(e instanceof Set){const r=new Set;t.set(e,r);for(const o of e)r.add(pG(o,t));return r}if(Array.isArray(e)){const r=[];return t.set(e,r),e.forEach(o=>{r.push(pG(o,t))}),r}const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=pG(e[r],t));return n},uOn=(e,t=200)=>{let n=0;return(...r)=>new Promise(o=>{n&&(clearTimeout(n),o("cancel")),n=window.setTimeout(()=>{e.apply(void 0,r),n=0,o("done")},t)})},f8i=(e,t={_blank:!0,nofollow:!0})=>{const n=document.createElement("a");n.href=e,t._blank&&(n.target="_blank"),t.nofollow&&(n.rel="noopener noreferrer"),n.click()},YZe=()=>{let e=-1;return(t,n,r,o=100)=>{const s=()=>{r&&(typeof o=="number"?setTimeout(r,o):r())};e!==-1&&(cancelAnimationFrame(e),s());let a=t.scrollTop;const l=()=>{e=-1;const d=n-a;a=a+d/5,Math.abs(d)<1?(t.scrollTo(0,n),s()):(t.scrollTo(0,a),e=requestAnimationFrame(l))};e=requestAnimationFrame(l)}},g8i=(e,t=200)=>{let n=0,r=null;const o=s=>{n===0&&(n=s),s-n>=t?(e.apply(void 0,r),r=null,n=0):window.requestAnimationFrame(o)};return(...s)=>{r===null&&window.requestAnimationFrame(o),r=s}},m8i=e=>{const t=n=>{const{scrollHeight:r,scrollWidth:o,offsetHeight:s,offsetWidth:a,scrollLeft:l,scrollTop:d}=e,u=n.x,h=n.y,g=v=>{const f=d+h-v.y,k=l+u-v.x,A=r-s,p=o-a,b={};k>=0&&k<=p&&(b.left=k),f>=0&&f<=A&&(b.top=f),e.scroll(b)};document.addEventListener("mousemove",g);const m=()=>{document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",m)};document.addEventListener("mouseup",m)};return e.addEventListener("mousedown",t),()=>{e.removeEventListener("mousedown",t)}},AMe=()=>`${Date.now().toString(36)}${Math.random().toString(36).substring(2)}`,gge=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),K4e=(e,t,n={})=>{if(Array.isArray(e)&&Array.isArray(t))return pMe(e,t,n);const{excludeKeys:r}=n;for(const o in t){const s=t[o],a=e[o];r&&r(o)?e[o]=s:Array.isArray(s)&&Array.isArray(a)?e[o]=pMe(a,s,n):gge(s)&&gge(a)?e[o]=K4e(a,s,n):e[o]=s}return e},pMe=(e,t,n)=>{const r=e.slice();return t.forEach((o,s)=>{const a=r[s];Array.isArray(o)&&Array.isArray(a)?r[s]=pMe(a,o,n):gge(o)&&gge(a)?r[s]=K4e(a,o,n):r[s]=o}),r},kt="md-editor",k8i="MdEditor",Zc="https://unpkg.com",v8i=`${Zc}/@highlightjs/cdn-assets@11.11.1/highlight.min.js`,p1t={main:`${Zc}/prettier@3.8.1/standalone.js`,markdown:`${Zc}/prettier@3.8.1/plugins/markdown.js`},A8i={css:`${Zc}/cropperjs@1.6.2/dist/cropper.min.css`,js:`${Zc}/cropperjs@1.6.2/dist/cropper.min.js`},p8i=`${Zc}/screenfull@5.2.0/dist/screenfull.js`,b8i=`${Zc}/mermaid@11.12.3/dist/mermaid.min.js`,w8i={js:`${Zc}/katex@0.16.33/dist/katex.min.js`,css:`${Zc}/katex@0.16.33/dist/katex.min.css`},bMe={a11y:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/a11y-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/a11y-dark.min.css`},atom:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/atom-one-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/atom-one-dark.min.css`},github:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/github.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/github-dark.min.css`},gradient:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/gradient-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/gradient-dark.min.css`},kimbie:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/kimbie-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/kimbie-dark.min.css`},paraiso:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/paraiso-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/paraiso-dark.min.css`},qtcreator:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/qtcreator-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/qtcreator-dark.min.css`},stackoverflow:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/stackoverflow-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/stackoverflow-dark.min.css`}},O8i=`${Zc}/echarts@6.0.0/dist/echarts.min.js`,hOn=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","link","image","table","mermaid","katex","-","revoke","next","save","=","prettier","pageFullscreen","fullscreen","preview","previewOnly","htmlPreview","catalog","github"],fOn=["markdownTotal","=","scrollSwitch"],b1t={"zh-CN":{toolbarTips:{bold:"加粗",underline:"下划线",italic:"斜体",strikeThrough:"删除线",title:"标题",sub:"下标",sup:"上标",quote:"引用",unorderedList:"无序列表",orderedList:"有序列表",task:"任务列表",codeRow:"行内代码",code:"块级代码",link:"链接",image:"图片",table:"表格",mermaid:"mermaid图",katex:"katex公式",revoke:"后退",next:"前进",save:"保存",prettier:"美化",pageFullscreen:"浏览器全屏",fullscreen:"屏幕全屏",preview:"预览",previewOnly:"仅预览",htmlPreview:"html代码预览",catalog:"目录",github:"源码地址"},titleItem:{h1:"一级标题",h2:"二级标题",h3:"三级标题",h4:"四级标题",h5:"五级标题",h6:"六级标题"},imgTitleItem:{link:"添加链接",upload:"上传图片",clip2upload:"裁剪上传"},linkModalTips:{linkTitle:"添加链接",imageTitle:"添加图片",descLabel:"链接描述:",descLabelPlaceHolder:"请输入描述...",urlLabel:"链接地址:",urlLabelPlaceHolder:"请输入链接...",buttonOK:"确定"},clipModalTips:{title:"裁剪图片上传",buttonUpload:"上传"},copyCode:{text:"复制代码",successTips:"已复制!",failTips:"复制失败!"},mermaid:{flow:"流程图",sequence:"时序图",gantt:"甘特图",class:"类图",state:"状态图",pie:"饼图",relationship:"关系图",journey:"旅程图"},katex:{inline:"行内公式",block:"块级公式"},footer:{markdownTotal:"字数",scrollAuto:"同步滚动"}},"en-US":{toolbarTips:{bold:"bold",underline:"underline",italic:"italic",strikeThrough:"strikeThrough",title:"title",sub:"subscript",sup:"superscript",quote:"quote",unorderedList:"unordered list",orderedList:"ordered list",task:"task list",codeRow:"inline code",code:"block-level code",link:"link",image:"image",table:"table",mermaid:"mermaid",katex:"formula",revoke:"revoke",next:"undo revoke",save:"save",prettier:"prettier",pageFullscreen:"fullscreen in page",fullscreen:"fullscreen",preview:"preview",previewOnly:"preview only",htmlPreview:"html preview",catalog:"catalog",github:"source code"},titleItem:{h1:"Lv1 Heading",h2:"Lv2 Heading",h3:"Lv3 Heading",h4:"Lv4 Heading",h5:"Lv5 Heading",h6:"Lv6 Heading"},imgTitleItem:{link:"Add Image Link",upload:"Upload Images",clip2upload:"Crop And Upload"},linkModalTips:{linkTitle:"Add Link",imageTitle:"Add Image",descLabel:"Desc:",descLabelPlaceHolder:"Enter a description...",urlLabel:"Link:",urlLabelPlaceHolder:"Enter a link...",buttonOK:"OK"},clipModalTips:{title:"Crop Image",buttonUpload:"Upload"},copyCode:{text:"Copy",successTips:"Copied!",failTips:"Copy failed!"},mermaid:{flow:"flow",sequence:"sequence",gantt:"gantt",class:"class",state:"state",pie:"pie",relationship:"relationship",journey:"journey"},katex:{inline:"inline",block:"block"},footer:{markdownTotal:"Character Count",scrollAuto:"Scroll Auto"}}},dh={editorExtensions:{highlight:{js:v8i,css:bMe},prettier:{standaloneJs:p1t.main,parserMarkdownJs:p1t.markdown},cropper:{...A8i},screenfull:{js:p8i},mermaid:{js:b8i,enableZoom:!0},katex:{...w8i},echarts:{js:O8i}},editorExtensionsAttrs:{},editorConfig:{languageUserDefined:{},mermaidTemplate:{},renderDelay:500,zIndex:2e4},codeMirrorExtensions:e=>e,markdownItConfig:()=>{},markdownItPlugins:e=>e,mermaidConfig:e=>e,katexConfig:e=>e,echartsConfig:e=>e},y8i=e=>K4e(dh,e,{excludeKeys(t){return/[iI]{1}nstance/.test(t)}}),Kse=.1,_0=({instance:e,ctx:t,props:n={}},r="default")=>{const o=(e==null?void 0:e.$slots[r])||(t==null?void 0:t.slots[r]);return(o?o(e):"")||n[r]},C8i={overlay:{type:[String,Object],default:""},visible:{type:Boolean,default:!1},onChange:{type:Function,default:()=>{}},relative:{type:String,default:"html"},disabled:{type:Boolean,default:void 0}},Tz=Je({name:`${kt}-dropdown`,props:C8i,setup(e,t){const n=`${kt}-dropdown-hidden`,r=hs({overlayClass:[n],overlayStyle:{},triggerHover:!1,overlayHover:!1}),o=fe(),s=fe(),a=()=>{var y,C;if(e.disabled)return!1;r.triggerHover=!0;const h=o.value,g=s.value;if(!h||!g)return;const m=h.getBoundingClientRect(),v=h.offsetTop,f=h.offsetLeft,k=m.height,A=m.width,p=h.getRootNode(),b=((y=p.querySelector(e.relative))==null?void 0:y.scrollLeft)||0,w=((C=p.querySelector(e.relative))==null?void 0:C.clientWidth)||0;let O=f-g.offsetWidth/2+A/2-b;O+g.offsetWidth>b+w&&(O=b+w-g.offsetWidth),O<0&&(O=0),r.overlayStyle={...r.overlayStyle,insetBlockStart:v+k+"px",insetInlineStart:O+"px"},e.onChange(!0)},l=()=>{if(e.disabled)return!1;r.overlayHover=!0};pt(()=>e.visible,h=>{h?r.overlayClass=r.overlayClass.filter(g=>g!==n):r.overlayClass.push(n)});let d=-1;const u=h=>{o.value===h.target?r.triggerHover=!1:r.overlayHover=!1,clearTimeout(d),d=window.setTimeout(()=>{!r.overlayHover&&!r.triggerHover&&e.onChange(!1)},10)};return An(()=>{o.value.addEventListener("mouseenter",a),o.value.addEventListener("mouseleave",u),s.value.addEventListener("mouseenter",l),s.value.addEventListener("mouseleave",u)}),qs(()=>{o.value.removeEventListener("mouseenter",a),o.value.removeEventListener("mouseleave",u),s.value.removeEventListener("mouseenter",l),s.value.removeEventListener("mouseleave",u)}),()=>{const h=_0({ctx:t}),g=_0({props:e,ctx:t},"overlay"),m=Jv(h instanceof Array?h[0]:h,{ref:o,key:"cloned-dropdown-trigger"}),v=c("div",{class:[`${kt}-dropdown`,r.overlayClass],style:r.overlayStyle,ref:s},[c("div",{class:`${kt}-dropdown-overlay`},[g instanceof Array?g[0]:g])]);return[m,v]}}}),_8i={title:{type:String,default:""},visible:{type:Boolean,default:void 0},trigger:{type:[String,Object],default:void 0},onChange:{type:Function,default:void 0},overlay:{type:[String,Object],default:void 0},insert:{type:Function,default:void 0},language:{type:String,default:void 0},theme:{type:String,default:void 0},previewTheme:{type:String,default:void 0},codeTheme:{type:String,default:void 0},disabled:{type:Boolean,default:void 0},showToolbarName:{type:Boolean,default:void 0}},sue=Je({name:"DropdownToolbar",props:_8i,emits:["onChange"],setup(e,t){const n=bt("editorId"),r=o=>{var s;(s=e.onChange)==null||s.call(e,o),t.emit("onChange",o)};return()=>{const o=_0({props:e,ctx:t},"trigger"),s=_0({props:e,ctx:t},"overlay"),a=_0({props:e,ctx:t});return c(Tz,{relative:`#${n}-toolbar-wrapper`,visible:e.visible,onChange:r,overlay:s,disabled:e.disabled},{default:()=>[c("button",{class:[`${kt}-toolbar-item`,e.disabled&&`${kt}-disabled`],title:e.title||"",disabled:e.disabled,type:"button"},[a||o])]})}}});sue.install=e=>(e.component(sue.name,sue),e);const J4e="onSave",ZZe="changeCatalogVisible",gOn="changeFullscreen",w1t="pageFullscreenChanged",O1t="fullscreenChanged",y1t="previewChanged",C1t="previewOnlyChanged",_1t="htmlPreviewChanged",S1t="catalogVisibleChanged",aue="buildFinished",wy="errorCatcher",To="replace",epe="uploadImage",mOn="ctrlZ",kOn="ctrlShiftZ",jY="catalogChanged",vOn="pushCatalog",qZe="rerender",AOn="eventListener",pOn="taskStateChanged",bOn="sendEditorView",mge="getEditorView";let S8i=class{constructor(){In(this,"pools",{})}remove(t,n,r){const o=this.pools[t]&&this.pools[t][n];o&&(this.pools[t][n]=o.filter(s=>s!==r))}clear(t){this.pools[t]={}}on(t,n){return this.pools[t]||(this.pools[t]={}),this.pools[t][n.name]||(this.pools[t][n.name]=[]),this.pools[t][n.name].push(n.callback),this.pools[t][n.name].includes(n.callback)}emit(t,n,...r){this.pools[t]||(this.pools[t]={});const o=this.pools[t][n];o&&o.forEach(s=>{try{s(...r)}catch(a){console.error(`${n} monitor event exception!`,a)}})}};const Pn=new S8i,L8i=(e,t="image.png")=>{const n=e.split(","),r=n[0].match(/:(.*?);/);if(r){const o=r[1],s=atob(n[1]);let a=s.length;const l=new Uint8Array(a);for(;a--;)l[a]=s.charCodeAt(a);return new File([l],t,{type:o})}return null},x8i=(e,t)=>{if(!e)return e;const n=t.split(` +If you need to adjust it, you can modify it in the settings at any time.`,qrcodeLabel:"Join the WeChat communication group to get more help:",githubLabel:"If you find it useful, please give us a ⭐ Star!",prevStep:"Previous step",nextStep:"Next step",finish:"Get started"},HCi={skillManagement:{search:"Search file name",empty:"No matching files",edit:"edit",selectOnTheLeft:"Please select a file from the left"}},$Ci={assets:{notExist:"Asset does not exist",notDerivativeExist:"Derivative assets do not exist",derivativeUpdateSuccess:"Update successful",derivativeState:"Not generated",derivativeAddSuccess:"Added successfully",derivativeDelSuccess:"Delete successfully",notGenerated:"Not generated"},addSuccess:"Update successful",state:{unused:"Not generated"},saveSuccess:"Added successfully"},XCi={generating:"Generating"},GCi={scanning:"🔍 Parsing and loading Skill",scanComplete:"✨ Skill Scan Complete",inserted:"✅ Added {count} Skills",updated:"🔄 {count} Skill(s) updated",removed:"🗑️ {count} Skill(s) removed",scannedFiles:"📁 Scanned {count} files",noDescription:"📝 {count} Skill(s) missing description",noAttribution:"👤 {count} Skill(s) missing attribution",configWarning:"⚠️ Skill Config Warning",openSettings:"Open Settings",scanFailed:"❌ Scan Failed",checkNetwork:"🔌 Please check network connection or try again later",retryLater:"🔁 Please try again later"},YCi="Generate video",ZCi="Historical version",qCi="Generating",KCi="fail",JCi="Select all",e_i="Selected",t_i="Import video",n_i="Paragraph {index 1}",i_i="Confirm deletion",r_i="Are you sure you want to delete this paragraph?",o_i="Select source",s_i="Select from assets",a_i="Select from storyboard",l_i={newVersion:"There is a new version, do you want to update it?"},c_i={components:NCi,settings:UCi,workbench:jCi,login:WCi,"components.storyboardImageCheck.camera":"Camera","components.storyboardImageCheck.dialogTitle":"Select Storyboard Image","components.storyboardImageCheck.preview":"Preview","components.storyboardImageCheck.src":"Preview Image","components.storyboardImageCheck.title":"Title","components.storyboardImageCheck.duration":"Duration","components.storyboardImageCheck.lines":"Lines","components.storyboardImageCheck.createTime":"Created Time","workbench.script.extractAssets":"Extract Assets",promptManage:VCi,hello:zCi,setting:HCi,storyboard:$Ci,productionAgent:XCi,skillScan:GCi,generate:YCi,history:ZCi,generating:qCi,generateFailed:KCi,selectAll:JCi,selected:e_i,importVideo:t_i,emptyTrack:n_i,del:i_i,delConfirm:r_i,selectSource:o_i,confirm:s_i,cancel:a_i,"workbench.script.msg.selectExport":"","workbench.script.msg.exportFailed":"Export failed","workbench.production.node.assets.confirmDeleteBody":"Confirm whether to delete the asset","workbench.production.node.assets.removeFailed":"Failed to delete asset",version:l_i,"workbench.production.generatedNode.localUpload":"Local upload","workbench.production.editImage.uploadFailed":"Image upload failed","workbench.production.editImage.noImage":"Please add pictures first"},d_i={editMdPreivew:{title:"แก้ไข",confirm:"บันทึก",cancel:"ยกเลิก"},imageTools:{copy:"คัดลอกรูปภาพ",preview:"ดูตัวอย่าง",download:"ดาวน์โหลด",msg:{imageLoadFailed:"โหลดรูปภาพล้มเหลว",convertFailed:"แปลงไฟล์ล้มเหลว",copied:"คัดลอกไปยังคลิปบอร์ดแล้ว",copyFailed:"คัดลอกล้มเหลว",downloadFailed:"ดาวน์โหลดล้มเหลว",downloadStarted:"เริ่มการดาวน์โหลด",downloadBlockedOpenNewWindow:"แหล่งที่มารูปภาพปัจจุบันอาจจำกัดการดาวน์โหลด ระบบได้ลองเปิดในหน้าต่างใหม่แล้ว"}},migrateShow:{title:"ย้ายข้อมูล",desc:"ตรวจพบว่าคุณมีข้อมูลจากเวอร์ชันเก่า ต้องการย้ายข้อมูลหรือไม่?",hide:"ไม่ต้องแสดงอีก",confirm:"ตกลง",msg:{migrateSuccess:"ย้ายข้อมูลสำเร็จ",migrateFailed:"ย้ายข้อมูลล้มเหลว"}},modelSelect:{placeholder:"โปรดเลือกโมเดล",type:{image:"รูปภาพ",text:"ข้อความ",video:"วิดีโอ"},msg:{fetchModelFailed:"ดึงข้อมูลโมเดลล้มเหลว:"},goSetting:"ไปที่การตั้งค่าและเพิ่มโมเดล"}},u_i={title:"การตั้งค่า ToonFlow",menu:{language:"ตั้งค่าภาษา",vendorConfig:"บริการโมเดล",agentConfig:"การตั้งค่า Agent",promptManage:"การจัดการพรอมต์",skillManagement:"จัดการซิลเลคต",memoryConfig:"หน่วยความจำ Agent",loginConfig:"การตั้งค่าเข้าสู่ระบบ",dbConfig:"จัดการฐานข้อมูล",fileManagement:"จัดการไฟล์",otherConfig:"การตั้งค่าอื่นๆ",requestConfig:"ที่อยู่คำขอ (API URL)",about:"ตรวจสอบการอัปเดต",logoutConfig:"ออกจากระบบ",skillsSkillsManagement:"การจัดการทักษะทักษะ"},language:{desc:"เลือกภาษาที่แสดงบนอินเทอร์เฟซ",msg:{saved:"บันทึกการตั้งค่าภาษาแล้ว"}},vendor:{addVendor:"เพิ่มผู้ให้บริการ",noVendor:"ยังไม่มีผู้ให้บริการ โปรดเพิ่มก่อน",required:"จำเป็น",optionalSection:"ตัวเลือกเสริม",modelSettings:"การตั้งค่าโมเดล",addManually:"เพิ่มด้วยตนเอง",test:"ทดสอบ",edit:"แก้ไข",delete:"ลบ",deleteVendor:"ลบผู้ให้บริการ",editCode:"แก้ไขโค้ด",updateConfig:"อัปเดตการตั้งค่า",addModel:"เพิ่มโมเดล",editModel:"แก้ไขโมเดล",displayName:"ชื่อที่แสดง",displayNamePlaceholder:"ตัวอย่างเช่น: GPT-4o",modelId:"รหัสโมเดล (Model ID)",modelIdPlaceholder:"ตัวอย่างเช่น: gpt-4o",modelType:"ประเภทโมเดล",multimodal:"มัลติโมดัล (Multimodal)",supported:"รองรับ",notSupported:"ไม่รองรับ",toolCall:"การเรียกใช้เครื่องมือ",imageMode:"โหมดรูปภาพ",videoMode:"โหมดวิดีโอ",audioOutput:"เอาต์พุตเสียง",durationResolution:"การจับคู่ความยาว / ความละเอียด",durationSec:"ความยาว (วินาที)",resolution:"ความละเอียด",enterAndPress:"พิมพ์แล้วกด Enter",addDurationResolution:"เพิ่มชุดความยาว / ความละเอียด",testResult:"ผลการทดสอบ",generating:"กำลังสร้าง...",addVendorDialog:"เพิ่มผู้ให้บริการ",codeEditorInfo:"โปรดเขียนโค้ด TypeScript เพื่อตั้งค่าข้อมูลผู้ให้บริการ",reset:"รีเซ็ต",importFile:"นำเข้าไฟล์",textModel:"โมเดลข้อความ",imageModel:"โมเดลรูปภาพ",videoModel:"โมเดลวิดีโอ",textToImage:"สร้างภาพจากข้อความ",textToVideo:"สร้างวิดีโอจากข้อความ",singleImage:"รูปภาพเดียว",multiImage:"โหมดหลายรูปภาพ",multiReference:"อ้างอิงหลายรูปภาพ",gridImage:"รูปภาพกริดเดียว",startEndRequired:"เฟรมแรกและสุดท้าย (จำเป็นต้องระบุทั้งสอง)",endFrameOptional:"เฟรมแรกและสุดท้าย (เฟรมสุดท้ายระบุหรือไม่ก็ได้)",startFrameOptional:"เฟรมแรกและสุดท้าย (เฟรมแรกระบุหรือไม่ก็ได้)",textRef:"ข้อความ",imageRef:"รูปภาพ",videoRef:"วิดีโอ",audioRef:"เสียง",audioOptional:"ตัวเลือก",audioOnly:"ส่งออกเฉพาะวิดีโอที่มีเสียง",noAudio:"ส่งออกเฉพาะวิดีโอที่ไม่มีเสียง",msg:{getVendorListFailed:"ดึงรายการผู้ให้บริการล้มเหลว",vendorConfigUpdated:"อัปเดตการตั้งค่าผู้ให้บริการแล้ว",updateFailed:"อัปเดตล้มเหลว",highRiskConfirm:"⚠️ ยืนยันการดำเนินการที่มีความเสี่ยงสูง",addVendorRiskBody:"การเพิ่มผู้ให้บริการ AI รายใหม่จะให้สิทธิ์ในการเข้าถึง API ของระบบ โปรดยืนยันว่าคุณเชื่อถือแหล่งที่มาของโค้ดจากผู้ให้บริการรายนี้!",iKnowRisk:"ฉันรับทราบความเสี่ยง",cancel:"ยกเลิก",confirmAgain:"⚠️ ยืนยันอีกครั้ง",addVendorConfirmBody:"คุณแน่ใจหรือไม่ว่าต้องการเพิ่มผู้ให้บริการรายนี้? หลังจากเพิ่มแล้ว ระบบจะนำไปใช้ในการจัดสรรโมเดล",confirmAndAdd:"ยืนยันและเพิ่ม",goBackCheck:"กลับไปตรวจสอบ",vendorAdded:"เพิ่มผู้ให้บริการสำเร็จแล้ว",addFailed:"เพิ่มล้มเหลว",updateVendorRiskBody:"การอัปเดตการตั้งค่าผู้ให้บริการ AI จะปรับเปลี่ยนสิทธิ์และพฤติกรรมการเข้าถึง API ของระบบ โปรดยืนยันว่าคุณเชื่อถือแหล่งที่มาของโค้ดที่ถูกแก้ไขนี้!",updateVendorConfirmBody:"คุณแน่ใจหรือไม่ว่าต้องการอัปเดตการตั้งค่าผู้ให้บริการนี้? การอัปเดตจะมีผลต่อการจัดสรรโมเดลของระบบ",confirmAndUpdate:"ยืนยันและอัปเดต",updateSuccess:"อัปเดตการตั้งค่าผู้ให้บริการสำเร็จ",fillDisplayName:"โปรดกรอกชื่อที่แสดง",fillModelId:"โปรดกรอกรหัสโมเดล",selectImageMode:"โปรดเลือกโหมดรูปภาพ",selectVideoMode:"โปรดเลือกโหมดวิดีโอ",groupPrefix:"กลุ่มที่ {n}:",addDuration:"โปรดเพิ่มความยาว",addResolution:"โปรดเพิ่มความละเอียด",selectVendorFirst:"โปรดเลือกผู้ให้บริการก่อน",modelIdExists:"รหัสโมเดลนี้มีอยู่แล้ว",modelAdded:"เพิ่มโมเดลสำเร็จแล้ว",modelUpdated:"อัปเดตโมเดลสำเร็จแล้ว",enterApiKey:"โปรดกรอก API KEY",enterApiUrl:"โปรดกรอก API URL",testSuccess:"ทดสอบสำเร็จ",imageGenSuccess:"สร้างรูปภาพสำเร็จ",videoGenSuccess:"สร้างวิดีโอสำเร็จ",requestFailed:"ส่งคำขอล้มเหลว",deleteModelConfirm:"ยืนยันการลบโมเดล",deleteModelBody:"หลังจากลบแล้วจะไม่สามารถกู้คืนได้ ต้องการดำเนินการต่อหรือไม่?",confirmDelete:"ยืนยันการลบ",modelDeleted:"ลบโมเดลแล้ว",deleteVendorConfirm:"ยืนยันการลบผู้ให้บริการ",deleteVendorBody:"หลังจากลบแล้ว โมเดลทั้งหมดภายใต้ผู้ให้บริการรายนี้จะถูกลบไปด้วย ต้องการดำเนินการต่อหรือไม่?",vendorDeleted:"ลบผู้ให้บริการแล้ว",deleteFailed:"ลบล้มเหลว",enabled:"เปิดใช้งานแล้ว",disabled:"พิการ",linkAddVendorRiskBody:"การเพิ่มผู้จำหน่าย AI ใหม่จะทำให้สามารถเข้าถึง API ระบบได้ โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อถือแหล่งลิงก์ของผู้ขาย!",importAdd:"การเพิ่มผู้จำหน่าย AI ใหม่จะทำให้สามารถเข้าถึง API ระบบได้ โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อถือแหล่งเอกสารประกอบของผู้ขาย!",linkAddFailed:"ไม่สามารถเพิ่มลิงก์"},associationSkills:"ทักษะที่เกี่ยวข้อง",think:"คิดลึก",code:"รหัส",linkAddPlaceholder:"ใส่ลิงค์เพื่อเพิ่ม",noFileSelected:"นำเข้าไฟล์เรียบร้อยแล้ว",linkAdd:"ยืนยัน"},agent:{bannerDesc:"ใช้เซิร์ฟเวอร์ตัวกลางอย่างเป็นทางการของ Toonflow รองรับการกรอกการตั้งค่าในคลิกเดียว พร้อมใช้งานทันทีโดยไม่ต้องตั้งค่าด้วยตนเอง",visitWebsite:"เข้าสู่เว็บไซต์",fillKey:"กรอก KEY",oneClickFill:"กรอกในคลิกเดียว",notOpen:"ยังไม่เปิดให้บริการ",notConfigured:"ยังไม่ได้ตั้งค่า",modelConfig:"การตั้งค่าโมเดล",confirm:"ยืนยัน",cancel:"ยกเลิก",selectModel:"เลือกโมเดล",fillKeyHeader:"กรอก KEY อย่างเป็นทางการจากแพลตฟอร์ม Toonflow",keyPlaceholder:"โปรดกรอก KEY",save:"บันทึก",msg:{notAvailable:"ฟีเจอร์นี้ยังไม่เปิดให้บริการ โปรดติดตามเร็วๆ นี้",configSuccess:"ตั้งค่าสำเร็จ",updateConfigFailed:"อัปเดตการตั้งค่าล้มเหลว:",keyValid:"KEY ถูกต้อง เชื่อมต่อกับแพลตฟอร์ม Toonflow สำเร็จแล้ว",keyInvalid:"KEY ไม่ถูกต้อง โปรดตรวจสอบและกรอกใหม่อีกครั้ง:",enterKey:"โปรดกรอก KEY",saveFailed:"บันทึกล้มเหลว:",getAgentListFailed:"ดึงรายการการตั้งค่า Agent ล้มเหลว:",toonflowNotFound:"ไม่มีสถานีรับส่งอย่างเป็นทางการของ Toonflow"}},memory:{warning:"รายการการตั้งค่าต่อไปนี้ถูกกำหนดล่วงหน้าเป็นค่าที่แนะนำ เว้นแต่คุณจะเข้าใจความหมายและผลกระทบของการตั้งค่าแต่ละรายการอย่างชัดเจน ขอแนะนำให้คงการตั้งค่าปัจจุบันไว้",vectorModelConfig:"การตั้งค่าโมเดลเวกเตอร์ (Vector Model)",modelFilePath:"เส้นทางไฟล์โมเดล",quantizationType:"ประเภท Quantization",quantizationPlaceholder:"โปรดกรอกประเภท Quantization",memoryParams:"พารามิเตอร์หน่วยความจำ",messagesPerSummary:"จำนวนข้อความที่จะทริกเกอร์การบีบอัด",messagesPerSummaryHelp:"เก็บบริบทของบทสนทนา N รายการล่าสุด",shortTermLimit:"จำนวนข้อความที่ยังไม่ถูกบีบอัดในการดึงข้อมูลครั้งเดียว",shortTermLimitHelp:"จำนวนหน่วยความจำที่เป็นไปได้ที่จะถูกส่งคืนเมื่อทำการค้นหา",summaryMaxLength:"จำนวนตัวอักษรสูงสุดในการบีบอัด",summaryMaxLengthHelp:"จำนวนตัวอักษรสูงสุดที่อนุญาตเมื่อทำการบีบอัดข้อความ",summaryLimit:"จำนวนข้อความที่ถูกบีบอัดที่อนุญาตให้สืบค้น",summaryLimitHelp:"จำนวนข้อความที่ถูกบีบอัดที่อนุญาตให้ทำการสืบค้นได้",ragLimit:"จำนวนหน่วยความจำในการค้นหา",ragLimitHelp:"จำนวนข้อความที่จะดึงมาเมื่อทำการค้นหา",deepRetrieveSummaryLimit:"จำนวนข้อความที่ถูกบีบอัดที่จะเรียกคืนด้วยเวกเตอร์",deepRetrieveSummaryLimitHelp:"จำนวนข้อความที่จะดึงมาเมื่อทำการค้นหาเนื้อหาของข้อความที่ถูกบีบอัด",saveConfig:"บันทึกการตั้งค่า",clearMemory:"ล้างหน่วยความจำ",restoreDefault:"กู้คืนการตั้งค่าเริ่มต้น",msg:{saved:"บันทึกการตั้งค่าหน่วยความจำแล้ว",clearConfirmTitle:"ยืนยันการล้างหน่วยความจำ",clearConfirmBody:"การดำเนินการนี้จะล้างข้อมูลหน่วยความจำทั้งหมดของ AI และไม่สามารถกู้คืนได้ ต้องการดำเนินการต่อหรือไม่?",confirmClear:"ยืนยันการล้าง",cancel:"ยกเลิก",cleared:"ล้างหน่วยความจำแล้ว",clearFailed:"ล้างหน่วยความจำล้มเหลว"}},login:{username:"ชื่อผู้ใช้",usernamePlaceholder:"โปรดกรอกชื่อผู้ใช้",password:"รหัสผ่าน",passwordPlaceholder:"โปรดกรอกรหัสผ่าน",modify:"แก้ไข",msg:{enterUsername:"โปรดกรอกชื่อผู้ใช้",usernameLength:"ความยาวชื่อผู้ใช้ต้องอยู่ระหว่าง 2-20 ตัวอักษร",enterPassword:"โปรดกรอกรหัสผ่าน",passwordLength:"ความยาวรหัสผ่านต้องอยู่ระหว่าง 6-20 ตัวอักษร",fetchFailed:"ดึงข้อมูลผู้ใช้ล้มเหลว",saveSuccess:"บันทึกสำเร็จ",saveFailed:"บันทึกล้มเหลว"}},db:{clearDb:"ล้างฐานข้อมูล",clearDbDesc:"ล้างข้อมูลทั้งหมดในตารางข้อมูล โดยคงไว้เพียงโครงสร้างตาราง",clearData:"ล้างข้อมูล",confirmAction:"ยืนยันการดำเนินการ",msg:{clearDbTitle:"ล้างฐานข้อมูล",firstConfirm:"แน่ใจหรือไม่ว่าต้องการล้างข้อมูลในตารางทั้งหมด? ข้อมูลที่ถูกล้างจะไม่สามารถกู้คืนได้!",secondConfirm:"นี่คือการยืนยันครั้งสุดท้าย หลังจากล้างแล้วข้อมูลทั้งหมดจะสูญหายถาวร!",keyword:"ล้างข้อมูล",confirm:"ยืนยัน",pleaseInput:"โปรดพิมพ์",cleared:"ตารางข้อมูลทั้งหมดถูกล้างเรียบร้อยแล้ว",operationFailed:"การดำเนินการล้มเหลว โปรดลองอีกครั้ง",cancelled:"ยกเลิกการดำเนินการแล้ว"}},other:{requestTimeout:"หมดเวลาคำขอ (Timeout)",seconds:"วินาที",inputSeconds:"โปรดกรอกเวลา (วินาที)",assetConcurrency:"จำนวนการสร้างสินทรัพย์พร้อมกัน (Concurrency)",count:"รายการ",inputCount:"โปรดกรอกจำนวนรายการ",chapterRegex:"นิพจน์ปกติสำหรับแยกตอน (Regex)",restoreDefault:"กู้คืนค่าเริ่มต้น",regexPlaceholder:"โปรดกรอกนิพจน์ปกติ (Regex)",showTitleBar:"แสดงแถบชื่อเรื่อง",isElectron:"สลับไปที่โหมดเดสก์ท็อป",canvasScroll:"เลื่อนผ้าใบ",canvasIsDisabled:"แคนวาสซูม",agentCanvasScalingMethod:"งานล้อผ้าใบตัวแทน",zoom:"ซูม",scroll:"เลื่อน",isInteracting:"การเพิ่มประสิทธิภาพการลากผ้าใบไม่จำกัดบนหน้าการผลิต",closeIsInteracting:"ปิด"},request:{warning:"หากไม่มีกรณีพิเศษ ไม่จำเป็นต้องแก้ไขหรือตั้งค่าใดๆ",apiAddress:"ที่อยู่ API",apiPlaceholder:"โปรดกรอกที่อยู่คำขอ API",save:"บันทึก",reset:"รีเซ็ต",msg:{enterApi:"โปรดกรอกที่อยู่ API",validUrl:"โปรดกรอกที่อยู่ HTTP/HTTPS ที่ถูกต้อง",saved:"บันทึกที่อยู่คำขอสำเร็จ",reset:"รีเซ็ตเป็นที่อยู่เริ่มต้นแล้ว",refreshFailed:"รีเฟรชล้มเหลว",refreshSuccess:"รีเฟรชสำเร็จ"},refresh:"รีเฟรช"},about:{slogan:"เครื่องมือสร้างการ์ตูน / สตอรี่บอร์ดที่ขับเคลื่อนด้วย AI แบบโอเพนซอร์ส",latestVersion:"นี่คือเวอร์ชันล่าสุด",checkUpdate:"ตรวจสอบการอัปเดต",codeRepository:"คลังเก็บโค้ด",githubRepo:"คลัง GitHub",giteeRepo:"คลัง Gitee",versionUpdate:"อัปเดตเวอร์ชัน",checkUpdateGithub:"ตรวจสอบการอัปเดต (GitHub)",getFromGithub:"รับเวอร์ชันล่าสุดจาก GitHub Release",checkUpdateGitee:"ตรวจสอบการอัปเดต (Gitee)",getFromGitee:"รับเวอร์ชันล่าสุดจาก Gitee Release",license:"ใบอนุญาต (License)",licenseDesc:"ข้อตกลงใบอนุญาตโอเพนซอร์ส · คลิกเพื่อดูรายละเอียด",updateAvailable:"พบเวอร์ชันใหม่แล้ว",upToDate:"ตรวจพบเวอร์ชันใหม่",confirmReinstall:"คัดลอกลิงก์",reinstallRequired:"เบราว์เซอร์จะเปิดและดาวน์โหลดโดยอัตโนมัติ หากไม่เปิดขึ้น โปรดเปิดด้วยตนเอง"},logout:{warning:"หลังจากออกจากระบบ คุณจะต้องเข้าสู่ระบบใหม่เพื่อใช้งานระบบต่อไป",confirmLogout:"แน่ใจหรือไม่ว่าต้องการออกจากระบบ?",logout:"ออกจากระบบ",msg:{logoutSuccess:"ออกจากระบบสำเร็จ",logoutFailed:"ออกจากระบบล้มเหลว โปรดลองอีกครั้ง"}},file:{quickOpen:"เปิดไดเรกทอรีอย่างรวดเร็ว",open:"เปิด",dockerDesc:'สำหรับการปรับใช้ Docker/แยกส่วนหน้าและส่วนหลัง โปรดไปที่ไดเรกทอรี "/data/*" เพื่อจัดการไฟล์ด้วยตนเอง',desktopOnly:"ฟีเจอร์นี้รองรับเฉพาะเวอร์ชันเดสก์ท็อปเท่านั้น",folders:{data:"data",dataDesc:"ไดเรกทอรีข้อมูล",logs:"data/logs",logsDesc:"บันทึกการทำงานและบันทึกข้อผิดพลาด",oss:"data/oss",ossDesc:"ทรัพยากรที่เกี่ยวข้องกับการจัดเก็บไฟล์",skills:"data/skills",skillsDesc:"ไฟล์การตั้งค่าทักษะ (Skills) และพรอมต์",models:"data/models",modelsDesc:"ไฟล์โมเดลและการตั้งค่า",web:"data/web",webDesc:"ทรัพยากรเว็บ เช่น ผลลัพธ์จากการบิลด์ส่วนหน้า เป็นต้น",serve:"data/serve",serveDesc:"ไฟล์ที่เกี่ยวข้องกับบริการส่วนหลัง"},openFailed:"เปิดโฟลเดอร์ล้มเหลว"},skill:{scanSkills:"สแกนทักษะ",fileLost:"ไฟล์หายไป"},dev:{warning:"ต่อไปนี้เป็นเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ โปรดดำเนินการด้วยความระมัดระวัง!",openDevtool:"เปิด",devtoolsDoc:"ที่อยู่เอกสาร",devtoolsDesc:"หลังจากเปิดใช้งานแล้ว โฟลเดอร์ .devtools จะถูกสร้างขึ้นในไดเร็กทอรีการติดตั้ง Toonflow โปรดตรวจสอบให้แน่ใจว่า Toonflow มีสิทธิ์ในการเขียน (ทำงานในฐานะผู้ดูแลระบบ)",devtoolsDesc2:"เรียกใช้ npx {'@'}ai-sdk/devtools ในไดเรกทอรีนี้เพื่อเปิดใช้งานการแก้ไขจุดบกพร่องการวัดและส่งข้อมูลทางไกล",openDevtoolFailed:"ไม่สามารถเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้ง Toonflow desktop แล้ว",notInElectron:"สำหรับสภาพแวดล้อมแบบเว็บ โปรดเปิดคอนโซลเบราว์เซอร์ด้วยตนเอง"}},h_i={selectProject:"โปรดเลือกโปรเจกต์",menu:{myProject:"โปรเจกต์ของฉัน",taskCenter:"ศูนย์งาน",novel:"ต้นฉบับนิยาย",scriptAgent:"Agent บทภาพยนตร์",scriptManage:"จัดการบทภาพยนตร์",cornerScape:"สร้างตัวละครและฉาก",production:"ผลิตวิดีโอ",assetCenter:"ศูนย์สินทรัพย์",settings:"การตั้งค่า",jumpGithub:"ข้ามไปที่ Github",feedbackQuestions:"คำถามคำติชม"},project:{title:"โปรเจกต์ของฉัน",subtitle:"จัดการโปรเจกต์ละครสั้นทั้งหมดของคุณ",newProject:"โปรเจกต์ใหม่",dialog:{editTitle:"แก้ไขโปรเจกต์",addTitle:"โปรเจกต์ใหม่",save:"บันทึก",ok:"ตกลง",cancel:"ยกเลิก",projectType:"ประเภทโปรเจกต์",selectType:"เลือกประเภทโปรเจกต์",basedOnNovel:"สร้างจากต้นฉบับนิยาย",projectName:"ชื่อโปรเจกต์",projectNamePh:"โปรดกรอกชื่อโปรเจกต์",novelType:"ประเภทนิยาย",novelTypePh:"ตัวอย่างเช่น: แฟนตาซี, ไซไฟ, โรแมนติก",artStyle:"คู่มือภาพ",selected:"เลือกแล้ว:",selectArtStyle:"โปรดเลือกคู่มือแบบภาพ",newArtStyle:"คู่มือภาพใหม่",loading:"กำลังโหลด...",videoRatio:"อัตราส่วนวิดีโอ",novelIntro:"เรื่องย่อนิยาย",novelIntroPh:"โปรดกรอกเรื่องย่อนิยาย",editArtStyleTitle:"แก้ไขคู่มือภาพ",newArtStyleTitle:"คู่มือภาพใหม่",artStyleName:"ชื่อคู่มือแบบภาพ",artStyleNamePh:"โปรดป้อนชื่อคู่มือแบบภาพ",artStyleImage:"ภาพปกคู่มือภาพ",remove:"ลบออก",uploadCover:"อัปโหลดภาพปก",artStylePrompt:"ภาพพร้อมคำคู่มือ",aiExtract:"AI สกัดพรอมต์",promptPlaceholder:"อธิบายคำพร้อมท์คู่มือแบบภาพ ซึ่งใช้เพื่อระบุคู่มือแบบภาพเมื่อสร้างภาพ",visualManual:"คู่มือภาพ",newVisualManual:"คู่มือภาพใหม่",editVisualManualTitle:"แก้ไขคู่มือภาพ",newVisualManualTitle:"คู่มือภาพใหม่",visualManualName:"ชื่อคู่มือภาพ",visualManualNamePh:"โปรดป้อนชื่อคู่มือภาพ",visualManualCover:"ภาพปกคู่มือภาพ",visualManualPrompt:"Prompt คู่มือภาพ",modelData:"เลือกรุ่นรูปภาพ",videoModelData:"เลือกรุ่นวิดีโอ",prompt:{placeholder:"ป้อนคำที่พร้อมท์",saveSuccess:"อัปเดตสำเร็จ",title:"คำพูดที่รวดเร็ว"},basedOnScript:"ขึ้นอยู่กับสคริปต์",mdFile:"ไฟล์คู่มือภาพ",directorManual:"คู่มือกรรมการ",addDirectorManual:"คู่มือกรรมการใหม่",editingDirectorManual:"แก้ไขคู่มือกรรมการ",newDirecorManualTitle:"คู่มือกรรมการใหม่",directorManualPrompt:"คำพร้อมท์คู่มือผู้อำนวยการ",directorManualName:"ชื่อคู่มือผู้อำนวยการ",directorManualNamePh:"กรอกชื่อคู่มือผู้อำนวยการ",directorFile:"เอกสารคู่มือผู้อำนวยการ",directorManualCover:"ปกคู่มือผู้อำนวยการ"},msg:{fetchFailed:"ดึงรายการโปรเจกต์ล้มเหลว",notFound:"ไม่พบโปรเจกต์นี้!",editSuccess:"แก้ไขโปรเจกต์สำเร็จ",editFailed:"แก้ไขโปรเจกต์ล้มเหลว",addSuccess:"สร้างโปรเจกต์สำเร็จ",addFailed:"สร้างโปรเจกต์ล้มเหลว",deleteHeader:"ลบโปรเจกต์",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบโปรเจกต์นี้?",deleteConfirm:"ลบ",deleteCancel:"ยกเลิก",deleteSuccess:"ลบโปรเจกต์สำเร็จ",deleteFailed:"ลบโปรเจกต์ล้มเหลว",extractSuccess:"สกัดพรอมต์สำเร็จ",extractFailed:"สกัดพรอมต์ล้มเหลว",enterArtStyleName:"โปรดป้อนชื่อคู่มือภาพ",artStyleUpdated:"อัปเดตคู่มือภาพแล้ว",artStyleAdded:"เพิ่มคู่มือภาพแล้ว",operationFailed:"การดำเนินการล้มเหลว",enterVisualManualName:"โปรดป้อนชื่อคู่มือภาพ",enterVisualManualImage:"โปรดอัปโหลดภาพปกคู่มือภาพ",enterVisualManualTabData:"Prompt ไม่สามารถว่างเปล่า",visualManualUpdated:"อัปเดตคู่มือภาพแล้ว",visualManualAdded:"เพิ่มคู่มือภาพแล้ว",deleteVisualManualHeader:"ลบคู่มือภาพ",deleteVisualManualBody:'คุณแน่ใจหรือไม่ว่าต้องการลบคู่มือภาพ "{name}"?',deleteVisualManualConfirm:"ลบ",deleteVisualManualCancel:"ยกเลิก",enterProjectName:"กรุณากรอกชื่อโครงการ",enterProjectIntro:"กรุณากรอกคำนำนวนิยาย",enterProjectType:"กรุณากรอกประเภทโครงการ",enterArtStyle:"โปรดเลือกโบรชัวร์ภาพโครงการ",enterVideoRatio:"โปรดเลือกอัตราส่วนวิดีโอ",enterImageModel:"กรุณาเลือกรุ่นรูปภาพ",enterVideoModel:"โปรดเลือกรุ่นวิดีโอ",visualManualDeleted:"ลบสำเร็จ",selectMode:"กรุณาเลือกโหมด",deleteDirectorManualHeader:"ลบคู่มือผู้อำนวยการ",deleteDirectorManualBody:'คุณแน่ใจหรือไม่ว่าต้องการลบคู่มือผู้อำนวยการ "{name}"?',directorManualUpdated:"ปรับปรุงคู่มือผู้อำนวยการแล้ว",directorManualAdded:"เพิ่มคู่มือผู้อำนวยการ",directorManual:"กรุณาเลือกคู่มือผู้อำนวยการโครงการ"},type:{novel:"อิงจากนวนิยายต้นฉบับ",script:"อิงจากบทนวนิยาย"}},novel:{importText:"นำเข้าต้นฉบับ",batchDelete:"ลบเป็นชุด",eventAnalysis:"วิเคราะห์เหตุการณ์",searchPlaceholder:"ค้นหาชื่อต้นฉบับ...",search:"ค้นหา",generating:"กำลังสร้าง...",genFailed:"สร้างล้มเหลว",none:"ไม่มี",edit:"แก้ไข",delete:"ลบ",col:{id:"ลำดับ",reel:"เล่ม",chapter:"ชื่อบท",chapterData:"เนื้อหาในบท",event:"เหตุการณ์",operation:"การจัดการ"},msg:{batchDeleteHeader:"ลบเป็นชุด",batchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบข้อมูลที่เลือกจำนวน {count} รายการ?",batchDeleteSuccess:"ลบเป็นชุดสำเร็จ",deleteHeader:"ยืนยันการลบ",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบข้อมูลบทที่ชื่อว่า「{name}」?",deleteSuccess:"ลบสำเร็จ",eventAnalysisHeader:"วิเคราะห์เหตุการณ์",eventAnalysisBody:"แน่ใจหรือไม่ว่าต้องการวิเคราะห์เหตุการณ์ข้อมูลที่เลือกจำนวน {count} รายการ?"},import:{title:"อัปโหลดต้นฉบับนิยาย",step1:"ขั้นตอนที่ 1",step2:"ขั้นตอนที่ 2",step3:"ขั้นตอนที่ 3",dragUpload:"ลากไฟล์ต้นฉบับนิยายมาที่นี่ หรือคลิกเพื่ออัปโหลด",uploadHint:"รองรับรูปแบบ .txt, .docx แนะนำให้มีขนาดไฟล์ไม่เกิน 10MB",or:"หรือ",pasteLabel:"วางเนื้อหาต้นฉบับนิยายโดยตรง",pastePlaceholder:"โปรดกรอกเนื้อหาต้นฉบับนิยาย",chars:"ตัวอักษร",tooShort:"เนื้อหาสั้นเกินไป แนะนำให้อย่างน้อย 100 ตัวอักษร",parsedChapters:"แยกวิเคราะห์แล้ว {count} บท",nextStep:"ขั้นตอนถัดไป",prevStep:"ขั้นตอนก่อนหน้า",selectedInfo:"เลือกแล้ว: {count} ตัวอักษร (ต้องน้อยกว่า 200,000 ตัวอักษร)",eventAnalysis:"วิเคราะห์เหตุการณ์",saveAndAnalyze:"บันทึกต้นฉบับและวิเคราะห์เหตุการณ์",col:{chapter:"บท",reel:"เล่ม",chapterName:"ชื่อบท",chapterData:"เนื้อหาในบท"},msg:{parseFailed:"แยกวิเคราะห์ไฟล์ล้มเหลว โปรดอัปโหลดใหม่อีกครั้ง",selectFile:"เลือกไฟล์",docNotSupported:"ไฟล์ .doc ไม่รองรับการแยกวิเคราะห์ โปรดแปลงเป็นไฟล์ .ts",unsupportedType:"ไม่รองรับประเภทไฟล์นี้",fileTooLarge:"ไฟล์มีขนาดเกิน 10MB โปรดอัปโหลดไฟล์ขนาดเล็กกว่านี้",selectChapters:"โปรดทำเครื่องหมายเลือกบทก่อน",saveSuccess:"บันทึกต้นฉบับนิยายสำเร็จ"},importAdd:"ลากและวางไฟล์ที่นี่หรือคลิกเพื่ออัปโหลด",limit:"รองรับรูปแบบ .ts"},editDialog:{title:"แก้ไขต้นฉบับนิยาย",chapterName:"ชื่อบท",chapterNamePh:"โปรดกรอกชื่อบท",eventContent:"เนื้อหาเหตุการณ์",eventContentPh:"กรอกเนื้อหาเหตุการณ์",chapterContent:"เนื้อหาในบท",chapterContentPh:"โปรดกรอกเนื้อหาในบท",cancel:"ยกเลิก",save:"บันทึก",msg:{updateSuccess:"อัปเดตต้นฉบับนิยายสำเร็จ"}},event:{regenerate:"สร้างเหตุการณ์ใหม่",batchDelete:"ลบเป็นชุด",noData:"ยังไม่มีข้อมูลเหตุการณ์ คลิกเพื่อเริ่มสร้าง",generate:"สร้างเหตุการณ์",generatingHint:"กำลังสร้างเหตุการณ์ โปรดรอสักครู่...",loading:"กำลังโหลด...",delete:"ลบ",col:{id:"ID เหตุการณ์",eventName:"ชื่อเหตุการณ์",chapters:"บทที่มา",detail:"ขั้นตอนเหตุการณ์",createTime:"เวลาที่สร้าง",operation:"การจัดการ"},msg:{deleteHeader:"ลบเหตุการณ์",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบเหตุการณ์นี้?",deleteSuccess:"ลบสำเร็จ",generateSuccess:"สร้างเหตุการณ์สำเร็จ",batchDeleteHeader:"ลบเป็นชุด",batchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบข้อมูลที่เลือกจำนวน {count} รายการ?",batchDeleteSuccess:"ลบเป็นชุดสำเร็จ"}},analysis:{analyzeFirst:"โปรดวิเคราะห์เหตุการณ์ก่อน",startAnalysis:"เริ่มวิเคราะห์",chapterHeader:"บทที่ {index} - {name}",analyzing:"กำลังวิเคราะห์เหตุการณ์"}},scriptAgent:{inputPlaceholder:"โปรดกรอกเนื้อหา",chapterEvents:"เหตุการณ์ในบท",clearMessageMemory:"ล้างหน่วยความจำข้อความ",clearSummaryMemory:"ล้างหน่วยความจำสรุป",clearAllMemory:"ล้างหน่วยความจำทั้งหมด",edit:"แก้ไข",storySkeleton:"โครงเรื่อง",adaptationStrategy:"กลยุทธ์การดัดแปลง",script:"บทภาพยนตร์",noContent:"ยังไม่มีเนื้อหา",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",editScript:"แก้ไขบทภาพยนตร์",save:"บันทึก",scriptTitle:"ชื่อเรื่อง",titlePlaceholder:"โปรดกรอกชื่อเรื่อง",content:"เนื้อหา",contentPlaceholder:"โปรดกรอกเนื้อหาบทภาพยนตร์",selectAssets:"เลือกสินทรัพย์",noAssets:"ยังไม่ได้เชื่อมโยงสินทรัพย์",selectAssetsTitle:"เลือกสินทรัพย์ที่เกี่ยวข้อง",welcomeMsg:"สวัสดี! ฉันคือผู้ช่วยอัจฉริยะ Toonflow ต้องการให้ฉันเริ่มสร้างบทภาพยนตร์ให้คุณเลยไหม?",start:"เริ่มต้น",memoryType:{message:"หน่วยความจำข้อความ",summary:"หน่วยความจำสรุป",all:"หน่วยความจำทั้งหมด"},msg:{clearConfirm:"ยืนยันการล้าง",clearBody:"แน่ใจหรือไม่ว่าต้องการล้าง{type}? การดำเนินการนี้ไม่สามารถยกเลิกได้",confirmClear:"ยืนยันการล้าง",cancel:"ยกเลิก",memoryCleared:"ล้าง{type}แล้ว",scriptUpdated:"อัปเดตบทภาพยนตร์สำเร็จ",scriptUpdateFailed:"อัปเดตบทภาพยนตร์ล้มเหลว โปรดลองอีกครั้งในภายหลัง",searchScriptFailed:"ค้นหาบทภาพยนตร์ล้มเหลว",updated:"บันทึกเรียบร้อยแล้ว",error:"บันทึกล้มเหลว",reconnect:"เชื่อมต่อใหม่",notReconnect:"ยืนยันว่าการสนทนาการเชื่อมต่อใหม่จะถูกตัดออกหรือไม่",keepReconnect:"ยืนยัน",deleteConfirm:"ลบการยืนยัน",deleteBody:"ลบข้อความ",confirmDelete:"ยืนยันการลบ",scriptDeleted:"ลบสคริปต์แล้ว"},reconnect:"เชื่อมต่อใหม่"},cornerScape:{batchSettings:"การตั้งค่าการสร้างเป็นชุด",quickActions:"คำสั่งด่วน",selectUngenerated:"เลือกรายการที่ยังไม่สร้างทั้งหมด",selectGenerated:"เลือกรายการที่สร้างแล้วทั้งหมด",selectFailed:"เลือกรายการที่เกิดข้อผิดพลาดทั้งหมด",invertSelection:"สลับการเลือก",clearSelection:"ยกเลิกการเลือก",batchPreview:"ดูตัวอย่างรูปภาพเป็นชุด",assetTypeFilter:"กรองตามประเภทสื่อ",genModel:"โมเดลการสร้าง",resolution:"ความละเอียด",resolutionPh:"โปรดเลือกความละเอียด",concurrency:"จำนวนที่สร้างพร้อมกัน",concurrencyPh:"โปรดกรอกจำนวนที่สร้างพร้อมกัน",startBatch:"เริ่มสร้างภาพเป็นชุด",waitingGen:"รอการสร้าง",generating:"กำลังสร้าง",genFailed:"สร้างล้มเหลว",imageError:"รูปภาพมีข้อผิดพลาด",typeRole:"ตัวละคร",typeScene:"ฉาก",typeTool:"เครื่องมือ",typeUnknown:"ไม่ทราบ",descriptionSuffix:"คำอธิบาย:",operateScriptFirst:"โปรดจัดการบทภาพยนตร์ก่อน",individualConfig:"ตั้งค่าแบบแยกเดี่ยว",noImage:"ยังไม่มีรูปภาพ",promptLabel:"พรอมต์",promptPh:"โปรดกรอกพรอมต์",aiPolish:"ใช้ AI ขัดเกลาข้อความ",regenerate:"สร้างใหม่",filterRole:"ตัวละคร",filterScene:"ฉาก",filterTool:"อุปกรณ์ประกอบฉาก",unnamed:"ไม่ได้ตั้งชื่อ",noDescription:"ไม่มีคำอธิบาย",msg:{selectModel:"โปรดเลือกโมเดลการสร้าง",selectResolution:"โปรดเลือกความละเอียด",enterPrompt:"โปรดกรอกพรอมต์",enterPromptFirst:"โปรดกรอกพรอมต์ก่อน",genSuccess:"สร้าง {name} สำเร็จ",genFailed:"สร้าง {name} ล้มเหลว",promptGenSuccess:"สร้างพรอมต์สำเร็จ",polishFailed:"ขัดเกลาข้อความล้มเหลว โปรดลองอีกครั้ง",selectAtLeastOne:"โปรดเลือกสินทรัพย์อย่างน้อยหนึ่งรายการเพื่อสร้างเป็นชุด",batchStarted:"เริ่มการสร้างเป็นชุดแล้ว จำนวน {count} รายการ ทำพร้อมกัน {concurrent} รายการ",batchItemFailed:"สร้าง {name} ล้มเหลว: {error}",batchComplete:"การสร้างเป็นชุดเสร็จสมบูรณ์",batchFailed:"การสร้างแบทช์ล้มเหลว",replaceFailed:"การเปลี่ยนล้มเหลว",replaceSuccess:"การเปลี่ยนสำเร็จ",promptGenFail:"การสร้างคำพร้อมท์ล้มเหลว",saveSuccess:"การแก้ไขคำพร้อมท์สำเร็จ",saveFailed:"การแก้ไขคำพร้อมท์ล้มเหลว"},history:"ภาพประวัติศาสตร์",confirmReplace:"ยืนยันการเปลี่ยน",batchGenerationPrompt:"สร้างคำพร้อมท์เป็นชุด",generatingPrompt:"กำลังสร้าง",selectPromptEmpty:"เลือกทั้งหมด คำที่แจ้งว่างเปล่า",noEmptyPrompt:"ไม่มีเนื้อหาที่มีคำว่าง",selectedCount:"เลือกเนื้อหาแล้ว {count} รายการ"},script:{searchPlaceholder:"ค้นหาชื่อบทภาพยนตร์...",search:"ค้นหา",addScript:"สร้างบทภาพยนตร์ใหม่",cancelSelectAll:"ยกเลิกการเลือกทั้งหมด",selectAll:"เลือกทั้งหมด",exportScript:"ส่งออกบทภาพยนตร์",msg:{searchFailed:"ค้นหาบทภาพยนตร์ล้มเหลว",selectExport:"โปรดเลือกบทภาพยนตร์ที่จะส่งออกก่อน",exportSuccess:"ส่งออกสำเร็จ",exportFailed:"ส่งออกบทภาพยนตร์ล้มเหลว",deleteHeader:"ยืนยันการลบ",deleteBody:"แน่ใจหรือไม่ว่าต้องการลบบทภาพยนตร์นี้? การดำเนินการนี้ไม่สามารถยกเลิกได้",deleteConfirm:"ลบ",cancel:"ยกเลิก",deleteSuccess:"ลบสำเร็จ",deleteFailed:"ลบล้มเหลว",selectDelScript:"โปรดเลือกที่จะลบสคริปต์",batchDeleteHeader:"ลบเป็นกลุ่ม",batchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบบทภาพยนตร์ที่เลือก {count} รายการ? การดำเนินการนี้ไม่สามารถยกเลิกได้",batchDeleteSuccess:"ลบเป็นกลุ่มสำเร็จ",extractingInProgress:"การสกัด",projectNotFound:"ไม่พบรายการ",selectsExport:"โปรดเลือกส่งออกสคริปต์"},add:{title:"เพิ่มบทภาพยนตร์",scriptName:"ชื่อบทภาพยนตร์",scriptNamePh:"โปรดกรอกชื่อบทภาพยนตร์",uploadFile:"อัปโหลดไฟล์",dragUpload:"ลากไฟล์บทภาพยนตร์มาที่นี่ หรือคลิกเพื่ออัปโหลด",uploadHint:"รองรับรูปแบบ .txt, .docx แนะนำให้มีขนาดไฟล์ไม่เกิน 10MB",scriptContent:"เนื้อหาบทภาพยนตร์",scriptContentPh:"โปรดอัปโหลดหรือกรอกเนื้อหาบทภาพยนตร์...",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",selectAssets:"เลือกสินทรัพย์",noAssets:"ยังไม่ได้เชื่อมโยงสินทรัพย์",cancel:"ยกเลิก",confirm:"ยืนยัน",msg:{fileReadFailed:"อ่านไฟล์ล้มเหลว",docNotSupported:"ไม่รองรับการแยกวิเคราะห์ไฟล์ .doc โปรดแปลงเป็นไฟล์ .txt หรือ .docx",unsupportedType:"ไม่รองรับประเภทไฟล์นี้",fileTooLarge:"ไฟล์มีขนาดเกิน 10MB โปรดอัปโหลดไฟล์ขนาดเล็กกว่านี้",parsing:"กำลังแยกวิเคราะห์ไฟล์...",parseFailed:"แยกวิเคราะห์ไฟล์ล้มเหลว โปรดอัปโหลดใหม่อีกครั้ง",selectAssetsTitle:"เลือกสินทรัพย์ที่เกี่ยวข้อง",enterContent:"โปรดอัปโหลดหรือกรอกเนื้อหาบทภาพยนตร์",enterName:"โปรดกรอกชื่อบทภาพยนตร์",addSuccess:"เพิ่มบทภาพยนตร์สำเร็จ",addFailed:"เพิ่มบทภาพยนตร์ล้มเหลว โปรดลองอีกครั้งในภายหลัง"}},edit:{title:"รายละเอียดบทภาพยนตร์",scriptName:"ชื่อบทภาพยนตร์",scriptNamePh:"โปรดกรอกชื่อบทภาพยนตร์",scriptContent:"เนื้อหาบทภาพยนตร์",scriptContentPh:"โปรดกรอกเนื้อหาบทภาพยนตร์...",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",selectAssets:"เลือกสินทรัพย์",noAssets:"ยังไม่ได้เชื่อมโยงสินทรัพย์",msg:{selectAssetsTitle:"เลือกสินทรัพย์ที่เกี่ยวข้อง",updateSuccess:"อัปเดตบทภาพยนตร์สำเร็จ",updateFailed:"อัปเดตบทภาพยนตร์ล้มเหลว โปรดลองอีกครั้งในภายหลัง"}},deleteScript:"ลบสคริปต์เป็นชุด",extractAssets:""},assets:{addPrefix:"เพิ่ม",batchGenerate:"สร้างเป็นชุด",generatePrompt:"สร้างพรอมต์",generateImage:"สร้างรูปภาพ",batchDelete:"ลบเป็นชุด",searchPlaceholder:"ค้นหาชื่อสินทรัพย์...",search:"ค้นหา",preview:"ดูตัวอย่าง",generate:"สร้าง",edit:"แก้ไข",delete:"ลบ",generating:"กำลังสร้าง",play:"เล่น",mediaPreview:"ดูตัวอย่างสื่อ",confirmBatch:"ยืนยัน{type}หรือไม่!",model:"โมเดล",resolution:"ความละเอียด",resolutionPh:"โปรดเลือกความละเอียด",batchGenPrompt:"สร้างพรอมต์เป็นชุด",batchGenImage:"สร้างรูปภาพเป็นชุด",role:"ตัวละคร",prop:"อุปกรณ์",scene:"ฉาก",clip:"ฟุตเทจ",uploadSuccess:"อัปโหลดสำเร็จ",selectAtLeastOne:"โปรดเลือกสินทรัพย์อย่างน้อย 1 รายการ",noDescription:"ไม่มีคำอธิบาย",promptGenSuccess:"สร้างพรอมต์「{name}」สำเร็จ",promptGenFail:"สร้างพรอมต์「{name}」ล้มเหลว: {error}",selectModel:"โปรดเลือกโมเดล",selectResolution:"โปรดเลือกความละเอียด",noPromptForImage:"「{name}」ไม่มีพรอมต์ ไม่สามารถสร้างรูปภาพได้",imageGenSuccess:"สร้างรูปภาพ「{name}」สำเร็จ",imageGenFail:"สร้างรูปภาพ「{name}」ล้มเหลว: {error}",confirmDeleteHeader:"ยืนยันการลบ",confirmBatchDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบสินทรัพย์เหล่านี้เป็นชุด? การดำเนินการนี้ไม่สามารถยกเลิกได้",confirmDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบสินทรัพย์นี้? การดำเนินการนี้ไม่สามารถยกเลิกได้",deleteBtn:"ลบ",cancelBtn:"ยกเลิก",deleteSuccess:"ลบสินทรัพย์สำเร็จ",deleteFail:"ลบสินทรัพย์ล้มเหลว",colPreview:"ดูตัวอย่าง",colName:"ชื่อ",colPrompt:"พรอมต์",colDescribe:"คำอธิบาย",colRemark:"หมายเหตุ",colCreateTime:"เวลาที่สร้าง",colOperation:"การจัดการ",add:{name:"ชื่อ",namePh:"โปรดกรอกชื่อ",describe:"คำอธิบาย",describePh:"โปรดกรอกคำอธิบาย",remark:"หมายเหตุ",remarkPh:"โปรดกรอกหมายเหตุ",prompt:"พรอมต์",promptPh:"โปรดกรอกพรอมต์",nameRequired:"โปรดกรอกชื่อ",describeRequired:"โปรดกรอกรายละเอียด",remarkRequired:"โปรดกรอกหมายเหตุ",updateSuccess:"อัปเดตสินทรัพย์สำเร็จ",addSuccess:"เพิ่มสินทรัพย์สำเร็จ"},gen:{header:"สร้างรูปภาพ",uploadRef:"อัปโหลดรูปภาพอ้างอิง",optional:"ตัวเลือก",promptLabel:"พรอมต์สร้างรูปภาพ",smartGenerate:"สร้างอัตโนมัติ (Smart Generate)",generatingPrompt:"กำลังสร้างพรอมต์อัจฉริยะ...",promptPlaceholder:"อธิบายเนื้อหารูปภาพที่คุณต้องการสร้าง ตัวอย่างเช่น: เมืองแห่งอนาคตที่เต็มไปด้วยเทคโนโลยี, แสงไฟนีออนกะพริบ, สไตล์ไซเบอร์พังค์...",selectModel:"เลือกโมเดล",selectResolution:"เลือกความละเอียด",generateBtn:"สร้างรูปภาพ",resultTitle:"ผลลัพธ์การสร้าง",generatedCount:"สร้างสำเร็จ {count} รูป โปรดเลือกหนึ่งรูป",generatingLabel:"กำลังสร้าง...",genFailed:"สร้างล้มเหลว",confirmSelect:"ยืนยันการเลือก",promptSuccess:"สร้างพรอมต์สำเร็จ",promptFail:"สร้างพรอมต์ล้มเหลว",fillPrompt:"โปรดกรอกพรอมต์",pickResolution:"โปรดเลือกความละเอียด",pickModel:"โปรดเลือกโมเดล",unnamed:"ไม่ได้ตั้งชื่อ",assetGenSuccess:"สร้างสินทรัพย์สำเร็จ",assetGenFail:"สร้างสินทรัพย์ล้มเหลว",uploadOk:"อัปโหลดสำเร็จ",imageSelected:"เลือกรูปภาพนี้แล้ว",imageDeleted:"ลบรูปภาพนี้แล้ว",imageSaved:"บันทึกรูปภาพแล้ว",completed:"สมบูรณ์"},batch:{header:"สร้างเป็นชุด",selected:"เลือกแล้ว {count} รายการ",selectAll:"เลือกทั้งหมด",clearSelection:"ล้างการเลือก",inputPh:"โปรดกรอกเนื้อหา",saveSelected:"บันทึกที่เลือก ({count})",colPreviewImg:"รูปตัวอย่าง",selectToSave:"โปรดเลือกรายการที่ต้องการบันทึก",saveSuccess:"บันทึกสำเร็จ",saveFail:"บันทึกล้มเหลว โปรดลองอีกครั้ง",promptDone:"สร้างพรอมต์เสร็จสมบูรณ์",promptFail:"สร้างพรอมต์ล้มเหลว",missingPrompts:"มี {count} สินทรัพย์ที่ไม่มีพรอมต์ โปรดสร้างพรอมต์ก่อน",imageDone:"สร้างรูปภาพเสร็จสมบูรณ์",imageGenFail:"สร้างรูปภาพล้มเหลว",unknownError:"ข้อผิดพลาดที่ไม่ทราบสาเหตุ",promptGenCancelled:"รุ่นถูกยกเลิก"}},production:{selectPlaceholder:"โปรดเลือกตอน",edit:"แก้ไข",node:{script:{title:"บทภาพยนตร์",editDialog:"แก้ไขบทภาพยนตร์"},scriptPlan:{title:"แผนการถ่ายทำ",editDialog:"แก้ไขแผนการถ่ายทำ"},storyboard:{title:"แผงสตอรี่บอร์ด",notGenerated:"ยังไม่สร้าง",scaleRatio:"อัตราส่วนการย่อ/ขยาย",gridPreview:"ดูตัวอย่างแบบกริด",noPreviewImages:"ไม่มีรูปภาพให้ดูตัวอย่าง",imageLoadFailed:"โหลดรูปภาพล้มเหลว",promptPlaceholder:"กรุณากรอกคำที่พร้อมท์",prompt:"คำพูดที่รวดเร็ว",editInfo:"การปรับเปลี่ยนคำทันที"},storyboardTable:{title:"ตารางสตอรี่บอร์ด",editDialog:"แก้ไขตารางสตอรี่บอร์ด"},assets:{title:"สินทรัพย์ต่อยอด",generateFailed:"สร้างล้มเหลว",notGenerated:"ยังไม่สร้าง",originalAsset:"สินทรัพย์ต้นฉบับ",derived:"ต่อยอด",noDerivedAssets:"ไม่มีสินทรัพย์ต่อยอด"},poster:{title:"ภาพปกวิดีโอ",coverCount:"{count} รูป"},workbench:{title:"พื้นที่ทำงานวิดีโอ"}},editImage:{upload:"อัปโหลด",generate:"สร้าง",saveFailed:"บันทึกล้มเหลว โปรดลองอีกครั้ง",fetchFailed:"ดึงข้อมูลล้มเหลว",generating:"กำลังสร้าง...",deleteNode:"ลบโหนด (Node)",ratio:"สัดส่วน",quality:"คุณภาพ",generateBtn:"สร้างรูปภาพ",selectImage:"เลือกรูปภาพ",imageGeneration:"สร้างรูปภาพ",promptPlaceholder:"อธิบายรูปภาพที่คุณต้องการสร้าง...",imageRef:"รูปที่ {index}",noReferences:"ไม่มีรูปภาพอ้างอิงให้ใช้งาน",selectModel:"โปรดเลือกโมเดลก่อน",selectQuality:"โปรดเลือกคุณภาพภาพ",selectRatio:"โปรดเลือกสัดส่วน",generateFailed:"สร้างล้มเหลว",generateFirst:"โปรดสร้างรูปภาพก่อน",generatedResult:"ผลลัพธ์การสร้าง",waitingGenerate:"รอการสร้าง",layoutLR:"จัดวางอัตโนมัติ-ซ้ายขวา",layoutTB:"จัดวางอัตโนมัติ-บนล่าง",uploadAssetImage:"อัปโหลดรูปทรัพยากร",uploadStoryboardImage:"อัปโหลดรูปสตอรี่บอร์ด",uploadImage:"การอัพโหลดรูปภาพสินทรัพย์",mode:"แบบอย่าง",closeConfirmTitle:"ปิดแผงแก้ไขใช่ไหม",closeConfirmBody:"ข้อมูลที่ไม่ได้บันทึกจะสูญหายไปหลังจากการปิด"},save:"เลือก",cancel:"ยกเลิก",chatBox:{inputPlaceholder:"พิมพ์ข้อความ...",generateDerivedAssets:"สร้างสินทรัพย์ต่อยอด",welcomeMessage:"สวัสดี! ฉันคือผู้ช่วย AI ของคุณ มีอะไรให้ฉันช่วยไหม?",adjustModel:"ปรับแต่งโมเดล",startMakingVideo:"เริ่มสร้างวิดีโอ",startMakingVideoPrompt:"โปรดช่วยฉันเริ่มสร้างวิดีโอ",clearMessageMemory:"ล้างหน่วยความจำข้อความ",clearSummaryMemory:"ล้างหน่วยความจำสรุป",clearAllMemory:"ล้างหน่วยความจำทั้งหมด",messageMemory:"หน่วยความจำข้อความ",summaryMemory:"หน่วยความจำสรุป",allMemory:"หน่วยความจำทั้งหมด",confirmClear:"ล้างหน่วยความจำ",confirmClearBody:"แน่ใจหรือไม่ว่าต้องการล้าง{type}?",confirmClearBtn:"ยืนยันการล้าง",memoryCleared:"ล้าง{type}แล้ว"},wb:{quickPreview:"ดูตัวอย่างแบบเร็ว",videoGeneration:"สตอรี่บอร์ด",videoEditing:"โต๊ะบรรณาธิการ",hint:"ข้อแนะนำ",extractLines:"ต้องการแยกบทสนทนาจากวิดีโอหรือไม่?",no:"ไม่",confirm:"ตกลง",extractLinesQuestion:"ต้องการแยกบทสนทนาจากวิดีโอมาเป็นซับไตเติลหรือไม่?",importingLoading:"กำลังนำเข้า โปรดรอสักครู่...",mainTrackVideo:"แทร็กหลัก (วิดีโอ)",subtitle1:"ซับไตเติล 1",storyboardVideoName:"วิดีโอสตอรี่บอร์ด-{storyboard}.mp4"},preview:{noImage:"ยังไม่มีรูปภาพ",storyboardDesc:"คำอธิบายสตอรี่บอร์ด",serialNumber:"ลำดับ",noDescription:"ยังไม่มีคำอธิบาย",duration:"ความยาว",seconds:"วินาที",relatedAssets:"สินทรัพย์ที่เกี่ยวข้อง",role:"ตัวละคร",prop:"อุปกรณ์",scene:"ฉาก",noCharacters:"ไม่มีตัวละครปรากฏ",imagePrompt:"พรอมต์รูปภาพ",selectAll:"เลือกทั้งหมด",exportImage:"ส่งออกรูปภาพ",sceneDescription:"คำอธิบายฉาก",promptLabel:"พรอมต์",restoreSort:"คืนค่าการจัดเรียง",restoreSortConfirm:"แน่ใจหรือไม่ว่าต้องการคืนค่าการจัดเรียงกลับเป็นค่าเริ่มต้น?",tip:"เคล็ดลับ",selectAtLeastOne:"โปรดเลือกสตอรี่บอร์ดอย่างน้อยหนึ่งรายการเพื่อส่งออก",exportFilename:"ภาพสตอรี่บอร์ด"},generate:{noVideo:"ยังไม่มีวิดีโอ",videoPrompt:"พรอมต์วิดีโอ",promptPlaceholder:"ป้อนคำพร้อมท์เพื่ออธิบายเนื้อหาวิดีโอที่คุณต้องการสร้าง...",refImage:"รูปภาพอ้างอิง",image:"รูปภาพ",refVideo:"วิดีโออ้างอิง",refImageLabel:"รูปภาพอ้างอิง",refAudio:"เสียงอ้างอิง",muteAudio:"ปิดเสียง",enableAudio:"เปิดเสียง",resolution:"ความละเอียด",duration:"ความยาว",generate:"สร้าง",historyVersions:"ประวัติเวอร์ชัน",confirmSelection:"ยืนยันการเลือก",noHistory:"ยังไม่มีประวัติ",generating:"กำลังสร้าง",generateFailed:"สร้างล้มเหลว",selectAll:"เลือกทั้งหมด",videoTrack:"แทร็กวิดีโอ",batchGenerate:"สร้างเป็นชุด",importToEditor:"นำเข้าสู่หน้าต่างตัดต่อ",modeSingleImage:"รูปภาพเดียว",modeMultiImage:"หลายรูปภาพ",modeGridImage:"รูปภาพกริดหลายรูป",modeStartEnd:"เฟรมแรกและสุดท้าย",modeText:"ข้อความเป็นวิดีโอ",modeVideoRef:"อ้างอิงจากวิดีโอ",modeImageRef:"อ้างอิงจากรูปภาพ",modeAudioRef:"อ้างอิงจากเสียง",modeTextRef:"อ้างอิงจากข้อความ",startFrame:"เฟรมแรก",startFrameOptional:"เฟรมแรก (ตัวเลือก)",endFrame:"เฟรมสุดท้าย",endFrameOptional:"เฟรมสุดท้าย (ตัวเลือก)",selectRefImage:"เลือกรูปภาพอ้างอิง",selectRefImages:"เลือกรูปภาพอ้างอิงหลายรูป",selectEndFrame:"เลือกรูปเฟรมสุดท้าย",selectRefVideoAsset:"เลือกวิดีโออ้างอิง",selectRefAudioAsset:"เลือกเสียงอ้างอิง",selectRefImageAsset:"เลือกรูปภาพอ้างอิง",selectImageSource:"เลือกแหล่งที่มาของภาพ",fromStoryboard:"ภาพสตอรี่บอร์ด",fromStoryboardDesc:"เลือกภาพจากรายการสตอรี่บอร์ด",fromAssets:"ภาพแอสเซท",fromAssetsDesc:"เลือกภาพจากคลังแอสเซท",confirmDelete:"ยืนยันการลบ",confirmDeleteBody:"แน่ใจหรือไม่ว่าต้องการลบวิดีโอนี้? การดำเนินการนี้ไม่สามารถยกเลิกได้",delete:"ลบ",cancel:"ยกเลิก",deleteSuccess:"ลบวิดีโอสำเร็จ",deleteFailed:"ลบล้มเหลว",selectVideoFirst:"โปรดเลือกวิดีโอก่อน",confirmSuccess:"ยืนยันการเลือกสำเร็จ",batchSubmitted:"ส่งคำขอสร้างเป็นชุดแล้ว กำลังดำเนินการ...",configNotFound:"ไม่พบการตั้งค่า",pollingFailed:"การค้นหาสถานะวิดีโอล้มเหลว โปรดรีเฟรชด้วยตนเอง",batchGeneratePrompt:"สร้างคำพร้อมท์เป็นชุด",batchPromptEmpty:"บอร์ดเรื่องราว {name} พร้อมใช้งานสำหรับวิดีโอแจ้ง กรุณาสร้างหรือกรอกข้อความแจ้งก่อน",modelEmpty:"โปรดเลือกรุ่นการสร้างวิดีโอก่อน",generatingPrompt:"การสร้างคำที่รวดเร็วอย่างชาญฉลาด"},editVideo:{reset:"รีเซ็ต",undo:"เลิกทำ",redo:"ทำซ้ำ",split:"แยกคลิป (Split)",delete:"ลบ",rendering:"กำลังเรนเดอร์...",exportVideo:"ส่งออกวิดีโอ",exportSuccess:"ส่งออกวิดีโอสำเร็จแล้ว",exportFailed:"ส่งออกล้มเหลว",sampleSubtitle:"ข้อความซับไตเติลตัวอย่าง",customText:"เนื้อหาข้อความกำหนดเอง",transitionBetweenClips:"จำเป็นต้องเพิ่มทรานซิชันไว้ระหว่าง Clip สองอันที่อยู่ติดกัน",transitionExists:"มีทรานซิชันอยู่ตำแหน่งนี้แล้ว",videoPreviewArea:"พื้นที่ดูตัวอย่างวิดีโอ",clipMaterials:"ฟุตเทจตัดต่อ",propertyPanel:"แผงคุณสมบัติ (Properties)",selectClip:"เลือก Clip เพื่อดูคุณสมบัติ",basicInfo:"ข้อมูลพื้นฐาน",name:"ชื่อ",clipNamePlaceholder:"ชื่อ Clip",startTime:"เริ่มต้น",endTime:"สิ้นสุด",totalDuration:"ความยาวทั้งหมด",videoProperties:"คุณสมบัติวิดีโอ",opacity:"ความทึบแสง",volume:"ระดับเสียง",playbackSpeed:"ความเร็วในการเล่น",audioProperties:"คุณสมบัติเสียง",fadeIn:"เฟดอิน (Fade In)",fadeOut:"เฟดเอาต์ (Fade Out)",transitionProperties:"คุณสมบัติทรานซิชัน",transitionType:"ประเภททรานซิชัน",transFade:"เลือนหาย (Fade)",transSlide:"เลื่อน (Slide)",transWipe:"ปาด (Wipe)",transDissolve:"ละลาย (Dissolve)",transZoom:"ซูม (Zoom)",transRotate:"หมุน (Rotate)",transitionDuration:"ความยาวทรานซิชัน",subtitleProperties:"คุณสมบัติซับไตเติล",textContent:"เนื้อหาข้อความ",fontSize:"ขนาดตัวอักษร",copy:"คัดลอก",deleteConfirm:"ยืนยันการลบ",deleteClipConfirm:"แน่ใจหรือไม่ว่าต้องการลบ Clip นี้?",avCanvasNotInit:"AVCanvas ยังไม่ได้ถูกเตรียมเริ่มต้น",noExportContent:"ไม่มีเนื้อหาให้ส่งออก",exportProject:"ส่งออกโปรเจกต์",transitionAdded:"เพิ่มทรานซิชันแล้ว: {name}",splitClip:"แยกคลิป",deleteClip:"ลบคลิป",addClip:"เพิ่ม {name}",duplicateClip:"ทำซ้ำคลิป (Duplicate)",addTransition:"เพิ่มทรานซิชัน",updateClip:"อัปเดตคลิป {key}",updatePlaybackRate:"อัปเดตความเร็วการเล่นเป็น {rate}x",updateTransitionDuration:"อัปเดตความยาวทรานซิชัน",playbackRateRange:"ความเร็วในการเล่นต้องอยู่ระหว่าง 0.1 ถึง 10",updatePlaybackRateFailed:"อัปเดตความเร็วการเล่นล้มเหลว:",importProject:"นำเข้าโปรเจกต์",import:"นำเข้า"},clipType:{video:"วิดีโอ",audio:"เสียง",subtitle:"ซับไตเติล",transition:"ทรานซิชัน",sticker:"สติกเกอร์",filter:"ฟิลเตอร์",effect:"เอฟเฟกต์"},track:{video:"วิดีโอ",image:"รูปภาพ",audio:"เสียง",subtitle:"ซับไตเติล",text:"ข้อความ",sticker:"สติกเกอร์",filter:"ฟิลเตอร์",effect:"เอฟเฟกต์"},transition:{fade:"เลือนหาย (Fade)",slide:"เลื่อน (Slide)",slideLeft:"เลื่อนไปทางซ้าย",slideRight:"เลื่อนไปทางขวา",slideUp:"เลื่อนขึ้น",slideDown:"เลื่อนลง",wipe:"ปาด (Wipe)",wipeLeft:"ปาดไปทางซ้าย",wipeRight:"ปาดไปทางขวา",wipeUp:"ปาดขึ้น",wipeDown:"ปาดลง",dissolve:"ละลาย (Dissolve)",zoom:"ซูม (Zoom)",zoomIn:"ซูมเข้า",zoomOut:"ซูมออก",rotate:"หมุน",circle:"วงกลม",diamond:"สี่เหลี่ยมข้าวหลามตัด",clock:"นาฬิกา",blur:"เบลอ"},media:{titleText:"ข้อความชื่อเรื่อง",subtitleText:"ข้อความซับไตเติล",customText:"ข้อความกำหนดเอง",media:"สื่อ",image:"รูปภาพ",audio:"เสียง",subtitle:"ซับไตเติล",transition:"ทรานซิชัน",effect:"เอฟเฟกต์",filter:"ฟิลเตอร์",loading:"กำลังโหลด...",subtitlePreview:"ข้อความ",video:"วิดีโอ"},effect:{fadeIn:"เฟดอิน",fadeOut:"เฟดเอาต์",flash:"กะพริบ (Flash)",shake:"สั่น (Shake)",zoomIn:"ซูมเข้ามา",zoomOut:"ซูมออกไป",pulse:"เต้นเป็นจังหวะ (Pulse)",rotateIn:"หมุนเข้ามา",sticker1:"สติกเกอร์ 1",sticker2:"สติกเกอร์ 2"},filter:{grayscale:"ขาวดำ",sepia:"เรโทร (Sepia)",warm:"โทนอุ่น",cool:"โทนเย็น",vivid:"สีสดใส",bright:"สว่าง",highContrast:"คอนทราสต์สูง",blur:"เบลอ",invert:"สลับสี (Invert)",semiTransparent:"กึ่งโปร่งใส"},guideSwitchEpisode:"สลับตอน",guideSwitchEpisodeBody:"ฟีเจอร์การสลับตอนถูกย้ายมาที่นี่แล้วนะ!",autoLayoutLR:"เรียงพิมพ์อัตโนมัติ - เค้าโครงซ้ายและขวา",autoLayoutTB:"เค้าโครงเรียงพิมพ์อัตโนมัติบนและล่าง",getFlowData:"รีเฟรชพื้นที่ทำงาน",confirm:"สลับการยืนยันตอน",confirmEpisodesSwitch:"งานปัจจุบันยังอยู่ในระหว่างดำเนินการ การเปลี่ยนตอนจะเชื่อมต่อเซสชันอีกครั้ง คุณต้องการเปลี่ยนต่อหรือไม่?"},task:{title:"รายการงาน",subtitle:"บันทึกการทำงานล่าสุดของคุณ",refresh:"รีเฟรช",categoryLabel:"หมวดหมู่งานหลัก:",stateLabel:"สถานะ:",noFailReason:"ไม่มีระบุสาเหตุข้อผิดพลาด",stateAll:"ทั้งหมด",stateRunning:"กำลังดำเนินการ",stateCompleted:"เสร็จสมบูรณ์",stateFailed:"สร้างล้มเหลว",fetchFailed:"ดึงรายการงานล้มเหลว",col:{taskClass:"หมวดหมู่งานหลัก",relatedObjects:"ออบเจกต์ที่เกี่ยวข้อง",model:"โมเดล",describe:"คำอธิบาย",state:"สถานะ",startTime:"เวลา",reason:"สาเหตุของความล้มเหลว"},project:"ชื่อโครงการ:"},noVideo:"ยังไม่มีวิดีโอ",prompt:"คำแจ้งวิดีโอ",generateText:"AI สร้างคำที่รวดเร็ว",selectStoryboard:"เลือกกระดานเรื่องราว",generate:{noVideo:"ยังไม่มีวิดีโอ",generateText:"AI สร้างคำที่รวดเร็ว",selectStoryboard:"เลือกกระดานเรื่องราว",generate:"สร้างวิดีโอ",history:"เวอร์ชันประวัติศาสตร์",generating:"กำลังสร้าง",generateFailed:"ล้มเหลว",selectAll:"เลือกทั้งหมด",selected:"เลือกแล้ว",batchGenerateText:"สร้างคำพร้อมท์เป็นชุด",batchGenerateVideo:"สร้างวิดีโอเป็นชุด",importVideo:"นำเข้าไปยังโต๊ะแก้ไข",emptyTrack:"ย่อหน้า {ดัชนี 1}",del:"ลบ",delConfirm:"คุณแน่ใจหรือไม่ว่าต้องการลบย่อหน้านี้",selectSource:"เลือกแหล่งที่มา",confirm:"เลือกจากสินทรัพย์",cancel:"เลือกจากกระดานเรื่องราว",selectVideoFailed:"การเลือกวิดีโอล้มเหลว",selectVideoSuccess:"การเลือกวิดีโอสำเร็จ",selectTrackFirst:"โปรดเลือกกระดานเรื่องราวก่อน",noSelectedVideo:"ไม่ได้เลือกวิดีโอ",generateConfirm:"ยืนยันการสร้าง",generateConfirmBody:"ยืนยันการสร้างวิดีโอ",generateVideosInBatches:"สร้างวิดีโอเป็นชุด",generateStarted:"เริ่มสร้าง",promptEmpty:"ตรวจสอบข้อมูลที่จำเป็นในการสร้างวิดีโอและคำแจ้งว่างเปล่า คุณต้องการสร้างมันต่อไปหรือไม่?",skipDataWithEmptyVideoPromptWords:"มีข้อมูลวิดีโอที่ต้องสร้างและคำแจ้งว่างเปล่า",duration:"ระยะเวลา",resolution:"ปณิธาน",delVideo:"ยืนยันการลบวิดีโอนี้หรือไม่",delSuccess:"ลบสำเร็จ",addReference:"เพิ่มการอ้างอิง",promptPlaceholder:"โปรดป้อนคำแจ้งของวิดีโอ",downloadVideo:"ดาวน์โหลดวิดีโอเป็นชุด",selectVideo:"โปรดตรวจสอบวิดีโอที่คุณต้องการดาวน์โหลด"}},f_i={slogan:"แพลตฟอร์มสร้างละครสั้นอัจฉริยะ",tips:"บัญชีผู้ใช้เริ่มต้น: admin / admin123",settings:"การตั้งค่าเซิร์ฟเวอร์",requestAddress:"ที่อยู่คำขอ (Request Address)",username:"ชื่อผู้ใช้",password:"รหัสผ่าน",login:"เข้าสู่ระบบ",usernameRequired:"โปรดกรอกชื่อผู้ใช้",passwordRequired:"โปรดกรอกรหัสผ่าน",enterUsernameAndPassword:"โปรดกรอกชื่อผู้ใช้หรือรหัสผ่าน",loginSuccess:"เข้าสู่ระบบสำเร็จ",settingsSaved:"บันทึกการตั้งค่าแล้ว"},g_i={prompt:"คำพูดที่รวดเร็ว"},m_i={welcomeTitle:"ยินดีต้อนรับสู่ ToonFlow",welcomeDesc:"แพลตฟอร์มเวิร์กโฟลว์การสร้างการ์ตูนที่ขับเคลื่อนด้วย AI ให้เราใช้เวลาสักครู่เพื่อกำหนดค่าเริ่มต้นให้เสร็จสิ้น",startConfig:"เริ่มการกำหนดค่า",skip:"ข้ามการบูต",configModel:"เพิ่มบริการโมเดล",configData:"กำหนดค่าตัวแทน",startUse:"เริ่มต้นเลย",configModelTitle:"เพิ่มผู้ให้บริการโมเดล",configModelDesc:"ขั้นแรก คุณต้องเพิ่มผู้ให้บริการโมเดล AI อย่างน้อยหนึ่งราย (เช่น OpenAI, Claude ฯลฯ) ในการตั้งค่าและกรอกคีย์ API ที่เกี่ยวข้อง",configModelTip:'การคลิกปุ่มด้านล่างจะเป็นการเปิดแท็บ "บริการโมเดล" ของหน้าการตั้งค่า หลังจากเพิ่มซัพพลายเออร์แล้ว ให้กลับมาที่นี่เพื่อดำเนินการต่อ',configModelBtn:"ไปที่กำหนดค่าบริการโมเดล",configAgentTitle:"กำหนดโมเดลตัวแทน",configAgentDesc:"จากนั้น กำหนดโมเดลให้กับโมดูลการทำงานแต่ละโมดูลในการกำหนดค่าตัวแทน เพื่อให้ระบบทราบว่าควรเรียกโมเดลใดเพื่อให้งานเสร็จสมบูรณ์",configAgentTip:'การคลิกปุ่มด้านล่างจะเป็นการเปิดแท็บ "การกำหนดค่าตัวแทน" ของหน้าการตั้งค่า กลับมาที่นี่หลังจากกำหนดโมเดลให้กับแต่ละฟังก์ชันแล้ว',configAgentBtn:"ไปที่กำหนดค่าตัวแทน",finishTitle:"🎉 ทุกอย่างพร้อมแล้ว!",finishDesc:"การกำหนดค่าเสร็จสมบูรณ์ และตอนนี้คุณสามารถเริ่มใช้คุณสมบัติทั้งหมดได้แล้ว หากคุณต้องการปรับเปลี่ยน คุณสามารถแก้ไขได้ในการตั้งค่าได้ตลอดเวลา",qrcodeLabel:"เข้าร่วมกลุ่มการสื่อสาร WeChat เพื่อรับความช่วยเหลือเพิ่มเติม:",githubLabel:"หากคุณพบว่ามีประโยชน์ โปรดให้ ⭐ ดาวแก่เรา!",prevStep:"ขั้นตอนก่อนหน้า",nextStep:"ขั้นตอนต่อไป",finish:"เริ่มต้นเลย"},k_i={skillManagement:{search:"ค้นหาชื่อไฟล์",empty:"ไม่มีไฟล์ที่ตรงกัน",edit:"แก้ไข",selectOnTheLeft:"โปรดเลือกไฟล์จากด้านซ้าย"}},v_i={assets:{notExist:"ไม่มีเนื้อหาอยู่",notDerivativeExist:"ไม่มีสินทรัพย์อนุพันธ์",derivativeUpdateSuccess:"อัปเดตสำเร็จ",derivativeState:"ไม่ได้สร้างขึ้น",derivativeAddSuccess:"เพิ่มเรียบร้อยแล้ว",derivativeDelSuccess:"ลบสำเร็จ",notGenerated:"ไม่ได้สร้างขึ้น"},addSuccess:"อัปเดตสำเร็จ",state:{unused:"ไม่ได้สร้างขึ้น"},saveSuccess:"เพิ่มเรียบร้อยแล้ว"},A_i={generating:"กำลังสร้าง"},p_i={scanning:"🔍 การแยกวิเคราะห์และการโหลดทักษะ",scanComplete:"✨ สแกน Skill เสร็จสมบูรณ์",inserted:"✅ เพิ่มทักษะ {count}",updated:"🔄 อัปเดตทักษะ {count}",removed:"🗑️ ลบ {count} Skill",scannedFiles:"📁 สแกน {count} ไฟล์",noDescription:"📝 {count} Skill ไม่มีคำอธิบาย",noAttribution:"👤 {count} Skill ไม่มีการระบุแหล่งที่มา",configWarning:"⚠️ คำเตือนการตั้งค่า Skill",openSettings:"เปิดการตั้งค่า",scanFailed:"❌ สแกนล้มเหลว",checkNetwork:"🔌 กรุณาตรวจสอบการเชื่อมต่อเครือข่ายหรือลองใหม่ภายหลัง",retryLater:"🔁 กรุณาลองใหม่ภายหลัง"},b_i="สร้างวิดีโอ",w_i="เวอร์ชันประวัติศาสตร์",O_i="กำลังสร้าง",y_i="ล้มเหลว",C_i="เลือกทั้งหมด",__i="เลือกแล้ว",S_i="นำเข้าวิดีโอ",L_i="ย่อหน้า {ดัชนี 1}",x_i="ยืนยันการลบ",E_i="คุณแน่ใจหรือไม่ว่าต้องการลบย่อหน้านี้",T_i="เลือกแหล่งที่มา",Q_i="เลือกจากสินทรัพย์",D_i="เลือกจากกระดานเรื่องราว",B_i={newVersion:"มีเวอร์ชั่นใหม่แล้ว คุณต้องการอัปเดตหรือไม่?"},R_i={components:d_i,settings:u_i,workbench:h_i,login:f_i,"components.storyboardImageCheck.camera":"กล้อง","components.storyboardImageCheck.dialogTitle":"เลือกรูปสตอรี่บอร์ด","components.storyboardImageCheck.preview":"ดูตัวอย่าง","components.storyboardImageCheck.src":"รูปตัวอย่าง","components.storyboardImageCheck.title":"หัวข้อ","components.storyboardImageCheck.duration":"ระยะเวลา","components.storyboardImageCheck.lines":"บทพูด","components.storyboardImageCheck.createTime":"เวลาสร้าง","workbench.script.extractAssets":"ดึงทรัพยากร",promptManage:g_i,hello:m_i,setting:k_i,storyboard:v_i,productionAgent:A_i,skillScan:p_i,generate:b_i,history:w_i,generating:O_i,generateFailed:y_i,selectAll:C_i,selected:__i,importVideo:S_i,emptyTrack:L_i,del:x_i,delConfirm:E_i,selectSource:T_i,confirm:Q_i,cancel:D_i,"workbench.script.msg.exportFailed":"การส่งออกล้มเหลว","workbench.production.node.assets.confirmDeleteBody":"ยืนยันว่าจะลบเนื้อหาหรือไม่","workbench.production.node.assets.removeFailed":"ลบเนื้อหาไม่สำเร็จ",version:B_i,"workbench.production.generatedNode.localUpload":"การอัปโหลดในเครื่อง","workbench.production.editImage.uploadFailed":"การอัปโหลดรูปภาพล้มเหลว","workbench.production.editImage.noImage":"กรุณาเพิ่มรูปภาพก่อน"},I_i={editMdPreivew:{title:"Chỉnh sửa",confirm:"Lưu",cancel:"Hủy"},imageTools:{copy:"Sao chép hình ảnh",preview:"Xem trước",download:"Tải xuống",msg:{imageLoadFailed:"Tải hình ảnh thất bại",convertFailed:"Chuyển đổi thất bại",copied:"Đã sao chép vào clipboard",copyFailed:"Sao chép thất bại",downloadFailed:"Tải xuống thất bại",downloadStarted:"Bắt đầu tải xuống",downloadBlockedOpenNewWindow:"Nguồn hình ảnh hiện tại có thể hạn chế tải xuống, đã thử mở trong cửa sổ mới"}},migrateShow:{title:"Di chuyển dữ liệu",desc:"Phát hiện bạn có dữ liệu từ phiên bản cũ, bạn có muốn di chuyển không?",hide:"Không hiển thị lại",confirm:"Xác nhận",msg:{migrateSuccess:"Di chuyển dữ liệu thành công",migrateFailed:"Di chuyển dữ liệu thất bại"}},modelSelect:{placeholder:"Vui lòng chọn mô hình",type:{image:"Hình ảnh",text:"Văn bản",video:"Video"},msg:{fetchModelFailed:"Lấy dữ liệu mô hình thất bại:"}}},M_i={title:"Cài đặt ToonFlow",menu:{language:"Cài đặt ngôn ngữ",vendorConfig:"Dịch vụ mô hình",agentConfig:"Cấu hình Agent",promptManage:"Quản lý Prompt",skillManagement:"Quản lý kĩ năng",memoryConfig:"Cấu hình bộ nhớ Agent",loginConfig:"Cấu hình đăng nhập",dbConfig:"Thao tác cơ sở dữ liệu",fileManagement:"Quản lý tệp",otherConfig:"Cấu hình khác",requestConfig:"Địa chỉ yêu cầu (API)",about:"Kiểm tra cập nhật",logoutConfig:"Đăng xuất",skillsSkillsManagement:"Kỹ năngQuản lý kỹ năng"},language:{desc:"Chọn ngôn ngữ hiển thị giao diện",msg:{saved:"Cài đặt ngôn ngữ đã được lưu"}},vendor:{addVendor:"Thêm nhà cung cấp",noVendor:"Chưa có nhà cung cấp, vui lòng thêm trước",required:"Bắt buộc",optionalSection:"Tùy chọn",modelSettings:"Cài đặt mô hình",addManually:"Thêm thủ công",test:"Kiểm tra",edit:"Chỉnh sửa",delete:"Xóa",deleteVendor:"Xóa nhà cung cấp",editCode:"Chỉnh sửa mã",updateConfig:"Cập nhật cấu hình",addModel:"Thêm mô hình",editModel:"Chỉnh sửa mô hình",displayName:"Tên hiển thị",displayNamePlaceholder:"Ví dụ: GPT-4o",modelId:"Mã mô hình (Model ID)",modelIdPlaceholder:"Ví dụ: gpt-4o",modelType:"Loại mô hình",multimodal:"Đa phương thức (Multimodal)",supported:"Hỗ trợ",notSupported:"Không hỗ trợ",toolCall:"Gọi công cụ (Tool Call)",imageMode:"Chế độ hình ảnh",videoMode:"Chế độ video",audioOutput:"Đầu ra âm thanh",durationResolution:"Ánh xạ Thời lượng / Độ phân giải",durationSec:"Thời lượng (giây)",resolution:"Độ phân giải",enterAndPress:"Nhập và nhấn Enter",addDurationResolution:"Thêm một bộ Thời lượng / Độ phân giải",testResult:"Kết quả kiểm tra",generating:"Đang tạo...",addVendorDialog:"Thêm nhà cung cấp",codeEditorInfo:"Vui lòng viết mã TypeScript để cấu hình thông tin nhà cung cấp",reset:"Đặt lại",importFile:"Nhập tệp",textModel:"Mô hình văn bản",imageModel:"Mô hình hình ảnh",videoModel:"Mô hình video",textToImage:"Văn bản -> Hình ảnh",textToVideo:"Văn bản -> Video",singleImage:"Ảnh đơn",multiImage:"Chế độ nhiều ảnh",multiReference:"Tham chiếu nhiều ảnh",gridImage:"Lưới ảnh đơn",startEndRequired:"Khung hình đầu và cuối (Bắt buộc cả hai)",endFrameOptional:"Khung hình đầu và cuối (Khung hình cuối tùy chọn)",startFrameOptional:"Khung hình đầu và cuối (Khung hình đầu tùy chọn)",textRef:"Văn bản",imageRef:"Hình ảnh",videoRef:"Video",audioRef:"Âm thanh",audioOptional:"Tùy chọn",audioOnly:"Chỉ xuất video có âm thanh",noAudio:"Chỉ xuất video không âm thanh",msg:{getVendorListFailed:"Lấy danh sách nhà cung cấp thất bại",vendorConfigUpdated:"Cấu hình nhà cung cấp đã được cập nhật",updateFailed:"Cập nhật thất bại",highRiskConfirm:"⚠️ Xác nhận thao tác rủi ro cao",addVendorRiskBody:"Việc thêm nhà cung cấp AI mới sẽ cấp cho họ quyền truy cập vào API hệ thống, vui lòng đảm bảo bạn tin tưởng nguồn mã của nhà cung cấp này!",iKnowRisk:"Tôi hiểu rủi ro",cancel:"Hủy",confirmAgain:"⚠️ Xác nhận lại",addVendorConfirmBody:"Bạn có chắc chắn muốn thêm nhà cung cấp này không? Sau khi thêm, nó sẽ tham gia vào việc điều phối mô hình của hệ thống.",confirmAndAdd:"Xác nhận và thêm",goBackCheck:"Quay lại kiểm tra",vendorAdded:"Đã thêm nhà cung cấp thành công",addFailed:"Thêm thất bại",updateVendorRiskBody:"Cập nhật cấu hình nhà cung cấp AI sẽ thay đổi quyền truy cập API hệ thống và hành vi của họ, vui lòng đảm bảo bạn tin tưởng nguồn mã sau khi sửa đổi!",updateVendorConfirmBody:"Bạn có chắc chắn muốn cập nhật cấu hình nhà cung cấp này không? Việc cập nhật sẽ ảnh hưởng đến việc điều phối mô hình của hệ thống.",confirmAndUpdate:"Xác nhận và cập nhật",updateSuccess:"Cập nhật cấu hình nhà cung cấp thành công",fillDisplayName:"Vui lòng điền tên hiển thị",fillModelId:"Vui lòng điền mã mô hình",selectImageMode:"Vui lòng chọn chế độ hình ảnh",selectVideoMode:"Vui lòng chọn chế độ video",groupPrefix:"Nhóm thứ {n}:",addDuration:"Vui lòng thêm thời lượng",addResolution:"Vui lòng thêm độ phân giải",selectVendorFirst:"Vui lòng chọn nhà cung cấp trước",modelIdExists:"Mã mô hình đã tồn tại",modelAdded:"Đã thêm mô hình thành công",modelUpdated:"Đã cập nhật mô hình thành công",enterApiKey:"Vui lòng điền API KEY",enterApiUrl:"Vui lòng điền API URL",testSuccess:"Kiểm tra thành công",imageGenSuccess:"Tạo hình ảnh thành công",videoGenSuccess:"Tạo video thành công",requestFailed:"Yêu cầu thất bại",deleteModelConfirm:"Xác nhận xóa mô hình",deleteModelBody:"Không thể khôi phục sau khi xóa, bạn có muốn tiếp tục?",confirmDelete:"Xác nhận xóa",modelDeleted:"Mô hình đã bị xóa",deleteVendorConfirm:"Xác nhận xóa nhà cung cấp",deleteVendorBody:"Sau khi xóa, tất cả các mô hình thuộc nhà cung cấp này cũng sẽ bị xóa, bạn có muốn tiếp tục?",vendorDeleted:"Nhà cung cấp đã bị xóa",deleteFailed:"Xóa thất bại",enabled:"Đã bật",disabled:"Tàn tật",linkAddVendorRiskBody:"Việc thêm nhà cung cấp AI mới sẽ cấp cho nhà cung cấp đó quyền truy cập vào API hệ thống, vui lòng đảm bảo rằng bạn tin cậy nguồn liên kết của nhà cung cấp đó!",importAdd:"Việc thêm nhà cung cấp AI mới sẽ cấp cho nhà cung cấp đó quyền truy cập vào API hệ thống, vui lòng đảm bảo rằng bạn tin cậy vào nguồn tài liệu của nhà cung cấp đó!",linkAddFailed:"Không thể thêm liên kết"},associationSkills:"Kỹ năng liên quan",think:"suy nghĩ sâu sắc",code:"mã số",linkAddPlaceholder:"Nhập liên kết để thêm",noFileSelected:"Đã nhập tệp thành công",linkAdd:"xác nhận"},agent:{bannerDesc:"Sử dụng máy chủ trung gian chính thức của Toonflow, hỗ trợ điền cấu hình bằng 1 cú nhấp chuột, sẵn sàng sử dụng ngay mà không cần thiết lập thủ công.",visitWebsite:"Truy cập trang web",fillKey:"Điền KEY",oneClickFill:"Điền bằng 1 cú nhấp chuột",notOpen:"Chưa mở",notConfigured:"Chưa cấu hình",modelConfig:"Cấu hình mô hình",confirm:"Xác nhận",cancel:"Hủy",selectModel:"Chọn mô hình",fillKeyHeader:"Điền KEY chính thức của nền tảng Toonflow",keyPlaceholder:"Vui lòng nhập KEY",save:"Lưu",msg:{notAvailable:"Tính năng này hiện chưa khả dụng, vui lòng chờ",configSuccess:"Cấu hình thành công",updateConfigFailed:"Cập nhật cấu hình thất bại:",keyValid:"KEY hợp lệ, kết nối với nền tảng Toonflow thành công",keyInvalid:"KEY không hợp lệ, vui lòng kiểm tra và nhập lại:",enterKey:"Vui lòng nhập KEY",saveFailed:"Lưu thất bại:",getAgentListFailed:"Lấy danh sách cấu hình Agent thất bại:",toonflowNotFound:"Trạm trung chuyển chính thức của Toonflow không tồn tại"}},memory:{warning:"Các mục cấu hình dưới đây đã được đặt sẵn ở mức khuyến nghị. Trừ khi bạn hiểu rõ ý nghĩa và tác động của từng cấu hình, nếu không khuyên bạn nên giữ nguyên thiết lập hiện tại",vectorModelConfig:"Cấu hình mô hình vector",modelFilePath:"Đường dẫn tệp mô hình",quantizationType:"Loại lượng tử hóa",quantizationPlaceholder:"Vui lòng nhập loại lượng tử hóa",memoryParams:"Thông số bộ nhớ",messagesPerSummary:"Số tin nhắn kích hoạt nén",messagesPerSummaryHelp:"Giữ lại ngữ cảnh của N cuộc hội thoại gần nhất.",shortTermLimit:"Số tin nhắn chưa nén lấy trong 1 lần",shortTermLimitHelp:"Số lượng bộ nhớ đề xuất được trả về khi truy xuất.",summaryMaxLength:"Ký tự nén tối đa",summaryMaxLengthHelp:"Ký tự tối đa cho phép khi nén tin nhắn",summaryLimit:"Số tin nhắn đã nén cho phép truy vấn",summaryLimitHelp:"Số tin nhắn đã nén cho phép truy vấn",ragLimit:"Số lượng bộ nhớ tìm kiếm",ragLimitHelp:"Số lượng tin nhắn lấy được khi truy xuất.",deepRetrieveSummaryLimit:"Số tin nhắn nén thu hồi bằng vector",deepRetrieveSummaryLimitHelp:"Số lượng tin nhắn lấy được khi truy xuất nội dung tin nhắn đã nén.",saveConfig:"Lưu cấu hình",clearMemory:"Xóa bộ nhớ",restoreDefault:"Khôi phục cấu hình mặc định",msg:{saved:"Cấu hình bộ nhớ đã được lưu",clearConfirmTitle:"Xác nhận xóa bộ nhớ",clearConfirmBody:"Thao tác này sẽ xóa toàn bộ dữ liệu bộ nhớ toàn cục của AI và không thể khôi phục, bạn có muốn tiếp tục?",confirmClear:"Xác nhận xóa",cancel:"Hủy",cleared:"Bộ nhớ đã được xóa",clearFailed:"Xóa bộ nhớ thất bại"}},login:{username:"Tên người dùng",usernamePlaceholder:"Vui lòng nhập tên người dùng",password:"Mật khẩu",passwordPlaceholder:"Vui lòng nhập mật khẩu",modify:"Sửa đổi",msg:{enterUsername:"Vui lòng nhập tên người dùng",usernameLength:"Độ dài tên người dùng từ 2-20 ký tự",enterPassword:"Vui lòng nhập mật khẩu",passwordLength:"Độ dài mật khẩu từ 6-20 ký tự",fetchFailed:"Lấy thông tin người dùng thất bại",saveSuccess:"Lưu thành công",saveFailed:"Lưu thất bại"}},db:{clearDb:"Xóa sạch cơ sở dữ liệu",clearDbDesc:"Xóa toàn bộ dữ liệu trong tất cả các bảng, giữ lại cấu trúc bảng",clearData:"Xóa dữ liệu",confirmAction:"Xác nhận thao tác",msg:{clearDbTitle:"Xóa sạch cơ sở dữ liệu",firstConfirm:"Bạn có chắc chắn muốn xóa toàn bộ bảng dữ liệu không? Dữ liệu sau khi xóa sẽ không thể khôi phục!",secondConfirm:"Đây là lần xác nhận cuối cùng, sau khi xóa toàn bộ dữ liệu sẽ bị mất vĩnh viễn!",keyword:"Xóa sạch",confirm:"Xác nhận",pleaseInput:"Vui lòng nhập",cleared:"Toàn bộ bảng dữ liệu đã được xóa",operationFailed:"Thao tác thất bại, vui lòng thử lại",cancelled:"Thao tác đã bị hủy"}},other:{requestTimeout:"Thời gian chờ yêu cầu (Timeout)",seconds:"giây",inputSeconds:"Vui lòng nhập số giây",assetConcurrency:"Số luồng tạo tài nguyên đồng thời",count:"cái",inputCount:"Vui lòng nhập số lượng",chapterRegex:"Regex tách chương",restoreDefault:"Khôi phục mặc định",regexPlaceholder:"Vui lòng nhập biểu thức chính quy (Regex)",canvasScroll:"Cuộn vải",canvasIsDisabled:"Thu phóng canvas",agentCanvasScalingMethod:"Hoạt động bánh xe vải không giới hạn trên trang sản xuất",zoom:"Phóng",scroll:"cuộn",isInteracting:"Tối ưu hóa hiệu suất kéo canvas không giới hạn trên trang sản xuất",closeIsInteracting:"đóng cửa"},request:{warning:"Nếu không có trường hợp đặc biệt, không cần sửa đổi hoặc cấu hình",apiAddress:"Địa chỉ API",apiPlaceholder:"Vui lòng nhập địa chỉ yêu cầu API",save:"Lưu",reset:"Đặt lại",msg:{enterApi:"Vui lòng nhập địa chỉ API",validUrl:"Vui lòng nhập địa chỉ HTTP/HTTPS hợp lệ",saved:"Địa chỉ yêu cầu đã lưu thành công",reset:"Đã đặt lại về địa chỉ mặc định"}},about:{slogan:"Công cụ sáng tạo truyện tranh / phân cảnh mã nguồn mở do AI điều khiển",latestVersion:"Đây là phiên bản mới nhất",checkUpdate:"Kiểm tra cập nhật",codeRepository:"Kho lưu trữ mã nguồn",githubRepo:"Kho GitHub",giteeRepo:"Kho Gitee",versionUpdate:"Cập nhật phiên bản",checkUpdateGithub:"Kiểm tra cập nhật (GitHub)",getFromGithub:"Lấy phiên bản mới nhất từ GitHub Release",checkUpdateGitee:"Kiểm tra cập nhật (Gitee)",getFromGitee:"Lấy phiên bản mới nhất từ Gitee Release",license:"Giấy phép",licenseDesc:"Thỏa thuận giấy phép mã nguồn mở · Nhấn để xem chi tiết",updateAvailable:"phiên bản mới được tìm thấy",upToDate:"Đã phát hiện phiên bản mới",confirmReinstall:"Sao chép liên kết",reinstallRequired:"Trình duyệt sẽ tự động mở và tải xuống. Nếu nó không mở, hãy mở nó bằng tay."},logout:{warning:"Sau khi đăng xuất, bạn cần đăng nhập lại để tiếp tục sử dụng hệ thống.",confirmLogout:"Bạn có chắc chắn muốn đăng xuất không?",logout:"Đăng xuất",msg:{logoutSuccess:"Đăng xuất thành công",logoutFailed:"Đăng xuất thất bại, vui lòng thử lại"}},file:{quickOpen:"Mở thư mục nhanh",open:"Mở",dockerDesc:'Đối với Docker/Triển khai tách biệt Frontend-Backend, vui lòng đi tới thư mục "/data/*" để quản lý tệp thủ công.',desktopOnly:"Tính năng này chỉ hỗ trợ trên ứng dụng Desktop",folders:{data:"data",dataDesc:"Thư mục dữ liệu.",logs:"data/logs",logsDesc:"Nhật ký hệ thống và nhật ký lỗi.",oss:"data/oss",ossDesc:"Tài nguyên liên quan đến lưu trữ tệp.",skills:"data/skills",skillsDesc:"Tệp cấu hình kỹ năng và lời nhắc (Prompt).",models:"data/models",modelsDesc:"Tệp mô hình và cấu hình.",web:"data/web",webDesc:"Tài nguyên liên quan đến Web, như các sản phẩm build Frontend.",serve:"data/serve",serveDesc:"Tệp liên quan đến dịch vụ Backend."},openFailed:"Mở thư mục thất bại"},dev:{warning:"Sau đây là các công cụ dành cho nhà phát triển, vui lòng sử dụng thận trọng!",openDevtool:"Mở",devtoolsDoc:"Địa chỉ tài liệu",devtoolsDesc:"Sau khi bật lên sẽ tạo một thư mục .devtools trong thư mục cài đặt Toonflow. Hãy đảm bảo rằng Toonflow có quyền ghi (chạy với tư cách quản trị viên).",devtoolsDesc2:"Chạy npx {'@'}ai-sdk/devtools trong thư mục này để bật gỡ lỗi đo từ xa",openDevtoolFailed:"Không mở được công cụ dành cho nhà phát triển, vui lòng đảm bảo đã cài đặt Toonflow desktop",notInElectron:"Đối với môi trường WEB, vui lòng mở bảng điều khiển trình duyệt theo cách thủ công"}},P_i={selectProject:"Vui lòng chọn dự án",menu:{myProject:"Dự án của tôi",taskCenter:"Trung tâm tác vụ",novel:"Bản gốc tiểu thuyết",scriptAgent:"Agent Kịch bản",scriptManage:"Quản lý kịch bản",cornerScape:"Nhân vật & Bối cảnh",production:"Sản xuất video",assetCenter:"Trung tâm tài nguyên",settings:"Cài đặt",jumpGithub:"Chuyển tới Github",feedbackQuestions:"Câu hỏi phản hồi"},project:{title:"Dự án của tôi",subtitle:"Quản lý tất cả các dự án phim ngắn của bạn",newProject:"Dự án mới",dialog:{editTitle:"Chỉnh sửa dự án",addTitle:"Dự án mới",save:"Lưu",ok:"Xác nhận",cancel:"Hủy",projectType:"Loại dự án",selectType:"Chọn loại dự án",basedOnNovel:"Dựa trên bản gốc tiểu thuyết",projectName:"Tên dự án",projectNamePh:"Vui lòng nhập tên dự án",novelType:"Thể loại tiểu thuyết",novelTypePh:"Ví dụ: Huyền huyễn, Khoa học viễn tưởng, Ngôn tình",artStyle:"Hướng dẫn trực quan",selected:"Đã chọn:",selectArtStyle:"Vui lòng chọn hướng dẫn trực quan",newArtStyle:"Hướng dẫn trực quan mới",loading:"Đang tải...",videoRatio:"Tỷ lệ video",novelIntro:"Tóm tắt tiểu thuyết",novelIntroPh:"Vui lòng nhập tóm tắt tiểu thuyết",editArtStyleTitle:"Chỉnh sửa hướng dẫn trực quan",newArtStyleTitle:"Hướng dẫn trực quan mới",artStyleName:"Tên hướng dẫn trực quan",artStyleNamePh:"Vui lòng nhập tên hướng dẫn trực quan",artStyleImage:"Ảnh bìa hướng dẫn trực quan",remove:"Xóa bỏ",uploadCover:"Tải lên ảnh bìa",artStylePrompt:"Lời nhắc hướng dẫn sử dụng trực quan",aiExtract:"AI trích xuất Prompt",promptPlaceholder:"Mô tả từ nhắc hướng dẫn sử dụng trực quan, được sử dụng để chỉ định hướng dẫn trực quan khi tạo hình ảnh.",visualManual:"Hướng dẫn trực quan",newVisualManual:"Hướng dẫn trực quan mới",editVisualManualTitle:"Chỉnh sỮa hướng dẫn trực quan",newVisualManualTitle:"Hướng dẫn trực quan mới",visualManualName:"Tên hướng dẫn trực quan",visualManualNamePh:"Vui lòng nhập tên hướng dẫn trực quan",visualManualCover:"Ảnh bìa hướng dẫn trực quan",visualManualPrompt:"Prompt hướng dẫn trực quan",modelData:"Chọn mô hình hình ảnh",videoModelData:"Chọn mô hình video",prompt:{placeholder:"Nhập từ gợi ý",saveSuccess:"Cập nhật thành công",title:"lời nhắc"},basedOnScript:"dựa trên kịch bản",mdFile:"tập tin hướng dẫn trực quan",directorManual:"Sổ tay Giám đốc",addDirectorManual:"Hướng dẫn đạo diễn mới",editingDirectorManual:"Chỉnh sửa Sổ tay Giám đốc",newDirecorManualTitle:"Hướng dẫn đạo diễn mới",directorManualPrompt:"Hướng dẫn sử dụng lời nhắc của đạo diễn",directorManualName:"Tên sổ tay giám đốc",directorManualNamePh:"Nhập tên Sổ tay Giám đốc",directorFile:"Tài liệu hướng dẫn của Giám đốc",directorManualCover:"Bìa sách hướng dẫn của giám đốc"},msg:{fetchFailed:"Lấy danh sách dự án thất bại",notFound:"Không tìm thấy dự án này!",editSuccess:"Chỉnh sửa dự án thành công",editFailed:"Chỉnh sửa dự án thất bại",addSuccess:"Thêm dự án thành công",addFailed:"Thêm dự án thất bại",deleteHeader:"Xóa dự án",deleteBody:"Bạn có chắc chắn muốn xóa dự án này không?",deleteConfirm:"Xóa",deleteCancel:"Hủy",deleteSuccess:"Xóa dự án thành công",deleteFailed:"Xóa dự án thất bại",extractSuccess:"Trích xuất lời nhắc thành công",extractFailed:"Trích xuất thất bại",enterArtStyleName:"Vui lòng nhập tên hướng dẫn trực quan",artStyleUpdated:"Hướng dẫn trực quan được cập nhật",artStyleAdded:"Đã thêm hướng dẫn trực quan",operationFailed:"Thao tác thất bại",enterVisualManualName:"Vui lòng nhập tên hướng dẫn trực quan",enterVisualManualImage:"Vui lòng tải lên ảnh bìa hướng dẫn trực quan",enterVisualManualTabData:"Prompt không được để trống",visualManualUpdated:"Hướng dẫn trực quan được cập nhật",visualManualAdded:"Đã thêm hướng dẫn trực quan",deleteVisualManualHeader:"Xóa hướng dẫn trực quan",deleteVisualManualBody:'Bạn có chắc chắn muốn xóa hướng dẫn trực quan "{name}" không?',deleteVisualManualConfirm:"Xóa",deleteVisualManualCancel:"Hủy",enterProjectName:"Vui lòng nhập tên dự án",enterProjectIntro:"Vui lòng nhập phần giới thiệu tiểu thuyết",enterProjectType:"Vui lòng nhập loại dự án",enterArtStyle:"Vui lòng chọn một tài liệu trực quan của dự án",enterVideoRatio:"Vui lòng chọn tỷ lệ video",enterImageModel:"Vui lòng chọn mẫu hình ảnh",enterVideoModel:"Vui lòng chọn một mẫu video",visualManualDeleted:"Xóa thành công",selectMode:"Vui lòng chọn chế độ",deleteDirectorManualHeader:"Xóa sổ tay giám đốc",deleteDirectorManualBody:'Bạn có chắc chắn muốn xóa Sổ tay Giám đốc "{name}" không?',directorManualUpdated:"Sổ tay Giám đốc được cập nhật",directorManualAdded:"Đã thêm hướng dẫn sử dụng của Giám đốc",directorManual:"Vui lòng chọn Sổ tay Giám đốc Dự án"},type:{novel:"Dựa trên tiểu thuyết gốc",script:"Dựa trên kịch bản tiểu thuyết"}},novel:{importText:"Nhập bản gốc",batchDelete:"Xóa hàng loạt",eventAnalysis:"Phân tích sự kiện",searchPlaceholder:"Tìm kiếm tên bản gốc...",search:"Tìm kiếm",generating:"Đang tạo...",genFailed:"Tạo thất bại",none:"Không có",edit:"Chỉnh sửa",delete:"Xóa",col:{id:"STT",reel:"Tập",chapter:"Tên chương",chapterData:"Nội dung chương",event:"Sự kiện",operation:"Thao tác"},msg:{batchDeleteHeader:"Xóa hàng loạt",batchDeleteBody:"Bạn có chắc chắn muốn xóa {count} dữ liệu đã chọn không?",batchDeleteSuccess:"Xóa hàng loạt thành công",deleteHeader:"Xác nhận xóa",deleteBody:'Bạn có chắc chắn muốn xóa dữ liệu của chương có tên "{name}" không?',deleteSuccess:"Xóa thành công",eventAnalysisHeader:"Phân tích sự kiện",eventAnalysisBody:"Bạn có chắc chắn muốn phân tích sự kiện cho {count} dữ liệu đã chọn không?"},import:{title:"Tải lên bản gốc tiểu thuyết",step1:"Bước 1",step2:"Bước 2",step3:"Bước 3",dragUpload:"Kéo thả tệp văn bản tiểu thuyết vào đây hoặc nhấp để tải lên",uploadHint:"Hỗ trợ định dạng .txt, .docx, dung lượng tệp khuyên dùng dưới 10MB",or:"Hoặc",pasteLabel:"Dán trực tiếp nội dung tiểu thuyết",pastePlaceholder:"Vui lòng nhập nội dung tiểu thuyết",chars:"ký tự",tooShort:"Nội dung quá ngắn, khuyên dùng ít nhất 100 ký tự",parsedChapters:"Đã phân tích {count} chương",nextStep:"Tiếp theo",prevStep:"Quay lại",selectedInfo:"Đã chọn: {count} chữ (nhỏ hơn 200.000 chữ)",eventAnalysis:"Phân tích sự kiện",saveAndAnalyze:"Lưu bản gốc và phân tích sự kiện",col:{chapter:"Chương",reel:"Tập",chapterName:"Tên chương",chapterData:"Nội dung chương"},msg:{parseFailed:"Phân tích tệp thất bại, vui lòng tải lên lại",selectFile:"Chọn tập tin",docNotSupported:"File .doc không hỗ trợ phân tích cú pháp, vui lòng chuyển đổi sang file .ts",unsupportedType:"Loại tệp không được hỗ trợ",fileTooLarge:"Dung lượng tệp vượt quá 10MB, vui lòng tải lên tệp nhỏ hơn",selectChapters:"Vui lòng đánh dấu chọn chương trước",saveSuccess:"Lưu bản gốc tiểu thuyết thành công"},importAdd:"Kéo và thả file vào đây hoặc bấm vào để tải lên",limit:"Hỗ trợ định dạng .ts"},editDialog:{title:"Chỉnh sửa bản gốc tiểu thuyết",chapterName:"Tên chương",chapterNamePh:"Vui lòng nhập tên chương",eventContent:"Nội dung sự kiện",eventContentPh:"Nhập nội dung sự kiện",chapterContent:"Nội dung chương",chapterContentPh:"Vui lòng nhập nội dung chương",cancel:"Hủy",save:"Lưu",msg:{updateSuccess:"Cập nhật bản gốc tiểu thuyết thành công"}},event:{regenerate:"Tạo lại sự kiện",batchDelete:"Xóa hàng loạt",noData:"Chưa có dữ liệu sự kiện, nhấp để bắt đầu tạo",generate:"Tạo sự kiện",generatingHint:"Đang tạo sự kiện, vui lòng chờ...",loading:"Đang tải...",delete:"Xóa",col:{id:"ID Sự kiện",eventName:"Tên sự kiện",chapters:"Chương nguồn",detail:"Quá trình sự kiện",createTime:"Thời gian tạo",operation:"Thao tác"},msg:{deleteHeader:"Xóa sự kiện",deleteBody:"Bạn có chắc chắn muốn xóa sự kiện này không?",deleteSuccess:"Xóa thành công",generateSuccess:"Tạo sự kiện thành công",batchDeleteHeader:"Xóa hàng loạt",batchDeleteBody:"Bạn có chắc chắn muốn xóa {count} dữ liệu đã chọn không?",batchDeleteSuccess:"Xóa hàng loạt thành công"}},analysis:{analyzeFirst:"Vui lòng phân tích sự kiện trước",startAnalysis:"Bắt đầu phân tích",chapterHeader:"Chương {index} - {name}",analyzing:"Đang phân tích sự kiện"}},scriptAgent:{inputPlaceholder:"Vui lòng nhập nội dung",chapterEvents:"Sự kiện chương",clearMessageMemory:"Xóa bộ nhớ tin nhắn",clearSummaryMemory:"Xóa bộ nhớ tóm tắt",clearAllMemory:"Xóa toàn bộ bộ nhớ",edit:"Chỉnh sửa",storySkeleton:"Khung xương cốt truyện",adaptationStrategy:"Chiến lược chuyển thể",script:"Kịch bản",noContent:"Chưa có nội dung",relatedAssets:"Tài nguyên liên kết",editScript:"Chỉnh sửa kịch bản",save:"Lưu",scriptTitle:"Tiêu đề",titlePlaceholder:"Vui lòng nhập tiêu đề",content:"Nội dung",contentPlaceholder:"Vui lòng nhập nội dung kịch bản",selectAssets:"Chọn tài nguyên",noAssets:"Chưa liên kết tài nguyên",selectAssetsTitle:"Chọn tài nguyên liên kết",welcomeMsg:"Xin chào! Tôi là trợ lý thông minh Toonflow, bạn có muốn tôi bắt đầu tạo kịch bản cho bạn không?",start:"Bắt đầu",memoryType:{message:"Bộ nhớ tin nhắn",summary:"Bộ nhớ tóm tắt",all:"Toàn bộ bộ nhớ"},msg:{clearConfirm:"Xác nhận xóa",clearBody:"Bạn có chắc chắn muốn xóa {type} không? Không thể hoàn tác thao tác này.",confirmClear:"Xác nhận xóa",cancel:"Hủy",memoryCleared:"Đã xóa {type}",scriptUpdated:"Cập nhật kịch bản thành công",scriptUpdateFailed:"Cập nhật kịch bản thất bại, vui lòng thử lại sau",searchScriptFailed:"Tìm kiếm kịch bản thất bại",updated:"Đã lưu thành công",error:"Lưu không thành công",reconnect:"Kết nối lại",notReconnect:"Xác nhận rằng cuộc trò chuyện kết nối lại sẽ bị cắt?",keepReconnect:"xác nhận",deleteConfirm:"Xóa xác nhận",deleteBody:"Xóa văn bản",confirmDelete:"Xác nhận xóa",scriptDeleted:"Đã xóa tập lệnh"},reconnect:"kết nối lại"},cornerScape:{batchSettings:"Cài đặt tạo hàng loạt",quickActions:"Lệnh lối tắt",selectUngenerated:"Chọn tất cả các mục chưa tạo",selectGenerated:"Chọn tất cả các mục đã tạo",selectFailed:"Chọn các mục lỗi",invertSelection:"Đảo ngược vùng chọn",clearSelection:"Bỏ chọn",batchPreview:"Xem trước ảnh hàng loạt",assetTypeFilter:"Lọc loại tài nguyên",genModel:"Mô hình tạo",resolution:"Độ phân giải",resolutionPh:"Vui lòng chọn độ phân giải",concurrency:"Số lượng đồng thời",concurrencyPh:"Vui lòng nhập số lượng đồng thời",startBatch:"Bắt đầu tạo hình ảnh theo đợt",waitingGen:"Đang chờ tạo",generating:"Đang tạo",genFailed:"Tạo thất bại",imageError:"Lỗi hình ảnh",typeRole:"Nhân vật",typeScene:"Cảnh",typeTool:"Công cụ",typeUnknown:"Không xác định",descriptionSuffix:"Mô tả:",operateScriptFirst:"Vui lòng thao tác với kịch bản trước",individualConfig:"Cấu hình riêng lẻ",noImage:"Chưa có hình ảnh",promptLabel:"Lời nhắc (Prompt)",promptPh:"Vui lòng nhập lời nhắc",aiPolish:"AI trau chuốt",regenerate:"Tạo lại",filterRole:"Nhân vật",filterScene:"Cảnh",filterTool:"Đạo cụ",unnamed:"Chưa đặt tên",noDescription:"Không có mô tả",msg:{selectModel:"Vui lòng chọn mô hình tạo",selectResolution:"Vui lòng chọn độ phân giải",enterPrompt:"Vui lòng nhập lời nhắc",enterPromptFirst:"Vui lòng nhập lời nhắc trước",genSuccess:"Tạo {name} thành công",genFailed:"Tạo {name} thất bại",promptGenSuccess:"Tạo lời nhắc thành công",polishFailed:"Trau chuốt thất bại, vui lòng thử lại",selectAtLeastOne:"Vui lòng chọn ít nhất một tài nguyên để tạo hàng loạt",batchStarted:"Bắt đầu tạo hàng loạt, tổng cộng {count} mục, số luồng đồng thời {concurrent}",batchItemFailed:"Tạo {name} thất bại: {error}",batchComplete:"Tạo hàng loạt hoàn tất",batchFailed:"Tạo hàng loạt không thành công",replaceFailed:"Thay thế không thành công",replaceSuccess:"Thay thế thành công",promptGenFail:"Tạo từ nhắc nhở không thành công",saveSuccess:"Sửa đổi lời nhắc thành công",saveFailed:"Sửa đổi từ nhắc nhở không thành công"},history:"hình ảnh lịch sử",confirmReplace:"Xác nhận thay thế",batchGenerationPrompt:"Tạo các từ nhắc nhở theo đợt",generatingPrompt:"Đang tạo",selectPromptEmpty:"Chọn tất cả từ nhắc trống",noEmptyPrompt:"Không có nội dung nào có từ nhắc trống",selectedCount:"đã chọn {count} nội dung"},script:{searchPlaceholder:"Tìm kiếm tên kịch bản...",search:"Tìm kiếm",addScript:"Kịch bản mới",cancelSelectAll:"Bỏ chọn tất cả",selectAll:"Chọn tất cả",exportScript:"Xuất kịch bản",msg:{searchFailed:"Tìm kiếm kịch bản thất bại",selectExport:"Vui lòng chọn kịch bản cần xuất trước",exportSuccess:"Xuất thành công",exportFailed:"Xuất kịch bản thất bại",deleteHeader:"Xác nhận xóa",deleteBody:"Bạn có chắc chắn muốn xóa kịch bản này không? Không thể hoàn tác thao tác này.",deleteConfirm:"Xóa",cancel:"Hủy",deleteSuccess:"Xóa thành công",deleteFailed:"Xóa thất bại",selectDelScript:"Vui lòng chọn xóa tập lệnh",batchDeleteHeader:"Xóa hàng loạt",batchDeleteBody:"Bạn có chắc chắn muốn xóa {count} kịch bản đã chọn không? Không thể hoàn tác thao tác này.",batchDeleteSuccess:"Xóa hàng loạt thành công",extractingInProgress:"Giải nén",projectNotFound:"Không tìm thấy mục",selectsExport:"Vui lòng chọn xuất tập lệnh"},add:{title:"Thêm kịch bản mới",scriptName:"Tên kịch bản",scriptNamePh:"Vui lòng nhập tên kịch bản",uploadFile:"Tải lên tệp",dragUpload:"Kéo thả tệp kịch bản vào đây hoặc nhấp để tải lên",uploadHint:"Hỗ trợ định dạng .txt, .docx, dung lượng tệp khuyên dùng dưới 10MB",scriptContent:"Nội dung kịch bản",scriptContentPh:"Vui lòng tải lên hoặc nhập nội dung kịch bản...",relatedAssets:"Tài nguyên liên kết",selectAssets:"Chọn tài nguyên",noAssets:"Chưa liên kết tài nguyên",cancel:"Hủy",confirm:"Xác nhận",msg:{fileReadFailed:"Đọc tệp thất bại",docNotSupported:"Không hỗ trợ phân tích tệp .doc, vui lòng chuyển đổi sang .txt hoặc .docx",unsupportedType:"Loại tệp không được hỗ trợ",fileTooLarge:"Dung lượng tệp vượt quá 10MB, vui lòng tải lên tệp nhỏ hơn",parsing:"Đang phân tích tệp...",parseFailed:"Phân tích tệp thất bại, vui lòng tải lên lại",selectAssetsTitle:"Chọn tài nguyên liên kết",enterContent:"Vui lòng tải lên hoặc nhập nội dung kịch bản",enterName:"Vui lòng nhập tên kịch bản",addSuccess:"Thêm kịch bản thành công",addFailed:"Thêm kịch bản thất bại, vui lòng thử lại sau"}},edit:{title:"Chi tiết kịch bản",scriptName:"Tên kịch bản",scriptNamePh:"Vui lòng nhập tên kịch bản",scriptContent:"Nội dung kịch bản",scriptContentPh:"Vui lòng nhập nội dung kịch bản...",relatedAssets:"Tài nguyên liên kết",selectAssets:"Chọn tài nguyên",noAssets:"Chưa liên kết tài nguyên",msg:{selectAssetsTitle:"Chọn tài nguyên liên kết",updateSuccess:"Cập nhật kịch bản thành công",updateFailed:"Cập nhật kịch bản thất bại, vui lòng thử lại sau"}},deleteScript:"Xóa tập lệnh theo đợt",extractAssets:""},assets:{addPrefix:"Thêm mới",batchGenerate:"Tạo hàng loạt",generatePrompt:"Tạo lời nhắc",generateImage:"Tạo hình ảnh",batchDelete:"Xóa hàng loạt",searchPlaceholder:"Tìm kiếm tên tài nguyên...",search:"Tìm kiếm",preview:"Xem trước",generate:"Tạo",edit:"Chỉnh sửa",delete:"Xóa",generating:"Đang tạo",play:"Phát",mediaPreview:"Xem trước Media",confirmBatch:"Xác nhận {type}!",model:"Mô hình",resolution:"Độ phân giải",resolutionPh:"Vui lòng chọn độ phân giải",batchGenPrompt:"Tạo lời nhắc hàng loạt",batchGenImage:"Tạo hình ảnh hàng loạt",role:"Nhân vật",prop:"Đạo cụ",scene:"Cảnh",clip:"Chất liệu (Clip)",uploadSuccess:"Tải lên thành công",selectAtLeastOne:"Vui lòng chọn ít nhất một tài nguyên",noDescription:"Không có mô tả",promptGenSuccess:"Tạo lời nhắc cho「{name}」thành công",promptGenFail:"Tạo lời nhắc cho「{name}」thất bại: {error}",selectModel:"Vui lòng chọn mô hình",selectResolution:"Vui lòng chọn độ phân giải",noPromptForImage:"「{name}」không có lời nhắc, không thể tạo hình ảnh",imageGenSuccess:"Tạo hình ảnh「{name}」thành công",imageGenFail:"Tạo hình ảnh「{name}」thất bại: {error}",confirmDeleteHeader:"Xác nhận xóa",confirmBatchDeleteBody:"Bạn có chắc chắn muốn xóa hàng loạt các tài nguyên này không? Không thể hoàn tác thao tác này.",confirmDeleteBody:"Bạn có chắc chắn muốn xóa tài nguyên này không? Không thể hoàn tác thao tác này.",deleteBtn:"Xóa",cancelBtn:"Hủy",deleteSuccess:"Xóa tài nguyên thành công",deleteFail:"Xóa tài nguyên thất bại",colPreview:"Xem trước",colName:"Tên",colPrompt:"Lời nhắc",colDescribe:"Mô tả",colRemark:"Ghi chú",colCreateTime:"Thời gian tạo",colOperation:"Thao tác",add:{name:"Tên",namePh:"Vui lòng nhập tên",describe:"Mô tả",describePh:"Vui lòng nhập mô tả",remark:"Ghi chú",remarkPh:"Vui lòng nhập ghi chú",prompt:"Lời nhắc",promptPh:"Vui lòng nhập lời nhắc",nameRequired:"Vui lòng nhập tên",describeRequired:"Vui lòng nhập chi tiết",remarkRequired:"Vui lòng nhập ghi chú",updateSuccess:"Cập nhật tài nguyên thành công",addSuccess:"Thêm tài nguyên thành công"},gen:{header:"Tạo hình ảnh",uploadRef:"Tải lên ảnh tham khảo",optional:"Tùy chọn",promptLabel:"Lời nhắc tạo ảnh",smartGenerate:"Tạo thông minh",generatingPrompt:"Đang tạo lời nhắc thông minh...",promptPlaceholder:"Mô tả nội dung hình ảnh bạn muốn tạo, ví dụ: Một thành phố tương lai đầy công nghệ, ánh đèn neon nhấp nháy, phong cách cyberpunk...",selectModel:"Chọn mô hình",selectResolution:"Chọn độ phân giải",generateBtn:"Tạo hình ảnh",resultTitle:"Kết quả tạo",generatedCount:"Đã tạo {count} ảnh, vui lòng chọn một",generatingLabel:"Đang tạo...",genFailed:"Tạo thất bại",confirmSelect:"Xác nhận lựa chọn",promptSuccess:"Tạo lời nhắc thành công",promptFail:"Tạo lời nhắc thất bại",fillPrompt:"Vui lòng điền lời nhắc",pickResolution:"Vui lòng chọn độ phân giải",pickModel:"Vui lòng chọn mô hình",unnamed:"Chưa đặt tên",assetGenSuccess:"Tạo tài nguyên thành công",assetGenFail:"Tạo tài nguyên thất bại",uploadOk:"Tải lên thành công",imageSelected:"Đã chọn hình ảnh này",imageDeleted:"Đã xóa hình ảnh này",imageSaved:"Hình ảnh đã được lưu",completed:"Hoàn thành"},batch:{header:"Tạo hàng loạt",selected:"Đã chọn {count} mục",selectAll:"Chọn tất cả",clearSelection:"Bỏ chọn tất cả",inputPh:"Vui lòng nhập nội dung",saveSelected:"Lưu các mục đã chọn ({count})",colPreviewImg:"Ảnh xem trước",selectToSave:"Vui lòng chọn mục để lưu",saveSuccess:"Lưu thành công",saveFail:"Lưu thất bại, vui lòng thử lại",promptDone:"Tạo lời nhắc hoàn tất",promptFail:"Tạo lời nhắc thất bại",missingPrompts:"Có {count} tài nguyên thiếu lời nhắc, vui lòng tạo lời nhắc trước",imageDone:"Tạo hình ảnh hoàn tất",imageGenFail:"Tạo hình ảnh thất bại",unknownError:"Lỗi không xác định",promptGenCancelled:"Thế hệ bị hủy"}},production:{selectPlaceholder:"Vui lòng chọn tập",edit:"Chỉnh sửa",node:{script:{title:"Kịch bản",editDialog:"Chỉnh sửa kịch bản"},scriptPlan:{title:"Kế hoạch quay",editDialog:"Chỉnh sửa kế hoạch quay"},storyboard:{title:"Bảng phân cảnh",notGenerated:"Chưa tạo",scaleRatio:"Tỷ lệ thu phóng",gridPreview:"Xem trước dạng lưới",noPreviewImages:"Không có ảnh để xem trước",imageLoadFailed:"Tải hình ảnh thất bại",promptPlaceholder:"Vui lòng nhập từ gợi ý",prompt:"lời nhắc",editInfo:"Sửa đổi từ nhanh chóng"},storyboardTable:{title:"Bảng danh sách phân cảnh",editDialog:"Chỉnh sửa bảng phân cảnh"},assets:{title:"Tài nguyên phái sinh",generateFailed:"Tạo thất bại",notGenerated:"Chưa tạo",originalAsset:"Tài nguyên gốc",derived:"Phái sinh",noDerivedAssets:"Không có tài nguyên phái sinh"},poster:{title:"Ảnh bìa video",coverCount:"{count} ảnh"},workbench:{title:"Bàn làm việc Video"}},editImage:{upload:"Tải lên",generate:"Tạo",saveFailed:"Lưu thất bại, vui lòng thử lại",fetchFailed:"Lấy dữ liệu thất bại",generating:"Đang tạo...",deleteNode:"Xóa Node",ratio:"Tỷ lệ",quality:"Chất lượng",generateBtn:"Tạo hình ảnh",selectImage:"Chọn hình ảnh",imageGeneration:"Tạo hình ảnh",promptPlaceholder:"Mô tả hình ảnh bạn muốn tạo...",imageRef:"Ảnh {index}",noReferences:"Không có ảnh tham khảo nào có thể sử dụng",selectModel:"Vui lòng chọn mô hình trước",selectQuality:"Vui lòng chọn chất lượng",selectRatio:"Vui lòng chọn tỷ lệ",generateFailed:"Tạo thất bại",generateFirst:"Vui lòng tạo hình ảnh trước",generatedResult:"Kết quả tạo",waitingGenerate:"Đang chờ tạo",layoutLR:"Bố cục tự động - Ngang",layoutTB:"Bố cục tự động - Dọc",uploadAssetImage:"Tải lên hình ảnh tài sản",uploadStoryboardImage:"Tải lên hình ảnh storyboard",uploadImage:"Tải lên hình ảnh nội dung",mode:"người mẫu",closeConfirmTitle:"Đóng bảng chỉnh sửa?",closeConfirmBody:"Dữ liệu chưa lưu sẽ bị mất sau khi đóng"},save:"Lựa chọn",cancel:"Hủy",chatBox:{inputPlaceholder:"Nhập tin nhắn...",generateDerivedAssets:"Tạo tài nguyên phái sinh",welcomeMessage:"Xin chào! Tôi là trợ lý AI của bạn, tôi có thể giúp gì cho bạn?",adjustModel:"Điều chỉnh mô hình",startMakingVideo:"Bắt đầu làm video",startMakingVideoPrompt:"Hãy giúp tôi bắt đầu làm video",clearMessageMemory:"Xóa bộ nhớ tin nhắn",clearSummaryMemory:"Xóa bộ nhớ tóm tắt",clearAllMemory:"Xóa tất cả bộ nhớ",messageMemory:"Bộ nhớ tin nhắn",summaryMemory:"Bộ nhớ tóm tắt",allMemory:"Tất cả bộ nhớ",confirmClear:"Xóa bộ nhớ",confirmClearBody:"Bạn có chắc chắn muốn xóa {type} không?",confirmClearBtn:"Xác nhận xóa",memoryCleared:"Đã xóa {type}"},wb:{quickPreview:"Xem trước nhanh",videoGeneration:"Bảng phân cảnh",videoEditing:"bàn biên tập",hint:"Gợi ý",extractLines:"Bạn có muốn trích xuất lời thoại từ video không?",no:"Không",confirm:"Xác nhận",extractLinesQuestion:"Bạn có muốn trích xuất lời thoại từ video làm phụ đề không?",importingLoading:"Đang nhập, vui lòng chờ...",mainTrackVideo:"Track chính (Video)",subtitle1:"Phụ đề 1",storyboardVideoName:"Video storyboard-{storyboard}.mp4"},preview:{noImage:"Chưa có hình ảnh",storyboardDesc:"Mô tả phân cảnh",serialNumber:"STT",noDescription:"Chưa có mô tả",duration:"Thời lượng",seconds:"giây",relatedAssets:"Tài nguyên liên quan",role:"Nhân vật",prop:"Đạo cụ",scene:"Cảnh",noCharacters:"Không có nhân vật xuất hiện",imagePrompt:"Lời nhắc hình ảnh",selectAll:"Chọn tất cả",exportImage:"Xuất hình ảnh",sceneDescription:"Mô tả khung hình",promptLabel:"Lời nhắc",restoreSort:"Khôi phục sắp xếp",restoreSortConfirm:"Bạn có chắc chắn muốn khôi phục về thứ tự sắp xếp ban đầu không?",tip:"Mẹo",selectAtLeastOne:"Vui lòng chọn ít nhất một phân cảnh để xuất",exportFilename:"Hình ảnh kịch bản"},generate:{noVideo:"Chưa có video",videoPrompt:"Lời nhắc video",promptPlaceholder:"Nhập từ gợi ý để mô tả nội dung video bạn muốn tạo...",refImage:"Ảnh tham khảo",image:"Hình ảnh",refVideo:"Video tham khảo",refImageLabel:"Hình ảnh tham khảo",refAudio:"Âm thanh tham khảo",muteAudio:"Tắt âm thanh",enableAudio:"Bật âm thanh",resolution:"Độ phân giải",duration:"Thời lượng",generate:"Tạo",historyVersions:"Phiên bản lịch sử",confirmSelection:"Xác nhận đã chọn",noHistory:"Chưa có lịch sử",generating:"Đang tạo",generateFailed:"Tạo thất bại",selectAll:"Chọn tất cả",videoTrack:"Track video",batchGenerate:"Tạo hàng loạt",importToEditor:"Nhập vào bàn dựng",modeSingleImage:"Ảnh đơn",modeMultiImage:"Nhiều ảnh",modeGridImage:"Lưới nhiều ảnh",modeStartEnd:"Khung hình đầu/cuối",modeText:"Văn bản -> Video",modeVideoRef:"Video tham khảo",modeImageRef:"Ảnh tham khảo",modeAudioRef:"Âm thanh tham khảo",modeTextRef:"Văn bản tham khảo",startFrame:"Khung hình đầu",startFrameOptional:"Khung hình đầu (Tùy chọn)",endFrame:"Khung hình cuối",endFrameOptional:"Khung hình cuối (Tùy chọn)",selectRefImage:"Chọn ảnh tham khảo",selectRefImages:"Chọn các ảnh tham khảo",selectEndFrame:"Chọn ảnh khung hình cuối",selectRefVideoAsset:"Chọn video tham khảo",selectRefAudioAsset:"Chọn âm thanh tham khảo",selectRefImageAsset:"Chọn ảnh tham khảo",selectImageSource:"Chọn nguồn hình ảnh",fromStoryboard:"Hình storyboard",fromStoryboardDesc:"Chọn hình từ danh sách storyboard",fromAssets:"Hình tài nguyên",fromAssetsDesc:"Chọn hình từ thư viện tài nguyên",confirmDelete:"Xác nhận xóa",confirmDeleteBody:"Bạn có chắc chắn muốn xóa video này không? Không thể hoàn tác thao tác này.",delete:"Xóa",cancel:"Hủy",deleteSuccess:"Xóa video thành công",deleteFailed:"Xóa thất bại",selectVideoFirst:"Vui lòng chọn một video trước",confirmSuccess:"Xác nhận chọn thành công",batchSubmitted:"Đã gửi yêu cầu tạo hàng loạt, đang xử lý...",configNotFound:"Cấu hình không tồn tại",pollingFailed:"Truy vấn trạng thái video không thành công, vui lòng làm mới theo cách thủ công",batchGeneratePrompt:"Tạo các từ nhắc nhở theo đợt",batchPromptEmpty:"Có sẵn bảng phân cảnh {name} cho lời nhắc bằng video. Vui lòng tạo hoặc điền vào lời nhắc trước",modelEmpty:"Trước tiên hãy chọn mô hình tạo video",generatingPrompt:"Tạo lời nhắc thông minh"},editVideo:{reset:"Đặt lại",undo:"Hoàn tác (Undo)",redo:"Làm lại (Redo)",split:"Cắt / Chia nhỏ",delete:"Xóa",rendering:"Đang kết xuất (Render)...",exportVideo:"Xuất Video",exportSuccess:"Đã xuất video hoàn tất",exportFailed:"Xuất video thất bại",sampleSubtitle:"Văn bản phụ đề mẫu",customText:"Nội dung văn bản tùy chỉnh",transitionBetweenClips:"Chuyển cảnh cần được thêm vào giữa 2 Đoạn video (Clip) liền kề",transitionExists:"Vị trí này đã có chuyển cảnh",videoPreviewArea:"Khu vực xem trước video",clipMaterials:"Tài liệu dựng phim",propertyPanel:"Bảng thuộc tính",selectClip:"Chọn một Đoạn video (Clip) để xem thuộc tính",basicInfo:"Thông tin cơ bản",name:"Tên",clipNamePlaceholder:"Tên Đoạn video",startTime:"Bắt đầu",endTime:"Kết thúc",totalDuration:"Tổng thời lượng",videoProperties:"Thuộc tính video",opacity:"Độ mờ",volume:"Âm lượng",playbackSpeed:"Tốc độ phát",audioProperties:"Thuộc tính âm thanh",fadeIn:"Fade in (Rõ dần)",fadeOut:"Fade out (Mờ dần)",transitionProperties:"Thuộc tính chuyển cảnh",transitionType:"Loại chuyển cảnh",transFade:"Làm mờ (Fade)",transSlide:"Trượt (Slide)",transWipe:"Gạt (Wipe)",transDissolve:"Hòa tan (Dissolve)",transZoom:"Thu phóng (Zoom)",transRotate:"Xoay (Rotate)",transitionDuration:"Thời lượng chuyển cảnh",subtitleProperties:"Thuộc tính phụ đề",textContent:"Nội dung văn bản",fontSize:"Cỡ chữ",copy:"Sao chép",deleteConfirm:"Xác nhận xóa",deleteClipConfirm:"Bạn có chắc chắn muốn xóa Đoạn video này không?",avCanvasNotInit:"AVCanvas chưa được khởi tạo",noExportContent:"Không có nội dung nào để xuất",exportProject:"Xuất dự án",transitionAdded:"Đã thêm chuyển cảnh: {name}",splitClip:"Cắt Đoạn video",deleteClip:"Xóa Đoạn video",addClip:"Thêm {name}",duplicateClip:"Nhân bản Đoạn video",addTransition:"Thêm chuyển cảnh",updateClip:"Cập nhật Đoạn video {key}",updatePlaybackRate:"Cập nhật tốc độ phát thành {rate}x",updateTransitionDuration:"Cập nhật thời lượng chuyển cảnh",playbackRateRange:"Tốc độ phát phải nằm trong khoảng từ 0.1 đến 10",updatePlaybackRateFailed:"Cập nhật tốc độ phát thất bại:",importProject:"Nhập dự án",import:"Nhập"},clipType:{video:"Video",audio:"Âm thanh",subtitle:"Phụ đề",transition:"Chuyển cảnh",sticker:"Nhãn dán",filter:"Bộ lọc",effect:"Hiệu ứng"},track:{video:"Video",image:"Hình ảnh",audio:"Âm thanh",subtitle:"Phụ đề",text:"Văn bản",sticker:"Nhãn dán",filter:"Bộ lọc",effect:"Hiệu ứng"},transition:{fade:"Làm mờ (Fade)",slide:"Trượt (Slide)",slideLeft:"Trượt sang trái",slideRight:"Trượt sang phải",slideUp:"Trượt lên trên",slideDown:"Trượt xuống dưới",wipe:"Gạt (Wipe)",wipeLeft:"Gạt sang trái",wipeRight:"Gạt sang phải",wipeUp:"Gạt lên trên",wipeDown:"Gạt xuống dưới",dissolve:"Hòa tan",zoom:"Thu phóng",zoomIn:"Phóng to",zoomOut:"Thu nhỏ",rotate:"Xoay",circle:"Hình tròn",diamond:"Hình thoi",clock:"Đồng hồ",blur:"Làm mờ (Blur)"},media:{titleText:"Văn bản tiêu đề",subtitleText:"Văn bản phụ đề",customText:"Văn bản tùy chỉnh",media:"Media (Phương tiện)",image:"Hình ảnh",audio:"Âm thanh",subtitle:"Phụ đề",transition:"Chuyển cảnh",effect:"Hiệu ứng",filter:"Bộ lọc",loading:"Đang tải...",subtitlePreview:"Chữ",video:"băng hình"},effect:{fadeIn:"Rõ dần",fadeOut:"Mờ dần",flash:"Chớp nháy",shake:"Rung lắc",zoomIn:"Phóng to vào",zoomOut:"Thu nhỏ ra",pulse:"Nhịp đập",rotateIn:"Xoay vào",sticker1:"Nhãn dán 1",sticker2:"Nhãn dán 2"},filter:{grayscale:"Đen trắng",sepia:"Cổ điển (Sepia)",warm:"Tone ấm",cool:"Tone lạnh",vivid:"Rực rỡ",bright:"Sáng sủa",highContrast:"Độ tương phản cao",blur:"Làm mờ",invert:"Đảo màu",semiTransparent:"Bán trong suốt"},guideSwitchEpisode:"Chuyển đổi tập",guideSwitchEpisodeBody:"Tính năng chuyển đổi tập đã được chuyển đến đây nhé!",autoLayoutLR:"Tự động sắp chữ-bố trí bên trái và bên phải",autoLayoutTB:"Tự động sắp chữ bố cục trên và dưới",getFlowData:"Làm mới không gian làm việc",confirm:"Xác nhận chuyển tập",confirmEpisodesSwitch:"Nhiệm vụ hiện tại vẫn đang được tiến hành. Việc chuyển các tập sẽ kết nối lại phiên. Bạn có muốn tiếp tục chuyển đổi không?"},task:{title:"Danh sách tác vụ",subtitle:"Nhật ký thực thi tác vụ mới nhất của bạn",refresh:"Làm mới",categoryLabel:"Loại tác vụ:",stateLabel:"Trạng thái:",noFailReason:"Chưa có lý do thất bại",stateAll:"Tất cả",stateRunning:"Đang tiến hành",stateCompleted:"Đã hoàn thành",stateFailed:"Tạo thất bại",fetchFailed:"Lấy danh sách tác vụ thất bại",col:{taskClass:"Loại tác vụ",relatedObjects:"Đối tượng liên quan",model:"Mô hình",describe:"Mô tả",state:"Trạng thái",startTime:"Thời gian",reason:"Lý do thất bại"},project:"Tên dự án:"},noVideo:"Chưa có video",prompt:"Lời nhắc video",generateText:"Lời nhắc do AI tạo ra",selectStoryboard:"Chọn bảng phân cảnh",generate:{noVideo:"Chưa có video",generateText:"Lời nhắc do AI tạo ra",selectStoryboard:"Chọn bảng phân cảnh",generate:"Tạo video",history:"Phiên bản lịch sử",generating:"Đang tạo",generateFailed:"thất bại",selectAll:"Chọn tất cả",selected:"Đã chọn",batchGenerateText:"Tạo các từ nhắc nhở theo đợt",batchGenerateVideo:"Tạo video hàng loạt",importVideo:"Nhập vào bàn chỉnh sửa",emptyTrack:"Đoạn {chỉ mục 1}",del:"xóa bỏ",delConfirm:"Bạn có chắc chắn muốn xóa đoạn này?",selectSource:"Chọn nguồn",confirm:"Chọn từ nội dung",cancel:"Chọn từ bảng phân cảnh",selectVideoFailed:"Lựa chọn video không thành công",selectVideoSuccess:"Lựa chọn video thành công",selectTrackFirst:"Vui lòng chọn bảng phân cảnh trước",noSelectedVideo:"Không có video nào được chọn",generateConfirm:"Xác nhận thế hệ",generateConfirmBody:"Xác nhận để tạo video",generateVideosInBatches:"Tạo video hàng loạt",generateStarted:"Bắt đầu xây dựng",promptEmpty:"Kiểm tra dữ liệu cần tạo video và từ nhắc trống. Bạn có muốn tiếp tục tạo nó không?",skipDataWithEmptyVideoPromptWords:"Dữ liệu video cần được tạo đã tồn tại và từ nhắc trống.",duration:"khoảng thời gian",resolution:"nghị quyết",delVideo:"Xác nhận xóa video này?",delSuccess:"Xóa thành công",addReference:"thêm tài liệu tham khảo",promptPlaceholder:"Vui lòng nhập từ nhắc video",downloadVideo:"Tải xuống video hàng loạt",selectVideo:"Vui lòng kiểm tra video bạn muốn tải xuống"}},F_i={slogan:"Nền tảng sáng tạo phim ngắn thông minh",tips:"Tài khoản mặc định: admin / admin123",settings:"Cài đặt máy chủ",requestAddress:"Địa chỉ yêu cầu",username:"Tên người dùng",password:"Mật khẩu",login:"Đăng nhập",usernameRequired:"Vui lòng nhập tên người dùng",passwordRequired:"Vui lòng nhập mật khẩu",enterUsernameAndPassword:"Vui lòng nhập tên người dùng hoặc mật khẩu",loginSuccess:"Đăng nhập thành công",settingsSaved:"Đã lưu cài đặt"},N_i={cancel:"Hủy",confirm:"Xác nhận",selectAssets:"Chọn tài sản",sessionExpired:"Phiên đã hết hạn, vui lòng đăng nhập lại",openSettings:"Mở cài đặt",cancelled:"Đã hủy tạo",defaultReel:"Tập chính",save:"cứu",submitting:"Đang gửi",editSuccess:"Sửa đổi thành công",editFailed:"Sửa đổi không thành công",submit:"nộp"},U_i={prompt:"lời nhắc"},j_i={welcomeTitle:"Chào mừng đến với ToonFlow",welcomeDesc:"Nền tảng quy trình tạo truyện tranh do AI điều khiển, chúng ta hãy dành một phút để hoàn thành cấu hình ban đầu.",startConfig:"Bắt đầu cấu hình",skip:"Bỏ qua khởi động",configModel:"Thêm dịch vụ mẫu",configData:"Cấu hình tác nhân",startUse:"Bắt đầu",configModelTitle:"Thêm nhà cung cấp dịch vụ mô hình",configModelDesc:"Trước tiên, bạn cần thêm ít nhất một nhà cung cấp dịch vụ mô hình AI (như OpenAI, Claude, v.v.) vào cài đặt và điền API Key tương ứng.",configModelTip:'Nhấp vào nút bên dưới sẽ mở tab "Dịch vụ mẫu" của trang cài đặt. Sau khi thêm nhà cung cấp, quay lại đây để tiếp tục.',configModelBtn:"Đi tới cấu hình dịch vụ mô hình",configAgentTitle:"Chỉ định mô hình đại lý",configAgentDesc:"Tiếp theo, gán mô hình cho từng mô-đun chức năng trong cấu hình Tác nhân để hệ thống biết cần gọi mô hình nào để hoàn thành nhiệm vụ.",configAgentTip:'Nhấp vào nút bên dưới sẽ mở tab "Cấu hình tác nhân" của trang cài đặt. Quay lại đây sau khi gán mô hình cho từng chức năng.',configAgentBtn:"Đi tới cấu hình Đại lý",finishTitle:"🎉 Mọi thứ đã sẵn sàng!",finishDesc:"Cấu hình đã hoàn tất và bây giờ bạn có thể bắt đầu sử dụng tất cả các tính năng. Nếu bạn cần điều chỉnh nó, bạn có thể sửa đổi nó trong cài đặt bất cứ lúc nào.",qrcodeLabel:"Tham gia nhóm liên lạc WeChat để nhận thêm trợ giúp:",githubLabel:"Nếu bạn thấy nó hữu ích, vui lòng cho chúng tôi ⭐ Sao!",prevStep:"Bước trước",nextStep:"Bước tiếp theo",finish:"Bắt đầu"},W_i={skillManagement:{search:"Tìm kiếm tên tập tin",empty:"Không có tập tin phù hợp",edit:"biên tập",selectOnTheLeft:"Vui lòng chọn một tập tin từ bên trái"}},V_i={assets:{notExist:"Tài sản không tồn tại",notDerivativeExist:"Tài sản phái sinh không tồn tại",derivativeUpdateSuccess:"Cập nhật thành công",derivativeState:"Không được tạo",derivativeAddSuccess:"Đã thêm thành công",derivativeDelSuccess:"Xóa thành công",notGenerated:"Không được tạo"},addSuccess:"Cập nhật thành công",state:{unused:"Không được tạo"},saveSuccess:"Đã thêm thành công"},z_i={generating:"Đang tạo"},H_i={scanning:"🔍 Phân tích và tải Skill",scanComplete:"✨ Quét Skill hoàn tất",inserted:"✅ Đã thêm kỹ năng {count}",updated:"🔄 Cập nhật {count} kỹ năng",removed:"🗑️ Xóa {count} Skill",scannedFiles:"📁 Đã quét {count} tệp",noDescription:"📝 {count} Skill thiếu mô tả",noAttribution:"👤 {count} Skill thiếu thông tin tác giả",configWarning:"⚠️ Cảnh báo cấu hình Skill",openSettings:"Mở cài đặt",scanFailed:"❌ Quét thất bại",checkNetwork:"🔌 Vui lòng kiểm tra kết nối mạng hoặc thử lại sau",retryLater:"🔁 Vui lòng thử lại sau"},$_i="Tạo video",X_i="Phiên bản lịch sử",G_i="Đang tạo",Y_i="thất bại",Z_i="Chọn tất cả",q_i="Đã chọn",K_i="Nhập video",J_i="Đoạn {chỉ mục 1}",eSi="Xác nhận xóa",tSi="Bạn có chắc chắn muốn xóa đoạn này?",nSi="Chọn nguồn",iSi="Chọn từ nội dung",rSi="Chọn từ bảng phân cảnh",oSi={newVersion:"Có phiên bản mới, bạn có muốn cập nhật không?"},sSi={components:I_i,settings:M_i,workbench:P_i,login:F_i,common:N_i,"components.storyboardImageCheck.camera":"Máy quay","components.storyboardImageCheck.dialogTitle":"Chọn hình storyboard","components.storyboardImageCheck.preview":"Xem trước","components.storyboardImageCheck.src":"Ảnh xem trước","components.storyboardImageCheck.title":"Tiêu đề","components.storyboardImageCheck.duration":"Thời lượng","components.storyboardImageCheck.lines":"Lời thoại","components.storyboardImageCheck.createTime":"Thời gian tạo","workbench.script.extractAssets":"Trích xuất tài sản",promptManage:U_i,hello:j_i,setting:W_i,storyboard:V_i,productionAgent:z_i,skillScan:H_i,generate:$_i,history:X_i,generating:G_i,generateFailed:Y_i,selectAll:Z_i,selected:q_i,importVideo:K_i,emptyTrack:J_i,del:eSi,delConfirm:tSi,selectSource:nSi,confirm:iSi,cancel:rSi,"workbench.script.msg.exportFailed":"Xuất không thành công","workbench.production.node.assets.confirmDeleteBody":"Xác nhận xem có xóa nội dung hay không","workbench.production.node.assets.removeFailed":"Không thể xóa nội dung",version:oSi,"workbench.production.generatedNode.localUpload":"Tải lên cục bộ","workbench.production.editImage.uploadFailed":"Tải hình ảnh lên không thành công","workbench.production.editImage.noImage":"Vui lòng thêm hình ảnh trước"},aSi={editMdPreivew:{title:"編集",confirm:"保存",cancel:"キャンセル"},imageTools:{copy:"画像をコピー",preview:"プレビュー",download:"ダウンロード",msg:{imageLoadFailed:"画像の読み込みに失敗しました",convertFailed:"変換に失敗しました",copied:"クリップボードにコピーしました",copyFailed:"コピーに失敗しました",downloadFailed:"ダウンロードに失敗しました",downloadStarted:"ダウンロードを開始します",downloadBlockedOpenNewWindow:"現在の画像ソースでダウンロードが制限されている可能性があるため、新しいウィンドウで開きました"}},migrateShow:{title:"データの移行",desc:"旧バージョンのデータが検出されました。データを移行しますか?",hide:"今後表示しない",confirm:"確定",msg:{migrateSuccess:"データの移行に成功しました",migrateFailed:"データの移行に失敗しました"}},modelSelect:{placeholder:"モデルを選択してください",type:{image:"画像",text:"テキスト",video:"動画"},msg:{fetchModelFailed:"モデルデータの取得に失敗しました:"},goSetting:"設定に移動してモデルを追加します"}},lSi={title:"ToonFlow 設定",menu:{language:"言語設定",vendorConfig:"モデルサービス",agentConfig:"Agent 設定",promptManage:"プロンプト管理",skillManagement:"スキル管理",memoryConfig:"Agent メモリ設定",loginConfig:"ログイン設定",dbConfig:"データベース操作",fileManagement:"ファイル管理",otherConfig:"その他の設定",requestConfig:"リクエストURL",about:"アップデートの確認",logoutConfig:"ログアウト",skillsSkillsManagement:"スキルスキル管理"},language:{desc:"インターフェースの表示言語を選択します",msg:{saved:"言語設定を保存しました"}},vendor:{addVendor:"プロバイダーを追加",noVendor:"プロバイダーがありません。先に追加してください",required:"必須",optionalSection:"任意項目",modelSettings:"モデル設定",addManually:"手動追加",test:"テスト",edit:"編集",delete:"削除",deleteVendor:"プロバイダーを削除",editCode:"コードを編集",updateConfig:"設定を更新",addModel:"モデルを追加",editModel:"モデルを編集",displayName:"表示名",displayNamePlaceholder:"例:GPT-4o",modelId:"モデルID",modelIdPlaceholder:"例:gpt-4o",modelType:"モデルタイプ",multimodal:"マルチモーダル",supported:"対応",notSupported:"非対応",toolCall:"ツール呼び出し",imageMode:"画像モード",videoMode:"動画モード",audioOutput:"音声出力",durationResolution:"デュレーション/解像度マッピング",durationSec:"デュレーション(秒)",resolution:"解像度",enterAndPress:"入力してEnterを押す",addDurationResolution:"デュレーションと解像度を追加",testResult:"テスト結果",generating:"生成中...",addVendorDialog:"プロバイダーの追加",codeEditorInfo:"プロバイダー情報の設定にはTypeScriptコードを記述してください",reset:"リセット",importFile:"ファイルをインポート",textModel:"テキストモデル",imageModel:"画像モデル",videoModel:"動画モデル",textToImage:"テキストから画像生成",textToVideo:"テキストから動画生成",singleImage:"単一画像",multiImage:"複数画像モード",multiReference:"複数画像参照",gridImage:"グリッド単一画像",startEndRequired:"開始・終了フレーム(両方必須)",endFrameOptional:"開始・終了フレーム(終了フレームは任意)",startFrameOptional:"開始・終了フレーム(開始フレームは任意)",textRef:"テキスト",imageRef:"画像",videoRef:"動画",audioRef:"音声",audioOptional:"任意",audioOnly:"音声付き動画のみ出力",noAudio:"無音動画のみ出力",msg:{getVendorListFailed:"プロバイダーリストの取得に失敗しました",vendorConfigUpdated:"プロバイダー設定を更新しました",updateFailed:"更新に失敗しました",highRiskConfirm:"⚠️ 高リスク操作の確認",addVendorRiskBody:"新しいAIプロバイダーを追加すると、システムAPIへのアクセス権が付与されます。プロバイダーのコードソースが信頼できるか確認してください!",iKnowRisk:"リスクを承知しました",cancel:"キャンセル",confirmAgain:"⚠️ 再確認",addVendorConfirmBody:"本当にこのプロバイダーを追加しますか?追加後、システムのモデルスケジューリングに組み込まれます。",confirmAndAdd:"確認して追加",goBackCheck:"戻って確認",vendorAdded:"プロバイダーが正常に追加されました",addFailed:"追加に失敗しました",updateVendorRiskBody:"AIプロバイダー設定を更新すると、システムAPIへのアクセス権と動作が変更されます。変更後のコードソースが信頼できるか確認してください!",updateVendorConfirmBody:"本当にこのプロバイダー設定を更新しますか?更新後、システムのモデルスケジューリングに影響します。",confirmAndUpdate:"確認して更新",updateSuccess:"プロバイダー設定の更新に成功しました",fillDisplayName:"表示名を入力してください",fillModelId:"モデルIDを入力してください",selectImageMode:"画像モードを選択してください",selectVideoMode:"動画モードを選択してください",groupPrefix:"第 {n} グループ:",addDuration:"デュレーションを追加してください",addResolution:"解像度を追加してください",selectVendorFirst:"先にプロバイダーを選択してください",modelIdExists:"モデルIDが既に存在します",modelAdded:"モデルが正常に追加されました",modelUpdated:"モデルが正常に更新されました",enterApiKey:"API KEY を入力してください",enterApiUrl:"API URL を入力してください",testSuccess:"テスト成功",imageGenSuccess:"画像の生成に成功しました",videoGenSuccess:"動画の生成に成功しました",requestFailed:"リクエストに失敗しました",deleteModelConfirm:"モデルの削除確認",deleteModelBody:"削除後は元に戻せません。続行しますか?",confirmDelete:"削除を確認",modelDeleted:"モデルを削除しました",deleteVendorConfirm:"プロバイダーの削除確認",deleteVendorBody:"削除すると、このプロバイダーのすべてのモデルも一緒に削除されます。続行しますか?",vendorDeleted:"プロバイダーを削除しました",deleteFailed:"削除に失敗しました",enabled:"有効",disabled:"無効",linkAddVendorRiskBody:"新しい AI ベンダーを追加すると、システム API にアクセスできるようになります。ベンダーのリンク ソースが信頼できることを確認してください。",importAdd:"新しい AI ベンダーを追加すると、システム API にアクセスできるようになります。ベンダーのドキュメント ソースが信頼できることを確認してください。",linkAddFailed:"リンクの追加に失敗しました"},associationSkills:"関連スキル",think:"深い考え",code:"コード",linkAddPlaceholder:"追加するリンクを入力してください",noFileSelected:"ファイルは正常にインポートされました",linkAdd:"確認する"},agent:{bannerDesc:"Toonflow公式中継サイトを使用すると、設定をワンクリックで入力でき、手動設定なしですぐに使用できます。",visitWebsite:"サイトへ移動",fillKey:"KEYを入力",oneClickFill:"ワンクリック入力",notOpen:"未公開",notConfigured:"未設定",modelConfig:"モデル設定",confirm:"確定",cancel:"キャンセル",selectModel:"モデルを選択",fillKeyHeader:"Toonflowプラットフォームの公式KEYを入力",keyPlaceholder:"KEYを入力してください",save:"保存",msg:{notAvailable:"この機能は現在準備中です。ご期待ください",configSuccess:"設定に成功しました",updateConfigFailed:"設定の更新に失敗しました:",keyValid:"KEYが有効です。Toonflowプラットフォームに接続しました",keyInvalid:"KEYが無効です。確認して再入力してください:",enterKey:"KEYを入力してください",saveFailed:"保存に失敗しました:",getAgentListFailed:"Agent設定リストの取得に失敗しました:",toonflowNotFound:"トゥーンフロー公式乗換駅は存在しない"}},memory:{warning:"以下の設定項目には推奨値がプリセットされています。各設定の意味と影響を明確に理解していない限り、現在の設定を維持することをお勧めします。",vectorModelConfig:"ベクトルモデル設定",modelFilePath:"モデルファイルパス",quantizationType:"量子化タイプ",quantizationPlaceholder:"量子化タイプを入力してください",memoryParams:"メモリパラメータ",messagesPerSummary:"メッセージ圧縮トリガー件数",messagesPerSummaryHelp:"直近 N 件の会話コンテキストを保持します。",shortTermLimit:"単発取得の未圧縮メッセージ数",shortTermLimitHelp:"検索時に返される候補メモリの件数です。",summaryMaxLength:"要約最大文字数",summaryMaxLengthHelp:"メッセージ圧縮時に許容される最大文字数です。",summaryLimit:"検索可能な圧縮メッセージ数",summaryLimitHelp:"検索可能な圧縮メッセージの件数です。",ragLimit:"検索メモリ件数",ragLimitHelp:"検索時に取得するメッセージ数です。",deepRetrieveSummaryLimit:"ベクトル検索の圧縮メッセージ数",deepRetrieveSummaryLimitHelp:"圧縮メッセージ内容を検索する際に取得するメッセージ数です。",saveConfig:"設定を保存",clearMemory:"メモリをクリア",restoreDefault:"デフォルトに戻す",msg:{saved:"メモリ設定を保存しました",clearConfirmTitle:"メモリのクリア確認",clearConfirmBody:"AIのグローバルメモリデータがクリアされ、元に戻せなくなります。続行しますか?",confirmClear:"クリアを確認",cancel:"キャンセル",cleared:"メモリをクリアしました",clearFailed:"メモリのクリアに失敗しました"}},login:{username:"ユーザー名",usernamePlaceholder:"ユーザー名を入力してください",password:"パスワード",passwordPlaceholder:"パスワードを入力してください",modify:"変更",msg:{enterUsername:"ユーザー名を入力してください",usernameLength:"ユーザー名は2〜20文字である必要があります",enterPassword:"パスワードを入力してください",passwordLength:"パスワードは6〜20文字である必要があります",fetchFailed:"ユーザー情報の取得に失敗しました",saveSuccess:"保存に成功しました",saveFailed:"保存に失敗しました"}},db:{clearDb:"データベースをクリア",clearDbDesc:"データ構造を保持し、全テーブルのデータをクリアします",clearData:"データをクリア",confirmAction:"操作の確認",msg:{clearDbTitle:"データベースのクリア",firstConfirm:"本当にすべてのテーブルをクリアしますか?クリアしたデータは復元できません!",secondConfirm:"これが最後の確認です。クリアするとすべてのデータが永久に失われます!",keyword:"クリア",confirm:"確定",pleaseInput:"入力してください",cleared:"すべてのテーブルをクリアしました",operationFailed:"操作に失敗しました。再試行してください",cancelled:"操作がキャンセルされました"}},other:{requestTimeout:"リクエストタイムアウト",seconds:"秒",inputSeconds:"秒を入力してください",assetConcurrency:"アセット生成の同時実行数",count:"個",inputCount:"個数を入力してください",chapterRegex:"章分割の正規表現",restoreDefault:"デフォルトに戻す",regexPlaceholder:"正規表現を入力してください",showTitleBar:"タイトルバーを表示する",isElectron:"デスクトップモードに切り替える",canvasScroll:"キャンバススクロール",canvasIsDisabled:"キャンバスのズーム",agentCanvasScalingMethod:"制作ページでの無制限のキャンバス ホイール操作",zoom:"ズーム",scroll:"スクロール",isInteracting:"制作ページでの無制限のキャンバス ドラッグ パフォーマンスの最適化",closeIsInteracting:"閉鎖"},request:{warning:"特別な理由がない限り、変更や設定は不要です",apiAddress:"API アドレス",apiPlaceholder:"API リクエストアドレスを入力してください",save:"保存",reset:"リセット",msg:{enterApi:"API アドレスを入力してください",validUrl:"有効な HTTP/HTTPS アドレスを入力してください",saved:"リクエストアドレスを保存しました",reset:"デフォルトアドレスにリセットしました",refreshFailed:"更新に失敗しました"},refresh:"リフレッシュする"},about:{slogan:"オープンソースのAI主導コミック/絵コンテ制作ツール",latestVersion:"現在は最新バージョンです",checkUpdate:"アップデートの確認",codeRepository:"コードリポジトリ",githubRepo:"GitHub リポジトリ",giteeRepo:"Gitee リポジトリ",versionUpdate:"バージョンアップデート",checkUpdateGithub:"アップデート確認 (GitHub)",getFromGithub:"GitHub Releaseから最新版を取得",checkUpdateGitee:"アップデート確認 (Gitee)",getFromGitee:"Gitee Releaseから最新版を取得",license:"ライセンス",licenseDesc:"オープンソースライセンス・クリックして詳細を確認",updateAvailable:"新しいバージョンが見つかりました",upToDate:"新しいバージョンが検出されました",confirmReinstall:"リンクをコピー",reinstallRequired:"ブラウザが自動的に開いてダウンロードされます。開かない場合は手動で開いてください。"},logout:{warning:"ログアウト後、システムを継続して使用するには再ログインが必要です。",confirmLogout:"本当にログアウトしますか?",logout:"ログアウト",msg:{logoutSuccess:"ログアウトに成功しました",logoutFailed:"ログアウトに失敗しました。再試行してください"}},file:{quickOpen:"ディレクトリをすばやく開く",open:"開く",dockerDesc:"Docker / フロント・バックエンド分離デプロイの場合は、「/data/*」ディレクトリに移動して手動でファイルを管理してください。",desktopOnly:"この機能はデスクトップ版のみ対応しています",folders:{data:"data",dataDesc:"データディレクトリ。",logs:"data/logs",logsDesc:"実行ログとエラーログ。",oss:"data/oss",ossDesc:"ファイルストレージ関連リソース。",skills:"data/skills",skillsDesc:"スキルとプロンプト設定ファイル。",models:"data/models",modelsDesc:"モデルファイルと設定。",web:"data/web",webDesc:"Web関連リソース(フロントエンドビルド成果物など)。",serve:"data/serve",serveDesc:"バックエンドサービス関連ファイル。"},openFailed:"フォルダを開けませんでした"},skill:{scanSkills:"スキャンスキル",fileLost:"ファイルがありません"},dev:{warning:"以下は開発者ツールです。注意して操作してください。",openDevtool:"開ける",devtoolsDoc:"書類のアドレス",devtoolsDesc:"オンにすると、Toonflow のインストール ディレクトリに .devtools フォルダーが作成されます。 Toonflow に書き込み権限があることを確認してください (管理者として実行)。",devtoolsDesc2:"このディレクトリで npx {'@'}ai-sdk/devtools を実行して、テレメトリのデバッグを有効にします",openDevtoolFailed:"開発者ツールを開けませんでした。Toonflow デスクトップがインストールされていることを確認してください",notInElectron:"WEB環境の場合はブラウザコンソールを手動で開いてください"}},cSi={selectProject:"プロジェクトを選択してください",menu:{myProject:"マイプロジェクト",taskCenter:"タスクセンター",novel:"小説の原文",scriptAgent:"シナリオ Agent",scriptManage:"シナリオ管理",cornerScape:"キャラ・背景制作",production:"動画制作",assetCenter:"アセットセンター",settings:"設定",jumpGithub:"Githubにジャンプ",feedbackQuestions:"フィードバックの質問"},project:{title:"マイプロジェクト",subtitle:"すべてのショートドラマプロジェクトを管理します",newProject:"新規プロジェクト",dialog:{editTitle:"プロジェクトの編集",addTitle:"新規プロジェクト",save:"保存",ok:"確定",cancel:"キャンセル",projectType:"プロジェクトタイプ",selectType:"プロジェクトタイプを選択",basedOnNovel:"小説の原文に基づく",projectName:"プロジェクト名",projectNamePh:"プロジェクト名を入力してください",novelType:"小説のジャンル",novelTypePh:"例:ファンタジー、SF、恋愛",artStyle:"ビジュアルマニュアル",selected:"選択済み:",selectArtStyle:"ビジュアルマニュアルを選択してください",newArtStyle:"新しいビジュアルマニュアル",loading:"読み込み中...",videoRatio:"画面アスペクト比",novelIntro:"小説のあらすじ",novelIntroPh:"あらすじを入力してください",editArtStyleTitle:"ビジュアルマニュアルの編集",newArtStyleTitle:"新しいビジュアルマニュアル",artStyleName:"ビジュアルマニュアル名",artStyleNamePh:"ビジュアルマニュアル名を入力してください",artStyleImage:"ビジュアルマニュアルカバー",remove:"削除",uploadCover:"カバーをアップロード",artStylePrompt:"ビジュアルマニュアルのプロンプトワード",aiExtract:"AI プロンプト抽出",promptPlaceholder:"画像生成時にビジュアルマニュアルを指定するために使用されるビジュアルマニュアルプロンプトワードについて説明します。",visualManual:"ビジュアルマニュアル",newVisualManual:"新しいビジュアルマニュアル",editVisualManualTitle:"ビジュアルマニュアルの編集",newVisualManualTitle:"新しいビジュアルマニュアル",visualManualName:"ビジュアルマニュアル名",visualManualNamePh:"ビジュアルマニュアル名を入力してください",visualManualCover:"ビジュアルマニュアルカバー",visualManualPrompt:"ビジュアルマニュアルのプロンプト",modelData:"画像モデルの選択",videoModelData:"ビデオモデルを選択してください",prompt:{placeholder:"プロンプトの単語を入力してください",saveSuccess:"更新に成功しました",title:"即効性のある言葉"},basedOnScript:"脚本に基づいて",mdFile:"ビジュアルマニュアルファイル",directorManual:"ディレクターズハンドブック",addDirectorManual:"新しいディレクターマニュアル",editingDirectorManual:"ディレクターズマニュアルを編集する",newDirecorManualTitle:"新しいディレクターマニュアル",directorManualPrompt:"ディレクターズマニュアル プロンプトワード",directorManualName:"ディレクターズマニュアル名",directorManualNamePh:"ディレクターズマニュアル名を入力してください",directorFile:"ディレクターズマニュアル文書",directorManualCover:"ディレクターズマニュアルの表紙"},msg:{fetchFailed:"プロジェクトリストの取得に失敗しました",notFound:"プロジェクトが見つかりません!",editSuccess:"プロジェクトを編集しました",editFailed:"プロジェクトの編集に失敗しました",addSuccess:"プロジェクトを新規作成しました",addFailed:"プロジェクトの作成に失敗しました",deleteHeader:"プロジェクトの削除",deleteBody:"本当にこのプロジェクトを削除しますか?",deleteConfirm:"削除",deleteCancel:"キャンセル",deleteSuccess:"プロジェクトを削除しました",deleteFailed:"プロジェクトの削除に失敗しました",extractSuccess:"プロンプトの抽出に成功しました",extractFailed:"抽出に失敗しました",enterArtStyleName:"ビジュアルマニュアル名を入力してください",artStyleUpdated:"ビジュアルマニュアルを更新しました",artStyleAdded:"ビジュアルマニュアルを追加しました",operationFailed:"操作に失敗しました",enterVisualManualName:"ビジュアルマニュアル名を入力してください",enterVisualManualImage:"ビジュアルマニュアルのカバー画像をアップロードしてください",enterVisualManualTabData:"プロンプトは空にできません",visualManualUpdated:"ビジュアルマニュアルを更新しました",visualManualAdded:"ビジュアルマニュアルを追加しました",deleteVisualManualHeader:"ビジュアルマニュアルを削除",deleteVisualManualBody:"ビジュアルマニュアル「{name}」を削除してよろしいですか?",deleteVisualManualConfirm:"削除",deleteVisualManualCancel:"キャンセル",enterProjectName:"プロジェクト名を入力してください",enterProjectIntro:"小説の紹介文を入力してください",enterProjectType:"プロジェクトのタイプを入力してください",enterArtStyle:"プロジェクトのビジュアルパンフレットを選択してください",enterVideoRatio:"ビデオ比率を選択してください",enterImageModel:"画像モデルを選択してください",enterVideoModel:"ビデオモデルを選択してください",visualManualDeleted:"正常に削除されました",selectMode:"モードを選択してください",deleteDirectorManualHeader:"ディレクターズマニュアルの削除",deleteDirectorManualBody:"ディレクターズマニュアル「{名前}」を削除してもよろしいですか?",directorManualUpdated:"ディレクターズマニュアルを更新しました",directorManualAdded:"ディレクターズマニュアルを追加しました",directorManual:"プロジェクトディレクターズマニュアルを選択してください"},type:{novel:"原作小説に基づいて",script:"小説の脚本に基づく"}},novel:{importText:"原文をインポート",batchDelete:"一括削除",eventAnalysis:"イベント分析",searchPlaceholder:"原文の名前を検索...",search:"検索",generating:"生成中...",genFailed:"生成失敗",none:"なし",edit:"編集",delete:"削除",col:{id:"No.",reel:"巻",chapter:"章名",chapterData:"章の内容",event:"イベント",operation:"操作"},msg:{batchDeleteHeader:"一括削除",batchDeleteBody:"選択した {count} 件のデータを削除してもよろしいですか?",batchDeleteSuccess:"一括削除に成功しました",deleteHeader:"削除の確認",deleteBody:"章名「{name}」のデータを削除してもよろしいですか?",deleteSuccess:"削除に成功しました",eventAnalysisHeader:"イベント分析",eventAnalysisBody:"選択した {count} 件のデータのイベント分析を実行してもよろしいですか?"},import:{title:"小説の原文をアップロード",step1:"ステップ 1",step2:"ステップ 2",step3:"ステップ 3",dragUpload:"ここに小説ファイルをドラッグ&ドロップするか、クリックしてアップロード",uploadHint:"対応形式: .txt, .docx。ファイルサイズは10MB以下を推奨します",or:"または",pasteLabel:"小説の原文を直接貼り付け",pastePlaceholder:"小説の原文を入力してください",chars:"文字",tooShort:"内容が短すぎます。100文字以上を推奨します",parsedChapters:"{count} 章を解析しました",nextStep:"次へ",prevStep:"戻る",selectedInfo:"選択済み:{count} 文字 (200,000文字以内)",eventAnalysis:"イベント分析",saveAndAnalyze:"原文を保存してイベントを分析",col:{chapter:"章",reel:"巻",chapterName:"章名",chapterData:"章の内容"},msg:{parseFailed:"ファイルの解析に失敗しました。再アップロードしてください",selectFile:"ファイルを選択",docNotSupported:".doc ファイルは解析をサポートしていません。.ts ファイルに変換してください。",unsupportedType:"未対応のファイル形式です",fileTooLarge:"ファイルサイズが10MBを超えています。より小さなファイルをアップロードしてください",selectChapters:"先に章を選択してください",saveSuccess:"小説の原文を保存しました"},importAdd:"ここにファイルをドラッグ アンド ドロップするか、クリックしてアップロードします",limit:".ts形式をサポート"},editDialog:{title:"小説の原文を編集",chapterName:"章名",chapterNamePh:"章名を入力してください",eventContent:"イベント内容",eventContentPh:"イベント内容を入力してください",chapterContent:"章の内容",chapterContentPh:"章の内容を入力してください",cancel:"キャンセル",save:"保存",msg:{updateSuccess:"小説の原文を更新しました"}},event:{regenerate:"イベントを再生成",batchDelete:"一括削除",noData:"イベントデータがありません。生成を開始してください",generate:"イベントを生成",generatingHint:"イベント生成中。しばらくお待ちください...",loading:"読み込み中...",delete:"削除",col:{id:"イベントID",eventName:"イベント名",chapters:"元の章",detail:"イベントのプロセス",createTime:"作成時間",operation:"操作"},msg:{deleteHeader:"イベントの削除",deleteBody:"このイベントを削除してもよろしいですか?",deleteSuccess:"削除に成功しました",generateSuccess:"イベントの生成に成功しました",batchDeleteHeader:"一括削除",batchDeleteBody:"選択した {count} 件のデータを削除してもよろしいですか?",batchDeleteSuccess:"一括削除に成功しました"}},analysis:{analyzeFirst:"先にイベントを分析してください",startAnalysis:"分析を開始",chapterHeader:"第{index}章 - {name}",analyzing:"イベント分析中"}},scriptAgent:{inputPlaceholder:"内容を入力してください",chapterEvents:"章のイベント",clearMessageMemory:"メッセージメモリをクリア",clearSummaryMemory:"要約メモリをクリア",clearAllMemory:"すべてのメモリをクリア",edit:"編集",storySkeleton:"ストーリーの骨格",adaptationStrategy:"脚色戦略",script:"シナリオ",noContent:"コンテンツがありません",relatedAssets:"関連アセット",editScript:"シナリオを編集",save:"保存",scriptTitle:"タイトル",titlePlaceholder:"タイトルを入力してください",content:"内容",contentPlaceholder:"シナリオの内容を入力してください",selectAssets:"アセットを選択",noAssets:"関連アセットがありません",selectAssetsTitle:"関連アセットの選択",welcomeMsg:"こんにちは!Toonflow アシスタントです。シナリオの生成を開始しましょうか?",start:"開始",memoryType:{message:"メッセージメモリ",summary:"要約メモリ",all:"すべてのメモリ"},msg:{clearConfirm:"クリアを確認",clearBody:"{type}をクリアしてもよろしいですか?この操作は取り消せません。",confirmClear:"クリアを確認",cancel:"キャンセル",memoryCleared:"{type}をクリアしました",scriptUpdated:"シナリオの更新に成功しました",scriptUpdateFailed:"シナリオの更新に失敗しました。後で再試行してください",searchScriptFailed:"シナリオの検索に失敗しました",updated:"正常に保存されました",error:"保存に失敗しました",reconnect:"再接続",notReconnect:"再接続の会話が切断されることを確認しますか?",keepReconnect:"確認する",deleteConfirm:"削除確認",deleteBody:"テキストの削除",confirmDelete:"削除の確認",scriptDeleted:"スクリプトが削除されました"},reconnect:"再接続"},cornerScape:{batchSettings:"一括生成設定",quickActions:"クイックコマンド",selectUngenerated:"未生成をすべて選択",selectGenerated:"生成済みをすべて選択",selectFailed:"エラーをすべて選択",invertSelection:"選択を反転",clearSelection:"選択を解除",batchPreview:"画像の一括プレビュー",assetTypeFilter:"アセットタイプで絞り込み",genModel:"生成モデル",resolution:"解像度",resolutionPh:"解像度を選択してください",concurrency:"同時実行数",concurrencyPh:"同時実行数を入力してください",startBatch:"バッチでイメージの生成を開始する",waitingGen:"生成待ち",generating:"生成中",genFailed:"生成失敗",imageError:"画像エラー",typeRole:"キャラクター",typeScene:"シーン",typeTool:"小道具",typeUnknown:"不明",descriptionSuffix:"説明:",operateScriptFirst:"先にシナリオを操作してください",individualConfig:"個別設定",noImage:"画像がありません",promptLabel:"プロンプト",promptPh:"プロンプトを入力してください",aiPolish:"AI で推敲",regenerate:"再生成",filterRole:"人物",filterScene:"シーン",filterTool:"小道具",unnamed:"無名",noDescription:"説明なし",msg:{selectModel:"生成モデルを選択してください",selectResolution:"解像度を選択してください",enterPrompt:"プロンプトを入力してください",enterPromptFirst:"先にプロンプトを入力してください",genSuccess:"{name} の生成に成功しました",genFailed:"{name} の生成に失敗しました",promptGenSuccess:"プロンプトの生成に成功しました",polishFailed:"推敲に失敗しました。再試行してください",selectAtLeastOne:"一括生成するアセットを少なくとも1つ選択してください",batchStarted:"一括生成を開始しました。全 {count} 件、同時実行数 {concurrent}",batchItemFailed:"{name} の生成に失敗しました:{error}",batchComplete:"一括生成が完了しました",batchFailed:"バッチ生成に失敗しました",replaceFailed:"交換に失敗しました",replaceSuccess:"交換に成功しました",promptGenFail:"プロンプト単語の生成に失敗しました",saveSuccess:"プロンプトワードの変更が成功しました",saveFailed:"プロンプトワードの変更に失敗しました"},history:"歴史的な写真",confirmReplace:"交換の確認",batchGenerationPrompt:"プロンプト単語をバッチで生成する",generatingPrompt:"生成中",selectPromptEmpty:"プロンプトの単語が空であることをすべて選択してください",noEmptyPrompt:"空のプロンプトワードを含むアセットはありません",selectedCount:"{count} 個のアセットが選択されました"},script:{searchPlaceholder:"シナリオ名を検索...",search:"検索",addScript:"シナリオを新規作成",cancelSelectAll:"全選択を解除",selectAll:"すべて選択",exportScript:"シナリオをエクスポート",msg:{searchFailed:"シナリオの検索に失敗しました",selectExport:"先にエクスポートするシナリオを選択してください",exportSuccess:"エクスポートに成功しました",exportFailed:"シナリオのエクスポートに失敗しました",deleteHeader:"削除の確認",deleteBody:"このシナリオを削除してもよろしいですか?この操作は取り消せません。",deleteConfirm:"削除",cancel:"キャンセル",deleteSuccess:"削除に成功しました",deleteFailed:"削除に失敗しました",selectDelScript:"スクリプトを削除することを選択してください",batchDeleteHeader:"一括削除",batchDeleteBody:"選択した {count} 件のシナリオを削除してもよろしいですか?この操作は取り消せません。",batchDeleteSuccess:"一括削除に成功しました",extractingInProgress:"抽出中",projectNotFound:"アイテムが見つかりません",selectsExport:"スクリプトをエクスポートすることを選択してください"},add:{title:"シナリオの追加",scriptName:"シナリオ名",scriptNamePh:"シナリオ名を入力してください",uploadFile:"ファイルをアップロード",dragUpload:"ここにシナリオファイルをドラッグ&ドロップするか、クリックしてアップロード",uploadHint:"対応形式: .txt, .docx。ファイルサイズは10MB以下を推奨します",scriptContent:"シナリオ内容",scriptContentPh:"シナリオ内容をアップロードまたは入力してください...",relatedAssets:"関連アセット",selectAssets:"アセットを選択",noAssets:"関連アセットがありません",cancel:"キャンセル",confirm:"確定",msg:{fileReadFailed:"ファイルの読み取りに失敗しました",docNotSupported:".docファイルの解析は未対応です。.txtまたは.docx形式に変換してください",unsupportedType:"未対応のファイル形式です",fileTooLarge:"ファイルサイズが10MBを超えています。より小さなファイルをアップロードしてください",parsing:"ファイルを解析中...",parseFailed:"ファイルの解析に失敗しました。再アップロードしてください",selectAssetsTitle:"関連アセットの選択",enterContent:"シナリオ内容をアップロードまたは入力してください",enterName:"シナリオ名を入力してください",addSuccess:"シナリオを追加しました",addFailed:"シナリオの追加に失敗しました。後で再試行してください"}},edit:{title:"シナリオ詳細",scriptName:"シナリオ名",scriptNamePh:"シナリオ名を入力してください",scriptContent:"シナリオ内容",scriptContentPh:"シナリオ内容を入力してください...",relatedAssets:"関連アセット",selectAssets:"アセットを選択",noAssets:"関連アセットがありません",msg:{selectAssetsTitle:"関連アセットの選択",updateSuccess:"シナリオの更新に成功しました",updateFailed:"シナリオの更新に失敗しました。後で再試行してください"}},deleteScript:"スクリプトを一括で削除する",extractAssets:""},assets:{addPrefix:"追加",batchGenerate:"一括生成",generatePrompt:"プロンプトを生成",generateImage:"画像を生成",batchDelete:"一括削除",searchPlaceholder:"アセット名を検索...",search:"検索",preview:"プレビュー",generate:"生成",edit:"編集",delete:"削除",generating:"生成中",play:"再生",mediaPreview:"メディアプレビュー",confirmBatch:"{type} を確認してください!",model:"モデル",resolution:"解像度",resolutionPh:"解像度を選択してください",batchGenPrompt:"プロンプトの一括生成",batchGenImage:"画像の一括生成",role:"キャラクター",prop:"小道具",scene:"シーン",clip:"素材",uploadSuccess:"アップロードに成功しました",selectAtLeastOne:"アセットを少なくとも1つ選択してください",noDescription:"説明なし",promptGenSuccess:"「{name}」のプロンプト生成に成功しました",promptGenFail:"「{name}」のプロンプト生成に失敗しました:{error}",selectModel:"モデルを選択してください",selectResolution:"解像度を選択してください",noPromptForImage:"「{name}」にはプロンプトがありません。画像を生成できません",imageGenSuccess:"「{name}」の画像生成に成功しました",imageGenFail:"「{name}」の画像生成に失敗しました:{error}",confirmDeleteHeader:"削除の確認",confirmBatchDeleteBody:"これらのアセットを一括削除してもよろしいですか?この操作は取り消せません。",confirmDeleteBody:"このアセットを削除してもよろしいですか?この操作は取り消せません。",deleteBtn:"削除",cancelBtn:"キャンセル",deleteSuccess:"アセットの削除に成功しました",deleteFail:"アセットの削除に失敗しました",colPreview:"プレビュー",colName:"名前",colPrompt:"プロンプト",colDescribe:"説明",colRemark:"備考",colCreateTime:"作成時間",colOperation:"操作",add:{name:"名前",namePh:"名前を入力してください",describe:"説明",describePh:"説明を入力してください",remark:"備考",remarkPh:"備考を入力してください",prompt:"プロンプト",promptPh:"プロンプトを入力してください",nameRequired:"名前を入力してください",describeRequired:"詳細を入力してください",remarkRequired:"備考を入力してください",updateSuccess:"アセットの更新に成功しました",addSuccess:"アセットの追加に成功しました"},gen:{header:"画像の生成",uploadRef:"参照画像をアップロード",optional:"任意",promptLabel:"画像生成プロンプト",smartGenerate:"スマート生成",generatingPrompt:"スマートプロンプトを生成中...",promptPlaceholder:"生成したい画像の内容を記述してください。例:テクノロジー感あふれる未来都市、ネオンの瞬き、サイバーパンクスタイル...",selectModel:"モデルを選択",selectResolution:"解像度を選択",generateBtn:"画像を生成",resultTitle:"生成結果",generatedCount:"{count} 枚生成されました。1枚選択してください",generatingLabel:"生成中...",genFailed:"生成に失敗しました",confirmSelect:"選択を確定",promptSuccess:"プロンプトの生成に成功しました",promptFail:"プロンプトの生成に失敗しました",fillPrompt:"プロンプトを入力してください",pickResolution:"解像度を選択してください",pickModel:"モデルを選択してください",unnamed:"無名",assetGenSuccess:"アセットの生成に成功しました",assetGenFail:"アセットの生成に失敗しました",uploadOk:"アップロードに成功しました",imageSelected:"この画像を選択しました",imageDeleted:"この画像を削除しました",imageSaved:"画像を保存しました",completed:"完了"},batch:{header:"一括生成",selected:"{count} 件選択中",selectAll:"すべて選択",clearSelection:"選択をクリア",inputPh:"内容を入力してください",saveSelected:"選択項目を保存 ({count})",colPreviewImg:"プレビュー画像",selectToSave:"保存する項目を選択してください",saveSuccess:"保存に成功しました",saveFail:"保存に失敗しました。再試行してください",promptDone:"プロンプトの生成が完了しました",promptFail:"プロンプトの生成に失敗しました",missingPrompts:"プロンプトがないアセットが {count} 件あります。先にプロンプトを生成してください",imageDone:"画像の生成が完了しました",imageGenFail:"画像の生成に失敗しました",unknownError:"不明なエラー",promptGenCancelled:"生成がキャンセルされました"}},production:{selectPlaceholder:"エピソードを選択してください",edit:"編集",node:{script:{title:"シナリオ",editDialog:"シナリオの編集"},scriptPlan:{title:"撮影プラン",editDialog:"撮影プランの編集"},storyboard:{title:"絵コンテボード",notGenerated:"未生成",scaleRatio:"ズーム倍率",gridPreview:"グリッドプレビュー",noPreviewImages:"プレビュー可能な画像がありません",imageLoadFailed:"画像の読み込みに失敗しました",promptPlaceholder:"プロンプトの単語を入力してください",prompt:"即効性のある言葉",editInfo:"即時の単語の修正"},storyboardTable:{title:"絵コンテ表",editDialog:"絵コンテ表の編集"},assets:{title:"派生アセット",generateFailed:"生成失敗",notGenerated:"未生成",originalAsset:"元のアセット",derived:"派生",noDerivedAssets:"派生アセットなし"},poster:{title:"動画カバー",coverCount:"{count} 枚"},workbench:{title:"動画ワークベンチ"}},editImage:{upload:"アップロード",generate:"生成",saveFailed:"保存に失敗しました。再試行してください",fetchFailed:"データの取得に失敗しました",generating:"生成中...",deleteNode:"ノードを削除",ratio:"アスペクト比",quality:"画質",generateBtn:"画像を生成",selectImage:"画像を選択",imageGeneration:"画像生成",promptPlaceholder:"生成したい画像を記述してください...",imageRef:"画像{index}",noReferences:"引用可能な参照画像がありません",selectModel:"先にモデルを選択してください",selectQuality:"画質を選択してください",selectRatio:"アスペクト比を選択してください",generateFailed:"生成に失敗しました",generateFirst:"先に画像を生成してください",generatedResult:"生成結果",waitingGenerate:"生成待ち",layoutLR:"自動レイアウト-左右",layoutTB:"自動レイアウト-上下",uploadAssetImage:"アセット画像アップロード",uploadStoryboardImage:"絵コンテ画像アップロード",uploadImage:"アセットイメージのアップロード",mode:"モデル",closeConfirmTitle:"編集パネルを閉じますか?",closeConfirmBody:"保存していないデータは閉じると失われます"},save:"選択",cancel:"キャンセル",chatBox:{inputPlaceholder:"メッセージを入力...",generateDerivedAssets:"派生アセットを生成",welcomeMessage:"こんにちは!AI アシスタントです。何かお手伝いできることはありますか?",adjustModel:"モデルを調整",startMakingVideo:"動画制作を開始",startMakingVideoPrompt:"動画の制作を開始してください",clearMessageMemory:"メッセージメモリをクリア",clearSummaryMemory:"要約メモリをクリア",clearAllMemory:"すべてのメモリをクリア",messageMemory:"メッセージメモリ",summaryMemory:"要約メモリ",allMemory:"すべてのメモリ",confirmClear:"メモリのクリア",confirmClearBody:"{type}をクリアしてもよろしいですか?",confirmClearBtn:"クリアを確定",memoryCleared:"{type}をクリアしました"},wb:{quickPreview:"クイックプレビュー",videoGeneration:"絵コンテ",videoEditing:"編集デスク",hint:"ヒント",extractLines:"動画からセリフを抽出しますか?",no:"いいえ",confirm:"確定",extractLinesQuestion:"字幕用に動画からセリフを抽出しますか?",importingLoading:"インポート中です。しばらくお待ちください...",mainTrackVideo:"メイントラック(動画)",subtitle1:"字幕1",storyboardVideoName:"絵コンテ動画-{storyboard}.mp4"},preview:{noImage:"画像なし",storyboardDesc:"絵コンテの説明",serialNumber:"No.",noDescription:"説明なし",duration:"デュレーション",seconds:"秒",relatedAssets:"関連アセット",role:"キャラクター",prop:"小道具",scene:"シーン",noCharacters:"登場人物なし",imagePrompt:"画像のプロンプト",selectAll:"すべて選択",exportImage:"画像をエクスポート",sceneDescription:"画面の説明",promptLabel:"プロンプト",restoreSort:"並び順をリセット",restoreSortConfirm:"初期の並び順にリセットしてもよろしいですか?",tip:"ヒント",selectAtLeastOne:"エクスポートする絵コンテを少なくとも1つ選択してください",exportFilename:"絵コンテの絵"},generate:{noVideo:"動画なし",videoPrompt:"動画プロンプト",promptPlaceholder:"生成するビデオ コンテンツを説明するプロンプト ワードを入力してください...",refImage:"参照画像",image:"画像",refVideo:"参照動画",refImageLabel:"参照画像",refAudio:"参照音声",muteAudio:"音声をミュート",enableAudio:"音声をオン",resolution:"解像度",duration:"デュレーション",generate:"生成",historyVersions:"履歴バージョン",confirmSelection:"選択を確定",noHistory:"履歴がありません",generating:"生成中",generateFailed:"生成失敗",selectAll:"すべて選択",videoTrack:"ビデオトラック",batchGenerate:"一括生成",importToEditor:"編集エディタにインポート",modeSingleImage:"単一画像",modeMultiImage:"複数画像",modeGridImage:"グリッド複数画像",modeStartEnd:"開始・終了フレーム",modeText:"テキストから動画生成",modeVideoRef:"動画参照",modeImageRef:"画像参照",modeAudioRef:"音声参照",modeTextRef:"テキスト参照",startFrame:"開始フレーム",startFrameOptional:"開始フレーム (任意)",endFrame:"終了フレーム",endFrameOptional:"終了フレーム (任意)",selectRefImage:"参照画像を選択",selectRefImages:"参照画像を選択",selectEndFrame:"終了フレーム画像を選択",selectRefVideoAsset:"参照動画を選択",selectRefAudioAsset:"参照音声を選択",selectRefImageAsset:"参照画像を選択",selectImageSource:"画像ソースを選択",fromStoryboard:"絵コンテ画像",fromStoryboardDesc:"絵コンテリストから画像を選択",fromAssets:"アセット画像",fromAssetsDesc:"アセットライブラリから画像を選択",confirmDelete:"削除の確認",confirmDeleteBody:"この動画を削除してもよろしいですか?この操作は取り消せません。",delete:"削除",cancel:"キャンセル",deleteSuccess:"動画の削除に成功しました",deleteFailed:"削除に失敗しました",selectVideoFirst:"先に動画を1つ選択してください",confirmSuccess:"選択の確定に成功しました",batchSubmitted:"一括生成リクエストを送信しました。処理中です...",configNotFound:"設定が見つかりません",pollingFailed:"ビデオ ステータスのクエリに失敗しました。手動で更新してください",batchGeneratePrompt:"プロンプト単語をバッチで生成する",batchPromptEmpty:"ストーリーボード {name} はビデオ プロンプトで使用できます。最初にプロンプ​​トを作成または入力してください",modelEmpty:"最初にビデオ生成モデルを選択してください",generatingPrompt:"プロンプトワードのインテリジェントな生成"},editVideo:{reset:"リセット",undo:"取り消し",redo:"やり直し",split:"分割",delete:"削除",rendering:"レンダリング中...",exportVideo:"動画をエクスポート",exportSuccess:"動画のエクスポートが完了しました",exportFailed:"エクスポートに失敗しました",sampleSubtitle:"サンプルの字幕テキスト",customText:"カスタムテキスト内容",transitionBetweenClips:"トランジションは2つの隣接するクリップ間に追加する必要があります",transitionExists:"この位置にはすでにトランジションが存在します",videoPreviewArea:"動画プレビューエリア",clipMaterials:"編集素材",propertyPanel:"プロパティパネル",selectClip:"属性を表示するクリップを選択してください",basicInfo:"基本情報",name:"名前",clipNamePlaceholder:"クリップ名",startTime:"開始",endTime:"終了",totalDuration:"合計デュレーション",videoProperties:"動画プロパティ",opacity:"不透明度",volume:"音量",playbackSpeed:"再生速度",audioProperties:"音声プロパティ",fadeIn:"フェードイン",fadeOut:"フェードアウト",transitionProperties:"トランジションプロパティ",transitionType:"トランジションの種類",transFade:"フェード",transSlide:"スライド",transWipe:"ワイプ",transDissolve:"ディゾルブ",transZoom:"ズーム",transRotate:"回転",transitionDuration:"トランジションの長さ",subtitleProperties:"字幕プロパティ",textContent:"テキスト内容",fontSize:"フォントサイズ",copy:"コピー",deleteConfirm:"削除の確認",deleteClipConfirm:"このクリップを削除してもよろしいですか?",avCanvasNotInit:"AVCanvas が初期化されていません",noExportContent:"エクスポートするコンテンツがありません",exportProject:"プロジェクトをエクスポート",transitionAdded:"トランジションを追加しました: {name}",splitClip:"クリップを分割",deleteClip:"クリップを削除",addClip:"{name} を追加",duplicateClip:"クリップを複製",addTransition:"トランジションを追加",updateClip:"クリップ {key} を更新",updatePlaybackRate:"再生速度を {rate}x に更新",updateTransitionDuration:"トランジションの長さを更新",playbackRateRange:"再生速度は 0.1 から 10 の間である必要があります",updatePlaybackRateFailed:"再生速度の更新に失敗しました:",importProject:"プロジェクトをインポート",import:"インポート"},clipType:{video:"動画",audio:"音声",subtitle:"字幕",transition:"トランジション",sticker:"ステッカー",filter:"フィルター",effect:"エフェクト"},track:{video:"動画",image:"画像",audio:"音声",subtitle:"字幕",text:"テキスト",sticker:"ステッカー",filter:"フィルター",effect:"エフェクト"},transition:{fade:"フェード",slide:"スライド",slideLeft:"左へスライド",slideRight:"右へスライド",slideUp:"上へスライド",slideDown:"下へスライド",wipe:"ワイプ",wipeLeft:"左へワイプ",wipeRight:"右へワイプ",wipeUp:"上へワイプ",wipeDown:"下へワイプ",dissolve:"ディゾルブ",zoom:"ズーム",zoomIn:"ズームイン",zoomOut:"ズームアウト",rotate:"回転",circle:"サークル",diamond:"ひし形",clock:"時計",blur:"ブラー"},media:{titleText:"タイトルテキスト",subtitleText:"字幕テキスト",customText:"カスタムテキスト",media:"メディア",image:"画像",audio:"音声",subtitle:"字幕",transition:"トランジション",effect:"エフェクト",filter:"フィルター",loading:"読み込み中...",subtitlePreview:"字",video:"ビデオ"},effect:{fadeIn:"フェードイン",fadeOut:"フェードアウト",flash:"フラッシュ",shake:"シェイク",zoomIn:"ズームイン",zoomOut:"ズームアウト",pulse:"パルス",rotateIn:"回転しながらイン",sticker1:"ステッカー 1",sticker2:"ステッカー 2"},filter:{grayscale:"モノクロ",sepia:"セピア",warm:"ウォーム",cool:"クール",vivid:"ビビッド",bright:"ブライト",highContrast:"ハイコントラスト",blur:"ブラー",invert:"反転",semiTransparent:"半透明"},guideSwitchEpisode:"エピソードを切り替え",guideSwitchEpisodeBody:"エピソードの切り替えはこちらに移動しました",autoLayoutLR:"自動組版 - 左右レイアウト",autoLayoutTB:"自動写植上下レイアウト",getFlowData:"ワークスペースを更新する",confirm:"エピソード切り替え確認",confirmEpisodesSwitch:"現在のタスクはまだ進行中です。エピソードを切り替えるとセッションが再接続されます。切り替えを続けますか?"},task:{title:"タスクリスト",subtitle:"最新のタスク実行履歴",refresh:"更新",categoryLabel:"タスクカテゴリ:",stateLabel:"ステータス:",noFailReason:"失敗理由なし",stateAll:"すべて",stateRunning:"進行中",stateCompleted:"完了",stateFailed:"生成失敗",fetchFailed:"タスクリストの取得に失敗しました",col:{taskClass:"タスクカテゴリ",relatedObjects:"関連オブジェクト",model:"モデル",describe:"説明",state:"ステータス",startTime:"時間",reason:"失敗の理由"},project:"プロジェクト名:"},noVideo:"まだビデオはありません",prompt:"ビデオのプロンプトワード",generateText:"AIが生成したプロンプトワード",selectStoryboard:"ストーリーボードを選択",generate:{noVideo:"まだビデオはありません",generateText:"AIが生成したプロンプトワード",selectStoryboard:"ストーリーボードを選択",generate:"ビデオの生成",history:"歴史的バージョン",generating:"生成中",generateFailed:"失敗",selectAll:"すべて選択",selected:"選択済み",batchGenerateText:"プロンプト単語をバッチで生成する",batchGenerateVideo:"バッチでビデオを生成する",importVideo:"編集デスクにインポートする",emptyTrack:"段落 {インデックス 1}",del:"消去",delConfirm:"この段落を削除してもよろしいですか?",selectSource:"ソースを選択",confirm:"アセットから選択",cancel:"ストーリーボードから選択",selectVideoFailed:"ビデオの選択に失敗しました",selectVideoSuccess:"ビデオの選択が成功しました",selectTrackFirst:"最初にストーリーボードを選択してください",noSelectedVideo:"動画が選択されていません",generateConfirm:"世代の確認",generateConfirmBody:"ビデオの生成を確認します",generateVideosInBatches:"バッチでビデオを生成する",generateStarted:"ビルドの開始",promptEmpty:"ビデオを生成するために必要なデータを確認してください。プロンプトの単語が空です。生成を続けますか?",skipDataWithEmptyVideoPromptWords:"生成する必要があるビデオ データは存在しますが、プロンプト ワードは空です。",duration:"間隔",resolution:"解決",delVideo:"このビデオを削除しますか?",delSuccess:"正常に削除されました",addReference:"参照を追加",promptPlaceholder:"動画のプロンプトワードを入力してください",downloadVideo:"動画をバッチでダウンロードする",selectVideo:"ダウンロードしたい動画にチェックを入れてください"}},dSi={slogan:"ショードラ制作支援ツール",tips:"デフォルトアカウント:admin / admin123",settings:"サーバー設定",requestAddress:"リクエストアドレス",username:"ユーザー名",password:"パスワード",login:"ログイン",usernameRequired:"ユーザー名を入力してください",passwordRequired:"パスワードを入力してください",enterUsernameAndPassword:"ユーザー名またはパスワードを入力してください",loginSuccess:"ログインに成功しました",settingsSaved:"設定を保存しました"},uSi={cancel:"キャンセル",confirm:"確認",selectAssets:"アセットを選択",sessionExpired:"セッションが期限切れです。再度ログインしてください",openSettings:"設定を開く",defaultReel:"本文巻",save:"保存",submitting:"提出する",editSuccess:"変更が成功しました",editFailed:"変更に失敗しました",submit:"提出する"},hSi={prompt:"即効性のある言葉"},fSi={welcomeTitle:"トゥーンフローへようこそ",welcomeDesc:"AI 主導のコミック作成ワークフロー プラットフォーム。1 分ほどかけて初期構成を完了してみましょう。",startConfig:"設定を開始する",skip:"スキップブート",configModel:"モデルサービスの追加",configData:"エージェントの構成",startUse:"始めましょう",configModelTitle:"モデルサービスプロバイダーを追加",configModelDesc:"まず、設定に少なくとも 1 つの AI モデル サービス プロバイダー (OpenAI、Claude など) を追加し、対応する API キーを入力する必要があります。",configModelTip:"下のボタンをクリックすると、設定ページの「モデルサービス」タブが開きます。サプライヤーを追加したら、ここに戻って続行します。",configModelBtn:"モデルサービスの構成に移動します",configAgentTitle:"エージェントモデルの割り当て",configAgentDesc:"次に、エージェント構成内の各機能モジュールにモデルを割り当て、タスクを完了するためにどのモデルを呼び出すべきかをシステムが認識できるようにします。",configAgentTip:"下のボタンをクリックすると、設定ページの「エージェント構成」タブが開きます。各機能にモデルを割り当てた後、ここに戻ります。",configAgentBtn:"エージェントの構成に移動します",finishTitle:"🎉 準備は万端です!",finishDesc:"設定が完了したので、すべての機能を使用できるようになります。調整する必要がある場合は、いつでも設定で変更できます。",qrcodeLabel:"さらに詳しいサポートを得るには、WeChat コミュニケーション グループに参加してください。",githubLabel:"役に立ったと思ったら、⭐スターをお願いします!",prevStep:"前のステップ",nextStep:"次のステップ",finish:"始めましょう"},gSi={skillManagement:{search:"ファイル名を検索する",empty:"一致するファイルがありません",edit:"編集",selectOnTheLeft:"左からファイルを選択してください"}},mSi={assets:{notExist:"アセットが存在しません",notDerivativeExist:"派生資産は存在しません",derivativeUpdateSuccess:"更新に成功しました",derivativeState:"生成されない",derivativeAddSuccess:"正常に追加されました",derivativeDelSuccess:"正常に削除されました",notGenerated:"生成されない"},addSuccess:"更新に成功しました",state:{unused:"生成されない"},saveSuccess:"正常に追加されました"},kSi={generating:"生成中"},vSi={scanning:"🔍 解析と読み込みスキル",scanComplete:"✨ Skill スキャン完了",inserted:"✅ {count} 個のスキルを追加しました",updated:"🔄 {count}個のSkillを更新",removed:"🗑️ {count}個のSkillを削除",scannedFiles:"📁 {count}個のファイルをスキャン",noDescription:"📝 {count}個のSkillに説明がありません",noAttribution:"👤 {count}個のSkillに帰属がありません",configWarning:"⚠️ Skill 設定警告",openSettings:"設定を開く",scanFailed:"❌ スキャン失敗",checkNetwork:"🔌 ネットワーク接続を確認するか、後で再試行してください",retryLater:"🔁 後で再試行してください"},ASi="ビデオの生成",pSi="歴史的バージョン",bSi="生成中",wSi="失敗",OSi="すべて選択",ySi="選択済み",CSi="ビデオをインポートする",_Si="段落 {インデックス 1}",SSi="削除の確認",LSi="この段落を削除してもよろしいですか?",xSi="ソースを選択",ESi="アセットから選択",TSi="ストーリーボードから選択",QSi={newVersion:"新しいバージョンがあります。更新しますか?"},DSi={components:aSi,settings:lSi,workbench:cSi,login:dSi,common:uSi,"components.storyboardImageCheck.camera":"カメラ","components.storyboardImageCheck.dialogTitle":"絵コンテ画像を選択","components.storyboardImageCheck.preview":"プレビュー","components.storyboardImageCheck.src":"プレビュー画像","components.storyboardImageCheck.title":"タイトル","components.storyboardImageCheck.duration":"時間","components.storyboardImageCheck.lines":"セリフ","components.storyboardImageCheck.createTime":"作成日時","workbench.script.extractAssets":"アセットを抽出",promptManage:hSi,hello:fSi,setting:gSi,storyboard:mSi,productionAgent:kSi,skillScan:vSi,generate:ASi,history:pSi,generating:bSi,generateFailed:wSi,selectAll:OSi,selected:ySi,importVideo:CSi,emptyTrack:_Si,del:SSi,delConfirm:LSi,selectSource:xSi,confirm:ESi,cancel:TSi,"workbench.script.msg.exportFailed":"エクスポートに失敗しました","workbench.production.node.assets.confirmDeleteBody":"アセットを削除するかどうかの確認","workbench.production.node.assets.removeFailed":"アセットの削除に失敗しました",version:QSi,"workbench.production.generatedNode.localUpload":"ローカルアップロード","workbench.production.editImage.uploadFailed":"画像のアップロードに失敗しました","workbench.production.editImage.noImage":"まずは写真を追加してください"},BSi={editMdPreivew:{title:"Редактировать",confirm:"Сохранить",cancel:"Отмена"},imageTools:{copy:"Копировать изображение",preview:"Предпросмотр",download:"Скачать",msg:{imageLoadFailed:"Не удалось загрузить изображение",convertFailed:"Ошибка конвертации",copied:"Скопировано в буфер обмена",copyFailed:"Ошибка копирования",downloadFailed:"Ошибка скачивания",downloadStarted:"Скачивание началось",downloadBlockedOpenNewWindow:"Текущий источник изображения может ограничивать скачивание, предпринята попытка открыть в новом окне"}},migrateShow:{title:"Перенос данных",desc:"Обнаружены данные старой версии. Выполнить перенос?",hide:"Больше не показывать",confirm:"ОК",msg:{migrateSuccess:"Данные успешно перенесены",migrateFailed:"Ошибка переноса данных"}},modelSelect:{placeholder:"Пожалуйста, выберите модель",type:{image:"Изображение",text:"Текст",video:"Видео"},msg:{fetchModelFailed:"Не удалось получить данные модели:"},goSetting:"Зайди в настройки и добавь модель."}},RSi={title:"Настройки ToonFlow",menu:{language:"Язык",vendorConfig:"Поставщики моделей",agentConfig:"Настройки Agent",promptManage:"Управление подсказками",skillManagement:"Управление навыками",memoryConfig:"Память Agent",loginConfig:"Настройки входа",dbConfig:"База данных",fileManagement:"Управление файлами",otherConfig:"Другие настройки",requestConfig:"URL запросов",about:"Проверить обновления",logoutConfig:"Выйти",skillsSkillsManagement:"НавыкиУправление навыками"},language:{desc:"Выберите язык интерфейса",msg:{saved:"Языковые настройки сохранены"}},vendor:{addVendor:"Добавить поставщика",noVendor:"Нет поставщиков. Пожалуйста, добавьте.",required:"Обязательно",optionalSection:"Необязательно",modelSettings:"Настройки модели",addManually:"Добавить вручную",test:"Тест",edit:"Редактировать",delete:"Удалить",deleteVendor:"Удалить поставщика",editCode:"Редактировать код",updateConfig:"Обновить конфигурацию",addModel:"Добавить модель",editModel:"Редактировать модель",displayName:"Отображаемое имя",displayNamePlaceholder:"Например: GPT-4o",modelId:"ID модели",modelIdPlaceholder:"Например: gpt-4o",modelType:"Тип модели",multimodal:"Мультимодальная",supported:"Поддерживается",notSupported:"Не поддерживается",toolCall:"Вызов инструментов",imageMode:"Режим изображения",videoMode:"Режим видео",audioOutput:"Аудиовыход",durationResolution:"Длительность / Разрешение",durationSec:"Длительность (сек)",resolution:"Разрешение",enterAndPress:"Введите и нажмите Enter",addDurationResolution:"Добавить длительность / разрешение",testResult:"Результаты теста",generating:"Генерация...",addVendorDialog:"Добавление поставщика",codeEditorInfo:"Пожалуйста, напишите код на TypeScript для конфигурации поставщика",reset:"Сброс",importFile:"Импорт файла",textModel:"Текстовая модель",imageModel:"Модель изображений",videoModel:"Видеомодель",textToImage:"Текст в изображение",textToVideo:"Текст в видео",singleImage:"Одно изображение",multiImage:"Много изображений",multiReference:"Множественный референс",gridImage:"Сетка изображений",startEndRequired:"Первый и последний кадры (Оба обязательны)",endFrameOptional:"Первый и последний кадры (Последний необязателен)",startFrameOptional:"Первый и последний кадры (Первый необязателен)",textRef:"Текст",imageRef:"Изображение",videoRef:"Видео",audioRef:"Аудио",audioOptional:"Необязательно",audioOnly:"Только видео со звуком",noAudio:"Только видео без звука",msg:{getVendorListFailed:"Не удалось получить список поставщиков",vendorConfigUpdated:"Конфигурация поставщика обновлена",updateFailed:"Ошибка обновления",highRiskConfirm:"⚠️ Подтверждение опасной операции",addVendorRiskBody:"Добавление нового поставщика ИИ даст ему доступ к API системы. Убедитесь, что вы доверяете исходному коду этого поставщика!",iKnowRisk:"Я осознаю риски",cancel:"Отмена",confirmAgain:"⚠️ Повторное подтверждение",addVendorConfirmBody:"Вы уверены, что хотите добавить этого поставщика? Он будет включен в системное планирование моделей.",confirmAndAdd:"Подтвердить и добавить",goBackCheck:"Вернуться и проверить",vendorAdded:"Поставщик успешно добавлен",addFailed:"Ошибка добавления",updateVendorRiskBody:"Обновление конфигурации поставщика ИИ изменит его доступ к API системы и поведение. Убедитесь, что вы доверяете измененному коду!",updateVendorConfirmBody:"Вы уверены, что хотите обновить конфигурацию этого поставщика? Это повлияет на системное планирование моделей.",confirmAndUpdate:"Подтвердить и обновить",updateSuccess:"Конфигурация поставщика успешно обновлена",fillDisplayName:"Пожалуйста, введите отображаемое имя",fillModelId:"Пожалуйста, введите ID модели",selectImageMode:"Пожалуйста, выберите режим изображения",selectVideoMode:"Пожалуйста, выберите режим видео",groupPrefix:"Группа {n}: ",addDuration:"Пожалуйста, добавьте длительность",addResolution:"Пожалуйста, добавьте разрешение",selectVendorFirst:"Пожалуйста, сначала выберите поставщика",modelIdExists:"ID модели уже существует",modelAdded:"Модель успешно добавлена",modelUpdated:"Модель успешно обновлена",enterApiKey:"Пожалуйста, введите API KEY",enterApiUrl:"Пожалуйста, введите API URL",testSuccess:"Тест пройден",imageGenSuccess:"Изображение успешно сгенерировано",videoGenSuccess:"Видео успешно сгенерировано",requestFailed:"Ошибка запроса",deleteModelConfirm:"Подтверждение удаления модели",deleteModelBody:"Это действие необратимо. Продолжить?",confirmDelete:"Удалить",modelDeleted:"Модель удалена",deleteVendorConfirm:"Подтверждение удаления поставщика",deleteVendorBody:"Удаление поставщика также удалит все связанные с ним модели. Продолжить?",vendorDeleted:"Поставщик удален",deleteFailed:"Ошибка удаления",enabled:"Включено",disabled:"Неполноценный",linkAddVendorRiskBody:"Добавление нового поставщика ИИ предоставит ему доступ к системному API. Убедитесь, что вы доверяете источнику ссылок поставщика!",importAdd:"Добавление нового поставщика ИИ предоставит ему доступ к системному API. Убедитесь, что вы доверяете источнику документации поставщика!",linkAddFailed:"Не удалось добавить ссылку"},associationSkills:"Сопутствующие навыки",think:"глубокое мышление",code:"код",linkAddPlaceholder:"Введите ссылку для добавления",noFileSelected:"Файл успешно импортирован",linkAdd:"подтверждать"},agent:{bannerDesc:"Используйте официальный прокси-сервер Toonflow для конфигурации в один клик. Готово к использованию без ручной настройки.",visitWebsite:"Перейти на сайт",fillKey:"Введите KEY",oneClickFill:"Вставить в 1 клик",notOpen:"Недоступно",notConfigured:"Не настроено",modelConfig:"Настройки модели",confirm:"ОК",cancel:"Отмена",selectModel:"Выберите модель",fillKeyHeader:"Введите официальный KEY платформы Toonflow",keyPlaceholder:"Пожалуйста, введите KEY",save:"Сохранить",msg:{notAvailable:"Эта функция пока недоступна. Следите за обновлениями!",configSuccess:"Успешно настроено",updateConfigFailed:"Ошибка обновления конфигурации: ",keyValid:"KEY действителен. Успешное подключение к платформе Toonflow",keyInvalid:"KEY недействителен. Пожалуйста, проверьте и введите снова: ",enterKey:"Пожалуйста, введите KEY",saveFailed:"Ошибка сохранения: ",getAgentListFailed:"Не удалось получить список конфигураций Agent: "}},memory:{warning:"Следующие параметры предварительно настроены на рекомендуемые значения. Не изменяйте их, если не понимаете их значения и влияния.",vectorModelConfig:"Настройки векторной модели",modelFilePath:"Путь к файлу модели",quantizationType:"Тип квантования",quantizationPlaceholder:"Введите тип квантования",memoryParams:"Параметры памяти",messagesPerSummary:"Сообщений для запуска сжатия",messagesPerSummaryHelp:"Сохраняет контекст последних N сообщений.",shortTermLimit:"Лимит кратковременной памяти",shortTermLimitHelp:"Количество кандидатов памяти, возвращаемых при поиске.",summaryMaxLength:"Макс. длина сжатия",summaryMaxLengthHelp:"Максимальное количество символов при сжатии сообщений.",summaryLimit:"Лимит запросов сжатых сообщений",summaryLimitHelp:"Разрешенное количество сжатых сообщений для запроса.",ragLimit:"Лимит поиска RAG",ragLimitHelp:"Количество сообщений, извлекаемых при поиске.",deepRetrieveSummaryLimit:"Лимит извлечения векторов сжатия",deepRetrieveSummaryLimitHelp:"Количество сообщений, получаемых при поиске содержимого сжатых сообщений.",saveConfig:"Сохранить",clearMemory:"Очистить память",restoreDefault:"По умолчанию",msg:{saved:"Настройки памяти сохранены",clearConfirmTitle:"Подтверждение очистки",clearConfirmBody:"Это удалит глобальные данные памяти ИИ без возможности восстановления. Продолжить?",confirmClear:"Очистить",cancel:"Отмена",cleared:"Память очищена",clearFailed:"Не удалось очистить память"}},login:{username:"Имя пользователя",usernamePlaceholder:"Введите имя пользователя",password:"Пароль",passwordPlaceholder:"Введите пароль",modify:"Изменить",msg:{enterUsername:"Пожалуйста, введите имя пользователя",usernameLength:"Имя пользователя должно содержать 2-20 символов",enterPassword:"Пожалуйста, введите пароль",passwordLength:"Пароль должен содержать 6-20 символов",fetchFailed:"Не удалось получить информацию о пользователе",saveSuccess:"Успешно сохранено",saveFailed:"Ошибка сохранения"}},db:{clearDb:"Очистить базу данных",clearDbDesc:"Очистить данные во всех таблицах, сохранив их структуру",clearData:"Очистить данные",confirmAction:"Подтверждение",msg:{clearDbTitle:"Очистка базы данных",firstConfirm:"Вы уверены, что хотите очистить все таблицы? Данные нельзя будет восстановить!",secondConfirm:"Это последнее предупреждение. Все данные будут потеряны навсегда!",keyword:"Очистить",confirm:"Подтвердить",pleaseInput:"Пожалуйста, введите",cleared:"Все таблицы очищены",operationFailed:"Ошибка операции, попробуйте снова",cancelled:"Операция отменена"}},other:{requestTimeout:"Тайм-аут запроса",seconds:"Сек",inputSeconds:"Введите секунды",assetConcurrency:"Параллельная генерация ассетов",count:"Шт",inputCount:"Введите количество",chapterRegex:"Регулярное выражение для разбивки на главы",restoreDefault:"По умолчанию",regexPlaceholder:"Введите регулярное выражение",showTitleBar:"показать строку заголовка",isElectron:"Переключиться в режим рабочего стола",canvasScroll:"Прокрутка холста",canvasIsDisabled:"Масштабирование холста",agentCanvasScalingMethod:"Неограниченное использование колеса холста на рабочей странице",zoom:"Увеличить",scroll:"прокрутка",isInteracting:"Неограниченная оптимизация производительности перетаскивания холста на рабочей странице",closeIsInteracting:"закрытие"},request:{warning:"Не изменяйте без крайней необходимости",apiAddress:"URL API",apiPlaceholder:"Введите URL-адрес запроса API",save:"Сохранить",reset:"Сброс",msg:{enterApi:"Пожалуйста, введите URL API",validUrl:"Пожалуйста, введите действительный HTTP/HTTPS адрес",saved:"URL запроса успешно сохранен",reset:"Сброшено на адрес по умолчанию",refreshFailed:"Обновить не удалось",refreshSuccess:"Обновить успешно"},refresh:"обновить"},about:{slogan:"Опенсорсный ИИ-инструмент для создания комиксов и раскадровок",latestVersion:"У вас установлена последняя версия",checkUpdate:"Проверить обновления",codeRepository:"Репозиторий кода",githubRepo:"Репозиторий GitHub",giteeRepo:"Репозиторий Gitee",versionUpdate:"Обновление версии",checkUpdateGithub:"Проверить (GitHub)",getFromGithub:"Скачать последний релиз с GitHub",checkUpdateGitee:"Проверить (Gitee)",getFromGitee:"Скачать последний релиз с Gitee",license:"Лицензия",licenseDesc:"Лицензионное соглашение · Нажмите для подробностей",updateAvailable:"найдена новая версия",upToDate:"Обнаружена новая версия",confirmReinstall:"Скопировать ссылку",reinstallRequired:"Браузер автоматически откроется и загрузится. Если он не открывается, пожалуйста, откройте его вручную."},logout:{warning:"После выхода вам нужно будет снова войти в систему.",confirmLogout:"Вы уверены, что хотите выйти?",logout:"Выйти",msg:{logoutSuccess:"Успешный выход",logoutFailed:"Ошибка выхода, попробуйте снова"}},file:{quickOpen:"Быстро открыть каталог",open:"Открыть",dockerDesc:'Для Docker/раздельного развертывания перейдите в каталог "/data/*" для управления файлами.',desktopOnly:"Эта функция доступна только в десктопной версии",folders:{data:"data",dataDesc:"Каталог данных.",logs:"data/logs",logsDesc:"Журналы выполнения и ошибок.",oss:"data/oss",ossDesc:"Ресурсы файлового хранилища.",skills:"data/skills",skillsDesc:"Файлы конфигурации навыков и промптов.",models:"data/models",modelsDesc:"Файлы моделей и конфигурации.",web:"data/web",webDesc:"Веб-ресурсы, например, сборка фронтенда.",serve:"data/serve",serveDesc:"Файлы бэкенд-сервисов."},openFailed:"Не удалось открыть папку"},skill:{scanSkills:"ScanSkills",fileLost:"Файл отсутствует"},dev:{warning:"Ниже приведены инструменты разработчика, будьте осторожны!",openDevtool:"Открыть",devtoolsDoc:"Адрес документа",devtoolsDesc:"После включения в каталоге установки Toonflow будет создана папка .devtools. Убедитесь, что у Toonflow есть права на запись (запуск от имени администратора).",devtoolsDesc2:"Запустите npx {'@'}ai-sdk/devtools в этом каталоге, чтобы включить отладку телеметрии.",openDevtoolFailed:"Не удалось открыть инструменты разработчика. Убедитесь, что установлен рабочий стол Toonflow.",notInElectron:"Для веб-среды откройте консоль браузера вручную."}},ISi={selectProject:"Пожалуйста, выберите проект",menu:{myProject:"Мои проекты",taskCenter:"Центр задач",novel:"Текст романа",scriptAgent:"Сценарий Agent",scriptManage:"Управление сценариями",cornerScape:"Персонажи и сцены",production:"Создание видео",assetCenter:"Центр ассетов",settings:"Настройки",jumpGithub:"Перейти на Гитхаб",feedbackQuestions:"Вопрос обратной связи"},project:{title:"Мои проекты",subtitle:"Управление всеми проектами коротких драм",newProject:"Новый проект",dialog:{editTitle:"Редактировать проект",addTitle:"Новый проект",save:"Сохранить",ok:"ОК",cancel:"Отмена",projectType:"Тип проекта",selectType:"Выберите тип",basedOnNovel:"На основе текста романа",projectName:"Название проекта",projectNamePh:"Введите название проекта",novelType:"Жанр романа",novelTypePh:"Например: Фэнтези, Фантастика, Романтика",artStyle:"Визуальное руководство",selected:"Выбрано:",selectArtStyle:"Пожалуйста, выберите визуальное руководство",newArtStyle:"Новое визуальное руководство",loading:"Загрузка...",videoRatio:"Соотношение сторон",novelIntro:"Синопсис романа",novelIntroPh:"Введите синопсис романа",editArtStyleTitle:"Редактировать визуальное руководство",newArtStyleTitle:"Новое визуальное руководство",artStyleName:"Визуальное название руководства",artStyleNamePh:"Пожалуйста, введите название визуального руководства",artStyleImage:"Обложка визуального руководства",remove:"Удалить",uploadCover:"Загрузить обложку",artStylePrompt:"Слова подсказки визуального руководства",aiExtract:"Извлечь промпт (ИИ)",promptPlaceholder:"Описывает слово-подсказку визуального руководства, используемое для указания визуального руководства при создании изображений.",visualManual:"Визуальное руководство",newVisualManual:"Новое визуальное руководство",editVisualManualTitle:"Редактировать визуальное руководство",newVisualManualTitle:"Новое визуальное руководство",visualManualName:"Название визуального руководства",visualManualNamePh:"Пожалуйста, введите название визуального руководства",visualManualCover:"Обложка визуального руководства",visualManualPrompt:"Промпт визуального руководства",modelData:"Выберите модель изображения",videoModelData:"Выберите модель видео",prompt:{placeholder:"Введите слово-подсказку",saveSuccess:"Обновление успешно выполнено",title:"подсказать слово"},basedOnScript:"на основе сценария",mdFile:"визуальный файл руководства",directorManual:"Справочник директора",addDirectorManual:"Новое руководство директора",editingDirectorManual:"Редактировать Руководство режиссера",newDirecorManualTitle:"Новое руководство директора",directorManualPrompt:"Слова-подсказки в руководстве режиссера",directorManualName:"Название руководства режиссера",directorManualNamePh:"Введите название руководства режиссера",directorFile:"Документ «Руководство директора»",directorManualCover:"Обложка руководства режиссера"},msg:{fetchFailed:"Не удалось получить список проектов",notFound:"Проект не найден!",editSuccess:"Проект успешно отредактирован",editFailed:"Ошибка редактирования проекта",addSuccess:"Проект успешно создан",addFailed:"Ошибка создания проекта",deleteHeader:"Удалить проект",deleteBody:"Вы уверены, что хотите удалить этот проект?",deleteConfirm:"Удалить",deleteCancel:"Отмена",deleteSuccess:"Проект успешно удален",deleteFailed:"Ошибка удаления проекта",extractSuccess:"Промпт успешно извлечен",extractFailed:"Ошибка извлечения",enterArtStyleName:"Пожалуйста, введите название визуального руководства",artStyleUpdated:"Обновлено визуальное руководство",artStyleAdded:"Добавлен визуальный мануал",operationFailed:"Ошибка операции",enterVisualManualName:"Пожалуйста, введите название визуального руководства",enterVisualManualImage:"Пожалуйста, загрузите обложку визуального руководства",enterVisualManualTabData:"Промпт не может быть пустым",visualManualUpdated:"Визуальное руководство обновлено",visualManualAdded:"Визуальное руководство добавлено",deleteVisualManualHeader:"Удалить визуальное руководство",deleteVisualManualBody:'Вы уверены, что хотите удалить визуальное руководство "{name}"?',deleteVisualManualConfirm:"Удалить",deleteVisualManualCancel:"Отмена",enterProjectName:"Пожалуйста, введите название проекта",enterProjectIntro:"Пожалуйста, введите вступление к роману",enterProjectType:"Пожалуйста, введите тип проекта",enterArtStyle:"Пожалуйста, выберите визуальную брошюру проекта",enterVideoRatio:"Пожалуйста, выберите соотношение видео",enterImageModel:"Пожалуйста, выберите модель изображения",enterVideoModel:"Пожалуйста, выберите модель видео",visualManualDeleted:"Удалить успешно",selectMode:"Пожалуйста, выберите режим",deleteDirectorManualHeader:"Удалить руководство режиссера",deleteDirectorManualBody:"Вы уверены, что хотите удалить Руководство режиссёра «{name}»?",directorManualUpdated:"Обновлено Руководство директора",directorManualAdded:"Добавлено Руководство режиссера",directorManual:"Пожалуйста, выберите Руководство для директора проекта"},type:{novel:"По мотивам оригинального романа",script:"По новому сценарию"}},novel:{importText:"Импорт текста",batchDelete:"Пакетное удаление",eventAnalysis:"Анализ событий",searchPlaceholder:"Поиск по названию...",search:"Поиск",generating:"Генерация...",genFailed:"Ошибка генерации",none:"Нет",edit:"Редактировать",delete:"Удалить",col:{id:"№",reel:"Том",chapter:"Название главы",chapterData:"Содержимое главы",event:"Событие",operation:"Действие"},msg:{batchDeleteHeader:"Пакетное удаление",batchDeleteBody:"Вы уверены, что хотите удалить выбранные {count} элементов?",batchDeleteSuccess:"Пакетное удаление завершено",deleteHeader:"Подтверждение удаления",deleteBody:"Удалить главу под названием «{name}»?",deleteSuccess:"Успешно удалено",eventAnalysisHeader:"Анализ событий",eventAnalysisBody:"Выполнить анализ событий для выбранных {count} элементов?"},import:{title:"Загрузить текст романа",step1:"Шаг 1",step2:"Шаг 2",step3:"Шаг 3",dragUpload:"Перетащите файл с романом сюда или нажмите для загрузки",uploadHint:"Поддерживаются форматы .txt, .docx. Рекомендуемый размер файла до 10 МБ",or:"ИЛИ",pasteLabel:"Вставить текст напрямую",pastePlaceholder:"Вставьте текст романа сюда",chars:"симв.",tooShort:"Слишком короткий текст, рекомендуется не менее 100 символов",parsedChapters:"Распознано {count} глав",nextStep:"Далее",prevStep:"Назад",selectedInfo:"Выбрано: {count} симв. (Максимум 200 000)",eventAnalysis:"Анализ событий",saveAndAnalyze:"Сохранить текст и анализировать",col:{chapter:"Глава",reel:"Том",chapterName:"Название главы",chapterData:"Содержимое главы"},msg:{parseFailed:"Не удалось распознать файл. Загрузите заново",selectFile:"Выберите файл",docNotSupported:"Файлы .doc не поддерживают синтаксический анализ, конвертируйте их в файлы .ts.",unsupportedType:"Неподдерживаемый тип файла",fileTooLarge:"Файл больше 10 МБ. Загрузите файл меньшего размера",selectChapters:"Сначала выберите главы",saveSuccess:"Текст романа успешно сохранен"},importAdd:"Перетащите файлы сюда или нажмите, чтобы загрузить",limit:"Поддержка формата .ts"},editDialog:{title:"Редактировать текст романа",chapterName:"Название главы",chapterNamePh:"Введите название главы",eventContent:"Содержание события",eventContentPh:"Введите содержание события",chapterContent:"Содержимое главы",chapterContentPh:"Введите содержимое главы",cancel:"Отмена",save:"Сохранить",msg:{updateSuccess:"Текст романа успешно обновлен"}},event:{regenerate:"Перегенерировать события",batchDelete:"Пакетное удаление",noData:"Нет данных о событиях. Нажмите, чтобы начать генерацию",generate:"Сгенерировать события",generatingHint:"Генерация событий, пожалуйста, подождите...",loading:"Загрузка...",delete:"Удалить",col:{id:"ID события",eventName:"Название события",chapters:"Исходная глава",detail:"Детали события",createTime:"Время создания",operation:"Действие"},msg:{deleteHeader:"Удалить событие",deleteBody:"Вы уверены, что хотите удалить это событие?",deleteSuccess:"Успешно удалено",generateSuccess:"События успешно сгенерированы",batchDeleteHeader:"Пакетное удаление",batchDeleteBody:"Вы уверены, что хотите удалить выбранные {count} элементов?",batchDeleteSuccess:"Пакетное удаление завершено"}},analysis:{analyzeFirst:"Пожалуйста, сначала проанализируйте события",startAnalysis:"Начать анализ",chapterHeader:"Глава {index} - {name}",analyzing:"Анализ событий"}},scriptAgent:{inputPlaceholder:"Введите текст",chapterEvents:"События главы",clearMessageMemory:"Очистить память сообщений",clearSummaryMemory:"Очистить память сжатий",clearAllMemory:"Очистить всю память",edit:"Редактировать",storySkeleton:"Скелет истории",adaptationStrategy:"Стратегия адаптации",script:"Сценарий",noContent:"Нет содержимого",relatedAssets:"Связанные ассеты",editScript:"Редактировать сценарий",save:"Сохранить",scriptTitle:"Заголовок",titlePlaceholder:"Введите заголовок",content:"Содержимое",contentPlaceholder:"Введите текст сценария",selectAssets:"Выбрать ассеты",noAssets:"Нет связанных ассетов",selectAssetsTitle:"Выбор связанных ассетов",welcomeMsg:"Привет! Я ИИ-ассистент Toonflow. Хотите, чтобы я начал генерировать сценарий?",start:"Начать",memoryType:{message:"Память сообщений",summary:"Память сжатий",all:"Вся память"},msg:{clearConfirm:"Подтверждение очистки",clearBody:"Вы уверены, что хотите очистить {type}? Это действие необратимо.",confirmClear:"Очистить",cancel:"Отмена",memoryCleared:"{type} очищена",scriptUpdated:"Сценарий успешно обновлен",scriptUpdateFailed:"Не удалось обновить сценарий, попробуйте позже",searchScriptFailed:"Не удалось найти сценарии",updated:"Сохранено успешно.",error:"Сохранить не удалось",reconnect:"Восстановить соединение",notReconnect:"Подтвердить, что разговор при повторном подключении будет прерван?",keepReconnect:"подтверждать",deleteConfirm:"Удалить подтверждение",deleteBody:"Удалить текст",confirmDelete:"Подтвердить удаление",scriptDeleted:"Скрипт удален."},reconnect:"Восстановить соединение"},cornerScape:{batchSettings:"Пакетные настройки",quickActions:"Быстрые команды",selectUngenerated:"Выбрать несгенерированные",selectGenerated:"Выбрать сгенерированные",selectFailed:"Выбрать с ошибками",invertSelection:"Инвертировать выбор",clearSelection:"Снять выделение",batchPreview:"Пакетный предпросмотр",assetTypeFilter:"Фильтр по типу",genModel:"Модель генерации",resolution:"Разрешение",resolutionPh:"Выберите разрешение",concurrency:"Потоки",concurrencyPh:"Введите количество потоков",startBatch:"Начните генерировать изображения в пакетном режиме",waitingGen:"В очереди",generating:"Генерация",genFailed:"Ошибка генерации",imageError:"Ошибка изображения",typeRole:"Персонаж",typeScene:"Сцена",typeTool:"Предмет",typeUnknown:"Неизвестно",descriptionSuffix:"Описание: ",operateScriptFirst:"Пожалуйста, сначала обработайте сценарий",individualConfig:"Индивидуальные настройки",noImage:"Нет изображения",promptLabel:"Промпт",promptPh:"Введите промпт",aiPolish:"Улучшить с ИИ",regenerate:"Перегенерировать",filterRole:"Персонаж",filterScene:"Сцена",filterTool:"Предмет",unnamed:"Без имени",noDescription:"Нет описания",msg:{selectModel:"Выберите модель для генерации",selectResolution:"Выберите разрешение",enterPrompt:"Введите промпт",enterPromptFirst:"Сначала введите промпт",genSuccess:"{name} успешно сгенерирован",genFailed:"Ошибка генерации {name}",promptGenSuccess:"Промпт успешно сгенерирован",polishFailed:"Не удалось улучшить, попробуйте снова",selectAtLeastOne:"Выберите хотя бы один ассет для пакетной генерации",batchStarted:"Начата пакетная генерация. Всего: {count}, Потоков: {concurrent}",batchItemFailed:"Ошибка генерации {name}: {error}",batchComplete:"Пакетная генерация завершена",batchFailed:"Генерация пакета не удалась",replaceFailed:"Замена не удалась",replaceSuccess:"Замена прошла успешно",promptGenFail:"Не удалось создать быстрое слово.",saveSuccess:"Изменение слова подсказки успешно выполнено",saveFailed:"Изменение слова подсказки не удалось"},history:"исторические фотографии",confirmReplace:"Подтвердить замену",batchGenerationPrompt:"Генерируйте подсказки в пакетном режиме",generatingPrompt:"Создание",selectPromptEmpty:"Выбрать все подсказки. Слово пусто.",noEmptyPrompt:"Нет ресурсов с пустым словом-подсказкой.",selectedCount:"Выбрано {count} объектов"},script:{searchPlaceholder:"Поиск по названию сценария...",search:"Поиск",addScript:"Новый сценарий",cancelSelectAll:"Снять выбор со всех",selectAll:"Выбрать все",exportScript:"Экспорт сценария",msg:{searchFailed:"Не удалось найти сценарии",selectExport:"Сначала выберите сценарий для экспорта",exportSuccess:"Экспорт завершен",exportFailed:"Ошибка экспорта сценария",deleteHeader:"Подтверждение удаления",deleteBody:"Вы уверены, что хотите удалить этот сценарий? Это действие необратимо.",deleteConfirm:"Удалить",cancel:"Отмена",deleteSuccess:"Успешно удалено",deleteFailed:"Ошибка удаления",selectDelScript:"Пожалуйста, выберите удаление сценария",batchDeleteHeader:"Массовое удаление",batchDeleteBody:"Вы уверены, что хотите удалить выбранные {count} сценариев? Это действие необратимо.",batchDeleteSuccess:"Массовое удаление выполнено успешно",extractingInProgress:"Извлечение",projectNotFound:"Товар не найден",selectsExport:"Пожалуйста, выберите экспорт скрипта"},add:{title:"Добавить сценарий",scriptName:"Название сценария",scriptNamePh:"Введите название сценария",uploadFile:"Загрузить файл",dragUpload:"Перетащите файл сценария сюда или нажмите для загрузки",uploadHint:"Поддерживаются форматы .txt, .docx. Рекомендуемый размер файла до 10 МБ",scriptContent:"Текст сценария",scriptContentPh:"Загрузите или введите текст сценария...",relatedAssets:"Связанные ассеты",selectAssets:"Выбрать ассеты",noAssets:"Нет связанных ассетов",cancel:"Отмена",confirm:"ОК",msg:{fileReadFailed:"Ошибка чтения файла",docNotSupported:"Формат .doc не поддерживается. Конвертируйте в .txt или .docx",unsupportedType:"Неподдерживаемый тип файла",fileTooLarge:"Файл больше 10 МБ. Загрузите файл меньшего размера",parsing:"Распознавание файла...",parseFailed:"Не удалось распознать файл. Загрузите заново",selectAssetsTitle:"Выбор связанных ассетов",enterContent:"Пожалуйста, загрузите или введите текст сценария",enterName:"Пожалуйста, введите название сценария",addSuccess:"Сценарий успешно добавлен",addFailed:"Не удалось добавить сценарий, попробуйте позже"}},edit:{title:"Детали сценария",scriptName:"Название сценария",scriptNamePh:"Введите название сценария",scriptContent:"Текст сценария",scriptContentPh:"Введите текст сценария...",relatedAssets:"Связанные ассеты",selectAssets:"Выбрать ассеты",noAssets:"Нет связанных ассетов",msg:{selectAssetsTitle:"Выбор связанных ассетов",updateSuccess:"Сценарий успешно обновлен",updateFailed:"Не удалось обновить сценарий, попробуйте позже"}},deleteScript:"Удаление скриптов в пакетном режиме",extractAssets:""},assets:{addPrefix:"Добавить",batchGenerate:"Пакетная генерация",generatePrompt:"Сгенерировать промпт",generateImage:"Сгенерировать изображение",batchDelete:"Пакетное удаление",searchPlaceholder:"Поиск по названию ассета...",search:"Поиск",preview:"Предпросмотр",generate:"Генерация",edit:"Редактировать",delete:"Удалить",generating:"Генерация",play:"Воспроизведение",mediaPreview:"Предпросмотр медиа",confirmBatch:"Подтвердите {type}!",model:"Модель",resolution:"Разрешение",resolutionPh:"Выберите разрешение",batchGenPrompt:"Пакетная генерация промптов",batchGenImage:"Пакетная генерация изображений",role:"Персонаж",prop:"Предмет",scene:"Сцена",clip:"Клип",uploadSuccess:"Успешно загружено",selectAtLeastOne:"Выберите хотя бы один ассет",noDescription:"Нет описания",promptGenSuccess:"Промпт для «{name}» успешно сгенерирован",promptGenFail:"Ошибка генерации промпта для «{name}»: {error}",selectModel:"Пожалуйста, выберите модель",selectResolution:"Пожалуйста, выберите разрешение",noPromptForImage:"У «{name}» нет промпта; невозможно сгенерировать изображение",imageGenSuccess:"Изображение для «{name}» успешно сгенерировано",imageGenFail:"Ошибка генерации изображения для «{name}»: {error}",confirmDeleteHeader:"Подтверждение удаления",confirmBatchDeleteBody:"Вы уверены, что хотите удалить эти ассеты? Это действие необратимо.",confirmDeleteBody:"Вы уверены, что хотите удалить этот ассет? Это действие необратимо.",deleteBtn:"Удалить",cancelBtn:"Отмена",deleteSuccess:"Ассет успешно удален",deleteFail:"Не удалось удалить ассет",colPreview:"Превью",colName:"Название",colPrompt:"Промпт",colDescribe:"Описание",colRemark:"Примечание",colCreateTime:"Время создания",colOperation:"Действие",add:{name:"Название",namePh:"Введите название",describe:"Описание",describePh:"Введите описание",remark:"Примечание",remarkPh:"Введите примечание",prompt:"Промпт",promptPh:"Введите промпт",nameRequired:"Пожалуйста, введите название",describeRequired:"Пожалуйста, введите детали",remarkRequired:"Пожалуйста, введите примечание",updateSuccess:"Ассет успешно обновлен",addSuccess:"Ассет успешно добавлен"},gen:{header:"Генерация изображения",uploadRef:"Загрузить референс",optional:"Необязательно",promptLabel:"Промпт",smartGenerate:"Смарт-генерация",generatingPrompt:"Умная генерация промпта...",promptPlaceholder:"Опишите изображение, которое хотите сгенерировать. Например: футуристичный город будущего, неоновые огни, киберпанк...",selectModel:"Выбрать модель",selectResolution:"Выбрать разрешение",generateBtn:"Сгенерировать",resultTitle:"Результаты",generatedCount:"Сгенерировано {count} шт. Пожалуйста, выберите одно",generatingLabel:"Генерация...",genFailed:"Ошибка генерации",confirmSelect:"Подтвердить выбор",promptSuccess:"Промпт успешно сгенерирован",promptFail:"Ошибка генерации промпта",fillPrompt:"Пожалуйста, введите промпт",pickResolution:"Пожалуйста, выберите разрешение",pickModel:"Пожалуйста, выберите модель",unnamed:"Без имени",assetGenSuccess:"Ассет успешно сгенерирован",assetGenFail:"Ошибка генерации ассета",uploadOk:"Успешно загружено",imageSelected:"Изображение выбрано",imageDeleted:"Изображение удалено",imageSaved:"Изображение сохранено",completed:"Завершенный"},batch:{header:"Пакетная генерация",selected:"Выбрано {count} шт.",selectAll:"Выбрать все",clearSelection:"Очистить выбор",inputPh:"Введите текст",saveSelected:"Сохранить выбранное ({count})",colPreviewImg:"Превью",selectToSave:"Выберите элементы для сохранения",saveSuccess:"Успешно сохранено",saveFail:"Ошибка сохранения, попробуйте снова",promptDone:"Генерация промптов завершена",promptFail:"Ошибка генерации промптов",missingPrompts:"{count} ассетов не имеют промптов. Сначала сгенерируйте промпты",imageDone:"Генерация изображений завершена",imageGenFail:"Ошибка генерации изображений",unknownError:"Неизвестная ошибка",promptGenCancelled:"Генерация отменена"}},production:{selectPlaceholder:"Выберите эпизод",edit:"Редактировать",node:{script:{title:"Сценарий",editDialog:"Редактировать сценарий"},scriptPlan:{title:"План съемок",editDialog:"Редактировать план съемок"},storyboard:{title:"Панель раскадровки",notGenerated:"Не сгенерировано",scaleRatio:"Масштаб",gridPreview:"Просмотр сеткой",noPreviewImages:"Нет изображений для предпросмотра",imageLoadFailed:"Не удалось загрузить изображение",promptPlaceholder:"Пожалуйста, введите слово-подсказку",prompt:"подсказать слово",editInfo:"Подскажите изменение слова"},storyboardTable:{title:"Таблица раскадровки",editDialog:"Редактировать таблицу раскадровки"},assets:{title:"Производные ассеты",generateFailed:"Ошибка генерации",notGenerated:"Не сгенерировано",originalAsset:"Оригинал",derived:"Производные",noDerivedAssets:"Нет производных ассетов"},poster:{title:"Обложка видео",coverCount:"{count} шт."},workbench:{title:"Рабочий стол видео"}},editImage:{upload:"Загрузить",generate:"Сгенерировать",saveFailed:"Ошибка сохранения, попробуйте снова",fetchFailed:"Не удалось получить данные",generating:"Генерация...",deleteNode:"Удалить узел",ratio:"Соотношение",quality:"Качество",generateBtn:"Сгенерировать изображение",selectImage:"Выбрать изображение",imageGeneration:"Генерация изображения",promptPlaceholder:"Опишите изображение, которое хотите сгенерировать...",imageRef:"Изображение {index}",noReferences:"Нет доступных референсов",selectModel:"Сначала выберите модель",selectQuality:"Выберите качество",selectRatio:"Выберите соотношение",generateFailed:"Ошибка генерации",generateFirst:"Сначала сгенерируйте изображение",generatedResult:"Результаты",waitingGenerate:"В очереди",layoutLR:"Авторазметка - горизонтально",layoutTB:"Авторазметка - вертикально",uploadAssetImage:"Загрузить изображение ресурса",uploadStoryboardImage:"Загрузить изображение раскадровки",uploadImage:"Загрузка изображения объекта",mode:"модель",closeConfirmTitle:"Закрыть панель редактирования?",closeConfirmBody:"Несохраненные данные будут потеряны после закрытия."},save:"Выбирать",cancel:"Отмена",chatBox:{inputPlaceholder:"Введите сообщение...",generateDerivedAssets:"Сгенерировать производные ассеты",welcomeMessage:"Привет! Я ваш ИИ-ассистент. Чем могу помочь?",adjustModel:"Настроить модель",startMakingVideo:"Начать создание видео",startMakingVideoPrompt:"Пожалуйста, помоги мне начать создание видео",clearMessageMemory:"Очистить память сообщений",clearSummaryMemory:"Очистить память сжатий",clearAllMemory:"Очистить всю память",messageMemory:"Память сообщений",summaryMemory:"Память сжатий",allMemory:"Вся память",confirmClear:"Очистить память",confirmClearBody:"Вы уверены, что хотите очистить {type}?",confirmClearBtn:"Подтвердить очистку",memoryCleared:"{type} очищена"},wb:{quickPreview:"Быстрый предпросмотр",videoGeneration:"Раскадровка",videoEditing:"монтажный стол",hint:"Подсказка",extractLines:"Извлечь реплики из видео?",no:"Нет",confirm:"Да",extractLinesQuestion:"Хотите извлечь диалоги из видео в качестве субтитров?",importingLoading:"Импорт, пожалуйста, подождите...",mainTrackVideo:"Основная дорожка (Видео)",subtitle1:"Субтитры 1",storyboardVideoName:"Видео раскадровки-{storyboard}.mp4"},preview:{noImage:"Нет изображения",storyboardDesc:"Описание раскадровки",serialNumber:"№",noDescription:"Нет описания",duration:"Длит.",seconds:"с",relatedAssets:"Связанные ассеты",role:"Персонаж",prop:"Предмет",scene:"Сцена",noCharacters:"Без персонажей",imagePrompt:"Промпт изображения",selectAll:"Выбрать все",exportImage:"Экспорт изображений",sceneDescription:"Описание кадра",promptLabel:"Промпт",restoreSort:"Сбросить сортировку",restoreSortConfirm:"Вы уверены, что хотите вернуть исходную сортировку?",tip:"Подсказка",selectAtLeastOne:"Пожалуйста, выберите хотя бы один кадр для экспорта",exportFilename:"Раскадровки изображений"},generate:{noVideo:"Нет видео",videoPrompt:"Промпт видео",promptPlaceholder:"Введите слова-подсказки, описывающие видеоконтент, который вы хотите создать...",refImage:"Референс",image:"Изображение",refVideo:"Референс видео",refImageLabel:"Референс изображения",refAudio:"Референс аудио",muteAudio:"Выключить звук",enableAudio:"Включить звук",resolution:"Разрешение",duration:"Длит.",generate:"Сгенерировать",historyVersions:"История версий",confirmSelection:"Подтвердить выбор",noHistory:"Нет истории",generating:"Генерация",generateFailed:"Ошибка генерации",selectAll:"Выбрать все",videoTrack:"Видеодорожка",batchGenerate:"Пакетная генерация",importToEditor:"Импорт в редактор",modeSingleImage:"Одно изображение",modeMultiImage:"Много изображений",modeGridImage:"Сетка изображений",modeStartEnd:"Первый и последний кадры",modeText:"Текст в видео",modeVideoRef:"По видео-референсу",modeImageRef:"По изображению",modeAudioRef:"По аудио-референсу",modeTextRef:"По тексту",startFrame:"Первый кадр",startFrameOptional:"Первый кадр (Необязательно)",endFrame:"Последний кадр",endFrameOptional:"Последний кадр (Необязательно)",selectRefImage:"Выбрать референс",selectRefImages:"Выбрать референсы",selectEndFrame:"Выбрать последний кадр",selectRefVideoAsset:"Выбрать видео-референс",selectRefAudioAsset:"Выбрать аудио-референс",selectRefImageAsset:"Выбрать изображение-референс",selectImageSource:"Выбрать источник изображения",fromStoryboard:"Раскадровка",fromStoryboardDesc:"Выбрать изображение из раскадровки",fromAssets:"Ресурс",fromAssetsDesc:"Выбрать изображение из библиотеки ресурсов",confirmDelete:"Подтверждение удаления",confirmDeleteBody:"Вы уверены, что хотите удалить это видео? Это действие необратимо.",delete:"Удалить",cancel:"Отмена",deleteSuccess:"Видео успешно удалено",deleteFailed:"Ошибка удаления",selectVideoFirst:"Пожалуйста, сначала выберите видео",confirmSuccess:"Выбор подтвержден",batchSubmitted:"Запрос на пакетную генерацию отправлен. В обработке...",configNotFound:"Конфигурация не найдена",pollingFailed:"Не удалось выполнить запрос статуса видео. Обновите вручную.",batchGeneratePrompt:"Генерируйте подсказки в пакетном режиме",batchPromptEmpty:"Раскадровка {name} доступна для видеоподсказок. Пожалуйста, сначала создайте или заполните приглашение",modelEmpty:"Сначала выберите модель создания видео",generatingPrompt:"Интеллектуальное генерирование подсказок"},editVideo:{reset:"Сброс",undo:"Отменить",redo:"Повторить",split:"Разделить",delete:"Удалить",rendering:"Рендеринг...",exportVideo:"Экспорт видео",exportSuccess:"Экспорт видео завершен",exportFailed:"Ошибка экспорта",sampleSubtitle:"Пример текста субтитров",customText:"Пользовательский текст",transitionBetweenClips:"Переходы должны добавляться между двумя соседними клипами",transitionExists:"Переход уже существует в этом месте",videoPreviewArea:"Область предпросмотра",clipMaterials:"Материалы клипа",propertyPanel:"Панель свойств",selectClip:"Выберите клип для просмотра свойств",basicInfo:"Основная информация",name:"Название",clipNamePlaceholder:"Название клипа",startTime:"Начало",endTime:"Конец",totalDuration:"Общая длительность",videoProperties:"Свойства видео",opacity:"Непрозрачность",volume:"Громкость",playbackSpeed:"Скорость",audioProperties:"Свойства аудио",fadeIn:"Плавное появление",fadeOut:"Плавное затухание",transitionProperties:"Свойства перехода",transitionType:"Тип перехода",transFade:"Затухание",transSlide:"Сдвиг",transWipe:"Вытеснение",transDissolve:"Растворение",transZoom:"Масштаб",transRotate:"Вращение",transitionDuration:"Длительность перехода",subtitleProperties:"Свойства субтитров",textContent:"Текст",fontSize:"Размер шрифта",copy:"Копировать",deleteConfirm:"Подтверждение удаления",deleteClipConfirm:"Вы уверены, что хотите удалить этот клип?",avCanvasNotInit:"AVCanvas не инициализирован",noExportContent:"Нет содержимого для экспорта",exportProject:"Экспорт проекта",transitionAdded:"Переход добавлен: {name}",splitClip:"Разделить клип",deleteClip:"Удалить клип",addClip:"Добавить {name}",duplicateClip:"Дублировать клип",addTransition:"Добавить переход",updateClip:"Обновить клип {key}",updatePlaybackRate:"Изменить скорость на {rate}x",updateTransitionDuration:"Обновить длительность перехода",playbackRateRange:"Скорость воспроизведения должна быть от 0.1 до 10",updatePlaybackRateFailed:"Ошибка изменения скорости:",importProject:"Импорт проекта",import:"Импорт"},clipType:{video:"Видео",audio:"Аудио",subtitle:"Субтитры",transition:"Переход",sticker:"Стикер",filter:"Фильтр",effect:"Эффект"},track:{video:"Видео",image:"Изображение",audio:"Аудио",subtitle:"Субтитры",text:"Текст",sticker:"Стикер",filter:"Фильтр",effect:"Эффект"},transition:{fade:"Затухание",slide:"Сдвиг",slideLeft:"Сдвиг влево",slideRight:"Сдвиг вправо",slideUp:"Сдвиг вверх",slideDown:"Сдвиг вниз",wipe:"Вытеснение",wipeLeft:"Вытеснение влево",wipeRight:"Вытеснение вправо",wipeUp:"Вытеснение вверх",wipeDown:"Вытеснение вниз",dissolve:"Растворение",zoom:"Масштаб",zoomIn:"Приближение",zoomOut:"Отдаление",rotate:"Вращение",circle:"Круг",diamond:"Ромб",clock:"Часы",blur:"Размытие"},media:{titleText:"Текст заголовка",subtitleText:"Текст субтитров",customText:"Пользовательский текст",media:"Медиа",image:"Изображение",audio:"Аудио",subtitle:"Субтитры",transition:"Переход",effect:"Эффект",filter:"Фильтр",loading:"Загрузка...",subtitlePreview:"Т",video:"видео"},effect:{fadeIn:"Появление",fadeOut:"Затухание",flash:"Вспышка",shake:"Тряска",zoomIn:"Приближение (эффект)",zoomOut:"Отдаление (эффект)",pulse:"Пульсация",rotateIn:"Вращение (вход)",sticker1:"Стикер 1",sticker2:"Стикер 2"},filter:{grayscale:"Ч/Б",sepia:"Сепия",warm:"Теплый",cool:"Холодный",vivid:"Яркий",bright:"Светлый",highContrast:"Контрастный",blur:"Размытие",invert:"Инверсия",semiTransparent:"Полупрозрачный"},guideSwitchEpisode:"Переключение эпизодов",guideSwitchEpisodeBody:"Переключение эпизодов перенесено сюда!",autoLayoutLR:"Автоматический набор текста — левая и правая раскладка",autoLayoutTB:"Автоматический набор текста — верхняя и нижняя раскладка",getFlowData:"Обновить рабочую область",confirm:"Подтверждение переключения эпизода",confirmEpisodesSwitch:"Текущая задача все еще находится в стадии выполнения. Переключение эпизодов приведет к переподключению сеанса. Продолжить переключение?"},task:{title:"Список задач",subtitle:"История выполнения ваших задач",refresh:"Обновить",categoryLabel:"Категория:",stateLabel:"Статус:",noFailReason:"Нет причины ошибки",stateAll:"Все",stateRunning:"В процессе",stateCompleted:"Завершено",stateFailed:"Ошибка",fetchFailed:"Не удалось получить список задач",col:{taskClass:"Категория задачи",relatedObjects:"Связанные объекты",model:"Модель",describe:"Описание",state:"Статус",startTime:"Время",reason:"Причина неудачи"},project:"Название проекта:"},noVideo:"Видео пока нет",prompt:"Видео слова-подсказки",generateText:"ИИ генерировал слова-подсказки",selectStoryboard:"Выберите раскадровку",generate:{noVideo:"Видео пока нет",generateText:"ИИ генерировал слова-подсказки",selectStoryboard:"Выберите раскадровку",generate:"Создать видео",history:"Историческая версия",generating:"Создание",generateFailed:"неудача",selectAll:"Выбрать все",selected:"Выбрано",batchGenerateText:"Генерируйте подсказки в пакетном режиме",batchGenerateVideo:"Генерируйте видео в пакетном режиме",importVideo:"Импортировать в редакторский стол",emptyTrack:"Абзац {индекс 1}",del:"удалить",delConfirm:"Вы уверены, что хотите удалить этот абзац?",selectSource:"Выберите источник",confirm:"Выбрать из активов",cancel:"Выбрать из раскадровки",selectVideoFailed:"Не удалось выбрать видео.",selectVideoSuccess:"Видео выбрано успешно",selectTrackFirst:"Пожалуйста, сначала выберите раскадровку",noSelectedVideo:"Видео не выбрано",generateConfirm:"Подтвердить генерацию",generateConfirmBody:"Подтвердите создание видео",generateVideosInBatches:"Генерируйте видео в пакетном режиме",generateStarted:"Начало сборки",promptEmpty:"Проверьте данные, необходимые для создания видео, и слово подсказки пусто. Хотите ли вы продолжить его создание?",skipDataWithEmptyVideoPromptWords:"Видеоданные, которые необходимо сгенерировать, существуют, а слово подсказки пусто.",duration:"продолжительность",resolution:"разрешение",delVideo:"Подтвердить удаление этого видео?",delSuccess:"Удалить успешно",addReference:"добавить ссылку",promptPlaceholder:"Пожалуйста, введите слово-подсказку к видео",downloadVideo:"Скачивайте видео партиями",selectVideo:"Пожалуйста, проверьте видео, которое вы хотите скачать"}},MSi={slogan:"Умная платформа для создания коротких драм",tips:"Аккаунт по умолчанию: admin / admin123",settings:"Настройки сервера",requestAddress:"URL запроса",username:"Имя пользователя",password:"Пароль",login:"Войти",usernameRequired:"Пожалуйста, введите имя пользователя",passwordRequired:"Пожалуйста, введите пароль",enterUsernameAndPassword:"Пожалуйста, введите имя пользователя или пароль",loginSuccess:"Успешный вход",settingsSaved:"Настройки сохранены"},PSi={cancel:"Отмена",confirm:"Подтвердить",selectAssets:"Выбрать ресурсы",sessionExpired:"Сессия истекла, пожалуйста, войдите снова",openSettings:"Открыть настройки",defaultReel:"Основной том",save:"сохранять",submitting:"Отправка",editSuccess:"Модификация прошла успешно",editFailed:"Модификация не удалась",submit:"представлять на рассмотрение"},FSi={prompt:"подсказать слово"},NSi={welcomeTitle:"Добро пожаловать в ToonFlow",welcomeDesc:"Платформа рабочего процесса создания комиксов, управляемая искусственным интеллектом, давайте потратим минуту, чтобы завершить первоначальную настройку.",startConfig:"Начать настройку",skip:"Пропустить загрузку",configModel:"Добавить модельный сервис",configData:"Настроить агент",startUse:"Начать",configModelTitle:"Добавить поставщика услуг модели",configModelDesc:"Сначала вам необходимо добавить в настройках хотя бы одного поставщика услуг модели ИИ (например, OpenAI, Claude и т. д.) и заполнить соответствующий ключ API.",configModelTip:"Нажатие кнопки ниже откроет вкладку «Сервис модели» на странице настроек. После добавления поставщика вернитесь сюда, чтобы продолжить.",configModelBtn:"Перейти к настройке сервиса модели",configAgentTitle:"Назначить модель агента",configAgentDesc:"Затем назначьте модели каждому функциональному модулю в конфигурации агента, чтобы система знала, какую модель вызывать для выполнения задачи.",configAgentTip:"Нажатие кнопки ниже откроет вкладку «Конфигурация агента» на странице настроек. Вернитесь сюда после назначения моделей каждой функции.",configAgentBtn:"Перейти к настройке агента",finishTitle:"🎉Все готово!",finishDesc:"Настройка завершена, и теперь вы можете начать использовать все функции. Если вам нужно его настроить, вы можете изменить его в настройках в любое время.",qrcodeLabel:"Присоединяйтесь к группе общения WeChat, чтобы получить дополнительную помощь:",githubLabel:"Если вы найдете это полезным, пожалуйста, поставьте нам ⭐ Звезду!",prevStep:"Предыдущий шаг",nextStep:"Следующий шаг",finish:"Начать"},USi={skillManagement:{search:"Поиск по имени файла",empty:"Нет подходящих файлов",edit:"редактировать",selectOnTheLeft:"Пожалуйста, выберите файл слева"}},jSi={assets:{notExist:"Актив не существует",notDerivativeExist:"Производные активы не существуют",derivativeUpdateSuccess:"Обновление успешно выполнено",derivativeState:"Не создано",derivativeAddSuccess:"Добавлено успешно",derivativeDelSuccess:"Удалить успешно",notGenerated:"Не создано"},addSuccess:"Обновление успешно выполнено",state:{unused:"Не создано"},saveSuccess:"Добавлено успешно"},WSi={generating:"Создание"},VSi={scanning:"🔍 Парсинг и загрузка навыков",scanComplete:"✨ Сканирование Skill завершено",inserted:"✅ Добавлено {count} навыков",updated:"🔄 Обновлено {count} Skill",removed:"🗑️ Удалено {count} Skill",scannedFiles:"📁 Просканировано {count} файлов",noDescription:"📝 {count} Skill без описания",noAttribution:"👤 {count} Skill без атрибуции",configWarning:"⚠️ Предупреждение конфигурации Skill",openSettings:"Открыть настройки",scanFailed:"❌ Сканирование не удалось",checkNetwork:"🔌 Проверьте сетевое подключение или повторите попытку позже",retryLater:"🔁 Повторите попытку позже"},zSi="Создать видео",HSi="Историческая версия",$Si="Создание",XSi="неудача",GSi="Выбрать все",YSi="Выбрано",ZSi="Импортировать видео",qSi="Абзац {индекс 1}",KSi="Подтвердить удаление",JSi="Вы уверены, что хотите удалить этот абзац?",e8i="Выберите источник",t8i="Выбрать из активов",n8i="Выбрать из раскадровки",i8i={newVersion:"Вышла новая версия, хотите ее обновить?"},r8i={components:BSi,settings:RSi,workbench:ISi,login:MSi,common:PSi,"components.storyboardImageCheck.camera":"Камера","components.storyboardImageCheck.dialogTitle":"Выбрать изображение раскадровки","components.storyboardImageCheck.preview":"Предпросмотр","components.storyboardImageCheck.src":"Предпросмотр изображения","components.storyboardImageCheck.title":"Заголовок","components.storyboardImageCheck.duration":"Длительность","components.storyboardImageCheck.lines":"Реплики","components.storyboardImageCheck.createTime":"Дата создания","workbench.script.extractAssets":"Извлечь ресурсы",promptManage:FSi,hello:NSi,setting:USi,storyboard:jSi,productionAgent:WSi,skillScan:VSi,generate:zSi,history:HSi,generating:$Si,generateFailed:XSi,selectAll:GSi,selected:YSi,importVideo:ZSi,emptyTrack:qSi,del:KSi,delConfirm:JSi,selectSource:e8i,confirm:t8i,cancel:n8i,"workbench.script.msg.exportFailed":"Экспорт не удался","workbench.production.node.assets.confirmDeleteBody":"Подтвердите, следует ли удалить объект","workbench.production.node.assets.removeFailed":"Не удалось удалить объект.",version:i8i,"workbench.production.generatedNode.localUpload":"Локальная загрузка","workbench.production.editImage.uploadFailed":"Не удалось загрузить изображение.","workbench.production.editImage.noImage":"Пожалуйста, сначала добавьте фотографии"},GZe=[{label:"简体中文",tips:"Chinese (Simplified)",value:"zh-CN"},{label:"繁體中文",tips:"Chinese (Traditional)",value:"zh-TW"},{label:"English",tips:"English",value:"en"},{label:"ไทย",tips:"Thai",value:"th-TH"},{label:"Tiếng Việt",tips:"Vietnamese",value:"vi-VN"},{label:"日本語",tips:"Japanese",value:"ja-JP"},{label:"Русский",tips:"Russian",value:"ru-RU"}],yW=q4e("locale","zh-CN"),dOn=syi({legacy:!1,locale:yW.value,fallbackLocale:"en",messages:{"zh-CN":hCi,"zh-TW":FCi,en:c_i,"th-TH":R_i,"vi-VN":sSi,"ja-JP":DSi,"ru-RU":r8i}}),qse=lOn("theme-setting",{mode:"light",primaryColor:"#000"}),o8i=e=>{const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t)return{h:0,s:0,l:0};const n=parseInt(t[1],16)/255,r=parseInt(t[2],16)/255,o=parseInt(t[3],16)/255,s=Math.max(n,r,o),a=Math.min(n,r,o),l=(s+a)/2;let d=0,u=0;if(s!==a){const h=s-a;u=l>.5?h/(2-s-a):h/(s+a),s===n?d=((r-o)/h+(r{t/=100,n/=100;const r=(1-Math.abs(2*n-1))*t,o=r*(1-Math.abs(e/60%2-1)),s=n-r/2;let a=0,l=0,d=0;e<60?[a,l,d]=[r,o,0]:e<120?[a,l,d]=[o,r,0]:e<180?[a,l,d]=[0,r,o]:e<240?[a,l,d]=[0,o,r]:e<300?[a,l,d]=[o,0,r]:[a,l,d]=[r,0,o];const u=h=>Math.round((h+s)*255).toString(16).padStart(2,"0");return`#${u(a)}${u(l)}${u(d)}`},a8i=e=>{const{h:t,s:n,l:r}=o8i(e);return[97,92,85,75,62,r,Math.max(r-12,20),Math.max(r-24,15),Math.max(r-36,10),Math.max(r-48,5)].map(s=>s8i(t,n,s))},l8i=e=>{const t=e==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;t==="dark"?document.documentElement.setAttribute("theme-mode","dark"):document.documentElement.removeAttribute("theme-mode"),t==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},A1t=e=>{const t=document.documentElement,n=a8i(e),r=t.getAttribute("theme-mode")==="dark";(r?[...n].reverse():n).forEach((s,a)=>t.style.setProperty(`--td-brand-color-${a+1}`,s)),["","-hover:5","-focus:2","-active:7","-disabled:3","-light:1","-light-hover:2"].forEach(s=>{const[a,l]=s.split(":");t.style.setProperty(`--td-brand-color${a}`,l?`var(--td-brand-color-${l})`:"var(--td-brand-color-6)")}),t.style.setProperty("--td-text-color-brand",`var(--td-brand-color-${r?8:7})`),t.style.setProperty("--td-text-color-link","var(--td-brand-color-8)")},c8i=(e,t)=>{if(!document.startViewTransition){t();return}const n=window.innerWidth/2,r=window.innerHeight/2,o=Math.hypot(Math.max(n,window.innerWidth-n),Math.max(r,window.innerHeight-r)),s=document.documentElement;s.style.setProperty("--x",`${n}px`),s.style.setProperty("--y",`${r}px`),s.style.setProperty("--r",`${o}px`),document.startViewTransition(t)},d8i=()=>{l8i(qse.value.mode),A1t(qse.value.primaryColor),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{qse.value.mode==="auto"&&c8i(void 0,()=>{(e.matches?"dark":"light")==="dark"?(document.documentElement.setAttribute("theme-mode","dark"),document.documentElement.classList.add("dark")):(document.documentElement.removeAttribute("theme-mode"),document.documentElement.classList.remove("dark")),A1t(qse.value.primaryColor)})})},u8i=e=>{const t=typeof e;return t!=="function"&&t!=="object"||e===null},h8i=e=>{const t=e.flags===""?void 0:e.flags;return new RegExp(e.source,t)},pG=(e,t=new WeakMap)=>{if(e===null||u8i(e))return e;if(t.has(e))return t.get(e);if(e instanceof RegExp)return h8i(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Function)return e;if(e instanceof Map){const r=new Map;return t.set(e,r),e.forEach((o,s)=>{r.set(s,pG(o,t))}),r}if(e instanceof Set){const r=new Set;t.set(e,r);for(const o of e)r.add(pG(o,t));return r}if(Array.isArray(e)){const r=[];return t.set(e,r),e.forEach(o=>{r.push(pG(o,t))}),r}const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=pG(e[r],t));return n},uOn=(e,t=200)=>{let n=0;return(...r)=>new Promise(o=>{n&&(clearTimeout(n),o("cancel")),n=window.setTimeout(()=>{e.apply(void 0,r),n=0,o("done")},t)})},f8i=(e,t={_blank:!0,nofollow:!0})=>{const n=document.createElement("a");n.href=e,t._blank&&(n.target="_blank"),t.nofollow&&(n.rel="noopener noreferrer"),n.click()},YZe=()=>{let e=-1;return(t,n,r,o=100)=>{const s=()=>{r&&(typeof o=="number"?setTimeout(r,o):r())};e!==-1&&(cancelAnimationFrame(e),s());let a=t.scrollTop;const l=()=>{e=-1;const d=n-a;a=a+d/5,Math.abs(d)<1?(t.scrollTo(0,n),s()):(t.scrollTo(0,a),e=requestAnimationFrame(l))};e=requestAnimationFrame(l)}},g8i=(e,t=200)=>{let n=0,r=null;const o=s=>{n===0&&(n=s),s-n>=t?(e.apply(void 0,r),r=null,n=0):window.requestAnimationFrame(o)};return(...s)=>{r===null&&window.requestAnimationFrame(o),r=s}},m8i=e=>{const t=n=>{const{scrollHeight:r,scrollWidth:o,offsetHeight:s,offsetWidth:a,scrollLeft:l,scrollTop:d}=e,u=n.x,h=n.y,g=v=>{const f=d+h-v.y,k=l+u-v.x,A=r-s,p=o-a,b={};k>=0&&k<=p&&(b.left=k),f>=0&&f<=A&&(b.top=f),e.scroll(b)};document.addEventListener("mousemove",g);const m=()=>{document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",m)};document.addEventListener("mouseup",m)};return e.addEventListener("mousedown",t),()=>{e.removeEventListener("mousedown",t)}},AMe=()=>`${Date.now().toString(36)}${Math.random().toString(36).substring(2)}`,gge=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),K4e=(e,t,n={})=>{if(Array.isArray(e)&&Array.isArray(t))return pMe(e,t,n);const{excludeKeys:r}=n;for(const o in t){const s=t[o],a=e[o];r&&r(o)?e[o]=s:Array.isArray(s)&&Array.isArray(a)?e[o]=pMe(a,s,n):gge(s)&&gge(a)?e[o]=K4e(a,s,n):e[o]=s}return e},pMe=(e,t,n)=>{const r=e.slice();return t.forEach((o,s)=>{const a=r[s];Array.isArray(o)&&Array.isArray(a)?r[s]=pMe(a,o,n):gge(o)&&gge(a)?r[s]=K4e(a,o,n):r[s]=o}),r},kt="md-editor",k8i="MdEditor",Zc="https://unpkg.com",v8i=`${Zc}/@highlightjs/cdn-assets@11.11.1/highlight.min.js`,p1t={main:`${Zc}/prettier@3.8.1/standalone.js`,markdown:`${Zc}/prettier@3.8.1/plugins/markdown.js`},A8i={css:`${Zc}/cropperjs@1.6.2/dist/cropper.min.css`,js:`${Zc}/cropperjs@1.6.2/dist/cropper.min.js`},p8i=`${Zc}/screenfull@5.2.0/dist/screenfull.js`,b8i=`${Zc}/mermaid@11.12.3/dist/mermaid.min.js`,w8i={js:`${Zc}/katex@0.16.33/dist/katex.min.js`,css:`${Zc}/katex@0.16.33/dist/katex.min.css`},bMe={a11y:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/a11y-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/a11y-dark.min.css`},atom:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/atom-one-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/atom-one-dark.min.css`},github:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/github.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/github-dark.min.css`},gradient:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/gradient-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/gradient-dark.min.css`},kimbie:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/kimbie-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/kimbie-dark.min.css`},paraiso:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/paraiso-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/paraiso-dark.min.css`},qtcreator:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/qtcreator-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/qtcreator-dark.min.css`},stackoverflow:{light:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/stackoverflow-light.min.css`,dark:`${Zc}/@highlightjs/cdn-assets@11.11.1/styles/stackoverflow-dark.min.css`}},O8i=`${Zc}/echarts@6.0.0/dist/echarts.min.js`,hOn=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","link","image","table","mermaid","katex","-","revoke","next","save","=","prettier","pageFullscreen","fullscreen","preview","previewOnly","htmlPreview","catalog","github"],fOn=["markdownTotal","=","scrollSwitch"],b1t={"zh-CN":{toolbarTips:{bold:"加粗",underline:"下划线",italic:"斜体",strikeThrough:"删除线",title:"标题",sub:"下标",sup:"上标",quote:"引用",unorderedList:"无序列表",orderedList:"有序列表",task:"任务列表",codeRow:"行内代码",code:"块级代码",link:"链接",image:"图片",table:"表格",mermaid:"mermaid图",katex:"katex公式",revoke:"后退",next:"前进",save:"保存",prettier:"美化",pageFullscreen:"浏览器全屏",fullscreen:"屏幕全屏",preview:"预览",previewOnly:"仅预览",htmlPreview:"html代码预览",catalog:"目录",github:"源码地址"},titleItem:{h1:"一级标题",h2:"二级标题",h3:"三级标题",h4:"四级标题",h5:"五级标题",h6:"六级标题"},imgTitleItem:{link:"添加链接",upload:"上传图片",clip2upload:"裁剪上传"},linkModalTips:{linkTitle:"添加链接",imageTitle:"添加图片",descLabel:"链接描述:",descLabelPlaceHolder:"请输入描述...",urlLabel:"链接地址:",urlLabelPlaceHolder:"请输入链接...",buttonOK:"确定"},clipModalTips:{title:"裁剪图片上传",buttonUpload:"上传"},copyCode:{text:"复制代码",successTips:"已复制!",failTips:"复制失败!"},mermaid:{flow:"流程图",sequence:"时序图",gantt:"甘特图",class:"类图",state:"状态图",pie:"饼图",relationship:"关系图",journey:"旅程图"},katex:{inline:"行内公式",block:"块级公式"},footer:{markdownTotal:"字数",scrollAuto:"同步滚动"}},"en-US":{toolbarTips:{bold:"bold",underline:"underline",italic:"italic",strikeThrough:"strikeThrough",title:"title",sub:"subscript",sup:"superscript",quote:"quote",unorderedList:"unordered list",orderedList:"ordered list",task:"task list",codeRow:"inline code",code:"block-level code",link:"link",image:"image",table:"table",mermaid:"mermaid",katex:"formula",revoke:"revoke",next:"undo revoke",save:"save",prettier:"prettier",pageFullscreen:"fullscreen in page",fullscreen:"fullscreen",preview:"preview",previewOnly:"preview only",htmlPreview:"html preview",catalog:"catalog",github:"source code"},titleItem:{h1:"Lv1 Heading",h2:"Lv2 Heading",h3:"Lv3 Heading",h4:"Lv4 Heading",h5:"Lv5 Heading",h6:"Lv6 Heading"},imgTitleItem:{link:"Add Image Link",upload:"Upload Images",clip2upload:"Crop And Upload"},linkModalTips:{linkTitle:"Add Link",imageTitle:"Add Image",descLabel:"Desc:",descLabelPlaceHolder:"Enter a description...",urlLabel:"Link:",urlLabelPlaceHolder:"Enter a link...",buttonOK:"OK"},clipModalTips:{title:"Crop Image",buttonUpload:"Upload"},copyCode:{text:"Copy",successTips:"Copied!",failTips:"Copy failed!"},mermaid:{flow:"flow",sequence:"sequence",gantt:"gantt",class:"class",state:"state",pie:"pie",relationship:"relationship",journey:"journey"},katex:{inline:"inline",block:"block"},footer:{markdownTotal:"Character Count",scrollAuto:"Scroll Auto"}}},dh={editorExtensions:{highlight:{js:v8i,css:bMe},prettier:{standaloneJs:p1t.main,parserMarkdownJs:p1t.markdown},cropper:{...A8i},screenfull:{js:p8i},mermaid:{js:b8i,enableZoom:!0},katex:{...w8i},echarts:{js:O8i}},editorExtensionsAttrs:{},editorConfig:{languageUserDefined:{},mermaidTemplate:{},renderDelay:500,zIndex:2e4},codeMirrorExtensions:e=>e,markdownItConfig:()=>{},markdownItPlugins:e=>e,mermaidConfig:e=>e,katexConfig:e=>e,echartsConfig:e=>e},y8i=e=>K4e(dh,e,{excludeKeys(t){return/[iI]{1}nstance/.test(t)}}),Kse=.1,_0=({instance:e,ctx:t,props:n={}},r="default")=>{const o=(e==null?void 0:e.$slots[r])||(t==null?void 0:t.slots[r]);return(o?o(e):"")||n[r]},C8i={overlay:{type:[String,Object],default:""},visible:{type:Boolean,default:!1},onChange:{type:Function,default:()=>{}},relative:{type:String,default:"html"},disabled:{type:Boolean,default:void 0}},Tz=Je({name:`${kt}-dropdown`,props:C8i,setup(e,t){const n=`${kt}-dropdown-hidden`,r=hs({overlayClass:[n],overlayStyle:{},triggerHover:!1,overlayHover:!1}),o=fe(),s=fe(),a=()=>{var y,C;if(e.disabled)return!1;r.triggerHover=!0;const h=o.value,g=s.value;if(!h||!g)return;const m=h.getBoundingClientRect(),v=h.offsetTop,f=h.offsetLeft,k=m.height,A=m.width,p=h.getRootNode(),b=((y=p.querySelector(e.relative))==null?void 0:y.scrollLeft)||0,w=((C=p.querySelector(e.relative))==null?void 0:C.clientWidth)||0;let O=f-g.offsetWidth/2+A/2-b;O+g.offsetWidth>b+w&&(O=b+w-g.offsetWidth),O<0&&(O=0),r.overlayStyle={...r.overlayStyle,insetBlockStart:v+k+"px",insetInlineStart:O+"px"},e.onChange(!0)},l=()=>{if(e.disabled)return!1;r.overlayHover=!0};pt(()=>e.visible,h=>{h?r.overlayClass=r.overlayClass.filter(g=>g!==n):r.overlayClass.push(n)});let d=-1;const u=h=>{o.value===h.target?r.triggerHover=!1:r.overlayHover=!1,clearTimeout(d),d=window.setTimeout(()=>{!r.overlayHover&&!r.triggerHover&&e.onChange(!1)},10)};return An(()=>{o.value.addEventListener("mouseenter",a),o.value.addEventListener("mouseleave",u),s.value.addEventListener("mouseenter",l),s.value.addEventListener("mouseleave",u)}),qs(()=>{o.value.removeEventListener("mouseenter",a),o.value.removeEventListener("mouseleave",u),s.value.removeEventListener("mouseenter",l),s.value.removeEventListener("mouseleave",u)}),()=>{const h=_0({ctx:t}),g=_0({props:e,ctx:t},"overlay"),m=Jv(h instanceof Array?h[0]:h,{ref:o,key:"cloned-dropdown-trigger"}),v=c("div",{class:[`${kt}-dropdown`,r.overlayClass],style:r.overlayStyle,ref:s},[c("div",{class:`${kt}-dropdown-overlay`},[g instanceof Array?g[0]:g])]);return[m,v]}}}),_8i={title:{type:String,default:""},visible:{type:Boolean,default:void 0},trigger:{type:[String,Object],default:void 0},onChange:{type:Function,default:void 0},overlay:{type:[String,Object],default:void 0},insert:{type:Function,default:void 0},language:{type:String,default:void 0},theme:{type:String,default:void 0},previewTheme:{type:String,default:void 0},codeTheme:{type:String,default:void 0},disabled:{type:Boolean,default:void 0},showToolbarName:{type:Boolean,default:void 0}},sue=Je({name:"DropdownToolbar",props:_8i,emits:["onChange"],setup(e,t){const n=bt("editorId"),r=o=>{var s;(s=e.onChange)==null||s.call(e,o),t.emit("onChange",o)};return()=>{const o=_0({props:e,ctx:t},"trigger"),s=_0({props:e,ctx:t},"overlay"),a=_0({props:e,ctx:t});return c(Tz,{relative:`#${n}-toolbar-wrapper`,visible:e.visible,onChange:r,overlay:s,disabled:e.disabled},{default:()=>[c("button",{class:[`${kt}-toolbar-item`,e.disabled&&`${kt}-disabled`],title:e.title||"",disabled:e.disabled,type:"button"},[a||o])]})}}});sue.install=e=>(e.component(sue.name,sue),e);const J4e="onSave",ZZe="changeCatalogVisible",gOn="changeFullscreen",w1t="pageFullscreenChanged",O1t="fullscreenChanged",y1t="previewChanged",C1t="previewOnlyChanged",_1t="htmlPreviewChanged",S1t="catalogVisibleChanged",aue="buildFinished",wy="errorCatcher",To="replace",epe="uploadImage",mOn="ctrlZ",kOn="ctrlShiftZ",jY="catalogChanged",vOn="pushCatalog",qZe="rerender",AOn="eventListener",pOn="taskStateChanged",bOn="sendEditorView",mge="getEditorView";let S8i=class{constructor(){In(this,"pools",{})}remove(t,n,r){const o=this.pools[t]&&this.pools[t][n];o&&(this.pools[t][n]=o.filter(s=>s!==r))}clear(t){this.pools[t]={}}on(t,n){return this.pools[t]||(this.pools[t]={}),this.pools[t][n.name]||(this.pools[t][n.name]=[]),this.pools[t][n.name].push(n.callback),this.pools[t][n.name].includes(n.callback)}emit(t,n,...r){this.pools[t]||(this.pools[t]={});const o=this.pools[t][n];o&&o.forEach(s=>{try{s(...r)}catch(a){console.error(`${n} monitor event exception!`,a)}})}};const Pn=new S8i,L8i=(e,t="image.png")=>{const n=e.split(","),r=n[0].match(/:(.*?);/);if(r){const o=r[1],s=atob(n[1]);let a=s.length;const l=new Uint8Array(a);for(;a--;)l[a]=s.charCodeAt(a);return new File([l],t,{type:o})}return null},x8i=(e,t)=>{if(!e)return e;const n=t.split(` `),r=['"),`${e}${r.join("")}`},E8i=(e,t)=>{if(!e||!t)return 0;const n=e==null?void 0:e.getBoundingClientRect();if(t===document.documentElement)return n.top-t.clientTop;const r=t==null?void 0:t.getBoundingClientRect();return n.top-r.top},L1t=(()=>{let e=0;return()=>++e})(),T8i=`.${kt}-preview > [data-line]`,fT=(e,t)=>+getComputedStyle(e).getPropertyValue(t).replace("px",""),Q8i=(e,t)=>{const n=uOn(()=>{e.removeEventListener("scroll",r),e.addEventListener("scroll",r),t.removeEventListener("scroll",r),t.addEventListener("scroll",r)},50),r=o=>{const s=e.clientHeight,a=t.clientHeight,l=e.scrollHeight,d=t.scrollHeight,u=(l-s)/(d-a);o.target===e?(t.removeEventListener("scroll",r),t.scrollTo({top:e.scrollTop/u}),n()):(e.removeEventListener("scroll",r),e.scrollTo({top:t.scrollTop*u}),n())};return[()=>{n().finally(()=>{e.dispatchEvent(new Event("scroll"))})},()=>{e.removeEventListener("scroll",r),t.removeEventListener("scroll",r)}]},D8i=(e,t,n)=>{const{view:r}=n,o=YZe(),s=p=>r.lineBlockAt(r.state.doc.line(p+1).from).top,a=p=>r.lineBlockAt(r.state.doc.line(p+1).from).bottom;let l=[],d=[],u=[];const h=()=>{l=[],d=Array.from(t.querySelectorAll(T8i)),u=d.map(y=>Number(y.dataset.line));const p=[...u],{lines:b}=r.state.doc;let w=p.shift()||0,O=p.shift()||b;for(let y=0;y{let w=1;for(let O=d.length-1;O-1>=0;O--){const y=d[O],C=d[O-1];if(y.offsetTop+y.offsetHeight>b&&C.offsetTop=0;O--){const y=a(l[O].end),C=s(l[O].start);if(y>p&&C<=p){w=w{var I,F,j;if(v!==0)return!1;m++;const{scrollDOM:p,contentHeight:b}=r;let w=fT(t,"padding-block-start");const O=r.lineBlockAtHeight(p.scrollTop),{number:y}=r.state.doc.lineAt(O.from),C=l[y-1];if(!C)return!1;let _=1;const S=t.querySelector(`[data-line="${C.start}"]`)||((I=t.firstElementChild)==null?void 0:I.firstElementChild),L=t.querySelector(`[data-line="${C.end+1}"]`)||((F=t.lastElementChild)==null?void 0:F.lastElementChild),E=p.scrollHeight-p.clientHeight,T=t.scrollHeight-t.clientHeight;let D=s(C.start),P=a(C.end),Q=S.offsetTop,M=L.offsetTop-Q;D===0&&(Q=0,S===L?(w=0,P=b-p.offsetHeight,M=T):M=L.offsetTop),_=(p.scrollTop-D)/(P-D);const B=L==((j=t.lastElementChild)==null?void 0:j.lastElementChild)?L.offsetTop+L.clientHeight:L.offsetTop;if(P>=E||B>T){const W=g(E,T);D=s(W),_=(p.scrollTop-D)/(E-D);const H=t.querySelector(`[data-line="${W}"]`);D>0&&H&&(Q=H.offsetTop),M=T-Q+fT(t,"padding-block-start")}const R=Q-w+M*_;o(t,R,()=>{m--})},k=()=>{var B,R,I,F,j,W;if(m!==0)return;v++;const{scrollDOM:p}=r,b=t.scrollTop,w=t.scrollHeight,O=p.scrollHeight-p.clientHeight,y=t.scrollHeight-t.clientHeight;let C=(B=t.firstElementChild)==null?void 0:B.firstElementChild,_=(R=t.firstElementChild)==null?void 0:R.lastElementChild;if(u.length>0){let H=Math.ceil(u[u.length-1]*(b/w)),$=u.findLastIndex(G=>G<=H);$=$===-1?0:$,H=u[$];for(let G=$;G>=0&&Gb){if(G-1>=0){G--;continue}H=-1,$=G;break}else{if(G+1O||_.offsetTop+_.offsetHeight>y){const H=g(O,y),$=t.querySelector(`[data-line="${H}"]`);S=$?$.offsetTop-fT($,"margin-block-start"):S,P=s(H),E=(b-S)/(y-S),M=O-P}else C===((W=t.firstElementChild)==null?void 0:W.firstElementChild)?(C===_&&(L=_.offsetTop+_.offsetHeight+fT(_,"margin-block-end")),M=Q,E=Math.max(b/L,0)):(E=Math.max((b-S)/(L-S),0),M=Q-P);o(e,P+M*E,()=>{v--})},A=p=>{var y;const{scrollDOM:b,contentHeight:w}=r,O=b.clientHeight;if(w<=O||t.firstElementChild.clientHeight<=t.clientHeight||r.state.doc.lines<=((y=l[l.length-1])==null?void 0:y.end))return!1;p.target===e?f():k()};return[()=>{h(),e.addEventListener("scroll",A),t.addEventListener("scroll",A),e.dispatchEvent(new Event("scroll"))},()=>{e.removeEventListener("scroll",A),t.removeEventListener("scroll",A)}]},B8i={tocItem:{type:Object,default:()=>({})},mdHeadingId:{type:Function,default:()=>{}},onActive:{type:Function,default:()=>{}},onClick:{type:Function,default:()=>{}},scrollElementOffsetTop:{type:Number,default:0}},wOn=Je({props:B8i,setup(e){const t=bt("scrollElementRef"),n=bt("roorNodeRef"),r=fe();pt(()=>e.tocItem.active,s=>{s&&e.onActive(e.tocItem,r.value)}),An(()=>{e.tocItem.active&&e.onActive(e.tocItem,r.value)});const o=s=>{if(s.stopPropagation(),e.onClick(s,e.tocItem),s.defaultPrevented)return;const a=e.mdHeadingId({text:e.tocItem.text,level:e.tocItem.level,index:e.tocItem.index,currentToken:e.tocItem.currentToken,nextToken:e.tocItem.nextToken}),l=n.value.getElementById(a),d=t.value;if(l&&d){let u=l.offsetParent,h=l.offsetTop;if(d.contains(u))for(;u&&d!=u;)h+=u==null?void 0:u.offsetTop,u=u==null?void 0:u.offsetParent;const g=l.previousElementSibling;let m=0;g||(m=fT(l,"margin-block-start")),d==null||d.scrollTo({top:h-e.scrollElementOffsetTop-m,behavior:"smooth"})}};return()=>c("div",{ref:r,class:[`${kt}-catalog-link`,e.tocItem.active&&`${kt}-catalog-active`],onClick:o},[c("span",{title:e.tocItem.text},[e.tocItem.text]),e.tocItem.children&&e.tocItem.children.length>0&&c("div",{class:`${kt}-catalog-wrapper`},[e.tocItem.children.map(s=>c(wOn,{mdHeadingId:e.mdHeadingId,key:`${e.tocItem.text}-link-${s.level}-${s.text}`,tocItem:s,onActive:e.onActive,onClick:e.onClick,scrollElementOffsetTop:e.scrollElementOffsetTop},null))])])}}),R8i={editorId:{type:String,default:void 0},class:{type:String,default:""},mdHeadingId:{type:Function,default:({text:e})=>e},scrollElement:{type:[String,Object],default:void 0},theme:{type:String,default:"light"},offsetTop:{type:Number,default:20},scrollElementOffsetTop:{type:Number,default:0},onClick:{type:Function,default:void 0},onActive:{type:Function,default:void 0},isScrollElementInShadow:{type:Boolean,default:!1},syncWith:{type:String,default:"preview"},catalogMaxDepth:{type:Number,default:void 0}},WY=Je({name:"MdCatalog",props:R8i,emits:["onClick","onActive"],setup(e,t){const n=e.editorId,r=`#${n}-preview-wrapper`,o=hs({list:[],show:!1,scrollElement:e.scrollElement||r}),s=nd(),a=fe(),l=fe(),d=fe(),u=fe(),h=nd(),g=fe({});Yi("scrollElementRef",l),Yi("roorNodeRef",u);const m=X(()=>{const O=[];return o.list.forEach((y,C)=>{if(e.catalogMaxDepth&&y.level>e.catalogMaxDepth)return;const{text:_,level:S,line:L}=y,E={level:S,text:_,line:L,index:C+1,active:s.value===y};if(O.length===0)O.push(E);else{let T=O[O.length-1];if(E.level>T.level)for(let D=T.level+1;D<=6;D++){const{children:P}=T;if(!P){T.children=[E];break}if(T=P[P.length-1],E.level<=T.level){P.push(E);break}}else O.push(E)}}),O}),v=()=>{var y;if(o.scrollElement instanceof HTMLElement)return o.scrollElement;let O=document;return(o.scrollElement===r||e.isScrollElementInShadow)&&(O=(y=a.value)==null?void 0:y.getRootNode()),O.querySelector(o.scrollElement)},f=O=>{if(O.length===0)return s.value=void 0,o.list=[],!1;const{activeHead:y,activeIndex:C}=O.reduce((L,E,T)=>{var P;let D=0;if(e.syncWith==="preview"){const Q=(P=u.value)==null?void 0:P.getElementById(e.mdHeadingId({text:E.text,level:E.level,index:T+1,currentToken:E.currentToken,nextToken:E.nextToken}));Q instanceof HTMLElement&&(D=E8i(Q,l.value))}else{const Q=h.value;if(Q){const M=Q.lineBlockAt(Q.state.doc.line(E.line+1).from).top,B=Q.scrollDOM.scrollTop;D=M-B}}return DL.minTop?{activeHead:E,activeIndex:T,minTop:D}:L},{activeHead:O[0],activeIndex:0,minTop:Number.MIN_SAFE_INTEGER});let _=y;const{catalogMaxDepth:S}=e;if(S&&_.level>S){for(let L=C;L>=0;L--){const E=O[L];if(E.level<=S){_=E;break}}if(_.level>S){const L=O.find(E=>E.level<=S);L&&(_=L)}}s.value=_,o.list=O},k=(O,y)=>{var C;g.value.top=y.offsetTop+fT(y,"padding-block-start")+"px",(C=e.onActive)==null||C.call(e,O,y),t.emit("onActive",O,y)},A=()=>{f(o.list)},p=O=>{var y,C,_;if((y=d.value)==null||y.removeEventListener("scroll",A),e.syncWith==="editor")d.value=(C=h.value)==null?void 0:C.scrollDOM;else{const S=v();l.value=S,d.value=S===document.documentElement?document:S}f(O),(_=d.value)==null||_.addEventListener("scroll",A)},b=O=>{h.value=O};pt([()=>e.syncWith,h,()=>e.catalogMaxDepth],()=>{p(o.list)}),An(()=>{u.value=a.value.getRootNode(),Pn.on(n,{name:jY,callback:p}),Pn.on(n,{name:mge,callback:b}),Pn.emit(n,vOn),Pn.emit(n,bOn)}),qs(()=>{var O;Pn.remove(n,jY,p),Pn.remove(n,mge,b),(O=d.value)==null||O.removeEventListener("scroll",A)});const w=(O,y)=>{var C;(C=e.onClick)==null||C.call(e,O,y),t.emit("onClick",O,y)};return()=>c("div",{class:[`${kt}-catalog`,e.theme==="dark"&&`${kt}-catalog-dark`,e.class||""],ref:a},[m.value.length>0&&c(sn,null,[c("div",{class:`${kt}-catalog-indicator`,style:g.value},null),c("div",{class:`${kt}-catalog-container`},[m.value.map(O=>c(wOn,{mdHeadingId:e.mdHeadingId,tocItem:O,key:`link-${O.level}-${O.text}`,onActive:k,onClick:w,scrollElementOffsetTop:e.scrollElementOffsetTop},null))])])])}});WY.install=e=>(e.component(WY.name,WY),e);async function OOn(e){if(typeof e=="string"){if(window.isSecureContext&&navigator.clipboard)return await navigator.clipboard.writeText(e);{const t=document.createElement("textarea");let n=!1;if(t.value=e,t.style.position="fixed",t.style.opacity=0,t.style.zIndex="-10000",t.style.top="-10000",document.body.appendChild(t),t.select(),n=document.execCommand("copy"),document.body.removeChild(t),n)return;throw new Error('Failed to copy content via "execCommand"!')}}}const I8i={copy:``,"collapse-tips":``,pin:``,"pin-off":``,check:``},pO=(e,t)=>typeof t[e]=="string"?t[e]:I8i[e],x1t=(e,t)=>{const n=r=>{const o=e.parentElement||document.body,s=o.offsetWidth,a=o.offsetHeight,{clientWidth:l,clientHeight:d}=document.documentElement,u=r.offsetX,h=r.offsetY,g=v=>{let f=v.x+document.body.scrollLeft-document.body.clientLeft-u,k=v.y+document.body.scrollTop-document.body.clientTop-h;f=f<1?1:f{document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",m)};document.addEventListener("mouseup",m)};return e.addEventListener("mousedown",n),()=>{e.removeEventListener("mousedown",n)}},Nv=(e,t,n="")=>{var o;const r=document.getElementById(t.id);if(r)n!==""&&(Reflect.get(window,n)?(o=t.onload)==null||o.call(r,new Event("load")):t.onload&&r.addEventListener("load",t.onload));else{const s={...t};s.onload=null;const a=P8i(e,s);t.onload&&a.addEventListener("load",t.onload),document.head.appendChild(a)}},M8i=(e,t)=>{var n;(n=document.getElementById(t.id))==null||n.remove(),Nv(e,t)},P8i=(e,t)=>{const n=document.createElement(e);return Object.keys(t).forEach(r=>{t[r]!==void 0&&(n[r]=t[r])}),n},F8i=(e,t)=>{const n=new Map;return e==null||e.forEach(r=>{let o=r.querySelector(`.${kt}-mermaid-action`);o?o.querySelector(`.${kt}-mermaid-copy`)||o.insertAdjacentHTML("beforeend",`${pO("copy",t.customIcon)}`):(r.insertAdjacentHTML("beforeend",`
${pO("copy",t.customIcon)}
`),o=r.querySelector(`.${kt}-mermaid-action`));const s=o.querySelector(`.${kt}-mermaid-copy`);let a=-1;const l=()=>{clearTimeout(a),OOn(r.dataset.content||"").then(()=>{s.innerHTML=pO("check",t.customIcon)}).catch(()=>{s.innerHTML=pO("copy",t.customIcon)}).finally(()=>{a=window.setTimeout(()=>{s.innerHTML=pO("copy",t.customIcon)},1500)})};s.addEventListener("click",l),n.set(r,{removeClick:()=>{s.removeEventListener("click",l)}})}),()=>{n.forEach(({removeClick:r})=>{r==null||r()}),n.clear()}},N8i=(()=>{const e=t=>{if(!t)return()=>{};const n=t.firstChild;let r=1,o=0,s=0,a=!1,l,d,u,h=1;const g=()=>{n.style.transform=`translate(${o}px, ${s}px) scale(${r})`},m=O=>{O.touches.length===1?(a=!0,l=O.touches[0].clientX-o,d=O.touches[0].clientY-s):O.touches.length===2&&(u=Math.hypot(O.touches[0].clientX-O.touches[1].clientX,O.touches[0].clientY-O.touches[1].clientY),h=r)},v=O=>{if(O.preventDefault(),a&&O.touches.length===1)o=O.touches[0].clientX-l,s=O.touches[0].clientY-d,g();else if(O.touches.length===2){const y=Math.hypot(O.touches[0].clientX-O.touches[1].clientX,O.touches[0].clientY-O.touches[1].clientY)/u,C=r;r=h*(1+(y-1));const _=(O.touches[0].clientX+O.touches[1].clientX)/2,S=(O.touches[0].clientY+O.touches[1].clientY)/2,L=n.getBoundingClientRect(),E=(_-L.left)/C,T=(S-L.top)/C;o-=E*(r-C),s-=T*(r-C),g()}},f=()=>{a=!1},k=O=>{O.preventDefault();const y=.02,C=r;O.deltaY<0?r+=y:r=Math.max(.1,r-y);const _=n.getBoundingClientRect(),S=O.clientX-_.left,L=O.clientY-_.top;o-=S/C*(r-C),s-=L/C*(r-C),g()},A=O=>{a=!0,l=O.clientX-o,d=O.clientY-s},p=O=>{a&&(o=O.clientX-l,s=O.clientY-d,g())},b=()=>{a=!1},w=()=>{a=!1};return t.addEventListener("touchstart",m,{passive:!1}),t.addEventListener("touchmove",v,{passive:!1}),t.addEventListener("touchend",f),t.addEventListener("wheel",k,{passive:!1}),t.addEventListener("mousedown",A),t.addEventListener("mousemove",p),t.addEventListener("mouseup",b),t.addEventListener("mouseleave",w),()=>{t.removeEventListener("touchstart",m),t.removeEventListener("touchmove",v),t.removeEventListener("touchend",f),t.removeEventListener("wheel",k),t.removeEventListener("mousedown",A),t.removeEventListener("mousemove",p),t.removeEventListener("mouseup",b),t.removeEventListener("mouseleave",w)}};return(t,n)=>{const r=new Map;return t==null||t.forEach(o=>{let s=o.querySelector(`.${kt}-mermaid-action`);s?s.querySelector(`.${kt}-mermaid-zoom`)||s.insertAdjacentHTML("beforeend",`${pO("pin-off",n.customIcon)}`):(o.insertAdjacentHTML("beforeend",`
${pO("pin-off",n.customIcon)}
`),s=o.querySelector(`.${kt}-mermaid-action`));const a=s.querySelector(`.${kt}-mermaid-zoom`),l=()=>{const d=r.get(o);if(d!=null&&d.removeEvent)d.removeEvent(),o.removeAttribute("data-grab"),r.set(o,{removeClick:d.removeClick}),a.innerHTML=pO("pin-off",n.customIcon);else{const u=e(o);o.setAttribute("data-grab",""),r.set(o,{removeEvent:u,removeClick:d==null?void 0:d.removeClick}),a.innerHTML=pO("pin",n.customIcon)}};a.addEventListener("click",l),r.set(o,{removeClick:()=>a.removeEventListener("click",l)})}),()=>{r.forEach(({removeEvent:o,removeClick:s})=>{o==null||o(),s==null||s()}),r.clear()}}})(),E1t={};function U8i(e){let t=E1t[e];if(t)return t;t=E1t[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);t.push(r)}for(let n=0;n=55296&&h<=57343?o+="���":o+=String.fromCharCode(h),s+=6;continue}}if((l&248)===240&&s+91114111?o+="����":(g-=65536,o+=String.fromCharCode(55296+(g>>10),56320+(g&1023))),s+=9;continue}}o+="�"}return o})}CW.defaultChars=";/?:@&=+$,#";CW.componentChars="";const T1t={};function j8i(e){let t=T1t[e];if(t)return t;t=T1t[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=j8i(t);let o="";for(let s=0,a=e.length;s=55296&&l<=57343){if(l>=55296&&l<=56319&&s+1=56320&&d<=57343){o+=encodeURIComponent(e[s]+e[s+1]),s++;continue}}o+="%EF%BF%BD";continue}o+=encodeURIComponent(e[s])}return o}zne.defaultChars=";/?:@&=+$,-_.!~*'()#";zne.componentChars="-_.!~*'()";function KZe(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function kge(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const W8i=/^([a-z0-9.+-]+:)/i,V8i=/:[0-9]*$/,z8i=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,H8i=["<",">",'"',"`"," ","\r",` `," "],$8i=["{","}","|","\\","^","`"].concat(H8i),X8i=["'"].concat($8i),Q1t=["%","/","?",";","#"].concat(X8i),D1t=["/","?","#"],G8i=255,B1t=/^[+a-z0-9A-Z_-]{0,63}$/,Y8i=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,R1t={javascript:!0,"javascript:":!0},I1t={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function JZe(e,t){if(e&&e instanceof kge)return e;const n=new kge;return n.parse(e,t),n}kge.prototype.parse=function(e,t){let n,r,o,s=e;if(s=s.trim(),!t&&e.split("#").length===1){const u=z8i.exec(s);if(u)return this.pathname=u[1],u[2]&&(this.search=u[2]),this}let a=W8i.exec(s);if(a&&(a=a[0],n=a.toLowerCase(),this.protocol=a,s=s.substr(a.length)),(t||a||s.match(/^\/\/[^@\/]+@[^@\/]+/))&&(o=s.substr(0,2)==="//",o&&!(a&&R1t[a])&&(s=s.substr(2),this.slashes=!0)),!R1t[a]&&(o||a&&!I1t[a])){let u=-1;for(let f=0;f127?b+="x":b+=p[w];if(!b.match(B1t)){const w=f.slice(0,k),O=f.slice(k+1),y=p.match(Y8i);y&&(w.push(y[1]),O.unshift(y[2])),O.length&&(s=O.join(".")+s),this.hostname=w.join(".");break}}}}this.hostname.length>G8i&&(this.hostname=""),v&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const l=s.indexOf("#");l!==-1&&(this.hash=s.substr(l),s=s.slice(0,l));const d=s.indexOf("?");return d!==-1&&(this.search=s.substr(d),s=s.slice(0,d)),s&&(this.pathname=s),I1t[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};kge.prototype.parseHost=function(e){let t=V8i.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const Z8i=Object.freeze(Object.defineProperty({__proto__:null,decode:CW,encode:zne,format:KZe,parse:JZe},Symbol.toStringTag,{value:"Module"})),yOn=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,COn=/[\0-\x1F\x7F-\x9F]/,q8i=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,eqe=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,_On=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,SOn=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,K8i=Object.freeze(Object.defineProperty({__proto__:null,Any:yOn,Cc:COn,Cf:q8i,P:eqe,S:_On,Z:SOn},Symbol.toStringTag,{value:"Module"})),J8i=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),eLi=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var Q_e;const tLi=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),nLi=(Q_e=String.fromCodePoint)!==null&&Q_e!==void 0?Q_e:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function iLi(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=tLi.get(e))!==null&&t!==void 0?t:e}var kg;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(kg||(kg={}));const rLi=32;var t9;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(t9||(t9={}));function wMe(e){return e>=kg.ZERO&&e<=kg.NINE}function oLi(e){return e>=kg.UPPER_A&&e<=kg.UPPER_F||e>=kg.LOWER_A&&e<=kg.LOWER_F}function sLi(e){return e>=kg.UPPER_A&&e<=kg.UPPER_Z||e>=kg.LOWER_A&&e<=kg.LOWER_Z||wMe(e)}function aLi(e){return e===kg.EQUALS||sLi(e)}var Zf;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(Zf||(Zf={}));var S5;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(S5||(S5={}));class lLi{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=Zf.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=S5.Strict}startEntity(t){this.decodeMode=t,this.state=Zf.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case Zf.EntityStart:return t.charCodeAt(n)===kg.NUM?(this.state=Zf.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=Zf.NamedEntity,this.stateNamedEntity(t,n));case Zf.NumericStart:return this.stateNumericStart(t,n);case Zf.NumericDecimal:return this.stateNumericDecimal(t,n);case Zf.NumericHex:return this.stateNumericHex(t,n);case Zf.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|rLi)===kg.LOWER_X?(this.state=Zf.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=Zf.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,o){if(n!==r){const s=r-n;this.result=this.result*Math.pow(o,s)+parseInt(t.substr(n,s),o),this.consumed+=s}}stateNumericHex(t,n){const r=n;for(;n>14;for(;n>14,s!==0){if(a===kg.SEMI)return this.emitNamedEntityData(this.treeIndex,s,this.consumed+this.excess);this.decodeMode!==S5.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,o=(r[n]&t9.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,o,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:o}=this;return this.emitCodePoint(n===1?o[t]&~t9.VALUE_LENGTH:o[t+1],r),n===3&&this.emitCodePoint(o[t+2],r),r}end(){var t;switch(this.state){case Zf.NamedEntity:return this.result!==0&&(this.decodeMode!==S5.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case Zf.NumericDecimal:return this.emitNumericEntity(0,2);case Zf.NumericHex:return this.emitNumericEntity(0,3);case Zf.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case Zf.EntityStart:return 0}}}function LOn(e){let t="";const n=new lLi(e,r=>t+=nLi(r));return function(o,s){let a=0,l=0;for(;(l=o.indexOf("&",l))>=0;){t+=o.slice(a,l),n.startEntity(s);const u=n.write(o,l+1);if(u<0){a=l+n.end();break}a=l+u,l=u===0?a+1:a}const d=t+o.slice(a);return t="",d}}function cLi(e,t,n,r){const o=(t&t9.BRANCH_LENGTH)>>7,s=t&t9.JUMP_TABLE;if(o===0)return s!==0&&r===s?n:-1;if(s){const d=r-s;return d<0||d>=o?-1:e[n+d]-1}let a=n,l=a+o-1;for(;a<=l;){const d=a+l>>>1,u=e[d];if(ur)l=d-1;else return e[d+o]}return-1}const dLi=LOn(J8i);LOn(eLi);function xOn(e,t=S5.Legacy){return dLi(e,t)}function uLi(e){return Object.prototype.toString.call(e)}function tqe(e){return uLi(e)==="[object String]"}const hLi=Object.prototype.hasOwnProperty;function fLi(e,t){return hLi.call(e,t)}function tpe(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){if(n){if(typeof n!="object")throw new TypeError(n+"must be object");Object.keys(n).forEach(function(r){e[r]=n[r]})}}),e}function EOn(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function nqe(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function vge(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const TOn=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,gLi=/&([a-z#][a-z0-9]{1,31});/gi,mLi=new RegExp(TOn.source+"|"+gLi.source,"gi"),kLi=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function vLi(e,t){if(t.charCodeAt(0)===35&&kLi.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return nqe(r)?vge(r):e}const n=xOn(e);return n!==e?n:e}function ALi(e){return e.indexOf("\\")<0?e:e.replace(TOn,"$1")}function _W(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(mLi,function(t,n,r){return n||vLi(t,r)})}const pLi=/[&<>"]/,bLi=/[&<>"]/g,wLi={"&":"&","<":"<",">":">",'"':"""};function OLi(e){return wLi[e]}function h6(e){return pLi.test(e)?e.replace(bLi,OLi):e}const yLi=/[.?*+^$[\]\\(){}|-]/g;function CLi(e){return e.replace(yLi,"\\$&")}function id(e){switch(e){case 9:case 32:return!0}return!1}function rK(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function oK(e){return eqe.test(e)||_On.test(e)}function sK(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function npe(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const _Li={mdurl:Z8i,ucmicro:K8i},SLi=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:EOn,assign:tpe,escapeHtml:h6,escapeRE:CLi,fromCodePoint:vge,has:fLi,isMdAsciiPunct:sK,isPunctChar:oK,isSpace:id,isString:tqe,isValidEntityCode:nqe,isWhiteSpace:rK,lib:_Li,normalizeReference:npe,unescapeAll:_W,unescapeMd:ALi},Symbol.toStringTag,{value:"Module"}));function LLi(e,t,n){let r,o,s,a;const l=e.posMax,d=e.pos;for(e.pos=t+1,r=1;e.pos32))return s;if(r===41){if(a===0)break;a--}o++}return t===o||a!==0||(s.str=_W(e.slice(t,o)),s.pos=o,s.ok=!0),s}function ELi(e,t,n,r){let o,s=t;const a={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)a.str=r.str,a.marker=r.marker;else{if(s>=n)return a;let l=e.charCodeAt(s);if(l!==34&&l!==39&&l!==40)return a;t++,s++,l===40&&(l=41),a.marker=l}for(;s"+h6(s.content)+""};Gy.code_block=function(e,t,n,r,o){const s=e[t];return""+h6(e[t].content)+` `};Gy.fence=function(e,t,n,r,o){const s=e[t],a=s.info?_W(s.info).trim():"";let l="",d="";if(a){const h=a.split(/(\s+)/g);l=h[0],d=h.slice(2).join("")}let u;if(n.highlight?u=n.highlight(s.content,l,d)||h6(s.content):u=h6(s.content),u.indexOf("{e:for(let o=n.node.firstChild,s=0,a=null;;){for(;!o;){if(!s)break e;s--,o=a.nextSibling,a=a.parent}t&&o.name==t||o.name=="SpecList"?(s++,a=o,o=o.firstChild):(o.name=="DefName"&&r(o,e),o=o.nextSibling)}return!0}}const K6r={FunctionDecl:uP("function"),VarDecl:uP("var","VarSpec"),ConstDecl:uP("constant","ConstSpec"),TypeDecl:uP("type","TypeSpec"),ImportDecl:uP("constant","ImportSpec"),Parameter:uP("var"),__proto__:null};function fLn(e,t){let n=Dvt.get(t);if(n)return n;let r=[],o=!0;function s(a,l){let d=e.sliceString(a.from,a.to);r.push({label:d,type:l})}return t.cursor(cl.IncludeAnonymous).iterate(a=>{if(o)o=!1;else if(a.name){let l=K6r[a.name];if(l&&l(a,s)||hLn.has(a.name))return!1}else if(a.to-a.from>8192){for(let l of fLn(e,a.node))r.push(l);return!1}}),Dvt.set(t,r),r}const Bvt=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,gLn=["String","LineComment","BlockComment","DefName","LabelName","FieldName",".","?."],mLn=e=>{let t=tc(e.state).resolveInner(e.pos,-1);if(gLn.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&Bvt.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let o=t;o;o=o.parent)hLn.has(o.name)&&(r=r.concat(fLn(e.state.doc,o)));return{options:r,from:n?t.from:e.pos,validFor:Bvt}},xue=Vd.define({name:"go",parser:q6r.configure({props:[Vu.add({IfStatement:Pu({except:/^\s*({|else\b)/}),LabeledStatement:mpe,"SwitchBlock SelectBlock":e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n||r?0:e.unit)},Block:Xv({closing:"}"}),BlockComment:()=>null,Statement:Pu({except:/^{/})}),kh.add({"Block SwitchBlock SelectBlock LiteralValue InterfaceType StructType SpecList":bA,BlockComment(e){return{from:e.from+2,to:e.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case\b|default\b|\})$/}});let J6r=e=>({label:e,type:"keyword"});const eEr="interface struct chan map package go return break continue goto fallthrough else defer range true false nil".split(" ").map(J6r);function tEr(){let e=uLn.concat(eEr);return new wd(xue,[xue.data.of({autocomplete:bpe(gLn,Kne(e))}),xue.data.of({autocomplete:mLn})])}const nEr=Object.freeze(Object.defineProperty({__proto__:null,go:tEr,goLanguage:xue,localCompletionSource:mLn,snippets:uLn},Symbol.toStringTag,{value:"Module"})),iEr=Xd({null:ve.null,instanceof:ve.operatorKeyword,this:ve.self,"new super assert open to with void":ve.keyword,"class interface extends implements enum var":ve.definitionKeyword,"module package import":ve.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":ve.controlKeyword,"requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws":ve.modifier,IntegerLiteral:ve.integer,FloatingPointLiteral:ve.float,"StringLiteral TextBlock":ve.string,CharacterLiteral:ve.character,LineComment:ve.lineComment,BlockComment:ve.blockComment,BooleanLiteral:ve.bool,PrimitiveType:ve.standard(ve.typeName),TypeName:ve.typeName,Identifier:ve.variableName,"MethodName/Identifier":ve.function(ve.variableName),Definition:ve.definition(ve.variableName),ArithOp:ve.arithmeticOperator,LogicOp:ve.logicOperator,BitOp:ve.bitwiseOperator,CompareOp:ve.compareOperator,AssignOp:ve.definitionOperator,UpdateOp:ve.updateOperator,Asterisk:ve.punctuation,Label:ve.labelName,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace,".":ve.derefOperator,", ;":ve.separator}),rEr={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:238,open:267,module:269,requires:274,transitive:276,exports:278,to:280,opens:282,uses:284,provides:286,with:288,package:292,import:296,if:308,else:310,while:314,for:318,var:325,assert:332,switch:336,case:342,do:346,break:350,continue:354,return:358,throw:364,try:368,catch:372,finally:380},oEr=zd.deserialize({version:14,states:"##jQ]QPOOQ$wQPOOO(bQQO'#H^O*iQQO'#CbOOQO'#Cb'#CbO*pQPO'#CaO*xOSO'#CpOOQO'#Hc'#HcOOQO'#Cu'#CuO,eQPO'#D_O-OQQO'#HmOOQO'#Hm'#HmO/gQQO'#HhO/nQQO'#HhOOQO'#Hh'#HhOOQO'#Hg'#HgO1rQPO'#DUO2PQPO'#GnO4wQPO'#D_O5OQPO'#DzO*pQPO'#E[O5qQPO'#E[OOQO'#DV'#DVO7SQQO'#HaO9^QQO'#EeO9eQPO'#EdO9jQPO'#EfOOQO'#Hb'#HbO7jQQO'#HbO:pQQO'#FhO:wQPO'#ExO:|QPO'#E}O:|QPO'#FPOOQO'#Ha'#HaOOQO'#HY'#HYOOQO'#Gh'#GhOOQO'#HX'#HXO<^QPO'#FiOOQO'#HW'#HWOOQO'#Gg'#GgQ]QPOOOOQO'#Hs'#HsOQQPO'#GSO>]QPO'#GUO=kQPO'#GWO:|QPO'#GXO>dQPO'#GZO?QQQO'#HiO?mQQO'#CuO?tQPO'#HxO@SQPO'#D_O@rQPO'#DpO?wQPO'#DqO@|QPO'#HxOA_QPO'#DpOAgQPO'#IROAlQPO'#E`OOQO'#Hr'#HrOOQO'#Gm'#GmQ$wQPOOOAtQPO'#HsOOQO'#H^'#H^OCsQQO,58{OOQO'#H['#H[OOOO'#Gi'#GiOEfOSO,59[OOQO,59[,59[OOQO'#Hi'#HiOFVQPO,59eOGXQPO,59yOOQO-E:f-E:fO*pQPO,58zOG{QPO,58zO*pQPO,5;}OHQQPO'#DQOHVQPO'#DQOOQO'#Gk'#GkOIVQQO,59jOOQO'#Dm'#DmOJqQPO'#HuOJ{QPO'#DlOKZQPO'#HtOKcQPO,5<_OKhQPO,59^OLRQPO'#CxOOQO,59c,59cOLYQPO,59bOLeQQO'#H^ONgQQO'#CbO!!iQPO'#D_O!#nQQO'#HmO!$OQQO,59pO!$VQPO'#DvO!$eQPO'#H|O!$mQPO,5:`O!$rQPO,5:`O!%YQPO,5;nO!%eQPO'#ITO!%pQPO,5;eO!%uQPO,5=YOOQO-E:l-E:lOOQO,5:f,5:fO!']QPO,5:fO!'dQPO,5:vO?tQPO,5<_O*pQPO,5:vO_,5>_O!*sQPO,5:gO!+RQPO,5:qO!+ZQPO,5:lO!+fQPO,5>[O!$VQPO,5>[O!'iQPO,59UO!+qQQO,58zO!+yQQO,5;}O!,RQQO,5gQPO,5gQPO,5<}O!2mQPO,59jO!2zQPO'#HuO!3RQPO,59xO!3WQPO,5>dO?tQPO,59xO!3cQPO,5:[OAlQPO,5:zO!3kQPO'#DrO?wQPO'#DrO!3vQPO'#HyO!4OQPO,5:]O?tQPO,5>dO!(hQPO,5>dOAgQPO,5>mOOQO,5:[,5:[O!$rQPO'#DtOOQO,5>m,5>mO!4TQPO'#EaOOQO,5:z,5:zO!7UQPO,5:zO!(hQPO'#DxOOQO-E:k-E:kOOQO,5:y,5:yO*pQPO,58}O!7ZQPO'#ChOOQO1G.k1G.kOOOO-E:g-E:gOOQO1G.v1G.vO!+qQQO1G.fO*pQPO1G.fO!7eQQO1G1iOOQO,59l,59lO!7mQPO,59lOOQO-E:i-E:iO!7rQPO,5>aO!8ZQPO,5:WO`OOQO1G1y1G1yOOQO1G.x1G.xO!8{QPO'#CyO!9kQPO'#HmO!9uQPO'#CzO!:TQPO'#HlO!:]QPO,59dOOQO1G.|1G.|OLYQPO1G.|O!:sQPO,59eO!;QQQO'#H^O!;cQQO'#CbOOQO,5:b,5:bOhOOQO1G/z1G/zO!oOOQO1G1P1G1POOQO1G0Q1G0QO!=oQPO'#E]OOQO1G0b1G0bO!>`QPO1G1yO!'dQPO1G0bO!*sQPO1G0RO!+RQPO1G0]O!+ZQPO1G0WOOQO1G/]1G/]O!>eQQO1G.pO9eQPO1G0jO*pQPO1G0jOgQPO'#GaOOQO1G2a1G2aO#2zQPO1G2iO#6xQPO,5>gOOQO1G/d1G/dOOQO1G4O1G4OO#7ZQPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO!7UQPO1G0fOOQO,5:^,5:^O!(hQPO'#DsO#7`QPO,5:^O?wQPO'#GrO#7kQPO,5>eOOQO1G/w1G/wOAgQPO'#H{O#7sQPO1G4OO?tQPO1G4OOOQO1G4X1G4XO!#YQPO'#DvO!!iQPO'#D_OOQO,5:{,5:{O#8OQPO,5:{O#8OQPO,5:{O#8VQQO'#HaO#9hQQO'#HbO#9rQQO'#EbO#9}QPO'#EbO#:VQPO'#IOOOQO,5:d,5:dOOQO1G.i1G.iO#:bQQO'#EeO#:rQQO'#H`O#;SQPO'#FTOOQO'#H`'#H`O#;^QPO'#H`O#;{QPO'#IWO#WOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#=cQQO1G/{OOQO1G/}1G/}O#=hQPO1G/{OOQO1G/|1G/|OdQPO,5:wOOQO,5:w,5:wOOQO7+'e7+'eOOQO7+%|7+%|OOQO7+%m7+%mO!KqQPO7+%mO!KvQPO7+%mO!LOQPO7+%mOOQO7+%w7+%wO!LnQPO7+%wOOQO7+%r7+%rO!MmQPO7+%rO!MrQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO9eQPO7+&UO9eQPO,5>[O#?TQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO:|QPO'#GlO#?cQPO,5>]OOQO1G/_1G/_O:|QPO7+&lO#?nQQO,59eO#@tQPO,59vOOQO,59v,59vOOQO,5:h,5:hOOQO'#EP'#EPOOQO,5:i,5:iO#@{QPO'#EYOgQPO,5jO#M{QPO,59TO#NSQPO'#IVO#N[QPO,5;oO*pQPO'#G{O#NaQPO,5>rOOQO1G.n1G.nOOQO<Z,5>ZOOQO,5=U,5=UOOQO-E:h-E:hO#NvQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<kO$%tQPO'#EZOOQO1G0_1G0_O$%{QPO1G0_O?tQPO,5:pOOQO-E:s-E:sOOQO1G0Z1G0ZOOQO1G0n1G0nO$&QQQO1G0nOOQO<qOOQO1G1Z1G1ZO$+dQPO'#FUOOQO,5=g,5=gOOQO-E:y-E:yO$+iQPO'#GoO$+vQPO,5>cOOQO1G/u1G/uOOQO<sAN>sO!KqQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O9eQPOAN?[OOQO1G0`1G0`O$,_QPO1G0`OOQO,5=b,5=bOOQO-E:t-E:tO$,mQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1`1G1`O$,tQQO1G1`OOQO-E:{-E:{O$,|QQO'#IYO$,wQPO1G1`O$&gQPO1G1`O*pQPO1G1`OOQOAN@]AN@]O$-XQQO<tO$.qQPO7+&zO$.vQQO'#IZOOQOAN@nAN@nO$/RQQOAN@nOOQOAN@jAN@jO$/YQPOAN@jO$/_QQO<uOOQOG26YG26YOOQOG26UG26UOOQO<lOWiXuiX%}iX&PiX&RiX&_iX~OZ!aX~P?XOu#OO%}TO&P#SO&R#SO~O%}TO~P3gOg^Oh^Ov#pO!u#rO!z#qO&_!hO&t#oO~O&P!cO&R!dO~P@ZOg^Oh^O%}TO&P!cO&R!dO~O}cO!P%aO~OZ%bO~O}%dO!m%gO~O}cOg&gXh&gXv&gX!S&gX!T&gX!U&gX!V&gX!W&gX!X&gX!Y&gX!Z&gX!]&gX!^&gX!_&gX!u&gX!z&gX%}&gX&P&gX&R&gX&_&gX&t&gX~OW%jOZ%kOgTahTa%}Ta&PTa&RTa~OvTa!STa!TTa!UTa!VTa!WTa!XTa!YTa!ZTa!]Ta!^Ta!_Ta!uTa!zTa#yTa#zTa$WTa$hTa&tTa&_TauTaYTaqTa|Ta!PTa~PC[O&W%nO&Y!tO~Ou#OO%}TOqma&^maYma&nma!Pma~O&vma}ma!rma~PEnO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!ZzO!]yO!^yO!_yO~Og!Rah!Rav!Ra!u!Ra!z!Ra$h!Ra&P!Ra&R!Ra&t!Ra&_!Ra~PFdO#z%pO~Os%rO~Ou%sO%}TO~Ou#OO%}ra&Pra&Rra&vraYrawra&nra&qra!Pra&^raqra~OWra#_ra#ara#bra#dra#era#fra#gra#hra#ira#kra#ora#rra&_ra#prasra|ra~PH_Ou#OO%}TOq&iX!P&iX!b&iX~OY&iX#p&iX~PJ`O!b%vOq!`X!P!`XY!`X~Oq%wO!P&hX~O!P%yO~Ov%zO~Og^Oh^O%}0oO&P!wO&RWO&b%}O~O&^&`P~PKmO%}TO&P!wO&RWO~OW&QXYiXY!aXY&QXZ&QXq!aXu&QXwiX!b&QX#]&QX#_&QX#a&QX#b&QX#d&QX#e&QX#f&QX#g&QX#h&QX#i&QX#k&QX#o&QX#r&QX&^&QX&_&QX&niX&n&QX&qiX&viX&v&QX&x!aX~P?XOWUXYUXY!aXY&]XZUXq!aXuUXw&]X!bUX#]UX#_UX#aUX#bUX#dUX#eUX#fUX#gUX#hUX#iUX#kUX#oUX#rUX&^UX&_UX&nUX&n&]X&q&]X&vUX&v&]X&x!aX~P>lOg^Oh^O%}TO&P!wO&RWOg!RXh!RX&P!RX&R!RX~PFdOu#OOw&XO%}TO&P&UO&R&TO&q&WO~OW#XOY&aX&n&aX&v&aX~P!#YOY&ZO~P9oOg^Oh^O&P!wO&RWO~Oq&]OY&pX~OY&_O~Og^Oh^O%}TO&P!wO&RWOY&pP~PFdOY&dO&n&bO&v#vO~Oq&eO&x$ZOY&wX~OY&gO~O%}TOg%bah%bav%ba!S%ba!T%ba!U%ba!V%ba!W%ba!X%ba!Y%ba!Z%ba!]%ba!^%ba!_%ba!u%ba!z%ba$h%ba&P%ba&R%ba&t%ba&_%ba~O|&hO~P]O}&iO~Op&uOw&vO&PSO&R!qO&_#YO~Oz&tO~P!'iOz&xO&PSO&R!qO&_#YO~OY&eP~P:|Og^Oh^O%}TO&P!wO&RWO~O}cO~P:|OW#XOu#OO%}TO&v&aX~O#r$WO!P#sa#_#sa#a#sa#b#sa#d#sa#e#sa#f#sa#g#sa#h#sa#i#sa#k#sa#o#sa&^#sa&_#sa&n#saY#sa#p#sas#saq#sa|#sa~Oo'_O}'^O!r'`O&_!hO~O}'eO!r'`O~Oo'iO}'hO&_!hO~OZ#xOu'mO%}TO~OW%jO}'sO~OW%jO!P'uO~OW'vO!P'wO~O$h!WO&P0qO&R0pO!P&eP~P/uO!P(SO#p(TO~P9oO}(UO~O$c(WO~O!P(XO~O!P(YO~O!P(ZO~P9oO!P(]O~P9oOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdO%Q(hO%U(iOZ$}a_$}a`$}aa$}ab$}ac$}ae$}ag$}ah$}ap$}av$}aw$}az$}a}$}a!P$}a!S$}a!T$}a!U$}a!V$}a!W$}a!X$}a!Y$}a!Z$}a![$}a!]$}a!^$}a!_$}a!u$}a!z$}a#f$}a#r$}a#t$}a#u$}a#y$}a#z$}a$W$}a$Y$}a$`$}a$c$}a$e$}a$h$}a$l$}a$n$}a$s$}a$u$}a$w$}a$y$}a$|$}a%O$}a%w$}a%}$}a&P$}a&R$}a&X$}a&t$}a|$}a$a$}a$q$}a~O}ra!rra'Ora~PH_OZ%bO~PJ`O!P(mO~O!m%gO}&la!P&la~O}cO!P(pO~Oo(tOq!fX&^!fX~Oq(vO&^&mX~O&^(xO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op)UOv{Ow)TOz!OO|)PO}cO!PvO![!`O!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&_#YO&tdO~PFdO}%dO~O})]OY&zP~P:|OW%jO!P)dO~Os)eO~Ou#OO%}TOq&ia!P&ia!b&iaY&ia#p&ia~O})fO~P:|Oq%wO!P&ha~Og^Oh^O%}0oO&P!wO&RWO~O&b)mO~P!8jOu#OO%}TOq&aX&^&aXY&aX&n&aX!P&aX~O}&aX!r&aX~P!9SOo)oOp)oOqnX&^nX~Oq)pO&^&`X~O&^)rO~Ou#OOw)tO%}TO&PSO&R!qO~OYma&nma&vma~P!:bOW&QXY!aXq!aXu!aX%}!aX~OWUXY!aXq!aXu!aX%}!aX~OW)wO~Ou#OO%}TO&P#SO&R#SO&q)yO~Og^Oh^O%}TO&P!wO&RWO~PFdOq&]OY&pa~Ou#OO%}TO&P#SO&R#SO&q&WO~OY)|O~OY*PO&n&bO~Oq&eOY&wa~Og^Oh^Ov{O|*XO!u}O%}TO&P!wO&RWO&tdO~PFdO!P*YO~OW^iZ#XXu^i!P^i!b^i#]^i#_^i#a^i#b^i#d^i#e^i#f^i#g^i#h^i#i^i#k^i#o^i#r^i&^^i&_^i&n^i&v^iY^i#p^is^iq^i|^i~OW*iO~Os*jO~P9oOz*kO&PSO&R!qO~O!P]iY]i#p]is]iq]i|]i~P9oOq*lOY&eX!P&eX~P9oOY*nO~O#f$SO#g$TO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#h$UO#i$UO~P!AmO#_#|O#d$QO#e$RO#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO&n#{O!P#^i#b#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#a#^i~P!CUO#a#}O~P!CUO#_#|O#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO!P#^i#a#^i#b#^i#d#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O&n#^i~P!DtO&n#{O~P!DtO#f$SO#g$TO#k$YO#r$WO!P#^i#a#^i#b#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#_#|O#d$QO#h$UO#i$UO&^#zO&_#zO&n#{O~P!FdO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#f#^i#h#^i#i#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#g$TO~P!G{O#g#^i~P!G{O#h#^i#i#^i~P!AmO#p*oO~P9oO#_&aX#a&aX#b&aX#d&aX#e&aX#f&aX#g&aX#h&aX#i&aX#k&aX#o&aX#r&aX&_&aX#p&aXs&aX|&aX~P!9SO!P#liY#li#p#lis#liq#li|#li~P9oO|*rO~P$wO}'^O~O}'^O!r'`O~Oo'_O}'^O!r'`O~O%}TO&P#SO&R#SO|&sP!P&sP~PFdO}'eO~Og^Oh^Ov{O|+PO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdO}'hO~Oo'iO}'hO~Os+RO~P:|Ou+TO%}TO~Ou'mO})fO%}TOW#Zi!P#Zi#_#Zi#a#Zi#b#Zi#d#Zi#e#Zi#f#Zi#g#Zi#h#Zi#i#Zi#k#Zi#o#Zi#r#Zi&^#Zi&_#Zi&n#Zi&v#ZiY#Zi#p#Zis#Ziq#Zi|#Zi~O}'^OW&diu&di!P&di#_&di#a&di#b&di#d&di#e&di#f&di#g&di#h&di#i&di#k&di#o&di#r&di&^&di&_&di&n&di&v&diY&di#p&dis&diq&di|&di~O#}+]O$P+^O$R+^O$S+_O$T+`O~O|+[O~P##nO$Z+aO&PSO&R!qO~OW+bO!P+cO~O$a+dOZ$_i_$_i`$_ia$_ib$_ic$_ie$_ig$_ih$_ip$_iv$_iw$_iz$_i}$_i!P$_i!S$_i!T$_i!U$_i!V$_i!W$_i!X$_i!Y$_i!Z$_i![$_i!]$_i!^$_i!_$_i!u$_i!z$_i#f$_i#r$_i#t$_i#u$_i#y$_i#z$_i$W$_i$Y$_i$`$_i$c$_i$e$_i$h$_i$l$_i$n$_i$s$_i$u$_i$w$_i$y$_i$|$_i%O$_i%w$_i%}$_i&P$_i&R$_i&X$_i&t$_i|$_i$q$_i~Og^Oh^O$h#sO&P!wO&RWO~O!P+hO~P:|O!P+iO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op!POv{OwkOz!OO}cO!PvO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!Z+nO![!`O!]yO!^yO!_yO!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$q+oO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&tdO~O|+mO~P#)QOW&QXY&QXZ&QXu&QX!P&QX&viX&v&QX~P?XOWUXYUXZUXuUX!PUX&vUX&v&]X~P>lOW#tOu#uO&v#vO~OW&UXY%XXu&UX!P%XX&v&UX~OZ#XX~P#.VOY+uO!P+sO~O%Q(hO%U(iOZ$}i_$}i`$}ia$}ib$}ic$}ie$}ig$}ih$}ip$}iv$}iw$}iz$}i}$}i!P$}i!S$}i!T$}i!U$}i!V$}i!W$}i!X$}i!Y$}i!Z$}i![$}i!]$}i!^$}i!_$}i!u$}i!z$}i#f$}i#r$}i#t$}i#u$}i#y$}i#z$}i$W$}i$Y$}i$`$}i$c$}i$e$}i$h$}i$l$}i$n$}i$s$}i$u$}i$w$}i$y$}i$|$}i%O$}i%w$}i%}$}i&P$}i&R$}i&X$}i&t$}i|$}i$a$}i$q$}i~OZ+xO~O%Q(hO%U(iOZ%Vi_%Vi`%Via%Vib%Vic%Vie%Vig%Vih%Vip%Viv%Viw%Viz%Vi}%Vi!P%Vi!S%Vi!T%Vi!U%Vi!V%Vi!W%Vi!X%Vi!Y%Vi!Z%Vi![%Vi!]%Vi!^%Vi!_%Vi!u%Vi!z%Vi#f%Vi#r%Vi#t%Vi#u%Vi#y%Vi#z%Vi$W%Vi$Y%Vi$`%Vi$c%Vi$e%Vi$h%Vi$l%Vi$n%Vi$s%Vi$u%Vi$w%Vi$y%Vi$|%Vi%O%Vi%w%Vi%}%Vi&P%Vi&R%Vi&X%Vi&t%Vi|%Vi$a%Vi$q%Vi~Ou#OO%}TO}&oa!P&oa!m&oa~O!P,OO~Oo(tOq!fa&^!fa~Oq(vO&^&ma~O!m%gO}&li!P&li~O|,XO~P]OW,ZO~P5xOW&UXu&UX#_&UX#a&UX#b&UX#d&UX#e&UX#f&UX#g&UX#h&UX#i&UX#k&UX#o&UX#r&UX&^&UX&_&UX&n&UX&v&UX~OZ#xO!P&UX~P#8^OW$gOZ#xO&v#vO~Op,]Ow,]O~Oq,^O}&rX!P&rX~O!b,`O#]#wOY&UXZ#XX~P#8^OY&SXq&SX|&SX!P&SX~P9oO})]O|&yP~P:|OY&SXg%[Xh%[X%}%[X&P%[X&R%[Xq&SX|&SX!P&SX~Oq,cOY&zX~OY,eO~O})fO|&kP~P:|Oq&jX!P&jX|&jXY&jX~P9oO&bTa~PC[Oo)oOp)oOqna&^na~Oq)pO&^&`a~OW,mO~Ow,nO~Ou#OO%}TO&P,rO&R,qO~Og^Oh^Ov#pO!u#rO&P!wO&RWO&t#oO~Og^Oh^Ov{O|,wO!u}O%}TO&P!wO&RWO&tdO~PFdOw-SO&PSO&R!qO&_#YO~Oq*lOY&ea!P&ea~O#_ma#ama#bma#dma#ema#fma#gma#hma#ima#kma#oma#rma&_ma#pmasma|ma~PEnO|-WO~P$wOZ#xO}'^Oq!|X|!|X!P!|X~Oq-[O|&sX!P&sX~O|-_O!P-^O~O&_!hO~P5VOg^Oh^Ov{O|-cO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdOs-dO~P9oOs-dO~P:|O}'^OW&dqu&dq!P&dq#_&dq#a&dq#b&dq#d&dq#e&dq#f&dq#g&dq#h&dq#i&dq#k&dq#o&dq#r&dq&^&dq&_&dq&n&dq&v&dqY&dq#p&dqs&dqq&dq|&dq~O|-hO~P##nO!W-lO$O-lO&PSO&R!qO~O!P-oO~O$Z-pO&PSO&R!qO~O!b%vO#p-rOq!`X!P!`X~O!P-tO~P9oO!P-tO~P:|O!P-wO~P9oO|-yO~P#)QO![$aO#p-zO~O!P-|O~O!b-}O~OY.QOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOY.QO!P.RO~O%Q(hO%U(iOZ%Vq_%Vq`%Vqa%Vqb%Vqc%Vqe%Vqg%Vqh%Vqp%Vqv%Vqw%Vqz%Vq}%Vq!P%Vq!S%Vq!T%Vq!U%Vq!V%Vq!W%Vq!X%Vq!Y%Vq!Z%Vq![%Vq!]%Vq!^%Vq!_%Vq!u%Vq!z%Vq#f%Vq#r%Vq#t%Vq#u%Vq#y%Vq#z%Vq$W%Vq$Y%Vq$`%Vq$c%Vq$e%Vq$h%Vq$l%Vq$n%Vq$s%Vq$u%Vq$w%Vq$y%Vq$|%Vq%O%Vq%w%Vq%}%Vq&P%Vq&R%Vq&X%Vq&t%Vq|%Vq$a%Vq$q%Vq~Ou#OO%}TO}&oi!P&oi!m&oi~O&n&bOq!ga&^!ga~O!m%gO}&lq!P&lq~O|.^O~P]Op.`Ow&vOz&tO&PSO&R!qO&_#YO~O!P.aO~Oq,^O}&ra!P&ra~O})]O~P:|Oq.gO|&yX~O|.iO~Oq,cOY&za~Oq.mO|&kX~O|.oO~Ow.pO~Oq!aXu!aX!P!aX!b!aX%}!aX~OZ&QX~P#N{OZUX~P#N{O!P.qO~OZ.rO~OW^yZ#XXu^y!P^y!b^y#]^y#_^y#a^y#b^y#d^y#e^y#f^y#g^y#h^y#i^y#k^y#o^y#r^y&^^y&_^y&n^y&v^yY^y#p^ys^yq^y|^y~OY%`aq%`a!P%`a~P9oO!P#nyY#ny#p#nys#nyq#ny|#ny~P9oO}'^Oq!|a|!|a!P!|a~OZ#xO}'^Oq!|a|!|a!P!|a~O%}TO&P#SO&R#SOq%jX|%jX!P%jX~PFdOq-[O|&sa!P&sa~O|!}X~P$wO|/PO~Os/QO~P9oOW%jO!P/RO~OW%jO$Q/WO&PSO&R!qO!P&|P~OW%jO$U/XO~O!P/YO~O!b%vO#p/[Oq!`X!P!`X~OY/^O~O!P/_O~P9oO#p/`O~P9oO!b/bO~OY/cOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOW#[Ou&[X%}&[X&P&[X&R&[X'O&[X~O&_#YO~P$)QOu#OO%}TO'O/eO&P%SX&R%SX~O&n&bOq!gi&^!gi~Op/iO&PSO&R!qO~OW*iOZ#xO~O!P/kO~OY&SXq&SX~P9oO})]Oq%nX|%nX~P:|Oq.gO|&ya~O!b/nO~O})fOq%cX|%cX~P:|Oq.mO|&ka~OY/qO~O!P/rO~OZ/sO~O}'^Oq!|i|!|i!P!|i~O|!}a~P$wOW%jO!P/wO~OW%jOq/xO!P&|X~OY/|O~P9oOY0OO~OY%Xq!P%Xq~P9oO'O/eO&P%Sa&R%Sa~OY0TO~O!P0WO~Ou#OO!P0YO!Z0ZO%}TO~OY0[O~Oq/xO!P&|a~O!P0_O~OW%jOq/xO!P&}X~OY0aO~P9oOY0bO~OY%Xy!P%Xy~P9oOu#OO%}TO&P%ua&R%ua'O%ua~OY0cO~O!P0dO~Ou#OO!P0eO!Z0fO%}TO~OW%jOq%ra!P%ra~Oq/xO!P&}a~O!P0jO~Ou#OO!P0jO!Z0kO%}TO~O!P0lO~O!P0nO~O#p&QXY&QXs&QXq&QX|&QX~P&bO#pUXYUXsUXqUX|UX~P(iO`Q_P#g%y&P&Xc&X~",goto:"#+S'OPPPP'P'd*x.OP'dPP.d.h0PPPPPP1nP3ZPP4v7l:[WP!?[P!Ap!BW!E]3ZPPP!F|!Jm!MaPP#!P#!SP#$`#$f#&V#&f#&n#'p#(Y#)T#)^#)a#)oP#)r#*OP#*V#*^P#*aP#*lP#*o#*r#*u#*y#+PstOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y'urOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%k%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)])f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,`,u-[-^-a-r-t-}.R.V.g.m/O/[/_/b/d/n/q0R0X0Z0[0f0h0k0r#xhO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kt!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oQ#mdS&Y#`(}Q&l#oU&q#t$g,ZQ&x#vW(b%O+s.R/dU)Y%j'v+bQ)Z%kS)u&S,WU*f&s-R._Q*k&yQ,t*TQ-P*iQ.j,cR.t,uu!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oT%l!r)l#{qO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k#zlO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kX(c%O+s.R/d$TVO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k$TkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rQ&Q#[Q)s&RV.T+x.X/e&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.T+x.X/e&O]OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.U+x.X/eS#Z[.TS$f!O&tS&s#t$gQ&y#vQ)V%dQ-R*iR._,Z$kZO`copx!Y![!_!a#Y#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$_$l$m$n$o$p$q%O%d%g%k%v&b&d'_'`'i'm(O(T(U(t)Q)R)])f)o)p*P*l*o+T+d+h+i+l+o+s,Y,^,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ&O#YR,k)p&P_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0r!o#QY!e!x#R#T#`#n$]%R%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0h$SkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ$m!UQ$n!VQ$s!ZQ$|!`R+p(WQ#yiS'q$e*hQ*e&rQ+X'rS,[)T)UQ-O*gQ-Y*vQ.b,]Q.x-QQ.{-ZQ/j.`Q/u.yR0V/iQ'a$bW*[&m'b'c'dQ+W'qU,x*]*^*_Q-X*vQ-f+XS.u,y,zS.z-Y-ZQ/t.vR/v.{]!mP!o'^*q-^/OreOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!gP!o'^*q-^/OW#b`#e%b&]Q'}$oW(d%O+s.R/dS*U&i*WS*w'e-[S*|'h+OR.X+xh#VY!W!e#n#s%V'|*T*z+f,u-aQ)j%wQ)v&WR,o)y#xnOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k^!kP!g!o'^*q-^/Ov#TY!W#`#n#s%w&W&[&`'|(`(})y*T+f+r,u.W/hQ#g`Q$b{Q$c|Q$d}W%S!e%V*z-aS%Y!h(vQ%`!iQ&m#pQ&n#qQ&o#rQ(u%ZS(y%^({Q*R&eS*v'e-[R-Z*wU)h%v)f.mR+V'p[!mP!o'^*q-^/OT*}'h+O^!iP!g!o'^*q-^/OQ'd$bQ'l$dQ*_&mQ*d&oV*{'h*|+OQ%[!hR,S(vQ(s%YR,R(u#znO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%c!kS(l%S(yR(|%`T#e`%bU#c`#e%bR)z&]Q%f!lQ(n%UQ(r%XQ,U(zR.],VrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OQ%P!bQ%a!jQ%i!pQ'[$ZQ([$|Q(k%QQ(p%WQ+z(iR.Y+yrtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OS*V&i*WT*}'h+OQ'c$bS*^&m'dR,z*_Q'b$bQ'g$cU*]&m'c'dQ*a&nS,y*^*_R.v,zQ*u'`R+Q'iQ'k$dS*c&o'lR,}*dQ'j$dU*b&o'k'lS,|*c*dR.w,}rtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OT*}'h+OQ'f$cS*`&n'gR,{*aQ*x'eR.|-[R-`*yQ&j#mR*Z&lT*V&i*WQ%e!lS(q%X%fR,P(rR)R%dWk%O+s.R/d#{lO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k$SiO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kU&r#t$g,ZS*g&s._Q-Q*iR.y-RT'o$e'p!_#|m#a$r$z$}&w&z&{'O'P'Q'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q!]$Pm#a$r$z$}&w&z&{'O'P'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q#{nO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0ka)^%k)],`.g/n0Z0f0kQ)`%kR.k,cQ't$hQ)b%oR,f)cT+Y's+ZsvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YruOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YQ$w!]R$y!^R$p!XrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YR(O$oR$q!XR(V$sT+k(U+lX(f%P(g(k+{R+y(hQ.W+xR/h.XQ(j%PQ+w(gQ+|(kR.Z+{R%Q!bQ(e%OV.P+s.R/dQxOQ#lcW$`x#l)Q,YQ)Q%dR,Y)RrXOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Yn!fP!o#e&]&i'^'e'h*W*q+O+x-[-^/Ol!zX!f#P#_#i$[%Z%_%{&R'n'{)O0r!j#PY!e!x#T#`#n$]%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0hQ#_`Q#ia#d$[op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%g%k%v&b&d'_'`'i'm(O(T(t)])f)o*P*l*o+T+h+i+o,^,`-r-t-}.g.m/[/_/b/n0Z0f0kS%Z!h(vS%_!i*{S%{#Y)pQ&R#[S'n$e'pY'{$o%O+s.R/dQ)O%bR0r$YQ!uUR%m!uQ)q&OR,l)q^#RY#`$]'X'|(`*px%R!e!x#n%V%^%|&S&[&`({(}*T*z+f+r,W,u-a.V0R[%t#R%R%u+}0X0hS%u#T%SQ+}(lQ0X/qR0h0[Q*m&{R-U*mQ!oPU%h!o*q/OQ*q'^R/O-^!pbOP`cx![!o#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h(U)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dY!yX!f#_'{)OT#jb!yQ.n,gR/p.nQ%x#VR)k%xQ&c#fS*O&c.[R.[,QQ(w%[R,T(wQ&^#cR){&^Q,_)WR.d,_Q+O'hR-b+OQ-]*xR.}-]Q*W&iR,v*WQ'p$eR+U'pQ&f#gR*S&fQ.h,aR/m.hQ,d)`R.l,dQ+Z'sR-g+ZQ-k+]R/T-kQ/y/US0^/y0`R0`/{Q+l(UR-x+lQ(g%PS+v(g+{R+{(kQ/f.VR0S/fQ+t(eR.S+t`wOcx#l%d)Q)R,YQ$t![Q']$_Q'y$mQ'z$nQ(Q$pQ(R$qS+k(U+lR-q+d'dsOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,u-[-^-a-r-t-}.R.V.m/O/[/_/b/d/q0R0X0[0h0ra)_%k)],`.g/n0Z0f0kQ!rTQ$h!QQ$i!SQ$j!TQ%o!{Q%q!}Q'x$kQ)c%pQ)l0oS-i+]+_Q-m+^Q-n+`Q/S-kS/U-m/WQ/{/XR0]/x%uSOT`cdopx!Q!S!T!Y![!_!a!{!}#`#l#o#t#u#v#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$g$k$l$m$n$o$p$q%O%d%j%k%p%v&S&d&s&y'm'v(O(T(U(})Q)R)])f*P*T*i*l*o+T+]+^+_+`+b+d+h+i+l+o+s,W,Y,Z,`,c,u-R-k-m-r-t-}.R._.g.m/W/X/[/_/b/d/n/x0Z0f0k0oQ)a%kQ,a)]S.f,`/nQ/l.gQ0g0ZQ0i0fR0m0krmOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YS#a`$lQ$WoQ$^pQ$r!YQ$z!_Q$}!aQ&w#uQ&z#wY&{#x$o+h-t/_Q&}#|Q'O#}Q'P$OQ'Q$PQ'R$QQ'S$RQ'T$SQ'U$TQ'V$UQ'W$VQ'Z$Z^)[%k)].g/n0Z0f0kU)g%v)f.mQ*Q&dQ+S'mQ+g(OQ+j(TQ,p*PQ-T*lQ-V*oQ-e+TQ-v+iQ-{+oQ.e,`Q/Z-rQ/a-}Q/}/[R0Q/b#xgO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kW(a%O+s.R/dR)S%drYOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!eP!o'^*q-^/OW!xX$[%{'{Q#``Q#ne#S$]op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%k%v&d'm(O(T)])f*P*l*o+T+h+i+o,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%V!gS%^!i*{d%|#Y%g&b'_'`'i(t)o)p,^Q&S#_Q&[#bS&`#e&]Q'X$YQ'|$oW(`%O+s.R/dQ({%_Q(}%bS*T&i*WQ*p0rS*z'h+OQ+f'}Q+r(dQ,W)OQ,u*UQ-a*|S.V+x.XR0R/e&O_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rQ$e!OQ'r$fR*h&t&ZWOPX`ceopx!O!Y![!_!a!g!i!o#Y#[#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&R&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rR&P#Y$QjOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ#f`Q&O#YQ'Y$YU)W%g'`'iQ)}&bQ*s'_Q,Q(tQ,j)oQ,k)pR.c,^Q)n%}R,i)m$SfO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kT&p#t,ZQ&|#xQ(P$oQ-u+hQ/]-tR0P/_]!nP!o'^*q-^/O#PaOPX`bcx![!f!o!y#_#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h'{(U)O)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dU#WY!W'|Q%T!eU&k#n#s+fQ(o%VS,s*T*zT.s,u-aj#UY!W!e#n#s%V%w&W)y*T*z,u-aU&V#`&`(}Q)x&[Q+e'|Q+q(`Q-s+fQ.O+rQ/g.WR0U/hQ)i%vQ,g)fR/o.mR,h)f`!jP!o'^'h*q+O-^/OT%W!g*|R%]!hW%U!e%V*z-aQ(z%^R,V({S#d`%bR&a#eQ)X%gT*t'`'iR*y'e[!lP!o'^*q-^/OR%X!gR#h`R,b)]R)a%kT-j+]-kQ/V-mR/z/WR/z/X",nodeNames:"⚠ LineComment BlockComment Program ModuleDeclaration MarkerAnnotation Identifier ScopedIdentifier . Annotation ) ( AnnotationArgumentList AssignmentExpression FieldAccess IntegerLiteral FloatingPointLiteral BooleanLiteral CharacterLiteral StringLiteral TextBlock null ClassLiteral void PrimitiveType TypeName ScopedTypeName GenericType TypeArguments AnnotatedType Wildcard extends super , ArrayType ] Dimension [ class this ParenthesizedExpression ObjectCreationExpression new ArgumentList } { ClassBody ; FieldDeclaration Modifiers public protected private abstract static final strictfp default synchronized native transient volatile VariableDeclarator Definition AssignOp ArrayInitializer MethodDeclaration TypeParameters TypeParameter TypeBound FormalParameters ReceiverParameter FormalParameter SpreadParameter Throws throws Block ClassDeclaration Superclass SuperInterfaces implements InterfaceTypeList InterfaceDeclaration interface ExtendsInterfaces InterfaceBody ConstantDeclaration EnumDeclaration enum EnumBody EnumConstant EnumBodyDeclarations AnnotationTypeDeclaration AnnotationTypeBody AnnotationTypeElementDeclaration StaticInitializer ConstructorDeclaration ConstructorBody ExplicitConstructorInvocation ArrayAccess MethodInvocation MethodName MethodReference ArrayCreationExpression Dimension AssignOp BinaryExpression CompareOp CompareOp LogicOp LogicOp BitOp BitOp BitOp ArithOp ArithOp ArithOp BitOp InstanceofExpression instanceof LambdaExpression InferredParameters TernaryExpression LogicOp : UpdateExpression UpdateOp UnaryExpression LogicOp BitOp CastExpression ElementValueArrayInitializer ElementValuePair open module ModuleBody ModuleDirective requires transitive exports to opens uses provides with PackageDeclaration package ImportDeclaration import Asterisk ExpressionStatement LabeledStatement Label IfStatement if else WhileStatement while ForStatement for ForSpec LocalVariableDeclaration var EnhancedForStatement ForSpec AssertStatement assert SwitchStatement switch SwitchBlock SwitchLabel case DoStatement do BreakStatement break ContinueStatement continue ReturnStatement return SynchronizedStatement ThrowStatement throw TryStatement try CatchClause catch CatchFormalParameter CatchType FinallyClause finally TryWithResourcesStatement ResourceSpecification Resource ClassContent",maxTerm:276,nodeProps:[["isolate",-4,1,2,18,19,""],["group",-26,4,47,76,77,82,87,92,145,147,150,151,153,156,158,161,163,165,167,172,174,176,178,180,181,183,191,"Statement",-25,6,13,14,15,16,17,18,19,20,21,22,39,40,41,99,100,102,103,106,118,120,122,125,127,130,"Expression",-7,23,24,25,26,27,29,34,"Type"],["openedBy",10,"(",44,"{"],["closedBy",11,")",45,"}"]],propSources:[iEr],skippedNodes:[0,1,2],repeatNodeCount:28,tokenData:"#'f_R!_OX%QXY'fYZ)bZ^'f^p%Qpq'fqr*|rs,^st%Qtu4euv5zvw7[wx8rxyAZyzAwz{Be{|CZ|}Dq}!OE_!O!PFx!P!Q! r!Q!R!,h!R![!0`![!]!>p!]!^!@Q!^!_!@n!_!`!BX!`!a!B{!a!b!Di!b!c!EX!c!}!LT!}#O!Mj#O#P%Q#P#Q!NW#Q#R!Nt#R#S4e#S#T%Q#T#o4e#o#p# h#p#q#!U#q#r##n#r#s#$[#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY4e#BY#BZ#$x#BZ$IS4e$IS$I_#$x$I_$I|4e$I|$JO#$x$JO$JT4e$JT$JU#$x$JU$KV4e$KV$KW#$x$KW&FU4e&FU&FV#$x&FV;'S4e;'S;=`5t<%lO4eS%VV&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&YSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&YS%yZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&YS%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#tP&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&YSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&YSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&YSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&WSXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&XP_4lb&YS&PZOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o$g%Q$g;'S4e;'S;=`5t<%lO4e_5wP;=`<%l4eU6RX#hQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QU6uV#]Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7cZ&nR&YSOY%QYZ%lZr%Qrs%qsv%Qvw8Uw!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QU8]V#aQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8wZ&YSOY9jYZ%lZr9jrs:xsw9jwx%Qx#O9j#O#PhYZ%lZr>hrs?dsw>hwx;hx#O>h#O#P&Z#P;'S>h;'S;=`@}<%lO>hT>kZOYhYZ%lZr>hrs@Ysw>hwx;hx#O>h#O#P&Z#P;'S>h;'S;=`@}<%lO>hP@]VOY@YZw@Ywx@rx#O@Y#P;'S@Y;'S;=`@w<%lO@YP@wObPP@zP;=`<%l@YTAQP;=`<%l>hTAWP;=`<%l9j_AbVZZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBOVYR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBnX$ZP&YS#gQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QVCbZ#fR&YSOY%QYZ%lZr%Qrs%qs{%Q{|DT|!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QVD[V#rR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDxVqR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVEf[#fR&YSOY%QYZ%lZr%Qrs%qs}%Q}!ODT!O!_%Q!_!`6n!`!aF[!a;'S%Q;'S;=`&s<%lO%QVFcV&xR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_GPZWY&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGr!P!Q%Q!Q![IQ![;'S%Q;'S;=`&s<%lO%QVGwX&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHd!P;'S%Q;'S;=`&s<%lO%QVHkV&qR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTIXc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![!f%Q!f!gJd!g!hKQ!h!iJd!i#R%Q#R#SNz#S#W%Q#W#XJd#X#YKQ#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QTJkV&YS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTKV]&YSOY%QYZ%lZr%Qrs%qs{%Q{|LO|}%Q}!OLO!O!Q%Q!Q![Lp![;'S%Q;'S;=`&s<%lO%QTLTX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![;'S%Q;'S;=`&s<%lO%QTLwc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![!f%Q!f!gJd!g!h%Q!h!iJd!i#R%Q#R#SNS#S#W%Q#W#XJd#X#Y%Q#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QTNXZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![#R%Q#R#SNS#S;'S%Q;'S;=`&s<%lO%QT! PZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![#R%Q#R#SNz#S;'S%Q;'S;=`&s<%lO%Q_! y]&YS#gQOY%QYZ%lZr%Qrs%qsz%Qz{!!r{!P%Q!P!Q!)e!Q!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%Q_!!wX&YSOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{;'S!!r;'S;=`!'s<%lO!!r_!#iT&YSOz!#xz{!$[{;'S!#x;'S;=`!$y<%lO!#xZ!#{TOz!#xz{!$[{;'S!#x;'S;=`!$y<%lO!#xZ!$_VOz!#xz{!$[{!P!#x!P!Q!$t!Q;'S!#x;'S;=`!$y<%lO!#xZ!$yOQZZ!$|P;=`<%l!#x_!%SXOY!%oYZ!#dZr!%ors!'ysz!%oz{!(i{;'S!%o;'S;=`!)_<%lO!%o_!%rXOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{;'S!!r;'S;=`!'s<%lO!!r_!&dZ&YSOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{!P!!r!P!Q!'V!Q;'S!!r;'S;=`!'s<%lO!!r_!'^V&YSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'vP;=`<%l!!r_!'|XOY!%oYZ!#dZr!%ors!#xsz!%oz{!(i{;'S!%o;'S;=`!)_<%lO!%o_!(lZOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{!P!!r!P!Q!'V!Q;'S!!r;'S;=`!'s<%lO!!r_!)bP;=`<%l!%o_!)lV&YSPZOY!)eYZ%lZr!)ers!*Rs;'S!)e;'S;=`!+X<%lO!)e_!*WVPZOY!*mYZ%lZr!*mrs!+_s;'S!*m;'S;=`!,b<%lO!*m_!*rVPZOY!)eYZ%lZr!)ers!*Rs;'S!)e;'S;=`!+X<%lO!)e_!+[P;=`<%l!)e_!+dVPZOY!*mYZ%lZr!*mrs!+ys;'S!*m;'S;=`!,b<%lO!*mZ!,OSPZOY!+yZ;'S!+y;'S;=`!,[<%lO!+yZ!,_P;=`<%l!+y_!,eP;=`<%l!*mT!,ou&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!/S!P!Q%Q!Q![!0`![!d%Q!d!e!3j!e!f%Q!f!gJd!g!hKQ!h!iJd!i!n%Q!n!o!2U!o!q%Q!q!r!5h!r!z%Q!z!{!7`!{#R%Q#R#S!2r#S#U%Q#U#V!3j#V#W%Q#W#XJd#X#YKQ#Y#ZJd#Z#`%Q#`#a!2U#a#c%Q#c#d!5h#d#l%Q#l#m!7`#m;'S%Q;'S;=`&s<%lO%QT!/Za&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![!f%Q!f!gJd!g!hKQ!h!iJd!i#W%Q#W#XJd#X#YKQ#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QT!0gi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!/S!P!Q%Q!Q![!0`![!f%Q!f!gJd!g!hKQ!h!iJd!i!n%Q!n!o!2U!o#R%Q#R#S!2r#S#W%Q#W#XJd#X#YKQ#Y#ZJd#Z#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!2]V&YS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2wZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0`![#R%Q#R#S!2r#S;'S%Q;'S;=`&s<%lO%QT!3oY&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4_!R!S!4_!S;'S%Q;'S;=`&s<%lO%QT!4f`&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4_!R!S!4_!S!n%Q!n!o!2U!o#R%Q#R#S!3j#S#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!5mX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6Y!Y;'S%Q;'S;=`&s<%lO%QT!6a_&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6Y!Y!n%Q!n!o!2U!o#R%Q#R#S!5h#S#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!7e_&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8d!P!Q%Q!Q![!:r![!c%Q!c!i!:r!i#T%Q#T#Z!:r#Z;'S%Q;'S;=`&s<%lO%QT!8i]&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9b![!c%Q!c!i!9b!i#T%Q#T#Z!9b#Z;'S%Q;'S;=`&s<%lO%QT!9gc&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9b![!c%Q!c!i!9b!i!r%Q!r!sKQ!s#R%Q#R#S!8d#S#T%Q#T#Z!9b#Z#d%Q#d#eKQ#e;'S%Q;'S;=`&s<%lO%QT!:yi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!wX#pR&YSOY%QYZ%lZr%Qrs%qs![%Q![!]!?d!];'S%Q;'S;=`&s<%lO%QV!?kV&vR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!@XV!PR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@uY&_Z&YSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!Ae!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!AlX#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QV!B`X!bR&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!CSY&^R&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Cr!a;'S%Q;'S;=`&s<%lO%QU!CyY#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`!a!Ae!a;'S%Q;'S;=`&s<%lO%Q_!DrV&bX#oQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!E`X%}Z&YSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!E{#^;'S%Q;'S;=`&s<%lO%QV!FQX&YSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!Fm#c;'S%Q;'S;=`&s<%lO%QV!FrX&YSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!G_#i;'S%Q;'S;=`&s<%lO%QV!GdX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!HP#Y;'S%Q;'S;=`&s<%lO%QV!HUX&YSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hq#g;'S%Q;'S;=`&s<%lO%QV!HvX&YSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!Ic#Z;'S%Q;'S;=`&s<%lO%QV!IhX&YSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!JT#U;'S%Q;'S;=`&s<%lO%QV!JYX&YSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Ju#W;'S%Q;'S;=`&s<%lO%QV!JzX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Kg#Y;'S%Q;'S;=`&s<%lO%QV!KnV&tR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!L[b&RZ&YSOY%QYZ%lZr%Qrs%qst%Qtu!LTu!Q%Q!Q![!LT![!c%Q!c!}!LT!}#R%Q#R#S!LT#S#T%Q#T#o!LT#o$g%Q$g;'S!LT;'S;=`!Md<%lO!LT_!MgP;=`<%l!LT_!MqVuZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!N_VsR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!N{X#eQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QV# oV}R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_#!_Z'OX#dQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`#p%Q#p#q##Q#q;'S%Q;'S;=`&s<%lO%QU##XV#bQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##uV|R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT#$cV#uP&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_#%Ru&YS%yZ&PZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o#y%Q#y#z'f#z$f%Q$f$g'f$g#BY4e#BY#BZ#$x#BZ$IS4e$IS$I_#$x$I_$I|4e$I|$JO#$x$JO$JT4e$JT$JU#$x$JU$KV4e$KV$KW#$x$KW&FU4e&FU&FV#$x&FV;'S4e;'S;=`5t<%lO4e",tokenizers:[0,1,2,3],topRules:{Program:[0,3],ClassContent:[1,194]},dynamicPrecedences:{27:1,232:-1,243:-1},specialized:[{term:231,get:e=>rEr[e]||-1}],tokenPrec:7144}),kLn=Vd.define({name:"java",parser:oEr.configure({props:[Vu.add({IfStatement:Pu({except:/^\s*({|else\b)/}),TryStatement:Pu({except:/^\s*({|catch|finally)\b/}),LabeledStatement:mpe,SwitchBlock:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:Xv({closing:"}"}),BlockComment:()=>null,Statement:Pu({except:/^{/})}),kh.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":bA,BlockComment(e){return{from:e.from+2,to:e.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function sEr(){return new wd(kLn)}const aEr=Object.freeze(Object.defineProperty({__proto__:null,java:sEr,javaLanguage:kLn},Symbol.toStringTag,{value:"Module"})),lEr=1,cEr=2,dEr=3,uEr=155,hEr=4,fEr=156;function gEr(e){return e>=65&&e<=90||e>=97&&e<=122}const mEr=new go(e=>{let t=e.pos;for(;;){let{next:n}=e;if(n<0)break;if(n==123){let r=e.peek(1);if(r==123){if(e.pos>t)break;e.acceptToken(lEr,2);return}else if(r==35){if(e.pos>t)break;e.acceptToken(cEr,2);return}else if(r==37){if(e.pos>t)break;let o=2,s=2;for(;;){let a=e.peek(o);if(a==32||a==10)++o;else if(a==35)for(++o;;){let l=e.peek(o);if(l<0||l==10)break;o++}else if(a==45&&s==2)s=++o;else{e.acceptToken(dEr,s);return}}}}if(e.advance(),n==10)break}e.pos>t&&e.acceptToken(uEr)});function kEr(e,t,n){return new go(r=>{let o=r.pos;for(;;){let{next:s}=r;if(s==123&&r.peek(1)==37){let a=2;for(;;a++){let d=r.peek(a);if(d!=32&&d!=10)break}let l="";for(;;a++){let d=r.peek(a);if(!gEr(d))break;l+=String.fromCharCode(d)}if(l==e){if(r.pos>o)break;r.acceptToken(n,2);break}}else if(s<0)break;if(r.advance(),s==10)break}r.pos>o&&r.acceptToken(t)})}const vEr=kEr("endraw",fEr,hEr),AEr={__proto__:null,in:38,is:40,and:46,or:48,not:52,if:78,else:80,true:98,false:98,self:100,super:102,loop:104,recursive:136,scoped:160,required:162,as:256,import:260,ignore:268,missing:270,with:272,without:274,context:276},pEr={__proto__:null,if:112,elif:118,else:122,endif:126,for:132,endfor:140,raw:146,endraw:152,block:158,endblock:166,macro:172,endmacro:182,call:188,endcall:192,filter:198,endfilter:202,set:208,endset:212,trans:218,pluralize:222,endtrans:226,with:232,endwith:236,autoescape:242,endautoescape:246,import:254,from:258,include:266},bEr=zd.deserialize({version:14,states:"!*dQVOPOOOOOP'#F`'#F`OeOTO'#CbOvQSO'#CdO!kOPO'#DcO!yOPO'#DnO#XOQO'#DuO#^OPO'#D{O#lOPO'#ESO#zOPO'#E[O$YOPO'#EaO$hOPO'#EfO$vOPO'#EkO%UOPO'#ErO%dOPO'#EwOOOP'#F|'#F|O%rQWO'#E|O&sO#tO'#F]OOOP'#Fq'#FqOOOP'#F_'#F_QVOPOOOOOP-E9^-E9^OOQO'#Ce'#CeO'sQSO,59OO'zQSO'#DWO(RQSO'#DXO(YQ`O'#DZOOQO'#Fr'#FrOvQSO'#CuO(aOPO'#CbOOOP'#Fd'#FdO!kOPO,59}OOOP,59},59}O(oOPO,59}O(}QWO'#E|OOOP,5:Y,5:YO)[OPO,5:YO!yOPO,5:YO)jQWO'#E|OOOQ'#Ff'#FfO)tOQO'#DxO)|OQO,5:aOOOP,5:g,5:gO#^OPO,5:gO*RQWO'#E|OOOP,5:n,5:nO#lOPO,5:nO*YQWO'#E|OOOP,5:v,5:vO#zOPO,5:vO*aQWO'#E|OOOP,5:{,5:{O$YOPO,5:{O*hQWO'#E|OOOP,5;Q,5;QO$hOPO,5;QO*oQWO'#E|OOOP,5;V,5;VO*vOPO,5;VO$vOPO,5;VO+UQWO'#E|OOOP,5;^,5;^O%UOPO,5;^O+`QWO'#E|OOOP,5;c,5;cO%dOPO,5;cO+gQWO'#E|O+nQSO,5;hOvQSO,5:OO+uQSO,5:ZO+zQSO,5:bO+uQSO,5:hO+uQSO,5:oO,PQSO,5:wO,XQpO,5:|O+uQSO,5;RO,^QSO,5;WO,fQSO,5;_OvQSO,5;dOvQSO,5;jOvQSO,5;jOvQSO,5;pOOOO'#Fk'#FkO,nO#tO,5;wOOOP-E9]-E9]O,vQ!bO,59QOvQSO,59TOvQSO,59UOvQSO,59UOvQSO,59UOvQSO,59UO,{QSO'#C}O,XQpO,59cOOQO,59q,59qOOOP1G.j1G.jOvQSO,59UO-SQSO,59UOvQSO,59UOvQSO,59UOvQSO,59nO-wQSO'#FxO.RQSO,59rO.WQSO,59tOOQO,59s,59sO.bQSO'#D[O.iQWO'#F{O.qQWO,59uO0WQSO,59aOOOP-E9b-E9bOOOP1G/i1G/iO(oOPO1G/iO(oOPO1G/iO)TQWO'#E|OvQSO,5:SO0nQSO,5:UO0sQSO,5:WOOOP1G/t1G/tO)[OPO1G/tO)mQWO'#E|O)[OPO1G/tO0xQSO,5:_OOOQ-E9d-E9dOOOP1G/{1G/{O0}QWO'#DyOOOP1G0R1G0RO1SQSO,5:lOOOP1G0Y1G0YO1[QSO,5:tOOOP1G0b1G0bO1aQSO,5:yOOOP1G0g1G0gO1fQSO,5;OOOOP1G0l1G0lO1kQSO,5;TOOOP1G0q1G0qO*vOPO1G0qO+XQWO'#E|O*vOPO1G0qOvQSO,5;YO1pQSO,5;[OOOP1G0x1G0xO1uQSO,5;aOOOP1G0}1G0}O1zQSO,5;fO2PQSO1G1SOOOP1G1S1G1SO2WQSO1G/jOOQO'#Dq'#DqO2_QSO1G/uOOOQ1G/|1G/|O2gQSO1G0SO2rQSO1G0ZO2zQSO'#EVO3SQSO1G0cO,SQSO1G0cO4fQSO'#FvOOQO'#Fv'#FvO5]QSO1G0hO5bQSO1G0mOOOP1G0r1G0rO5mQSO1G0rO5rQSO'#GOO5zQSO1G0yO6PQSO1G1OO6WQSO1G1UO6_QSO1G1UO6fQSO1G1[OOOO-E9i-E9iOOOP1G1c1G1cOOQO1G.l1G.lO6vQSO1G.oO8wQSO1G.pO:oQSO1G.pO:vQSO1G.pOQQSO'#FrO>XQSO'#FwO>aQSO,59iOOQO1G.}1G.}O>fQSO1G.pO@aQSO1G.pOB_QSO1G.pOBfQSO1G.pOD^QSO1G/YOvQSO'#FbODeQSO,5gOOOPAN>gAN>gO! }QSOAN>gOOOPAN>tAN>tO!!SQSO1G0^O!!^QSO,5SQ`O1G.pP!>ZQ`O1G.pP!>bQ`O1G/YP!?QQ`O<mOZ!wO_!yO`!zOa!{Ob!|Oc#ROd#SOp!}O$i!xOV^ih^il^iw^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Og^i~P@nOg#TO~P@nOZ!wO_!yO`!zOa!{Ob!|Oc#ROd#SOg#TOh#UOp!}O$i!xOVvilviwvitvi$hviovi!Pvi!Zvi#tvi#vvi#zvi#|vi#}vi!fvi~Ox&gO~PBmOt%PO$h$la~Oo&jOt%PO~OekOfkOj(yOpiO!RkO!SkO!TkO!UkO$gfO$ihO$njO~Ot%VO$m$oa~O!]#eO~P%rO!Z&pO~P&xO!Z&rO~O!Z&sO~O!Z&uO~P&xOc&xOt%rO~O!Z&zO~O!Z&zO!s&{O~O!Z&|O~Os&}Ot'OOo$qX~Oo'QO~O!Z'RO~Op!}O!Z'RO~Os'TOt%rO~Os'WOt%rO~O$g'ZO~O$O'_O~O#{'`O~Ot&bOo$ka~Ot$Ua$h$Uao$Ua~P&xOZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOg)ROh)SOl)OOp!}Ow)TO$i!xO~Ot!Oi$m!Oi~PHrO!P'hO~P&xO!Z'jO!f'kO~P&xO!Z'lO~Ot'OOo$qa~O!Z'qO~O!Z'sO~P&xOt'tO!Z'vO~P&xOt'xO!Z$ri~P&xO!Z'zO~Ot!eX!Z!eX#tXX~O#t'{O~Ot'|O!Z'zO~O!Z(OO~O!Z(OO#|(PO#}(PO~Oo$Tat$Ta~P&xOs(QO~P=POoritri~P&xOZ!wOp!}O$i!xOVvylvywvytvy$hvyovy!Pvy!Zvy#tvy#vvy#zvy#|vy#}vyxvy!fvy~O_!yO`!zOa!{Ob!|Oc#ROd#SOg#TOh#UO~PLsOZ!wOp!}O$i!xOgiahialiatiawia$miaxia~O_(zO`({Oa(|Ob(}Oc)POd)QO~PNkO!Z(^O!f(_O~P&xO!Z(^O~Oo!zit!zi~P&xOs(`Oo$Zat$Za~O!Z(aO~P&xOt'tO!Z(dO~Ot'xO!Z$rq~P&xOt'xO!Z$rq~Ot'|O!Z(kO~O$O(lO~OZ!wOp!}O$i!xO`^ia^ib^ic^id^ig^ih^il^it^iw^i$m^ie^if^i$g^ix^i~O_^i~P!#iOZ!wO_(zOp!}O$i!xOa^ib^ic^id^ig^ih^il^it^iw^i$m^ix^i~O`^i~P!$zO`({O~P!$zOZ!wO_(zO`({Oa(|Op!}O$i!xOc^id^ig^ih^il^it^iw^i$m^ix^i~Ob^i~P!&ZO$m$jX~P3[Ob(}O~P!&ZOZ!wO_)zO`){Oa)|Ob)}Oc*OOp!}O$i!xOd^ig^ih^il^it^iw^i$m^ix^i~Oe&fOf&fO$gfO~P!'qOZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOp!}O$i!xOh^il^it^iw^i$m^ix^i~Og^i~P!)SOg)RO~P!)SOZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOg)ROh)SOp!}O$i!xOlvitviwvi$mvi~Ox)WO~P!*cOt!Qi$m!Qi~PHrO!Z(nO~Os(pO~Ot'xO!Z$ry~Os(rOt%rO~O!Z(sO~Oouitui~P&xOo!{it!{i~P&xOs(vOt%rO~OZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOg)ROh)SOp!}O$i!xO~Olvytvywvy$mvyxvy~P!-SOt$[q!Z$[q~P&xOt$]q!Z$]q~P&xOt$]y!Z$]y~P&xOm(VO~OekOfkOj)yOpiO!RkO!SkO!TkO!UkO$gfO$ihO$njO~Oe^if^i$g^i~P>mOxvi~PBmOe^if^i$g^i~P!'qOxvi~P!*cO_)gO`)hOa)iOb)jOc)kOd)ZOeiafia$gia~P.vOZ!wO_)gO`)hOa)iOb)jOc)kOd)ZOp!}O$i!xOV^ie^if^ih^il^iw^i$g^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Og^i~P!1_Og)lO~P!1_OZ!wO_)gO`)hOa)iOb)jOc)kOd)ZOg)lOh)mOp!}O$i!xOVvievifvilviwvi$gvitvi$hviovi!Pvi!Zvi#tvi#vvi#zvi#|vi#}vi!fvi~Ox)sO~P!3gO_)gO`)hOa)iOb)jOc)kOd)ZOg)lOh)mOevyfvy$gvy~PLsOxvi~P!3gOZ!wO_)zO`){Oa)|Ob)}Oc*OOd)bOg*POh*QOp!}O$i!xOevifvilvitviwvi$gvi$mvi~Oxvi~P!6fO_)gO~P6}OZ!wO_)gO`)hOp!}O$i!xOV^ib^ic^id^ie^if^ig^ih^il^iw^i$g^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Oa^i~P!8OOa)iO~P!8OOZ!wOp!}O$i!xOc^id^ie^if^ig^ih^il^iw^i$g^it^ix^i~O_)gO`)hOa)iOb)jOV^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^i!f^i~P!:WO_)zO`){Oa)|Ob)}Oc*OOd)bOeiafia$gia~PNkOZ!wO_)zO`){Oa)|Ob)}Oc*OOd)bOp!}O$i!xOe^if^ih^il^it^iw^i$g^i$m^ix^i~Og^i~P!iO_)zO~P!#iO_)zO`){Oa^ib^i$m^i~P!:WO_)zO`){Oa)|Ob^i$m^i~P!:WO_)zO`){Oa)|Ob)}O$m^i~P!:WOfaZa~",goto:"Cy$sPPPPPP$tP$t%j'sPP's'sPPPPPPPPPP'sP'sPP)jPP)o+nPP+q'sPP's's's's's+tP+wPPPP+z,pPPP-fP-jP-vP+z.UP.zP/zP+z0YP1O1RP+z1UPPP1zP+z2QP2v2|3P3SP+z3YP4OP+z4UP4zP+z5QP5vP+z5|P6rP6xP+z7WP7|P+z8SP8xP$t$t$tPPPP9O$tPPPPPP$tP9U:j;f;m;w;}YPPPCcCjCmPPCp$tCsCv!gbOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%k$dkRhijl!e!f!p!q!r!s!x!y!z!{!|#R#S#T#U#V#e$O%P%U%V%t&U&V&X&d&g&x&}'T'W'h(Q(`(p(r(v(y(z({(|(})P)Q)R)S)T)W)Z)[)b)c)f)g)h)i)j)k)l)m)n)s)y)z){)|)}*O*P*Q*R*S*T*UQ$_!kQ$v!}Q&P$`S&f${(XS']&]'|R'b&b$ikRhijl!e!f!p!q!r!s!x!y!z!{!|!}#R#S#T#U#V#e$O%P%U%V%t&U&V&X&b&d&g&x&}'T'W'h(Q(`(p(r(v(y(z({(|(})P)Q)R)S)T)W)Z)[)b)c)f)g)h)i)j)k)l)m)n)s)y)z){)|)}*O*P*Q*R*S*T*UV$b!l#O)O$d#Pg#W#Y#[#_$U$W$i$j$k$l$p$q$r$s$t$u$z${$|$}%O%]%l&h&k&l&y'U'V'X'a'e'f'g'i'm'r'w(R(S(T(U(W(X(Y(Z([(](m(o(t(u(w(x)U)V)X)Y)])^)_)`)a)d)e)o)p)q)r)t)u)v)w)x*V*W*X*YQ&O$_S&Q$a(VR'S&PR$w!}R'c&bR#]jR&m%V!g_OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%k!gSOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kTnSoQqSQtTQ#boR#kuQpSS#aoqS%Z#b#cR&o%[!gTOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ$Y!gQ$[!iQ$]!jQ$d!mQ$f!nQ$g!oQ%e#qQ%z$^Q&v%rQ'Y&[S'[&]'|Q'n'OQ(b'tQ(f'xR(h'{QsTS#htuS%`#i#kR&q%a!gUOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kRyUR#ny!gVOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQzVR#p{!gWOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ$`!kR%y$]R%{$^R'o'OQ}WR#r!O!gXOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!QXR#t!R!gYOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!TYR#v!U!gZOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!WZR#x!X!g[OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ![[R#}!]Q!Z[S#z![!]S%j#{#}R&t%k!g]OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!_]R$Q!`!g^OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!b^R$S!cQ'^&]R(i'|QdOQuTQ{VQ!OWQ!RXQ!UYQ!XZQ!][Q!`]Q!c^p!vdu{!O!R!U!X!]!`!c#c#i#{%[%a%kQ#cqQ#itQ#{![Q%[#bQ%a#kR%k#}SQOdSeQm!cmSTVWXYZ[]^oqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kS&c$u$wR'd&cQ%Q#WQ%S#YT&i%Q%SQ%W#]R&n%WQoSR#`oQ%s$YQ&S$dQ&W$gW&w%s&S&W(qR(q(fQxUR#mxS'P%z%{R'p'PQ'u'VR(c'uQ'y'XQ(e'wT(g'y(eQ'}'^R(j'}Q!uaR$m!u!bcOTVWXYZ[]^dqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kTnSoQgRQ#WhQ#YiQ#[jQ#_lQ$U!eQ$W!fQ$i!pQ$j!qQ$k!rQ$l!sQ$p!xS$q!y)gQ$r!zQ$s!{Q$t!|Q$u!}Q$z#RQ${#SQ$|#TQ$}#UQ%O#VQ%]#eQ%l$OQ&h%PQ&k%UQ&l%VQ&y%tQ'U&UQ'V&VQ'X&XQ'a&bQ'e&dQ'f&gQ'g(yQ'i&xQ'm&}Q'r'TQ'w'WS(R(z)zQ(S({Q(T(|Q(U(}Q(W)PQ(X)QQ(Y)RQ(Z)SQ([)TQ(]'hQ(m(QQ(o(`Q(t)WQ(u(pQ(w(rQ(x(vQ)U)ZQ)V)[Q)X)bQ)Y)cQ)])fQ)^)lQ)_)mQ)`)nQ)a)sQ)d*TQ)e*UQ)o)hQ)p)iQ)q)jQ)r)kQ)t)yQ)u*PQ)v*QQ)w*RQ)x*SQ*V){Q*W)|Q*X)}R*Y*OQ$c!lT$y#O)OR$x!}R#XhR#^jR%|$^R$h!o",nodeNames:"⚠ {{ {# {% {% Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression ConcatOp ArithOp ArithOp CompareOp in is StringLiteral NumberLiteral and or NotExpression not FilterExpression FilterOp FilterName FilterCall ) ( ArgumentList NamedArgument AssignOp , NamedArgument ConditionalExpression if else CallExpression ArrayExpression TupleExpression ParenthesizedExpression DictExpression Entry : Entry BooleanLiteral self super loop IfStatement Tag TagName if %} Tag elif Tag else EndTag endif ForStatement Tag for Definition recursive EndTag endfor RawStatement Tag raw RawText EndTag endraw BlockStatement Tag block scoped required EndTag endblock MacroStatement Tag macro ParamList OptionalParameter OptionalParameter EndTag endmacro CallStatement Tag call EndTag endcall FilterStatement Tag filter EndTag endfilter SetStatement Tag set EndTag endset TransStatement Tag trans Tag pluralize EndTag endtrans WithStatement Tag with EndTag endwith AutoescapeStatement Tag autoescape EndTag endautoescape Tag Tag Tag import as from import ImportItem Tag include ignore missing with without context Comment #}",maxTerm:173,nodeProps:[["closedBy",1,"}}",2,"#}",-2,3,4,"%}",32,")"],["openedBy",7,"{{",31,"(",57,"{%",140,"{#"],["group",-18,9,10,13,14,21,22,25,27,38,41,42,43,44,45,49,50,51,52,"Expression",-11,53,64,71,77,84,92,97,102,107,114,119,"Statement"]],skippedNodes:[0],repeatNodeCount:13,tokenData:".|~RqXY#YYZ#Y]^#Ypq#Yqr#krs#vuv&nwx&{xy)nyz)sz{)x{|*V|}+|}!O,R!O!P,g!P!Q,o!Q![+h![!],w!^!_,|!_!`-U!`!a,|!c!}-^!}#O.U#P#Q.Z#R#S-^#T#o-^#o#p.`#p#q.e#q#r.j#r#s.w%W;'S-^;'S;:j.O<%lO-^~#_S$d~XY#YYZ#Y]^#Ypq#Y~#nP!_!`#q~#vOb~~#yWOY#vZr#vrs$cs#O#v#O#P$h#P;'S#v;'S;=`%x<%lO#v~$hOe~~$kYOY#vYZ#vZr#vrs%Zs#O#v#O#P$h#P;'S#v;'S;=`&O;=`<%l#v<%lO#v~%`We~OY#vZr#vrs$cs#O#v#O#P$h#P;'S#v;'S;=`%x<%lO#v~%{P;=`<%l#v~&RXOY#vZr#vrs$cs#O#v#O#P$h#P;'S#v;'S;=`%x;=`<%l#v<%lO#v~&sP`~#q#r&v~&{O!Z~~'OWOY&{Zw&{wx$cx#O&{#O#P'h#P;'S&{;'S;=`(x<%lO&{~'kYOY&{YZ&{Zw&{wx(Zx#O&{#O#P'h#P;'S&{;'S;=`)O;=`<%l&{<%lO&{~(`We~OY&{Zw&{wx$cx#O&{#O#P'h#P;'S&{;'S;=`(x<%lO&{~({P;=`<%l&{~)RXOY&{Zw&{wx$cx#O&{#O#P'h#P;'S&{;'S;=`(x;=`<%l&{<%lO&{~)sOp~~)xOo~~)}P`~z{*Q~*VO`~~*[Qa~!O!P*b!Q![+h~*eP!Q![*h~*mSf~!Q![*h!g!h*y#R#S*h#X#Y*y~*|R{|+V}!O+V!Q![+]~+YP!Q![+]~+bQf~!Q![+]#R#S+]~+mTf~!O!P*b!Q![+h!g!h*y#R#S+h#X#Y*y~,ROt~~,WRa~uv,a!O!P*b!Q![+h~,dP#q#r&v~,lPZ~!Q![*h~,tP`~!P!Q*Q~,|O!P~~-RPb~!_!`#q~-ZPs~!_!`#q!`-iVm`[p!XS$gY!Q![-^!c!}-^#R#S-^#T#o-^%W;'S-^;'S;:j.O<%lO-^!`.RP;=`<%l-^~.ZO$i~~.`O$h~~.eO$n~~.jOl~^.oP$m[#q#r.rQ.wOVQ~.|O_~",tokenizers:[mEr,vEr,1,2,3,4,5,new Cv("b~RPstU~XP#q#r[~aO$Q~~",17,173)],topRules:{Template:[0,5]},specialized:[{term:161,get:e=>AEr[e]||-1},{term:55,get:e=>pEr[e]||-1}],tokenPrec:3602});function Epe(e,t){return e.split(" ").map(n=>({label:n,type:t}))}const wEr=Epe("abs attr batch capitalize center default dictsort escape filesizeformat first float forceescape format groupby indent int items join last length list lower map max min pprint random reject rejectattr replace reverse round safe select selectattr slice sort string striptags sum title tojson trim truncate unique upper urlencode urlize wordcount wordwrap xmlattr","function"),OEr=Epe("boolean callable defined divisibleby eq escaped even filter float ge gt in integer iterable le lower lt mapping ne none number odd sameas sequence string test undefined upper range lipsum dict joiner namespace","function"),yEr=Epe("loop super self true false varargs kwargs caller name arguments catch_kwargs catch_varargs caller","keyword"),Rvt=OEr.concat(yEr),Ivt=Epe("raw endraw filter endfilter trans pluralize endtrans with endwith autoescape endautoescape if elif else endif for endfor call endcall block endblock set endset macro endmacro import include break continue debug do extends","keyword");function CEr(e){var t;let{state:n,pos:r}=e,o=tc(n).resolveInner(r,-1).enterUnfinishedNodesBefore(r),s=((t=o.childBefore(r))===null||t===void 0?void 0:t.name)||o.name;if(o.name=="FilterName")return{type:"filter",node:o};if(e.explicit&&(s=="FilterOp"||s=="filter"))return{type:"filter"};if(o.name=="TagName")return{type:"tag",node:o};if(e.explicit&&s=="{%")return{type:"tag"};if(o.name=="PropertyName"&&o.parent.name=="MemberExpression")return{type:"prop",node:o,target:o.parent};if(o.name=="."&&o.parent.name=="MemberExpression")return{type:"prop",target:o.parent};if(o.name=="MemberExpression"&&s==".")return{type:"prop",target:o};if(o.name=="VariableName")return{type:"expr",from:o.from};if(o.name=="Comment"||o.name=="StringLiteral"||o.name=="NumberLiteral")return null;let a=e.matchBefore(/[\w\u00c0-\uffff]+$/);return a?{type:"expr",from:a.from}:e.explicit?{type:"expr"}:null}function _Er(e,t,n,r){let o=[];for(;;){let s=t.getChild("Expression");if(!s)return[];if(s.name=="VariableName"){o.unshift(e.sliceDoc(s.from,s.to));break}else if(s.name=="MemberExpression"){let a=s.getChild("PropertyName");a&&o.unshift(e.sliceDoc(a.from,a.to)),t=s}else return[]}return r(o,e,n)}function vLn(e={}){let t=e.tags?e.tags.concat(Ivt):Ivt,n=e.variables?e.variables.concat(Rvt):Rvt,{properties:r}=e;return o=>{var s;let a=CEr(o);if(!a)return null;let l=(s=a.from)!==null&&s!==void 0?s:a.node?a.node.from:o.pos,d;return a.type=="filter"?d=wEr:a.type=="tag"?d=t:a.type=="expr"?d=n:d=r?_Er(o.state,a.target,o,r):[],d.length?{options:d,from:l,validFor:/^[\w\u00c0-\uffff]*$/}:null}}const ALn=er.inputHandler.of((e,t,n,r)=>r!="%"||t!=n||e.state.doc.sliceString(t-1,n+1)!="{}"?!1:(e.dispatch(e.state.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:"%%"},range:Ln.cursor(o.from+1)})),{scrollIntoView:!0,userEvent:"input.type"}),!0));function Mvt(e){return t=>{let n=e.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)}}const SEr=Vd.define({name:"jinja",parser:bEr.configure({props:[Xd({"TagName raw endraw filter endfilter as trans pluralize endtrans with endwith autoescape endautoescape":ve.keyword,"required scoped recursive with without context ignore missing":ve.modifier,self:ve.self,"loop super":ve.standard(ve.variableName),"if elif else endif for endfor call endcall":ve.controlKeyword,"block endblock set endset macro endmacro import from include":ve.definitionKeyword,"Comment/...":ve.blockComment,VariableName:ve.variableName,Definition:ve.definition(ve.variableName),PropertyName:ve.propertyName,FilterName:ve.special(ve.variableName),ArithOp:ve.arithmeticOperator,AssignOp:ve.definitionOperator,"not and or":ve.logicOperator,CompareOp:ve.compareOperator,"in is":ve.operatorKeyword,"FilterOp ConcatOp":ve.operator,StringLiteral:ve.string,NumberLiteral:ve.number,BooleanLiteral:ve.bool,"{% %} {# #} {{ }} { }":ve.brace,"( )":ve.paren,".":ve.derefOperator,": , .":ve.punctuation}),Vu.add({Tag:Xv({closing:"%}"}),"IfStatement ForStatement":Mvt(/^\s*(\{%-?\s*)?(endif|endfor|else|elif)\b/),Statement:Mvt(/^\s*(\{%-?\s*)?end\w/)}),kh.add({"Statement Comment"(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="Tag"&&t.name!="{#"?null:{from:t.to,to:n.name=="EndTag"||n.name=="#}"?n.from:e.to}}})]}),languageData:{indentOnInput:/^\s*{%-?\s*(?:end|elif|else)$/}}),ZPe=dI();function pLn(e){return SEr.configure({wrap:Ap(t=>t.type.isTop?{parser:e.parser,overlay:n=>n.name=="Text"||n.name=="RawText"}:null)},"jinja")}const bLn=pLn(ZPe.language);function LEr(e={}){let t=e.base||ZPe,n=t.language==ZPe.language?bLn:pLn(t.language);return new wd(n,[t.support,n.data.of({autocomplete:vLn(e)}),t.language.data.of({closeBrackets:{brackets:["{"]}}),ALn])}const xEr=Object.freeze(Object.defineProperty({__proto__:null,closePercentBrace:ALn,jinja:LEr,jinjaCompletionSource:vLn,jinjaLanguage:bLn},Symbol.toStringTag,{value:"Module"})),EEr=Xd({String:ve.string,Number:ve.number,"True False":ve.bool,PropertyName:ve.propertyName,Null:ve.null,", :":ve.separator,"[ ]":ve.squareBracket,"{ }":ve.brace}),TEr=zd.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:[EEr],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}),QEr=()=>e=>{try{JSON.parse(e.state.doc.toString())}catch(t){if(!(t instanceof SyntaxError))throw t;const n=DEr(t,e.state.doc);return[{from:n,message:t.message,severity:"error",to:n}]}return[]};function DEr(e,t){let n;return(n=e.message.match(/at position (\d+)/))?Math.min(+n[1],t.length):(n=e.message.match(/at line (\d+) column (\d+)/))?Math.min(t.line(+n[1]).from+ +n[2]-1,t.length):0}const wLn=Vd.define({name:"json",parser:TEr.configure({props:[Vu.add({Object:Pu({except:/^\s*\}/}),Array:Pu({except:/^\s*\]/})}),kh.add({"Object Array":bA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function BEr(){return new wd(wLn)}const REr=Object.freeze(Object.defineProperty({__proto__:null,json:BEr,jsonLanguage:wLn,jsonParseLinter:QEr},Symbol.toStringTag,{value:"Module"})),IEr=110,Pvt=1,MEr=2,OLn=[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];function Zge(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function PEr(e){return e>=48&&e<=57}const FEr=new go((e,t)=>{if(e.next==40){let n=e.peek(-1);(Zge(n)||PEr(n)||n==95||n==45)&&e.acceptToken(MEr,1)}}),NEr=new go(e=>{if(OLn.indexOf(e.peek(-1))>-1){let{next:t}=e;(Zge(t)||t==95||t==35||t==46||t==91||t==58||t==45)&&e.acceptToken(IEr)}}),UEr=new go(e=>{if(OLn.indexOf(e.peek(-1))<0){let{next:t}=e;if(t==37&&(e.advance(),e.acceptToken(Pvt)),Zge(t)){do e.advance();while(Zge(e.next));e.acceptToken(Pvt)}}}),jEr=Xd({"import charset namespace keyframes media supports when":ve.definitionKeyword,"from to selector":ve.keyword,NamespaceName:ve.namespace,KeyframeName:ve.labelName,TagName:ve.tagName,ClassName:ve.className,PseudoClassName:ve.constant(ve.className),IdName:ve.labelName,"FeatureName PropertyName PropertyVariable":ve.propertyName,AttributeName:ve.attributeName,NumberLiteral:ve.number,KeywordQuery:ve.keyword,UnaryQueryOp:ve.operatorKeyword,"CallTag ValueName":ve.atom,VariableName:ve.variableName,"AtKeyword Interpolation":ve.special(ve.variableName),Callee:ve.operatorKeyword,Unit:ve.unit,"UniversalSelector NestingSelector":ve.definitionOperator,MatchOp:ve.compareOperator,"ChildOp SiblingOp, LogicOp":ve.logicOperator,BinOp:ve.arithmeticOperator,Important:ve.modifier,"Comment LineComment":ve.blockComment,ColorLiteral:ve.color,"ParenthesizedContent StringLiteral":ve.string,Escape:ve.special(ve.string),": ...":ve.punctuation,"PseudoOp #":ve.derefOperator,"; ,":ve.separator,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace}),WEr={__proto__:null,lang:40,"nth-child":40,"nth-last-child":40,"nth-of-type":40,"nth-last-of-type":40,dir:40,"host-context":40,and:244,or:244,not:74,only:74,url:86,"url-prefix":86,domain:86,regexp:86,when:117,selector:142,from:172,to:174},VEr={__proto__:null,"@import":126,"@plugin":126,"@media":152,"@charset":156,"@namespace":160,"@keyframes":166,"@supports":178},zEr=zd.deserialize({version:14,states:"@^O!gQWOOO!nQaO'#CeOOQP'#Cd'#CdO$RQWO'#CgO$xQaO'#EaO%cQWO'#CiO%kQWO'#DZO%pQWO'#D^O%uQaO'#DfOOQP'#Es'#EsO'YQWO'#DlO'yQWO'#DyO(QQWO'#D{O(xQWO'#D}O)TQWO'#EQO'bQWO'#EWO)YQ`O'#FTO)]Q`O'#FTO)hQ`O'#FTO)vQWO'#EYOOQO'#Er'#ErOOQO'#FV'#FVOOQO'#Ec'#EcO){QWO'#EqO*WQWO'#EqQOQWOOOOQP'#Ch'#ChOOQP,59R,59RO$RQWO,59RO*bQWO'#EdO+PQWO,58|O+_QWO,59TO%kQWO,59uO%pQWO,59xO*bQWO,59{O*bQWO,59}OOQO'#De'#DeO*bQWO,5:OO,bQpO'#E}O,iQWO'#DkOOQO,58|,58|O(QQWO,58|O,pQWO,5:{OOQO,5:{,5:{OOQT'#Cl'#ClO-UQeO,59TO.cQ[O,59TOOQP'#D]'#D]OOQP,59u,59uOOQO'#D_'#D_O.hQpO,59xOOQO'#EZ'#EZO.pQ`O,5;oOOQO,5;o,5;oO/OQWO,5:WO/VQWO,5:WOOQS'#Dn'#DnO/rQWO'#DsO/yQ!fO'#FRO0eQWO'#DtOOQS'#FS'#FSO+YQWO,5:eO'bQWO'#DrOOQS'#Cu'#CuO(QQWO'#CwO0jQ!hO'#CyO2^Q!fO,5:gO2oQWO'#DWOOQS'#Ex'#ExO(QQWO'#DQOOQO'#EP'#EPO2tQWO,5:iO2yQWO,5:iOOQO'#ES'#ESO3RQWO,5:lO3WQ!fO,5:rO3iQ`O'#EkO.pQ`O,5;oOOQO,5:|,5:|O3zQWO,5:tOOQO,5:},5:}O4XQWO,5;]OOQO-E8a-E8aOOQP1G.m1G.mOOQP'#Ce'#CeO5RQaO,5;OOOQP'#Df'#DfOOQO-E8b-E8bOOQO1G.h1G.hO(QQWO1G.hO5fQWO1G.hO5nQeO1G.oO.cQ[O1G.oOOQP1G/a1G/aO6{QpO1G/dO7fQaO1G/gO8cQaO1G/iO9`QaO1G/jO:]Q!fO'#FOO:yQ!fO'#ExOOQO'#FO'#FOOOQO,5;i,5;iO<^QWO,5;iOWQWO1G/rO>]Q!fO'#DnO>qQWO,5:ZO>vQ!fO,5:_OOQO'#DP'#DPO'bQWO,5:]O?XQWO'#DwOOQS,5:b,5:bO?`QWO,5:dO'bQWO'#EiO?gQWO,5;mO*bQWO,5:`OOQO1G0P1G0PO?uQ!fO,5:^O@aQ!fO,59cOOQS,59e,59eO(QQWO,59iOOQS,59n,59nO@rQWO,59pOOQO1G0R1G0RO@yQ#tO,59rOARQ!fO,59lOOQO1G0T1G0TOBrQWO1G0TOBwQWO'#ETOOQO1G0W1G0WOOQO1G0^1G0^OOQO,5;V,5;VOOQO-E8i-E8iOCVQ!fO1G0bOCvQWO1G0`O%kQWO'#E_O$RQWO'#E`OEZQWO'#E^OOQO1G0b1G0bPEkQWO'#EcOUAN>UO!!RQWO,5;QOOQO-E8d-E8dO!!]QWOAN>dOOQS<S![;'S%T;'S;=`%f<%lO%Tm>ZY#m]|`Oy%Tz!Q%T!Q![>S![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%Tm?OY|`Oy%Tz{%T{|?n|}%T}!O?n!O!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm?sU|`Oy%Tz!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm@^U#m]|`Oy%Tz!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm@w[#m]|`Oy%Tz!O%T!O!P>S!P!Q%T!Q![@p![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%TbAtS#xQ|`Oy%Tz;'S%T;'S;=`%f<%lO%TkBVScZOy%Tz;'S%T;'S;=`%f<%lO%TmBhXrWOy%Tz}%T}!OCT!O!P=k!P!Q%T!Q![@p![;'S%T;'S;=`%f<%lO%TmCYW|`Oy%Tz!c%T!c!}Cr!}#T%T#T#oCr#o;'S%T;'S;=`%f<%lO%TmCy[f]|`Oy%Tz}%T}!OCr!O!Q%T!Q![Cr![!c%T!c!}Cr!}#T%T#T#oCr#o;'S%T;'S;=`%f<%lO%ToDtW#iROy%Tz!O%T!O!PE^!P!Q%T!Q![>S![;'S%T;'S;=`%f<%lO%TlEcU|`Oy%Tz!O%T!O!PEu!P;'S%T;'S;=`%f<%lO%TlE|S#s[|`Oy%Tz;'S%T;'S;=`%f<%lO%T~F_VrWOy%Tz{Ft{!P%T!P!QIl!Q;'S%T;'S;=`%f<%lO%T~FyU|`OyFtyzG]z{Hd{;'SFt;'S;=`If<%lOFt~G`TOzG]z{Go{;'SG];'S;=`H^<%lOG]~GrVOzG]z{Go{!PG]!P!QHX!Q;'SG];'S;=`H^<%lOG]~H^OR~~HaP;=`<%lG]~HiW|`OyFtyzG]z{Hd{!PFt!P!QIR!Q;'SFt;'S;=`If<%lOFt~IYS|`R~Oy%Tz;'S%T;'S;=`%f<%lO%T~IiP;=`<%lFt~IsV|`S~OYIlYZ%TZyIlyzJYz;'SIl;'S;=`Jq<%lOIl~J_SS~OYJYZ;'SJY;'S;=`Jk<%lOJY~JnP;=`<%lJY~JtP;=`<%lIlmJ|[#m]Oy%Tz!O%T!O!P>S!P!Q%T!Q![@p![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%TkKwU^ZOy%Tz![%T![!]LZ!];'S%T;'S;=`%f<%lO%TcLbS_R|`Oy%Tz;'S%T;'S;=`%f<%lO%TkLsS!ZZOy%Tz;'S%T;'S;=`%f<%lO%ThMUUrWOy%Tz!_%T!_!`Mh!`;'S%T;'S;=`%f<%lO%ThMoS|`rWOy%Tz;'S%T;'S;=`%f<%lO%TlNSW!SSrWOy%Tz!^%T!^!_Mh!_!`%T!`!aMh!a;'S%T;'S;=`%f<%lO%TjNsV!UQrWOy%Tz!_%T!_!`Mh!`!a! Y!a;'S%T;'S;=`%f<%lO%Tb! aS!UQ|`Oy%Tz;'S%T;'S;=`%f<%lO%To! rYg]Oy%Tz!b%T!b!c!!b!c!}!#R!}#T%T#T#o!#R#o#p!$O#p;'S%T;'S;=`%f<%lO%Tm!!iWg]|`Oy%Tz!c%T!c!}!#R!}#T%T#T#o!#R#o;'S%T;'S;=`%f<%lO%Tm!#Y[g]|`Oy%Tz}%T}!O!#R!O!Q%T!Q![!#R![!c%T!c!}!#R!}#T%T#T#o!#R#o;'S%T;'S;=`%f<%lO%To!$TW|`Oy%Tz!c%T!c!}!$m!}#T%T#T#o!$m#o;'S%T;'S;=`%f<%lO%To!$r^|`Oy%Tz}%T}!O!$m!O!Q%T!Q![!$m![!c%T!c!}!$m!}#T%T#T#o!$m#o#q%T#q#r!%n#r;'S%T;'S;=`%f<%lO%To!%uSp_|`Oy%Tz;'S%T;'S;=`%f<%lO%To!&W[#h_Oy%Tz}%T}!O!&|!O!Q%T!Q![!&|![!c%T!c!}!&|!}#T%T#T#o!&|#o;'S%T;'S;=`%f<%lO%To!'T[#h_|`Oy%Tz}%T}!O!&|!O!Q%T!Q![!&|![!c%T!c!}!&|!}#T%T#T#o!&|#o;'S%T;'S;=`%f<%lO%Tk!(OSyZOy%Tz;'S%T;'S;=`%f<%lO%Tm!(aSw]Oy%Tz;'S%T;'S;=`%f<%lO%Td!(pUOy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%Tk!)XS!^ZOy%Tz;'S%T;'S;=`%f<%lO%Tk!)jS!]ZOy%Tz;'S%T;'S;=`%f<%lO%To!){Y#oQOr%Trs!*ksw%Twx!.wxy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%Tm!*pZ|`OY!*kYZ%TZr!*krs!+csy!*kyz!+vz#O!*k#O#P!-j#P;'S!*k;'S;=`!.q<%lO!*km!+jSo]|`Oy%Tz;'S%T;'S;=`%f<%lO%T]!+yWOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d<%lO!+v]!,hOo]]!,kRO;'S!+v;'S;=`!,t;=`O!+v]!,wXOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d;=`<%l!+v<%lO!+v]!-gP;=`<%l!+vm!-oU|`Oy!*kyz!+vz;'S!*k;'S;=`!.R;=`<%l!+v<%lO!*km!.UXOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d;=`<%l!*k<%lO!+vm!.tP;=`<%l!*km!.|Z|`OY!.wYZ%TZw!.wwx!+cxy!.wyz!/oz#O!.w#O#P!1^#P;'S!.w;'S;=`!2e<%lO!.w]!/rWOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W<%lO!/o]!0_RO;'S!/o;'S;=`!0h;=`O!/o]!0kXOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W;=`<%l!/o<%lO!/o]!1ZP;=`<%l!/om!1cU|`Oy!.wyz!/oz;'S!.w;'S;=`!1u;=`<%l!/o<%lO!.wm!1xXOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W;=`<%l!.w<%lO!/om!2hP;=`<%l!.w`!2nP;=`<%l$t",tokenizers:[NEr,UEr,FEr,0,1,2,3,4],topRules:{StyleSheet:[0,5]},specialized:[{term:116,get:e=>WEr[e]||-1},{term:23,get:e=>VEr[e]||-1}],tokenPrec:2180}),qPe=Vd.define({name:"less",parser:zEr.configure({props:[Vu.add({Declaration:Pu()}),kh.add({Block:bA})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"@-"}}),yLn=Ope(e=>e.name=="VariableName"||e.name=="AtKeyword");function HEr(){return new wd(qPe,qPe.data.of({autocomplete:yLn}))}const $Er=Object.freeze(Object.defineProperty({__proto__:null,less:HEr,lessCompletionSource:yLn,lessLanguage:qPe},Symbol.toStringTag,{value:"Module"})),XEr=1,GEr=2,YEr=3,ZEr=180,qEr=4,KEr=181,JEr=5,e7r=182,t7r=6;function n7r(e){return e>=65&&e<=90||e>=97&&e<=122}const i7r=new go(e=>{let t=e.pos;for(;;){let{next:n}=e;if(n<0)break;if(n==123){let r=e.peek(1);if(r==123){if(e.pos>t)break;e.acceptToken(XEr,2);return}else if(r==37){if(e.pos>t)break;let o=2,s=2;for(;;){let a=e.peek(o);if(a==32||a==10)++o;else if(a==35)for(++o;;){let l=e.peek(o);if(l<0||l==10)break;o++}else if(a==45&&s==2)s=++o;else{let l=a==101&&e.peek(o+1)==110&&e.peek(o+2)==100;e.acceptToken(l?YEr:GEr,s);return}}}}if(e.advance(),n==10)break}e.pos>t&&e.acceptToken(ZEr)});function CLn(e,t,n){return new go(r=>{let o=r.pos;for(;;){let{next:s}=r;if(s==123&&r.peek(1)==37){let a=2;for(;;a++){let d=r.peek(a);if(d!=32&&d!=10)break}let l="";for(;;a++){let d=r.peek(a);if(!n7r(d))break;l+=String.fromCharCode(d)}if(l==e){if(r.pos>o)break;r.acceptToken(n,2);break}}else if(s<0)break;if(r.advance(),s==10)break}r.pos>o&&r.acceptToken(t)})}const r7r=CLn("endcomment",e7r,JEr),o7r=CLn("endraw",KEr,qEr),s7r=new go(e=>{if(e.next==35){for(e.advance();!(e.next==10||e.next<0||(e.next==37||e.next==125)&&e.peek(1)==125);)e.advance();e.acceptToken(t7r)}}),a7r={__proto__:null,contains:34,or:38,and:38,true:52,false:52,empty:54,forloop:57,tablerowloop:59,continue:61,in:131,with:197,for:199,as:201,if:237,endif:241,unless:247,endunless:251,elsif:255,else:259,case:265,endcase:269,when:273,endfor:281,tablerow:287,endtablerow:291,break:295,cycle:301,echo:305,render:309,include:313,assign:317,capture:323,endcapture:327,increment:331,decrement:335},l7r={__proto__:null,if:86,endif:90,elsif:94,else:98,unless:104,endunless:108,case:114,endcase:118,when:122,for:128,endfor:138,tablerow:144,endtablerow:148,break:152,continue:156,cycle:160,comment:166,endcomment:172,raw:178,endraw:184,echo:188,render:192,include:204,assign:208,capture:214,endcapture:218,increment:222,decrement:226,liquid:230},c7r=zd.deserialize({version:14,states:"KtQYOPOOOOOP'#F{'#F{OeOaO'#CdOsQhO'#CfO!bQxO'#DSO#{OPO'#DVO$ZOPO'#D`O$iOPO'#DeO$wOPO'#DlO%VOPO'#DtO%eOSO'#EPO%jOQO'#EVO%oOPO'#EiOOOP'#Ge'#GeOOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQW'#Cg'#CgO&cQ!jO,59QO&jQ!jO'#G^OsQhO'#CtOOQW'#Gb'#GbOOQW'#Gc'#GcOOQW'#Gd'#GdOOQW'#G^'#G^OOOP,59n,59nO)YQhO,59nOsQhO,59rOsQhO,59vO)dQhO,59xOsQhO,59{OsQhO,5:QOsQhO,5:UO!]QhO,5:XO!]QhO,5:aO)iQhO,5:eO)nQhO,5:gO)sQhO,5:iO)xQhO,5:lO)}QhO,5:rOsQhO,5:wOsQhO,5:yOsQhO,5;POsQhO,5;ROsQhO,5;UOsQhO,5;YOsQhO,5;[O+^QhO,5;^O+eOPO'#CdOOOP,59q,59qO#{OPO,59qO+sQxO'#DYOOOP,59z,59zO$ZOPO,59zO+xQxO'#DcOOOP,5:P,5:PO$iOPO,5:PO+}QxO'#DhOOOP,5:W,5:WO$wOPO,5:WO,SQxO'#DrOOOP,5:`,5:`O%VOPO,5:`O,XQxO'#DwOOOS'#GQ'#GQO,^OSO'#ESO,fOSO,5:kOOOQ'#GR'#GRO,kOQO'#EYO,sOQO,5:qOOOP,5;T,5;TO%oOPO,5;TO,xQxO'#ElOOOP-E9x-E9xO,}Q#|O,59SOsQhO,59VOsQhO,59WOsQhO,59WO-SQhO'#C}OOQW'#F|'#F|O-XQhO1G.lOOOP1G.l1G.lOsQhO,59WOsQhO,59[O-rQ!jO,59`O-yQ!jO1G/YO.QQhO1G/YOOOP1G/Y1G/YO.YQ!jO1G/^O.aQ!jO1G/bOOOP1G/d1G/dO.hQ!jO1G/gO.oQ!jO1G/lO.vQ!jO1G/pO/QQhO1G/sO/QQhO1G/{OOOP1G0P1G0POOOP1G0R1G0RO/VQhO1G0TOOOS1G0W1G0WOOOQ1G0^1G0^O/bQ!jO1G0cO/iQ!jO1G0eO/yQ!jO1G0kO0QQ!jO1G0mO0XQ!jO1G0pO0`Q!jO1G0tO0gQ!jO1G0vOOQW'#Gh'#GhOOQW'#Gk'#GkOsQhO'#EuO0nQhO'#EtOOQW'#Gm'#GmOsQhO'#EzO0uQhO'#EyOOQW'#Go'#GoOsQhO'#FOOOQW'#Gp'#GpOOQW'#FQ'#FQOOQW'#Gq'#GqOsQhO'#FTO0|QhO'#FSOOQW'#Gs'#GsOsQhO'#FXO!]QhO'#F[O1TQhO'#FZOOQW'#Gu'#GuO!]QhO'#F`O1[QhO'#F_OOQW'#Gw'#GwOOQW'#Fd'#FdOOQW'#Ff'#FfOOQW'#Gx'#GxO1cQhO'#FgOOQW'#Gy'#GyOsQhO'#FiOOQW'#Gz'#GzOsQhO'#FkOOQW'#G{'#G{OsQhO'#FmOOQW'#G|'#G|OsQhO'#FoOOQW'#G}'#G}OsQhO'#FrO1hQhO'#FqOOQW'#HP'#HPOsQhO'#FvOOQW'#HQ'#HQOsQhO'#FxOOQW'#Gj'#GjOOQW'#GT'#GTO1oQhO1G0xOOOP1G0x1G0xOOOP1G/]1G/]O1vQhO,59tOOOP1G/f1G/fO1{QhO,59}OOOP1G/k1G/kO2QQhO,5:SOOOP1G/r1G/rO2VQhO,5:^OOOP1G/z1G/zO2[QhO,5:cOOOS-E:O-E:OOOOP1G0V1G0VO2aQxO'#ETOOOQ-E:P-E:POOOP1G0]1G0]O2fQxO'#EZOOOP1G0o1G0oO2kQhO,5;WOOQW1G.n1G.nO2pQ!jO1G.qO5aQ!jO1G.rO5hQ!jO1G.rOOQW'#DP'#DPO7vQhO,59iOOQW-E9z-E9zOOOP7+$W7+$WO9pQ!jO1G.rO9wQ!jO1G.vOsQhO1G.zOxQ!jO,5;fOOQW'#Gn'#GnOOQW'#E|'#E|OOQW,5;e,5;eO0uQhO,5;eO@XQ!jO,5;jOAzQ!jO,5;oOOQW'#Gr'#GrOOQW'#FV'#FVOOQW,5;n,5;nO0|QhO,5;nOCZQ!jO,5;sO/QQhO,5;vOOQW'#Gt'#GtOOQW'#F]'#F]OOQW,5;u,5;uO1TQhO,5;uO/QQhO,5;zOOQW'#Gv'#GvOOQW'#Fb'#FbOOQW,5;y,5;yO1[QhO,5;yOEPQhO,5eOOOPAN>eAN>eO!6OQhOAN>mOOOPAN>mAN>mO!6WQhOAN>uOOOPAN>uAN>uOsQhO1G0gOOQW'#Gi'#GiO!]QhO1G0gO!6`Q!jO7+&|O!7rQ!jO7+'QO!9UQhO7+'XOOQW-E:S-E:SO!:xQhO<kQhO<W>h>x?Y?j?z@O@`m^OTUVWX[`!T!W!Z!^!a!j!vdReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'yQ#RrQ#SsQ&O#qQ&T#tQ'O%bR(P's!wiReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym!rck!s!x!y#Y#]$}%_%h&Z&^'_'bR$w!qm]OTUVWX[`!T!W!Z!^!a!jmTOTUVWX[`!T!W!Z!^!a!jQ!STR$`!TmUOTUVWX[`!T!W!Z!^!a!jQ!VUR$b!WmVOTUVWX[`!T!W!Z!^!a!jQ!YVR$d!ZmWOTUVWX[`!T!W!Z!^!a!ja'j&w&x'k'm't'u(Q(Ra'i&w&x'k'm't'u(Q(RQ!]WR$f!^mXOTUVWX[`!T!W!Z!^!a!jQ!`XR$h!amYOTUVWX[`!T!W!Z!^!a!jR!eYR$k!emZOTUVWX[`!T!W!Z!^!a!jR!hZR$n!hS%d#Z%eT'`&['am[OTUVWX[`!T!W!Z!^!a!jQ!i[R$p!jm$[!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#d!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%p#dR'T%qm#g!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%u#gR'U%vm#n!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%{#nR'V%|m#r!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&R#rR'Y&Sm#u!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&W#uR'[&Xm$V!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&b$VR'c&cQ`OQ!TTQ!WUQ!ZVQ!^WQ!aXQ!j[_!l`!T!W!Z!^!a!jSQO`SaQ!Ri!RTUVWX[!T!W!Z!^!a!jQ!scQ!yk^$x!s!y$}%_%h'_'bQ$}!xQ%_#YQ%h#]Q'_&ZR'b&^Q%U#QU&u%U'W'xQ'W%}R'x'fQ'k&wQ'm&xW'z'k'm(Q(RQ(Q'tR(R'uQ%[#VW&z%[']'o(SQ']&YQ'o&|R(S'vQ!dYR$j!dQ!gZR$m!gQ%e#ZR'Q%eQ$^!QQ%q#dQ%v#gQ%|#nQ&S#rQ&X#uQ&c$V_&f$^%q%v%|&S&X&cQ'a&[R'w'am_OTUVWX[`!T!W!Z!^!a!jQcRQ!weQ!xkQ!{lQ!|mQ#OoQ#PpQ#QqQ#YyQ#ZzQ#[{Q#]|Q#^}Q#_!OQ#`!PQ$s!nQ$t!oQ$u!pQ$z!uQ${!vQ%m#cQ%r#fQ%w#iQ%x#mQ%}#pQ&Z#|Q&[$OQ&]$QQ&^$SQ&_$UQ&d$XQ&e$ZQ&r$|Q&t%TQ&w%XQ&x%YQ'P%cQ'f&qQ't'XQ'u'ZQ(O'qR(T'y!viReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym#x!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%X#RQ%Y#SQ'X&OR'Z&TX%c#Z%e&['al#q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cX%c#Z%e&['aR's'Pm$]!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#c!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%o#d%qm#f!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%t#g%vm#i!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#k!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#m!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%z#n%|m#p!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&Q#r&Sm#t!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&V#u&Xm#w!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#z!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#|!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$O!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$S!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$U!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&a$V&cm$X!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Z!Q#d#g#n#r#u$V$^%q%v%|&S&X&c",nodeNames:"⚠ {{ {% {% {% {% InlineComment Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression contains CompareOp LogicOp AssignmentExpression AssignOp ) ( RangeExpression .. BooleanLiteral empty forloop tablerowloop continue StringLiteral NumberLiteral Filter | FilterName : , Tag TagName %} IfDirective Tag if EndTag endif Tag elsif Tag else UnlessDirective Tag unless EndTag endunless CaseDirective Tag case EndTag endcase Tag when ForDirective Tag for in Parameter ParameterName EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag continue Tag cycle Comment Tag comment CommentText EndTag endcomment RawDirective Tag raw RawText EndTag endraw Tag echo Tag render RenderParameter with for as Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement Tag liquid IfDirective Tag if EndTag endif UnlessDirective Tag unless EndTag endunless Tag elsif Tag else CaseDirective Tag case EndTag endcase Tag when ForDirective Tag EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag Tag cycle Tag echo Tag render Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement",maxTerm:220,nodeProps:[["closedBy",1,"}}",-4,2,3,4,5,"%}",23,")"],["openedBy",9,"{{",22,"(",40,"{%"],["group",-13,11,12,15,16,20,24,26,27,28,29,30,31,32,"Expression"]],skippedNodes:[0,6],repeatNodeCount:11,tokenData:")e~RmXY!|YZ!|]^!|pq!|qr#_rs#juv$[wx$gxy%Syz%X{|%^|}&x}!O&}!O!P'Z!Q![&g![!]'k!^!_'p!_!`'x!`!a'p!c!}(Q!}#O(y#P#Q)O#R#S(Q#T#o(Q#p#q)T#q#r)Y%W;'S(Q;'S;:j(s<%lO(Q~#RS%O~XY!|YZ!|]^!|pq!|~#bP!_!`#e~#jOb~~#mUOY#jZr#jrs$Ps;'S#j;'S;=`$U<%lO#j~$UOo~~$XP;=`<%l#j~$_P#q#r$b~$gOx~~$jUOY$gZw$gwx$Px;'S$g;'S;=`$|<%lO$g~%PP;=`<%l$g~%XOg~~%^Of~P%aQ!O!P%g!Q![&gP%jP!Q![%mP%rRpP!Q![%m!g!h%{#X#Y%{P&OR{|&X}!O&X!Q![&_P&[P!Q![&_P&dPpP!Q![&_P&lSpP!O!P%g!Q![&g!g!h%{#X#Y%{~&}Ou~~'QRuv$[!O!P%g!Q![&g~'`Q]S!O!P'f!Q![%m~'kOi~~'pOt~~'uPb~!_!`#e~'}Pe~!_!`#e_(ZW^WwQ%RT}!O(Q!Q![(Q!c!}(Q#R#S(Q#T#o(Q%W;'S(Q;'S;:j(s<%lO(Q_(vP;=`<%l(Q~)OO%T~~)TO%S~~)YOr~~)]P#q#r)`~)eOX~",tokenizers:[i7r,o7r,r7r,s7r,0,1,2,3],topRules:{Template:[0,7]},dynamicPrecedences:{190:1,191:1,192:1,194:1,195:1,196:1,197:1,199:1,200:1,201:1,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,210:1,211:1,212:1,213:1,214:1,215:1,216:1,217:1,218:1,219:1,220:1},specialized:[{term:187,get:e=>a7r[e]||-1},{term:39,get:e=>l7r[e]||-1}],tokenPrec:0});function rie(e,t){return e.split(" ").map(n=>({label:n,type:t}))}const Fvt=rie("abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where","function"),Nvt=rie("cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include","keyword"),Uvt=rie("empty forloop tablerowloop in with as","keyword"),d7r=rie("first index index0 last length rindex","property"),u7r=rie("col col0 col_first col_last first index index0 last length rindex rindex0 row","property");function h7r(e){var t;let{state:n,pos:r}=e,o=tc(n).resolveInner(r,-1).enterUnfinishedNodesBefore(r),s=((t=o.childBefore(r))===null||t===void 0?void 0:t.name)||o.name;if(o.name=="FilterName")return{type:"filter",node:o};if(e.explicit&&s=="|")return{type:"filter"};if(o.name=="TagName")return{type:"tag",node:o};if(e.explicit&&s=="{%")return{type:"tag"};if(o.name=="PropertyName"&&o.parent.name=="MemberExpression")return{type:"property",node:o,target:o.parent};if(o.name=="."&&o.parent.name=="MemberExpression")return{type:"property",target:o.parent};if(o.name=="MemberExpression"&&s==".")return{type:"property",target:o};if(o.name=="VariableName")return{type:"expression",from:o.from};let a=e.matchBefore(/[\w\u00c0-\uffff]+$/);return a?{type:"expression",from:a.from}:e.explicit&&o.name!="CommentText"&&o.name!="StringLiteral"&&o.name!="NumberLiteral"&&o.name!="InlineComment"?{type:"expression"}:null}function f7r(e,t,n,r){let o=[];for(;;){let s=t.getChild("Expression");if(!s)return[];if(s.name=="VariableName"||s.name=="forloop"||s.name=="tablerowloop"){let a=e.sliceDoc(s.from,s.to);if(a=="forloop")return o.length?[]:d7r;if(a=="tablerowloop")return o.length?[]:u7r;o.unshift(a);break}else if(s.name=="MemberExpression"){let a=s.getChild("PropertyName");a&&o.unshift(e.sliceDoc(a.from,a.to)),t=s}else if(s.name=="SubscriptExpression"){let a=s.getChildren("Expression")[1];o.unshift((a==null?void 0:a.name)=="StringLiteral"?e.sliceDoc(a.from+1,a.to-1):"[]"),t=s}else return[]}return r?r(o,e,n):[]}function _Ln(e={}){let t=e.filters?e.filters.concat(Fvt):Fvt,n=e.tags?e.tags.concat(Nvt):Nvt,r=e.variables?e.variables.concat(Uvt):Uvt,{properties:o}=e;return s=>{var a;let l=h7r(s);if(!l)return null;let d=(a=l.from)!==null&&a!==void 0?a:l.node?l.node.from:s.pos,u;return l.type=="filter"?u=t:l.type=="tag"?u=n:l.type=="expression"?u=r:u=f7r(s.state,l.target,s,o),u.length?{options:u,from:d,validFor:/^[\w\u00c0-\uffff]*$/}:null}}const SLn=er.inputHandler.of((e,t,n,r)=>r!="%"||t!=n||e.state.doc.sliceString(t-1,n+1)!="{}"?!1:(e.dispatch(e.state.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:"%%"},range:Ln.cursor(o.from+1)})),{scrollIntoView:!0,userEvent:"input.type"}),!0));function WSe(e){return t=>{let n=e.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)}}const g7r=Vd.define({name:"liquid",parser:c7r.configure({props:[Xd({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":ve.keyword,"empty forloop tablerowloop":ve.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":ve.controlKeyword,"assign capture endcapture":ve.definitionKeyword,contains:ve.operatorKeyword,"render include":ve.moduleKeyword,VariableName:ve.variableName,TagName:ve.tagName,FilterName:ve.function(ve.variableName),PropertyName:ve.propertyName,CompareOp:ve.compareOperator,AssignOp:ve.definitionOperator,LogicOp:ve.logicOperator,NumberLiteral:ve.number,StringLiteral:ve.string,BooleanLiteral:ve.bool,InlineComment:ve.lineComment,CommentText:ve.blockComment,"{% %} {{ }}":ve.brace,"[ ]":ve.bracket,"( )":ve.paren,".":ve.derefOperator,", .. : |":ve.punctuation}),Vu.add({Tag:Xv({closing:"%}"}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":WSe(/^\s*(\{%-?\s*)?end\w/),IfDirective:WSe(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:WSe(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),kh.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="Tag"?null:{from:t.to,to:n.name=="EndTag"?n.from:e.to}}})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),KPe=dI();function LLn(e){return g7r.configure({wrap:Ap(t=>t.type.isTop?{parser:e.parser,overlay:n=>n.name=="Text"||n.name=="RawText"}:null)},"liquid")}const xLn=LLn(KPe.language);function m7r(e={}){let t=e.base||KPe,n=t.language==KPe.language?xLn:LLn(t.language);return new wd(n,[t.support,n.data.of({autocomplete:_Ln(e)}),t.language.data.of({closeBrackets:{brackets:["{"]}}),SLn])}const k7r=Object.freeze(Object.defineProperty({__proto__:null,closePercentBrace:SLn,liquid:m7r,liquidCompletionSource:_Ln,liquidLanguage:xLn},Symbol.toStringTag,{value:"Module"})),v7r=1,A7r=2,p7r=275,b7r=3,w7r=276,jvt=277,O7r=278,y7r=4,C7r=5,_7r=6,S7r=7,Wvt=8,L7r=9,x7r=10,E7r=11,T7r=12,Q7r=13,D7r=14,B7r=15,R7r=16,I7r=17,M7r=18,P7r=19,F7r=20,N7r=21,U7r=22,j7r=23,W7r=24,V7r=25,z7r=26,H7r=27,$7r=28,X7r=29,G7r=30,Y7r=31,Z7r=32,q7r=33,K7r=34,J7r=35,eTr=36,tTr=37,nTr=38,iTr=39,rTr=40,oTr=41,sTr=42,aTr=43,lTr=44,cTr=45,dTr=46,uTr=47,hTr=48,fTr=49,gTr=50,mTr=51,kTr=52,vTr=53,ATr=54,pTr=55,bTr=56,wTr=57,OTr=58,yTr=59,CTr=60,_Tr=61,STr=62,VSe=63,LTr=64,xTr=65,ETr=66,TTr={abstract:y7r,and:C7r,array:_7r,as:S7r,true:Wvt,false:Wvt,break:L7r,case:x7r,catch:E7r,clone:T7r,const:Q7r,continue:D7r,declare:R7r,default:B7r,do:I7r,echo:M7r,else:P7r,elseif:F7r,enddeclare:N7r,endfor:U7r,endforeach:j7r,endif:W7r,endswitch:V7r,endwhile:z7r,enum:H7r,extends:$7r,final:X7r,finally:G7r,fn:Y7r,for:Z7r,foreach:q7r,from:K7r,function:J7r,global:eTr,goto:tTr,if:nTr,implements:iTr,include:rTr,include_once:oTr,instanceof:sTr,insteadof:aTr,interface:lTr,list:cTr,match:dTr,namespace:uTr,new:hTr,null:fTr,or:gTr,print:mTr,readonly:kTr,require:vTr,require_once:ATr,return:pTr,switch:bTr,throw:wTr,trait:OTr,try:yTr,unset:CTr,use:_Tr,var:STr,public:VSe,private:VSe,protected:VSe,while:LTr,xor:xTr,yield:ETr,__proto__:null};function Vvt(e){let t=TTr[e.toLowerCase()];return t??-1}function zvt(e){return e==9||e==10||e==13||e==32}function ELn(e){return e>=97&&e<=122||e>=65&&e<=90}function eZ(e){return e==95||e>=128||ELn(e)}function zSe(e){return e>=48&&e<=55||e>=97&&e<=102||e>=65&&e<=70}const QTr={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},DTr=new go(e=>{if(e.next==40){e.advance();let t=0;for(;zvt(e.peek(t));)t++;let n="",r;for(;ELn(r=e.peek(t));)n+=String.fromCharCode(r),t++;for(;zvt(e.peek(t));)t++;e.peek(t)==41&&QTr[n.toLowerCase()]&&e.acceptToken(v7r)}else if(e.next==60&&e.peek(1)==60&&e.peek(2)==60){for(let r=0;r<3;r++)e.advance();for(;e.next==32||e.next==9;)e.advance();let t=e.next==39;if(t&&e.advance(),!eZ(e.next))return;let n=String.fromCharCode(e.next);for(;e.advance(),!(!eZ(e.next)&&!(e.next>=48&&e.next<=55));)n+=String.fromCharCode(e.next);if(t){if(e.next!=39)return;e.advance()}if(e.next!=10&&e.next!=13)return;for(;;){let r=e.next==10||e.next==13;if(e.advance(),e.next<0)return;if(r){for(;e.next==32||e.next==9;)e.advance();let o=!0;for(let s=0;s{e.next<0&&e.acceptToken(O7r)}),RTr=new go((e,t)=>{e.next==63&&t.canShift(jvt)&&e.peek(1)==62&&e.acceptToken(jvt)});function ITr(e){let t=e.peek(1);if(t==110||t==114||t==116||t==118||t==101||t==102||t==92||t==36||t==34||t==123)return 2;if(t>=48&&t<=55){let n=2,r;for(;n<5&&(r=e.peek(n))>=48&&r<=55;)n++;return n}if(t==120&&zSe(e.peek(2)))return zSe(e.peek(3))?4:3;if(t==117&&e.peek(2)==123)for(let n=3;;n++){let r=e.peek(n);if(r==125)return n==2?0:n+1;if(!zSe(r))break}return 0}const MTr=new go((e,t)=>{let n=!1;for(;!(e.next==34||e.next<0||e.next==36&&(eZ(e.peek(1))||e.peek(1)==123)||e.next==123&&e.peek(1)==36);n=!0){if(e.next==92){let r=ITr(e);if(r){if(n)break;return e.acceptToken(b7r,r)}}else if(!n&&(e.next==91||e.next==45&&e.peek(1)==62&&eZ(e.peek(2))||e.next==63&&e.peek(1)==45&&e.peek(2)==62&&eZ(e.peek(3)))&&t.canShift(w7r))break;e.advance()}n&&e.acceptToken(p7r)}),PTr=Xd({"Visibility abstract final static":ve.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":ve.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":ve.controlKeyword,"and or xor yield unset clone instanceof insteadof":ve.operatorKeyword,"function fn class trait implements extends const enum global interface use var":ve.definitionKeyword,"include include_once require require_once namespace":ve.moduleKeyword,"new from echo print array list as":ve.keyword,null:ve.null,Boolean:ve.bool,VariableName:ve.variableName,"NamespaceName/...":ve.namespace,"NamedType/...":ve.typeName,Name:ve.name,"CallExpression/Name":ve.function(ve.variableName),"LabelStatement/Name":ve.labelName,"MemberExpression/Name":ve.propertyName,"MemberExpression/VariableName":ve.special(ve.propertyName),"ScopedExpression/ClassMemberName/Name":ve.propertyName,"ScopedExpression/ClassMemberName/VariableName":ve.special(ve.propertyName),"CallExpression/MemberExpression/Name":ve.function(ve.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":ve.function(ve.propertyName),"MethodDeclaration/Name":ve.function(ve.definition(ve.variableName)),"FunctionDefinition/Name":ve.function(ve.definition(ve.variableName)),"ClassDeclaration/Name":ve.definition(ve.className),UpdateOp:ve.updateOperator,ArithOp:ve.arithmeticOperator,"LogicOp IntersectionType/&":ve.logicOperator,BitOp:ve.bitwiseOperator,CompareOp:ve.compareOperator,ControlOp:ve.controlOperator,AssignOp:ve.definitionOperator,"$ ConcatOp":ve.operator,LineComment:ve.lineComment,BlockComment:ve.blockComment,Integer:ve.integer,Float:ve.float,String:ve.string,ShellExpression:ve.special(ve.string),"=> ->":ve.punctuation,"( )":ve.paren,"#[ [ ]":ve.squareBracket,"${ { }":ve.brace,"-> ?->":ve.derefOperator,", ; :: : \\":ve.separator,"PhpOpen PhpClose":ve.processingInstruction}),FTr={__proto__:null,static:325,STATIC:325,class:351,CLASS:351},NTr=zd.deserialize({version:14,states:"%#[Q`OWOOQhQaOOP%oO`OOOOO#t'#Hh'#HhO%tO#|O'#DuOOO#u'#Dx'#DxQ&SOWO'#DxO&XO$VOOOOQ#u'#Dy'#DyO&lQaO'#D}O'[QdO'#EQO+QQdO'#IqO+_QdO'#ERO-RQaO'#EXO/bQ`O'#EUO/gQ`O'#E_O2UQaO'#E_O2]Q`O'#EgO2bQ`O'#EqO-RQaO'#EqO2mQpO'#FOO2rQ`O'#FOOOQS'#Iq'#IqO2wQ`O'#ExOOQS'#Ih'#IhO5SQdO'#IeO9UQeO'#F]O-RQaO'#FlO-RQaO'#FmO-RQaO'#FnO-RQaO'#FoO-RQaO'#FoO-RQaO'#FrOOQO'#Ir'#IrO9cQ`O'#FxOOQO'#Ht'#HtO9kQ`O'#HXO:VQ`O'#FsO:bQ`O'#HfO:mQ`O'#GPO:uQaO'#GQO-RQaO'#G`O-RQaO'#GcO;bOrO'#GfOOQS'#JP'#JPOOQS'#JO'#JOOOQS'#Ie'#IeO/bQ`O'#GmO/bQ`O'#GoO/bQ`O'#GtOhQaO'#GvO;iQ`O'#GwO;nQ`O'#GzO:]Q`O'#G}O;sQeO'#HOO;sQeO'#HPO;sQeO'#HQO;}Q`O'#HROhQ`O'#HVO:]Q`O'#HWO>mQ`O'#HWO;}Q`O'#HXO:]Q`O'#HZO:]Q`O'#H[O:]Q`O'#H]O>rQ`O'#H`O>}Q`O'#HaOQO!$dQ`O,5POOQ#u-E;h-E;hO!1QQ`O,5=tOOO#u,5:_,5:_O!1]O#|O,5:_OOO#u-E;g-E;gOOOO,5>|,5>|OOQ#y1G0T1G0TO!1eQ`O1G0YO-RQaO1G0YO!2wQ`O1G0qOOQS1G0q1G0qOOQS'#Eo'#EoOOQS'#Il'#IlO-RQaO'#IlOOQS1G0r1G0rO!4ZQ`O'#IoO!5pQ`O'#IqO!5}QaO'#EwOOQO'#Io'#IoO!6XQ`O'#InO!6aQ`O,5;aO-RQaO'#FXOOQS'#FW'#FWOOQS1G1[1G1[O!6fQdO1G1dO!8kQdO1G1dO!:WQdO1G1dO!;sQdO1G1dO!=`QdO1G1dO!>{QdO1G1dO!@hQdO1G1dO!BTQdO1G1dO!CpQdO1G1dO!E]QdO1G1dO!FxQdO1G1dO!HeQdO1G1dO!JQQdO1G1dO!KmQdO1G1dO!MYQdO1G1dO!NuQdO1G1dOOQT1G0_1G0_O!#[Q`O,5<_O#!bQaO'#EYOOQS1G0[1G0[O#!iQ`O,5:zOEdQaO,5:zO#!nQaO,5;OO#!uQdO,5:|O#$tQdO,5?UO#&sQaO'#HmO#'TQ`O,5?TOOQS1G0e1G0eO#']Q`O1G0eO#'bQ`O'#IkO#(zQ`O'#IkO#)SQ`O,5;SOG|QaO,5;SOOQS1G0w1G0wOOQO,5>^,5>^OOQO-E;p-E;pOOQS1G1U1G1UO#)pQdO'#FQO#+uQ`O'#HsOJ}QpO1G1UO2wQ`O'#HpO#+zQtO,5;eO2wQ`O'#HqO#,iQtO,5;gO#-WQaO1G1OOOQS,5;h,5;hO#/gQtO'#FQO#/tQdO1G0dO-RQaO1G0dO#1aQdO1G1aO#2|QdO1G1cOOQO,5X,5>XOOQO-E;k-E;kOOQS7+&P7+&PO!+iQaO,5;TO$$^QaO'#HnO$$hQ`O,5?VOOQS1G0n1G0nO$$pQ`O1G0nPOQO'#FQ'#FQOOQO,5>_,5>_OOQO-E;q-E;qOOQS7+&p7+&pOOQS,5>[,5>[OOQS-E;n-E;nO$$uQtO,5>]OOQS-E;o-E;oO$%dQdO7+&jO$'iQtO'#FQO$'vQdO7+&OOOQS1G0j1G0jOOQO,5>a,5>aOOQO-E;s-E;sOOQ#u7+(x7+(xO!$[QdO7+(xOOQ#u7+(}7+(}O#JfQ`O7+(}O#JkQ`O7+(}OOQ#u7+(z7+(zO!.]Q`O7+(zO!1TQ`O7+(zO!1QQ`O7+(zO$)cQ`O,5i,5>iOOQS-E;{-E;{O$.lQdO7+'qO$.|QpO7+'qO$/XQdO'#IxOOQO,5pOOQ#u,5>p,5>pOOQ#u-EoOOQS-EVQdO1G2^OOQS,5>h,5>hOOQS-E;z-E;zOOQ#u7+({7+({O$?oQ`O'#GXO:]Q`O'#H_OOQO'#IV'#IVO$@fQ`O,5=xOOQ#u,5=x,5=xO$AcQ!bO'#EQO$AzQ!bO7+(}O$BYQpO7+)RO#KRQpO7+)RO$BbQ`O'#HbO!$[QdO7+)RO$BpQdO,5>rOOQS-EVOOQS-E;i-E;iO$D{QdO<Z,5>ZOOQO-E;m-E;mOOQS1G1_1G1_O$8rQaO,5:uO$G}QaO'#HlO$H[Q`O,5?QOOQS1G0`1G0`OOQS7+&Q7+&QO$HdQ`O7+&UO$IyQ`O1G0oO$K`Q`O,5>YOOQO,5>Y,5>YOOQO-E;l-E;lOOQS7+&Y7+&YOOQS7+&U7+&UOOQ#u<c,5>cOOQO-E;u-E;uOOQS<lOOQ#u-EmOOQO-EW,5>WOOQO-E;j-E;jO!+iQaO,5;UOOQ#uANBTANBTO#JfQ`OANBTOOQ#uANBQANBQO!.]Q`OANBQO!+iQaO7+'hOOQO7+'l7+'lO%-bQ`O7+'hO%.wQ`O7+'hO%/SQ`O7+'lO!+iQaO7+'mOOQO7+'m7+'mO%/XQdO'#F}OOQO'#Hv'#HvO%/jQ`O,5e,5>eOOQS-E;w-E;wOOQO1G2_1G2_O$1YQdO1G2_O$/jQpO1G2_O#JkQ`O1G2]O!.mQdO1G2aO%$dQ!bO1G2]O!$[QdO1G2]OOQO1G2a1G2aOOQO1G2]1G2]O%2uQaO'#G]OOQO1G2b1G2bOOQSAN@xAN@xO!.]Q`OAN@xOOOQ<]O%6rQ!bO'#FQO!$[QdOANBXOOQ#uANBXANBXO:]Q`O,5=}O%7WQ`O,5=}O%7cQ`O'#IXO%7wQ`O,5?rOOQS1G3h1G3hOOQS7+)x7+)xP%+OQpOANBXO%8PQ`O1G0pOOQ#uG27oG27oOOQ#uG27lG27lO%9fQ`O<d,5>dO%dOOQO-E;v-E;vO%hQ`O'#IqO%>rQ`O'#IhO!$[QdO'#IOO%@lQaO,5s,5>sOOQO-Ej,5>jOOQP-E;|-E;|OOQO1G2c1G2cOOQ#uLD,kLD,kOOQTG27[G27[O!$[QdOLD-RO!$[QdO<OO%EpQ`O,5>OPOQ#uLD-_LD-_OOQO7+'o7+'oO+_QdO7+'oOOQS!$( ]!$( ]OOQOAN@}AN@}OOQS1G2d1G2dOOQS1G2e1G2eO%E{QdO1G2eOOQ#u!$(!m!$(!mOOQOANBVANBVOOQO1G3j1G3jO:]Q`O1G3jOOQO<tQaO,5:xO'/vQaO,5;uO'/vQaO,5;wO'@sQdO,5YQdO,5<^O)@XQdO,5QQ`O,5=eO*>YQaO'#HkO*>dQ`O,5?ROlQdO7+%tO*@kQ`O1G0jO!+iQaO1G0jO*BQQdO7+&OOoO*GeQ`O,5>VO*HzQdO<[QdO,5{QdO'#IjO.BbQ`O'#IeO.BoQ`O'#GPO.BwQaO,5:nO.COQ`O,5uOs#fOx7xOy7xO}aO!O^O!Q8OO!R}O!T7}O!V7yO!W7yO!Z8QO!d:QO!z]O#T#mO#V#lO#X`O#dhO#fbO#gcO#sdO$[7|O$d7{O$e7|O$hqO%T8PO%U!OO%W}O%X}O%`|O'WYO'u{O#Y']P~O#O#qO~P/lO!z#rO~O#d#tO#fbO#gcO~O'a#vO~O#s#zO~OU$OO!R$OO!w#}O#s3hO'W#{O~OT'XXz'XX!S'XX!c'XX!n'XX!w'XX!z'XX#T'XX#X'XX#a'XX#b'XX#y'XX$R'XX$S'XX$T'XX$U'XX$V'XX$X'XX$Y'XX$Z'XX$['XX$]'XX$^'XX$_'XX%T'XX'P'XX!y'XX!o'XX~O#|$QO$O$RO~P3YOP7wOQ|OU_OW}O[7zOo>uOs#fOx7xOy7xO}aO!O^O!Q8OO!R}O!T7}O!V7yO!W7yO!Z8QO!d:QO!z]O#X`O#dhO#fbO#gcO#sdO$[7|O$d7{O$e7|O$hqO%T8PO%U!OO%W}O%X}O%`|O'WYO'u{OT$PXz$PX!S$PX!c$PX!n$PX!w$PX#a$PX#b$PX#y$PX$R$PX$S$PX$T$PX$U$PX$V$PX$X$PX$Y$PX$Z$PX$]$PX$^$PX$_$PX'P$PX!y$PX!o$PX~Or$TO#T8eO#V8dO~P5^O#sdO'WYO~OS$fO]$aOk$dOm$fOs$`O!a$bO$krO$u$eO~O!z$hO#T$jO'W$gO~Oo$mOs$lO#d$nO~O!z$hO#T$rO~O!U$uO$u$tO~P-ROR${O!p$zO#d$yO#g$zO&}${O~O't$}O~P;PO!z%SO~O!z%UO~O!n#bO'P#bO~P-RO!pXO~O!z%`O~OP7wOQ|OU_OW}O[7zOo>uOs#fOx7xOy7xO}aO!O^O!Q8OO!R}O!T7}O!V7yO!W7yO!Z8QO!d:QO!z]O#X`O#dhO#fbO#gcO#sdO$[7|O$d7{O$e7|O$hqO%T8PO%U!OO%W}O%X}O%`|O'WYO'u{O~O!z%dO~O]$aO~O!pXO#sdO'WYO~O]%rOs%rO#s%nO'WYO~O!j%wO'Q%wO'TRO~O'Q%zO~PhO!o%{O~PhO!r%}O~PvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y'cX#O'cX~P!%aO!r)yO!y'eX#O'eX~P)dO!y#kX#O#kX~P!+iO#O){O!y'bX~O!y)}O~O%T#cOT$Qiz$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi$^$Qi$_$Qi'P$Qi!y$Qi#O$Qi#P$Qi#Y$Qi!o$Qi!r$QiV$Qi#|$Qi$O$Qi!p$Qi~P!%aOz#QO#T#PO$R#RO$S#VO$T#WO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO!w!yO#T#PO$R#RO$S#VO$T#WO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi'P$Qi!y$Qi!o$Qi~P!%aOT#SOz#QO!c#UO!w!yO#T#PO$R#RO$S#VO$T#WO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cO!S$Qi!n$Qi'P$Qi!y$Qi!o$Qi~P!%aOT#SOz#QO!w!yO#T#PO$R#RO$S#VO$T#WO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cO!S$Qi!c$Qi!n$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO#T#PO$T#WO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi$R$Qi$S$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO#T#PO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi$R$Qi$S$Qi$T$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO#T#PO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi$R$Qi$S$Qi$T$Qi$U$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO#T#PO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$[#_O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$]$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$Z#^O$[#_O$^#aO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$]$Qi'P$Qi!y$Qi!o$Qi~P!%aOz#QO$_#aO%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi$^$Qi'P$Qi!y$Qi!o$Qi~P!%aO_*PO~PxO$hqO$krO~P2wO#X+|O#a+{O#b+{O~O#d,OO%W,OO%^+}O'W$gO~O!o,PO~PCVOc%bXd%bXh%bXj%bXf%bXg%bXe%bX~PhOc,TOd,ROP%aiQ%aiS%aiU%aiW%aiX%ai[%ai]%ai^%ai`%aia%aib%aik%aim%aio%aip%aiq%ais%ait%aiu%aiv%aix%aiy%ai|%ai}%ai!O%ai!P%ai!Q%ai!R%ai!T%ai!V%ai!W%ai!X%ai!Y%ai!Z%ai![%ai!]%ai!^%ai!_%ai!a%ai!b%ai!d%ai!n%ai!p%ai!z%ai#X%ai#d%ai#f%ai#g%ai#s%ai$[%ai$d%ai$e%ai$h%ai$k%ai$u%ai%T%ai%U%ai%W%ai%X%ai%`%ai&|%ai'W%ai'u%ai'Q%ai!o%aih%aij%aif%aig%aiY%ai_%aii%aie%ai~Oc,XOd,UOh,WO~OY,YO_,ZO!o,^O~OY,YO_,ZOi%gX~Oi,`O~Oj,aO~O!n,cO~PxO$hqO$krO~P2wO!p)`O~OU$OO!R$OO!w3nO#s3iO'W,zO~O#s,|O~O!p-OO'a'UO~O#sdO'WYO!n&zX#O&zX'P&zX~O#O)gO!n'ya'P'ya~O#s-UO~O!n&_X#O&_X'P&_X#P&_X~PvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#ka#O#ka~P!%aO!y&cX#O&cX~P@aO#O){O!y'ba~O!o-_O~PCVO#P-`O~O#O-aO!o'YX~O!o-cO~O!y-dO~OT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO#O#Wi#Y#Wi~P!%aO!y&bX#O&bX~PxO#n'XO~OS+kO].cOm+kOs$`O!U+kO!`+kO!a+kO#d>xO$hqO$krO~P2wOS+kO].cOm+kOs$`O!U+kO!`+kO!a+kO#d>xO$hqO~P2wO!n#bO!p-yO'P#bO~OS+kO]+nOm+kOs$`O!U+kO!_+qO!`+kO!a+kO!o.mO#d>xO$hqO$krO~P2wO#d.rO%W.rO%^+}O'W$gO~O%W.sO~O#Y.tO~Oc%bad%bah%baj%baf%bag%bae%ba~PhOc.wOd,ROP%aqQ%aqS%aqU%aqW%aqX%aq[%aq]%aq^%aq`%aqa%aqb%aqk%aqm%aqo%aqp%aqq%aqs%aqt%aqu%aqv%aqx%aqy%aq|%aq}%aq!O%aq!P%aq!Q%aq!R%aq!T%aq!V%aq!W%aq!X%aq!Y%aq!Z%aq![%aq!]%aq!^%aq!_%aq!a%aq!b%aq!d%aq!n%aq!p%aq!z%aq#X%aq#d%aq#f%aq#g%aq#s%aq$[%aq$d%aq$e%aq$h%aq$k%aq$u%aq%T%aq%U%aq%W%aq%X%aq%`%aq&|%aq'W%aq'u%aq'Q%aq!o%aqh%aqj%aqf%aqg%aqY%aq_%aqi%aqe%aq~Oc.|Od,UOh.{O~O!r(hO~OP7wOQ|OU_OW}O[xO$hqO$krO~P2wOS+kOY,vO]+nOm+kOs$`O!U+kO!_+qO!`+kO!a+kO!o/fO#d>xO$hqO$krO~P2wOw!tX!p!tX#T!tX#n!tX#s#vX#|!tX'W!tX~Ow(ZO!p)`O#T3tO#n3sO~O!p-OO'a&fa~O]/nOs/nO#sdO'WYO~OV/rO!n&za#O&za'P&za~O#O)gO!n'yi'P'yi~O#s/tO~OT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!n&_a#O&_a'P&_a#P&_a~P!%aOz#QO#T#PO$R#RO$S#VO$T#WO$U#XO$V#YO$X#[O$Y#]O$Z#^O$[#_O$]#`O$^#aO$_#aO%T#cOT!vy!S!vy!c!vy!n!vy!w!vy'P!vy!y!vy!o!vy~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#ji#O#ji~P!%aO_*PO!o&`X#O&`X~PvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#]i#O#]i~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#P/yO#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!y&ba#O&ba~P!%aO#|0OO!y$ji#O$ji~O#d0PO~O#V0SO#d0RO~P2wOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$ji#O$ji~P!%aO!p-yO#|0TO!y$oi#O$oi~O!o0YO'W$gO~O#O0[O!y'kX~O#d0^O~O!y0_O~O!pXO!r0bO~O#T'ZO#n'XO!p'qy!n'qy'P'qy~O!n$sy'P$sy!y$sy!o$sy~PCVO#P0eO#T'ZO#n'XO~O#sdO'WYOw&mX!p&mX#O&mX!n&mX'P&mX~O#O.^Ow'la!p'la!n'la'P'la~OS+kO]0mOm+kOs$`O!U+kO!`+kO!a+kO#d>xO$hqO~P2wO#T3tO#n3sO'W$gO~O#|)XO#T'eX#n'eX'W'eX~O!n#bO!p0sO'P#bO~O#Y0wO~Oh0|O~OTvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$jq#O$jq~P!%aO#|1kO!y$jq#O$jq~O#d1lO~O!n#bO!pXO!z$hO#P1oO'P#bO~O!o1rO'W$gO~OT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$oq#O$oq~P!%aO#T1tO#d1sO!y&lX#O&lX~O#O0[O!y'ka~O#T'ZO#n'XO!p'q!R!n'q!R'P'q!R~O!pXO!r1yO~O!n$s!R'P$s!R!y$s!R!o$s!R~PCVO#P1{O#T'ZO#n'XO~OP7wOU_O[:rOo?tOs#fOx:rOy:rO}aO!O^O!QvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#^i#O#^i~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$jy#O$jy~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$oy#O$oy~P!%aO!pXO#P2rO~O#d2sO~O#O0[O!y'ki~O!n$s!Z'P$s!Z!y$s!Z!o$s!Z~PCVOTvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$j!R#O$j!R~P!%aO!n$s!c'P$s!c!y$s!c!o$s!c~PCVO!a3`O'W$gO~OV3dO!o&Wa#O&Wa~O'W$gO!n%Ri'P%Ri~O'a'_O~O'a/jO~O'a*iO~O'a1]O~OT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$ta#|$ta$O$ta'P$ta!y$ta!o$ta#O$ta~P!%aO#T3uO~P-RO#s3lO~O#s3mO~O!U$uO$u$tO~P#-WOT8TOz8RO!S8UO!c8VO!w:_O#P3pO#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!n'^X'P'^X!y'^X!o'^X~P!%aOT6QOz6OO!S6RO!c6SO!w7oO#P5aO#T#PO$R6PO$S6TO$T6UO$U6VO$V6WO$X6YO$Y6ZO$Z6[O$[6]O$]6^O$^6_O$_6_O%T#cO#O'^X#Y'^X#|'^X$O'^X!n'^X'P'^X!r'^X!y'^X!o'^XV'^X!p'^X~P!%aO#T5OO~P#-WOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$`a#|$`a$O$`a'P$`a!y$`a!o$`a#O$`a~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$aa#|$aa$O$aa'P$aa!y$aa!o$aa#O$aa~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$ba#|$ba$O$ba'P$ba!y$ba!o$ba#O$ba~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$ca#|$ca$O$ca'P$ca!y$ca!o$ca#O$ca~P!%aOz3{O#|$ca$O$ca#O$ca~PMVOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$fa#|$fa$O$fa'P$fa!y$fa!o$fa#O$fa~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n%Va#|%Va$O%Va'P%Va!y%Va!o%Va#O%Va~P!%aOz3{O#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#|$Qi$O$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi#|$Qi$O$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOT3}Oz3{O!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!S$Qi!n$Qi#|$Qi$O$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOT3}Oz3{O!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!S$Qi!c$Qi!n$Qi#|$Qi$O$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O#T#PO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#|$Qi$O$Qi$R$Qi$S$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O#T#PO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O#T#PO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O#T#PO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$[4YO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$]$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$Z4XO$[4YO$^4[O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$]$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOz3{O$_4[O%T#cOT$Qi!S$Qi!c$Qi!n$Qi!w$Qi#T$Qi#|$Qi$O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi$^$Qi'P$Qi!y$Qi!o$Qi#O$Qi~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n#Ua#|#Ua$O#Ua'P#Ua!y#Ua!o#Ua#O#Ua~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n'^a#|'^a$O'^a'P'^a!y'^a!o'^a#O'^a~P!%aOz3{O!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT#Qi!S#Qi!c#Qi!n#Qi#|#Qi$O#Qi'P#Qi!y#Qi!o#Qi#O#Qi~P!%aOz3{O!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT#}i!S#}i!c#}i!n#}i#|#}i$O#}i'P#}i!y#}i!o#}i#O#}i~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$Pi#|$Pi$O$Pi'P$Pi!y$Pi!o$Pi#O$Pi~P!%aOz3{O#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT!vq!S!vq!c!vq!n!vq!w!vq#|!vq$O!vq'P!vq!y!vq!o!vq#O!vq~P!%aOz3{O!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT#Qq!S#Qq!c#Qq!n#Qq#|#Qq$O#Qq'P#Qq!y#Qq!o#Qq#O#Qq~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$sq#|$sq$O$sq'P$sq!y$sq!o$sq#O$sq~P!%aOz3{O#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cOT!vy!S!vy!c!vy!n!vy!w!vy#|!vy$O!vy'P!vy!y!vy!o!vy#O!vy~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$sy#|$sy$O$sy'P$sy!y$sy!o$sy#O$sy~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$s!R#|$s!R$O$s!R'P$s!R!y$s!R!o$s!R#O$s!R~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$s!Z#|$s!Z$O$s!Z'P$s!Z!y$s!Z!o$s!Z#O$s!Z~P!%aOT3}Oz3{O!S4OO!c4PO!w5rO#T#PO$R3|O$S4QO$T4RO$U4SO$V4TO$X4VO$Y4WO$Z4XO$[4YO$]4ZO$^4[O$_4[O%T#cO!n$s!c#|$s!c$O$s!c'P$s!c!y$s!c!o$s!c#O$s!c~P!%aOP7wOU_O[5kOo9xOs#fOx5gOy5gO}aO!O^O!Q5{O!T5qO!V5iO!W5iO!Z5}O!d5eO!z]O#T5bO#X`O#dhO#fbO#gcO#sdO$[5oO$d5mO$e5oO$hqO%T5|O%U!OO'WYO~P$vO#O9_O#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y'xX~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#O9aO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y'ZX~P!%aOz8RO#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#Y$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi#O$Qi#P$Qi#Y$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOT8TOz8RO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!S$Qi#O$Qi#P$Qi#Y$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOT8TOz8RO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!S$Qi!c$Qi#O$Qi#P$Qi#Y$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO#T#PO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#Y$Qi$R$Qi$S$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO#T#PO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#Y$Qi$R$Qi$S$Qi$T$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO#T#PO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO#T#PO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$[8`O$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$]$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$Z8_O$[8`O$^8bO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$]$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aOz8RO$_8bO%T#cOT$Qi!S$Qi!c$Qi!w$Qi#O$Qi#P$Qi#T$Qi#Y$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi$^$Qi!n$Qi'P$Qi!r$Qi!y$Qi!o$QiV$Qi!p$Qi~P!%aO#T9fO~P!+iO!n#Ua'P#Ua!y#Ua!o#Ua~PCVO!n'^a'P'^a!y'^a!o'^a~PCVO#T=PO#V=OO!y&aX#O&aX~PvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#Wi#O#Wi~P!%aOz8RO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT#Qq!S#Qq!c#Qq#O#Qq#P#Qq#Y#Qq!n#Qq'P#Qq!r#Qq!y#Qq!o#QqV#Qq!p#Qq~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO#O$sq#P$sq#Y$sq!n$sq'P$sq!r$sq!y$sq!o$sqV$sq!p$sq~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y&wa#O&wa~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y&_a#O&_a~P!%aOz8RO#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cOT!vy!S!vy!c!vy!w!vy#O!vy#P!vy#Y!vy!n!vy'P!vy!r!vy!y!vy!o!vyV!vy!p!vy~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#Wq#O#Wq~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO#O$sy#P$sy#Y$sy!n$sy'P$sy!r$sy!y$sy!o$syV$sy!p$sy~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO#O$s!R#P$s!R#Y$s!R!n$s!R'P$s!R!r$s!R!y$s!R!o$s!RV$s!R!p$s!R~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO#O$s!Z#P$s!Z#Y$s!Z!n$s!Z'P$s!Z!r$s!Z!y$s!Z!o$s!ZV$s!Z!p$s!Z~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO#O$s!c#P$s!c#Y$s!c!n$s!c'P$s!c!r$s!c!y$s!c!o$s!cV$s!c!p$s!c~P!%aO#T9vO~PvO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$`a#O$`a~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$aa#O$aa~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$ba#O$ba~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$ca#O$ca~P!%aOz:`O%T#cOT$ca!S$ca!c$ca!w$ca!y$ca#O$ca#T$ca$R$ca$S$ca$T$ca$U$ca$V$ca$X$ca$Y$ca$Z$ca$[$ca$]$ca$^$ca$_$ca~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$fa#O$fa~P!%aO!r?SO#P9^O~OT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$ta#O$ta~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y%Va#O%Va~P!%aOT8TOz8RO!S8UO!c8VO!r9cO!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO~P!%aOz:`O#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi~P!%aOz:`O!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!y$Qi#O$Qi~P!%aOT:bOz:`O!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!S$Qi!y$Qi#O$Qi~P!%aOT:bOz:`O!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!S$Qi!c$Qi!y$Qi#O$Qi~P!%aOz:`O#T#PO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi$R$Qi$S$Qi~P!%aOz:`O#T#PO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi$R$Qi$S$Qi$T$Qi~P!%aOz:`O#T#PO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi$R$Qi$S$Qi$T$Qi$U$Qi~P!%aOz:`O#T#PO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi~P!%aOz:`O$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi~P!%aOz:`O$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi~P!%aOz:`O$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi~P!%aOz:`O$[:mO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$]$Qi~P!%aOz:`O$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi~P!%aOz:`O$Z:lO$[:mO$^:oO$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$]$Qi~P!%aOz:`O$_:oO%T#cOT$Qi!S$Qi!c$Qi!w$Qi!y$Qi#O$Qi#T$Qi$R$Qi$S$Qi$T$Qi$U$Qi$V$Qi$X$Qi$Y$Qi$Z$Qi$[$Qi$]$Qi$^$Qi~P!%aOz:`O!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT#Qi!S#Qi!c#Qi!y#Qi#O#Qi~P!%aOz:`O!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT#}i!S#}i!c#}i!y#}i#O#}i~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$Pi#O$Pi~P!%aO!r?TO#P9hO~Oz:`O#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT!vq!S!vq!c!vq!w!vq!y!vq#O!vq~P!%aOz:`O!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT#Qq!S#Qq!c#Qq!y#Qq#O#Qq~P!%aO!r?YO#P9oO~OT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$sq#O$sq~P!%aO#P9oO#T'ZO#n'XO~Oz:`O#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cOT!vy!S!vy!c!vy!w!vy!y!vy#O!vy~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$sy#O$sy~P!%aO#P9pO#T'ZO#n'XO~OT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$s!R#O$s!R~P!%aO#P9sO#T'ZO#n'XO~OT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$s!Z#O$s!Z~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y$s!c#O$s!c~P!%aO#T;}O~P!+iOT8TOz8RO!S8UO!c8VO!w:_O#P;|O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!y'^X#O'^X~P!%aO!U$uO$u$tO~P$8rOP7wOU_O[:rOo?tOs#fOx:rOy:rO}aO!O^O!QVO~P$8rOP7wOU_O[:rOo?tOs#fOx:rOy:rO}aO!O^O!QWO#X`O#dhO#fbO#gcO#sdO$[vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y#Ua#O#Ua~P!%aOT:bOz:`O!S:cO!c:dO!w>vO#T#PO$R:aO$S:eO$T:fO$U:gO$V:hO$X:jO$Y:kO$Z:lO$[:mO$]:nO$^:oO$_:oO%T#cO!y'^a#O'^a~P!%aOz<]O!w?^O#T#PO$R<_O$SpO~P$8rOP7wOU_O[:rOo?tOs#fOx:rOy:rO}aO!O^O!QqO#X`O#dhO#fbO#gcO#sdO$[oO#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO~P!%aOT8TOz8RO!S8UO!c8VO!w:_O#P>nO#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO!n'^X!r'^X!o'^X#O'^X!p'^X'P'^X~P!%aOT'XXz'XX!S'XX!c'XX!w'XX!z'XX#O'XX#T'XX#X'XX#a'XX#b'XX#y'XX$R'XX$S'XX$T'XX$U'XX$V'XX$X'XX$Y'XX$Z'XX$['XX$]'XX$^'XX$_'XX%T'XX~O#|:uO$O:vO!y'XX~P.@qO!z$hO#T>zO~O!r;SO~PxO!n&qX!p&qX#O&qX'P&qX~O#O?QO!n'pa!p'pa'P'pa~O!r?rO#P;uO~OT[O~O!r?zO#P:rO~OT8TOz8RO!S8UO!c8VO!r>]O!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO~P!%aOT8TOz8RO!S8UO!c8VO!r>^O!w:_O#T#PO$R8SO$S8WO$T8XO$U8YO$V8ZO$X8]O$Y8^O$Z8_O$[8`O$]8aO$^8bO$_8bO%T#cO~P!%aO!r?{O#P>cO~O!r?|O#P>hO~O#P>hO#T'ZO#n'XO~O#P:rO#T'ZO#n'XO~O#P>iO#T'ZO#n'XO~O#P>lO#T'ZO#n'XO~O!z$hO#T?nO~Oo>wOs$lO~O!z$hO#T?oO~O#O?QO!n'pX!p'pX'P'pX~O!z$hO#T?vO~O!z$hO#T?wO~O!z$hO#T?xO~Oo?lOs$lO~Oo?uOs$lO~Oo?tOs$lO~O%X$]%W$k!e$^#d%`#g'u'W#f~",goto:"%1O'{PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'|P(TPP(Z(^PPP(vP(^*o(^6cP6cPP>cFxF{PP6cGR! RP! UP! UPPGR! e! h! lGRGRPP! oP! rPPGR!)u!0q!0qGR!0uP!0u!0u!0u!2PP!;g!S#>Y#>h#>n#>x#?O#?U#?[#?b#?l#?v#?|#@S#@^PPPPPPPP#@d#@hP#A^$(h$(k$(u$1R$1_$1t$1zP$1}$2Q$2W$5[$?Y$Gr$Gu$G{$HO$Kb$Ke$Kn$Kv$LQ$Li$MP$Mz%'}PP%0O%0S%0`%0u%0{Q!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]|!hPVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]Q%_!ZQ%h!aQ%m!eQ'k$cQ'x$iQ)d%lQ+W'{Q,k)QU.O+T+V+]Q.j+pQ/`,jS0a.T.UQ0q.dQ1n0VS1w0`0dQ2Q0nQ2q1pQ2t1xR3[2u|ZPVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]2lf]`cgjklmnoprxyz!W!X!Y!]!e!f!g!y!z#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r#}$Q$R$T$h$z%S%U%d%r%}&S&W&[&q&t&u&x'P'X'Z']'a'e'p't'y(R(V(W(Y(Z([(t)T)X)`)c)g)n)u)y*V*Z*[*r*w*|+Q+X+[+^+_+j+m+q+t,Y,c,e,g,i,u,x-O-`-a-t-v-z.S.V.[.].^.b/X/n/y0O0T0b0e1R1S1b1k1o1y1{2k2r3n3p3s3t3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7i7j7k7o7w7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v9|9}:O:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?S?T?Y?^?_?p?q?r?y?z?{?|S$ku$`Q%W!V^%e!_$a'j)Y.f0o2OQ%i!bQ%j!cQ%k!dQ%v!kS&V!|){Q&]#OQ'l$dQ'm$eS'|$j'hQ)S%`Q*v'nQ+z(bQ,O(dQ-S)iU.g+n.c0mQ.q+{Q.r+|Q/d,vS0V-y0XQ1X/cQ1e/rS2T0s2WQ2h1`Q3U2iQ3^2zQ3_2{Q3c3VQ3f3`R3g3d0{!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_0z!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_Q#h^Q%O!PQ%P!QQ%Q!RQ,b(sQ.u,RR.y,UR&r#hQ*Q&qR/w-a0{hPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_R#j_k#n`j#i#q&t&x5d5e9W:Q:R:S:TR#saT&}#r'PR-h*[R&R!{0zhPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_R#tb-x!}[#e#k#u$U$V$W$X$Y$Z$v$w%X%Z%]%a%s%|&O&U&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&n&v&w&|'`'b'c(e(x)v)x)z*O*U*h*j+a+d,n,q-W-Y-[-e-f-g-w.Y/O/[/v0Q0Z0f1g1j1m1z2S2`2o2p2v3Z4]4^4d4e4f4g4h4i4j4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5P5Q5T5U5W5X5Y5]5^5`5t6e6f6g6h6i6j6k6m6n6o6p6q6r6s6t6u6v6w6x6y6z6{6|6}7O7Q7R7U7V7X7Y7Z7^7_7a7m7q8i8j8k8l8m8n8p8q8r8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9U9V9Y9[9]9d9e9g9i9j9k9l9m9n9q9r9t9w:p:x:y:z:{:|:};Q;R;T;U;V;W;X;Y;Z;[;];^;_;`;a;b;c;d;f;g;l;m;p;r;s;w;y;{O>P>Q>R>S>T>U>X>Y>Z>_>`>a>b>d>e>f>g>j>k>m>r>s>{>|>}?V?b?cQ'd$[Y(X$s8o;P=^=_S(]3o7lQ(`$tR+y(aT&X!|){#a$Pg#}$h'X'Z'p't'y(W([)`)c*r*w+Q+X+[+_+j+m+n+t,i,u,x-v.S.V.].b.c0b0m1y3n3s3t7i7j7k7w9|9}:O?S?T?Y?p?q?r?y?z?{?|3yfPVX]`cgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r#}$Q$R$T$h$z%O%Q%S%T%U%V%d%r%}&S&W&[&q&t&u&x'P'X'Z']'a'e'p't'y(R(V(W(Y(Z([(h(t)T)X)`)c)g)n)u)y){*V*Z*[*r*w*|+Q+X+[+^+_+j+m+n+q+t,Q,T,Y,c,e,g,i,u,x-O-`-a-t-v-z.S.V.[.].^.b.c.u.w/P/X/n/y0O0T0b0e0m0s0}1O1R1S1W1b1k1o1y1{2W2]2k2r3n3p3s3t3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7i7j7k7o7w7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v9|9}:O:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?S?T?Y?^?_?p?q?r?y?z?{?|[#wd#x3h3i3j3kh'V#z'W)f,}-U/k/u1f3l3m3q3rQ)e%nR-T)kY#yd%n)k3h3iV'T#x3j3k1dePVX]`cjklmnoprxyz!S!W!X!Y!]!e!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a'e(R(V(Y(Z(h(t)T)X)g)n)u)y){*V*Z*[*|+^+q,Q,T,Y,c,e,g-O-`-a-t-z.[.^.u.w/P/X/n/y0O0T0e0s0}1O1R1S1W1b1k1o1{2W2]2k2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_Q%o!fQ)l%r#O3vg#}$h'X'Z'p't'y(W([)`*w+Q+X+[+_+j+m+t,i,u,x-v.S.V.].b0b1y7i7j7k7w9|9}:O?S?T?Y?p?q?r?y?z?{?|a3w)c*r+n.c0m3n3s3tY'T#z)f-U3l3mZ*c'W,}/u3q3r0vhPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0}1O1R1S1W1k1o1{2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_T2U0s2WR&^#OR&]#O!r#Z[#e#u$U$V$W$X$Z$s$w%X%Z%]&`&a&b&c&d&e&f&g'`'b'c(e)v)x*O*j+d-Y.Y0f1z2`2p2v3Z9U9V!Y4U3o4d4e4f4g4i4j4l4m4n4o4p4q4r4s4{4|4}5P5Q5T5U5W5X5Y5]5^5`!^6X4^6e6f6g6h6j6k6m6n6o6p6q6r6s6t6|6}7O7Q7R7U7V7X7Y7Z7^7_7a7l7m#b8[#k%a%s%|&O&v&w&|(x*U+a,n,q-W-e-g/[4]5t7q8i8j8k8l8n8o8p8t8u8v8w8x8y8z8{9Y9[9]9d9g9i9l9n9q9r9t9w:p;Rr>s>{?b?c!|:i&U)z-[-f-w0Q0Z1g1j1m2o8q8r9e9j9k9m:x:y:z:{:};P;Q;T;U;V;W;X;Y;Z;[;d;f;g;l;m;p;r;s;w;y;{>R>S!`T>X>Z>_>a>d>e>g>j>k>m>|>}?VoU>Y>`>b>fS$iu#fQ$qwU'{$j$l&pQ'}$kS(P$m$rQ+Z'|Q+](OQ+`(QQ1p0VQ5s7dS5v7f7gQ5w7hQ7p9xS7r9y9zQ7s9{Q;O>uS;h>w>zQ;o?PQ>y?jS?O?l?nQ?U?oQ?`?sS?a?t?wS?d?u?vR?e?xT'u$h+Q!csPVXt!S!j!r!s!w$h%O%Q%T%V'p([(h)`+Q+j+t,Q,T,u,x.u.w/P0}1O1W2]Q$]rR*l'eQ-{+PQ.i+oQ0U-xQ0j.`Q1|0kR2w1}T0W-y0XQ+V'zQ.U+YR0d.XQ(_$tQ)^%iQ)s%vQ*u'mS+x(`(aQ-q*vR.p+yQ(^$tQ)b%kQ)r%vQ*q'lS*t'm)sU+w(_(`(aS-p*u*vS.o+x+yQ/i,{Q/{-nQ/}-qR0v.pQ(]$tQ)]%iQ)_%jQ)q%vU*s'm)r)sW+v(^(_(`(aQ,t)^U-o*t*u*vU.n+w+x+yS/|-p-qS0u.o.pQ1i/}R2Y0vX+r([)`+t,xb%f!_$a'j+n.c.f0m0o2OR,r)YQ$ovS+b(S?Qg?m([)`+i+j+m+t,u,x.a.b0lR0t.kT2V0s2W0}|PVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g,m-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_T$y{$|Q,O(dR.r+|T${{$|Q(j%OQ(r%QQ(w%TQ(z%VQ.},XQ0z.yQ0{.|R2c1WR(m%PX,[(k(l,],_R(n%PX(p%Q%T%V1WR%T!T_%b!]%S(t,c,e/X1RR%V!UR/],gR,j)PQ)a%kS*p'l)bS-m*q,{S/z-n/iR1h/{T,w)`,xQ-P)fU/l,|,}-UU1^/k/t/uR2n1fR/o-OR2l1bSSO!mR!oSQ!rVR%y!rQ!jPS!sV!rQ!wX[%u!j!s!w,Q1O2]Q,Q(hQ1O/PR2]0}Q)o%sS-X)o9bR9b8rQ-b*QR/x-bQ&y#oS*X&y9XR9X:tS*]&|&}R-i*]Q)|&YR-^)|!j'Y#|'o*f*z+O+T+e+i.T.W.Z.a/_0`0c0g0l1x2u5x5y5z7e7t7u7v;q;t;x?W?X?Z?f?g?h?iS*e'Y/g]/g,{-n.f0o1[2O!h'[#|'o*z+O+T+e+i.T.W.Z.a/_0`0c0g0l1x2u5x5y5z7e7t7u7v;q;t;x?W?X?Z?f?g?h?iS*g'[/hZ/h,{-n.f0o2OU#xd%n)kU'S#x3j3kQ3j3hR3k3iQ'W#z^*b'W,}/k/u1f3q3rQ,})fQ/u-UQ3q3lR3r3m|tPVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]W$_t'p+j,uS'p$h+QS+j([+tT,u)`,xQ'f$]R*m'fQ0X-yR1q0XQ+R'vR-}+RQ0].PS1u0]1vR1v0^Q._+fR0i._Q+t([R.l+tW+m([)`+t,xS.b+j,uT.e+m.bQ)Z%fR,s)ZQ(T$oS+c(T?RR?R?mQ2W0sR2}2WQ$|{R(f$|Q,S(iR.v,SQ,V(jR.z,VQ,](kQ,_(lT/Q,],_Q)U%aS,o)U9`R9`8qQ)R%_R,l)RQ,x)`R/e,xQ)h%pS-R)h/sR/s-SQ1c/oR2m1cT!uV!rj!iPVX!j!r!s!w(h,Q/P0}1O2]Q%R!SQ(i%OW(p%Q%T%V1WQ.x,TQ0x.uR0y.w|[PVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]Q#e]U#k`#q&xQ#ucQ$UkQ$VlQ$WmQ$XnQ$YoQ$ZpQ$sx^$vy3y5|8P:]n>oQ+a(RQ+d(VQ,n)TQ,q)XQ-W)nQ-Y)uQ-[)yQ-e*VQ-f*ZQ-g*[^-k3u5b7c9v;}>p>qQ-w*|Q.Y+^Q/O,YQ/[,gQ/v-`Q0Q-tQ0Z-zQ0f.[Q1g/yQ1j0OQ1m0TQ1z0eU2S0s2W:rQ2`1SQ2o1kQ2p1oQ2v1{Q3Z2rQ3o3xQ4]jQ4^5eQ4d5fQ4e5hQ4f5jQ4g5lQ4h5nQ4i5pQ4j3zQ4l3|Q4m3}Q4n4OQ4o4PQ4p4QQ4q4RQ4r4SQ4s4TQ4t4UQ4u4VQ4v4WQ4w4XQ4x4YQ4y4ZQ4z4[Q4{4_Q4|4`Q4}4aQ5P4bQ5Q4cQ5T4kQ5U5OQ5W5RQ5X5SQ5Y5VQ5]5ZQ5^5[Q5`5_Q5t5rQ6e5gQ6f5iQ6g5kQ6h5mQ6i5oQ6j5qQ6k5}Q6m6PQ6n6QQ6o6RQ6p6SQ6q6TQ6r6UQ6s6VQ6t6WQ6u6XQ6v6YQ6w6ZQ6x6[Q6y6]Q6z6^Q6{6_Q6|6`Q6}6aQ7O6bQ7Q6cQ7R6dQ7U6lQ7V7PQ7X7SQ7Y7TQ7Z7WQ7^7[Q7_7]Q7a7`Q7l5{Q7m5dQ7q7oQ8i7xQ8j7yQ8k7zQ8l7{Q8m7|Q8n7}Q8o8OQ8p8QU8q,c/X1RQ8r%dQ8t8SQ8u8TQ8v8UQ8w8VQ8x8WQ8y8XQ8z8YQ8{8ZQ8|8[Q8}8]Q9O8^Q9P8_Q9Q8`Q9R8aQ9S8bQ9U8dQ9V8eQ9Y8fQ9[8gQ9]8hQ9d8sQ9e9TQ9g9ZQ9i9^Q9j9_Q9k9aQ9l9cQ9m9fQ9n9hQ9q9oQ9r9pQ9t9sQ9w:QU:p#i&t9WQ:x:UQ:y:VQ:z:WQ:{:XQ:|:YQ:}:ZQ;P:[Q;Q:^Q;R:_Q;T:aQ;U:bQ;V:cQ;W:dQ;X:eQ;Y:fQ;Z:gQ;[:hQ;]:iQ;^:jQ;_:kQ;`:lQ;a:mQ;b:nQ;c:oQ;d:uQ;f:vQ;g:wQ;l;SQ;m;eQ;p;jQ;r;kQ;s;nQ;w;uQ;y;vQ;{;zQOP<{Q>Q<|Q>R=OQ>S=PQ>T=QQ>U=RQ>X=SQ>Y=TQ>Z=UQ>_=aQ>`=bQ>a>VQ>b>WQ>d>[Q>e>]Q>f>^Q>g>cQ>j>hQ>k>iQ>m>lQ>r:SQ>s:RQ>{>vQ>|:qQ>}:sQ?V;iQ?b?^R?c?_R*R&qQ%t!gQ)W%dT*P&q-a$WiPVX]cklmnopxyz!S!W!X!Y!j!r!s!w#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a$Q$R$T$z%O%Q%T%V%}&S&['a(V(h)u+^,Q,T.[.u.w/P0e0}1O1S1W1o1{2]2r3p3u8d8e!t5c']3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5f5h5j5l5n5p7b7c!x7n5a5b5d5e5g5i5k5m5o5q5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`$`:P`j!]!g!y!z#i#l#m#q#r%S%U&q&t&u&x'P(R(t)T)X)n*V*[,e,g-a5r7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8f8g8h8s9W9Z9^9c9h9o9p9s9u9v:Q:R:S:T:_>v?^?_#l>t!|%d&W)y){*Z*|,c-t-z/X/y0O0T1R1k9T9_9a9f:U:V:W:X:Y:Z:[:]:^:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:u:v:w;S;e;j;k;n;u;v;z;|;}=O=P!x?[,Y-`:q:s;iV>[>]>c>h>i>l>n>p!]?]0s2W:rW>^>o>qQ#p`Q&s#iQ&{#qR*T&tS#o`#q^$Sj5d5e:Q:R:S:TS*W&x9WT:t#i&tQ'O#rR*_'PR&T!{R&Z!|Q&Y!|R-]){Q#|gS'^#}3nS'o$h+QS*d'X3sU*f'Z*w-vQ*z'pQ+O'tQ+T'yQ+e(WW+i([)`+t,xQ,{)cQ-n*rQ.T+XQ.W+[Q.Z+_U.a+j+m,uQ.f+nQ/_,iQ0`.SQ0c.VQ0g.]Q0l.bQ0o.cQ1[3tQ1x0bQ2O0mQ2u1yQ5x7iQ5y7jQ5z7kQ7e7wQ7t9|Q7u9}Q7v:OQ;q?SQ;t?TQ;x?YQ?W?pQ?X?qQ?Z?rQ?f?yQ?g?zQ?h?{R?i?|0z!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_#`$Og#}$h'X'Z'p't'y(W([)`)c*r*w+Q+X+[+_+j+m+n+t,i,u,x-v.S.V.].b.c0b0m1y3n3s3t7i7j7k7w9|9}:O?S?T?Y?p?q?r?y?z?{?|S$[r'eQ%l!eS%p!f%rU+f(Y(Z+qQ-Q)gQ/m-OQ0h.^Q1a/nQ2j1bR3W2k|vPVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]#Y#g]cklmnopxyz!W!X!Y#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a$Q$R$T$z%}&S&['a(V)u+^.[0e1S1o1{2r3p3u8d8e`+k([)`+j+m+t,u,x.b!t8c']3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5f5h5j5l5n5p7b7c!x<}5a5b5d5e5g5i5k5m5o5q5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`$`?k`j!]!g!y!z#i#l#m#q#r%S%U&q&t&u&x'P(R(t)T)X)n*V*[,e,g-a5r7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8f8g8h8s9W9Z9^9c9h9o9p9s9u9v:Q:R:S:T:_>v?^?_#l?}!|%d&W)y){*Z*|,c-t-z/X/y0O0T1R1k9T9_9a9f:U:V:W:X:Y:Z:[:]:^:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:u:v:w;S;e;j;k;n;u;v;z;|;}=O=P!x@O,Y-`:q:s;iV>[>]>c>h>i>l>n>p!]@P0s2W:rW>^>o>qR'w$hQ'v$hR-|+QR$^rQ#d[Q%Y!WQ%[!XQ%^!YQ(U$pQ({%WQ(|%XQ(}%ZQ)O%]Q)V%cQ)[%gQ)d%lQ)j%qQ)p%tQ*n'iQ-V)mQ-l*oQ.i+oQ.j+pQ.x,WQ/S,`Q/T,aQ/U,bQ/Z,fQ/^,hQ/b,pQ/q-PQ0j.`Q0q.dQ0r.hQ0t.kQ0y.{Q1Y/dQ1_/lQ1n0VQ1|0kQ2Q0nQ2R0pQ2[0|Q2d1XQ2g1^Q2w1}Q2y2PQ2|2VQ3P2ZQ3T2fQ3X2nQ3Y2pQ3]2xQ3a3RQ3b3SR3e3ZR.R+UQ+g(YQ+h(ZR.k+qS+s([+tT,w)`,xa+l([)`+j+m+t,u,x.bQ%g!_Q'i$aQ*o'jQ.h+nS0p.c.fS2P0m0oR2x2OQ$pvW+o([)`+t,xW.`+i+j+m,uS0k.a.bR1}0l|!aPVX!S!j!r!s!w%O%Q%T%V(h,Q,T.u.w/P0}1O1W2]Q$ctW+p([)`+t,xU.d+j+m,uR0n.b0z!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_R/a,m0}}PVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(R(V(h(t)T)X)n)u)y){*V*Z*[*|+^,Q,T,Y,c,e,g,m-`-a-t-z.[.u.w/P/X/y0O0T0e0s0}1O1R1S1W1k1o1{2W2]2r3p3u3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4_4`4a4b4c4k5O5R5S5V5Z5[5_5a5b5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5u5{5|5}6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6l7P7S7T7W7[7]7`7b7c7o7x7y7z7{7|7}8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8d8e8f8g8h8s9T9W9Z9^9_9a9c9f9h9o9p9s9u9v:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:q:r:s:u:v:w;S;e;i;j;k;n;u;v;z;|;}V>W>[>]>^>c>h>i>l>n>o>p>q>v?^?_T$x{$|Q(q%QQ(v%TQ(y%VR2b1WQ%c!]Q(u%SQ,d(tQ/W,cQ/Y,eQ1Q/XR2_1RQ%q!fR)m%rR/p-O",nodeNames:"⚠ ( HeredocString EscapeSequence abstract LogicOp array as Boolean break case catch clone const continue default declare do echo else elseif enddeclare endfor endforeach endif endswitch endwhile enum extends final finally fn for foreach from function global goto if implements include include_once LogicOp insteadof interface list match namespace new null LogicOp print readonly require require_once return switch throw trait try unset use var Visibility while LogicOp yield LineComment BlockComment TextInterpolation PhpClose Text PhpOpen Template TextInterpolation EmptyStatement ; } { Block : LabelStatement Name ExpressionStatement ConditionalExpression LogicOp MatchExpression ) ( ParenthesizedExpression MatchBlock MatchArm , => AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> Name VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp IntersectionType OptionalType NamedType QualifiedName \\ NamespaceName Name NamespaceName Name ScopedExpression :: ClassMemberName DynamicMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter PropertyHooks PropertyHook UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:318,nodeProps:[["group",-36,2,8,49,82,84,86,89,94,95,103,107,108,112,113,116,120,126,132,137,139,140,154,155,156,157,160,161,173,174,188,190,191,192,193,194,200,"Expression",-28,75,79,81,83,201,203,208,210,211,214,217,218,219,220,221,223,224,225,226,227,228,229,230,231,234,235,239,240,"Statement",-4,121,123,124,125,"Type"],["isolate",-4,67,68,71,200,""],["openedBy",70,"phpOpen",77,"{",87,"(",102,"#["],["closedBy",72,"phpClose",78,"}",88,")",165,"]"]],propSources:[PTr],skippedNodes:[0],repeatNodeCount:32,tokenData:"!GQ_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9Y!e!}!7z!}#O!;b#O#P!V<%lO8VR9WV'TP%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%`QQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV'TP%`QOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW'TPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!zQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!yU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY'TP$^QOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$_Q'TPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$[Q'TPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V%TQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV#OQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$[Q%^W'TPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#aU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo['TP$]QOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX'TPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#VU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_'TP%XQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]'TPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X'TPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ'TP%XQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX'TPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_K[['TP$^QOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$z_LVX'TPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQ_LwT'TPOzMWz{Mj{;'SMW;'S;=`NX<%lOMW^MZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMW^MmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMW^NXO!f^^N[P;=`<%lMW_NdZ'TPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQ_! ^V!f^'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%f_!!lP;=`<%lLQZ!!vm'TP%WYOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa'TP%WYOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX'TPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY'TPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k['TP%WYOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX'TPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ'TP%WYOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]'TPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_'TP%WYOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!rQ'TPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#yQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!nU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$YQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$ZQ'TPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$YQ'TPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!jP!_!`!0k!r!s!0p#d#e!0pP!0pO!jPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0k_!1ZX#|Y'TPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#PU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$YQ'TPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$YQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!3{[!wQ'TPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX'TPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#bU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!6WV!h^'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW$RQ'TPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$dQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ta'aS'TP'WYOY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9ce'aS'TP'WYOY$zYZ%fZr$zrs!:tsw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:{V'TP'uQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;iV#XU'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!OZ'TPOY!=yYZ!>qZ!^!=y!^!_!@y!_#O!=y#O#P!Au#P#S!=y#S#T!CP#T;'S!=y;'S;=`!Cm<%lO!=yR!>vV'TPO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s<%lO!?]Q!?`VO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s<%lO!?]Q!?xRO;'S!?];'S;=`!@R;=`O!?]Q!@UWO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s;=`<%l!?]<%lO!?]Q!@sO%UQQ!@vP;=`<%l!?]R!@|]OY!=yYZ!>qZ!a!=y!a!b!?]!b#O!=y#O#P!Au#P#S!=y#S#T!CP#T;'S!=y;'S;=`!Cm<%l~!=y~O!=y~~%fR!AzW'TPOY!=yYZ!>qZ!^!=y!^!_!@y!_;'S!=y;'S;=`!Bd;=`<%l!?]<%lO!=yR!BgWO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s;=`<%l!=y<%lO!?]R!CWV%UQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!CpP;=`<%l!=y_!CzV!p^'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!DjY$UQ#n['TPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EY#q;'S$z;'S;=`&W<%lO$zR!EaV$SQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!E}V!oQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FkV$eQ'TPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[DTr,MTr,RTr,0,1,2,3,BTr],topRules:{Template:[0,73],Program:[1,241]},dynamicPrecedences:{298:1},specialized:[{term:284,get:(e,t)=>Vvt(e)<<1,external:Vvt},{term:284,get:e=>FTr[e]||-1}],tokenPrec:29889}),TLn=Vd.define({name:"php",parser:NTr.configure({props:[Vu.add({IfStatement:Pu({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:Pu({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},ColonBlock:e=>e.baseIndent+e.unit,"Block EnumBody DeclarationList":Xv({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"String BlockComment":()=>null,Statement:Pu({except:/^({|end(for|foreach|switch|while)\b)/})}),kh.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":bA,ColonBlock(e){return{from:e.from+1,to:e.to}},BlockComment(e){return{from:e.from+2,to:e.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function UTr(e={}){let t=[],n;if(e.baseLanguage!==null)if(e.baseLanguage)n=e.baseLanguage;else{let r=dI({matchClosingTags:!1});t.push(r.support),n=r.language}return new wd(TLn.configure({wrap:n&&Ap(r=>r.type.isTop?{parser:n.parser,overlay:o=>o.name=="Text"}:null),top:e.plain?"Program":"Template"}),t)}const jTr=Object.freeze(Object.defineProperty({__proto__:null,php:UTr,phpLanguage:TLn},Symbol.toStringTag,{value:"Module"})),WTr=1,QLn=194,DLn=195,VTr=196,Hvt=197,zTr=198,HTr=199,$Tr=200,XTr=2,BLn=3,$vt=201,GTr=24,YTr=25,ZTr=49,qTr=50,KTr=55,JTr=56,eQr=57,tQr=59,nQr=60,iQr=61,rQr=62,oQr=63,sQr=65,aQr=238,lQr=71,cQr=241,dQr=242,uQr=243,hQr=244,fQr=245,gQr=246,mQr=247,kQr=248,RLn=72,vQr=249,AQr=250,pQr=251,bQr=252,wQr=253,OQr=254,yQr=255,CQr=256,_Qr=73,SQr=77,LQr=263,xQr=112,EQr=130,TQr=151,QQr=152,DQr=155,XB=10,TK=13,wKe=32,Tpe=9,OKe=35,BQr=40,RQr=46,JPe=123,Xvt=125,ILn=39,MLn=34,Gvt=92,IQr=111,MQr=120,PQr=78,FQr=117,NQr=85,UQr=new Set([YTr,ZTr,qTr,LQr,sQr,EQr,JTr,eQr,aQr,rQr,oQr,RLn,_Qr,SQr,nQr,iQr,TQr,QQr,DQr,xQr]);function HSe(e){return e==XB||e==TK}function $Se(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}const jQr=new go((e,t)=>{let n;if(e.next<0)e.acceptToken(HTr);else if(t.context.flags&Eue)HSe(e.next)&&e.acceptToken(zTr,1);else if(((n=e.peek(-1))<0||HSe(n))&&t.canShift(Hvt)){let r=0;for(;e.next==wKe||e.next==Tpe;)e.advance(),r++;(e.next==XB||e.next==TK||e.next==OKe)&&e.acceptToken(Hvt,-r)}else HSe(e.next)&&e.acceptToken(VTr,1)},{contextual:!0}),WQr=new go((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==XB||r==TK){let o=0,s=0;for(;;){if(e.next==wKe)o++;else if(e.next==Tpe)o+=8-o%8;else break;e.advance(),s++}o!=n.indent&&e.next!=XB&&e.next!=TK&&e.next!=OKe&&(o[e,t|PLn])),HQr=new cI({start:VQr,reduce(e,t,n,r){return e.flags&Eue&&UQr.has(t)||(t==lQr||t==RLn)&&e.flags&PLn?e.parent:e},shift(e,t,n,r){return t==QLn?new Tue(e,zQr(r.read(r.pos,n.pos)),0):t==DLn?e.parent:t==GTr||t==KTr||t==tQr||t==BLn?new Tue(e,0,Eue):Yvt.has(t)?new Tue(e,0,Yvt.get(t)|e.flags&Eue):e},hash(e){return e.hash}}),$Qr=new go(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==wKe||n==Tpe)){n!=BQr&&n!=RQr&&n!=XB&&n!=TK&&n!=OKe&&e.acceptToken(WTr);return}}}),XQr=new go((e,t)=>{let{flags:n}=t.context,r=n&f_?MLn:ILn,o=(n&g_)>0,s=!(n&m_),a=(n&k_)>0,l=e.pos;for(;!(e.next<0);)if(a&&e.next==JPe)if(e.peek(1)==JPe)e.advance(2);else{if(e.pos==l){e.acceptToken(BLn,1);return}break}else if(s&&e.next==Gvt){if(e.pos==l){e.advance();let d=e.next;d>=0&&(e.advance(),GQr(e,d)),e.acceptToken(XTr);return}break}else if(e.next==Gvt&&!s&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!o||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==l){e.acceptToken($vt,o?3:1);return}break}else if(e.next==XB){if(o)e.advance();else if(e.pos==l){e.acceptToken($vt);return}break}else e.advance();e.pos>l&&e.acceptToken($Tr)});function GQr(e,t){if(t==IQr)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==MQr)for(let n=0;n<2&&$Se(e.next);n++)e.advance();else if(t==FQr)for(let n=0;n<4&&$Se(e.next);n++)e.advance();else if(t==NQr)for(let n=0;n<8&&$Se(e.next);n++)e.advance();else if(t==PQr&&e.next==JPe){for(e.advance();e.next>=0&&e.next!=Xvt&&e.next!=ILn&&e.next!=MLn&&e.next!=XB;)e.advance();e.next==Xvt&&e.advance()}}const YQr=Xd({'async "*" "**" FormatConversion FormatSpec':ve.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":ve.controlKeyword,"in not and or is del":ve.operatorKeyword,"from def class global nonlocal lambda":ve.definitionKeyword,import:ve.moduleKeyword,"with as print":ve.keyword,Boolean:ve.bool,None:ve.null,VariableName:ve.variableName,"CallExpression/VariableName":ve.function(ve.variableName),"FunctionDefinition/VariableName":ve.function(ve.definition(ve.variableName)),"ClassDefinition/VariableName":ve.definition(ve.className),PropertyName:ve.propertyName,"CallExpression/MemberExpression/PropertyName":ve.function(ve.propertyName),Comment:ve.lineComment,Number:ve.number,String:ve.string,FormatString:ve.special(ve.string),Escape:ve.escape,UpdateOp:ve.updateOperator,"ArithOp!":ve.arithmeticOperator,BitOp:ve.bitwiseOperator,CompareOp:ve.compareOperator,AssignOp:ve.definitionOperator,Ellipsis:ve.punctuation,At:ve.meta,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace,".":ve.derefOperator,", ;":ve.separator}),ZQr={__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},qQr=zd.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'#FyOOOOQS'#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,5kOOQS1G1`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,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!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,5nQdO,5sQdO1G4OOOQS-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<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$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,5S~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!;|!_![!]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:[$Qr,WQr,jQr,XQr,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:e=>ZQr[e]||-1}],tokenPrec:7668}),Zvt=new upe,FLn=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Tae(e){return(t,n,r)=>{if(r)return!1;let o=t.node.getChild("VariableName");return o&&n(o,e),!0}}const KQr={FunctionDefinition:Tae("function"),ClassDefinition:Tae("class"),ForStatement(e,t,n){if(n){for(let r=e.node.firstChild;r;r=r.nextSibling)if(r.name=="VariableName")t(r,"variable");else if(r.name=="in")break}},ImportStatement(e,t){var n,r;let{node:o}=e,s=((n=o.firstChild)===null||n===void 0?void 0:n.name)=="from";for(let a=o.getChild("import");a;a=a.nextSibling)a.name=="VariableName"&&((r=a.nextSibling)===null||r===void 0?void 0:r.name)!="as"&&t(a,s?"variable":"namespace")},AssignStatement(e,t){for(let n=e.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")t(n,"variable");else if(n.name==":"||n.name=="AssignOp")break},ParamList(e,t){for(let n=null,r=e.node.firstChild;r;r=r.nextSibling)r.name=="VariableName"&&(!n||!/\*|AssignOp/.test(n.name))&&t(r,"variable"),n=r},CapturePattern:Tae("variable"),AsPattern:Tae("variable"),__proto__:null};function NLn(e,t){let n=Zvt.get(t);if(n)return n;let r=[],o=!0;function s(a,l){let d=e.sliceString(a.from,a.to);r.push({label:d,type:l})}return t.cursor(cl.IncludeAnonymous).iterate(a=>{if(a.name){let l=KQr[a.name];if(l&&l(a,s,o)||!o&&FLn.has(a.name))return!1;o=!1}else if(a.to-a.from>8192){for(let l of NLn(e,a.node))r.push(l);return!1}}),Zvt.set(t,r),r}const qvt=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,ULn=["String","FormatString","Comment","PropertyName"];function jLn(e){let t=tc(e.state).resolveInner(e.pos,-1);if(ULn.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&qvt.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let o=t;o;o=o.parent)FLn.has(o.name)&&(r=r.concat(NLn(e.state.doc,o)));return{options:r,from:n?t.from:e.pos,validFor:qvt}}const JQr=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(e=>({label:e,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(e=>({label:e,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(e=>({label:e,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(e=>({label:e,type:"function"}))),eDr=[Gs("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Gs("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Gs("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Gs("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Gs(`if \${}: -`,{label:"if",detail:"block",type:"keyword"}),Gs("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Gs("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Gs("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Gs("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],WLn=bpe(ULn,Kne(JQr.concat(eDr)));function XSe(e){let{node:t,pos:n}=e,r=e.lineIndent(n,-1),o=null;for(;;){let s=t.childBefore(n);if(s)if(s.name=="Comment")n=s.from;else if(s.name=="Body"||s.name=="MatchBody")e.baseIndentFor(s)+e.unit<=r&&(o=s),t=s;else if(s.name=="MatchClause")t=s;else if(s.type.is("Statement"))t=s;else break;else break}return o}function GSe(e,t){let n=e.baseIndentFor(t),r=e.lineAt(e.pos,-1),o=r.from+r.text.length;return/^\s*($|#)/.test(r.text)&&e.node.ton?null:n+e.unit}const Que=Vd.define({name:"python",parser:qQr.configure({props:[Vu.add({Body:e=>{var t;let n=/^\s*(#|$)/.test(e.textAfter)&&XSe(e)||e.node;return(t=GSe(e,n))!==null&&t!==void 0?t:e.continue()},MatchBody:e=>{var t;let n=XSe(e);return(t=GSe(e,n||e.node))!==null&&t!==void 0?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),"ForStatement WhileStatement":e=>/^\s*else:/.test(e.textAfter)?e.baseIndent:e.continue(),TryStatement:e=>/^\s*(except[ :]|finally:|else:)/.test(e.textAfter)?e.baseIndent:e.continue(),MatchStatement:e=>/^\s*case /.test(e.textAfter)?e.baseIndent+e.unit:e.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":Xv({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":Xv({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":Xv({closing:"]"}),MemberExpression:e=>e.baseIndent+e.unit,"String FormatString":()=>null,Script:e=>{var t;let n=XSe(e);return(t=n&&GSe(e,n))!==null&&t!==void 0?t:e.continue()}}),kh.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":bA,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)}),"String FormatString":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.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 tDr(){return new wd(Que,[Que.data.of({autocomplete:jLn}),Que.data.of({autocomplete:WLn})])}const nDr=Object.freeze(Object.defineProperty({__proto__:null,globalCompletion:WLn,localCompletionSource:jLn,python:tDr,pythonLanguage:Que},Symbol.toStringTag,{value:"Module"})),iDr=1,rDr=2,oDr=3,sDr=4,aDr=5,Kvt=98,lDr=101,cDr=102,Jvt=114,dDr=69,Qae=48,eAt=46,uDr=43,hDr=45,tAt=35,nAt=34,fDr=124,gDr=60,mDr=62;function eFe(e){return e>=48&&e<=57}function Dae(e){return eFe(e)||e==95}const kDr=new go((e,t)=>{if(eFe(e.next)){let n=!1;do e.advance();while(Dae(e.next));if(e.next==eAt){if(n=!0,e.advance(),eFe(e.next))do e.advance();while(Dae(e.next));else if(e.next==eAt||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==lDr||e.next==dDr){if(n=!0,e.advance(),(e.next==uDr||e.next==hDr)&&e.advance(),!Dae(e.next))return;do e.advance();while(Dae(e.next))}if(e.next==cDr){let r=e.peek(1);if(r==Qae+3&&e.peek(2)==Qae+2||r==Qae+6&&e.peek(2)==Qae+4)e.advance(3),n=!0;else return}n&&e.acceptToken(aDr)}else if(e.next==Kvt||e.next==Jvt){if(e.next==Kvt&&e.advance(),e.next!=Jvt)return;e.advance();let n=0;for(;e.next==tAt;)n++,e.advance();if(e.next!=nAt)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==nAt;if(e.advance(),r){for(let o=0;o{e.next==fDr&&e.acceptToken(iDr,1)}),ADr=new go(e=>{e.next==gDr?e.acceptToken(rDr,1):e.next==mDr&&e.acceptToken(oDr,1)}),pDr=Xd({"const macro_rules struct union enum type fn impl trait let static":ve.definitionKeyword,"mod use crate":ve.moduleKeyword,"pub unsafe async mut extern default move":ve.modifier,"for if else loop while match continue break return await":ve.controlKeyword,"as in ref":ve.operatorKeyword,"where _ crate super dyn":ve.keyword,self:ve.self,String:ve.string,Char:ve.character,RawString:ve.special(ve.string),Boolean:ve.bool,Identifier:ve.variableName,"CallExpression/Identifier":ve.function(ve.variableName),BoundIdentifier:ve.definition(ve.variableName),"FunctionItem/BoundIdentifier":ve.function(ve.definition(ve.variableName)),LoopLabel:ve.labelName,FieldIdentifier:ve.propertyName,"CallExpression/FieldExpression/FieldIdentifier":ve.function(ve.propertyName),Lifetime:ve.special(ve.variableName),ScopeIdentifier:ve.namespace,TypeIdentifier:ve.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":ve.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":ve.macroName,'"!"':ve.macroName,UpdateOp:ve.updateOperator,LineComment:ve.lineComment,BlockComment:ve.blockComment,Integer:ve.integer,Float:ve.float,ArithOp:ve.arithmeticOperator,LogicOp:ve.logicOperator,BitOp:ve.bitwiseOperator,CompareOp:ve.compareOperator,"=":ve.definitionOperator,".. ... => ->":ve.punctuation,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace,". DerefOp":ve.derefOperator,"&":ve.operator,", ; ::":ve.separator,"Attribute/...":ve.meta}),bDr={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},wDr=zd.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[pDr],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[vDr,ADr,kDr,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:e=>bDr[e]||-1}],tokenPrec:15596}),VLn=Vd.define({name:"rust",parser:wDr.configure({props:[Vu.add({IfExpression:Pu({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:e=>e.continue(),"Statement MatchArm":Pu()}),kh.add(e=>{if(/(Block|edTokens|List)$/.test(e.name))return bA;if(e.name=="BlockComment")return t=>({from:t.from+2,to:t.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function ODr(){return new wd(VLn)}const yDr=Object.freeze(Object.defineProperty({__proto__:null,rust:ODr,rustLanguage:VLn},Symbol.toStringTag,{value:"Module"})),zLn=168,tFe=169,CDr=170,_Dr=1,SDr=2,iAt=3,LDr=171,xDr=172,rAt=4,oAt=173,EDr=5,TDr=174,sAt=175,aAt=176,YSe=177,lAt=6,cAt=7,QDr=8,DDr=9,Qpe=0,_S=[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],BDr=58,RDr=40,yKe=95,IDr=91,tZ=45,MDr=46,CKe=35,PDr=37,HLn=123,FDr=125,nZ=47,iZ=42,B4=10,dAt=61,NDr=43,UDr=38;function NW(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function _Ke(e){return e>=48&&e<=57}function SKe(e){let t;return e.next==nZ&&((t=e.peek(1))==nZ||t==iZ)}const jDr=new go((e,t)=>{if(t.dialectEnabled(Qpe)){let n;if(e.next<0&&t.canShift(aAt))e.acceptToken(aAt);else if(((n=e.peek(-1))==B4||n<0)&&t.canShift(sAt)){let r=0;for(;e.next!=B4&&_S.includes(e.next);)e.advance(),r++;e.next==B4||SKe(e)?e.acceptToken(sAt,-r):r&&e.acceptToken(YSe)}else if(e.next==B4)e.acceptToken(TDr,1);else if(_S.includes(e.next)){for(e.advance();e.next!=B4&&_S.includes(e.next);)e.advance();e.acceptToken(YSe)}}else{let n=0;for(;_S.includes(e.next);)e.advance(),n++;n&&e.acceptToken(YSe)}},{contextual:!0}),WDr=new go((e,t)=>{if(SKe(e)){if(e.advance(),t.dialectEnabled(Qpe)){let n=-1;for(let r=1;;r++){let o=e.peek(-r-1);if(o==B4||o<0){n=r+1;break}else if(!_S.includes(o))break}if(n>-1){let r=e.next==iZ,o=0;for(e.advance();e.next>=0;)if(e.next==B4){e.advance();let s=0;for(;e.next!=B4&&_S.includes(e.next);)s++,e.advance();if(s=0;)e.advance();e.acceptToken(lAt)}else{for(e.advance();e.next>=0;){let{next:n}=e;if(e.advance(),n==iZ&&e.next==nZ){e.advance();break}}e.acceptToken(cAt)}}}),VDr=new go((e,t)=>{(e.next==NDr||e.next==dAt)&&t.dialectEnabled(Qpe)&&e.acceptToken(e.next==dAt?QDr:DDr,1)}),zDr=new go((e,t)=>{if(!t.dialectEnabled(Qpe))return;let n=t.context.depth;if(e.next<0&&n){e.acceptToken(tFe);return}if(e.peek(-1)==B4){let o=0;for(;e.next!=B4&&_S.includes(e.next);)e.advance(),o++;o!=n&&e.next!=B4&&!SKe(e)&&(o{for(let n=!1,r=0,o=0;;o++){let{next:s}=e;if(NW(s)||s==tZ||s==yKe||n&&_Ke(s))!n&&(s!=tZ||o>0)&&(n=!0),r===o&&s==tZ&&r++,e.advance();else if(s==CKe&&e.peek(1)==HLn){e.acceptToken(EDr,2);break}else{n&&e.acceptToken(r==2&&t.canShift(rAt)?rAt:t.canShift(oAt)?oAt:s==RDr?LDr:xDr);break}}}),$Dr=new go(e=>{if(e.next==FDr){for(e.advance();NW(e.next)||e.next==tZ||e.next==yKe||_Ke(e.next);)e.advance();e.next==CKe&&e.peek(1)==HLn?e.acceptToken(SDr,2):e.acceptToken(_Dr)}}),XDr=new go(e=>{if(_S.includes(e.peek(-1))){let{next:t}=e;(NW(t)||t==yKe||t==CKe||t==MDr||t==IDr||t==BDr&&NW(e.peek(1))||t==tZ||t==UDr||t==iZ)&&e.acceptToken(CDr)}}),GDr=new go(e=>{if(!_S.includes(e.peek(-1))){let{next:t}=e;if(t==PDr&&(e.advance(),e.acceptToken(iAt)),NW(t)){do e.advance();while(NW(e.next)||_Ke(e.next));e.acceptToken(iAt)}}});function $Ln(e,t){this.parent=e,this.depth=t,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)}const YDr=new $Ln(null,0),ZDr=new cI({start:YDr,shift(e,t,n,r){return t==zLn?new $Ln(e,n.pos-r.pos):t==tFe?e.parent:e},hash(e){return e.hash}}),qDr=Xd({"AtKeyword import charset namespace keyframes media supports include mixin use forward extend at-root":ve.definitionKeyword,"Keyword selector":ve.keyword,ControlKeyword:ve.controlKeyword,NamespaceName:ve.namespace,KeyframeName:ve.labelName,KeyframeRangeName:ve.operatorKeyword,TagName:ve.tagName,"ClassName Suffix":ve.className,PseudoClassName:ve.constant(ve.className),IdName:ve.labelName,"FeatureName PropertyName":ve.propertyName,AttributeName:ve.attributeName,NumberLiteral:ve.number,KeywordQuery:ve.keyword,UnaryQueryOp:ve.operatorKeyword,"CallTag ValueName":ve.atom,VariableName:ve.variableName,SassVariableName:ve.special(ve.variableName),Callee:ve.operatorKeyword,Unit:ve.unit,"UniversalSelector NestingSelector IndentedMixin IndentedInclude":ve.definitionOperator,MatchOp:ve.compareOperator,"ChildOp SiblingOp, LogicOp":ve.logicOperator,BinOp:ve.arithmeticOperator,"Important Global Default":ve.modifier,Comment:ve.blockComment,LineComment:ve.lineComment,ColorLiteral:ve.color,"ParenthesizedContent StringLiteral":ve.string,"InterpolationStart InterpolationContinue InterpolationEnd":ve.meta,': "..."':ve.punctuation,"PseudoOp #":ve.derefOperator,"; ,":ve.separator,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace}),KDr={__proto__:null,not:62,using:197,as:207,with:211,without:211,hide:225,show:225,if:263,from:269,to:271,through:273,in:279},JDr={__proto__:null,url:82,"url-prefix":82,domain:82,regexp:82,lang:104,"nth-child":104,"nth-last-child":104,"nth-of-type":104,"nth-last-of-type":104,dir:104,"host-context":104},eBr={__proto__:null,"@import":162,"@include":194,"@mixin":200,"@function":200,"@use":204,"@extend":214,"@at-root":218,"@forward":222,"@media":228,"@charset":232,"@namespace":236,"@keyframes":242,"@supports":254,"@if":258,"@else":260,"@for":266,"@each":276,"@while":282,"@debug":286,"@warn":286,"@error":286,"@return":286},tBr={__proto__:null,layer:166,not:184,only:184,selector:190},nBr=zd.deserialize({version:14,states:"!$WQ`Q+tOOO#fQ+tOOP#mOpOOOOQ#U'#Ch'#ChO#rQ(pO'#CjOOQ#U'#Ci'#CiO%_Q)QO'#GXO%rQ.jO'#CnO&mQ#dO'#D]O'dQ(pO'#CgO'kQ)OO'#D_O'vQ#dO'#DfO'{Q#dO'#DiO(QQ#dO'#DqOOQ#U'#GX'#GXO(VQ(pO'#GXO(^Q(nO'#DuO%rQ.jO'#D}O%rQ.jO'#E`O%rQ.jO'#EcO%rQ.jO'#EeO(cQ)OO'#EjO)TQ)OO'#ElO%rQ.jO'#EnO)bQ)OO'#EqO%rQ.jO'#EsO)|Q)OO'#EuO*XQ)OO'#ExO*aQ)OO'#FOO*uQ)OO'#FbOOQ&Z'#GW'#GWOOQ&Y'#Fe'#FeO+PQ(nO'#FeQ`Q+tOOO%rQ.jO'#FQO+[Q(nO'#FUO+aQ)OO'#FZO%rQ.jO'#F^O%rQ.jO'#F`OOQ&Z'#Fm'#FmO+iQ+uO'#GaO+vQ(oO'#GaQOQ#SOOP,XO#SO'#GVPOOO)CAz)CAzOOQ#U'#Cm'#CmOOQ#U,59W,59WOOQ#i'#Cp'#CpO%rQ.jO'#CsO,xQ.wO'#CuO/dQ.^O,59YO%rQ.jO'#CzOOQ#S'#DP'#DPO/uQ(nO'#DUO/zQ)OO'#DZOOQ#i'#GZ'#GZO0SQ(nO'#DOOOQ#U'#D^'#D^OOQ#U,59w,59wO&mQ#dO,59wO0XQ)OO,59yO'vQ#dO,5:QO'{Q#dO,5:TO(cQ)OO,5:WO(cQ)OO,5:YO(cQ)OO,5:ZO(cQ)OO'#FlO0dQ(nO,59RO0oQ+tO'#DsO0vQ#TO'#DsOOQ&Z,59R,59ROOQ#U'#Da'#DaOOQ#S'#Dd'#DdOOQ#U,59y,59yO0{Q(nO,59yO1QQ(nO,59yOOQ#U'#Dh'#DhOOQ#U,5:Q,5:QOOQ#S'#Dj'#DjO1VQ9`O,5:TOOQ#U'#Dr'#DrOOQ#U,5:],5:]O2YQ.jO,5:aO2dQ.jO,5:iO3`Q.jO,5:zO3mQ.YO,5:}O4OQ.jO,5;POOQ#U'#Cj'#CjO4wQ(pO,5;UO5UQ(pO,5;WOOQ&Z,5;W,5;WO5]Q)OO,5;WO5bQ.jO,5;YOOQ#S'#ET'#ETO6TQ.jO'#E]O6kQ(nO'#GcO*aQ)OO'#EZO7PQ(nO'#E^OOQ#S'#Gd'#GdO0gQ(nO,5;]O4UQ.YO,5;_OOQ#d'#Ew'#EwO+PQ(nO,5;aO7UQ)OO,5;aOOQ#S'#Ez'#EzO7^Q(nO,5;dO7cQ(nO,5;jO7nQ(nO,5;|OOQ&Z'#Gf'#GfOOQ&Y,5VQ9`O1G/oO>pQ(pO1G/rO?dQ(pO1G/tO@WQ(pO1G/uO@zQ(pO,5aAN>aO!6QQ(pO,5_Ow!bi!a!bi!d!bi!h!bi$p!bi$t!bi!o!bi$v!bif!bie!bi~P>_Ow!ci!a!ci!d!ci!h!ci$p!ci$t!ci!o!ci$v!cif!cie!ci~P>_Ow$`a!h$`a$t$`a~P4]O!p%|O~O$o%TP~P`Oe%RP~P(cOe%QP~P%rOS!XOTVO_!XOc!XOf!QOh!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oe&VOj&TO~PAsOl#sOm#sOq#tOw&XO!l&ZO!m&ZO!n&ZO!o!ii$t!ii$v!ii$m!ii!p!ii$o!ii~P%rOf&[OT!tXc!tX!o!tX#O!tX#R!tX$s!tX$t!tX$v!tX~O$n$_OS%YXT%YXW%YXX%YX_%YXc%YXq%YXu%YX|%YX!S%YX!Z%YX!r%YX!s%YX#T%YX#W%YX#Y%YX#_%YX#a%YX#c%YX#f%YX#h%YX#j%YX#m%YX#s%YX#u%YX#y%YX$O%YX$R%YX$T%YX$m%YX$r%YX$|%YX%S%YX!p%YX!o%YX$t%YX$o%YX~O$r!PO$|&aO~O#]&cO~Ou&dO~O!o#`O#d$wO$t#`O$v#`O~O!o%ZP#d%ZP$t%ZP$v%ZP~P%rO$r!PO~OR#rO!|iXeiX~Oe!wXm!wXu!yX!|!yX~Ou&jO!|&kO~Oe&lOm%PO~Ow$fX!h$fX$t$fX!o$fX$v$fX~P*aOw%QO!h%Va$t%Va!o%Va$v%Va~Om%POw!}a!h!}a$t!}a!o!}a$v!}ae!}a~O!p&xO$r&sO%O&rO~O#v&zOS#tiT#tiW#tiX#ti_#tic#tiq#tiu#ti|#ti!S#ti!Z#ti!r#ti!s#ti#T#ti#W#ti#Y#ti#_#ti#a#ti#c#ti#f#ti#h#ti#j#ti#m#ti#s#ti#u#ti#y#ti$O#ti$R#ti$T#ti$m#ti$r#ti$|#ti%S#ti!p#ti!o#ti$t#ti$o#ti~Oc&|Ow$lX$P$lX~Ow%`O$P%[a~O!o#kO$t#kO$m%Ti!p%Ti$o%Ti~O!o$da$m$da$t$da!p$da$o$da~P`Oq#tOPkiQkilkimkiTkickifki!oki!uki#Oki#Rki$ski$tki$vki!hki#Uki#Zki#]ki#dkiekiSki_kihkijkiokiwkiyki|ki!lki!mki!nki$qki$rki%Oki$mkivki{ki#{ki#|ki!pki$oki~Ol#sOm#sOq#tOP$]aQ$]a~Oe'QO~Ol#sOm#sOq#tOS$YXT$YX_$YXc$YXe$YXf$YXh$YXj$YXo$YXv$YXw$YXy$YX|$YX$q$YX$r$YX%O$YX~Ov'UOw'SOe%PX~P%rOS$}XT$}X_$}Xc$}Xe$}Xf$}Xh$}Xj$}Xl$}Xm$}Xo$}Xq$}Xv$}Xw$}Xy$}X|$}X$q$}X$r$}X%O$}X~Ou'VO~P!%OOe'WO~O$o'YO~Ow'ZOe%RX~P4]Oe']O~Ow'^Oe%QX~P%rOe'`O~Ol#sOm#sOq#tO{'aO~Ou'bOe$}Xl$}Xm$}Xq$}X~Oe'eOj'cO~Ol#sOm#sOq#tOS$cXT$cX_$cXc$cXf$cXh$cXj$cXo$cXw$cXy$cX|$cX!l$cX!m$cX!n$cX!o$cX$q$cX$r$cX$t$cX$v$cX%O$cX$m$cX!p$cX$o$cX~Ow&XO!l'hO!m'hO!n'hO!o!iq$t!iq$v!iq$m!iq!p!iq$o!iq~P%rO$r'iO~O!o#`O#]'nO$t#`O$v#`O~Ou'oO~Ol#sOm#sOq#tOw'qO!o%ZX#d%ZX$t%ZX$v%ZX~O$s'uO~P5oOm%POw$fa!h$fa$t$fa!o$fa$v$fa~Oe'wO~P4]O%O&rOw#pX!h#pX$t#pX~Ow'yO!h!fO$t!gO~O!p'}O$r&sO%O&rO~O#v(POS#tqT#tqW#tqX#tq_#tqc#tqq#tqu#tq|#tq!S#tq!Z#tq!r#tq!s#tq#T#tq#W#tq#Y#tq#_#tq#a#tq#c#tq#f#tq#h#tq#j#tq#m#tq#s#tq#u#tq#y#tq$O#tq$R#tq$T#tq$m#tq$r#tq$|#tq%S#tq!p#tq!o#tq$t#tq$o#tq~O!h!fO#w(QO$t!gO~Ol#sOm#sOq#tO#{(SO#|(SO~Oc(VOe$ZXw$ZX~P=TOw'SOe%Pa~Ol#sOm#sOq#tO{(ZO~Oe$_Xw$_X~P(cOw'ZOe%Ra~Oe$^Xw$^X~P%rOw'^Oe%Qa~Ou'bO~Ol#sOm#sOq#tOS$caT$ca_$cac$caf$cah$caj$cao$caw$cay$ca|$ca!l$ca!m$ca!n$ca!o$ca$q$ca$r$ca$t$ca$v$ca%O$ca$m$ca!p$ca$o$ca~Oe(dOq(bO~Oe(gOm%PO~Ow$hX!o$hX#d$hX$t$hX$v$hX~P%rOw'qO!o%Za#d%Za$t%Za$v%Za~Oe(lO~P%rOe(mO!|(nO~Ov(vOe$Zaw$Za~P%rOu(wO~P!%OOw'SOe%Pi~Ow'SOe%Pi~P%rOe$_aw$_a~P4]Oe$^aw$^a~P%rOl#sOm#sOq#tOw(yOe$bij$bi~Oe(|Oq(bO~Oe)OOm%PO~Ol#sOm#sOq#tOw$ha!o$ha#d$ha$t$ha$v$ha~OS$}Oh$}Oj$}Oy!VO$q!UO$s'uO%O&rO~O#w(QO~Ow'SOe%Pq~Oe)WO~Oe$Zqw$Zq~P%rO%Oql!dl~",goto:"=Y%]PPPPPPPPPPP%^%h%h%{P%h&`&cP(UPP)ZP*YP)ZPP)ZP)ZP+f,j-lPPP-xPPPP)Z/S%h/W%hP/^P/d/j/p%hP/v%h/|P%hP%h%hP%h0S0VP1k1}2XPPPPP%^PP2_P2b'w'w2h'w'wP'wP'w'wP%^PP%^P%^PP2qP%^P%^P%^PP%^P%^P%^P2w%^P2z2}3Q3X%^P%^PPP%^PPPP%^PP%^P%^P%^P3^3d3j4Y4h4n4t4z5Q5W5d5j5p5z6Q6W6b6h6n6t6zPPPPPPPPPPPP7Q7T7aP8WP:_:b:eP:h:q:w;T;p;y=S=VanOPqx!f#l$_%fs^OPefqx!a!b!c!d!f#l$_$`%T%f'ZsTOPefqx!a!b!c!d!f#l$_$`%T%f'ZR!OUb^ef!a!b!c!d$`%T'Z`_OPqx!f#l$_%f!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)Ug#Uhlm!u#Q#S$i%P%Q&d'o!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ&b$pR&i$x!y!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)U!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UU$}#Q&k(nU&u%Y&w'yR'x&t!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UV$}#Q&k(n#P!YVabcdgiruv!Q!T!t#Q#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j&k'S'V'^'b'q't(Q(S(U(Y(^(n(w)UQ$P!YQ&_$lQ&`$oR(e'n!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ#YjU$}#Q&k(nR%X#ZT#{!W#|Q![WR$Q!]Q!kYR$R!^Q$R!mR%y$TQ!lYR$S!^Q$R!lR%y$SQ!oZR$U!_Q!q[R$V!`R!s]Q!hXQ!|fQ$]!eQ$f!tQ$k!vQ$m!wQ$r!{Q%U#VQ%[#^Q%]#_Q%^#cQ%c#gQ'l&_Q'{&vQ(R&zQ(T'OQ(q'zQ(s(PQ)P(gQ)S(tQ)T(uR)V)OSpOqUyP!f$_Q#jxQ%g#lR'P%fa`OPqx!f#l$_%fQ$f!tR(a'bR$i!uQ'j&[R(z(bQ${#QQ'v&kR)R(nQ&b$pR's&iR#ZjR#]kR%Z#]S&v%Y&wR(o'yV&t%Y&w'yQ#o{R%i#oQqOR#bqQ%v$OQ&Q$a^'R%v&Q't(U(Y(^)UQ't&jQ(U'SQ(Y'VQ(^'^R)U(wQ'T%vU(W'T(X(xQ(X'UR(x(YQ#|!WR%s#|Q#v!SR%o#vQ'_&QR(_'_Q'[&OR(]'[Q!eXR$[!eUxP!f$_S#ix%fR%f#lQ&U$dR'd&UQ&Y$eR'g&YQ#myQ%e#jT%h#m%eQ(c'jR({(cQ%R#RR&o%RQ$u#OS&e$u(jR(j'sQ'r&gR(i'rQ&w%YR'|&wQ'z&vR(p'zQ&y%^R(O&yQ%a#eR&}%aR|QSoOq]wPx!f#l$_%f`XOPqx!f#l$_%fQ!zeQ!{fQ$W!aQ$X!bQ$Y!cQ$Z!dQ&O$`Q&p%TR(['ZQ!SVQ!uaQ!vbQ!wcQ!xdQ#OgQ#WiQ#crQ#guQ#hvS#q!Q$dQ#x!TQ$e!tQ%l#sQ%m#tQ%n#ul%u$O$a%v&Q&j'S'V'^'t(U(Y(^(w)UQ&S$cS&W$e&YQ&g$wQ&{%_Q'O%bQ'X%{Q'f&XQ(`'bQ(h'qQ(t(QR(u(SR%x$OR&R$aR&P$`QzPQ$^!fR%}$_X#ly#j#m%eQ#VhQ#_mQ$h!uR&^$iW#Rhm!u$iQ#^lQ$|#QQ%S#SQ&m%PQ&n%QQ'p&dR(f'oQ%O#QQ'v&kR)R(nQ#apQ$k!vQ$n!xQ$q!zQ$v#OQ%V#WQ%W#YQ%]#_Q%d#hQ&]$hQ&f$uQ&q%XQ'k&^Q'l&_S'm&`&bQ(k'sQ(}(eR)Q(jR&h$wR#ft",nodeNames:"⚠ InterpolationEnd InterpolationContinue Unit VariableName InterpolationStart LineComment Comment IndentedMixin IndentedInclude StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector SuffixedSelector Suffix Interpolation SassVariableName ValueName ) ( ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp LogicOp UnaryExpression LogicOp NamespacedValue . CallExpression Callee ArgList : ... , CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName ClassSelector ClassName PseudoClassSelector :: PseudoClassName PseudoClassName ArgList PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp PlaceholderSelector ClassName Block { Declaration PropertyName Map Important Global Default ; } ImportStatement AtKeyword import Layer layer LayerName KeywordQuery FeatureQuery FeatureName BinaryQuery ComparisonQuery CompareOp UnaryQuery LogicOp ParenthesizedQuery SelectorQuery selector IncludeStatement include Keyword MixinStatement mixin UseStatement use Keyword Star Keyword ExtendStatement extend RootStatement at-root ForwardStatement forward Keyword MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports IfStatement ControlKeyword ControlKeyword Keyword ForStatement ControlKeyword Keyword Keyword Keyword EachStatement ControlKeyword Keyword WhileStatement ControlKeyword OutputStatement ControlKeyword AtRule Styles",maxTerm:196,context:ZDr,nodeProps:[["openedBy",1,"InterpolationStart",5,"InterpolationEnd",21,"(",43,"[",78,"{"],["isolate",-3,6,7,26,""],["closedBy",22,")",44,"]",70,"}"]],propSources:[qDr],skippedNodes:[0,6,7,146],repeatNodeCount:21,tokenData:"!$Q~RyOq#rqr$jrs0jst2^tu8{uv;hvw;{wx<^xy={yz>^z{>c{|>||}Co}!ODQ!O!PDo!P!QFY!Q![Fk![!]Gf!]!^Hb!^!_Hs!_!`Is!`!aJ^!a!b#r!b!cKa!c!}#r!}#OMn#O#P#r#P#QNP#Q#RNb#R#T#r#T#UNw#U#c#r#c#d!!Y#d#o#r#o#p!!o#p#qNb#q#r!#Q#r#s!#c#s;'S#r;'S;=`!#z<%lO#rW#uSOy$Rz;'S$R;'S;=`$d<%lO$RW$WSzWOy$Rz;'S$R;'S;=`$d<%lO$RW$gP;=`<%l$RY$m[Oy$Rz!_$R!_!`%c!`#W$R#W#X%v#X#Z$R#Z#[)Z#[#]$R#]#^,V#^;'S$R;'S;=`$d<%lO$RY%jSzWlQOy$Rz;'S$R;'S;=`$d<%lO$RY%{UzWOy$Rz#X$R#X#Y&_#Y;'S$R;'S;=`$d<%lO$RY&dUzWOy$Rz#Y$R#Y#Z&v#Z;'S$R;'S;=`$d<%lO$RY&{UzWOy$Rz#T$R#T#U'_#U;'S$R;'S;=`$d<%lO$RY'dUzWOy$Rz#i$R#i#j'v#j;'S$R;'S;=`$d<%lO$RY'{UzWOy$Rz#`$R#`#a(_#a;'S$R;'S;=`$d<%lO$RY(dUzWOy$Rz#h$R#h#i(v#i;'S$R;'S;=`$d<%lO$RY(}S!nQzWOy$Rz;'S$R;'S;=`$d<%lO$RY)`UzWOy$Rz#`$R#`#a)r#a;'S$R;'S;=`$d<%lO$RY)wUzWOy$Rz#c$R#c#d*Z#d;'S$R;'S;=`$d<%lO$RY*`UzWOy$Rz#U$R#U#V*r#V;'S$R;'S;=`$d<%lO$RY*wUzWOy$Rz#T$R#T#U+Z#U;'S$R;'S;=`$d<%lO$RY+`UzWOy$Rz#`$R#`#a+r#a;'S$R;'S;=`$d<%lO$RY+yS!mQzWOy$Rz;'S$R;'S;=`$d<%lO$RY,[UzWOy$Rz#a$R#a#b,n#b;'S$R;'S;=`$d<%lO$RY,sUzWOy$Rz#d$R#d#e-V#e;'S$R;'S;=`$d<%lO$RY-[UzWOy$Rz#c$R#c#d-n#d;'S$R;'S;=`$d<%lO$RY-sUzWOy$Rz#f$R#f#g.V#g;'S$R;'S;=`$d<%lO$RY.[UzWOy$Rz#h$R#h#i.n#i;'S$R;'S;=`$d<%lO$RY.sUzWOy$Rz#T$R#T#U/V#U;'S$R;'S;=`$d<%lO$RY/[UzWOy$Rz#b$R#b#c/n#c;'S$R;'S;=`$d<%lO$RY/sUzWOy$Rz#h$R#h#i0V#i;'S$R;'S;=`$d<%lO$RY0^S!lQzWOy$Rz;'S$R;'S;=`$d<%lO$R~0mWOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W<%lO0j~1[Oj~~1_RO;'S0j;'S;=`1h;=`O0j~1kXOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W;=`<%l0j<%lO0j~2ZP;=`<%l0jZ2cY!ZPOy$Rz!Q$R!Q![3R![!c$R!c!i3R!i#T$R#T#Z3R#Z;'S$R;'S;=`$d<%lO$RY3WYzWOy$Rz!Q$R!Q![3v![!c$R!c!i3v!i#T$R#T#Z3v#Z;'S$R;'S;=`$d<%lO$RY3{YzWOy$Rz!Q$R!Q![4k![!c$R!c!i4k!i#T$R#T#Z4k#Z;'S$R;'S;=`$d<%lO$RY4rYhQzWOy$Rz!Q$R!Q![5b![!c$R!c!i5b!i#T$R#T#Z5b#Z;'S$R;'S;=`$d<%lO$RY5iYhQzWOy$Rz!Q$R!Q![6X![!c$R!c!i6X!i#T$R#T#Z6X#Z;'S$R;'S;=`$d<%lO$RY6^YzWOy$Rz!Q$R!Q![6|![!c$R!c!i6|!i#T$R#T#Z6|#Z;'S$R;'S;=`$d<%lO$RY7TYhQzWOy$Rz!Q$R!Q![7s![!c$R!c!i7s!i#T$R#T#Z7s#Z;'S$R;'S;=`$d<%lO$RY7xYzWOy$Rz!Q$R!Q![8h![!c$R!c!i8h!i#T$R#T#Z8h#Z;'S$R;'S;=`$d<%lO$RY8oShQzWOy$Rz;'S$R;'S;=`$d<%lO$R_9O`Oy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!_$R!_!`;T!`!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$RZ:X^zWcROy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$R[;[S!_SzWOy$Rz;'S$R;'S;=`$d<%lO$RZ;oS%SPlQOy$Rz;'S$R;'S;=`$d<%lO$RZQSfROy$Rz;'S$R;'S;=`$d<%lO$R~>cOe~_>jU$|PlQOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RZ?TWlQ!dPOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZ?rUzWOy$Rz!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RZ@]YzW%OROy$Rz!Q$R!Q![@U![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZAQYzWOy$Rz{$R{|Ap|}$R}!OAp!O!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZAuUzWOy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZB`UzW%OROy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZBy[zW%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZCtSwROy$Rz;'S$R;'S;=`$d<%lO$RZDVWlQOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZDtWqROy$Rz!O$R!O!PE^!P!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RYEcUzWOy$Rz!O$R!O!PEu!P;'S$R;'S;=`$d<%lO$RYE|SvQzWOy$Rz;'S$R;'S;=`$d<%lO$RYF_SlQOy$Rz;'S$R;'S;=`$d<%lO$RZFp[%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RkGkUucOy$Rz![$R![!]G}!];'S$R;'S;=`$d<%lO$RXHUS!SPzWOy$Rz;'S$R;'S;=`$d<%lO$RZHgS!oROy$Rz;'S$R;'S;=`$d<%lO$RjHzU!|`lQOy$Rz!_$R!_!`I^!`;'S$R;'S;=`$d<%lO$RjIgS!|`zWlQOy$Rz;'S$R;'S;=`$d<%lO$RnIzU!|`!_SOy$Rz!_$R!_!`%c!`;'S$R;'S;=`$d<%lO$RkJgV!aP!|`lQOy$Rz!_$R!_!`I^!`!aJ|!a;'S$R;'S;=`$d<%lO$RXKTS!aPzWOy$Rz;'S$R;'S;=`$d<%lO$RXKdYOy$Rz}$R}!OLS!O!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLXWzWOy$Rz!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLx[!rPzWOy$Rz}$R}!OLq!O!Q$R!Q![Lq![!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RZMsS|ROy$Rz;'S$R;'S;=`$d<%lO$R_NUS{VOy$Rz;'S$R;'S;=`$d<%lO$R[NeUOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RkNzUOy$Rz#b$R#b#c! ^#c;'S$R;'S;=`$d<%lO$Rk! cUzWOy$Rz#W$R#W#X! u#X;'S$R;'S;=`$d<%lO$Rk! |SmczWOy$Rz;'S$R;'S;=`$d<%lO$Rk!!]UOy$Rz#f$R#f#g! u#g;'S$R;'S;=`$d<%lO$RZ!!tS!hROy$Rz;'S$R;'S;=`$d<%lO$RZ!#VS!pROy$Rz;'S$R;'S;=`$d<%lO$R]!#hU!dPOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RW!#}P;=`<%l#r",tokenizers:[zDr,XDr,$Dr,GDr,HDr,jDr,WDr,VDr,0,1,2,3,4],topRules:{StyleSheet:[0,10],Styles:[1,145]},dialects:{indented:0},specialized:[{term:172,get:e=>KDr[e]||-1},{term:171,get:e=>JDr[e]||-1},{term:80,get:e=>eBr[e]||-1},{term:173,get:e=>tBr[e]||-1}],tokenPrec:3217}),qge=Vd.define({name:"sass",parser:nBr.configure({props:[kh.add({Block:bA,Comment(e,t){return{from:e.from+2,to:t.sliceDoc(e.to-2,e.to)=="*/"?e.to-2:e.to}}}),Vu.add({Declaration:Pu()})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"$-"}}),iBr=qge.configure({dialect:"indented",props:[Vu.add({"Block RuleSet":e=>e.baseIndent+e.unit}),kh.add({Block:e=>({from:e.from,to:e.to})})]}),XLn=Ope(e=>e.name=="VariableName"||e.name=="SassVariableName");function rBr(e){return new wd(e!=null&&e.indented?iBr:qge,qge.data.of({autocomplete:XLn}))}const uAt=Object.freeze(Object.defineProperty({__proto__:null,sass:rBr,sassCompletionSource:XLn,sassLanguage:qge},Symbol.toStringTag,{value:"Module"})),oBr={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},sBr=zd.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["isolate",-3,1,2,11,""],["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"0o~R^XY}YZ}]^}pq}rs!Stu#pxy'Uyz(e{|(j}!O(j!Q!R(s!R![*p!]!^.^#T#o.{~!SO_~~!VVOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j<%lO!S~!qOZ~~!tRO;'S!S;'S;=`!};=`O!S~#QWOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j;=`<%l!S<%lO!S~#mP;=`<%l!S~#siqr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~%giV~qr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~'ZPT~!]!^'^~'aTO!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~'sVOy'^yz(Yz!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~(_OQ~~(bP;=`<%l'^~(jOS~~(mQ!Q!R(s!R![*p~(xUY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){#l#m+[~)aRY~!Q![)j!g!h){#X#Y){~)oSY~!Q![)j!g!h){#R#S*j#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dQY~!Q![*_#R#S*X~*mP!Q![)j~*uTY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){~+XP!Q![*p~+_R!Q![+h!c!i+h#T#Z+h~+mVY~!O!P,S!Q![+h!c!i+h!r!s-P#R#S+[#T#Z+h#d#e-P~,XTY~!Q![,h!c!i,h!r!s-P#T#Z,h#d#e-P~,mUY~!Q![,h!c!i,h!r!s-P#R#S.Q#T#Z,h#d#e-P~-ST{|-c}!O-c!Q![-o!c!i-o#T#Z-o~-fR!Q![-o!c!i-o#T#Z-o~-tSY~!Q![-o!c!i-o#R#S-c#T#Z-o~.TR!Q![,h!c!i,h#T#Z,h~.aP!]!^.d~.iSP~OY.dZ;'S.d;'S;=`.u<%lO.d~.xP;=`<%l.d~/QiX~qr.{st.{tu.{uv.{vw.{wx.{z{.{{|.{}!O.{!O!P.{!P!Q.{!Q![.{![!].{!^!_.{!_!`.{!`!a.{!a!b.{!b!c.{!c!}.{#Q#R.{#R#S.{#S#T.{#T#o.{#p#q.{#r#s.{",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:e=>oBr[e]||-1}],tokenPrec:0}),GLn=Vd.define({name:"wast",parser:sBr.configure({props:[Vu.add({App:Xv({closing:")",align:!1})}),kh.add({App:bA,BlockComment(e){return{from:e.from+2,to:e.to-2}}}),Xd({Keyword:ve.keyword,Type:ve.typeName,Number:ve.number,String:ve.string,Identifier:ve.variableName,LineComment:ve.lineComment,BlockComment:ve.blockComment,"( )":ve.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function aBr(){return new wd(GLn)}const lBr=Object.freeze(Object.defineProperty({__proto__:null,wast:aBr,wastLanguage:GLn},Symbol.toStringTag,{value:"Module"})),nFe=1,cBr=2,dBr=3,uBr=4,hBr=5,fBr=36,gBr=37,mBr=38,kBr=11,vBr=13;function ABr(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function pBr(e){return e==9||e==10||e==13||e==32}let hAt=null,fAt=null,gAt=0;function iFe(e,t){let n=e.pos+t;if(fAt==e&&gAt==n)return hAt;for(;pBr(e.peek(t));)t++;let r="";for(;;){let o=e.peek(t);if(!ABr(o))break;r+=String.fromCharCode(o),t++}return fAt=e,gAt=n,hAt=r||null}function mAt(e,t){this.name=e,this.parent=t}const bBr=new cI({start:null,shift(e,t,n,r){return t==nFe?new mAt(iFe(r,1)||"",e):e},reduce(e,t){return t==kBr&&e?e.parent:e},reuse(e,t,n,r){let o=t.type.id;return o==nFe||o==vBr?new mAt(iFe(r,1)||"",e):e},strict:!1}),wBr=new go((e,t)=>{if(e.next==60){if(e.advance(),e.next==47){e.advance();let n=iFe(e,0);if(!n)return e.acceptToken(hBr);if(t.context&&n==t.context.name)return e.acceptToken(cBr);for(let r=t.context;r;r=r.parent)if(r.name==n)return e.acceptToken(dBr,-2);e.acceptToken(uBr)}else if(e.next!=33&&e.next!=63)return e.acceptToken(nFe)}},{contextual:!0});function LKe(e,t){return new go(n=>{let r=0,o=t.charCodeAt(0);e:for(;!(n.next<0);n.advance(),r++)if(n.next==o){for(let s=1;s"),yBr=LKe(gBr,"?>"),CBr=LKe(mBr,"]]>"),_Br=Xd({Text:ve.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":ve.angleBracket,TagName:ve.tagName,"MismatchedCloseTag/TagName":[ve.tagName,ve.invalid],AttributeName:ve.attributeName,AttributeValue:ve.attributeValue,Is:ve.definitionOperator,"EntityReference CharacterReference":ve.character,Comment:ve.blockComment,ProcessingInst:ve.processingInstruction,DoctypeDecl:ve.documentMeta,Cdata:ve.special(ve.string)}),SBr=zd.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<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:[wBr,OBr,yBr,CBr,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function Due(e,t){let n=t&&t.getChild("TagName");return n?e.sliceString(n.from,n.to):""}function ZSe(e,t){let n=t&&t.firstChild;return!n||n.name!="OpenTag"?"":Due(e,n)}function LBr(e,t,n){let r=t&&t.getChildren("Attribute").find(s=>s.from<=n&&s.to>=n),o=r&&r.getChild("AttributeName");return o?e.sliceString(o.from,o.to):""}function qSe(e){for(let t=e&&e.parent;t;t=t.parent)if(t.name=="Element")return t;return null}function xBr(e,t){var n;let r=tc(e).resolveInner(t,-1),o=null;for(let s=r;!o&&s.parent;s=s.parent)(s.name=="OpenTag"||s.name=="CloseTag"||s.name=="SelfClosingTag"||s.name=="MismatchedCloseTag")&&(o=s);if(o&&(o.to>t||o.lastChild.type.isError)){let s=o.parent;if(r.name=="TagName")return o.name=="CloseTag"||o.name=="MismatchedCloseTag"?{type:"closeTag",from:r.from,context:s}:{type:"openTag",from:r.from,context:qSe(s)};if(r.name=="AttributeName")return{type:"attrName",from:r.from,context:o};if(r.name=="AttributeValue")return{type:"attrValue",from:r.from,context:o};let a=r==o||r.name=="Attribute"?r.childBefore(t):r;return(a==null?void 0:a.name)=="StartTag"?{type:"openTag",from:t,context:qSe(s)}:(a==null?void 0:a.name)=="StartCloseTag"&&a.to<=t?{type:"closeTag",from:t,context:s}:(a==null?void 0:a.name)=="Is"?{type:"attrValue",from:t,context:o}:a?{type:"attrName",from:t,context:o}:null}else if(r.name=="StartCloseTag")return{type:"closeTag",from:t,context:r.parent};for(;r.parent&&r.to==t&&!(!((n=r.lastChild)===null||n===void 0)&&n.type.isError);)r=r.parent;return r.name=="Element"||r.name=="Text"||r.name=="Document"?{type:"tag",from:t,context:r.name=="Element"?r:qSe(r)}:null}let EBr=class{constructor(t,n,r){this.attrs=n,this.attrValues=r,this.children=[],this.name=t.name,this.completion=Object.assign(Object.assign({type:"type"},t.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=t.textContent?t.textContent.map(o=>({label:o,type:"text"})):[]}};const KSe=/^[:\-\.\w\u00b7-\uffff]*$/;function kAt(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function vAt(e){return typeof e=="string"?{label:`"${e}"`,type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:`"${e.label}"`})}function YLn(e,t){let n=[],r=[],o=Object.create(null);for(let d of t){let u=kAt(d);n.push(u),d.global&&r.push(u),d.values&&(o[d.name]=d.values.map(vAt))}let s=[],a=[],l=Object.create(null);for(let d of e){let u=r,h=o;d.attributes&&(u=u.concat(d.attributes.map(m=>typeof m=="string"?n.find(v=>v.label==m)||{label:m,type:"property"}:(m.values&&(h==o&&(h=Object.create(h)),h[m.name]=m.values.map(vAt)),kAt(m)))));let g=new EBr(d,u,h);l[g.name]=g,s.push(g),d.top&&a.push(g)}a.length||(a=s);for(let d=0;d{var u;let{doc:h}=d.state,g=xBr(d.state,d.pos);if(!g||g.type=="tag"&&!d.explicit)return null;let{type:m,from:v,context:f}=g;if(m=="openTag"){let k=a,A=ZSe(h,f);if(A){let p=l[A];k=(p==null?void 0:p.children)||s}return{from:v,options:k.map(p=>p.completion),validFor:KSe}}else if(m=="closeTag"){let k=ZSe(h,f);return k?{from:v,to:d.pos+(h.sliceString(d.pos,d.pos+1)==">"?1:0),options:[((u=l[k])===null||u===void 0?void 0:u.closeNameCompletion)||{label:k+">",type:"type"}],validFor:KSe}:null}else if(m=="attrName"){let k=l[Due(h,f)];return{from:v,options:(k==null?void 0:k.attrs)||r,validFor:KSe}}else if(m=="attrValue"){let k=LBr(h,f,v);if(!k)return null;let A=l[Due(h,f)],p=((A==null?void 0:A.attrValues)||o)[k];return!p||!p.length?null:{from:v,to:d.pos+(h.sliceString(d.pos,d.pos+1)=='"'?1:0),options:p,validFor:/^"[^"]*"?$/}}else if(m=="tag"){let k=ZSe(h,f),A=l[k],p=[],b=f&&f.lastChild;k&&(!b||b.name!="CloseTag"||Due(h,b)!=k)&&p.push(A?A.closeCompletion:{label:"",type:"type",boost:2});let w=p.concat(((A==null?void 0:A.children)||(f?s:a)).map(O=>O.openCompletion));if(f&&(A!=null&&A.text.length)){let O=f.firstChild;O.to>d.pos-20&&!/\S/.test(d.state.sliceDoc(O.to,d.pos))&&(w=w.concat(A.text))}return{from:v,options:w,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const Kge=Vd.define({name:"xml",parser:SBr.configure({props:[Vu.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),kh.add({Element(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:n.name=="CloseTag"?n.from:e.to}}}),xqe.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3C!--",close:"-->"}},indentOnInput:/^\s*<\/$/}});function TBr(e={}){let t=[Kge.data.of({autocomplete:YLn(e.elements||[],e.attributes||[])})];return e.autoCloseTags!==!1&&t.push(ZLn),new wd(Kge,t)}function AAt(e,t,n=e.length){if(!t)return"";let r=t.firstChild,o=r&&r.getChild("TagName");return o?e.sliceString(o.from,Math.min(o.to,n)):""}const ZLn=er.inputHandler.of((e,t,n,r,o)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!Kge.isActiveAt(e.state,t,-1))return!1;let s=o(),{state:a}=s,l=a.changeByRange(d=>{var u,h,g;let{head:m}=d,v=a.doc.sliceString(m-1,m)==r,f=tc(a).resolveInner(m,-1),k;if(v&&r==">"&&f.name=="EndTag"){let A=f.parent;if(((h=(u=A.parent)===null||u===void 0?void 0:u.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(k=AAt(a.doc,A.parent,m))){let p=m+(a.doc.sliceString(m,m+1)===">"?1:0),b=``;return{range:d,changes:{from:m,to:p,insert:b}}}}else if(v&&r=="/"&&f.name=="StartCloseTag"){let A=f.parent;if(f.from==m-2&&((g=A.lastChild)===null||g===void 0?void 0:g.name)!="CloseTag"&&(k=AAt(a.doc,A,m))){let p=m+(a.doc.sliceString(m,m+1)===">"?1:0),b=`${k}>`;return{range:Ln.cursor(m+b.length,-1),changes:{from:m,to:p,insert:b}}}}return{range:d}});return l.changes.empty?!1:(e.dispatch([s,a.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),QBr=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:ZLn,completeFromSchema:YLn,xml:TBr,xmlLanguage:Kge},Symbol.toStringTag,{value:"Module"})),SF=63,pAt=64,DBr=1,BBr=2,qLn=3,RBr=4,KLn=5,IBr=6,MBr=7,JLn=65,PBr=66,FBr=8,NBr=9,UBr=10,jBr=11,WBr=12,exn=13,VBr=19,zBr=20,HBr=29,$Br=33,XBr=34,GBr=47,YBr=0,xKe=1,rFe=2,QK=3,oFe=4;let vT=class{constructor(t,n,r){this.parent=t,this.depth=n,this.type=r,this.hash=(t?t.hash+t.hash<<8:0)+n+(n<<4)+r}};vT.top=new vT(null,-1,YBr);function rZ(e,t){for(let n=0,r=t-e.pos-1;;r--,n++){let o=e.peek(r);if(S8(o)||o==-1)return n}}function sFe(e){return e==32||e==9}function S8(e){return e==10||e==13}function txn(e){return sFe(e)||S8(e)}function eQ(e){return e<0||txn(e)}const ZBr=new cI({start:vT.top,reduce(e,t){return e.type==QK&&(t==zBr||t==XBr)?e.parent:e},shift(e,t,n,r){if(t==qLn)return new vT(e,rZ(r,r.pos),xKe);if(t==JLn||t==KLn)return new vT(e,rZ(r,r.pos),rFe);if(t==SF)return e.parent;if(t==VBr||t==$Br)return new vT(e,0,QK);if(t==exn&&e.type==oFe)return e.parent;if(t==GBr){let o=/[1-9]/.exec(r.read(r.pos,n.pos));if(o)return new vT(e,e.depth+ +o[0],oFe)}return e},hash(e){return e.hash}});function UW(e,t,n=0){return e.peek(n)==t&&e.peek(n+1)==t&&e.peek(n+2)==t&&eQ(e.peek(n+3))}const qBr=new go((e,t)=>{if(e.next==-1&&t.canShift(pAt))return e.acceptToken(pAt);let n=e.peek(-1);if((S8(n)||n<0)&&t.context.type!=QK){if(UW(e,45))if(t.canShift(SF))e.acceptToken(SF);else return e.acceptToken(DBr,3);if(UW(e,46))if(t.canShift(SF))e.acceptToken(SF);else return e.acceptToken(BBr,3);let r=0;for(;e.next==32;)r++,e.advance();(r{if(t.context.type==QK){e.next==63&&(e.advance(),eQ(e.next)&&e.acceptToken(MBr));return}if(e.next==45)e.advance(),eQ(e.next)&&e.acceptToken(t.context.type==xKe&&t.context.depth==rZ(e,e.pos-1)?RBr:qLn);else if(e.next==63)e.advance(),eQ(e.next)&&e.acceptToken(t.context.type==rFe&&t.context.depth==rZ(e,e.pos-1)?IBr:KLn);else{let n=e.pos;for(;;)if(sFe(e.next)){if(e.pos==n)return;e.advance()}else if(e.next==33)nxn(e);else if(e.next==38)aFe(e);else if(e.next==42){aFe(e);break}else if(e.next==39||e.next==34){if(EKe(e,!0))break;return}else if(e.next==91||e.next==123){if(!eRr(e))return;break}else{ixn(e,!0,!1,0);break}for(;sFe(e.next);)e.advance();if(e.next==58){if(e.pos==n&&t.canShift(HBr))return;let r=e.peek(1);eQ(r)&&e.acceptTokenTo(t.context.type==rFe&&t.context.depth==rZ(e,n)?PBr:JLn,n)}}},{contextual:!0});function JBr(e){return e>32&&e<127&&e!=34&&e!=37&&e!=44&&e!=60&&e!=62&&e!=92&&e!=94&&e!=96&&e!=123&&e!=124&&e!=125}function bAt(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function wAt(e,t){return e.next==37?(e.advance(),bAt(e.next)&&e.advance(),bAt(e.next)&&e.advance(),!0):JBr(e.next)||t&&e.next==44?(e.advance(),!0):!1}function nxn(e){if(e.advance(),e.next==60){for(e.advance();;)if(!wAt(e,!0)){e.next==62&&e.advance();break}}else for(;wAt(e,!1););}function aFe(e){for(e.advance();!eQ(e.next)&&Jge(e.next)!="f";)e.advance()}function EKe(e,t){let n=e.next,r=!1,o=e.pos;for(e.advance();;){let s=e.next;if(s<0)break;if(e.advance(),s==n)if(s==39)if(e.next==39)e.advance();else break;else break;else if(s==92&&n==34)e.next>=0&&e.advance();else if(S8(s)){if(t)return!1;r=!0}else if(t&&e.pos>=o+1024)return!1}return!r}function eRr(e){for(let t=[],n=e.pos+1024;;)if(e.next==91||e.next==123)t.push(e.next),e.advance();else if(e.next==39||e.next==34){if(!EKe(e,!0))return!1}else if(e.next==93||e.next==125){if(t[t.length-1]!=e.next-2)return!1;if(t.pop(),e.advance(),!t.length)return!0}else{if(e.next<0||e.pos>n||S8(e.next))return!1;e.advance()}}const tRr="iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif";function Jge(e){return e<33?"u":e>125?"s":tRr[e-33]}function JSe(e,t){let n=Jge(e);return n!="u"&&!(t&&n=="f")}function ixn(e,t,n,r){if(Jge(e.next)=="s"||(e.next==63||e.next==58||e.next==45)&&JSe(e.peek(1),n))e.advance();else return!1;let o=e.pos;for(;;){let s=e.next,a=0,l=r+1;for(;txn(s);){if(S8(s)){if(t)return!1;l=0}else l++;s=e.peek(++a)}if(!(s>=0&&(s==58?JSe(e.peek(a+1),n):s==35?e.peek(a-1)!=32:JSe(s,n)))||!n&&l<=r||l==0&&!n&&(UW(e,45,a)||UW(e,46,a)))break;if(t&&Jge(s)=="f")return!1;for(let u=a;u>=0;u--)e.advance();if(t&&e.pos>o+1024)return!1}return!0}const nRr=new go((e,t)=>{if(e.next==33)nxn(e),e.acceptToken(WBr);else if(e.next==38||e.next==42){let n=e.next==38?UBr:jBr;aFe(e),e.acceptToken(n)}else e.next==39||e.next==34?(EKe(e,!1),e.acceptToken(NBr)):ixn(e,!1,t.context.type==QK,t.context.depth)&&e.acceptToken(FBr)}),iRr=new go((e,t)=>{let n=t.context.type==oFe?t.context.depth:-1,r=e.pos;e:for(;;){let o=0,s=e.next;for(;s==32;)s=e.peek(++o);if(!o&&(UW(e,45,o)||UW(e,46,o))||!S8(s)&&(n<0&&(n=Math.max(t.context.depth+1,o)),oYAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:"⚠ DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document",maxTerm:74,context:ZBr,nodeProps:[["isolate",-3,8,9,14,""],["openedBy",18,"[",32,"{"],["closedBy",19,"]",33,"}"]],propSources:[rRr],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[qBr,KBr,nRr,iRr,0,1],topRules:{Stream:[0,15]},tokenPrec:0}),sRr=zd.deserialize({version:14,states:"!vOQOPOOO]OPO'#C_OhOPO'#C^OOOO'#Cc'#CcOpOPO'#CaQOOOOOO{OPOOOOOO'#Cb'#CbO!WOPO'#C`O!`OPO,58xOOOO-E6a-E6aOOOO-E6`-E6`OOOO'#C_'#C_OOOO1G.d1G.d",stateData:"!h~OXPOYROWTP~OWVXXRXYRX~OYVOXSP~OXROYROWTX~OXROYROWTP~OYVOXSX~OX[O~OXY~",goto:"vWPPX[beioRUOQQOR]XRXQTTOUQWQRZWSSOURYS",nodeNames:"⚠ Document Frontmatter DashLine FrontmatterContent Body",maxTerm:10,skippedNodes:[0],repeatNodeCount:2,tokenData:"$z~RXOYnYZ!^Z]n]^!^^}n}!O!i!O;'Sn;'S;=`!c<%lOn~qXOYnYZ!^Z]n]^!^^;'Sn;'S;=`!c<%l~n~On~~!^~!cOY~~!fP;=`<%ln~!lZOYnYZ!^Z]n]^!^^}n}!O#_!O;'Sn;'S;=`!c<%l~n~On~~!^~#bZOYnYZ!^Z]n]^!^^}n}!O$T!O;'Sn;'S;=`!c<%l~n~On~~!^~$WXOYnYZ$sZ]n]^$s^;'Sn;'S;=`!c<%l~n~On~~$s~$zOX~Y~",tokenizers:[0],topRules:{Document:[0,1]},tokenPrec:67}),TKe=Vd.define({name:"yaml",parser:oRr.configure({props:[Vu.add({Stream:e=>{for(let t=e.node.resolve(e.pos,-1);t&&t.to>=e.pos;t=t.parent){if(t.name=="BlockLiteralContent"&&t.frome.pos)return null}}return null},FlowMapping:Xv({closing:"}"}),FlowSequence:Xv({closing:"]"})}),kh.add({"FlowMapping FlowSequence":bA,"Item Pair BlockLiteral":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*[\]\}]$/}});function aRr(){return new wd(TKe)}const lRr=Vd.define({name:"yaml-frontmatter",parser:sRr.configure({props:[Xd({DashLine:ve.meta})]})});function cRr(e){let{language:t,support:n}=e.content instanceof wd?e.content:{language:e.content,support:[]};return new wd(lRr.configure({wrap:Ap(r=>r.name=="FrontmatterContent"?{parser:TKe.parser}:r.name=="Body"?{parser:t.parser}:null)}),n)}const dRr=Object.freeze(Object.defineProperty({__proto__:null,yaml:aRr,yamlFrontmatter:cRr,yamlLanguage:TKe},Symbol.toStringTag,{value:"Module"}));var uRr={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]},hRr=/[\.\/⌿⍀¨⍣]/,fRr=/⍬/,gRr=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,mRr=/←/,kRr=/[⍝#].*$/,vRr=function(e){var t;return t=!1,function(n){return t=n,n===e?t==="\\":!0}};const ARr={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(e,t){var n;return e.eatSpace()?null:(n=e.next(),n==='"'||n==="'"?(e.eatWhile(vRr(n)),e.next(),t.prev=!0,"string"):/[\[{\(]/.test(n)?(t.prev=!1,null):/[\]}\)]/.test(n)?(t.prev=!0,null):fRr.test(n)?(t.prev=!1,"atom"):/[¯\d]/.test(n)?(t.func?(t.func=!1,t.prev=!1):t.prev=!0,e.eatWhile(/[\w\.]/),"number"):hRr.test(n)||mRr.test(n)?"operator":gRr.test(n)?(t.func=!0,t.prev=!1,uRr[n]?"variableName.function.standard":"variableName.function"):kRr.test(n)?(e.skipToEnd(),"comment"):n==="∘"&&e.peek()==="."?(e.next(),"variableName.function"):(e.eatWhile(/[\w\$_]/),t.prev=!0,"keyword"))}},pRr=Object.freeze(Object.defineProperty({__proto__:null,apl:ARr},Symbol.toStringTag,{value:"Module"}));function e8e(e){var t=e.match(/^\s*\S/);return e.skipToEnd(),t?"error":null}const bRr={name:"asciiarmor",token:function(e,t){var n;if(t.state=="top")return e.sol()&&(n=e.match(/^-----BEGIN (.*)?-----\s*$/))?(t.state="headers",t.type=n[1],"tag"):e8e(e);if(t.state=="headers"){if(e.sol()&&e.match(/^\w+:/))return t.state="header","atom";var r=e8e(e);return r&&(t.state="body"),r}else{if(t.state=="header")return e.skipToEnd(),t.state="headers","string";if(t.state=="body")return e.sol()&&(n=e.match(/^-----END (.*)?-----\s*$/))?n[1]!=t.type?"error":(t.state="end","tag"):e.eatWhile(/[A-Za-z0-9+\/=]/)?null:(e.next(),"error");if(t.state=="end")return e8e(e)}},blankLine:function(e){e.state=="headers"&&(e.state="body")},startState:function(){return{state:"top",type:null}}},wRr=Object.freeze(Object.defineProperty({__proto__:null,asciiArmor:bRr},Symbol.toStringTag,{value:"Module"}));function ux(e){for(var t={},n=e.split(" "),r=0;r?$/.test(n)?(t.extenExten=!0,t.extenStart=!1,"strong"):(t.extenStart=!1,e.skipToEnd(),"error");if(t.extenExten)return t.extenExten=!1,t.extenPriority=!0,e.eatWhile(/[^,]/),t.extenInclude&&(e.skipToEnd(),t.extenPriority=!1,t.extenInclude=!1),t.extenSame&&(t.extenPriority=!1,t.extenSame=!1,t.extenApplication=!0),"tag";if(t.extenPriority)return t.extenPriority=!1,t.extenApplication=!0,e.next(),t.extenSame?null:(e.eatWhile(/[^,]/),"number");if(t.extenApplication){if(e.eatWhile(/,/),n=e.current(),n===",")return null;if(e.eatWhile(/\w/),n=e.current().toLowerCase(),t.extenApplication=!1,SRr.indexOf(n)!==-1)return"def"}else return LRr(e,t);return null},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}},ERr=Object.freeze(Object.defineProperty({__proto__:null,asterisk:xRr},Symbol.toStringTag,{value:"Module"}));var TRr="><+-.,[]".split("");const QRr={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,t){if(e.eatSpace())return null;e.sol()&&(t.commentLine=!1);var n=e.next().toString();if(TRr.indexOf(n)!==-1){if(t.commentLine===!0)return e.eol()&&(t.commentLine=!1),"comment";if(n==="]"||n==="[")return n==="["?t.left++:t.right++,"bracket";if(n==="+"||n==="-")return"keyword";if(n==="<"||n===">")return"atom";if(n==="."||n===",")return"def"}else return t.commentLine=!0,e.eol()&&(t.commentLine=!1),"comment";e.eol()&&(t.commentLine=!1)}},DRr=Object.freeze(Object.defineProperty({__proto__:null,brainfuck:QRr},Symbol.toStringTag,{value:"Module"}));var BRr="builtin",RRr="comment",OAt="string",yAt="atom",IRr="number",MRr="keyword",PRr="header",FRr="def",NRr="link";function QKe(e){for(var t={},n=e.split(" "),r=0;r >= "),h4={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,symbol:/[\w*+\-]/};function URr(e,t){return e==="0"&&t.eat(/x/i)?(t.eatWhile(h4.hex),!0):((e=="+"||e=="-")&&h4.digit.test(t.peek())&&(t.eat(h4.sign),e=t.next()),h4.digit.test(e)?(t.eat(e),t.eatWhile(h4.digit),t.peek()=="."&&(t.eat("."),t.eatWhile(h4.digit)),t.eat(h4.exponent)&&(t.eat(h4.sign),t.eatWhile(h4.digit)),!0):!1)}const jRr={name:"cobol",startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(e,t){if(t.indentStack==null&&e.sol()&&(t.indentation=6),e.eatSpace())return null;var n=null;switch(t.mode){case"string":for(var r=!1;(r=e.next())!=null;)if((r=='"'||r=="'")&&!e.match(/['"]/,!1)){t.mode=!1;break}n=OAt;break;default:var o=e.next(),s=e.column();if(s>=0&&s<=5)n=FRr;else if(s>=72&&s<=79)e.skipToEnd(),n=PRr;else if(o=="*"&&s==6)e.skipToEnd(),n=RRr;else if(o=='"'||o=="'")t.mode="string",n=OAt;else if(o=="'"&&!h4.digit_or_colon.test(e.peek()))n=yAt;else if(o==".")n=NRr;else if(URr(o,e))n=IRr;else{if(e.current().match(h4.symbol))for(;s<71&&e.eat(h4.symbol)!==void 0;)s++;_At&&_At.propertyIsEnumerable(e.current().toUpperCase())?n=MRr:SAt&&SAt.propertyIsEnumerable(e.current().toUpperCase())?n=BRr:CAt&&CAt.propertyIsEnumerable(e.current().toUpperCase())?n=yAt:n=null}}return n},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent}},WRr=Object.freeze(Object.defineProperty({__proto__:null,cobol:jRr},Symbol.toStringTag,{value:"Module"}));function DKe(e,t,n,r,o,s){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=o,this.prev=s}function Bae(e,t,n,r){var o=e.indented;return e.context&&e.context.type=="statement"&&n!="statement"&&(o=e.context.indented),e.context=new DKe(o,t,n,r,null,e.context)}function $$(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}function LAt(e,t,n){if(t.prevToken=="variable"||t.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||t.typeAtEndOfLine&&e.column()==e.indentation())return!0}function t8e(e){for(;;){if(!e||e.type=="top")return!0;if(e.type=="}"&&e.prev.info!="namespace")return!1;e=e.prev}}function O2(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,r=e.keywords||{},o=e.types||{},s=e.builtin||{},a=e.blockKeywords||{},l=e.defKeywords||{},d=e.atoms||{},u=e.hooks||{},h=e.multiLineStrings,g=e.indentStatements!==!1,m=e.indentSwitch!==!1,v=e.namespaceSeparator,f=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,k=e.numberStart||/[\d\.]/,A=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,p=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,b=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,w=e.isReservedIdentifier||!1,O,y;function C(E,T){var D=E.next();if(u[D]){var P=u[D](E,T);if(P!==!1)return P}if(D=='"'||D=="'")return T.tokenize=_(D),T.tokenize(E,T);if(k.test(D)){if(E.backUp(1),E.match(A))return"number";E.next()}if(f.test(D))return O=D,null;if(D=="/"){if(E.eat("*"))return T.tokenize=S,S(E,T);if(E.eat("/"))return E.skipToEnd(),"comment"}if(p.test(D)){for(;!E.match(/^\/[\/*]/,!1)&&E.eat(p););return"operator"}if(E.eatWhile(b),v)for(;E.match(v);)E.eatWhile(b);var Q=E.current();return M_(r,Q)?(M_(a,Q)&&(O="newstatement"),M_(l,Q)&&(y=!0),"keyword"):M_(o,Q)?"type":M_(s,Q)||w&&w(Q)?(M_(a,Q)&&(O="newstatement"),"builtin"):M_(d,Q)?"atom":"variable"}function _(E){return function(T,D){for(var P=!1,Q,M=!1;(Q=T.next())!=null;){if(Q==E&&!P){M=!0;break}P=!P&&Q=="\\"}return(M||!(P||h))&&(D.tokenize=null),"string"}}function S(E,T){for(var D=!1,P;P=E.next();){if(P=="/"&&D){T.tokenize=null;break}D=P=="*"}return"comment"}function L(E,T){e.typeFirstDefinitions&&E.eol()&&t8e(T.context)&&(T.typeAtEndOfLine=LAt(E,T,E.pos))}return{name:e.name,startState:function(E){return{tokenize:null,context:new DKe(-E,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(E,T){var D=T.context;if(E.sol()&&(D.align==null&&(D.align=!1),T.indented=E.indentation(),T.startOfLine=!0),E.eatSpace())return L(E,T),null;O=y=null;var P=(T.tokenize||C)(E,T);if(P=="comment"||P=="meta")return P;if(D.align==null&&(D.align=!0),O==";"||O==":"||O==","&&E.match(/^\s*(?:\/\/.*)?$/,!1))for(;T.context.type=="statement";)$$(T);else if(O=="{")Bae(T,E.column(),"}");else if(O=="[")Bae(T,E.column(),"]");else if(O=="(")Bae(T,E.column(),")");else if(O=="}"){for(;D.type=="statement";)D=$$(T);for(D.type=="}"&&(D=$$(T));D.type=="statement";)D=$$(T)}else O==D.type?$$(T):g&&((D.type=="}"||D.type=="top")&&O!=";"||D.type=="statement"&&O=="newstatement")&&Bae(T,E.column(),"statement",E.current());if(P=="variable"&&(T.prevToken=="def"||e.typeFirstDefinitions&&LAt(E,T,E.start)&&t8e(T.context)&&E.match(/^\s*\(/,!1))&&(P="def"),u.token){var Q=u.token(E,T,P);Q!==void 0&&(P=Q)}return P=="def"&&e.styleDefs===!1&&(P="variable"),T.startOfLine=!1,T.prevToken=y?"def":P||O,L(E,T),P},indent:function(E,T,D){if(E.tokenize!=C&&E.tokenize!=null||E.typeAtEndOfLine&&t8e(E.context))return null;var P=E.context,Q=T&&T.charAt(0),M=Q==P.type;if(P.type=="statement"&&Q=="}"&&(P=P.prev),e.dontIndentStatements)for(;P.type=="statement"&&e.dontIndentStatements.test(P.info);)P=P.prev;if(u.indent){var B=u.indent(E,P,T,D.unit);if(typeof B=="number")return B}var R=P.prev&&P.prev.info=="switch";if(e.allmanIndentation&&/[{(]/.test(Q)){for(;P.type!="top"&&P.type!="}";)P=P.prev;return P.indented}return P.type=="statement"?P.indented+(Q=="{"?0:t||D.unit):P.align&&(!n||P.type!=")")?P.column+(M?0:1):P.type==")"&&!M?P.indented+(t||D.unit):P.indented+(M?0:D.unit)+(!M&&R&&!/^(?:case|default)\b/.test(T)?D.unit:0)},languageData:{indentOnInput:m?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(r).concat(Object.keys(o)).concat(Object.keys(s)).concat(Object.keys(d)),...e.languageData}}}function Qr(e){for(var t={},n=e.split(" "),r=0;r!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return e.match('""')?(t.tokenize=cxn,t.tokenize(e,t)):!1},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(e,t){var n=t.context;return n.type=="}"&&n.align&&e.eat(">")?(t.context=new DKe(n.indented,n.column,n.type,n.info,null,n.prev),"operator"):!1},"/":function(e,t){return e.eat("*")?(t.tokenize=DK(1),t.tokenize(e,t)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function ZRr(e){return function(t,n){for(var r=!1,o,s=!1;!t.eol();){if(!e&&!r&&t.match('"')){s=!0;break}if(e&&t.match('"""')){s=!0;break}o=t.next(),!r&&o=="$"&&t.match("{")&&t.skipTo("}"),r=!r&&o=="\\"&&!e}return(s||!e)&&(n.tokenize=null),"string"}}const qRr=O2({name:"kotlin",keywords:Qr("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:Qr("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(ul?|l|f)?/i,blockKeywords:Qr("catch class do else finally for if where try while enum"),defKeywords:Qr("class val var object interface fun"),atoms:Qr("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return t.prevToken=="."?"variable":"operator"},'"':function(e,t){return t.tokenize=ZRr(e.match('""')),t.tokenize(e,t)},"/":function(e,t){return e.eat("*")?(t.tokenize=DK(1),t.tokenize(e,t)):!1},indent:function(e,t,n,r){var o=n&&n.charAt(0);if((e.prevToken=="}"||e.prevToken==")")&&n=="")return e.indented;if(e.prevToken=="operator"&&n!="}"&&e.context.type!="}"||e.prevToken=="variable"&&o=="."||(e.prevToken=="}"||e.prevToken==")")&&o==".")return r*2+t.indented;if(t.align&&t.type=="}")return t.indented+(e.context.type==(n||"").charAt(0)?0:r)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),KRr=O2({name:"shader",keywords:Qr("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:Qr("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:Qr("for while do if else struct"),builtin:Qr("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:Qr("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":nE}}),JRr=O2({name:"nesc",keywords:Qr(oie+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:sie,blockKeywords:Qr(aie),atoms:Qr("null true false"),hooks:{"#":nE}}),eIr=O2({name:"objectivec",keywords:Qr(oie+" "+oxn),types:axn,builtin:Qr(sxn),blockKeywords:Qr(aie+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:Qr(Dpe+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:Qr("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Rpe,hooks:{"#":nE,"*":Bpe}}),tIr=O2({name:"objectivecpp",keywords:Qr(oie+" "+oxn+" "+rxn),types:axn,builtin:Qr(sxn),blockKeywords:Qr(aie+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:Qr(Dpe+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:Qr("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Rpe,hooks:{"#":nE,"*":Bpe,u:o9,U:o9,L:o9,R:o9,0:Rh,1:Rh,2:Rh,3:Rh,4:Rh,5:Rh,6:Rh,7:Rh,8:Rh,9:Rh,token:function(e,t,n){if(n=="variable"&&e.peek()=="("&&(t.prevToken==";"||t.prevToken==null||t.prevToken=="}")&&lxn(e.current()))return"def"}},namespaceSeparator:"::"}),nIr=O2({name:"squirrel",keywords:Qr("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:sie,blockKeywords:Qr("case catch class else for foreach if switch try while"),defKeywords:Qr("function local class"),typeFirstDefinitions:!0,atoms:Qr("true false null"),hooks:{"#":nE}});var Bue=null;function dxn(e){return function(t,n){for(var r=!1,o,s=!1;!t.eol();){if(!r&&t.match('"')&&(e=="single"||t.match('""'))){s=!0;break}if(!r&&t.match("``")){Bue=dxn(e),s=!0;break}o=t.next(),r=e=="single"&&!r&&o=="\\"}return s&&(n.tokenize=null),"string"}}const iIr=O2({name:"ceylon",keywords:Qr("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:Qr("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:Qr("class dynamic function interface module object package value"),builtin:Qr("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:Qr("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=dxn(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!Bue||!e.match("`")?!1:(t.tokenize=Bue,Bue=null,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(e,t,n){if((n=="variable"||n=="type")&&t.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function rIr(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function uxn(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function oIr(e){return e.interpolationStack?e.interpolationStack.length:0}function n8e(e,t,n,r){var o=!1;if(t.eat(e))if(t.eat(e))o=!0;else return"string";function s(a,l){for(var d=!1;!a.eol();){if(!r&&!d&&a.peek()=="$")return rIr(l),l.tokenize=sIr,"string";var u=a.next();if(u==e&&!d&&(!o||a.match(e+e))){l.tokenize=null;break}d=!r&&!d&&u=="\\"}return"string"}return n.tokenize=s,s(t,n)}function sIr(e,t){return e.eat("$"),e.eat("{")?t.tokenize=null:t.tokenize=aIr,null}function aIr(e,t){return e.eatWhile(/[\w_]/),t.tokenize=uxn(t),"variable"}const lIr=O2({name:"dart",keywords:Qr("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:Qr("try catch finally do else for if switch while"),builtin:Qr("void bool num int double dynamic var String Null Never"),atoms:Qr("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(e){return e.eatWhile(/[\w\$_\.]/),"meta"},"'":function(e,t){return n8e("'",e,t,!1)},'"':function(e,t){return n8e('"',e,t,!1)},r:function(e,t){var n=e.peek();return n=="'"||n=='"'?n8e(e.next(),e,t,!0):!1},"}":function(e,t){return oIr(t)>0?(t.tokenize=uxn(t),null):!1},"/":function(e,t){return e.eat("*")?(t.tokenize=DK(1),t.tokenize(e,t)):!1},token:function(e,t,n){if(n=="variable"){var r=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(r.test(e.current()))return"type"}}}}),l7=Object.freeze(Object.defineProperty({__proto__:null,c:HRr,ceylon:iIr,clike:O2,cpp:$Rr,csharp:GRr,dart:lIr,java:XRr,kotlin:qRr,nesC:JRr,objectiveC:eIr,objectiveCpp:tIr,scala:YRr,shader:KRr,squirrel:nIr},Symbol.toStringTag,{value:"Module"}));var hxn=["false","nil","true"],fxn=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],gxn=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],cIr=["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"],dIr=Ipe(hxn),uIr=Ipe(fxn),hIr=Ipe(gxn),fIr=Ipe(cIr),gIr=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,mIr=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,kIr=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,vIr=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function BKe(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(mIr))return[null,"number"];if(e.match(kIr))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=AIr)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(vIr),r=n&&n[0];return r?r==="comment"&&t.lastToken==="("?(t.tokenize=pIr)(e,t):TG(r,dIr)||r.charAt(0)===":"?["symbol","atom"]:TG(r,uIr)||TG(r,hIr)?["symbol","keyword"]:t.lastToken==="("?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile(function(o){return!TG(o,gIr)}),[null,"error"])}function AIr(e,t){for(var n=!1,r;r=e.next();){if(r==='"'&&!n){t.tokenize=BKe;break}n=!n&&r==="\\"}return[null,"string"]}function pIr(e,t){for(var n=1,r;r=e.next();)if(r===")"&&n--,r==="("&&n++,n===0){e.backUp(1),t.tokenize=BKe;break}return["space","comment"]}function Ipe(e){for(var t={},n=0;n*\/]/.test(B)?w(null,"select-op"):B=="."&&Q.match(/^-?[_a-z][_a-z0-9-]*/i)?w("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(B)?w(null,B):Q.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(Q.current())&&(M.tokenize=C),w("variableName.function","variable")):/[\w\\\-]/.test(B)?(Q.eatWhile(/[\w\\\-]/),w("property","word")):w(null,null)}function y(Q){return function(M,B){for(var R=!1,I;(I=M.next())!=null;){if(I==Q&&!R){Q==")"&&M.backUp(1);break}R=!R&&I=="\\"}return(I==Q||!R&&Q!=")")&&(B.tokenize=null),w("string","string")}}function C(Q,M){return Q.next(),Q.match(/^\s*[\"\')]/,!1)?M.tokenize=null:M.tokenize=y(")"),w(null,"(")}function _(Q,M,B){this.type=Q,this.indent=M,this.prev=B}function S(Q,M,B,R){return Q.context=new _(B,M.indentation()+(R===!1?0:M.indentUnit),Q.context),B}function L(Q){return Q.context.prev&&(Q.context=Q.context.prev),Q.context.type}function E(Q,M,B){return P[B.context.type](Q,M,B)}function T(Q,M,B,R){for(var I=R||1;I>0;I--)B.context=B.context.prev;return E(Q,M,B)}function D(Q){var M=Q.current().toLowerCase();m.hasOwnProperty(M)?b="atom":g.hasOwnProperty(M)?b="keyword":b="variable"}var P={};return P.top=function(Q,M,B){if(Q=="{")return S(B,M,"block");if(Q=="}"&&B.context.prev)return L(B);if(k&&/@component/i.test(Q))return S(B,M,"atComponentBlock");if(/^@(-moz-)?document$/i.test(Q))return S(B,M,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(Q))return S(B,M,"atBlock");if(/^@(font-face|counter-style)/i.test(Q))return B.stateArg=Q,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(Q))return"keyframes";if(Q&&Q.charAt(0)=="@")return S(B,M,"at");if(Q=="hash")b="builtin";else if(Q=="word")b="tag";else{if(Q=="variable-definition")return"maybeprop";if(Q=="interpolation")return S(B,M,"interpolation");if(Q==":")return"pseudo";if(v&&Q=="(")return S(B,M,"parens")}return B.context.type},P.block=function(Q,M,B){if(Q=="word"){var R=M.current().toLowerCase();return l.hasOwnProperty(R)?(b="property","maybeprop"):d.hasOwnProperty(R)?(b=A?"string.special":"property","maybeprop"):v?(b=M.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(b="error","maybeprop")}else return Q=="meta"?"block":!v&&(Q=="hash"||Q=="qualifier")?(b="error","block"):P.top(Q,M,B)},P.maybeprop=function(Q,M,B){return Q==":"?S(B,M,"prop"):E(Q,M,B)},P.prop=function(Q,M,B){if(Q==";")return L(B);if(Q=="{"&&v)return S(B,M,"propBlock");if(Q=="}"||Q=="{")return T(Q,M,B);if(Q=="(")return S(B,M,"parens");if(Q=="hash"&&!/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(M.current()))b="error";else if(Q=="word")D(M);else if(Q=="interpolation")return S(B,M,"interpolation");return"prop"},P.propBlock=function(Q,M,B){return Q=="}"?L(B):Q=="word"?(b="property","maybeprop"):B.context.type},P.parens=function(Q,M,B){return Q=="{"||Q=="}"?T(Q,M,B):Q==")"?L(B):Q=="("?S(B,M,"parens"):Q=="interpolation"?S(B,M,"interpolation"):(Q=="word"&&D(M),"parens")},P.pseudo=function(Q,M,B){return Q=="meta"?"pseudo":Q=="word"?(b="variableName.constant",B.context.type):E(Q,M,B)},P.documentTypes=function(Q,M,B){return Q=="word"&&r.hasOwnProperty(M.current())?(b="tag",B.context.type):P.atBlock(Q,M,B)},P.atBlock=function(Q,M,B){if(Q=="(")return S(B,M,"atBlock_parens");if(Q=="}"||Q==";")return T(Q,M,B);if(Q=="{")return L(B)&&S(B,M,v?"block":"top");if(Q=="interpolation")return S(B,M,"interpolation");if(Q=="word"){var R=M.current().toLowerCase();R=="only"||R=="not"||R=="and"||R=="or"?b="keyword":o.hasOwnProperty(R)?b="attribute":s.hasOwnProperty(R)?b="property":a.hasOwnProperty(R)?b="keyword":l.hasOwnProperty(R)?b="property":d.hasOwnProperty(R)?b=A?"string.special":"property":m.hasOwnProperty(R)?b="atom":g.hasOwnProperty(R)?b="keyword":b="error"}return B.context.type},P.atComponentBlock=function(Q,M,B){return Q=="}"?T(Q,M,B):Q=="{"?L(B)&&S(B,M,v?"block":"top",!1):(Q=="word"&&(b="error"),B.context.type)},P.atBlock_parens=function(Q,M,B){return Q==")"?L(B):Q=="{"||Q=="}"?T(Q,M,B,2):P.atBlock(Q,M,B)},P.restricted_atBlock_before=function(Q,M,B){return Q=="{"?S(B,M,"restricted_atBlock"):Q=="word"&&B.stateArg=="@counter-style"?(b="variable","restricted_atBlock_before"):E(Q,M,B)},P.restricted_atBlock=function(Q,M,B){return Q=="}"?(B.stateArg=null,L(B)):Q=="word"?(B.stateArg=="@font-face"&&!u.hasOwnProperty(M.current().toLowerCase())||B.stateArg=="@counter-style"&&!h.hasOwnProperty(M.current().toLowerCase())?b="error":b="property","maybeprop"):"restricted_atBlock"},P.keyframes=function(Q,M,B){return Q=="word"?(b="variable","keyframes"):Q=="{"?S(B,M,"top"):E(Q,M,B)},P.at=function(Q,M,B){return Q==";"?L(B):Q=="{"||Q=="}"?T(Q,M,B):(Q=="word"?b="tag":Q=="hash"&&(b="builtin"),"at")},P.interpolation=function(Q,M,B){return Q=="}"?L(B):Q=="{"||Q==";"?T(Q,M,B):(Q=="word"?b="variable":Q!="variable"&&Q!="("&&Q!=")"&&(b="error"),"interpolation")},{name:e.name,startState:function(){return{tokenize:null,state:t?"block":"top",stateArg:null,context:new _(t?"block":"top",0,null)}},token:function(Q,M){if(!M.tokenize&&Q.eatSpace())return null;var B=(M.tokenize||O)(Q,M);return B&&typeof B=="object"&&(p=B[1],B=B[0]),b=B,p!="comment"&&(M.state=P[M.state](p,Q,M)),b},indent:function(Q,M,B){var R=Q.context,I=M&&M.charAt(0),F=R.indent;return R.type=="prop"&&(I=="}"||I==")")&&(R=R.prev),R.prev&&(I=="}"&&(R.type=="block"||R.type=="top"||R.type=="interpolation"||R.type=="restricted_atBlock")?(R=R.prev,F=R.indent):(I==")"&&(R.type=="parens"||R.type=="atBlock_parens")||I=="{"&&(R.type=="at"||R.type=="atBlock"))&&(F=Math.max(0,R.indent-B.unit))),F},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:f,block:{open:"/*",close:"*/"}},autocomplete:yxn}}}function Zy(e){for(var t={},n=0;n|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,RIr=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,QAt=/^[_A-Za-z$][_A-Za-z$0-9]*/,IIr=/^@[_A-Za-z$][_A-Za-z$0-9]*/,MIr=Vpe(["and","or","not","is","isnt","in","instanceof","typeof"]),eme=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],PIr=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],FIr=Vpe(eme.concat(PIr));eme=Vpe(eme);var NIr=/^('{3}|\"{3}|['\"])/,UIr=/^(\/{3}|\/)/,jIr=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],WIr=Vpe(jIr);function BK(e,t){if(e.sol()){t.scope.align===null&&(t.scope.align=!1);var n=t.scope.offset;if(e.eatSpace()){var r=e.indentation();return r>n&&t.scope.type=="coffee"?"indent":r0&&lFe(e,t)}if(e.eatSpace())return null;var o=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return t.tokenize=VIr,t.tokenize(e,t);if(o==="#")return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var s=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(s=!0),e.match(/^-?\d+\.\d*/)&&(s=!0),e.match(/^-?\.\d+/)&&(s=!0),s)return e.peek()=="."&&e.backUp(1),"number";var a=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(a=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(a=!0),e.match(/^-?0(?![\dx])/i)&&(a=!0),a)return"number"}if(e.match(NIr))return t.tokenize=DAt(e.current(),!1,"string"),t.tokenize(e,t);if(e.match(UIr)){if(e.current()!="/"||e.match(/^.*\//,!1))return t.tokenize=DAt(e.current(),!0,"string.special"),t.tokenize(e,t);e.backUp(1)}return e.match(BIr)||e.match(MIr)?"operator":e.match(RIr)?"punctuation":e.match(WIr)?"atom":e.match(IIr)||t.prop&&e.match(QAt)?"property":e.match(FIr)?"keyword":e.match(QAt)?"variable":(e.next(),Cxn)}function DAt(e,t,n){return function(r,o){for(;!r.eol();)if(r.eatWhile(/[^'"\/\\]/),r.eat("\\")){if(r.next(),t&&r.eol())return n}else{if(r.match(e))return o.tokenize=BK,n;r.eat(/['"\/]/)}return t&&(o.tokenize=BK),n}}function VIr(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=BK;break}e.eatWhile("#")}return"comment"}function r8e(e,t,n="coffee"){for(var r=0,o=!1,s=null,a=t.scope;a;a=a.prev)if(a.type==="coffee"||a.type=="}"){r=a.offset+e.indentUnit;break}n!=="coffee"?(o=null,s=e.column()+e.current().length):t.scope.align&&(t.scope.align=!1),t.scope={offset:r,type:n,prev:t.scope,align:o,alignOffset:s}}function lFe(e,t){if(t.scope.prev)if(t.scope.type==="coffee"){for(var n=e.indentation(),r=!1,o=t.scope;o;o=o.prev)if(n===o.offset){r=!0;break}if(!r)return!0;for(;t.scope.prev&&t.scope.offset!==n;)t.scope=t.scope.prev;return!1}else return t.scope=t.scope.prev,!1}function zIr(e,t){var n=t.tokenize(e,t),r=e.current();r==="return"&&(t.dedent=!0),((r==="->"||r==="=>")&&e.eol()||n==="indent")&&r8e(e,t);var o="[({".indexOf(r);if(o!==-1&&r8e(e,t,"])}".slice(o,o+1)),eme.exec(r)&&r8e(e,t),r=="then"&&lFe(e,t),n==="dedent"&&lFe(e,t))return Cxn;if(o="])}".indexOf(r),o!==-1){for(;t.scope.type=="coffee"&&t.scope.prev;)t.scope=t.scope.prev;t.scope.type==r&&(t.scope=t.scope.prev)}return t.dedent&&e.eol()&&(t.scope.type=="coffee"&&t.scope.prev&&(t.scope=t.scope.prev),t.dedent=!1),n=="indent"||n=="dedent"?null:n}const HIr={name:"coffeescript",startState:function(){return{tokenize:BK,scope:{offset:0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(e,t){var n=t.scope.align===null&&t.scope;n&&e.sol()&&(n.align=!1);var r=zIr(e,t);return r&&r!="comment"&&(n&&(n.align=!0),t.prop=r=="punctuation"&&e.current()=="."),r},indent:function(e,t){if(e.tokenize!=BK)return 0;var n=e.scope,r=t&&"])}".indexOf(t.charAt(0))>-1;if(r)for(;n.type=="coffee"&&n.prev;)n=n.prev;var o=r&&n.type===t.charAt(0);return n.align?n.alignOffset-(o?1:0):(o?n.prev:n).offset},languageData:{commentTokens:{line:"#"}}},$Ir=Object.freeze(Object.defineProperty({__proto__:null,coffeeScript:HIr},Symbol.toStringTag,{value:"Module"}));var XIr=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/,_xn=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/,GIr=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/,YIr=/[^\s'`,@()\[\]";]/,_v;function o8e(e){for(var t;t=e.next();)if(t=="\\")e.next();else if(!YIr.test(t)){e.backUp(1);break}return e.current()}function FKe(e,t){if(e.eatSpace())return _v="ws",null;if(e.match(GIr))return"number";var n=e.next();if(n=="\\"&&(n=e.next()),n=='"')return(t.tokenize=ZIr)(e,t);if(n=="(")return _v="open","bracket";if(n==")")return _v="close","bracket";if(n==";")return e.skipToEnd(),_v="ws","comment";if(/['`,@]/.test(n))return null;if(n=="|")return e.skipTo("|")?(e.next(),"variableName"):(e.skipToEnd(),"error");if(n=="#"){var n=e.next();return n=="("?(_v="open","bracket"):/[+\-=\.']/.test(n)||/\d/.test(n)&&e.match(/^\d*#/)?null:n=="|"?(t.tokenize=qIr)(e,t):n==":"?(o8e(e),"meta"):n=="\\"?(e.next(),o8e(e),"string.special"):"error"}else{var r=o8e(e);return r=="."?null:(_v="symbol",r=="nil"||r=="t"||r.charAt(0)==":"?"atom":t.lastType=="open"&&(XIr.test(r)||_xn.test(r))?"keyword":r.charAt(0)=="&"?"variableName.special":"variableName")}}function ZIr(e,t){for(var n=!1,r;r=e.next();){if(r=='"'&&!n){t.tokenize=FKe;break}n=!n&&r=="\\"}return"string"}function qIr(e,t){for(var n,r;n=e.next();){if(n=="#"&&r=="|"){t.tokenize=FKe;break}r=n}return _v="ws","comment"}const KIr={name:"commonlisp",startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:FKe}},token:function(e,t){e.sol()&&typeof t.ctx.indentTo!="number"&&(t.ctx.indentTo=t.ctx.start+1),_v=null;var n=t.tokenize(e,t);return _v!="ws"&&(t.ctx.indentTo==null?_v=="symbol"&&_xn.test(e.current())?t.ctx.indentTo=t.ctx.start+e.indentUnit:t.ctx.indentTo="next":t.ctx.indentTo=="next"&&(t.ctx.indentTo=e.column()),t.lastType=_v),_v=="open"?t.ctx={prev:t.ctx,start:e.column(),indentTo:null}:_v=="close"&&(t.ctx=t.ctx.prev||t.ctx),n},indent:function(e){var t=e.ctx.indentTo;return typeof t=="number"?t:e.ctx.start+1},languageData:{commentTokens:{line:";;",block:{open:"#|",close:"|#"}},closeBrackets:{brackets:["(","[","{",'"']}}},JIr=Object.freeze(Object.defineProperty({__proto__:null,commonLisp:KIr},Symbol.toStringTag,{value:"Module"}));var zpe=function(e){return new RegExp("^(?:"+e.join("|")+")$","i")},eMr=function(e){o5=null;var t=e.next();if(t==='"')return e.match(/^.*?"/),"string";if(t==="'")return e.match(/^.*?'/),"string";if(/[{}\(\),\.;\[\]]/.test(t))return o5=t,"punctuation";if(t==="/"&&e.eat("/"))return e.skipToEnd(),"comment";if(BAt.test(t))return e.eatWhile(BAt),null;if(e.eatWhile(/[_\w\d]/),e.eat(":"))return e.eatWhile(/[\w\d_\-]/),"atom";var n=e.current();return tMr.test(n)?"builtin":nMr.test(n)?"def":iMr.test(n)||rMr.test(n)?"keyword":"variable"},Rae=function(e,t,n){return e.context={prev:e.context,indent:e.indent,col:n,type:t}},s8e=function(e){return e.indent=e.context.indent,e.context=e.context.prev},o5,tMr=zpe(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]),nMr=zpe(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]),iMr=zpe(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]),rMr=zpe(["access","active","assign","all","alter","as","catalog","change","copy","create","constraint","constraints","current","database","databases","dbms","default","deny","drop","element","elements","exists","from","grant","graph","graphs","if","index","indexes","label","labels","management","match","name","names","new","node","nodes","not","of","on","or","password","populated","privileges","property","read","relationship","relationships","remove","replace","required","revoke","role","roles","set","show","start","status","stop","suspended","to","traverse","type","types","user","users","with","write"]),BAt=/[*+\-<>=&|~%^]/;const oMr={name:"cypher",startState:function(){return{tokenize:eMr,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if(n!=="comment"&&t.context&&t.context.align==null&&t.context.type!=="pattern"&&(t.context.align=!0),o5==="(")Rae(t,")",e.column());else if(o5==="[")Rae(t,"]",e.column());else if(o5==="{")Rae(t,"}",e.column());else if(/[\]\}\)]/.test(o5)){for(;t.context&&t.context.type==="pattern";)s8e(t);t.context&&o5===t.context.type&&s8e(t)}else o5==="."&&t.context&&t.context.type==="pattern"?s8e(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?Rae(t,"pattern",e.column()):t.context.type==="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type==="pattern";)o=o.prev;var s=o&&r===o.type;return o?o.type==="keywords"?null:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0}},sMr=Object.freeze(Object.defineProperty({__proto__:null,cypher:oMr},Symbol.toStringTag,{value:"Module"}));function cFe(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var aMr=cFe(["and","or","not","is"]),RAt=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],IAt=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function zp(e){return e.scopes[e.scopes.length-1]}function NKe(e){for(var t="error",n=e.delimiters||e.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,r=[e.singleOperators,e.doubleOperators,e.doubleDelimiters,e.tripleDelimiters,e.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],o=0;oS?p(y,C):L0&&w(y,C)&&(E+=" "+t),E}}return f(y,C)}function f(y,C,_){if(y.eatSpace())return null;if(!_&&y.match(/^#.*/))return"comment";if(y.match(/^[0-9\.]/,!1)){var S=!1;if(y.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(S=!0),y.match(/^[\d_]+\.\d*/)&&(S=!0),y.match(/^\.\d+/)&&(S=!0),S)return y.eat(/J/i),"number";var L=!1;if(y.match(/^0x[0-9a-f_]+/i)&&(L=!0),y.match(/^0b[01_]+/i)&&(L=!0),y.match(/^0o[0-7_]+/i)&&(L=!0),y.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(y.eat(/J/i),L=!0),y.match(/^0(?![\dx])/i)&&(L=!0),L)return y.eat(/L/i),"number"}if(y.match(h)){var E=y.current().toLowerCase().indexOf("f")!==-1;return E?(C.tokenize=k(y.current(),C.tokenize),C.tokenize(y,C)):(C.tokenize=A(y.current(),C.tokenize),C.tokenize(y,C))}for(var T=0;T=0;)y=y.substr(1);var _=y.length==1,S="string";function L(T){return function(D,P){var Q=f(D,P,!0);return Q=="punctuation"&&(D.current()=="{"?P.tokenize=L(T+1):D.current()=="}"&&(T>1?P.tokenize=L(T-1):P.tokenize=E)),Q}}function E(T,D){for(;!T.eol();)if(T.eatWhile(/[^'"\{\}\\]/),T.eat("\\")){if(T.next(),_&&T.eol())return S}else{if(T.match(y))return D.tokenize=C,S;if(T.match("{{"))return S;if(T.match("{",!1))return D.tokenize=L(0),T.current()?S:D.tokenize(T,D);if(T.match("}}"))return S;if(T.match("}"))return t;T.eat(/['"]/)}if(_){if(e.singleLineStringErrors)return t;D.tokenize=C}return S}return E.isString=!0,E}function A(y,C){for(;"rubf".indexOf(y.charAt(0).toLowerCase())>=0;)y=y.substr(1);var _=y.length==1,S="string";function L(E,T){for(;!E.eol();)if(E.eatWhile(/[^'"\\]/),E.eat("\\")){if(E.next(),_&&E.eol())return S}else{if(E.match(y))return T.tokenize=C,S;E.eat(/['"]/)}if(_){if(e.singleLineStringErrors)return t;T.tokenize=C}return S}return L.isString=!0,L}function p(y,C){for(;zp(C).type!="py";)C.scopes.pop();C.scopes.push({offset:zp(C).offset+y.indentUnit,type:"py",align:null})}function b(y,C,_){var S=y.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:y.column()+1;C.scopes.push({offset:C.indent+(s||y.indentUnit),type:_,align:S})}function w(y,C){for(var _=y.indentation();C.scopes.length>1&&zp(C).offset>_;){if(zp(C).type!="py")return!0;C.scopes.pop()}return zp(C).offset!=_}function O(y,C){y.sol()&&(C.beginningOfLine=!0,C.dedent=!1);var _=C.tokenize(y,C),S=y.current();if(C.beginningOfLine&&S=="@")return y.match(u,!1)?"meta":d?"operator":t;if(/\S/.test(S)&&(C.beginningOfLine=!1),(_=="variable"||_=="builtin")&&C.lastToken=="meta"&&(_="meta"),(S=="pass"||S=="return")&&(C.dedent=!0),S=="lambda"&&(C.lambda=!0),S==":"&&!C.lambda&&zp(C).type=="py"&&y.match(/^\s*(?:#|$)/,!1)&&p(y,C),S.length==1&&!/string|comment/.test(_)){var L="[({".indexOf(S);if(L!=-1&&b(y,C,"])}".slice(L,L+1)),L="])}".indexOf(S),L!=-1)if(zp(C).type==S)C.indent=C.scopes.pop().offset-(s||y.indentUnit);else return t}return C.dedent&&y.eol()&&zp(C).type=="py"&&C.scopes.length>1&&C.scopes.pop(),_}return{name:"python",startState:function(){return{tokenize:v,scopes:[{offset:0,type:"py",align:null}],indent:0,lastToken:null,lambda:!1,dedent:0}},token:function(y,C){var _=C.errorToken;_&&(C.errorToken=!1);var S=O(y,C);return S&&S!="comment"&&(C.lastToken=S=="keyword"||S=="punctuation"?y.current():S),S=="punctuation"&&(S=null),y.eol()&&C.lambda&&(C.lambda=!1),_?t:S},indent:function(y,C,_){if(y.tokenize!=v)return y.tokenize.isString?null:0;var S=zp(y),L=S.type==C.charAt(0)||S.type=="py"&&!y.dedent&&/^(else:|elif |except |finally:)/.test(C);return S.align!=null?S.align-(L?1:0):S.offset-(L?s||_.unit:0)},languageData:{autocomplete:RAt.concat(IAt).concat(["exec","print"]),indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,commentTokens:{line:"#"},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}var lMr=function(e){return e.split(" ")};const cMr=NKe({}),dMr=NKe({extra_keywords:lMr("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")}),uMr=Object.freeze(Object.defineProperty({__proto__:null,cython:dMr,mkPython:NKe,python:cMr},Symbol.toStringTag,{value:"Module"}));function Pz(e,t){return new RegExp((t?"":"^")+"(?:"+e.join("|")+")"+(t?"$":"\\b"))}function hx(e,t,n){return n.tokenize.push(e),e(t,n)}var dFe=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/,uFe=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,Sxn=/^(?:\[\][?=]?)/,hMr=/^(?:\.(?:\.{2})?|->|[?:])/,oZ=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,Rue=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,fMr=Pz(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),gMr=Pz(["true","false","nil","self"]),mMr=["def","fun","macro","class","module","struct","lib","enum","union","do","for"],kMr=Pz(mMr),vMr=["if","unless","case","while","until","begin","then"],AMr=Pz(vMr),Lxn=["end","else","elsif","rescue","ensure"],pMr=Pz(Lxn),xxn=["\\)","\\}","\\]"],bMr=new RegExp("^(?:"+xxn.join("|")+")$"),MAt={def:PAt,fun:PAt,macro:wMr,class:hP,module:hP,struct:hP,lib:hP,enum:hP,union:hP},a8e={"[":"]","{":"}","(":")","<":">"};function UKe(e,t){if(e.eatSpace())return null;if(t.lastToken!="\\"&&e.match("{%",!1))return hx(GB("%","%"),e,t);if(t.lastToken!="\\"&&e.match("{{",!1))return hx(GB("{","}"),e,t);if(e.peek()=="#")return e.skipToEnd(),"comment";var n;if(e.match(oZ))return e.eat(/[?!]/),n=e.current(),e.eat(":")?"atom":t.lastToken=="."?"property":fMr.test(n)?(kMr.test(n)?!(n=="fun"&&t.blocks.indexOf("lib")>=0)&&!(n=="def"&&t.lastToken=="abstract")&&(t.blocks.push(n),t.currentIndent+=1):(t.lastStyle=="operator"||!t.lastStyle)&&AMr.test(n)?(t.blocks.push(n),t.currentIndent+=1):n=="end"&&(t.blocks.pop(),t.currentIndent-=1),MAt.hasOwnProperty(n)&&t.tokenize.push(MAt[n]),"keyword"):gMr.test(n)?"atom":"variable";if(e.eat("@"))return e.peek()=="["?hx(RK("[","]","meta"),e,t):(e.eat("@"),e.match(oZ)||e.match(Rue),"propertyName");if(e.match(Rue))return"tag";if(e.eat(":"))return e.eat('"')?hx(l8e('"',"atom",!1),e,t):e.match(oZ)||e.match(Rue)||e.match(dFe)||e.match(uFe)||e.match(Sxn)?"atom":(e.eat(":"),"operator");if(e.eat('"'))return hx(l8e('"',"string",!0),e,t);if(e.peek()=="%"){var r="string",o=!0,s;if(e.match("%r"))r="string.special",s=e.next();else if(e.match("%w"))o=!1,s=e.next();else if(e.match("%q"))o=!1,s=e.next();else if(s=e.match(/^%([^\w\s=])/))s=s[1];else{if(e.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/))return"meta";if(e.eat("%"))return"operator"}return a8e.hasOwnProperty(s)&&(s=a8e[s]),hx(l8e(s,r,o),e,t)}return(n=e.match(/^<<-('?)([A-Z]\w*)\1/))?hx(OMr(n[2],!n[1]),e,t):e.eat("'")?(e.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),e.eat("'"),"atom"):e.eat("0")?(e.eat("x")?e.match(/^[0-9a-fA-F_]+/):e.eat("o")?e.match(/^[0-7_]+/):e.eat("b")&&e.match(/^[01_]+/),"number"):e.eat(/^\d/)?(e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/),"number"):e.match(dFe)?(e.eat("="),"operator"):e.match(uFe)||e.match(hMr)?"operator":(n=e.match(/[({[]/,!1))?(n=n[0],hx(RK(n,a8e[n],null),e,t)):e.eat("\\")?(e.next(),"meta"):(e.next(),null)}function RK(e,t,n,r){return function(o,s){if(!r&&o.match(e))return s.tokenize[s.tokenize.length-1]=RK(e,t,n,!0),s.currentIndent+=1,n;var a=UKe(o,s);return o.current()===t&&(s.tokenize.pop(),s.currentIndent-=1,a=n),a}}function GB(e,t,n){return function(r,o){return!n&&r.match("{"+e)?(o.currentIndent+=1,o.tokenize[o.tokenize.length-1]=GB(e,t,!0),"meta"):r.match(t+"}")?(o.currentIndent-=1,o.tokenize.pop(),"meta"):UKe(r,o)}}function wMr(e,t){if(e.eatSpace())return null;var n;if(n=e.match(oZ)){if(n=="def")return"keyword";e.eat(/[?!]/)}return t.tokenize.pop(),"def"}function PAt(e,t){return e.eatSpace()?null:(e.match(oZ)?e.eat(/[!?]/):e.match(dFe)||e.match(uFe)||e.match(Sxn),t.tokenize.pop(),"def")}function hP(e,t){return e.eatSpace()?null:(e.match(Rue),t.tokenize.pop(),"def")}function l8e(e,t,n){return function(r,o){for(var s=!1;r.peek();)if(s)r.next(),s=!1;else{if(r.match("{%",!1))return o.tokenize.push(GB("%","%")),t;if(r.match("{{",!1))return o.tokenize.push(GB("{","}")),t;if(n&&r.match("#{",!1))return o.tokenize.push(RK("#{","}","meta")),t;var a=r.next();if(a==e)return o.tokenize.pop(),t;s=n&&a=="\\"}return t}}function OMr(e,t){return function(n,r){if(n.sol()&&(n.eatSpace(),n.match(e)))return r.tokenize.pop(),"string";for(var o=!1;n.peek();)if(o)n.next(),o=!1;else{if(n.match("{%",!1))return r.tokenize.push(GB("%","%")),"string";if(n.match("{{",!1))return r.tokenize.push(GB("{","}")),"string";if(t&&n.match("#{",!1))return r.tokenize.push(RK("#{","}","meta")),"string";o=n.next()=="\\"&&t}return"string"}}const yMr={name:"crystal",startState:function(){return{tokenize:[UKe],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t),r=e.current();return n&&n!="comment"&&(t.lastToken=r,t.lastStyle=n),n},indent:function(e,t,n){return t=t.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),pMr.test(t)||bMr.test(t)?n.unit*(e.currentIndent-1):n.unit*e.currentIndent},languageData:{indentOnInput:Pz(xxn.concat(Lxn),!0),commentTokens:{line:"#"}}},CMr=Object.freeze(Object.defineProperty({__proto__:null,crystal:yMr},Symbol.toStringTag,{value:"Module"}));function Iae(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/,xk;function WAt(e,t){var n=e.next();if(UAt[n]){var r=UAt[n](e,t);if(r!==!1)return r}if(n=='"'||n=="'"||n=="`")return t.tokenize=TMr(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(n))return xk=n,null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("+"))return t.tokenize=zAt,zAt(e,t);if(e.eat("*"))return t.tokenize=VAt,VAt(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(jAt.test(n))return e.eatWhile(jAt),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var o=e.current();return SMr.propertyIsEnumerable(o)?(NAt.propertyIsEnumerable(o)&&(xk="newstatement"),"keyword"):LMr.propertyIsEnumerable(o)?(NAt.propertyIsEnumerable(o)&&(xk="newstatement"),"builtin"):xMr.propertyIsEnumerable(o)?"atom":"variable"}function TMr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!(r||EMr))&&(n.tokenize=null),"string"}}function VAt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function zAt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="+"}return"comment"}function Exn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function Mae(e,t,n){var r=e.indented;return e.context&&e.context.type=="statement"&&(r=e.context.indented),e.context=new Exn(r,t,n,null,e.context)}function X$(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const QMr={name:"d",startState:function(e){return{tokenize:null,context:new Exn(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;xk=null;var r=(t.tokenize||WAt)(e,t);if(r=="comment"||r=="meta")return r;if(n.align==null&&(n.align=!0),(xk==";"||xk==":"||xk==",")&&n.type=="statement")X$(t);else if(xk=="{")Mae(t,e.column(),"}");else if(xk=="[")Mae(t,e.column(),"]");else if(xk=="(")Mae(t,e.column(),")");else if(xk=="}"){for(;n.type=="statement";)n=X$(t);for(n.type=="}"&&(n=X$(t));n.type=="statement";)n=X$(t)}else xk==n.type?X$(t):((n.type=="}"||n.type=="top")&&xk!=";"||n.type=="statement"&&xk=="newstatement")&&Mae(t,e.column(),"statement");return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=WAt&&e.tokenize!=null)return null;var r=e.context,o=t&&t.charAt(0);r.type=="statement"&&o=="}"&&(r=r.prev);var s=o==r.type;return r.type=="statement"?r.indented+(o=="{"?0:_Mr||n.unit):r.align?r.column+(s?0:1):r.indented+(s?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},DMr=Object.freeze(Object.defineProperty({__proto__:null,d:QMr},Symbol.toStringTag,{value:"Module"}));var HAt={"+":"inserted","-":"deleted","@":"meta"};const BMr={name:"diff",token:function(e){var t=e.string.search(/[\t ]+?$/);if(!e.sol()||t===0)return e.skipToEnd(),("error "+(HAt[e.string.charAt(0)]||"")).replace(/ $/,"");var n=HAt[e.peek()]||e.skipToEnd();return t===-1?e.skipToEnd():e.pos=t,n}},RMr=Object.freeze(Object.defineProperty({__proto__:null,diff:BMr},Symbol.toStringTag,{value:"Module"}));function jKe(e){Txn(e,"start");var t={},n=e.languageData||{},r=!1;for(var o in e)if(o!=n&&e.hasOwnProperty(o))for(var s=t[o]=[],a=e[o],l=0;l2&&a.token&&typeof a.token!="string"){n.pending=[];for(var u=2;u-1)return null;var o=n.indent.length-1,s=e[n.state];e:for(;;){for(var a=0;a"),ab("meta",n);if(n=="#"&&e.eatWhile(/[\w]/))return ab("atom","tag");if(n=="|")return ab("keyword","separator");if(n.match(/[\(\)\[\]\-\.,\+\?>]/))return ab(null,n);if(n.match(/[\[\]]/))return ab("rule",n);if(n=='"'||n=="'")return t.tokenize=YMr(n),t.tokenize(e,t);if(e.eatWhile(/[a-zA-Z\?\+\d]/)){var r=e.current();return r.substr(r.length-1,r.length).match(/\?|\+/)!==null&&e.backUp(1),ab("tag","tag")}else return n=="%"||n=="*"?ab("number","number"):(e.eatWhile(/[\w\\\-_%.{,]/),ab(null,null))}}function $At(e,t){for(var n=0,r;(r=e.next())!=null;){if(n>=2&&r==">"){t.tokenize=Hpe;break}n=r=="-"?n+1:0}return ab("comment","comment")}function YMr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){n.tokenize=Hpe;break}r=!r&&o=="\\"}return ab("string","tag")}}function ZMr(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=Hpe;break}n.next()}return e}}const qMr={name:"dtd",startState:function(){return{tokenize:Hpe,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t),r=t.stack[t.stack.length-1];return e.current()=="["||Fm==="doindent"||Fm=="["?t.stack.push("rule"):Fm==="endtag"?t.stack[t.stack.length-1]="endtag":e.current()=="]"||Fm=="]"||Fm==">"&&r=="rule"?t.stack.pop():Fm=="["&&t.stack.push("["),n},indent:function(e,t,n){var r=e.stack.length;return t.charAt(0)==="]"?r--:t.substr(t.length-1,t.length)===">"&&(t.substr(0,1)==="<"||Fm=="doindent"&&t.length>1||(Fm=="doindent"?r--:Fm==">"&&t.length>1||Fm=="tag"&&t!==">"||(Fm=="tag"&&e.stack[e.stack.length-1]=="rule"?r--:Fm=="tag"?r++:t===">"&&e.stack[e.stack.length-1]=="rule"&&Fm===">"?r--:t===">"&&e.stack[e.stack.length-1]=="rule"||(t.substr(0,1)!=="<"&&t.substr(0,1)===">"?r=r-1:t===">"||(r=r-1)))),(Fm==null||Fm=="]")&&r--),e.baseIndent+r*n.unit},languageData:{indentOnInput:/^\s*[\]>]$/}},KMr=Object.freeze(Object.defineProperty({__proto__:null,dtd:qMr},Symbol.toStringTag,{value:"Module"}));function XAt(e,t){for(var n=0;n",symbolGlobal:"\\*"+QG+"\\*",symbolConstant:"\\$"+QG},tPr={symbolKeyword:"atom",symbolClass:"tag",symbolGlobal:"variableName.standard",symbolConstant:"variableName.constant"};for(var c8e in s9)s9.hasOwnProperty(c8e)&&(s9[c8e]=new RegExp("^"+s9[c8e]));s9.keyword=[/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];var cie={};cie.keyword="keyword";cie.definition="def";cie.simpleDefinition="def";cie.signalingCalls="builtin";var Ixn={},Mxn={};XAt(["keyword","definition","simpleDefinition","signalingCalls"],function(e){XAt(_f[e],function(t){Ixn[t]=e,Mxn[t]=cie[e]})});function d8e(e,t,n){return t.tokenize=n,n(e,t)}function WKe(e,t){var n=e.peek();if(n=="'"||n=='"')return e.next(),d8e(e,t,GAt(n,"string"));if(n=="/"){if(e.next(),e.eat("*"))return d8e(e,t,nPr);if(e.eat("/"))return e.skipToEnd(),"comment";e.backUp(1)}else if(/[+\-\d\.]/.test(n)){if(e.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i)||e.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i)||e.match(/^[+-]?\d+/))return"number"}else{if(n=="#")return e.next(),n=e.peek(),n=='"'?(e.next(),d8e(e,t,GAt('"',"string"))):n=="b"?(e.next(),e.eatWhile(/[01]/),"number"):n=="x"?(e.next(),e.eatWhile(/[\da-f]/i),"number"):n=="o"?(e.next(),e.eatWhile(/[0-7]/),"number"):n=="#"?(e.next(),"punctuation"):n=="["||n=="("?(e.next(),"bracket"):e.match(/f|t|all-keys|include|key|next|rest/i)?"atom":(e.eatWhile(/[-a-zA-Z]/),"error");if(n=="~")return e.next(),n=e.peek(),n=="="?(e.next(),n=e.peek(),n=="="&&e.next(),"operator"):"operator";if(n==":"){if(e.next(),n=e.peek(),n=="=")return e.next(),"operator";if(n==":")return e.next(),"punctuation"}else{if("[](){}".indexOf(n)!=-1)return e.next(),"bracket";if(".,".indexOf(n)!=-1)return e.next(),"punctuation";if(e.match("end"))return"keyword"}}for(var r in s9)if(s9.hasOwnProperty(r)){var o=s9[r];if(o instanceof Array&&JMr(o,function(s){return e.match(s)})||e.match(o))return tPr[r]}return/[+\-*\/^=<>&|]/.test(n)?(e.next(),"operator"):e.match("define")?"def":(e.eatWhile(/[\w\-]/),Ixn.hasOwnProperty(e.current())?Mxn[e.current()]:e.current().match(ePr)?"variable":(e.next(),"variableName.standard"))}function nPr(e,t){for(var n=!1,r=!1,o=0,s;s=e.next();){if(s=="/"&&n)if(o>0)o--;else{t.tokenize=WKe;break}else s=="*"&&r&&o++;n=s=="*",r=s=="/"}return"comment"}function GAt(e,t){return function(n,r){for(var o=!1,s,a=!1;(s=n.next())!=null;){if(s==e&&!o){a=!0;break}o=!o&&s=="\\"}return(a||!o)&&(r.tokenize=WKe),t}}const iPr={name:"dylan",startState:function(){return{tokenize:WKe,currentIndent:0}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{commentTokens:{block:{open:"/*",close:"*/"}}}},rPr=Object.freeze(Object.defineProperty({__proto__:null,dylan:iPr},Symbol.toStringTag,{value:"Module"}));var Pae={slash:0,parenthesis:1},hw={comment:0,_string:1,characterClass:2};const oPr={name:"ebnf",startState:function(){return{stringType:null,commentType:null,braced:0,lhs:!0,localState:null,stack:[],inDefinition:!1}},token:function(e,t){if(e){switch(t.stack.length===0&&(e.peek()=='"'||e.peek()=="'"?(t.stringType=e.peek(),e.next(),t.stack.unshift(hw._string)):e.match("/*")?(t.stack.unshift(hw.comment),t.commentType=Pae.slash):e.match("(*")&&(t.stack.unshift(hw.comment),t.commentType=Pae.parenthesis)),t.stack[0]){case hw._string:for(;t.stack[0]===hw._string&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):e.peek()==="\\"?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string";case hw.comment:for(;t.stack[0]===hw.comment&&!e.eol();)t.commentType===Pae.slash&&e.match("*/")||t.commentType===Pae.parenthesis&&e.match("*)")?(t.stack.shift(),t.commentType=null):e.match(/^.[^\*]*/);return"comment";case hw.characterClass:for(;t.stack[0]===hw.characterClass&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(".")||t.stack.shift();return"operator"}var n=e.peek();switch(n){case"[":return e.next(),t.stack.unshift(hw.characterClass),"bracket";case":":case"|":case";":return e.next(),"operator";case"%":if(e.match("%%"))return"header";if(e.match(/[%][A-Za-z]+/))return"keyword";if(e.match(/[%][}]/))return"bracket";break;case"/":if(e.match(/[\/][A-Za-z]+/))return"keyword";case"\\":if(e.match(/[\][a-z]+/))return"string.special";case".":if(e.match("."))return"atom";case"*":case"-":case"+":case"^":if(e.match(n))return"atom";case"$":if(e.match("$$"))return"builtin";if(e.match(/[$][0-9]+/))return"variableName.special";case"<":if(e.match(/<<[a-zA-Z_]+>>/))return"builtin"}return e.match("//")?(e.skipToEnd(),"comment"):e.match("return")?"operator":e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)?e.match(/(?=[\(.])/)?"variable":e.match(/(?=[\s\n]*[:=])/)?"def":"variableName.special":["[","]","(",")"].indexOf(e.peek())!=-1?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}},sPr=Object.freeze(Object.defineProperty({__proto__:null,ebnf:oPr},Symbol.toStringTag,{value:"Module"}));function mI(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/,Gm;function tme(e,t){var n=e.next();if(ZAt[n]){var r=ZAt[n](e,t);if(r!==!1)return r}if(n=='"'||n=="'")return t.tokenize=fPr(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(n))return Gm=n,null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("*"))return t.tokenize=KAt,KAt(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(qAt.test(n))return e.eatWhile(qAt),"operator";e.eatWhile(/[\w\$_]/);var o=e.current().toLowerCase();if(lPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"keyword";if(cPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"variable";if(dPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"modifier";if(YAt.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"type";if(uPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"builtin";for(var s=o.length-1;s>=0&&(!isNaN(o[s])||o[s]=="_");)--s;if(s>0){var a=o.substr(0,s+1);if(YAt.propertyIsEnumerable(a))return fP.propertyIsEnumerable(a)&&(Gm="newstatement"),"type"}return hPr.propertyIsEnumerable(o)?"atom":null}function fPr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=tme),"string"}}function KAt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=tme;break}n=r=="*"}return"comment"}function Pxn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function Fae(e,t,n){return e.context=new Pxn(e.indented,t,n,null,e.context)}function G$(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const gPr={name:"ecl",startState:function(e){return{tokenize:null,context:new Pxn(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;Gm=null;var r=(t.tokenize||tme)(e,t);if(r=="comment"||r=="meta")return r;if(n.align==null&&(n.align=!0),(Gm==";"||Gm==":")&&n.type=="statement")G$(t);else if(Gm=="{")Fae(t,e.column(),"}");else if(Gm=="[")Fae(t,e.column(),"]");else if(Gm=="(")Fae(t,e.column(),")");else if(Gm=="}"){for(;n.type=="statement";)n=G$(t);for(n.type=="}"&&(n=G$(t));n.type=="statement";)n=G$(t)}else Gm==n.type?G$(t):(n.type=="}"||n.type=="top"||n.type=="statement"&&Gm=="newstatement")&&Fae(t,e.column(),"statement");return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=tme&&e.tokenize!=null)return 0;var r=e.context,o=t&&t.charAt(0);r.type=="statement"&&o=="}"&&(r=r.prev);var s=o==r.type;return r.type=="statement"?r.indented+(o=="{"?0:n.unit):r.align?r.column+(s?0:1):r.indented+(s?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/}},mPr=Object.freeze(Object.defineProperty({__proto__:null,ecl:gPr},Symbol.toStringTag,{value:"Module"}));function Fxn(e){for(var t={},n=0,r=e.length;n>"]);function APr(e,t,n){return n.tokenize.push(e),e(t,n)}function pPr(e,t){if(e.eatSpace())return null;var n=e.next();return n=='"'||n=="'"?APr(bPr(n,"string"),e,t):n=="-"&&e.eat("-")?(e.skipToEnd(),"comment"):n==":"&&e.eat("=")?"operator":/[0-9]/.test(n)?(e.eatWhile(/[xXbBCc0-9\.]/),e.eat(/[\?\!]/),"variable"):/[a-zA-Z_0-9]/.test(n)?(e.eatWhile(/[a-zA-Z_0-9]/),e.eat(/[\?\!]/),"variable"):/[=+\-\/*^%<>~]/.test(n)?(e.eatWhile(/[=+\-\/*^%<>~]/),"operator"):null}function bPr(e,t,n){return function(r,o){for(var s=!1,a;(a=r.next())!=null;){if(a==e&&!s){o.tokenize.pop();break}s=!s&&a=="%"}return t}}const wPr={name:"eiffel",startState:function(){return{tokenize:[pPr]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t);if(n=="variable"){var r=e.current();n=kPr.propertyIsEnumerable(e.current())?"keyword":vPr.propertyIsEnumerable(e.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(r)?"tag":/^0[bB][0-1]+$/g.test(r)||/^0[cC][0-7]+$/g.test(r)||/^0[xX][a-fA-F0-9]+$/g.test(r)||/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(r)||/^[0-9]+$/g.test(r)?"number":"variable"}return n},languageData:{commentTokens:{line:"--"}}},OPr=Object.freeze(Object.defineProperty({__proto__:null,eiffel:wPr},Symbol.toStringTag,{value:"Module"}));function Y$(e,t,n){return t(n),n(e,t)}var yPr=/[a-z]/,CPr=/[A-Z]/,JAt=/[a-zA-Z0-9_]/,Nae=/[0-9]/,_Pr=/[0-9A-Fa-f]/,e4t=/[-&*+.\\/<>=?^|:]/,SPr=/[(),[\]{}]/,LPr=/[ \v\f]/;function L8(){return function(e,t){if(e.eatWhile(LPr))return null;var n=e.next();if(SPr.test(n))return n==="{"&&e.eat("-")?Y$(e,t,Nxn(1)):n==="["&&e.match("glsl|")?Y$(e,t,QPr):"builtin";if(n==="'")return Y$(e,t,TPr);if(n==='"')return e.eat('"')?e.eat('"')?Y$(e,t,xPr):"string":Y$(e,t,EPr);if(CPr.test(n))return e.eatWhile(JAt),"type";if(yPr.test(n)){var r=e.pos===1;return e.eatWhile(JAt),r?"def":"variable"}if(Nae.test(n)){if(n==="0"){if(e.eat(/[xX]/))return e.eatWhile(_Pr),"number"}else e.eatWhile(Nae);return e.eat(".")&&e.eatWhile(Nae),e.eat(/[eE]/)&&(e.eat(/[-+]/),e.eatWhile(Nae)),"number"}return e4t.test(n)?n==="-"&&e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(e4t),"keyword"):n==="_"?"keyword":"error"}}function Nxn(e){return e==0?L8():function(t,n){for(;!t.eol();){var r=t.next();if(r=="{"&&t.eat("-"))++e;else if(r=="-"&&t.eat("}")&&(--e,e===0))return n(L8()),"comment"}return n(Nxn(e)),"comment"}}function xPr(e,t){for(;!e.eol();){var n=e.next();if(n==='"'&&e.eat('"')&&e.eat('"'))return t(L8()),"string"}return"string"}function EPr(e,t){for(;e.skipTo('\\"');)e.next(),e.next();return e.skipTo('"')?(e.next(),t(L8()),"string"):(e.skipToEnd(),t(L8()),"error")}function TPr(e,t){for(;e.skipTo("\\'");)e.next(),e.next();return e.skipTo("'")?(e.next(),t(L8()),"string"):(e.skipToEnd(),t(L8()),"error")}function QPr(e,t){for(;!e.eol();){var n=e.next();if(n==="|"&&e.eat("]"))return t(L8()),"string"}return"string"}var DPr={case:1,of:1,as:1,if:1,then:1,else:1,let:1,in:1,type:1,alias:1,module:1,where:1,import:1,exposing:1,port:1};const BPr={name:"elm",startState:function(){return{f:L8()}},copyState:function(e){return{f:e.f}},token:function(e,t){var n=t.f(e,function(o){t.f=o}),r=e.current();return DPr.hasOwnProperty(r)?"keyword":n},languageData:{commentTokens:{line:"--"}}},RPr=Object.freeze(Object.defineProperty({__proto__:null,elm:BPr},Symbol.toStringTag,{value:"Module"}));var IPr=["-type","-spec","-export_type","-opaque"],MPr=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],PPr=/[\->,;]/,FPr=["->",";",","],NPr=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],UPr=/[\+\-\*\/<>=\|:!]/,jPr=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],WPr=/[<\(\[\{]/,hFe=["<<","(","[","{"],VPr=/[>\)\]\}]/,Uxn=["}","]",")",">>"],zPr=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],HPr=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],Uae=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/,$Pr=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function XPr(e,t){if(t.in_string)return t.in_string=!i4t(e),$a(t,e,"string");if(t.in_atom)return t.in_atom=!r4t(e),$a(t,e,"atom");if(e.eatSpace())return $a(t,e,"whitespace");if(!sZ(t)&&e.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/))return t1(e.current(),IPr)?$a(t,e,"type"):$a(t,e,"attribute");var n=e.next();if(n=="%")return e.skipToEnd(),$a(t,e,"comment");if(n==":")return $a(t,e,"colon");if(n=="?")return e.eatSpace(),e.eatWhile(Uae),$a(t,e,"macro");if(n=="#")return e.eatSpace(),e.eatWhile(Uae),$a(t,e,"record");if(n=="$")return e.next()=="\\"&&!e.match($Pr)?$a(t,e,"error"):$a(t,e,"number");if(n==".")return $a(t,e,"dot");if(n=="'"){if(!(t.in_atom=!r4t(e))){if(e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),$a(t,e,"fun");if(e.match(/\s*\(/,!1)||e.match(/\s*:/,!1))return $a(t,e,"function")}return $a(t,e,"atom")}if(n=='"')return t.in_string=!i4t(e),$a(t,e,"string");if(/[A-Z_Ø-ÞÀ-Ö]/.test(n))return e.eatWhile(Uae),$a(t,e,"variable");if(/[a-z_ß-öø-ÿ]/.test(n)){if(e.eatWhile(Uae),e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),$a(t,e,"fun");var r=e.current();return t1(r,MPr)?$a(t,e,"keyword"):t1(r,NPr)?$a(t,e,"operator"):e.match(/\s*\(/,!1)?t1(r,HPr)&&(sZ(t).token!=":"||sZ(t,2).token=="erlang")?$a(t,e,"builtin"):t1(r,zPr)?$a(t,e,"guard"):$a(t,e,"function"):GPr(e)==":"?r=="erlang"?$a(t,e,"builtin"):$a(t,e,"function"):t1(r,["true","false"])?$a(t,e,"boolean"):$a(t,e,"atom")}var o=/[0-9]/,s=/[0-9a-zA-Z]/;return o.test(n)?(e.eatWhile(o),e.eat("#")?e.eatWhile(s)||e.backUp(1):e.eat(".")&&(e.eatWhile(o)?e.eat(/[eE]/)&&(e.eat(/[-+]/)?e.eatWhile(o)||e.backUp(2):e.eatWhile(o)||e.backUp(1)):e.backUp(1)),$a(t,e,"number")):t4t(e,WPr,hFe)?$a(t,e,"open_paren"):t4t(e,VPr,Uxn)?$a(t,e,"close_paren"):n4t(e,PPr,FPr)?$a(t,e,"separator"):n4t(e,UPr,jPr)?$a(t,e,"operator"):$a(t,e,null)}function t4t(e,t,n){if(e.current().length==1&&t.test(e.current())){for(e.backUp(1);t.test(e.peek());)if(e.next(),t1(e.current(),n))return!0;e.backUp(e.current().length-1)}return!1}function n4t(e,t,n){if(e.current().length==1&&t.test(e.current())){for(;t.test(e.peek());)e.next();for(;01&&e[t].type==="fun"&&e[t-1].token==="fun")return e.slice(0,t-1);switch(e[t].token){case"}":return Hp(e,{g:["{"]});case"]":return Hp(e,{i:["["]});case")":return Hp(e,{i:["("]});case">>":return Hp(e,{i:["<<"]});case"end":return Hp(e,{i:["begin","case","fun","if","receive","try"]});case",":return Hp(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return Hp(e,{r:["when"],m:["try","if","case","receive"]});case";":return Hp(e,{E:["case","fun","if","receive","try","when"]});case"catch":return Hp(e,{e:["try"]});case"of":return Hp(e,{e:["case"]});case"after":return Hp(e,{e:["receive","try"]});default:return e}}function Hp(e,t){for(var n in t)for(var r=e.length-1,o=t[n],s=r-1;-1"?t1(a.token,["receive","case","if","try"])?a.column+n.unit+n.unit:a.column+n.unit:t1(s.token,hFe)?s.column+s.token.length:(r=iFr(e),rD(r)?r.column+n.unit:0):0}function tFr(e){var t=e.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return rD(t)&&t.index===0?t[0]:""}function nFr(e){var t=e.tokenStack.slice(0,-1),n=nme(t,"type",["open_paren"]);return rD(t[n])?t[n]:!1}function iFr(e){var t=e.tokenStack,n=nme(t,"type",["open_paren","separator","keyword"]),r=nme(t,"type",["operator"]);return rD(n)&&rD(r)&&n!=&|~^\/]/,a=e.support||{},l=e.hooks||{},d=e.dateSQL||{date:!0,time:!0,timestamp:!0},u=e.backslashStringEscapes!==!1,h=e.brackets||/^[\{}\(\)\[\]]/,g=e.punctuation||/^[;.,:]/;function m(p,b){var w=p.next();if(l[w]){var O=l[w](p,b);if(O!==!1)return O}if(a.hexNumber&&(w=="0"&&p.match(/^[xX][0-9a-fA-F]+/)||(w=="x"||w=="X")&&p.match(/^'[0-9a-fA-F]*'/)))return"number";if(a.binaryNumber&&((w=="b"||w=="B")&&p.match(/^'[01]+'/)||w=="0"&&p.match(/^b[01]*/)))return"number";if(w.charCodeAt(0)>47&&w.charCodeAt(0)<58)return p.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),a.decimallessFloat&&p.match(/^\.(?!\.)/),"number";if(w=="?"&&(p.eatSpace()||p.eol()||p.eat(";")))return"macroName";if(w=="'"||w=='"'&&a.doubleQuote)return b.tokenize=v(w),b.tokenize(p,b);if((a.nCharCast&&(w=="n"||w=="N")||a.charsetCast&&w=="_"&&p.match(/[a-z][a-z0-9]*/i))&&(p.peek()=="'"||p.peek()=='"'))return"keyword";if(a.escapeConstant&&(w=="e"||w=="E")&&(p.peek()=="'"||p.peek()=='"'&&a.doubleQuote))return b.tokenize=function(C,_){return(_.tokenize=v(C.next(),!0))(C,_)},"keyword";if(a.commentSlashSlash&&w=="/"&&p.eat("/"))return p.skipToEnd(),"comment";if(a.commentHash&&w=="#"||w=="-"&&p.eat("-")&&(!a.commentSpaceRequired||p.eat(" ")))return p.skipToEnd(),"comment";if(w=="/"&&p.eat("*"))return b.tokenize=f(1),b.tokenize(p,b);if(w=="."){if(a.zerolessFloat&&p.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(p.match(/^\.+/))return null;if(a.ODBCdotTable&&p.match(/^[\w\d_$#]+/))return"type"}else{if(s.test(w))return p.eatWhile(s),"operator";if(h.test(w))return"bracket";if(g.test(w))return p.eatWhile(g),"punctuation";if(w=="{"&&(p.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||p.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";p.eatWhile(/^[_\w\d]/);var y=p.current().toLowerCase();return d.hasOwnProperty(y)&&(p.match(/^( )+'[^']*'/)||p.match(/^( )+"[^"]*"/))?"number":n.hasOwnProperty(y)?"atom":r.hasOwnProperty(y)?"type":o.hasOwnProperty(y)?"keyword":t.hasOwnProperty(y)?"builtin":null}}function v(p,b){return function(w,O){for(var y=!1,C;(C=w.next())!=null;){if(C==p&&!y){O.tokenize=m;break}y=(u||b)&&!y&&C=="\\"}return"string"}}function f(p){return function(b,w){var O=b.match(/^.*?(\/\*|\*\/)/);return O?O[1]=="/*"?w.tokenize=f(p+1):p>1?w.tokenize=f(p-1):w.tokenize=m:b.skipToEnd(),"comment"}}function k(p,b,w){b.context={prev:b.context,indent:p.indentation(),col:p.column(),type:w}}function A(p){p.indent=p.context.indent,p.context=p.context.prev}return{name:"sql",startState:function(){return{tokenize:m,context:null}},token:function(p,b){if(p.sol()&&b.context&&b.context.align==null&&(b.context.align=!1),b.tokenize==m&&p.eatSpace())return null;var w=b.tokenize(p,b);if(w=="comment")return w;b.context&&b.context.align==null&&(b.context.align=!0);var O=p.current();return O=="("?k(p,b,")"):O=="["?k(p,b,"]"):b.context&&b.context.type==O&&A(b),w},indent:function(p,b,w){var O=p.context;if(!O)return null;var y=b.charAt(0)==O.type;return O.align?O.col+(y?0:1):O.indent+(y?0:w.unit)},languageData:{commentTokens:{line:a.commentSlashSlash?"//":a.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function VKe(e){for(var t;(t=e.next())!=null;)if(t=="`"&&!e.eat("`"))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function sFr(e){for(var t;(t=e.next())!=null;)if(t=='"'&&!e.eat('"'))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function tQ(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"string.special"):e.eat('"')?(e.match(/^.*"/),"string.special"):e.eat("`")?(e.match(/^.*`/),"string.special"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function Vxn(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"string.special":null}var kI="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function ur(e){for(var t={},n=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:ur("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":tQ}}),cFr=y2({client:ur("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:ur(kI+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:ur("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":tQ,"`":VKe,"\\":Vxn}}),dFr=y2({client:ur("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:ur(kI+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:ur("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":tQ,"`":VKe,"\\":Vxn}}),uFr=y2({client:ur("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:ur(kI+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:ur("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:ur("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:ur("date time timestamp datetime"),support:ur("decimallessFloat zerolessFloat"),hooks:{"@":tQ,":":tQ,"?":tQ,$:tQ,'"':sFr,"`":VKe}}),hFr=y2({client:{},keywords:ur("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:ur("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:ur("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:ur("commentSlashSlash decimallessFloat"),hooks:{}}),fFr=y2({client:ur("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:ur("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:ur("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:ur("date time timestamp"),support:ur("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),gFr=y2({keywords:ur("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:ur("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:ur("date timestamp"),support:ur("ODBCdotTable doubleQuote binaryNumber hexNumber")}),mFr=y2({client:ur("source"),keywords:ur(kI+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:ur("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:ur("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),kFr=y2({keywords:ur("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:ur("false true"),builtin:ur("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),vFr=y2({client:ur("source"),keywords:ur("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:ur("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),AFr=y2({keywords:ur("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:ur("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:ur("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable doubleQuote zerolessFloat")}),pFr=y2({client:ur("source"),keywords:ur("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:ur("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:ur("time"),support:ur("decimallessFloat zerolessFloat binaryNumber hexNumber")}),bFr=Object.freeze(Object.defineProperty({__proto__:null,cassandra:hFr,esper:pFr,gpSQL:vFr,gql:kFr,hive:gFr,mariaDB:dFr,msSQL:lFr,mySQL:cFr,pgSQL:mFr,plSQL:fFr,sparkSQL:AFr,sql:y2,sqlite:uFr,standardSQL:aFr},Symbol.toStringTag,{value:"Module"})),wFr=jKe({start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],languageData:{name:"factor",dontIndentStates:["start","vocabulary","string","string3","stack"],commentTokens:{line:"!"}}}),OFr=Object.freeze(Object.defineProperty({__proto__:null,factor:wFr},Symbol.toStringTag,{value:"Module"}));var yFr={term:!0,method:!0,accu:!0,rule:!0,then:!0,is:!0,and:!0,or:!0,if:!0,default:!0},Hxn={var_input:!0,var_output:!0,fuzzify:!0,defuzzify:!0,function_block:!0,ruleblock:!0},fFe={end_ruleblock:!0,end_defuzzify:!0,end_function_block:!0,end_fuzzify:!0,end_var:!0},CFr={true:!0,false:!0,nan:!0,real:!0,min:!0,max:!0,cog:!0,cogs:!0},o4t=/[+\-*&^%:=<>!|\/]/;function gFe(e,t){var n=e.next();if(/[\d\.]/.test(n))return n=="."?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):n=="0"?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(n=="/"||n=="("){if(e.eat("*"))return t.tokenize=s4t,s4t(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(o4t.test(n))return e.eatWhile(o4t),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current().toLowerCase();return yFr.propertyIsEnumerable(r)||Hxn.propertyIsEnumerable(r)||fFe.propertyIsEnumerable(r)?"keyword":CFr.propertyIsEnumerable(r)?"atom":"variable"}function s4t(e,t){for(var n=!1,r;r=e.next();){if((r=="/"||r==")")&&n){t.tokenize=gFe;break}n=r=="*"}return"comment"}function $xn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function _Fr(e,t,n){return e.context=new $xn(e.indented,t,n,null,e.context)}function SFr(e){if(e.context.prev){var t=e.context.type;return t=="end_block"&&(e.indented=e.context.indented),e.context=e.context.prev}}const LFr={name:"fcl",startState:function(e){return{tokenize:null,context:new $xn(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;var r=(t.tokenize||gFe)(e,t);if(r=="comment")return r;n.align==null&&(n.align=!0);var o=e.current().toLowerCase();return Hxn.propertyIsEnumerable(o)?_Fr(t,e.column(),"end_block"):fFe.propertyIsEnumerable(o)&&SFr(t),t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=gFe&&e.tokenize!=null)return 0;var r=e.context,o=fFe.propertyIsEnumerable(t);return r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{commentTokens:{line:"//",block:{open:"(*",close:"*)"}}}},xFr=Object.freeze(Object.defineProperty({__proto__:null,fcl:LFr},Symbol.toStringTag,{value:"Module"}));function Xxn(e){var t=[];return e.split(" ").forEach(function(n){t.push({name:n})}),t}var EFr=Xxn("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"),TFr=Xxn("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");function h8e(e,t){var n;for(n=e.length-1;n>=0;n--)if(e[n].name===t.toUpperCase())return e[n]}const QFr={name:"forth",startState:function(){return{state:"",base:10,coreWordList:EFr,immediateWordList:TFr,wordList:[]}},token:function(e,t){var n;if(e.eatSpace())return null;if(t.state===""){if(e.match(/^(\]|:NONAME)(\s|$)/i))return t.state=" compilation","builtin";if(n=e.match(/^(\:)\s+(\S+)(\s|$)+/),n)return t.wordList.push({name:n[2].toUpperCase()}),t.state=" compilation","def";if(n=e.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i),n)return t.wordList.push({name:n[2].toUpperCase()}),"def";if(n=e.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/),n)return"builtin"}else{if(e.match(/^(\;|\[)(\s)/))return t.state="",e.backUp(1),"builtin";if(e.match(/^(\;|\[)($)/))return t.state="","builtin";if(e.match(/^(POSTPONE)\s+\S+(\s|$)+/))return"builtin"}if(n=e.match(/^(\S+)(\s+|$)/),n)return h8e(t.wordList,n[1])!==void 0?"variable":n[1]==="\\"?(e.skipToEnd(),"comment"):h8e(t.coreWordList,n[1])!==void 0?"builtin":h8e(t.immediateWordList,n[1])!==void 0?"keyword":n[1]==="("?(e.eatWhile(function(r){return r!==")"}),e.eat(")"),"comment"):n[1]===".("?(e.eatWhile(function(r){return r!==")"}),e.eat(")"),"string"):n[1]==='S"'||n[1]==='."'||n[1]==='C"'?(e.eatWhile(function(r){return r!=='"'}),e.eat('"'),"string"):n[1]-68719476735?"number":"atom"}},DFr=Object.freeze(Object.defineProperty({__proto__:null,forth:QFr},Symbol.toStringTag,{value:"Module"}));function zKe(e){for(var t={},n=0;n\/\:]/,MFr=/^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i;function PFr(e,t){if(e.match(MFr))return"operator";var n=e.next();if(n=="!")return e.skipToEnd(),"comment";if(n=='"'||n=="'")return t.tokenize=FFr(n),t.tokenize(e,t);if(/[\[\]\(\),]/.test(n))return null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(a4t.test(n))return e.eatWhile(a4t),"operator";e.eatWhile(/[\w\$_]/);var r=e.current().toLowerCase();return BFr.hasOwnProperty(r)?"keyword":RFr.hasOwnProperty(r)||IFr.hasOwnProperty(r)?"builtin":"variable"}function FFr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=null),"string"}}const NFr={name:"fortran",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||PFr)(e,t);return n=="comment"||n=="meta",n}},UFr=Object.freeze(Object.defineProperty({__proto__:null,fortran:NFr},Symbol.toStringTag,{value:"Module"}));function HKe(e){var t={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},n=e.extraWords||{};for(var r in n)n.hasOwnProperty(r)&&(t[r]=e.extraWords[r]);var o=[];for(var s in t)o.push(s);function a(h,g){var m=h.next();if(m==='"')return g.tokenize=l,g.tokenize(h,g);if(m==="{"&&h.eat("|"))return g.longString=!0,g.tokenize=u,g.tokenize(h,g);if(m==="("&&h.match(/^\*(?!\))/))return g.commentLevel++,g.tokenize=d,g.tokenize(h,g);if(m==="~"||m==="?")return h.eatWhile(/\w/),"variableName.special";if(m==="`")return h.eatWhile(/\w/),"quote";if(m==="/"&&e.slashComments&&h.eat("/"))return h.skipToEnd(),"comment";if(/\d/.test(m))return m==="0"&&h.eat(/[bB]/)&&h.eatWhile(/[01]/),m==="0"&&h.eat(/[xX]/)&&h.eatWhile(/[0-9a-fA-F]/),m==="0"&&h.eat(/[oO]/)?h.eatWhile(/[0-7]/):(h.eatWhile(/[\d_]/),h.eat(".")&&h.eatWhile(/[\d]/),h.eat(/[eE]/)&&h.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(m))return"operator";if(/[\w\xa1-\uffff]/.test(m)){h.eatWhile(/[\w\xa1-\uffff]/);var v=h.current();return t.hasOwnProperty(v)?t[v]:"variable"}return null}function l(h,g){for(var m,v=!1,f=!1;(m=h.next())!=null;){if(m==='"'&&!f){v=!0;break}f=!f&&m==="\\"}return v&&!f&&(g.tokenize=a),"string"}function d(h,g){for(var m,v;g.commentLevel>0&&(v=h.next())!=null;)m==="("&&v==="*"&&g.commentLevel++,m==="*"&&v===")"&&g.commentLevel--,m=v;return g.commentLevel<=0&&(g.tokenize=a),"comment"}function u(h,g){for(var m,v;g.longString&&(v=h.next())!=null;)m==="|"&&v==="}"&&(g.longString=!1),m=v;return g.longString||(g.tokenize=a),"string"}return{startState:function(){return{tokenize:a,commentLevel:0,longString:!1}},token:function(h,g){return h.eatSpace()?null:g.tokenize(h,g)},languageData:{autocomplete:o,commentTokens:{line:e.slashComments?"//":void 0,block:{open:"(*",close:"*)"}}}}}const jFr=HKe({extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),WFr=HKe({extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),VFr=HKe({extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0}),f8e=Object.freeze(Object.defineProperty({__proto__:null,fSharp:WFr,oCaml:jFr,sml:VFr},Symbol.toStringTag,{value:"Module"}));function Gxn(e){var t=[],n="",r={".abort":"builtin",".align":"builtin",".altmacro":"builtin",".ascii":"builtin",".asciz":"builtin",".balign":"builtin",".balignw":"builtin",".balignl":"builtin",".bundle_align_mode":"builtin",".bundle_lock":"builtin",".bundle_unlock":"builtin",".byte":"builtin",".cfi_startproc":"builtin",".comm":"builtin",".data":"builtin",".def":"builtin",".desc":"builtin",".dim":"builtin",".double":"builtin",".eject":"builtin",".else":"builtin",".elseif":"builtin",".end":"builtin",".endef":"builtin",".endfunc":"builtin",".endif":"builtin",".equ":"builtin",".equiv":"builtin",".eqv":"builtin",".err":"builtin",".error":"builtin",".exitm":"builtin",".extern":"builtin",".fail":"builtin",".file":"builtin",".fill":"builtin",".float":"builtin",".func":"builtin",".global":"builtin",".gnu_attribute":"builtin",".hidden":"builtin",".hword":"builtin",".ident":"builtin",".if":"builtin",".incbin":"builtin",".include":"builtin",".int":"builtin",".internal":"builtin",".irp":"builtin",".irpc":"builtin",".lcomm":"builtin",".lflags":"builtin",".line":"builtin",".linkonce":"builtin",".list":"builtin",".ln":"builtin",".loc":"builtin",".loc_mark_labels":"builtin",".local":"builtin",".long":"builtin",".macro":"builtin",".mri":"builtin",".noaltmacro":"builtin",".nolist":"builtin",".octa":"builtin",".offset":"builtin",".org":"builtin",".p2align":"builtin",".popsection":"builtin",".previous":"builtin",".print":"builtin",".protected":"builtin",".psize":"builtin",".purgem":"builtin",".pushsection":"builtin",".quad":"builtin",".reloc":"builtin",".rept":"builtin",".sbttl":"builtin",".scl":"builtin",".section":"builtin",".set":"builtin",".short":"builtin",".single":"builtin",".size":"builtin",".skip":"builtin",".sleb128":"builtin",".space":"builtin",".stab":"builtin",".string":"builtin",".struct":"builtin",".subsection":"builtin",".symver":"builtin",".tag":"builtin",".text":"builtin",".title":"builtin",".type":"builtin",".uleb128":"builtin",".val":"builtin",".version":"builtin",".vtable_entry":"builtin",".vtable_inherit":"builtin",".warning":"builtin",".weak":"builtin",".weakref":"builtin",".word":"builtin"},o={};function s(){n="#",o.al="variable",o.ah="variable",o.ax="variable",o.eax="variableName.special",o.rax="variableName.special",o.bl="variable",o.bh="variable",o.bx="variable",o.ebx="variableName.special",o.rbx="variableName.special",o.cl="variable",o.ch="variable",o.cx="variable",o.ecx="variableName.special",o.rcx="variableName.special",o.dl="variable",o.dh="variable",o.dx="variable",o.edx="variableName.special",o.rdx="variableName.special",o.si="variable",o.esi="variableName.special",o.rsi="variableName.special",o.di="variable",o.edi="variableName.special",o.rdi="variableName.special",o.sp="variable",o.esp="variableName.special",o.rsp="variableName.special",o.bp="variable",o.ebp="variableName.special",o.rbp="variableName.special",o.ip="variable",o.eip="variableName.special",o.rip="variableName.special",o.cs="keyword",o.ds="keyword",o.ss="keyword",o.es="keyword",o.fs="keyword",o.gs="keyword"}function a(){n="@",r.syntax="builtin",o.r0="variable",o.r1="variable",o.r2="variable",o.r3="variable",o.r4="variable",o.r5="variable",o.r6="variable",o.r7="variable",o.r8="variable",o.r9="variable",o.r10="variable",o.r11="variable",o.r12="variable",o.sp="variableName.special",o.lr="variableName.special",o.pc="variableName.special",o.r13=o.sp,o.r14=o.lr,o.r15=o.pc,t.push(function(u,h){if(u==="#")return h.eatWhile(/\w/),"number"})}e==="x86"?s():(e==="arm"||e==="armv6")&&a();function l(u,h){for(var g=!1,m;(m=u.next())!=null;){if(m===h&&!g)return!1;g=!g&&m==="\\"}return g}function d(u,h){for(var g=!1,m;(m=u.next())!=null;){if(m==="/"&&g){h.tokenize=null;break}g=m==="*"}return"comment"}return{name:"gas",startState:function(){return{tokenize:null}},token:function(u,h){if(h.tokenize)return h.tokenize(u,h);if(u.eatSpace())return null;var g,m,v=u.next();if(v==="/"&&u.eat("*"))return h.tokenize=d,d(u,h);if(v===n)return u.skipToEnd(),"comment";if(v==='"')return l(u,'"'),"string";if(v===".")return u.eatWhile(/\w/),m=u.current().toLowerCase(),g=r[m],g||null;if(v==="=")return u.eatWhile(/\w/),"tag";if(v==="{"||v==="}")return"bracket";if(/\d/.test(v))return v==="0"&&u.eat("x")?(u.eatWhile(/[0-9a-fA-F]/),"number"):(u.eatWhile(/\d/),"number");if(/\w/.test(v))return u.eatWhile(/\w/),u.eat(":")?"tag":(m=u.current().toLowerCase(),g=o[m],g||null);for(var f=0;f]*>?/)?"variable":(e.next(),e.eatWhile(/[^@"<#]/),null)}},GFr=Object.freeze(Object.defineProperty({__proto__:null,gherkin:XFr},Symbol.toStringTag,{value:"Module"}));function $pe(e){for(var t={},n=e.split(" "),r=0;r"))return Hm="->",null;if(/[+\-*&%=<>!?|\/~]/.test(n))return e.eatWhile(/[+\-*&%=<>|~]/),"operator";if(e.eatWhile(/[\w\$_]/),n=="@")return e.eatWhile(/[\w\$_\.]/),"meta";if(t.lastToken==".")return"property";if(e.eat(":"))return Hm="proplabel","property";var r=e.current();return KFr.propertyIsEnumerable(r)?"atom":YFr.propertyIsEnumerable(r)?(ZFr.propertyIsEnumerable(r)?Hm="newstatement":qFr.propertyIsEnumerable(r)&&(Hm="standalone"),"keyword"):"variable"}$Ke.isBase=!0;function l4t(e,t,n){var r=!1;if(e!="/"&&t.eat(e))if(t.eat(e))r=!0;else return"string";function o(s,a){for(var l=!1,d,u=!r;(d=s.next())!=null;){if(d==e&&!l){if(!r)break;if(s.match(e+e)){u=!0;break}}if(e=='"'&&d=="$"&&!l){if(s.eat("{"))return a.tokenize.push(JFr()),"string";if(s.match(/^\w/,!1))return a.tokenize.push(eNr),"string"}l=!l&&d=="\\"}return u&&a.tokenize.pop(),"string"}return n.tokenize.push(o),o(t,n)}function JFr(){var e=1;function t(n,r){if(n.peek()=="}"){if(e--,e==0)return r.tokenize.pop(),r.tokenize[r.tokenize.length-1](n,r)}else n.peek()=="{"&&e++;return $Ke(n,r)}return t.isBase=!0,t}function eNr(e,t){var n=e.match(/^(\.|[\w\$_]+)/);return(!n||!e.match(n[0]=="."?/^[\w$_]/:/^\./))&&t.tokenize.pop(),n?n[0]=="."?null:"variable":t.tokenize[t.tokenize.length-1](e,t)}function c4t(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize.pop();break}n=r=="*"}return"comment"}function mFe(e,t){return!e||e=="operator"||e=="->"||/[\.\[\{\(,;:]/.test(e)||e=="newstatement"||e=="keyword"||e=="proplabel"||e=="standalone"&&!t}function Yxn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function jae(e,t,n){return e.context=new Yxn(e.indented,t,n,null,e.context)}function c7(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const tNr={name:"groovy",startState:function(e){return{tokenize:[$Ke],context:new Yxn(-e,0,"top",!1),indented:0,startOfLine:!0,lastToken:null}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,n.type=="statement"&&!mFe(t.lastToken,!0)&&(c7(t),n=t.context)),e.eatSpace())return null;Hm=null;var r=t.tokenize[t.tokenize.length-1](e,t);if(r=="comment")return r;if(n.align==null&&(n.align=!0),(Hm==";"||Hm==":")&&n.type=="statement")c7(t);else if(Hm=="->"&&n.type=="statement"&&n.prev.type=="}")c7(t),t.context.align=!1;else if(Hm=="{")jae(t,e.column(),"}");else if(Hm=="[")jae(t,e.column(),"]");else if(Hm=="(")jae(t,e.column(),")");else if(Hm=="}"){for(;n.type=="statement";)n=c7(t);for(n.type=="}"&&(n=c7(t));n.type=="statement";)n=c7(t)}else Hm==n.type?c7(t):(n.type=="}"||n.type=="top"||n.type=="statement"&&Hm=="newstatement")&&jae(t,e.column(),"statement");return t.startOfLine=!1,t.lastToken=Hm||r,r},indent:function(e,t,n){if(!e.tokenize[e.tokenize.length-1].isBase)return null;var r=t&&t.charAt(0),o=e.context;o.type=="statement"&&!mFe(e.lastToken,!0)&&(o=o.prev);var s=r==o.type;return o.type=="statement"?o.indented+(r=="{"?0:n.unit):o.align?o.column+(s?0:1):o.indented+(s?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}},nNr=Object.freeze(Object.defineProperty({__proto__:null,groovy:tNr},Symbol.toStringTag,{value:"Module"}));function kFe(e,t,n){return t(n),n(e,t)}var iNr=/[a-z_]/,rNr=/[A-Z]/,g8e=/\d/,oNr=/[0-9A-Fa-f]/,sNr=/[0-7]/,d4t=/[a-z_A-Z0-9'\xa1-\uffff]/,m8e=/[-!#$%&*+.\/<=>?@\\^|~:]/,aNr=/[(),;[\]`{}]/,Zxn=/[ \t\v\f]/;function jW(e,t){if(e.eatWhile(Zxn))return null;var n=e.next();if(aNr.test(n)){if(n=="{"&&e.eat("-")){var r="comment";return e.eat("#")&&(r="meta"),kFe(e,t,qxn(r,1))}return null}if(n=="'")return e.eat("\\"),e.next(),e.eat("'")?"string":"error";if(n=='"')return kFe(e,t,Kxn);if(rNr.test(n))return e.eatWhile(d4t),e.eat(".")?"qualifier":"type";if(iNr.test(n))return e.eatWhile(d4t),"variable";if(g8e.test(n)){if(n=="0"){if(e.eat(/[xX]/))return e.eatWhile(oNr),"integer";if(e.eat(/[oO]/))return e.eatWhile(sNr),"number"}e.eatWhile(g8e);var r="number";return e.match(/^\.\d+/)&&(r="number"),e.eat(/[eE]/)&&(r="number",e.eat(/[-+]/),e.eatWhile(g8e)),r}return n=="."&&e.eat(".")?"keyword":m8e.test(n)?n=="-"&&e.eat(/-/)&&(e.eatWhile(/-/),!e.eat(m8e))?(e.skipToEnd(),"comment"):(e.eatWhile(m8e),"variable"):"error"}function qxn(e,t){return t==0?jW:function(n,r){for(var o=t;!n.eol();){var s=n.next();if(s=="{"&&n.eat("-"))++o;else if(s=="-"&&n.eat("}")&&(--o,o==0))return r(jW),e}return r(qxn(e,o)),e}}function Kxn(e,t){for(;!e.eol();){var n=e.next();if(n=='"')return t(jW),"string";if(n=="\\"){if(e.eol()||e.eat(Zxn))return t(lNr),"string";e.eat("&")||e.next()}}return t(jW),"error"}function lNr(e,t){return e.eat("\\")?kFe(e,t,Kxn):(e.next(),t(jW),"error")}var u4t=function(){var e={};function t(n){return function(){for(var r=0;r","@","~","=>"),t("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),t("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True"),t("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3"),e}();const cNr={name:"haskell",startState:function(){return{f:jW}},copyState:function(e){return{f:e.f}},token:function(e,t){var n=t.f(e,function(o){t.f=o}),r=e.current();return u4t.hasOwnProperty(r)?u4t[r]:n},languageData:{commentTokens:{line:"--",block:{open:"{-",close:"-}"}}}},dNr=Object.freeze(Object.defineProperty({__proto__:null,haskell:cNr},Symbol.toStringTag,{value:"Module"}));function Bh(e){return{type:e,style:"keyword"}}var h4t=Bh("keyword a"),k8e=Bh("keyword b"),Z$=Bh("keyword c"),uNr=Bh("operator"),v8e={type:"atom",style:"atom"},Wae={type:"attribute",style:"attribute"},Ym=Bh("typedef"),f4t={if:h4t,while:h4t,else:k8e,do:k8e,try:k8e,return:Z$,break:Z$,continue:Z$,new:Z$,throw:Z$,var:Bh("var"),inline:Wae,static:Wae,using:Bh("import"),public:Wae,private:Wae,cast:Bh("cast"),import:Bh("import"),macro:Bh("macro"),function:Bh("function"),catch:Bh("catch"),untyped:Bh("untyped"),callback:Bh("cb"),for:Bh("for"),switch:Bh("switch"),case:Bh("case"),default:Bh("default"),in:uNr,never:Bh("property_access"),trace:Bh("trace"),class:Ym,abstract:Ym,enum:Ym,interface:Ym,typedef:Ym,extends:Ym,implements:Ym,dynamic:Ym,true:v8e,false:v8e,null:v8e},A8e=/[+\-*&%=<>!?|]/;function g4t(e,t,n){return t.tokenize=n,n(e,t)}function Jxn(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r==t&&!n)return!0;n=!n&&r=="\\"}}var Ym,e5n;function yk(e,t,n){return Ym=e,e5n=n,t}function ime(e,t){var n=e.next();if(n=='"'||n=="'")return g4t(e,t,hNr(n));if(/[\[\]{}\(\),;\:\.]/.test(n))return yk(n);if(n=="0"&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),yk("number","number");if(/\d/.test(n)||n=="-"&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),yk("number","number");if(t.reAllowed&&n=="~"&&e.eat(/\//))return Jxn(e,"/"),e.eatWhile(/[gimsu]/),yk("regexp","string.special");if(n=="/")return e.eat("*")?g4t(e,t,fNr):e.eat("/")?(e.skipToEnd(),yk("comment","comment")):(e.eatWhile(A8e),yk("operator",null,e.current()));if(n=="#")return e.skipToEnd(),yk("conditional","meta");if(n=="@")return e.eat(/:/),e.eatWhile(/[\w_]/),yk("metadata","meta");if(A8e.test(n))return e.eatWhile(A8e),yk("operator",null,e.current());var r;if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),r=e.current(),yk("type","type",r);e.eatWhile(/[\w_]/);var r=e.current(),o=f4t.propertyIsEnumerable(r)&&f4t[r];return o&&t.kwAllowed?yk(o.type,o.style,r):yk("variable","variable",r)}function hNr(e){return function(t,n){return Jxn(t,e)&&(n.tokenize=ime),yk("string","string")}}function fNr(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=ime;break}n=r=="*"}return yk("comment","comment")}var t5n={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function n5n(e,t,n,r,o,s){this.indented=e,this.column=t,this.type=n,this.prev=o,this.info=s,r!=null&&(this.align=r)}function gNr(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function mNr(e,t,n,r,o){var s=e.cc;for(Rd.state=e,Rd.stream=o,Rd.marked=null,Rd.cc=s,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var a=s.length?s.pop():SS;if(a(n,r)){for(;s.length&&s[s.length-1].lex;)s.pop()();return Rd.marked?Rd.marked:n=="variable"&&gNr(e,r)?"variableName.local":n=="variable"&&kNr(e,r)?"variableName.special":t}}}function kNr(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r=0;e--)Rd.cc.push(arguments[e])}function pr(){return x8.apply(null,arguments),!0}function m4t(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function Xpe(e){var t=Rd.state;if(t.context){if(Rd.marked="def",m4t(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(m4t(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var vNr={name:"this",next:null};function vFe(){Rd.state.context||(Rd.state.localVars=vNr),Rd.state.context={prev:Rd.state.context,vars:Rd.state.localVars}}function rme(){Rd.state.localVars=Rd.state.context.vars,Rd.state.context=Rd.state.context.prev}rme.lex=!0;function gf(e,t){var n=function(){var r=Rd.state;r.lexical=new n5n(r.indented,Rd.stream.column(),e,null,r.lexical,t)};return n.lex=!0,n}function nh(){var e=Rd.state;e.lexical.prev&&(e.lexical.type==")"&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}nh.lex=!0;function i0(e){function t(n){return n==e?pr():e==";"?x8():pr(t)}return t}function SS(e){return e=="@"?pr(AFe):e=="var"?pr(gf("vardef"),XKe,i0(";"),nh):e=="keyword a"?pr(gf("form"),W4,SS,nh):e=="keyword b"?pr(gf("form"),SS,nh):e=="{"?pr(gf("}"),vFe,pFe,nh,rme):e==";"?pr():e=="attribute"?pr(r5n):e=="function"?pr(IK):e=="for"?pr(gf("form"),i0("("),gf(")"),yNr,i0(")"),nh,SS,nh):e=="variable"?pr(gf("stat"),bNr):e=="switch"?pr(gf("form"),W4,gf("}","switch"),i0("{"),pFe,nh,nh):e=="case"?pr(W4,i0(":")):e=="default"?pr(i0(":")):e=="catch"?pr(gf("form"),vFe,i0("("),a5n,i0(")"),SS,nh,rme):e=="import"?pr(o5n,i0(";")):e=="typedef"?pr(pNr):x8(gf("stat"),W4,i0(";"),nh)}function W4(e){return t5n.hasOwnProperty(e)||e=="type"?pr(yO):e=="function"?pr(IK):e=="keyword c"?pr(p8e):e=="("?pr(gf(")"),p8e,i0(")"),nh,yO):e=="operator"?pr(W4):e=="["?pr(gf("]"),WW(p8e,"]"),nh,yO):e=="{"?pr(gf("}"),WW(ONr,"}"),nh,yO):pr()}function p8e(e){return e.match(/[;\}\)\],]/)?x8():x8(W4)}function yO(e,t){if(e=="operator"&&/\+\+|--/.test(t))return pr(yO);if(e=="operator"||e==":")return pr(W4);if(e!=";"){if(e=="(")return pr(gf(")"),WW(W4,")"),nh,yO);if(e==".")return pr(wNr,yO);if(e=="[")return pr(gf("]"),W4,i0("]"),nh,yO)}}function r5n(e){if(e=="attribute")return pr(r5n);if(e=="function")return pr(IK);if(e=="var")return pr(XKe)}function AFe(e){if(e==":"||e=="variable")return pr(AFe);if(e=="(")return pr(gf(")"),WW(ANr,")"),nh,SS)}function ANr(e){if(e=="variable")return pr()}function o5n(e,t){if(e=="variable"&&/[A-Z]/.test(t.charAt(0)))return i5n(t),pr();if(e=="variable"||e=="property"||e=="."||t=="*")return pr(o5n)}function pNr(e,t){if(e=="variable"&&/[A-Z]/.test(t.charAt(0)))return i5n(t),pr();if(e=="type"&&/[A-Z]/.test(t.charAt(0)))return pr()}function bNr(e){return e==":"?pr(nh,SS):x8(yO,i0(";"),nh)}function wNr(e){if(e=="variable")return Rd.marked="property",pr()}function ONr(e){if(e=="variable"&&(Rd.marked="property"),t5n.hasOwnProperty(e))return pr(i0(":"),W4)}function WW(e,t){function n(r){return r==","?pr(e,n):r==t?pr():pr(i0(t))}return function(r){return r==t?pr():x8(e,n)}}function pFe(e){return e=="}"?pr():x8(SS,pFe)}function XKe(e,t){return e=="variable"?(Xpe(t),pr(Gpe,s5n)):pr()}function s5n(e,t){if(t=="=")return pr(W4,s5n);if(e==",")return pr(XKe)}function yNr(e,t){return e=="variable"?(Xpe(t),pr(CNr,W4)):x8()}function CNr(e,t){if(t=="in")return pr()}function IK(e,t){if(e=="variable"||e=="type")return Xpe(t),pr(IK);if(t=="new")return pr(IK);if(e=="(")return pr(gf(")"),vFe,WW(a5n,")"),nh,Gpe,SS,rme)}function Gpe(e){if(e==":")return pr(_Nr)}function _Nr(e){if(e=="type"||e=="variable")return pr();if(e=="{")return pr(gf("}"),WW(SNr,"}"),nh)}function SNr(e){if(e=="variable")return pr(Gpe)}function a5n(e,t){if(e=="variable")return Xpe(t),pr(Gpe)}const LNr={name:"haxe",startState:function(e){var t=["Int","Float","String","Void","Std","Bool","Dynamic","Array"],n={tokenize:ime,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new n5n(-e,0,"block",!1),importedtypes:t,context:null,indented:0};return n},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return Ym=="comment"?n:(t.reAllowed=!!(Ym=="operator"||Ym=="keyword c"||Ym.match(/^[\[{}\(,;:]$/)),t.kwAllowed=Ym!=".",mNr(t,n,Ym,e5n,e))},indent:function(e,t,n){if(e.tokenize!=ime)return 0;var r=t&&t.charAt(0),o=e.lexical;o.type=="stat"&&r=="}"&&(o=o.prev);var s=o.type,a=r==s;return s=="vardef"?o.indented+4:s=="form"&&r=="{"?o.indented:s=="stat"||s=="form"?o.indented+n.unit:o.info=="switch"&&!a?o.indented+(/^(?:case|default)\b/.test(t)?n.unit:2*n.unit):o.align?o.column+(a?0:1):o.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},xNr={name:"hxml",startState:function(){return{define:!1,inString:!1}},token:function(e,t){var o=e.peek(),n=e.sol();if(o=="#")return e.skipToEnd(),"comment";if(n&&o=="-"){var r="variable-2";return e.eat(/-/),e.peek()=="-"&&(e.eat(/-/),r="keyword a"),e.peek()=="D"&&(e.eat(/[D]/),r="keyword c",t.define=!0),e.eatWhile(/[A-Z]/i),r}var o=e.peek();return t.inString==!1&&o=="'"&&(t.inString=!0,e.next()),t.inString==!0?(e.skipTo("'")||e.skipToEnd(),e.peek()=="'"&&(e.next(),t.inString=!1),"string"):(e.next(),null)},languageData:{commentTokens:{line:"#"}}},k4t=Object.freeze(Object.defineProperty({__proto__:null,haxe:LNr,hxml:xNr},Symbol.toStringTag,{value:"Module"}));function GKe(e,t){return e.skipToEnd(),t.cur=Ype,"error"}function ENr(e,t){return e.match(/^HTTP\/\d\.\d/)?(t.cur=TNr,"keyword"):e.match(/^[A-Z]+/)&&/[ \t]/.test(e.peek())?(t.cur=DNr,"keyword"):GKe(e,t)}function TNr(e,t){var n=e.match(/^\d+/);if(!n)return GKe(e,t);t.cur=QNr;var r=Number(n[0]);return r>=100&&r<400?"atom":"error"}function QNr(e,t){return e.skipToEnd(),t.cur=Ype,null}function DNr(e,t){return e.eatWhile(/\S/),t.cur=BNr,"string.special"}function BNr(e,t){return e.match(/^HTTP\/\d\.\d$/)?(t.cur=Ype,"keyword"):GKe(e,t)}function Ype(e){return e.sol()&&!e.eat(/[ \t]/)?e.match(/^.*?:/)?"atom":(e.skipToEnd(),"error"):(e.skipToEnd(),"string")}function v4t(e){return e.skipToEnd(),null}const RNr={name:"http",token:function(e,t){var n=t.cur;return n!=Ype&&n!=v4t&&e.eatSpace()?null:n(e,t)},blankLine:function(e){e.cur=v4t},startState:function(){return{cur:ENr}}},INr=Object.freeze(Object.defineProperty({__proto__:null,http:RNr},Symbol.toStringTag,{value:"Module"}));function l5n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var c5n=["a_correlate","abs","acos","adapt_hist_equal","alog","alog2","alog10","amoeba","annotate","app_user_dir","app_user_dir_query","arg_present","array_equal","array_indices","arrow","ascii_template","asin","assoc","atan","axis","axis","bandpass_filter","bandreject_filter","barplot","bar_plot","beseli","beselj","beselk","besely","beta","biginteger","bilinear","bin_date","binary_template","bindgen","binomial","bit_ffs","bit_population","blas_axpy","blk_con","boolarr","boolean","boxplot","box_cursor","breakpoint","broyden","bubbleplot","butterworth","bytarr","byte","byteorder","bytscl","c_correlate","calendar","caldat","call_external","call_function","call_method","call_procedure","canny","catch","cd","cdf","ceil","chebyshev","check_math","chisqr_cvf","chisqr_pdf","choldc","cholsol","cindgen","cir_3pnt","clipboard","close","clust_wts","cluster","cluster_tree","cmyk_convert","code_coverage","color_convert","color_exchange","color_quan","color_range_map","colorbar","colorize_sample","colormap_applicable","colormap_gradient","colormap_rotation","colortable","comfit","command_line_args","common","compile_opt","complex","complexarr","complexround","compute_mesh_normals","cond","congrid","conj","constrained_min","contour","contour","convert_coord","convol","convol_fft","coord2to3","copy_lun","correlate","cos","cosh","cpu","cramer","createboxplotdata","create_cursor","create_struct","create_view","crossp","crvlength","ct_luminance","cti_test","cursor","curvefit","cv_coord","cvttobm","cw_animate","cw_animate_getp","cw_animate_load","cw_animate_run","cw_arcball","cw_bgroup","cw_clr_index","cw_colorsel","cw_defroi","cw_field","cw_filesel","cw_form","cw_fslider","cw_light_editor","cw_light_editor_get","cw_light_editor_set","cw_orient","cw_palette_editor","cw_palette_editor_get","cw_palette_editor_set","cw_pdmenu","cw_rgbslider","cw_tmpl","cw_zoom","db_exists","dblarr","dcindgen","dcomplex","dcomplexarr","define_key","define_msgblk","define_msgblk_from_file","defroi","defsysv","delvar","dendro_plot","dendrogram","deriv","derivsig","determ","device","dfpmin","diag_matrix","dialog_dbconnect","dialog_message","dialog_pickfile","dialog_printersetup","dialog_printjob","dialog_read_image","dialog_write_image","dictionary","digital_filter","dilate","dindgen","dissolve","dist","distance_measure","dlm_load","dlm_register","doc_library","double","draw_roi","edge_dog","efont","eigenql","eigenvec","ellipse","elmhes","emboss","empty","enable_sysrtn","eof","eos","erase","erf","erfc","erfcx","erode","errorplot","errplot","estimator_filter","execute","exit","exp","expand","expand_path","expint","extract","extract_slice","f_cvf","f_pdf","factorial","fft","file_basename","file_chmod","file_copy","file_delete","file_dirname","file_expand_path","file_gunzip","file_gzip","file_info","file_lines","file_link","file_mkdir","file_move","file_poll_input","file_readlink","file_same","file_search","file_tar","file_test","file_untar","file_unzip","file_which","file_zip","filepath","findgen","finite","fix","flick","float","floor","flow3","fltarr","flush","format_axis_values","forward_function","free_lun","fstat","fulstr","funct","function","fv_test","fx_root","fz_roots","gamma","gamma_ct","gauss_cvf","gauss_pdf","gauss_smooth","gauss2dfit","gaussfit","gaussian_function","gaussint","get_drive_list","get_dxf_objects","get_kbrd","get_login_info","get_lun","get_screen_size","getenv","getwindows","greg2jul","grib","grid_input","grid_tps","grid3","griddata","gs_iter","h_eq_ct","h_eq_int","hanning","hash","hdf","hdf5","heap_free","heap_gc","heap_nosave","heap_refcount","heap_save","help","hilbert","hist_2d","hist_equal","histogram","hls","hough","hqr","hsv","i18n_multibytetoutf8","i18n_multibytetowidechar","i18n_utf8tomultibyte","i18n_widechartomultibyte","ibeta","icontour","iconvertcoord","idelete","identity","idl_base64","idl_container","idl_validname","idlexbr_assistant","idlitsys_createtool","idlunit","iellipse","igamma","igetcurrent","igetdata","igetid","igetproperty","iimage","image","image_cont","image_statistics","image_threshold","imaginary","imap","indgen","int_2d","int_3d","int_tabulated","intarr","interpol","interpolate","interval_volume","invert","ioctl","iopen","ir_filter","iplot","ipolygon","ipolyline","iputdata","iregister","ireset","iresolve","irotate","isa","isave","iscale","isetcurrent","isetproperty","ishft","isocontour","isosurface","isurface","itext","itranslate","ivector","ivolume","izoom","journal","json_parse","json_serialize","jul2greg","julday","keyword_set","krig2d","kurtosis","kw_test","l64indgen","la_choldc","la_cholmprove","la_cholsol","la_determ","la_eigenproblem","la_eigenql","la_eigenvec","la_elmhes","la_gm_linear_model","la_hqr","la_invert","la_least_square_equality","la_least_squares","la_linear_equation","la_ludc","la_lumprove","la_lusol","la_svd","la_tridc","la_trimprove","la_triql","la_trired","la_trisol","label_date","label_region","ladfit","laguerre","lambda","lambdap","lambertw","laplacian","least_squares_filter","leefilt","legend","legendre","linbcg","lindgen","linfit","linkimage","list","ll_arc_distance","lmfit","lmgr","lngamma","lnp_test","loadct","locale_get","logical_and","logical_or","logical_true","lon64arr","lonarr","long","long64","lsode","lu_complex","ludc","lumprove","lusol","m_correlate","machar","make_array","make_dll","make_rt","map","mapcontinents","mapgrid","map_2points","map_continents","map_grid","map_image","map_patch","map_proj_forward","map_proj_image","map_proj_info","map_proj_init","map_proj_inverse","map_set","matrix_multiply","matrix_power","max","md_test","mean","meanabsdev","mean_filter","median","memory","mesh_clip","mesh_decimate","mesh_issolid","mesh_merge","mesh_numtriangles","mesh_obj","mesh_smooth","mesh_surfacearea","mesh_validate","mesh_volume","message","min","min_curve_surf","mk_html_help","modifyct","moment","morph_close","morph_distance","morph_gradient","morph_hitormiss","morph_open","morph_thin","morph_tophat","multi","n_elements","n_params","n_tags","ncdf","newton","noise_hurl","noise_pick","noise_scatter","noise_slur","norm","obj_class","obj_destroy","obj_hasmethod","obj_isa","obj_new","obj_valid","objarr","on_error","on_ioerror","online_help","openr","openu","openw","oplot","oploterr","orderedhash","p_correlate","parse_url","particle_trace","path_cache","path_sep","pcomp","plot","plot3d","plot","plot_3dbox","plot_field","ploterr","plots","polar_contour","polar_surface","polyfill","polyshade","pnt_line","point_lun","polarplot","poly","poly_2d","poly_area","poly_fit","polyfillv","polygon","polyline","polywarp","popd","powell","pref_commit","pref_get","pref_set","prewitt","primes","print","printf","printd","pro","product","profile","profiler","profiles","project_vol","ps_show_fonts","psafm","pseudo","ptr_free","ptr_new","ptr_valid","ptrarr","pushd","qgrid3","qhull","qromb","qromo","qsimp","query_*","query_ascii","query_bmp","query_csv","query_dicom","query_gif","query_image","query_jpeg","query_jpeg2000","query_mrsid","query_pict","query_png","query_ppm","query_srf","query_tiff","query_video","query_wav","r_correlate","r_test","radon","randomn","randomu","ranks","rdpix","read","readf","read_ascii","read_binary","read_bmp","read_csv","read_dicom","read_gif","read_image","read_interfile","read_jpeg","read_jpeg2000","read_mrsid","read_pict","read_png","read_ppm","read_spr","read_srf","read_sylk","read_tiff","read_video","read_wav","read_wave","read_x11_bitmap","read_xwd","reads","readu","real_part","rebin","recall_commands","recon3","reduce_colors","reform","region_grow","register_cursor","regress","replicate","replicate_inplace","resolve_all","resolve_routine","restore","retall","return","reverse","rk4","roberts","rot","rotate","round","routine_filepath","routine_info","rs_test","s_test","save","savgol","scale3","scale3d","scatterplot","scatterplot3d","scope_level","scope_traceback","scope_varfetch","scope_varname","search2d","search3d","sem_create","sem_delete","sem_lock","sem_release","set_plot","set_shading","setenv","sfit","shade_surf","shade_surf_irr","shade_volume","shift","shift_diff","shmdebug","shmmap","shmunmap","shmvar","show3","showfont","signum","simplex","sin","sindgen","sinh","size","skewness","skip_lun","slicer3","slide_image","smooth","sobel","socket","sort","spawn","sph_4pnt","sph_scat","spher_harm","spl_init","spl_interp","spline","spline_p","sprsab","sprsax","sprsin","sprstp","sqrt","standardize","stddev","stop","strarr","strcmp","strcompress","streamline","streamline","stregex","stretch","string","strjoin","strlen","strlowcase","strmatch","strmessage","strmid","strpos","strput","strsplit","strtrim","struct_assign","struct_hide","strupcase","surface","surface","surfr","svdc","svdfit","svsol","swap_endian","swap_endian_inplace","symbol","systime","t_cvf","t_pdf","t3d","tag_names","tan","tanh","tek_color","temporary","terminal_size","tetra_clip","tetra_surface","tetra_volume","text","thin","thread","threed","tic","time_test2","timegen","timer","timestamp","timestamptovalues","tm_test","toc","total","trace","transpose","tri_surf","triangulate","trigrid","triql","trired","trisol","truncate_lun","ts_coef","ts_diff","ts_fcast","ts_smooth","tv","tvcrs","tvlct","tvrd","tvscl","typename","uindgen","uint","uintarr","ul64indgen","ulindgen","ulon64arr","ulonarr","ulong","ulong64","uniq","unsharp_mask","usersym","value_locate","variance","vector","vector_field","vel","velovect","vert_t3d","voigt","volume","voronoi","voxel_proj","wait","warp_tri","watershed","wdelete","wf_draw","where","widget_base","widget_button","widget_combobox","widget_control","widget_displaycontextmenu","widget_draw","widget_droplist","widget_event","widget_info","widget_label","widget_list","widget_propertysheet","widget_slider","widget_tab","widget_table","widget_text","widget_tree","widget_tree_move","widget_window","wiener_filter","window","window","write_bmp","write_csv","write_gif","write_image","write_jpeg","write_jpeg2000","write_nrif","write_pict","write_png","write_ppm","write_spr","write_srf","write_sylk","write_tiff","write_video","write_wav","write_wave","writeu","wset","wshow","wtn","wv_applet","wv_cwt","wv_cw_wavelet","wv_denoise","wv_dwt","wv_fn_coiflet","wv_fn_daubechies","wv_fn_gaussian","wv_fn_haar","wv_fn_morlet","wv_fn_paul","wv_fn_symlet","wv_import_data","wv_import_wavelet","wv_plot3d_wps","wv_plot_multires","wv_pwt","wv_tool_denoise","xbm_edit","xdisplayfile","xdxf","xfont","xinteranimate","xloadct","xmanager","xmng_tmpl","xmtool","xobjview","xobjview_rotate","xobjview_write_image","xpalette","xpcolor","xplot3d","xregistered","xroi","xsq_test","xsurface","xvaredit","xvolume","xvolume_rotate","xvolume_write_image","xyouts","zlib_compress","zlib_uncompress","zoom","zoom_24"],MNr=l5n(c5n),d5n=["begin","end","endcase","endfor","endwhile","endif","endrep","endforeach","break","case","continue","for","foreach","goto","if","then","else","repeat","until","switch","while","do","pro","function"],PNr=l5n(d5n),FNr=new RegExp("^[_a-z¡-￿][_a-z0-9¡-￿]*","i"),NNr=/[+\-*&=<>\/@#~$]/,UNr=new RegExp("(and|or|eq|lt|le|gt|ge|ne|not)","i");function jNr(e){return e.eatSpace()?null:e.match(";")?(e.skipToEnd(),"comment"):e.match(/^[0-9\.+-]/,!1)&&(e.match(/^[+-]?0x[0-9a-fA-F]+/)||e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(PNr)?"keyword":e.match(MNr)?"builtin":e.match(FNr)?"variable":e.match(NNr)||e.match(UNr)?"operator":(e.next(),null)}const WNr={name:"idl",token:function(e){return jNr(e)},languageData:{autocomplete:c5n.concat(d5n)}},VNr=Object.freeze(Object.defineProperty({__proto__:null,idl:WNr},Symbol.toStringTag,{value:"Module"}));function Zpe(e){var t=e.statementIndent,n=e.jsonld,r=e.json||n,o=e.typescript,s=e.wordCharacters||/[\w$\xa1-\uffff]/,a=function(){function Ue(Wo){return{type:Wo,style:"keyword"}}var ut=Ue("keyword a"),Nt=Ue("keyword b"),wn=Ue("keyword c"),Cn=Ue("keyword d"),wr=Ue("operator"),Kr={type:"atom",style:"atom"};return{if:Ue("if"),while:ut,with:ut,else:Nt,do:Nt,try:Nt,finally:Nt,return:Cn,break:Cn,continue:Cn,new:Ue("new"),delete:wn,void:wn,throw:wn,debugger:Ue("debugger"),var:Ue("var"),const:Ue("var"),let:Ue("var"),function:Ue("function"),catch:Ue("catch"),for:Ue("for"),switch:Ue("switch"),case:Ue("case"),default:Ue("default"),in:wr,typeof:wr,instanceof:wr,true:Kr,false:Kr,null:Kr,undefined:Kr,NaN:Kr,Infinity:Kr,this:Ue("this"),class:Ue("class"),super:Ue("atom"),yield:wn,export:Ue("export"),import:Ue("import"),extends:wn,await:wn}}(),l=/[+\-*&%=<>!?|~^@]/,d=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function u(Ue){for(var ut=!1,Nt,wn=!1;(Nt=Ue.next())!=null;){if(!ut){if(Nt=="/"&&!wn)return;Nt=="["?wn=!0:wn&&Nt=="]"&&(wn=!1)}ut=!ut&&Nt=="\\"}}var h,g;function m(Ue,ut,Nt){return h=Ue,g=Nt,ut}function v(Ue,ut){var Nt=Ue.next();if(Nt=='"'||Nt=="'")return ut.tokenize=f(Nt),ut.tokenize(Ue,ut);if(Nt=="."&&Ue.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return m("number","number");if(Nt=="."&&Ue.match(".."))return m("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(Nt))return m(Nt);if(Nt=="="&&Ue.eat(">"))return m("=>","operator");if(Nt=="0"&&Ue.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return m("number","number");if(/\d/.test(Nt))return Ue.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),m("number","number");if(Nt=="/")return Ue.eat("*")?(ut.tokenize=k,k(Ue,ut)):Ue.eat("/")?(Ue.skipToEnd(),m("comment","comment")):wi(Ue,ut,1)?(u(Ue),Ue.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),m("regexp","string.special")):(Ue.eat("="),m("operator","operator",Ue.current()));if(Nt=="`")return ut.tokenize=A,A(Ue,ut);if(Nt=="#"&&Ue.peek()=="!")return Ue.skipToEnd(),m("meta","meta");if(Nt=="#"&&Ue.eatWhile(s))return m("variable","property");if(Nt=="<"&&Ue.match("!--")||Nt=="-"&&Ue.match("->")&&!/\S/.test(Ue.string.slice(0,Ue.start)))return Ue.skipToEnd(),m("comment","comment");if(l.test(Nt))return(Nt!=">"||!ut.lexical||ut.lexical.type!=">")&&(Ue.eat("=")?(Nt=="!"||Nt=="=")&&Ue.eat("="):/[<>*+\-|&?]/.test(Nt)&&(Ue.eat(Nt),Nt==">"&&Ue.eat(Nt))),Nt=="?"&&Ue.eat(".")?m("."):m("operator","operator",Ue.current());if(s.test(Nt)){Ue.eatWhile(s);var wn=Ue.current();if(ut.lastType!="."){if(a.propertyIsEnumerable(wn)){var Cn=a[wn];return m(Cn.type,Cn.style,wn)}if(wn=="async"&&Ue.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return m("async","keyword",wn)}return m("variable","variable",wn)}}function f(Ue){return function(ut,Nt){var wn=!1,Cn;if(n&&ut.peek()=="@"&&ut.match(d))return Nt.tokenize=v,m("jsonld-keyword","meta");for(;(Cn=ut.next())!=null&&!(Cn==Ue&&!wn);)wn=!wn&&Cn=="\\";return wn||(Nt.tokenize=v),m("string","string")}}function k(Ue,ut){for(var Nt=!1,wn;wn=Ue.next();){if(wn=="/"&&Nt){ut.tokenize=v;break}Nt=wn=="*"}return m("comment","comment")}function A(Ue,ut){for(var Nt=!1,wn;(wn=Ue.next())!=null;){if(!Nt&&(wn=="`"||wn=="$"&&Ue.eat("{"))){ut.tokenize=v;break}Nt=!Nt&&wn=="\\"}return m("quasi","string.special",Ue.current())}var p="([{}])";function b(Ue,ut){ut.fatArrowAt&&(ut.fatArrowAt=null);var Nt=Ue.string.indexOf("=>",Ue.start);if(!(Nt<0)){if(o){var wn=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(Ue.string.slice(Ue.start,Nt));wn&&(Nt=wn.index)}for(var Cn=0,wr=!1,Kr=Nt-1;Kr>=0;--Kr){var Wo=Ue.string.charAt(Kr),pl=p.indexOf(Wo);if(pl>=0&&pl<3){if(!Cn){++Kr;break}if(--Cn==0){Wo=="("&&(wr=!0);break}}else if(pl>=3&&pl<6)++Cn;else if(s.test(Wo))wr=!0;else if(/["'\/`]/.test(Wo))for(;;--Kr){if(Kr==0)return;var pu=Ue.string.charAt(Kr-1);if(pu==Wo&&Ue.string.charAt(Kr-2)!="\\"){Kr--;break}}else if(wr&&!Cn){++Kr;break}}wr&&!Cn&&(ut.fatArrowAt=Kr)}}var w={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function O(Ue,ut,Nt,wn,Cn,wr){this.indented=Ue,this.column=ut,this.type=Nt,this.prev=Cn,this.info=wr,wn!=null&&(this.align=wn)}function y(Ue,ut){for(var Nt=Ue.localVars;Nt;Nt=Nt.next)if(Nt.name==ut)return!0;for(var wn=Ue.context;wn;wn=wn.prev)for(var Nt=wn.vars;Nt;Nt=Nt.next)if(Nt.name==ut)return!0}function C(Ue,ut,Nt,wn,Cn){var wr=Ue.cc;for(_.state=Ue,_.stream=Cn,_.marked=null,_.cc=wr,_.style=ut,Ue.lexical.hasOwnProperty("align")||(Ue.lexical.align=!0);;){var Kr=wr.length?wr.pop():r?q:$;if(Kr(Nt,wn)){for(;wr.length&&wr[wr.length-1].lex;)wr.pop()();return _.marked?_.marked:Nt=="variable"&&y(Ue,wn)?"variableName.local":ut}}}var _={state:null,marked:null,cc:null};function S(){for(var Ue=arguments.length-1;Ue>=0;Ue--)_.cc.push(arguments[Ue])}function L(){return S.apply(null,arguments),!0}function E(Ue,ut){for(var Nt=ut;Nt;Nt=Nt.next)if(Nt.name==Ue)return!0;return!1}function T(Ue){var ut=_.state;if(_.marked="def",ut.context){if(ut.lexical.info=="var"&&ut.context&&ut.context.block){var Nt=D(Ue,ut.context);if(Nt!=null){ut.context=Nt;return}}else if(!E(Ue,ut.localVars)){ut.localVars=new M(Ue,ut.localVars);return}}e.globalVars&&!E(Ue,ut.globalVars)&&(ut.globalVars=new M(Ue,ut.globalVars))}function D(Ue,ut){if(ut)if(ut.block){var Nt=D(Ue,ut.prev);return Nt?Nt==ut.prev?ut:new Q(Nt,ut.vars,!0):null}else return E(Ue,ut.vars)?ut:new Q(ut.prev,new M(Ue,ut.vars),!1);else return null}function P(Ue){return Ue=="public"||Ue=="private"||Ue=="protected"||Ue=="abstract"||Ue=="readonly"}function Q(Ue,ut,Nt){this.prev=Ue,this.vars=ut,this.block=Nt}function M(Ue,ut){this.name=Ue,this.next=ut}var B=new M("this",new M("arguments",null));function R(){_.state.context=new Q(_.state.context,_.state.localVars,!1),_.state.localVars=B}function I(){_.state.context=new Q(_.state.context,_.state.localVars,!0),_.state.localVars=null}R.lex=I.lex=!0;function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}F.lex=!0;function j(Ue,ut){var Nt=function(){var wn=_.state,Cn=wn.indented;if(wn.lexical.type=="stat")Cn=wn.lexical.indented;else for(var wr=wn.lexical;wr&&wr.type==")"&&wr.align;wr=wr.prev)Cn=wr.indented;wn.lexical=new O(Cn,_.stream.column(),Ue,null,wn.lexical,ut)};return Nt.lex=!0,Nt}function W(){var Ue=_.state;Ue.lexical.prev&&(Ue.lexical.type==")"&&(Ue.indented=Ue.lexical.indented),Ue.lexical=Ue.lexical.prev)}W.lex=!0;function H(Ue){function ut(Nt){return Nt==Ue?L():Ue==";"||Nt=="}"||Nt==")"||Nt=="]"?S():L(ut)}return ut}function $(Ue,ut){return Ue=="var"?L(j("vardef",ut),on,H(";"),W):Ue=="keyword a"?L(j("form"),J,$,W):Ue=="keyword b"?L(j("form"),$,W):Ue=="keyword d"?_.stream.match(/^\s*$/,!1)?L():L(j("stat"),se,H(";"),W):Ue=="debugger"?L(H(";")):Ue=="{"?L(j("}"),I,Te,W,F):Ue==";"?L():Ue=="if"?(_.state.lexical.info=="else"&&_.state.cc[_.state.cc.length-1]==W&&_.state.cc.pop()(),L(j("form"),J,$,W,Hr)):Ue=="function"?L(is):Ue=="for"?L(j("form"),I,Bo,$,F,W):Ue=="class"||o&&ut=="interface"?(_.marked="keyword",L(j("form",Ue=="class"?Ue:ut),tr,W)):Ue=="variable"?o&&ut=="declare"?(_.marked="keyword",L($)):o&&(ut=="module"||ut=="enum"||ut=="type")&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword",ut=="enum"?L(bn):ut=="type"?L(Gt,H("operator"),et,H(";")):L(j("form"),pn,H("{"),j("}"),Te,W,W)):o&&ut=="namespace"?(_.marked="keyword",L(j("form"),q,$,W)):o&&ut=="abstract"?(_.marked="keyword",L($)):L(j("stat"),he):Ue=="switch"?L(j("form"),J,H("{"),j("}","switch"),I,Te,W,W,F):Ue=="case"?L(q,H(":")):Ue=="default"?L(H(":")):Ue=="catch"?L(j("form"),R,G,$,W,F):Ue=="export"?L(j("stat"),Kt,W):Ue=="import"?L(j("stat"),Zt,W):Ue=="async"?L($):ut=="@"?L(q,$):S(j("stat"),q,H(";"),W)}function G(Ue){if(Ue=="(")return L(gi,H(")"))}function q(Ue,ut){return oe(Ue,ut,!1)}function re(Ue,ut){return oe(Ue,ut,!0)}function J(Ue){return Ue!="("?S():L(j(")"),se,H(")"),W)}function oe(Ue,ut,Nt){if(_.state.fatArrowAt==_.stream.start){var wn=Nt?Y:z;if(Ue=="(")return L(R,j(")"),me(gi,")"),W,H("=>"),wn,F);if(Ue=="variable")return S(R,pn,H("=>"),wn,F)}var Cn=Nt?ue:le;return w.hasOwnProperty(Ue)?L(Cn):Ue=="function"?L(is,Cn):Ue=="class"||o&&ut=="interface"?(_.marked="keyword",L(j("form"),ri,W)):Ue=="keyword c"||Ue=="async"?L(Nt?re:q):Ue=="("?L(j(")"),se,H(")"),W,Cn):Ue=="operator"||Ue=="spread"?L(Nt?re:q):Ue=="["?L(j("]"),nt,W,Cn):Ue=="{"?_e(Ce,"}",null,Cn):Ue=="quasi"?S(ee,Cn):Ue=="new"?L(ie(Nt)):L()}function se(Ue){return Ue.match(/[;\}\)\],]/)?S():S(q)}function le(Ue,ut){return Ue==","?L(se):ue(Ue,ut,!1)}function ue(Ue,ut,Nt){var wn=Nt==!1?le:ue,Cn=Nt==!1?q:re;if(Ue=="=>")return L(R,Nt?Y:z,F);if(Ue=="operator")return/\+\+|--/.test(ut)||o&&ut=="!"?L(wn):o&&ut=="<"&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?L(j(">"),me(et,">"),W,wn):ut=="?"?L(q,H(":"),Cn):L(Cn);if(Ue=="quasi")return S(ee,wn);if(Ue!=";"){if(Ue=="(")return _e(re,")","call",wn);if(Ue==".")return L(pe,wn);if(Ue=="[")return L(j("]"),se,H("]"),W,wn);if(o&&ut=="as")return _.marked="keyword",L(et,wn);if(Ue=="regexp")return _.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),L(Cn)}}function ee(Ue,ut){return Ue!="quasi"?S():ut.slice(ut.length-2)!="${"?L(ee):L(se,de)}function de(Ue){if(Ue=="}")return _.marked="string.special",_.state.tokenize=A,L(ee)}function z(Ue){return b(_.stream,_.state),S(Ue=="{"?$:q)}function Y(Ue){return b(_.stream,_.state),S(Ue=="{"?$:re)}function ie(Ue){return function(ut){return ut=="."?L(Ue?Z:te):ut=="variable"&&o?L(St,Ue?ue:le):S(Ue?re:q)}}function te(Ue,ut){if(ut=="target")return _.marked="keyword",L(le)}function Z(Ue,ut){if(ut=="target")return _.marked="keyword",L(ue)}function he(Ue){return Ue==":"?L(W,$):S(le,H(";"),W)}function pe(Ue){if(Ue=="variable")return _.marked="property",L()}function Ce(Ue,ut){if(Ue=="async")return _.marked="property",L(Ce);if(Ue=="variable"||_.style=="keyword"){if(_.marked="property",ut=="get"||ut=="set")return L(Qe);var Nt;return o&&_.state.fatArrowAt==_.stream.start&&(Nt=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+Nt[0].length),L(ke)}else{if(Ue=="number"||Ue=="string")return _.marked=n?"property":_.style+" property",L(ke);if(Ue=="jsonld-keyword")return L(ke);if(o&&P(ut))return _.marked="keyword",L(Ce);if(Ue=="[")return L(q,De,H("]"),ke);if(Ue=="spread")return L(re,ke);if(ut=="*")return _.marked="keyword",L(Ce);if(Ue==":")return S(ke)}}function Qe(Ue){return Ue!="variable"?S(ke):(_.marked="property",L(is))}function ke(Ue){if(Ue==":")return L(re);if(Ue=="(")return S(is)}function me(Ue,ut,Nt){function wn(Cn,wr){if(Nt?Nt.indexOf(Cn)>-1:Cn==","){var Kr=_.state.lexical;return Kr.info=="call"&&(Kr.pos=(Kr.pos||0)+1),L(function(Wo,pl){return Wo==ut||pl==ut?S():S(Ue)},wn)}return Cn==ut||wr==ut?L():Nt&&Nt.indexOf(";")>-1?S(Ue):L(H(ut))}return function(Cn,wr){return Cn==ut||wr==ut?L():S(Ue,wn)}}function _e(Ue,ut,Nt){for(var wn=3;wn"),et);if(Ue=="quasi")return S(Ie,gt)}function st(Ue){if(Ue=="=>")return L(et)}function Me(Ue){return Ue.match(/[\}\)\]]/)?L():Ue==","||Ue==";"?L(Me):S(Se,Me)}function Se(Ue,ut){if(Ue=="variable"||_.style=="keyword")return _.marked="property",L(Se);if(ut=="?"||Ue=="number"||Ue=="string")return L(Se);if(Ue==":")return L(et);if(Ue=="[")return L(H("variable"),Ye,H("]"),Se);if(Ue=="(")return S(yi,Se);if(!Ue.match(/[;\}\)\],]/))return L()}function Ie(Ue,ut){return Ue!="quasi"?S():ut.slice(ut.length-2)!="${"?L(Ie):L(et,ze)}function ze(Ue){if(Ue=="}")return _.marked="string.special",_.state.tokenize=A,L(Ie)}function Ze(Ue,ut){return Ue=="variable"&&_.stream.match(/^\s*[?:]/,!1)||ut=="?"?L(Ze):Ue==":"?L(et):Ue=="spread"?L(Ze):S(et)}function gt(Ue,ut){if(ut=="<")return L(j(">"),me(et,">"),W,gt);if(ut=="|"||Ue=="."||ut=="&")return L(et);if(Ue=="[")return L(et,H("]"),gt);if(ut=="extends"||ut=="implements")return _.marked="keyword",L(et);if(ut=="?")return L(et,H(":"),et)}function St(Ue,ut){if(ut=="<")return L(j(">"),me(et,">"),W,gt)}function Pt(){return S(et,dn)}function dn(Ue,ut){if(ut=="=")return L(et)}function on(Ue,ut){return ut=="enum"?(_.marked="keyword",L(bn)):S(pn,De,Pi,rr)}function pn(Ue,ut){if(o&&P(ut))return _.marked="keyword",L(pn);if(Ue=="variable")return T(ut),L();if(Ue=="spread")return L(pn);if(Ue=="[")return _e(Zn,"]");if(Ue=="{")return _e(ni,"}")}function ni(Ue,ut){return Ue=="variable"&&!_.stream.match(/^\s*:/,!1)?(T(ut),L(Pi)):(Ue=="variable"&&(_.marked="property"),Ue=="spread"?L(pn):Ue=="}"?S():Ue=="["?L(q,H("]"),H(":"),ni):L(H(":"),pn,Pi))}function Zn(){return S(pn,Pi)}function Pi(Ue,ut){if(ut=="=")return L(re)}function rr(Ue){if(Ue==",")return L(on)}function Hr(Ue,ut){if(Ue=="keyword b"&&ut=="else")return L(j("form","else"),$,W)}function Bo(Ue,ut){if(ut=="await")return L(Bo);if(Ue=="(")return L(j(")"),lo,W)}function lo(Ue){return Ue=="var"?L(on,Fr):Ue=="variable"?L(Fr):S(Fr)}function Fr(Ue,ut){return Ue==")"?L():Ue==";"?L(Fr):ut=="in"||ut=="of"?(_.marked="keyword",L(q,Fr)):S(q,Fr)}function is(Ue,ut){if(ut=="*")return _.marked="keyword",L(is);if(Ue=="variable")return T(ut),L(is);if(Ue=="(")return L(R,j(")"),me(gi,")"),W,ot,$,F);if(o&&ut=="<")return L(j(">"),me(Pt,">"),W,is)}function yi(Ue,ut){if(ut=="*")return _.marked="keyword",L(yi);if(Ue=="variable")return T(ut),L(yi);if(Ue=="(")return L(R,j(")"),me(gi,")"),W,ot,F);if(o&&ut=="<")return L(j(">"),me(Pt,">"),W,yi)}function Gt(Ue,ut){if(Ue=="keyword"||Ue=="variable")return _.marked="type",L(Gt);if(ut=="<")return L(j(">"),me(Pt,">"),W)}function gi(Ue,ut){return ut=="@"&&L(q,gi),Ue=="spread"?L(gi):o&&P(ut)?(_.marked="keyword",L(gi)):o&&Ue=="this"?L(De,Pi):S(pn,De,Pi)}function ri(Ue,ut){return Ue=="variable"?tr(Ue,ut):ht(Ue,ut)}function tr(Ue,ut){if(Ue=="variable")return T(ut),L(ht)}function ht(Ue,ut){if(ut=="<")return L(j(">"),me(Pt,">"),W,ht);if(ut=="extends"||ut=="implements"||o&&Ue==",")return ut=="implements"&&(_.marked="keyword"),L(o?et:q,ht);if(Ue=="{")return L(j("}"),At,W)}function At(Ue,ut){if(Ue=="async"||Ue=="variable"&&(ut=="static"||ut=="get"||ut=="set"||o&&P(ut))&&_.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return _.marked="keyword",L(At);if(Ue=="variable"||_.style=="keyword")return _.marked="property",L(Mt,At);if(Ue=="number"||Ue=="string")return L(Mt,At);if(Ue=="[")return L(q,De,H("]"),Mt,At);if(ut=="*")return _.marked="keyword",L(At);if(o&&Ue=="(")return S(yi,At);if(Ue==";"||Ue==",")return L(At);if(Ue=="}")return L();if(ut=="@")return L(q,At)}function Mt(Ue,ut){if(ut=="!"||ut=="?")return L(Mt);if(Ue==":")return L(et,Pi);if(ut=="=")return L(re);var Nt=_.state.lexical.prev,wn=Nt&&Nt.info=="interface";return S(wn?yi:is)}function Kt(Ue,ut){return ut=="*"?(_.marked="keyword",L(Ne,H(";"))):ut=="default"?(_.marked="keyword",L(q,H(";"))):Ue=="{"?L(me(qn,"}"),Ne,H(";")):S($)}function qn(Ue,ut){if(ut=="as")return _.marked="keyword",L(H("variable"));if(Ue=="variable")return S(re,qn)}function Zt(Ue){return Ue=="string"?L():Ue=="("?S(q):Ue=="."?S(le):S(so,Un,Ne)}function so(Ue,ut){return Ue=="{"?_e(so,"}"):(Ue=="variable"&&T(ut),ut=="*"&&(_.marked="keyword"),L(dt))}function Un(Ue){if(Ue==",")return L(so,Un)}function dt(Ue,ut){if(ut=="as")return _.marked="keyword",L(so)}function Ne(Ue,ut){if(ut=="from")return _.marked="keyword",L(q)}function nt(Ue){return Ue=="]"?L():S(me(re,"]"))}function bn(){return S(j("form"),pn,H("{"),j("}"),me(hn,"}"),W,W)}function hn(){return S(pn,Pi)}function En(Ue,ut){return Ue.lastType=="operator"||Ue.lastType==","||l.test(ut.charAt(0))||/[,.]/.test(ut.charAt(0))}function wi(Ue,ut,Nt){return ut.tokenize==v&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(ut.lastType)||ut.lastType=="quasi"&&/\{\s*$/.test(Ue.string.slice(0,Ue.pos-Nt))}return{name:e.name,startState:function(Ue){var ut={tokenize:v,lastType:"sof",cc:[],lexical:new O(-Ue,0,"block",!1),localVars:e.localVars,context:e.localVars&&new Q(null,null,!1),indented:0};return e.globalVars&&typeof e.globalVars=="object"&&(ut.globalVars=e.globalVars),ut},token:function(Ue,ut){if(Ue.sol()&&(ut.lexical.hasOwnProperty("align")||(ut.lexical.align=!1),ut.indented=Ue.indentation(),b(Ue,ut)),ut.tokenize!=k&&Ue.eatSpace())return null;var Nt=ut.tokenize(Ue,ut);return h=="comment"?Nt:(ut.lastType=h=="operator"&&(g=="++"||g=="--")?"incdec":h,C(ut,Nt,h,g,Ue))},indent:function(Ue,ut,Nt){if(Ue.tokenize==k||Ue.tokenize==A)return null;if(Ue.tokenize!=v)return 0;var wn=ut&&ut.charAt(0),Cn=Ue.lexical,wr;if(!/^\s*else\b/.test(ut))for(var Kr=Ue.cc.length-1;Kr>=0;--Kr){var Wo=Ue.cc[Kr];if(Wo==W)Cn=Cn.prev;else if(Wo!=Hr&&Wo!=F)break}for(;(Cn.type=="stat"||Cn.type=="form")&&(wn=="}"||(wr=Ue.cc[Ue.cc.length-1])&&(wr==le||wr==ue)&&!/^[,\.=+\-*:?[\(]/.test(ut));)Cn=Cn.prev;t&&Cn.type==")"&&Cn.prev.type=="stat"&&(Cn=Cn.prev);var pl=Cn.type,pu=wn==pl;return pl=="vardef"?Cn.indented+(Ue.lastType=="operator"||Ue.lastType==","?Cn.info.length+1:0):pl=="form"&&wn=="{"?Cn.indented:pl=="form"?Cn.indented+Nt.unit:pl=="stat"?Cn.indented+(En(Ue,ut)?t||Nt.unit:0):Cn.info=="switch"&&!pu&&e.doubleIndentSwitch!=!1?Cn.indented+(/^(?:case|default)\b/.test(ut)?Nt.unit:2*Nt.unit):Cn.align?Cn.column+(pu?0:1):Cn.indented+(pu?0:Nt.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:r?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}const p6=Zpe({name:"javascript"}),zNr=Zpe({name:"json",json:!0}),HNr=Zpe({name:"json",jsonld:!0}),$Nr=Zpe({name:"typescript",typescript:!0}),XNr=Object.freeze(Object.defineProperty({__proto__:null,javascript:p6,json:zNr,jsonld:HNr,typescript:$Nr},Symbol.toStringTag,{value:"Module"}));function iE(e,t,n){return typeof n>"u"&&(n=""),typeof t>"u"&&(t="\\b"),new RegExp("^"+n+"(("+e.join(")|(")+"))"+t)}var GNr="\\\\[0-7]{1,3}",YNr="\\\\x[A-Fa-f0-9]{1,2}",ZNr=`\\\\[abefnrtv0%?'"\\\\]`,qNr="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])",u5n=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],KNr=iE(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),JNr=/^[;,()[\]{}]/,eUr=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,tUr=iE([GNr,YNr,ZNr,qNr],"'"),nUr=["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"],iUr=["end","else","elseif","catch","finally"],h5n=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],f5n=["true","false","nothing","NaN","Inf"],rUr=iE(nUr),oUr=iE(iUr),sUr=iE(h5n),aUr=iE(f5n),lUr=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,cUr=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,dUr=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,uUr=iE(u5n,"","@"),hUr=iE(u5n,"",":");function A4t(e){return e.nestedArrays>0}function fUr(e){return e.nestedGenerators>0}function p4t(e,t){return typeof t>"u"&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function VW(e,t){if(e.match("#=",!1))return t.tokenize=mUr,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r=e.peek();if(r==="#")return e.skipToEnd(),"comment";if(r==="["&&(t.scopes.push("["),t.nestedArrays++),r==="("&&(t.scopes.push("("),t.nestedGenerators++),A4t(t)&&r==="]"){for(;t.scopes.length&&p4t(t)!=="[";)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(fUr(t)&&r===")"){for(;t.scopes.length&&p4t(t)!=="(";)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(A4t(t)){if(t.lastToken=="end"&&e.match(":"))return"operator";if(e.match("end"))return"number"}var o;if((o=e.match(rUr,!1))&&t.scopes.push(o[0]),e.match(oUr,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=gUr,t.tokenize(e,t);if(!n&&(e.match(cUr)||e.match(hUr)))return"builtin";if(e.match(KNr))return"operator";if(e.match(/^\.?\d/,!1)){var s=RegExp(/^im\b/),a=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(a=!0),e.match(/^0x[0-9a-f_]+/i)&&(a=!0),e.match(/^0b[01_]+/i)&&(a=!0),e.match(/^0o[0-7_]+/i)&&(a=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(a=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(a=!0),a)return e.match(s),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=kUr,t.tokenize(e,t);if(e.match(dUr))return t.tokenize=vUr(e.current()),t.tokenize(e,t);if(e.match(lUr)||e.match(uUr))return"meta";if(e.match(JNr))return null;if(e.match(sUr))return"keyword";if(e.match(aUr))return"builtin";var l=t.isDefinition||t.lastToken=="function"||t.lastToken=="macro"||t.lastToken=="type"||t.lastToken=="struct"||t.lastToken=="immutable";return e.match(eUr)?l?e.peek()==="."?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function gUr(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():t.nestedParameters==0&&(t.tokenize=VW),"builtin"}function mUr(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,t.nestedComments==0&&(t.tokenize=VW)),"comment"}function kUr(e,t){var n=!1,r;if(e.match(tUr))n=!0;else if(r=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){var o=parseInt(r[1],16);(o<=55295||o>=57344)&&(n=!0,e.next())}else if(r=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var o=parseInt(r[1],16);o<=1114111&&(n=!0,e.next())}return n?(t.leavingExpr=!0,t.tokenize=VW,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=VW),"error")}function vUr(e){e.substr(-3)==='"""'?e='"""':e.substr(-1)==='"'&&(e='"');function t(n,r){if(n.eat("\\"))n.next();else{if(n.match(e))return r.tokenize=VW,r.leavingExpr=!0,"string";n.eat(/[`"]/)}return n.eatWhile(/[^\\`"]/),"string"}return t}const AUr={name:"julia",startState:function(){return{tokenize:VW,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,t,n){var r=0;return(t==="]"||t===")"||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t))&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:h5n.concat(f5n)}},pUr=Object.freeze(Object.defineProperty({__proto__:null,julia:AUr},Symbol.toStringTag,{value:"Module"}));var bUr=function(e,t){var n=t.next||"start";{t.next=t.next;var r=cN[n];if(r.splice){for(var o=0;o|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+Iue+")?))\\s*$"),gP="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",mP={token:"string",regex:".+"},cN={start:[{token:"docComment",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+gP},{token:"atom",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+gP},{token:"invalid",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+gP},{token:"className.standard",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+gP},{token:"variableName.function.standard",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+gP},{token:"variableName.standard",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+gP},{token:"variableName",regex:Iue+"\\s*:(?![:=])"},{token:"variableName",regex:Iue},{token:"operatorKeyword",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"operatorKeyword",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"docString",regex:"'''",next:"qdoc"},{token:"docString",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"regexp",regex:"//",next:"heregex"},{token:"regexp",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"number",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"paren",regex:"[({[]"},{token:"paren",regex:"[)}\\]]",next:"key"},{token:"operatorKeyword",regex:"\\S+"},{token:"content",regex:"\\s+"}],heregex:[{token:"regexp",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"regexp",regex:"\\s*#{"},{token:"comment",regex:"\\s+(?:#.*)?"},{token:"regexp",regex:"\\S+"}],key:[{token:"operatorKeyword",regex:"[.?@!]+"},{token:"variableName",regex:Iue,next:"start"},{token:"content",regex:"",next:"start"}],comment:[{token:"docComment",regex:".*?\\*/",next:"start"},{token:"docComment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},mP],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},mP],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},mP],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},mP],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},mP],words:[{token:"string",regex:".*?\\]>",next:"key"},mP]};for(var b8e in cN){var Vae=cN[b8e];if(Vae.splice)for(var zae=0,OUr=Vae.length;zae!?^\/\|]/;function S4t(e,t,n){return t.tokenize=n,n(e,t)}function qKe(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if(/[\[\]{}\(\),\.]/.test(r))return r=="("&&n?t.inParams=!0:r==")"&&(t.inParams=!1),null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if(r=="\\")return e.eat("\\"),e.eat(/./),"number";if(r=="/"&&e.eat("*"))return S4t(e,t,RUr);if(r==";"&&e.match(/ *\( *\(/))return S4t(e,t,IUr);if(r==";"&&!t.inParams)return e.skipToEnd(),"comment";if(r=='"')return e.eat(/"/),"keyword";if(r=="$")return e.eatWhile(/[$_a-z0-9A-Z\.:]/),O4t&&O4t.propertyIsEnumerable(e.current().toLowerCase())?"keyword":(t.beforeParams=!0,"builtin");if(r=="%")return e.eatWhile(/[^,\s()]/),t.beforeParams=!0,"string";if(_4t.test(r))return e.eatWhile(_4t),"operator";e.eatWhile(/[\w\$_{}]/);var o=e.current().toLowerCase();return y4t&&y4t.propertyIsEnumerable(o)?"keyword":C4t&&C4t.propertyIsEnumerable(o)?(t.beforeParams=!0,"keyword"):null}function RUr(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=qKe;break}n=r=="*"}return"comment"}function IUr(e,t){for(var n=0,r;r=e.next();){if(r==";"&&n==2){t.tokenize=qKe;break}r==")"?n++:r!=" "&&(n=0)}return"meta"}const MUr={name:"mirc",startState:function(){return{tokenize:qKe,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}},PUr=Object.freeze(Object.defineProperty({__proto__:null,mirc:MUr},Symbol.toStringTag,{value:"Module"}));var L4t="[a-zA-Z\\$][a-zA-Z0-9\\$]*",FUr="(?:\\d+)",g5n="(?:\\.\\d+|\\d+\\.\\d*|\\d+)",NUr="(?:\\.\\w+|\\w+\\.\\w*|\\w+)",m5n="(?:`(?:`?"+g5n+")?)",UUr=new RegExp("(?:"+FUr+"(?:\\^\\^"+NUr+m5n+"?(?:\\*\\^[+-]?\\d+)?))"),jUr=new RegExp("(?:"+g5n+m5n+"?(?:\\*\\^[+-]?\\d+)?)"),WUr=new RegExp("(?:`?)(?:"+L4t+")(?:`(?:"+L4t+"))*(?:`?)");function KKe(e,t){var n;return n=e.next(),n==='"'?(t.tokenize=VUr,t.tokenize(e,t)):n==="("&&e.eat("*")?(t.commentLevel++,t.tokenize=zUr,t.tokenize(e,t)):(e.backUp(1),e.match(UUr,!0,!1)||e.match(jUr,!0,!1)?"number":e.match(/(?:In|Out)\[[0-9]*\]/,!0,!1)?"atom":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,!0,!1)?"meta":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,!0,!1)?"string.special":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,!0,!1)||e.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variableName.special":e.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,!0,!1)?"character":e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":e.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,!0,!1)?"variableName.constant":e.match(WUr,!0,!1)?"keyword":e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,!0,!1)?"operator":(e.next(),"error"))}function VUr(e,t){for(var n,r=!1,o=!1;(n=e.next())!=null;){if(n==='"'&&!o){r=!0;break}o=!o&&n==="\\"}return r&&!o&&(t.tokenize=KKe),"string"}function zUr(e,t){for(var n,r;t.commentLevel>0&&(r=e.next())!=null;)n==="("&&r==="*"&&t.commentLevel++,n==="*"&&r===")"&&t.commentLevel--,n=r;return t.commentLevel<=0&&(t.tokenize=KKe),"comment"}const HUr={name:"mathematica",startState:function(){return{tokenize:KKe,commentLevel:0}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:"(*",close:"*)"}}}},$Ur=Object.freeze(Object.defineProperty({__proto__:null,mathematica:HUr},Symbol.toStringTag,{value:"Module"}));function JKe(e){for(var t={},n=e.split(" "),r=0;r+\-\/^\[\]]/,YUr=/(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/,CU=/[0-9]/,p5n=/[_a-zA-Z]/;function ZUr(e,t){return e.skipToEnd(),t.tokenize=null,"comment"}function qUr(e,t){for(var n=!1,r;r=e.next();){if(n&&r=="/"){t.tokenize=null;break}n=r=="*"}return"comment"}function KUr(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r=='"'&&!n){t.tokenize=null,t.sol=!1;break}n=!n&&r=="\\"}return"string"}function JUr(e,t){for(e.eatWhile(CU);e.eat(CU)||e.eat(p5n););var n=e.current();return t.sol&&(n=="package"||n=="model"||n=="when"||n=="connector")?t.level++:t.sol&&n=="end"&&t.level>0&&t.level--,t.tokenize=null,t.sol=!1,k5n.propertyIsEnumerable(n)?"keyword":v5n.propertyIsEnumerable(n)?"builtin":A5n.propertyIsEnumerable(n)?"atom":"variable"}function ejr(e,t){for(;e.eat(/[^']/););return t.tokenize=null,t.sol=!1,e.eat("'")?"variable":"error"}function tjr(e,t){return e.eatWhile(CU),e.eat(".")&&e.eatWhile(CU),(e.eat("e")||e.eat("E"))&&(e.eat("-")||e.eat("+"),e.eatWhile(CU)),t.tokenize=null,t.sol=!1,"number"}const njr={name:"modelica",startState:function(){return{tokenize:null,level:0,sol:!0}},token:function(e,t){if(t.tokenize!=null)return t.tokenize(e,t);if(e.sol()&&(t.sol=!0),e.eatSpace())return t.tokenize=null,null;var n=e.next();if(n=="/"&&e.eat("/"))t.tokenize=ZUr;else if(n=="/"&&e.eat("*"))t.tokenize=qUr;else{if(YUr.test(n+e.peek()))return e.next(),t.tokenize=null,"operator";if(GUr.test(n))return t.tokenize=null,"operator";if(p5n.test(n))t.tokenize=JUr;else if(n=="'"&&e.peek()&&e.peek()!="'")t.tokenize=ejr;else if(n=='"')t.tokenize=KUr;else if(CU.test(n))t.tokenize=tjr;else return t.tokenize=null,"error"}return t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!=null)return null;var r=e.level;return/(algorithm)/.test(t)&&r--,/(equation)/.test(t)&&r--,/(initial algorithm)/.test(t)&&r--,/(initial equation)/.test(t)&&r--,/(end)/.test(t)&&r--,r>0?n.unit*r:0},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:XUr}},ijr=Object.freeze(Object.defineProperty({__proto__:null,modelica:njr},Symbol.toStringTag,{value:"Module"}));function b5n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var rjr=new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]"),ojr=new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))"),sjr=new RegExp("^[\\.,:]"),ajr=new RegExp("[()]"),ljr=new RegExp("^[%A-Za-z][A-Za-z0-9]*"),cjr=["break","close","do","else","for","goto","halt","hang","if","job","kill","lock","merge","new","open","quit","read","set","tcommit","trollback","tstart","use","view","write","xecute","b","c","d","e","f","g","h","i","j","k","l","m","n","o","q","r","s","tc","tro","ts","u","v","w","x"],djr=["\\$ascii","\\$char","\\$data","\\$ecode","\\$estack","\\$etrap","\\$extract","\\$find","\\$fnumber","\\$get","\\$horolog","\\$io","\\$increment","\\$job","\\$justify","\\$length","\\$name","\\$next","\\$order","\\$piece","\\$qlength","\\$qsubscript","\\$query","\\$quit","\\$random","\\$reverse","\\$select","\\$stack","\\$test","\\$text","\\$translate","\\$view","\\$x","\\$y","\\$a","\\$c","\\$d","\\$e","\\$ec","\\$es","\\$et","\\$f","\\$fn","\\$g","\\$h","\\$i","\\$j","\\$l","\\$n","\\$na","\\$o","\\$p","\\$q","\\$ql","\\$qs","\\$r","\\$re","\\$s","\\$st","\\$t","\\$tr","\\$v","\\$z"],ujr=b5n(djr),hjr=b5n(cjr);function fjr(e,t){e.sol()&&(t.label=!0,t.commandMode=0);var n=e.peek();return n==" "||n==" "?(t.label=!1,t.commandMode==0?t.commandMode=1:(t.commandMode<0||t.commandMode==2)&&(t.commandMode=0)):n!="."&&t.commandMode>0&&(n==":"?t.commandMode=-1:t.commandMode=2),(n==="("||n===" ")&&(t.label=!1),n===";"?(e.skipToEnd(),"comment"):e.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/)?"number":n=='"'?e.skipTo('"')?(e.next(),"string"):(e.skipToEnd(),"error"):e.match(ojr)||e.match(rjr)?"operator":e.match(sjr)?null:ajr.test(n)?(e.next(),"bracket"):t.commandMode>0&&e.match(hjr)?"controlKeyword":e.match(ujr)?"builtin":e.match(ljr)?"variable":n==="$"||n==="^"?(e.next(),"builtin"):n==="@"?(e.next(),"string.special"):/[\w%]/.test(n)?(e.eatWhile(/[\w%]/),"variable"):(e.next(),"error")}const gjr={name:"mumps",startState:function(){return{label:!1,commandMode:0}},token:function(e,t){var n=fjr(e,t);return t.label?"tag":n}},mjr=Object.freeze(Object.defineProperty({__proto__:null,mumps:gjr},Symbol.toStringTag,{value:"Module"}));var w5n=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"],O5n=["Date","Subject","Comments","Keywords","Resent-Date"],kjr=/^[ \t]/,vjr=/^From /,Ajr=new RegExp("^("+w5n.join("|")+"): "),pjr=new RegExp("^("+O5n.join("|")+"): "),bjr=/^[^:]+:/,wjr=/^[^ ]+@[^ ]+/,Ojr=/^.*?(?=[^ ]+?@[^ ]+)/,yjr=/^<.*?>/,Cjr=/^.*?(?=<.*>)/;function _jr(e){return e==="Subject"?"header":"string"}function Sjr(e,t){if(e.sol()){if(t.inSeparator=!1,t.inHeader&&e.match(kjr))return null;if(t.inHeader=!1,t.header=null,e.match(vjr))return t.inHeaders=!0,t.inSeparator=!0,"atom";var n,r=!1;return(n=e.match(pjr))||(r=!0)&&(n=e.match(Ajr))?(t.inHeaders=!0,t.inHeader=!0,t.emailPermitted=r,t.header=n[1],"atom"):t.inHeaders&&(n=e.match(bjr))?(t.inHeader=!0,t.emailPermitted=!0,t.header=n[1],"atom"):(t.inHeaders=!1,e.skipToEnd(),null)}if(t.inSeparator)return e.match(wjr)?"link":(e.match(Ojr)||e.skipToEnd(),"atom");if(t.inHeader){var o=_jr(t.header);if(t.emailPermitted){if(e.match(yjr))return o+" link";if(e.match(Cjr))return o}return e.skipToEnd(),o}return e.skipToEnd(),null}const Ljr={name:"mbox",startState:function(){return{inSeparator:!1,inHeader:!1,emailPermitted:!1,header:null,inHeaders:!1}},token:Sjr,blankLine:function(e){e.inHeaders=e.inSeparator=e.inHeader=!1},languageData:{autocomplete:w5n.concat(O5n)}},xjr=Object.freeze(Object.defineProperty({__proto__:null,mbox:Ljr},Symbol.toStringTag,{value:"Module"}));function eJe(e){for(var t={},n=e.split(" "),r=0;r*\/]/.test(r)?f4(null,"select-op"):/[;{}:\[\]]/.test(r)?f4(null,r):(e.eatWhile(/[\w\\\-]/),f4("variable","variable"))}function x4t(e,t){for(var n=!1,r;(r=e.next())!=null;){if(n&&r=="/"){t.tokenize=Kpe;break}n=r=="*"}return f4("comment","comment")}function E4t(e,t){for(var n=0,r;(r=e.next())!=null;){if(n>=2&&r==">"){t.tokenize=Kpe;break}n=r=="-"?n+1:0}return f4("comment","comment")}function Djr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null&&!(o==e&&!r);)r=!r&&o=="\\";return r||(n.tokenize=Kpe),f4("string","string")}}const Bjr={name:"nginx",startState:function(){return{tokenize:Kpe,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;Fx=null;var n=t.tokenize(e,t),r=t.stack[t.stack.length-1];return Fx=="hash"&&r=="rule"?n="atom":n=="variable"&&(r=="rule"?n="number":(!r||r=="@media{")&&(n="tag")),r=="rule"&&/^[\{\};]$/.test(Fx)&&t.stack.pop(),Fx=="{"?r=="@media"?t.stack[t.stack.length-1]="@media{":t.stack.push("{"):Fx=="}"?t.stack.pop():Fx=="@media"?t.stack.push("@media"):r=="{"&&Fx!="comment"&&t.stack.push("rule"),n},indent:function(e,t,n){var r=e.stack.length;return/^\}/.test(t)&&(r-=e.stack[e.stack.length-1]=="rule"?2:1),e.baseIndent+r*n.unit},languageData:{indentOnInput:/^\s*\}$/}},Rjr=Object.freeze(Object.defineProperty({__proto__:null,nginx:Bjr},Symbol.toStringTag,{value:"Module"})),Ijr=jKe({start:[{regex:/(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/,token:"number"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/`(?:[^\\`]|\\.)*`?/,token:"string"},{regex:/^\s*(?:\!(addincludedir|addplugindir|appendfile|assert|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i,token:"keyword"},{regex:/^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:\!(else|endif|macroend))\b/i,token:"keyword",dedent:!0},{regex:/^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|GetWinVer|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Target|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/i,token:"keyword"},{regex:/^\s*(?:Function|PageEx|Section(?:Group)?)\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/i,token:"keyword",dedent:!0},{regex:/\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/i,token:"atom"},{regex:/\b(?:admin|all|amd64-unicode|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|x-86-(ansi|unicode)|zlib)\b/i,token:"builtin"},{regex:/\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:2|3|4|5|Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/i,token:"variable-2",indent:!0},{regex:/\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/i,token:"keyword",dedent:!0},{regex:/\$\{(?:RunningX64)\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:Disable|Enable)X64FSRedirection\}/i,token:"keyword",dedent:!0},{regex:/(#|;).*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/\$\w[\w\.]*/,token:"variable"},{regex:/\${[\!\w\.:-]+}/,token:"variableName.constant"},{regex:/\$\([\!\w\.:-]+\)/,token:"atom"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"nsis",indentOnInput:/^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/i,commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}}),Mjr=Object.freeze(Object.defineProperty({__proto__:null,nsis:Ijr},Symbol.toStringTag,{value:"Module"}));var Ps={PRE_SUBJECT:0,WRITING_SUB_URI:1,WRITING_BNODE_URI:2,PRE_PRED:3,WRITING_PRED_URI:4,PRE_OBJ:5,WRITING_OBJ_URI:6,WRITING_OBJ_BNODE:7,WRITING_OBJ_LITERAL:8,WRITING_LIT_LANG:9,WRITING_LIT_TYPE:10,POST_OBJ:11,ERROR:12};function $2(e,t){var n=e.location,r;n==Ps.PRE_SUBJECT&&t=="<"?r=Ps.WRITING_SUB_URI:n==Ps.PRE_SUBJECT&&t=="_"?r=Ps.WRITING_BNODE_URI:n==Ps.PRE_PRED&&t=="<"?r=Ps.WRITING_PRED_URI:n==Ps.PRE_OBJ&&t=="<"?r=Ps.WRITING_OBJ_URI:n==Ps.PRE_OBJ&&t=="_"?r=Ps.WRITING_OBJ_BNODE:n==Ps.PRE_OBJ&&t=='"'?r=Ps.WRITING_OBJ_LITERAL:n==Ps.WRITING_SUB_URI&&t==">"||n==Ps.WRITING_BNODE_URI&&t==" "?r=Ps.PRE_PRED:n==Ps.WRITING_PRED_URI&&t==">"?r=Ps.PRE_OBJ:n==Ps.WRITING_OBJ_URI&&t==">"||n==Ps.WRITING_OBJ_BNODE&&t==" "||n==Ps.WRITING_OBJ_LITERAL&&t=='"'||n==Ps.WRITING_LIT_LANG&&t==" "||n==Ps.WRITING_LIT_TYPE&&t==">"?r=Ps.POST_OBJ:n==Ps.WRITING_OBJ_LITERAL&&t=="@"?r=Ps.WRITING_LIT_LANG:n==Ps.WRITING_OBJ_LITERAL&&t=="^"?r=Ps.WRITING_LIT_TYPE:t==" "&&(n==Ps.PRE_SUBJECT||n==Ps.PRE_PRED||n==Ps.PRE_OBJ||n==Ps.POST_OBJ)?r=n:n==Ps.POST_OBJ&&t=="."?r=Ps.PRE_SUBJECT:r=Ps.ERROR,e.location=r}const Pjr={name:"ntriples",startState:function(){return{location:Ps.PRE_SUBJECT,uris:[],anchors:[],bnodes:[],langs:[],types:[]}},token:function(e,t){var n=e.next();if(n=="<"){$2(t,n);var r="";return e.eatWhile(function(d){return d!="#"&&d!=">"?(r+=d,!0):!1}),t.uris.push(r),e.match("#",!1)||(e.next(),$2(t,">")),"variable"}if(n=="#"){var o="";return e.eatWhile(function(d){return d!=">"&&d!=" "?(o+=d,!0):!1}),t.anchors.push(o),"url"}if(n==">")return $2(t,">"),"variable";if(n=="_"){$2(t,n);var s="";return e.eatWhile(function(d){return d!=" "?(s+=d,!0):!1}),t.bnodes.push(s),e.next(),$2(t," "),"builtin"}if(n=='"')return $2(t,n),e.eatWhile(function(d){return d!='"'}),e.next(),e.peek()!="@"&&e.peek()!="^"&&$2(t,'"'),"string";if(n=="@"){$2(t,"@");var a="";return e.eatWhile(function(d){return d!=" "?(a+=d,!0):!1}),t.langs.push(a),e.next(),$2(t," "),"string.special"}if(n=="^"){e.next(),$2(t,"^");var l="";return e.eatWhile(function(d){return d!=">"?(l+=d,!0):!1}),t.types.push(l),e.next(),$2(t,">"),"variable"}n==" "&&$2(t,n),n=="."&&$2(t,n)}},Fjr=Object.freeze(Object.defineProperty({__proto__:null,ntriples:Pjr},Symbol.toStringTag,{value:"Module"}));function tJe(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var Njr=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"),Ujr=new RegExp("^[\\(\\[\\{\\},:=;\\.]"),jjr=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"),Wjr=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"),Vjr=new RegExp("^((>>=)|(<<=))"),zjr=new RegExp("^[\\]\\)]"),Hjr=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*"),$jr=tJe(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]),Xjr=tJe(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);function y5n(e,t){return!e.sol()&&e.peek()==="'"?(e.next(),t.tokenize=_U,"operator"):(t.tokenize=_U,_U(e,t))}function Gjr(e,t){return e.match(/^.*%}/)?(t.tokenize=_U,"comment"):(e.skipToEnd(),"comment")}function _U(e,t){if(e.eatSpace())return null;if(e.match("%{"))return t.tokenize=Gjr,e.skipToEnd(),"comment";if(e.match(/^[%#]/))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/))return e.tokenize=_U,"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/))return"number"}if(e.match(tJe(["nan","NaN","inf","Inf"])))return"number";var n=e.match(/^"(?:[^"]|"")*("|$)/)||e.match(/^'(?:[^']|'')*('|$)/);return n?n[1]?"string":"error":e.match(Xjr)?"keyword":e.match($jr)?"builtin":e.match(Hjr)?"variable":e.match(Njr)||e.match(jjr)?"operator":e.match(Ujr)||e.match(Wjr)||e.match(Vjr)?null:e.match(zjr)?(t.tokenize=y5n,null):(e.next(),"error")}const Yjr={name:"octave",startState:function(){return{tokenize:_U}},token:function(e,t){var n=t.tokenize(e,t);return(n==="number"||n==="variable")&&(t.tokenize=y5n),n},languageData:{commentTokens:{line:"%"}}},Zjr=Object.freeze(Object.defineProperty({__proto__:null,octave:Yjr},Symbol.toStringTag,{value:"Module"}));function die(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var qjr=/[\^@!\|<>#~\.\*\-\+\\/,=]/,Kjr=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/,Jjr=/(:::)|(\.\.\.)|(=<:)|(>=:)/,C5n=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"],_5n=["end"],eWr=die(["true","false","nil","unit"]),tWr=die(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]),nWr=die(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]),S5n=die(C5n),L5n=die(_5n);function YB(e,t){if(e.eatSpace())return null;if(e.match(/[{}]/))return"bracket";if(e.match("[]"))return"keyword";if(e.match(Jjr)||e.match(Kjr))return"operator";if(e.match(eWr))return"atom";var n=e.match(nWr);if(n)return t.doInCurrentLine?t.doInCurrentLine=!1:t.currentIndent++,n[0]=="proc"||n[0]=="fun"?t.tokenize=oWr:n[0]=="class"?t.tokenize=iWr:n[0]=="meth"&&(t.tokenize=rWr),"keyword";if(e.match(S5n)||e.match(tWr))return"keyword";if(e.match(L5n))return t.currentIndent--,"keyword";var r=e.next();if(r=='"'||r=="'")return t.tokenize=sWr(r),t.tokenize(e,t);if(/[~\d]/.test(r)){if(r=="~")if(/^[0-9]/.test(e.peek())){if(e.next()=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}else return null;return r=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/)?"number":null}return r=="%"?(e.skipToEnd(),"comment"):r=="/"&&e.eat("*")?(t.tokenize=T4t,T4t(e,t)):qjr.test(r)?"operator":(e.eatWhile(/\w/),"variable")}function iWr(e,t){return e.eatSpace()?null:(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=YB,"type")}function rWr(e,t){return e.eatSpace()?null:(e.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=YB,"def")}function oWr(e,t){return e.eatSpace()?null:!t.hasPassedFirstStage&&e.eat("{")?(t.hasPassedFirstStage=!0,"bracket"):t.hasPassedFirstStage?(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/),t.hasPassedFirstStage=!1,t.tokenize=YB,"def"):(t.tokenize=YB,null)}function T4t(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=YB;break}n=r=="*"}return"comment"}function sWr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=YB),"string"}}function aWr(){var e=C5n.concat(_5n);return new RegExp("[\\[\\]]|("+e.join("|")+")$")}const lWr={name:"oz",startState:function(){return{tokenize:YB,currentIndent:0,doInCurrentLine:!1,hasPassedFirstStage:!1}},token:function(e,t){return e.sol()&&(t.doInCurrentLine=0),t.tokenize(e,t)},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(L5n)||r.match(S5n)||r.match(/(\[])/)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{indentOnInut:aWr(),commentTokens:{line:"%",block:{open:"/*",close:"*/"}}}},cWr=Object.freeze(Object.defineProperty({__proto__:null,oz:lWr},Symbol.toStringTag,{value:"Module"}));function dWr(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/;function fWr(e,t){var n=e.next();if(n=="#"&&t.startOfLine)return e.skipToEnd(),"meta";if(n=='"'||n=="'")return t.tokenize=gWr(n),t.tokenize(e,t);if(n=="("&&e.eat("*"))return t.tokenize=D4t,D4t(e,t);if(n=="{")return t.tokenize=B4t,B4t(e,t);if(/[\[\]\(\),;\:\.]/.test(n))return null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"&&e.eat("/"))return e.skipToEnd(),"comment";if(Q4t.test(n))return e.eatWhile(Q4t),"operator";e.eatWhile(/[\w\$_]/);var r=e.current().toLowerCase();return uWr.propertyIsEnumerable(r)?"keyword":hWr.propertyIsEnumerable(r)?"atom":"variable"}function gWr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=null),"string"}}function D4t(e,t){for(var n=!1,r;r=e.next();){if(r==")"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function B4t(e,t){for(var n;n=e.next();)if(n=="}"){t.tokenize=null;break}return"comment"}const mWr={name:"pascal",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||fWr)(e,t);return n=="comment"||n=="meta",n},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}},kWr=Object.freeze(Object.defineProperty({__proto__:null,pascal:mWr},Symbol.toStringTag,{value:"Module"}));function $f(e,t){return e.string.charAt(e.pos+(t||0))}function R4t(e,t){if(t){var n=e.pos-t;return e.string.substr(n>=0?n:0,t)}else return e.string.substr(0,e.pos-1)}function O8e(e,t){var n=e.string.length,r=n-e.pos+1;return e.string.substr(e.pos,t&&t=(r=e.string.length-1)?e.pos=r:e.pos=n}var q$={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},bl="string.special",wl=/[goseximacplud]/;function ho(e,t,n,r,o){return t.chain=null,t.style=null,t.tail=null,t.tokenize=function(s,a){for(var l=!1,d,u=0;d=s.next();){if(d===n[u]&&!l)return n[++u]!==void 0?(a.chain=n[u],a.style=r,a.tail=o):o&&s.eatWhile(o),a.tokenize=ome,r;l=!l&&d=="\\"}return r},t.tokenize(e,t)}function y8e(e,t,n){return t.tokenize=function(r,o){return r.string==n&&(o.tokenize=ome),r.skipToEnd(),"string"},t.tokenize(e,t)}function ome(e,t){if(e.eatSpace())return null;if(t.chain)return ho(e,t,t.chain,t.style,t.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/))return e.eatWhile(/\w/),y8e(e,t,e.current().substr(2));if(e.sol()&&e.match(/^\=item(?!\w)/))return y8e(e,t,"=cut");var n=e.next();if(n=='"'||n=="'"){if(R4t(e,3)=="<<"+n){var r=e.pos;e.eatWhile(/\w/);var o=e.current().substr(1);if(o&&e.eat(n))return y8e(e,t,o);e.pos=r}return ho(e,t,[n],"string")}if(n=="q"){var s=$f(e,-2);if(!(s&&/\w/.test(s))){if(s=$f(e,0),s=="x"){if(s=$f(e,1),s=="(")return Ld(e,2),ho(e,t,[")"],bl,wl);if(s=="[")return Ld(e,2),ho(e,t,["]"],bl,wl);if(s=="{")return Ld(e,2),ho(e,t,["}"],bl,wl);if(s=="<")return Ld(e,2),ho(e,t,[">"],bl,wl);if(/[\^'"!~\/]/.test(s))return Ld(e,1),ho(e,t,[e.eat(s)],bl,wl)}else if(s=="q"){if(s=$f(e,1),s=="(")return Ld(e,2),ho(e,t,[")"],"string");if(s=="[")return Ld(e,2),ho(e,t,["]"],"string");if(s=="{")return Ld(e,2),ho(e,t,["}"],"string");if(s=="<")return Ld(e,2),ho(e,t,[">"],"string");if(/[\^'"!~\/]/.test(s))return Ld(e,1),ho(e,t,[e.eat(s)],"string")}else if(s=="w"){if(s=$f(e,1),s=="(")return Ld(e,2),ho(e,t,[")"],"bracket");if(s=="[")return Ld(e,2),ho(e,t,["]"],"bracket");if(s=="{")return Ld(e,2),ho(e,t,["}"],"bracket");if(s=="<")return Ld(e,2),ho(e,t,[">"],"bracket");if(/[\^'"!~\/]/.test(s))return Ld(e,1),ho(e,t,[e.eat(s)],"bracket")}else if(s=="r"){if(s=$f(e,1),s=="(")return Ld(e,2),ho(e,t,[")"],bl,wl);if(s=="[")return Ld(e,2),ho(e,t,["]"],bl,wl);if(s=="{")return Ld(e,2),ho(e,t,["}"],bl,wl);if(s=="<")return Ld(e,2),ho(e,t,[">"],bl,wl);if(/[\^'"!~\/]/.test(s))return Ld(e,1),ho(e,t,[e.eat(s)],bl,wl)}else if(/[\^'"!~\/(\[{<]/.test(s)){if(s=="(")return Ld(e,1),ho(e,t,[")"],"string");if(s=="[")return Ld(e,1),ho(e,t,["]"],"string");if(s=="{")return Ld(e,1),ho(e,t,["}"],"string");if(s=="<")return Ld(e,1),ho(e,t,[">"],"string");if(/[\^'"!~\/]/.test(s))return ho(e,t,[e.eat(s)],"string")}}}if(n=="m"){var s=$f(e,-2);if(!(s&&/\w/.test(s))&&(s=e.eat(/[(\[{<\^'"!~\/]/),s)){if(/[\^'"!~\/]/.test(s))return ho(e,t,[s],bl,wl);if(s=="(")return ho(e,t,[")"],bl,wl);if(s=="[")return ho(e,t,["]"],bl,wl);if(s=="{")return ho(e,t,["}"],bl,wl);if(s=="<")return ho(e,t,[">"],bl,wl)}}if(n=="s"){var s=/[\/>\]})\w]/.test($f(e,-2));if(!s&&(s=e.eat(/[(\[{<\^'"!~\/]/),s))return s=="["?ho(e,t,["]","]"],bl,wl):s=="{"?ho(e,t,["}","}"],bl,wl):s=="<"?ho(e,t,[">",">"],bl,wl):s=="("?ho(e,t,[")",")"],bl,wl):ho(e,t,[s,s],bl,wl)}if(n=="y"){var s=/[\/>\]})\w]/.test($f(e,-2));if(!s&&(s=e.eat(/[(\[{<\^'"!~\/]/),s))return s=="["?ho(e,t,["]","]"],bl,wl):s=="{"?ho(e,t,["}","}"],bl,wl):s=="<"?ho(e,t,[">",">"],bl,wl):s=="("?ho(e,t,[")",")"],bl,wl):ho(e,t,[s,s],bl,wl)}if(n=="t"){var s=/[\/>\]})\w]/.test($f(e,-2));if(!s&&(s=e.eat("r"),s&&(s=e.eat(/[(\[{<\^'"!~\/]/),s)))return s=="["?ho(e,t,["]","]"],bl,wl):s=="{"?ho(e,t,["}","}"],bl,wl):s=="<"?ho(e,t,[">",">"],bl,wl):s=="("?ho(e,t,[")",")"],bl,wl):ho(e,t,[s,s],bl,wl)}if(n=="`")return ho(e,t,[n],"builtin");if(n=="/")return/~\s*$/.test(R4t(e))?ho(e,t,[n],bl,wl):"operator";if(n=="$"){var r=e.pos;if(e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";e.pos=r}if(/[$@%]/.test(n)){var r=e.pos;if(e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test($f(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var s=e.current();if(q$[s])return"builtin"}e.pos=r}if(/[$@%&]/.test(n)&&(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}"))){var s=e.current();return q$[s]?"builtin":"variable"}if(n=="#"&&$f(e,-2)!="$")return e.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(n)){var r=e.pos;if(e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),q$[e.current()])return"operator";e.pos=r}if(n=="_"&&e.pos==1){if(O8e(e,6)=="_END__")return ho(e,t,["\0"],"comment");if(O8e(e,7)=="_DATA__")return ho(e,t,["\0"],"builtin");if(O8e(e,7)=="_C__")return ho(e,t,["\0"],"string")}if(/\w/.test(n)){var r=e.pos;if($f(e,-2)=="{"&&($f(e,0)=="}"||e.eatWhile(/\w/)&&$f(e,0)=="}"))return"string";e.pos=r}if(/[A-Z]/.test(n)){var a=$f(e,-2),r=e.pos;if(e.eatWhile(/[A-Z_]/),/[\da-z]/.test($f(e,0)))e.pos=r;else{var s=q$[e.current()];return s?(s[1]&&(s=s[0]),a!=":"?s==1?"keyword":s==2?"def":s==3?"atom":s==4?"operator":s==5?"builtin":"meta":"meta"):"meta"}}if(/[a-zA-Z_]/.test(n)){var a=$f(e,-2);e.eatWhile(/\w/);var s=q$[e.current()];return s?(s[1]&&(s=s[0]),a!=":"?s==1?"keyword":s==2?"def":s==3?"atom":s==4?"operator":s==5?"builtin":"meta":"meta"):"meta"}return null}const vWr={name:"perl",startState:function(){return{tokenize:ome,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||ome)(e,t)},languageData:{commentTokens:{line:"#"},wordChars:"$"}},AWr=Object.freeze(Object.defineProperty({__proto__:null,perl:vWr},Symbol.toStringTag,{value:"Module"}));function nJe(e){for(var t={},n=e.split(" "),r=0;r=&?:\/!|]/;function F4t(e,t,n){return t.tokenize=n,n(e,t)}function pWr(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=iJe;break}n=r=="*"}return"comment"}function bWr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=iJe),"error"}}function iJe(e,t){var n=e.next();return n=='"'||n=="'"?F4t(e,t,bWr(n)):/[\[\]{}\(\),;\.]/.test(n)?null:/\d/.test(n)?(e.eatWhile(/[\w\.]/),"number"):n=="/"?e.eat("*")?F4t(e,t,pWr):(e.eatWhile(Hae),"operator"):n=="-"?e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(Hae),"operator"):Hae.test(n)?(e.eatWhile(Hae),"operator"):(e.eatWhile(/[\w\$_]/),M4t&&M4t.propertyIsEnumerable(e.current().toUpperCase())&&!e.eat(")")&&!e.eat(".")?"keyword":I4t&&I4t.propertyIsEnumerable(e.current().toUpperCase())?"builtin":P4t&&P4t.propertyIsEnumerable(e.current().toUpperCase())?"type":"variable")}const wWr={name:"pig",startState:function(){return{tokenize:iJe,startOfLine:!0}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{autocomplete:(x5n+T5n+E5n).split(" ")}},OWr=Object.freeze(Object.defineProperty({__proto__:null,pig:wWr},Symbol.toStringTag,{value:"Module"}));function Fz(e,t){t=t||{};for(var n=t.prefix!==void 0?t.prefix:"^",r=t.suffix!==void 0?t.suffix:"\\b",o=0;o/,LWr=Fz([_Wr,SWr],{suffix:""}),xWr=/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,EWr=/^[A-Za-z\_][A-Za-z\-\_\d]*\b/,TWr=/[A-Z]:|%|\?/i,QWr=Fz([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),DWr=Fz([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),BWr=Fz([TWr,QWr,DWr],{suffix:Q5n}),N4t={keyword:yWr,number:xWr,operator:LWr,builtin:BWr,punctuation:CWr,variable:EWr};function E8(e,t){var n=t.returnStack[t.returnStack.length-1];if(n&&n.shouldReturnFrom(t))return t.tokenize=n.tokenize,t.returnStack.pop(),t.tokenize(e,t);if(e.eatSpace())return null;if(e.eat("("))return t.bracketNesting+=1,"punctuation";if(e.eat(")"))return t.bracketNesting-=1,"punctuation";for(var r in N4t)if(e.match(N4t[r]))return r;var o=e.next();if(o==="'")return RWr(e,t);if(o==="$")return wFe(e,t);if(o==='"')return D5n(e,t);if(o==="<"&&e.eat("#"))return t.tokenize=U4t,U4t(e,t);if(o==="#")return e.skipToEnd(),"comment";if(o==="@"){var s=e.eat(/["']/);if(s&&e.eol())return t.tokenize=sme,t.startQuote=s[0],sme(e,t);if(e.eol())return"error";if(e.peek().match(/[({]/))return"punctuation";if(e.peek().match(bFe))return wFe(e,t)}return"error"}function RWr(e,t){for(var n;(n=e.peek())!=null;)if(e.next(),n==="'"&&!e.eat("'"))return t.tokenize=E8,"string";return"error"}function D5n(e,t){for(var n;(n=e.peek())!=null;){if(n==="$")return t.tokenize=IWr,"string";if(e.next(),n==="`"){e.next();continue}if(n==='"'&&!e.eat('"'))return t.tokenize=E8,"string"}return"error"}function IWr(e,t){return B5n(e,t,D5n)}function MWr(e,t){return t.tokenize=sme,t.startQuote='"',sme(e,t)}function PWr(e,t){return B5n(e,t,MWr)}function B5n(e,t,n){if(e.match("$(")){var r=t.bracketNesting;return t.returnStack.push({shouldReturnFrom:function(o){return o.bracketNesting===r},tokenize:n}),t.tokenize=E8,t.bracketNesting+=1,"punctuation"}else return e.next(),t.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:n}),t.tokenize=wFe,t.tokenize(e,t)}function U4t(e,t){for(var n=!1,r;(r=e.next())!=null;){if(n&&r==">"){t.tokenize=E8;break}n=r==="#"}return"comment"}function wFe(e,t){var n=e.peek();return e.eat("{")?(t.tokenize=j4t,j4t(e,t)):n!=null&&n.match(bFe)?(e.eatWhile(bFe),t.tokenize=E8,"variable"):(t.tokenize=E8,"error")}function j4t(e,t){for(var n;(n=e.next())!=null;)if(n==="}"){t.tokenize=E8;break}return"variable"}function sme(e,t){var n=t.startQuote;if(e.sol()&&e.match(new RegExp(n+"@")))t.tokenize=E8;else if(n==='"')for(;!e.eol();){var r=e.peek();if(r==="$")return t.tokenize=PWr,"string";e.next(),r==="`"&&e.next()}else e.skipToEnd();return"string"}const FWr={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:E8}},token:function(e,t){return t.tokenize(e,t)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}},NWr=Object.freeze(Object.defineProperty({__proto__:null,powerShell:FWr},Symbol.toStringTag,{value:"Module"})),UWr={name:"properties",token:function(e,t){var n=e.sol()||t.afterSection,r=e.eol();if(t.afterSection=!1,n&&(t.nextMultiline?(t.inMultiline=!0,t.nextMultiline=!1):t.position="def"),r&&!t.nextMultiline&&(t.inMultiline=!1,t.position="def"),n)for(;e.eatSpace(););var o=e.next();return n&&(o==="#"||o==="!"||o===";")?(t.position="comment",e.skipToEnd(),"comment"):n&&o==="["?(t.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):o==="="||o===":"?(t.position="quote",null):(o==="\\"&&t.position==="quote"&&e.eol()&&(t.nextMultiline=!0),t.position)},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}},jWr=Object.freeze(Object.defineProperty({__proto__:null,properties:UWr},Symbol.toStringTag,{value:"Module"}));function WWr(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var R5n=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],VWr=WWr(R5n),zWr=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");function HWr(e){return e.eatSpace()?null:e.match("//")?(e.skipToEnd(),"comment"):e.match(/^[0-9\.+-]/,!1)&&(e.match(/^[+-]?0x[0-9a-fA-F]+/)||e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(VWr)?"keyword":e.match(zWr)?"variable":(e.next(),null)}const $Wr={name:"protobuf",token:HWr,languageData:{autocomplete:R5n}},XWr=Object.freeze(Object.defineProperty({__proto__:null,protobuf:$Wr},Symbol.toStringTag,{value:"Module"}));var W4t={"{":"}","(":")","[":"]"};function GWr(e){if(typeof e!="object")return e;let t={};for(let n in e){let r=e[n];t[n]=r instanceof Array?r.slice():r}return t}let YWr=class I5n{constructor(t){this.indentUnit=t,this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=p6.startState(t),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken=""}copy(){var t=new I5n(this.indentUnit);return t.javaScriptLine=this.javaScriptLine,t.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,t.javaScriptArguments=this.javaScriptArguments,t.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,t.isInterpolating=this.isInterpolating,t.interpolationNesting=this.interpolationNesting,t.jsState=(p6.copyState||GWr)(this.jsState),t.restOfLine=this.restOfLine,t.isIncludeFiltered=this.isIncludeFiltered,t.isEach=this.isEach,t.lastTag=this.lastTag,t.isAttrs=this.isAttrs,t.attrsNest=this.attrsNest.slice(),t.inAttributeName=this.inAttributeName,t.attributeIsType=this.attributeIsType,t.attrValue=this.attrValue,t.indentOf=this.indentOf,t.indentToken=this.indentToken,t}};function ZWr(e,t){if(e.sol()&&(t.javaScriptLine=!1,t.javaScriptLineExcludesColon=!1),t.javaScriptLine){if(t.javaScriptLineExcludesColon&&e.peek()===":"){t.javaScriptLine=!1,t.javaScriptLineExcludesColon=!1;return}var n=p6.token(e,t.jsState);return e.eol()&&(t.javaScriptLine=!1),n||!0}}function qWr(e,t){if(t.javaScriptArguments){if(t.javaScriptArgumentsDepth===0&&e.peek()!=="("){t.javaScriptArguments=!1;return}if(e.peek()==="("?t.javaScriptArgumentsDepth++:e.peek()===")"&&t.javaScriptArgumentsDepth--,t.javaScriptArgumentsDepth===0){t.javaScriptArguments=!1;return}var n=p6.token(e,t.jsState);return n||!0}}function KWr(e){if(e.match(/^yield\b/))return"keyword"}function JWr(e){if(e.match(/^(?:doctype) *([^\n]+)?/))return"meta"}function M5n(e,t){if(e.match("#{"))return t.isInterpolating=!0,t.interpolationNesting=0,"punctuation"}function eVr(e,t){if(t.isInterpolating){if(e.peek()==="}"){if(t.interpolationNesting--,t.interpolationNesting<0)return e.next(),t.isInterpolating=!1,"punctuation"}else e.peek()==="{"&&t.interpolationNesting++;return p6.token(e,t.jsState)||!0}}function tVr(e,t){if(e.match(/^case\b/))return t.javaScriptLine=!0,"keyword"}function nVr(e,t){if(e.match(/^when\b/))return t.javaScriptLine=!0,t.javaScriptLineExcludesColon=!0,"keyword"}function iVr(e){if(e.match(/^default\b/))return"keyword"}function rVr(e,t){if(e.match(/^extends?\b/))return t.restOfLine="string","keyword"}function oVr(e,t){if(e.match(/^append\b/))return t.restOfLine="variable","keyword"}function sVr(e,t){if(e.match(/^prepend\b/))return t.restOfLine="variable","keyword"}function aVr(e,t){if(e.match(/^block\b *(?:(prepend|append)\b)?/))return t.restOfLine="variable","keyword"}function lVr(e,t){if(e.match(/^include\b/))return t.restOfLine="string","keyword"}function cVr(e,t){if(e.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&e.match("include"))return t.isIncludeFiltered=!0,"keyword"}function dVr(e,t){if(t.isIncludeFiltered){var n=P5n(e,t);return t.isIncludeFiltered=!1,t.restOfLine="string",n}}function uVr(e,t){if(e.match(/^mixin\b/))return t.javaScriptLine=!0,"keyword"}function hVr(e,t){if(e.match(/^\+([-\w]+)/))return e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),"variable";if(e.match("+#{",!1))return e.next(),t.mixinCallAfter=!0,M5n(e,t)}function fVr(e,t){if(t.mixinCallAfter)return t.mixinCallAfter=!1,e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),!0}function gVr(e,t){if(e.match(/^(if|unless|else if|else)\b/))return t.javaScriptLine=!0,"keyword"}function mVr(e,t){if(e.match(/^(- *)?(each|for)\b/))return t.isEach=!0,"keyword"}function kVr(e,t){if(t.isEach){if(e.match(/^ in\b/))return t.javaScriptLine=!0,t.isEach=!1,"keyword";if(e.sol()||e.eol())t.isEach=!1;else if(e.next()){for(;!e.match(/^ in\b/,!1)&&e.next(););return"variable"}}}function vVr(e,t){if(e.match(/^while\b/))return t.javaScriptLine=!0,"keyword"}function AVr(e,t){var n;if(n=e.match(/^(\w(?:[-:\w]*\w)?)\/?/))return t.lastTag=n[1].toLowerCase(),"tag"}function P5n(e,t){if(e.match(/^:([\w\-]+)/))return rJe(e,t),"atom"}function pVr(e,t){if(e.match(/^(!?=|-)/))return t.javaScriptLine=!0,"punctuation"}function bVr(e){if(e.match(/^#([\w-]+)/))return"builtin"}function wVr(e){if(e.match(/^\.([\w-]+)/))return"className"}function OVr(e,t){if(e.peek()=="(")return e.next(),t.isAttrs=!0,t.attrsNest=[],t.inAttributeName=!0,t.attrValue="",t.attributeIsType=!1,"punctuation"}function F5n(e,t){if(t.isAttrs){if(W4t[e.peek()]&&t.attrsNest.push(W4t[e.peek()]),t.attrsNest[t.attrsNest.length-1]===e.peek())t.attrsNest.pop();else if(e.eat(")"))return t.isAttrs=!1,"punctuation";if(t.inAttributeName&&e.match(/^[^=,\)!]+/))return(e.peek()==="="||e.peek()==="!")&&(t.inAttributeName=!1,t.jsState=p6.startState(2),t.lastTag==="script"&&e.current().trim().toLowerCase()==="type"?t.attributeIsType=!0:t.attributeIsType=!1),"attribute";var n=p6.token(e,t.jsState);if(t.attrsNest.length===0&&(n==="string"||n==="variable"||n==="keyword"))try{return Function("","var x "+t.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),t.inAttributeName=!0,t.attrValue="",e.backUp(e.current().length),F5n(e,t)}catch{}return t.attrValue+=e.current(),n||!0}}function yVr(e,t){if(e.match(/^&attributes\b/))return t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0,"keyword"}function CVr(e){if(e.sol()&&e.eatSpace())return"indent"}function _Vr(e,t){if(e.match(/^ *\/\/(-)?([^\n]*)/))return t.indentOf=e.indentation(),t.indentToken="comment","comment"}function SVr(e){if(e.match(/^: */))return"colon"}function LVr(e,t){if(e.match(/^(?:\| ?| )([^\n]+)/))return"string";if(e.match(/^(<[^\n]*)/,!1))return rJe(e,t),e.skipToEnd(),t.indentToken}function xVr(e,t){if(e.eat("."))return rJe(e,t),"dot"}function EVr(e){return e.next(),null}function rJe(e,t){t.indentOf=e.indentation(),t.indentToken="string"}function TVr(e,t){if(e.sol()&&(t.restOfLine=""),t.restOfLine){e.skipToEnd();var n=t.restOfLine;return t.restOfLine="",n}}function QVr(e){return new YWr(e)}function DVr(e){return e.copy()}function BVr(e,t){var n=TVr(e,t)||eVr(e,t)||dVr(e,t)||kVr(e,t)||F5n(e,t)||ZWr(e,t)||qWr(e,t)||fVr(e,t)||KWr(e)||JWr(e)||M5n(e,t)||tVr(e,t)||nVr(e,t)||iVr(e)||rVr(e,t)||oVr(e,t)||sVr(e,t)||aVr(e,t)||lVr(e,t)||cVr(e,t)||uVr(e,t)||hVr(e,t)||gVr(e,t)||mVr(e,t)||vVr(e,t)||AVr(e,t)||P5n(e,t)||pVr(e,t)||bVr(e)||wVr(e)||OVr(e,t)||yVr(e,t)||CVr(e)||LVr(e,t)||_Vr(e,t)||SVr(e)||xVr(e,t)||EVr(e);return n===!0?null:n}const RVr={startState:QVr,copyState:DVr,token:BVr},IVr=Object.freeze(Object.defineProperty({__proto__:null,pug:RVr},Symbol.toStringTag,{value:"Module"}));var OFe={},MVr=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function Jpe(e,t){for(var n=t.split(" "),r=0;r.*/,!1),o=e.match(/(\s+)?[\w:_]+(\s+)?{/,!1),s=e.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),a=e.next();if(a==="$")return e.match(MVr)?t.continueString?"variableName.special":"variable":"error";if(t.continueString)return e.backUp(1),V4t(e,t);if(t.inDefinition){if(e.match(/(\s+)?[\w:_]+(\s+)?/))return"def";e.match(/\s+{/),t.inDefinition=!1}return t.inInclude?(e.match(/(\s+)?\S+(\s+)?/),t.inInclude=!1,"def"):e.match(/(\s+)?\w+\(/)?(e.backUp(1),"def"):r?(e.match(/(\s+)?\w+/),"tag"):n&&OFe.hasOwnProperty(n)?(e.backUp(1),e.match(/[\w]+/),e.match(/\s+\S+\s+{/,!1)&&(t.inDefinition=!0),n=="include"&&(t.inInclude=!0),OFe[n]):/(^|\s+)[A-Z][\w:_]+/.test(n)?(e.backUp(1),e.match(/(^|\s+)[A-Z][\w:_]+/),"def"):o?(e.match(/(\s+)?[\w:_]+/),"def"):s?(e.match(/(\s+)?[@]{1,2}/),"atom"):a=="#"?(e.skipToEnd(),"comment"):a=="'"||a=='"'?(t.pending=a,V4t(e,t)):a=="{"||a=="}"?"bracket":a=="/"?(e.match(/^[^\/]*\//),"string.special"):a.match(/[0-9]/)?(e.eatWhile(/[0-9]+/),"number"):a=="="?(e.peek()==">"&&e.next(),"operator"):(e.eatWhile(/[\w-]/),null)}const FVr={name:"puppet",startState:function(){var e={};return e.inDefinition=!1,e.inInclude=!1,e.continueString=!1,e.pending=!1,e},token:function(e,t){return e.eatSpace()?null:PVr(e,t)}},NVr=Object.freeze(Object.defineProperty({__proto__:null,puppet:FVr},Symbol.toStringTag,{value:"Module"}));var V7,UVr=WVr(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]),jVr=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;function WVr(e){return new RegExp("^("+e.join("|")+")$")}function zW(e,t){var n=e.sol(),r=e.next();if(V7=null,n){if(r=="/")return(t.tokenize=VVr)(e,t);if(r=="\\")return e.eol()||/\s/.test(e.peek())?(e.skipToEnd(),/^\\\s*$/.test(e.current())?(t.tokenize=HVr)(e):t.tokenize=zW,"comment"):(t.tokenize=zW,"builtin")}if(/\s/.test(r))return e.peek()=="/"?(e.skipToEnd(),"comment"):"null";if(r=='"')return(t.tokenize=$Vr)(e,t);if(r=="`")return e.eatWhile(/[A-Za-z\d_:\/.]/),"macroName";if(r=="."&&/\d/.test(e.peek())||/\d/.test(r)){var o=null;return e.backUp(1),e.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)||e.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)||e.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)||e.match(/^\d+[ptuv]{1}/)?o="temporal":(e.match(/^0[NwW]{1}/)||e.match(/^0x[\da-fA-F]*/)||e.match(/^[01]+[b]{1}/)||e.match(/^\d+[chijn]{1}/)||e.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))&&(o="number"),o&&(!(r=e.peek())||jVr.test(r))?o:(e.next(),"error")}return/[A-Za-z]|\./.test(r)?(e.eatWhile(/[A-Za-z._\d]/),UVr.test(e.current())?"keyword":"variable"):/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(r)||/[{}\(\[\]\)]/.test(r)?null:"error"}function VVr(e,t){return e.skipToEnd(),/^\/\s*$/.test(e.current())?(t.tokenize=zVr)(e,t):t.tokenize=zW,"comment"}function zVr(e,t){var n=e.sol()&&e.peek()=="\\";return e.skipToEnd(),n&&/^\\\s*$/.test(e.current())&&(t.tokenize=zW),"comment"}function HVr(e){return e.skipToEnd(),"comment"}function $Vr(e,t){for(var n=!1,r,o=!1;r=e.next();){if(r=='"'&&!n){o=!0;break}n=!n&&r=="\\"}return o&&(t.tokenize=zW),"string"}function $ae(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function C8e(e){e.indent=e.context.indent,e.context=e.context.prev}const XVr={name:"q",startState:function(){return{tokenize:zW,context:null,indent:0,col:0}},token:function(e,t){e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation());var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"&&(t.context.align=!0),V7=="(")$ae(t,")",e.column());else if(V7=="[")$ae(t,"]",e.column());else if(V7=="{")$ae(t,"}",e.column());else if(/[\]\}\)]/.test(V7)){for(;t.context&&t.context.type=="pattern";)C8e(t);t.context&&V7==t.context.type&&C8e(t)}else V7=="."&&t.context&&t.context.type=="pattern"?C8e(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?$ae(t,"pattern",e.column()):t.context.type=="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type=="pattern";)o=o.prev;var s=o&&r==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0},languageData:{commentTokens:{line:"/"}}},GVr=Object.freeze(Object.defineProperty({__proto__:null,q:XVr},Symbol.toStringTag,{value:"Module"}));function ebe(e){for(var t={},n=0;n=!&|~$:]/,gb;function yFe(e,t){gb=null;var n=e.next();if(n=="#")return e.skipToEnd(),"comment";if(n=="0"&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if(n=="."&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(n))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if(n=="'"||n=='"')return t.tokenize=ezr(n),"string";if(n=="`")return e.match(/[^`]+`/),"string.special";if(n=="."&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(n)){e.eatWhile(/[\w\.]/);var r=e.current();return ZVr.propertyIsEnumerable(r)?"atom":KVr.propertyIsEnumerable(r)?(JVr.propertyIsEnumerable(r)&&!e.match(/\s*if(\s+|$)/,!1)&&(gb="block"),"keyword"):qVr.propertyIsEnumerable(r)?"builtin":"variable"}else return n=="%"?(e.skipTo("%")&&e.next(),"variableName.special"):n=="<"&&e.eat("-")||n=="<"&&e.match("<-")||n=="-"&&e.match(/>>?/)||n=="="&&t.ctx.argList?"operator":z4t.test(n)?(n=="$"||e.eatWhile(z4t),"operator"):/[\(\){}\[\];]/.test(n)?(gb=n,n==";"?"punctuation":null):null}function ezr(e){return function(t,n){if(t.eat("\\")){var r=t.next();return r=="x"?t.match(/^[a-f0-9]{2}/i):(r=="u"||r=="U")&&t.eat("{")&&t.skipTo("}")?t.next():r=="u"?t.match(/^[a-f0-9]{4}/i):r=="U"?t.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&t.match(/^[0-7]{1,2}/),"string.special"}else{for(var o;(o=t.next())!=null;){if(o==e){n.tokenize=yFe;break}if(o=="\\"){t.backUp(1);break}}return"string"}}}var H4t=1,_8e=2,S8e=4;function Xae(e,t,n){e.ctx={type:t,indent:e.indent,flags:0,column:n.column(),prev:e.ctx}}function $4t(e,t){var n=e.ctx;e.ctx={type:n.type,indent:n.indent,flags:n.flags|t,column:n.column,prev:n.prev}}function L8e(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}const tzr={name:"r",startState:function(e){return{tokenize:yFe,ctx:{type:"top",indent:-e,flags:_8e},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(t.ctx.flags&3||(t.ctx.flags|=_8e),t.ctx.flags&S8e&&L8e(t),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return n!="comment"&&!(t.ctx.flags&_8e)&&$4t(t,H4t),(gb==";"||gb=="{"||gb=="}")&&t.ctx.type=="block"&&L8e(t),gb=="{"?Xae(t,"}",e):gb=="("?(Xae(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):gb=="["?Xae(t,"]",e):gb=="block"?Xae(t,"block",e):gb==t.ctx.type?L8e(t):t.ctx.type=="block"&&n!="comment"&&$4t(t,S8e),t.afterIdent=n=="variable"||n=="keyword",n},indent:function(e,t,n){if(e.tokenize!=yFe)return 0;var r=t&&t.charAt(0),o=e.ctx,s=r==o.type;return o.flags&S8e&&(o=o.prev),o.type=="block"?o.indent+(r=="{"?0:n.unit):o.flags&H4t?o.column+(s?0:1):o.indent+(s?0:n.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:N5n.concat(U5n,j5n)}},nzr=Object.freeze(Object.defineProperty({__proto__:null,r:tzr},Symbol.toStringTag,{value:"Module"}));var izr=/^-+$/,rzr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,ozr=/^[\w+.-]+@[\w.-]+/;const szr={name:"rpmchanges",token:function(e){return e.sol()&&(e.match(izr)||e.match(rzr))?"tag":e.match(ozr)?"string":(e.next(),null)}};var azr=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,lzr=/^[a-zA-Z0-9()]+:/,czr=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,dzr=/^%(ifnarch|ifarch|if)/,uzr=/^%(else|endif)/,hzr=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;const fzr={name:"rpmspec",startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(e,t){var n=e.peek();if(n=="#")return e.skipToEnd(),"comment";if(e.sol()){if(e.match(lzr))return"header";if(e.match(czr))return"atom"}if(e.match(/^\$\w+/)||e.match(/^\$\{\w+\}/))return"def";if(e.match(uzr))return"keyword";if(e.match(dzr))return t.controlFlow=!0,"keyword";if(t.controlFlow){if(e.match(hzr))return"operator";if(e.match(/^(\d+)/))return"number";e.eol()&&(t.controlFlow=!1)}if(e.match(azr))return e.eol()&&(t.controlFlow=!1),"number";if(e.match(/^%[\w]+/))return e.match("(")&&(t.macroParameters=!0),"keyword";if(t.macroParameters){if(e.match(/^\d+/))return"number";if(e.match(")"))return t.macroParameters=!1,"keyword"}return e.match(/^%\{\??[\w \-\:\!]+\}/)?(e.eol()&&(t.controlFlow=!1),"def"):(e.next(),null)}},X4t=Object.freeze(Object.defineProperty({__proto__:null,rpmChanges:szr,rpmSpec:fzr},Symbol.toStringTag,{value:"Module"}));function oJe(e){for(var t={},n=0,r=e.length;n]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if(n=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(n=="$")return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(n))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if(n=="|"&&(t.varList||t.lastTok=="{"||t.lastTok=="do"))return mb="|",null;if(/[\(\)\[\]{}\\;]/.test(n))return mb=n,null;if(n=="-"&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(n)){var l=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return n=="."&&!l&&(mb="."),"operator"}else return null}}}function Azr(e){for(var t=e.pos,n=0,r,o=!1,s=!1;(r=e.next())!=null;)if(s)s=!1;else{if("[{(".indexOf(r)>-1)n++;else if("]})".indexOf(r)>-1){if(n--,n<0)break}else if(r=="/"&&n==0){o=!0;break}s=r=="\\"}return e.backUp(e.pos-t),o}function CFe(e){return e||(e=1),function(t,n){if(t.peek()=="}"){if(e==1)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);n.tokenize[n.tokenize.length-1]=CFe(e-1)}else t.peek()=="{"&&(n.tokenize[n.tokenize.length-1]=CFe(e+1));return ame(t,n)}}function pzr(){var e=!1;return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,ame(t,n))}}function K$(e,t,n,r){return function(o,s){var a=!1,l;for(s.context.type==="read-quoted-paused"&&(s.context=s.context.prev,o.eat("}"));(l=o.next())!=null;){if(l==e&&(r||!a)){s.tokenize.pop();break}if(n&&l=="#"&&!a){if(o.eat("{")){e=="}"&&(s.context={prev:s.context,type:"read-quoted-paused"}),s.tokenize.push(CFe());break}else if(/[@\$]/.test(o.peek())){s.tokenize.push(pzr());break}}a=!a&&l=="\\"}return t}}function bzr(e,t){return function(n,r){return t&&n.eatSpace(),n.match(e)?r.tokenize.pop():n.skipToEnd(),"string"}}function wzr(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}const Ozr={name:"ruby",startState:function(e){return{tokenize:[ame],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){mb=null,e.sol()&&(t.indented=e.indentation());var n=t.tokenize[t.tokenize.length-1](e,t),r,o=mb;if(n=="variable"){var s=e.current();n=t.lastTok=="."?"property":gzr.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(s)?"tag":t.lastTok=="def"||t.lastTok=="class"||t.varList?"def":"variable",n=="keyword"&&(o=s,mzr.propertyIsEnumerable(s)?r="indent":kzr.propertyIsEnumerable(s)?r="dedent":((s=="if"||s=="unless")&&e.column()==e.indentation()||s=="do"&&t.context.indented=|!=|<>)/,_zr=/[=\(:\),{}.*<>+\-\/^\[\]]/;function Qg(e,t,n){if(n)for(var r=t.split(" "),o=0;ointeger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),Qzr=V5n("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function Dzr(e,t,n){this.indent=e,this.type=t,this.prev=n}function x8e(e,t,n){e.indentStack=new Dzr(t,n,e.indentStack)}function Bzr(e){e.indentStack=e.indentStack.prev}var Rzr=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),Izr=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),Mzr=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),Pzr=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function Fzr(e){return e.match(Rzr)}function Nzr(e){return e.match(Izr)}function E8e(e,t){return t===!0&&e.backUp(1),e.match(Pzr)}function Uzr(e){return e.match(Mzr)}function tpt(e,t){for(var n,r=!1;(n=e.next())!=null;){if(n==t.token&&!r){t.state.mode=!1;break}r=!r&&n=="\\"}}const jzr={name:"scheme",startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,t){if(t.indentStack==null&&e.sol()&&(t.indentation=e.indentation()),e.eatSpace())return null;var n=null;switch(t.mode){case"string":tpt(e,{token:'"',state:t}),n=Z4t;break;case"symbol":tpt(e,{token:"|",state:t}),n=q4t;break;case"comment":for(var r,o=!1;(r=e.next())!=null;){if(r=="#"&&o){t.mode=!1;break}o=r=="|"}n=d7;break;case"s-expr-comment":if(t.mode=!1,e.peek()=="("||e.peek()=="[")t.sExprComment=0;else{e.eatWhile(/[^\s\(\)\[\]]/),n=d7;break}default:var s=e.next();if(s=='"')t.mode="string",n=Z4t;else if(s=="'")e.peek()=="("||e.peek()=="["?(typeof t.sExprQuote!="number"&&(t.sExprQuote=0),n=J$):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=J$);else if(s=="|")t.mode="symbol",n=q4t;else if(s=="#")if(e.eat("|"))t.mode="comment",n=d7;else if(e.eat(/[tf]/i))n=J$;else if(e.eat(";"))t.mode="s-expr-comment",n=d7;else{var a=null,l=!1,d=!0;e.eat(/[ei]/i)?l=!0:e.backUp(1),e.match(/^#b/i)?a=Fzr:e.match(/^#o/i)?a=Nzr:e.match(/^#x/i)?a=Uzr:e.match(/^#d/i)?a=E8e:e.match(/^[-+0-9.]/,!1)?(d=!1,a=E8e):l||e.eat("#"),a!=null&&(d&&!l&&e.match(/^#[ei]/i),a(e)&&(n=K4t))}else if(/^[-+0-9.]/.test(s)&&E8e(e,!0))n=K4t;else if(s==";")e.skipToEnd(),n=d7;else if(s=="("||s=="["){for(var u="",h=e.column(),g;(g=e.eat(/[^\s\(\[\;\)\]]/))!=null;)u+=g;u.length>0&&Qzr.propertyIsEnumerable(u)?x8e(t,h+Tzr,s):(e.eatSpace(),e.eol()||e.peek()==";"?x8e(t,h+1,s):x8e(t,h+e.current().length,s)),e.backUp(e.current().length-1),typeof t.sExprComment=="number"&&t.sExprComment++,typeof t.sExprQuote=="number"&&t.sExprQuote++,n=J4t}else s==")"||s=="]"?(n=J4t,t.indentStack!=null&&t.indentStack.type==(s==")"?"(":"[")&&(Bzr(t),typeof t.sExprComment=="number"&&--t.sExprComment==0&&(n=d7,t.sExprComment=!1),typeof t.sExprQuote=="number"&&--t.sExprQuote==0&&(n=J$,t.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),ept&&ept.propertyIsEnumerable(e.current())?n=Ezr:n="variable")}return typeof t.sExprComment=="number"?d7:typeof t.sExprQuote=="number"?J$:n},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}},Wzr=Object.freeze(Object.defineProperty({__proto__:null,scheme:jzr},Symbol.toStringTag,{value:"Module"}));var _Fe={};function sJe(e,t){for(var n=0;n1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=tbe(n,n=="("?"quote":n=="{"?"def":"string"),HW(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function Hzr(e){return function(t,n){return t.sol()&&t.string==e&&n.tokens.shift(),t.skipToEnd(),"string.special"}}function HW(e,t){return(t.tokens[0]||Vzr)(e,t)}const $zr={name:"shell",startState:function(){return{tokens:[]}},token:function(e,t){return HW(e,t)},languageData:{autocomplete:z5n.concat(H5n,$5n),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}},Xzr=Object.freeze(Object.defineProperty({__proto__:null,shell:$zr},Symbol.toStringTag,{value:"Module"}));function G5n(e){for(var t={},n=e.split(" "),r=0;r=@%|&?!.,:;^]/,eHr=/true|false|nil|self|super|thisContext/,DG=function(e,t){this.next=e,this.parent=t},uie=function(e,t,n){this.name=e,this.context=t,this.eos=n},Y5n=function(){this.context=new DG(Z5n,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};Y5n.prototype.userIndent=function(e,t){this.userIndentationDelta=e>0?e/t-this.indentation:0};var Z5n=function(e,t,n){var r=new uie(null,t,!1),o=e.next();return o==='"'?r=rpt(e,new DG(rpt,t)):o==="'"?r=opt(e,new DG(opt,t)):o==="#"?e.peek()==="'"?(e.next(),r=spt(e,new DG(spt,t))):e.eatWhile(/[^\s.{}\[\]()]/)?r.name="string.special":r.name="meta":o==="$"?(e.next()==="<"&&(e.eatWhile(/[^\s>]/),e.next()),r.name="string.special"):o==="|"&&n.expectVariable?r.context=new DG(tHr,t):/[\[\]{}()]/.test(o)?(r.name="bracket",r.eos=/[\[{(]/.test(o),o==="["?n.indentation++:o==="]"&&(n.indentation=Math.max(0,n.indentation-1))):ipt.test(o)?(e.eatWhile(ipt),r.name="operator",r.eos=o!==";"):/\d/.test(o)?(e.eatWhile(/[\w\d]/),r.name="number"):/[\w_]/.test(o)?(e.eatWhile(/[\w\d_]/),r.name=n.expectVariable?eHr.test(e.current())?"keyword":"variable":null):r.eos=n.expectVariable,r},rpt=function(e,t){return e.eatWhile(/[^"]/),new uie("comment",e.eat('"')?t.parent:t,!0)},opt=function(e,t){return e.eatWhile(/[^']/),new uie("string",e.eat("'")?t.parent:t,!1)},spt=function(e,t){return e.eatWhile(/[^']/),new uie("string.special",e.eat("'")?t.parent:t,!1)},tHr=function(e,t){var n=new uie(null,t,!1),r=e.next();return r==="|"?(n.context=t.parent,n.eos=!0):(e.eatWhile(/[^|]/),n.name="variable"),n};const nHr={name:"smalltalk",startState:function(){return new Y5n},token:function(e,t){if(t.userIndent(e.indentation(),e.indentUnit),e.eatSpace())return null;var n=t.context.next(e,t.context,t);return t.context=n.context,t.expectVariable=n.eos,n.name},blankLine:function(e,t){e.userIndent(0,t)},indent:function(e,t,n){var r=e.context.next===Z5n&&t&&t.charAt(0)==="]"?-1:e.userIndentationDelta;return(e.indentation+r)*n.unit},languageData:{indentOnInput:/^\s*\]$/}},iHr=Object.freeze(Object.defineProperty({__proto__:null,smalltalk:nHr},Symbol.toStringTag,{value:"Module"}));var q5n=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,rHr=/[\|\!\+\-\*\?\~\^\&]/,oHr=/^(OR|AND|NOT|TO)$/;function sHr(e){return parseFloat(e).toString()===e}function aHr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null&&!(o==e&&!r);)r=!r&&o=="\\";return r||(n.tokenize=hie),"string"}}function lHr(e){return function(t,n){return e=="|"?t.eat(/\|/):e=="&"&&t.eat(/\&/),n.tokenize=hie,"operator"}}function cHr(e){return function(t,n){for(var r=e;(e=t.peek())&&e.match(q5n)!=null;)r+=t.next();return n.tokenize=hie,oHr.test(r)?"operator":sHr(r)?"number":t.peek()==":"?"propertyName":"string"}}function hie(e,t){var n=e.next();return n=='"'?t.tokenize=aHr(n):rHr.test(n)?t.tokenize=lHr(n):q5n.test(n)&&(t.tokenize=cHr(n)),t.tokenize!=hie?t.tokenize(e,t):null}const dHr={name:"solr",startState:function(){return{tokenize:hie}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}},uHr=Object.freeze(Object.defineProperty({__proto__:null,solr:dHr},Symbol.toStringTag,{value:"Module"}));var P_;function K5n(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var hHr=K5n(["str","lang","langmatches","datatype","bound","sameterm","isiri","isuri","iri","uri","bnode","count","sum","min","max","avg","sample","group_concat","rand","abs","ceil","floor","round","concat","substr","strlen","replace","ucase","lcase","encode_for_uri","contains","strstarts","strends","strbefore","strafter","year","month","day","hours","minutes","seconds","timezone","tz","now","uuid","struuid","md5","sha1","sha256","sha384","sha512","coalesce","if","strlang","strdt","isnumeric","regex","exists","isblank","isliteral","a","bind"]),fHr=K5n(["base","prefix","select","distinct","reduced","construct","describe","ask","from","named","where","order","limit","offset","filter","optional","graph","by","asc","desc","as","having","undef","values","group","minus","in","not","service","silent","using","insert","delete","union","true","false","with","data","copy","to","move","add","create","drop","clear","load","into"]),gHr=/[*+\-<>=&|\^\/!\?]/,apt="[A-Za-z_\\-0-9]",mHr=new RegExp("[A-Za-z]"),kHr=new RegExp("(("+apt+"|\\.)*("+apt+"))?:");function J5n(e,t){var n=e.next();if(P_=null,n=="$"||n=="?")return n=="?"&&e.match(/\s/,!1)?"operator":(e.match(/^[A-Za-z0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Za-z0-9_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]*/),"variableName.local");if(n=="<"&&!e.match(/^[\s\u00a0=]/,!1))return e.match(/^[^\s\u00a0>]*>?/),"atom";if(n=='"'||n=="'")return t.tokenize=vHr(n),t.tokenize(e,t);if(/[{}\(\),\.;\[\]]/.test(n))return P_=n,"bracket";if(n=="#")return e.skipToEnd(),"comment";if(gHr.test(n))return"operator";if(n==":")return lpt(e),"atom";if(n=="@")return e.eatWhile(/[a-z\d\-]/i),"meta";if(mHr.test(n)&&e.match(kHr))return lpt(e),"atom";e.eatWhile(/[_\w\d]/);var r=e.current();return hHr.test(r)?"builtin":fHr.test(r)?"keyword":"variable"}function lpt(e){e.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i)}function vHr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){n.tokenize=J5n;break}r=!r&&o=="\\"}return"string"}}function Gae(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function Yae(e){e.indent=e.context.indent,e.context=e.context.prev}const AHr={name:"sparql",startState:function(){return{tokenize:J5n,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"&&(t.context.align=!0),P_=="(")Gae(t,")",e.column());else if(P_=="[")Gae(t,"]",e.column());else if(P_=="{")Gae(t,"}",e.column());else if(/[\]\}\)]/.test(P_)){for(;t.context&&t.context.type=="pattern";)Yae(t);t.context&&P_==t.context.type&&(Yae(t),P_=="}"&&t.context&&t.context.type=="pattern"&&Yae(t))}else P_=="."&&t.context&&t.context.type=="pattern"?Yae(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?Gae(t,"pattern",e.column()):t.context.type=="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type=="pattern";)o=o.prev;var s=o&&r==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0},languageData:{commentTokens:{line:"#"}}},pHr=Object.freeze(Object.defineProperty({__proto__:null,sparql:AHr},Symbol.toStringTag,{value:"Module"})),bHr={name:"spreadsheet",startState:function(){return{stringType:null,stack:[]}},token:function(e,t){if(e){switch(t.stack.length===0&&(e.peek()=='"'||e.peek()=="'")&&(t.stringType=e.peek(),e.next(),t.stack.unshift("string")),t.stack[0]){case"string":for(;t.stack[0]==="string"&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):e.peek()==="\\"?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return"string";case"characterClass":for(;t.stack[0]==="characterClass"&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(/^\\./)||t.stack.shift();return"operator"}var n=e.peek();switch(n){case"[":return e.next(),t.stack.unshift("characterClass"),"bracket";case":":return e.next(),"operator";case"\\":return e.match(/\\[a-z]+/)?"string.special":(e.next(),"atom");case".":case",":case";":case"*":case"-":case"+":case"^":case"<":case"/":case"=":return e.next(),"atom";case"$":return e.next(),"builtin"}return e.match(/\d+/)?e.match(/^\w+/)?"error":"number":e.match(/^[a-zA-Z_]\w*/)?e.match(/(?=[\(.])/,!1)?"keyword":"variable":["[","]","(",")","{","}"].indexOf(n)!=-1?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}},wHr=Object.freeze(Object.defineProperty({__proto__:null,spreadsheet:bHr},Symbol.toStringTag,{value:"Module"}));var e9n=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],aJe=["domain","regexp","url-prefix","url"],t9n=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],n9n=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],i9n=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],r9n=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],o9n=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],s9n=["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"],a9n=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","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","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","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","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","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","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],l9n=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],c9n=["for","if","else","unless","from","to"],d9n=["null","true","false","href","title","type","not-allowed","readonly","disabled"],OHr=["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"],yHr=e9n.concat(aJe,t9n,n9n,i9n,r9n,s9n,a9n,o9n,l9n,c9n,d9n,OHr);function u9n(e){return e=e.sort(function(t,n){return n>t}),new RegExp("^(("+e.join(")|(")+"))\\b")}function I3(e){for(var t={},n=0;n]=?|\?:|\~)/,MHr=u9n(l9n),PHr=I3(c9n),h9n=new RegExp(/^\-(moz|ms|o|webkit)-/i),FHr=I3(d9n),T8e="",aA={},fw,u7,cpt,ws;function NHr(e,t){if(T8e=e.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),t.context.line.firstWord=T8e?T8e[0].replace(/^\s*/,""):"",t.context.line.indent=e.indentation(),fw=e.peek(),e.match("//"))return e.skipToEnd(),["comment","comment"];if(e.match("/*"))return t.tokenize=dpt,dpt(e,t);if(fw=='"'||fw=="'")return e.next(),t.tokenize=f9n(fw),t.tokenize(e,t);if(fw=="@")return e.next(),e.eatWhile(/[\w\\-]/),["def",e.current()];if(fw=="#"){if(e.next(),e.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if(e.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return e.match(h9n)?["meta","vendor-prefixes"]:e.match(/^-?[0-9]?\.?[0-9]/)?(e.eatWhile(/[a-z%]/i),["number","unit"]):fw=="!"?(e.next(),[e.match(/^(important|optional)/i)?"keyword":"operator","important"]):fw=="."&&e.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:e.match(QHr)?(e.peek()=="("&&(t.tokenize=UHr),["property","word"]):e.match(/^[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","mixin"]):e.match(/^(\+|-)[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","block-mixin"]):e.string.match(/^\s*&/)&&e.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:e.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?(e.backUp(1),["variableName.special","reference"]):e.match(/^&{1}\s*$/)?["variableName.special","reference"]:e.match(MHr)?["operator","operator"]:e.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?e.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!sy(e.current())?(e.match("."),["variable","variable-name"]):["variable","word"]:e.match(IHr)?["operator",e.current()]:/[:;,{}\[\]\(\)]/.test(fw)?(e.next(),[null,fw]):(e.next(),[null,null])}function dpt(e,t){for(var n=!1,r;(r=e.next())!=null;){if(n&&r=="/"){t.tokenize=null;break}n=r=="*"}return["comment","comment"]}function f9n(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){e==")"&&t.backUp(1);break}r=!r&&o=="\\"}return(o==e||!r&&e!=")")&&(n.tokenize=null),["string","string"]}}function UHr(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=f9n(")"),[null,"("]}function g9n(e,t,n,r){this.type=e,this.indent=t,this.prev=n,this.line=r||{firstWord:"",indent:0}}function po(e,t,n,r){return r=r>=0?r:t.indentUnit,e.context=new g9n(n,t.indentation()+r,e.context),n}function ZB(e,t,n){var r=e.context.indent-t.indentUnit;return n=n||!1,e.context=e.context.prev,n&&(e.context.indent=r),e.context.type}function jHr(e,t,n){return aA[n.context.type](e,t,n)}function cJe(e,t,n,r){for(var o=1;o>0;o--)n.context=n.context.prev;return jHr(e,t,n)}function sy(e){return e.toLowerCase()in _Hr}function qB(e){return e=e.toLowerCase(),e in SHr||e in RHr}function oD(e){return e.toLowerCase()in PHr}function upt(e){return e.toLowerCase().match(h9n)}function vI(e){var t=e.toLowerCase(),n="variable";return sy(e)?n="tag":oD(e)?n="block-keyword":qB(e)?n="property":t in xHr||t in FHr?n="atom":t=="return"||t in EHr?n="keyword":e.match(/^[A-Z]/)&&(n="string"),n}function m9n(e,t){return l0(t)&&(e=="{"||e=="]"||e=="hash"||e=="qualifier")||e=="block-mixin"}function k9n(e,t){return e=="{"&&t.match(/^\s*\$?[\w-]+/i,!1)}function v9n(e,t){return e==":"&&t.match(/^[a-z-]+/,!1)}function AT(e){return e.sol()||e.string.match(new RegExp("^\\s*"+CHr(e.current())))}function l0(e){return e.eol()||e.match(/^\s*$/,!1)}function S4(e){var t=/^\s*[-_]*[a-z0-9]+[\w-]*/i,n=typeof e=="string"?e.match(t):e.string.match(t);return n?n[0].replace(/^\s*/,""):""}aA.block=function(e,t,n){if(e=="comment"&&AT(t)||e==","&&l0(t)||e=="mixin")return po(n,t,"block",0);if(k9n(e,t))return po(n,t,"interpolation");if(l0(t)&&e=="]"&&!/^\s*(\.|#|:|\[|\*|&)/.test(t.string)&&!sy(S4(t)))return po(n,t,"block",0);if(m9n(e,t))return po(n,t,"block");if(e=="}"&&l0(t))return po(n,t,"block",0);if(e=="variable-name")return t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||oD(S4(t))?po(n,t,"variableName"):po(n,t,"variableName",0);if(e=="=")return!l0(t)&&!oD(S4(t))?po(n,t,"block",0):po(n,t,"block");if(e=="*"&&(l0(t)||t.match(/\s*(,|\.|#|\[|:|{)/,!1)))return ws="tag",po(n,t,"block");if(v9n(e,t))return po(n,t,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test(e))return po(n,t,l0(t)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return po(n,t,"keyframes");if(/@extends?/.test(e))return po(n,t,"extend",0);if(e&&e.charAt(0)=="@")return t.indentation()>0&&qB(t.current().slice(1))?(ws="variable","block"):/(@import|@require|@charset)/.test(e)?po(n,t,"block",0):po(n,t,"block");if(e=="reference"&&l0(t))return po(n,t,"block");if(e=="(")return po(n,t,"parens");if(e=="vendor-prefixes")return po(n,t,"vendorPrefixes");if(e=="word"){var r=t.current();if(ws=vI(r),ws=="property")return AT(t)?po(n,t,"block",0):(ws="atom","block");if(ws=="tag"){if(/embed|menu|pre|progress|sub|table/.test(r)&&qB(S4(t))||t.string.match(new RegExp("\\[\\s*"+r+"|"+r+"\\s*\\]")))return ws="atom","block";if(lJe.test(r)&&(AT(t)&&t.string.match(/=/)||!AT(t)&&!t.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!sy(S4(t))))return ws="variable",oD(S4(t))?"block":po(n,t,"block",0);if(l0(t))return po(n,t,"block")}if(ws=="block-keyword")return ws="keyword",t.current(/(if|unless)/)&&!AT(t)?"block":po(n,t,"block");if(r=="return")return po(n,t,"block",0);if(ws=="variable"&&t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return po(n,t,"block")}return n.context.type};aA.parens=function(e,t,n){if(e=="(")return po(n,t,"parens");if(e==")")return n.context.prev.type=="parens"?ZB(n,t):t.string.match(/^[a-z][\w-]*\(/i)&&l0(t)||oD(S4(t))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(S4(t))||!t.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&sy(S4(t))?po(n,t,"block"):t.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||t.string.match(/^\s*(\(|\)|[0-9])/)||t.string.match(/^\s+[a-z][\w-]*\(/i)||t.string.match(/^\s+[\$-]?[a-z]/i)?po(n,t,"block",0):l0(t)?po(n,t,"block"):po(n,t,"block",0);if(e&&e.charAt(0)=="@"&&qB(t.current().slice(1))&&(ws="variable"),e=="word"){var r=t.current();ws=vI(r),ws=="tag"&&lJe.test(r)&&(ws="variable"),(ws=="property"||r=="to")&&(ws="atom")}return e=="variable-name"?po(n,t,"variableName"):v9n(e,t)?po(n,t,"pseudo"):n.context.type};aA.vendorPrefixes=function(e,t,n){return e=="word"?(ws="property",po(n,t,"block",0)):ZB(n,t)};aA.pseudo=function(e,t,n){return qB(S4(t.string))?cJe(e,t,n):(t.match(/^[a-z-]+/),ws="variableName.special",l0(t)?po(n,t,"block"):ZB(n,t))};aA.atBlock=function(e,t,n){if(e=="(")return po(n,t,"atBlock_parens");if(m9n(e,t))return po(n,t,"block");if(k9n(e,t))return po(n,t,"interpolation");if(e=="word"){var r=t.current().toLowerCase();if(/^(only|not|and|or)$/.test(r)?ws="keyword":THr.hasOwnProperty(r)?ws="tag":BHr.hasOwnProperty(r)?ws="attribute":DHr.hasOwnProperty(r)?ws="property":LHr.hasOwnProperty(r)?ws="string.special":ws=vI(t.current()),ws=="tag"&&l0(t))return po(n,t,"block")}return e=="operator"&&/^(not|and|or)$/.test(t.current())&&(ws="keyword"),n.context.type};aA.atBlock_parens=function(e,t,n){if(e=="{"||e=="}")return n.context.type;if(e==")")return l0(t)?po(n,t,"block"):po(n,t,"atBlock");if(e=="word"){var r=t.current().toLowerCase();return ws=vI(r),/^(max|min)/.test(r)&&(ws="property"),ws=="tag"&&(lJe.test(r)?ws="variable":ws="atom"),n.context.type}return aA.atBlock(e,t,n)};aA.keyframes=function(e,t,n){return t.indentation()=="0"&&(e=="}"&&AT(t)||e=="]"||e=="hash"||e=="qualifier"||sy(t.current()))?cJe(e,t,n):e=="{"?po(n,t,"keyframes"):e=="}"?AT(t)?ZB(n,t,!0):po(n,t,"keyframes"):e=="unit"&&/^[0-9]+\%$/.test(t.current())?po(n,t,"keyframes"):e=="word"&&(ws=vI(t.current()),ws=="block-keyword")?(ws="keyword",po(n,t,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test(e)?po(n,t,l0(t)?"block":"atBlock"):e=="mixin"?po(n,t,"block",0):n.context.type};aA.interpolation=function(e,t,n){return e=="{"&&ZB(n,t)&&po(n,t,"block"),e=="}"?t.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||t.string.match(/^\s*[a-z]/i)&&sy(S4(t))?po(n,t,"block"):!t.string.match(/^(\{|\s*\&)/)||t.match(/\s*[\w-]/,!1)?po(n,t,"block",0):po(n,t,"block"):e=="variable-name"?po(n,t,"variableName",0):(e=="word"&&(ws=vI(t.current()),ws=="tag"&&(ws="atom")),n.context.type)};aA.extend=function(e,t,n){return e=="["||e=="="?"extend":e=="]"?ZB(n,t):e=="word"?(ws=vI(t.current()),"extend"):ZB(n,t)};aA.variableName=function(e,t,n){return e=="string"||e=="["||e=="]"||t.current().match(/^(\.|\$)/)?(t.current().match(/^\.[\w-]+/i)&&(ws="variable"),"variableName"):cJe(e,t,n)};const WHr={name:"stylus",startState:function(){return{tokenize:null,state:"block",context:new g9n("block",0,null)}},token:function(e,t){return!t.tokenize&&e.eatSpace()?null:(u7=(t.tokenize||NHr)(e,t),u7&&typeof u7=="object"&&(cpt=u7[1],u7=u7[0]),ws=u7,t.state=aA[t.state](cpt,e,t),ws)},indent:function(e,t,n){var r=e.context,o=t&&t.charAt(0),s=r.indent,a=S4(t),l=r.line.indent,d=e.context.prev?e.context.prev.line.firstWord:"",u=e.context.prev?e.context.prev.line.indent:l;return r.prev&&(o=="}"&&(r.type=="block"||r.type=="atBlock"||r.type=="keyframes")||o==")"&&(r.type=="parens"||r.type=="atBlock_parens")||o=="{"&&r.type=="at")?s=r.indent-n.unit:/(\})/.test(o)||(/@|\$|\d/.test(o)||/^\{/.test(t)||/^\s*\/(\/|\*)/.test(t)||/^\s*\/\*/.test(d)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(t)||/^(\+|-)?[a-z][\w-]*\(/i.test(t)||/^return/.test(t)||oD(a)?s=l:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(o)||sy(a)?/\,\s*$/.test(d)?s=u:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(d)||sy(d)?s=l<=u?u:u+n.unit:s=l:!/,\s*$/.test(t)&&(upt(a)||qB(a))&&(oD(d)?s=l<=u?u:u+n.unit:/^\{/.test(d)?s=l<=u?l:u+n.unit:upt(d)||qB(d)?s=l>=u?u:l:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(d)||/=\s*$/.test(d)||sy(d)||/^\$[\w-\.\[\]\'\"]/.test(d)?s=u+n.unit:s=l)),s},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:yHr}},VHr=Object.freeze(Object.defineProperty({__proto__:null,stylus:WHr},Symbol.toStringTag,{value:"Module"}));function nbe(e){for(var t={},n=0;n~^?!",YHr=":;,.(){}[]",ZHr=/^\-?0b[01][01_]*/,qHr=/^\-?0o[0-7][0-7_]*/,KHr=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,JHr=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,e$r=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,t$r=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,n$r=/^\#[A-Za-z]+/,i$r=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function A9n(e,t,n){if(e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;var r=e.peek();if(r=="/"){if(e.match("//"))return e.skipToEnd(),"comment";if(e.match("/*"))return t.tokenize.push(SFe),SFe(e,t)}if(e.match(n$r))return"builtin";if(e.match(i$r))return"attribute";if(e.match(ZHr)||e.match(qHr)||e.match(KHr)||e.match(JHr))return"number";if(e.match(t$r))return"property";if(GHr.indexOf(r)>-1)return e.next(),"operator";if(YHr.indexOf(r)>-1)return e.next(),e.match(".."),"punctuation";var o;if(o=e.match(/("""|"|')/)){var s=o$r.bind(null,o[0]);return t.tokenize.push(s),s(e,t)}if(e.match(e$r)){var a=e.current();return XHr.hasOwnProperty(a)?"type":$Hr.hasOwnProperty(a)?"atom":zHr.hasOwnProperty(a)?(HHr.hasOwnProperty(a)&&(t.prev="define"),"keyword"):n=="define"?"def":"variable"}return e.next(),null}function r$r(){var e=0;return function(t,n,r){var o=A9n(t,n,r);if(o=="punctuation"){if(t.current()=="(")++e;else if(t.current()==")"){if(e==0)return t.backUp(1),n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);--e}}return o}}function o$r(e,t,n){for(var r=e.length==1,o,s=!1;o=t.peek();)if(s){if(t.next(),o=="(")return n.tokenize.push(r$r()),"string";s=!1}else{if(t.match(e))return n.tokenize.pop(),"string";t.next(),s=o=="\\"}return r&&n.tokenize.pop(),"string"}function SFe(e,t){for(var n;n=e.next();)if(n==="/"&&e.eat("*"))t.tokenize.push(SFe);else if(n==="*"&&e.eat("/")){t.tokenize.pop();break}return"comment"}function s$r(e,t,n){this.prev=e,this.align=t,this.indented=n}function a$r(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:t.column()+1;e.context=new s$r(e.context,n,e.indented)}function l$r(e){e.context&&(e.indented=e.context.indented,e.context=e.context.prev)}const c$r={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=t.tokenize[t.tokenize.length-1]||A9n,o=r(e,t,n);if(!o||o=="comment"?t.prev=n:t.prev||(t.prev=o),o=="punctuation"){var s=/[\(\[\{]|([\]\)\}])/.exec(e.current());s&&(s[1]?l$r:a$r)(t,e)}return o},indent:function(e,t,n){var r=e.context;if(!r)return 0;var o=/^[\]\}\)]/.test(t);return r.align!=null?r.align-(o?1:0):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}},d$r=Object.freeze(Object.defineProperty({__proto__:null,swift:c$r},Symbol.toStringTag,{value:"Module"}));function p9n(e){function t(g,m){g.cmdState.push(m)}function n(g){return g.cmdState.length>0?g.cmdState[g.cmdState.length-1]:null}function r(g){var m=g.cmdState.pop();m&&m.closeBracket()}function o(g){for(var m=g.cmdState,v=m.length-1;v>=0;v--){var f=m[v];if(f.name!="DEFAULT")return f}return{styleIdentifier:function(){return null}}}function s(g,m,v){return function(){this.name=g,this.bracketNo=0,this.style=m,this.styles=v,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var a={};a.importmodule=s("importmodule","tag",["string","builtin"]),a.documentclass=s("documentclass","tag",["","atom"]),a.usepackage=s("usepackage","tag",["atom"]),a.begin=s("begin","tag",["atom"]),a.end=s("end","tag",["atom"]),a.label=s("label","tag",["atom"]),a.ref=s("ref","tag",["atom"]),a.eqref=s("eqref","tag",["atom"]),a.cite=s("cite","tag",["atom"]),a.bibitem=s("bibitem","tag",["atom"]),a.Bibitem=s("Bibitem","tag",["atom"]),a.RBibitem=s("RBibitem","tag",["atom"]),a.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}};function l(g,m){g.f=m}function d(g,m){var v;if(g.match(/^\\[a-zA-Z@\xc0-\u1fff\u2060-\uffff]+/)){var f=g.current().slice(1);return v=a.hasOwnProperty(f)?a[f]:a.DEFAULT,v=new v,t(m,v),l(m,h),v.style}if(g.match(/^\\[$&%#{}_]/)||g.match(/^\\[,;!\/\\]/))return"tag";if(g.match("\\["))return l(m,function(A,p){return u(A,p,"\\]")}),"keyword";if(g.match("\\("))return l(m,function(A,p){return u(A,p,"\\)")}),"keyword";if(g.match("$$"))return l(m,function(A,p){return u(A,p,"$$")}),"keyword";if(g.match("$"))return l(m,function(A,p){return u(A,p,"$")}),"keyword";var k=g.next();if(k=="%")return g.skipToEnd(),"comment";if(k=="}"||k=="]"){if(v=n(m),v)v.closeBracket(k),l(m,h);else return"error";return"bracket"}else return k=="{"||k=="["?(v=a.DEFAULT,v=new v,t(m,v),"bracket"):/\d/.test(k)?(g.eatWhile(/[\w.%]/),"atom"):(g.eatWhile(/[\w\-_]/),v=o(m),v.name=="begin"&&(v.argument=g.current()),v.styleIdentifier())}function u(g,m,v){if(g.eatSpace())return null;if(v&&g.match(v))return l(m,d),"keyword";if(g.match(/^\\[a-zA-Z@]+/))return"tag";if(g.match(/^[a-zA-Z]+/))return"variableName.special";if(g.match(/^\\[$&%#{}_]/)||g.match(/^\\[,;!\/]/)||g.match(/^[\^_&]/))return"tag";if(g.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(g.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var f=g.next();return f=="{"||f=="}"||f=="["||f=="]"||f=="("||f==")"?"bracket":f=="%"?(g.skipToEnd(),"comment"):"error"}function h(g,m){var v=g.peek(),f;return v=="{"||v=="["?(f=n(m),f.openBracket(v),g.eat(v),l(m,d),"bracket"):/[ \t\r]/.test(v)?(g.eat(v),null):(l(m,d),r(m),d(g,m))}return{name:"stex",startState:function(){var g=e?function(m,v){return u(m,v)}:d;return{cmdState:[],f:g}},copyState:function(g){return{cmdState:g.cmdState.slice(),f:g.f}},token:function(g,m){return m.f(g,m)},blankLine:function(g){g.f=d,g.cmdState.length=0},languageData:{commentTokens:{line:"%"}}}}const u$r=p9n(!1),h$r=p9n(!0),hpt=Object.freeze(Object.defineProperty({__proto__:null,stex:u$r,stexMath:h$r},Symbol.toStringTag,{value:"Module"}));function b9n(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,r=e.noIndentKeywords||[],o=e.multiLineStrings,s=e.hooks||{};function a(R){for(var I={},F=R.split(" "),j=0;j=0)return j}var W=R.context,H=I&&I.charAt(0);W.type=="statement"&&H=="}"&&(W=W.prev);var $=!1,G=I.match(A);return G&&($=M(G[0],W.type)),W.type=="statement"?W.indented+(H=="{"?0:t||F.unit):p.test(W.type)&&W.align&&!n?W.column+($?0:1):W.type==")"&&!$?W.indented+(t||F.unit):W.indented+($?0:F.unit)},languageData:{indentOnInput:B(),commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}const f$r=b9n({});var Q8e={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"contentSeparator","/":"property","/-":"property","@":"variableName.special","@-":"variableName.special","@++":"variableName.special","@+=":"variableName.special","@+=-":"variableName.special","@--":"variableName.special","@-=":"variableName.special","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable","**":"variable","\\":"keyword",'"':"comment"},fpt={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"},D8e=3,gpt=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,g$r=/^[! ] */,m$r=/^\/[\/\*]/;const k$r=b9n({hooks:{electricInput:!1,token:function(e,t){var n=void 0,r;if(e.sol()&&!t.tlvInBlockComment){e.peek()=="\\"&&(n="def",e.skipToEnd(),e.string.match(/\\SV/)?t.tlvCodeActive=!1:e.string.match(/\\TLV/)&&(t.tlvCodeActive=!0)),t.tlvCodeActive&&e.pos==0&&t.indented==0&&(r=e.match(g$r,!1))&&(t.indented=r[0].length);var o=t.indented,s=o/D8e;if(s<=t.tlvIndentationStyle.length){var a=e.string.length==o,l=s*D8e;if(l0||(t.tlvIndentationStyle[s]=fpt[u],s++))}if(!a)for(;t.tlvIndentationStyle.length>s;)t.tlvIndentationStyle.pop()}t.tlvNextIndent=o}if(t.tlvCodeActive){var r;if(n===void 0)if(t.tlvInBlockComment)e.match(/^.*?\*\//)?t.tlvInBlockComment=!1:e.skipToEnd(),n="comment";else if((r=e.match(m$r))&&!t.tlvInBlockComment)r[0]=="//"?e.skipToEnd():t.tlvInBlockComment=!0,n="comment";else if(r=e.match(gpt)){var h=r[1],g=r[2];Q8e.hasOwnProperty(h)&&(g.length>0||e.eol())?n=Q8e[h]:e.backUp(e.current().length-1)}else e.match(/^\t+/)?n="invalid":e.match(/^[\[\]{}\(\);\:]+/)?n="meta":(r=e.match(/^[mM]4([\+_])?[\w\d_]*/))?n=r[1]=="+"?"keyword.special":"keyword":e.match(/^ +/)?e.eol()&&(n="error"):e.match(/^[\w\d_]+/)?n="number":e.next()}else e.match(/^[mM]4([\w\d_]*)/)&&(n="keyword");return n},indent:function(e){return e.tlvCodeActive==!0?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[],e.tlvCodeActive=!0,e.tlvNextIndent=-1,e.tlvInBlockComment=!1}}}),mpt=Object.freeze(Object.defineProperty({__proto__:null,tlv:k$r,verilog:f$r},Symbol.toStringTag,{value:"Module"}));function w9n(e){for(var t={},n=e.split(" "),r=0;r!?^\/\|]/;function B8e(e,t,n){return t.tokenize=n,n(e,t)}function ibe(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if((r=='"'||r=="'")&&t.inParams)return B8e(e,t,v$r(r));if(/[\[\]{}\(\),;\.]/.test(r))return r=="("&&n?t.inParams=!0:r==")"&&(t.inParams=!1),null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if(r=="#")return e.eat("*")?B8e(e,t,A$r):r=="#"&&e.match(/ *\[ *\[/)?B8e(e,t,p$r):(e.skipToEnd(),"comment");if(r=='"')return e.skipTo(/"/),"comment";if(r=="$")return e.eatWhile(/[$_a-z0-9A-Z\.{:]/),e.eatWhile(/}/),t.beforeParams=!0,"builtin";if(Apt.test(r))return e.eatWhile(Apt),"comment";e.eatWhile(/[\w\$_{}\xa1-\uffff]/);var o=e.current().toLowerCase();return kpt&&kpt.propertyIsEnumerable(o)?"keyword":vpt&&vpt.propertyIsEnumerable(o)?(t.beforeParams=!0,"keyword"):null}function v$r(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return s&&(n.tokenize=ibe),"string"}}function A$r(e,t){for(var n=!1,r;r=e.next();){if(r=="#"&&n){t.tokenize=ibe;break}n=r=="*"}return"comment"}function p$r(e,t){for(var n=0,r;r=e.next();){if(r=="#"&&n==2){t.tokenize=ibe;break}r=="]"?n++:r!=" "&&(n=0)}return"meta"}const b$r={name:"tcl",startState:function(){return{tokenize:ibe,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"#"}}},w$r=Object.freeze(Object.defineProperty({__proto__:null,tcl:b$r},Symbol.toStringTag,{value:"Module"}));var Tv={addition:"inserted",attributes:"propertyName",bold:"strong",cite:"keyword",code:"monospace",definitionList:"list",deletion:"deleted",div:"punctuation",em:"emphasis",footnote:"variable",footCite:"qualifier",header:"heading",html:"comment",image:"atom",italic:"emphasis",link:"link",linkDefinition:"link",list1:"list",list2:"list.special",list3:"list",notextile:"string.special",pre:"operator",p:"content",quote:"bracket",span:"quote",specialChar:"character",strong:"strong",sub:"content.special",sup:"content.special",table:"variableName.special",tableHeading:"operator"};function O$r(e,t){t.mode=nu.newLayout,t.tableHeading=!1,t.layoutType==="definitionList"&&t.spanningLayout&&e.match(Fl("definitionListEnd"),!1)&&(t.spanningLayout=!1)}function ppt(e,t,n){if(n==="_")return e.eat("_")?X2(e,t,"italic",/__/,2):X2(e,t,"em",/_/,1);if(n==="*")return e.eat("*")?X2(e,t,"bold",/\*\*/,2):X2(e,t,"strong",/\*/,1);if(n==="[")return e.match(/\d+\]/)&&(t.footCite=!0),t0(t);if(n==="("){var r=e.match(/^(r|tm|c)\)/);if(r)return Tv.specialChar}if(n==="<"&&e.match(/(\w+)[^>]+>[^<]+<\/\1>/))return Tv.html;if(n==="?"&&e.eat("?"))return X2(e,t,"cite",/\?\?/,2);if(n==="="&&e.eat("="))return X2(e,t,"notextile",/==/,2);if(n==="-"&&!e.eat("-"))return X2(e,t,"deletion",/-/,1);if(n==="+")return X2(e,t,"addition",/\+/,1);if(n==="~")return X2(e,t,"sub",/~/,1);if(n==="^")return X2(e,t,"sup",/\^/,1);if(n==="%")return X2(e,t,"span",/%/,1);if(n==="@")return X2(e,t,"code",/@/,1);if(n==="!"){var o=X2(e,t,"image",/(?:\([^\)]+\))?!/,1);return e.match(/^:\S+/),o}return t0(t)}function X2(e,t,n,r,o){var s=e.pos>o?e.string.charAt(e.pos-o-1):null,a=e.peek();if(t[n]){if((!a||/\W/.test(a))&&s&&/\S/.test(s)){var l=t0(t);return t[n]=!1,l}}else(!s||/\W/.test(s))&&a&&/\S/.test(a)&&e.match(new RegExp("^.*\\S"+r.source+"(?:\\W|$)"),!1)&&(t[n]=!0,t.mode=nu.attributes);return t0(t)}function t0(e){var t=O9n(e);if(t)return t;var n=[];return e.layoutType&&n.push(Tv[e.layoutType]),n=n.concat(y$r(e,"addition","bold","cite","code","deletion","em","footCite","image","italic","link","span","strong","sub","sup","table","tableHeading")),e.layoutType==="header"&&n.push(Tv.header+"-"+e.header),n.length?n.join(" "):null}function O9n(e){var t=e.layoutType;switch(t){case"notextile":case"code":case"pre":return Tv[t];default:return e.notextile?Tv.notextile+(t?" "+Tv[t]:""):null}}function y$r(e){for(var t=[],n=1;n]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(e){switch(e){case"drawTable":return oa.makeRe("^",oa.single.drawTable,"$");case"html":return oa.makeRe("^",oa.single.html,"(?:",oa.single.html,")*","$");case"linkDefinition":return oa.makeRe("^",oa.single.linkDefinition,"$");case"listLayout":return oa.makeRe("^",oa.single.list,Fl("allAttributes"),"*\\s+");case"tableCellAttributes":return oa.makeRe("^",oa.choiceRe(oa.single.tableCellAttributes,Fl("allAttributes")),"+\\.");case"type":return oa.makeRe("^",Fl("allTypes"));case"typeLayout":return oa.makeRe("^",Fl("allTypes"),Fl("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return oa.makeRe("^",Fl("allAttributes"),"+");case"allTypes":return oa.choiceRe(oa.single.div,oa.single.foot,oa.single.header,oa.single.bc,oa.single.bq,oa.single.notextile,oa.single.pre,oa.single.table,oa.single.para);case"allAttributes":return oa.choiceRe(oa.attributes.selector,oa.attributes.css,oa.attributes.lang,oa.attributes.align,oa.attributes.pad);default:return oa.makeRe("^",oa.single[e])}},makeRe:function(){for(var e="",t=0;t$/,P$r=/^\x3C!--\}\}\}-->$/,F$r=/^\{\{\{$/,N$r=/^\}\}\}$/,U$r=/.*?\}\}\}/;function fx(e,t,n){return t.tokenize=n,n(e,t)}function Oy(e,t){var n=e.sol(),r=e.peek();if(t.block=!1,n&&/[<\/\*{}\-]/.test(r)){if(e.match(F$r))return t.block=!0,fx(e,t,bpt);if(e.match(B$r))return"quote";if(e.match(Q$r)||e.match(D$r)||e.match(R$r)||e.match(I$r)||e.match(M$r)||e.match(P$r))return"comment";if(e.match(T$r))return"contentSeparator"}if(e.next(),n&&/[\/\*!#;:>|]/.test(r)){if(r=="!")return e.skipToEnd(),"header";if(r=="*")return e.eatWhile("*"),"comment";if(r=="#")return e.eatWhile("#"),"comment";if(r==";")return e.eatWhile(";"),"comment";if(r==":")return e.eatWhile(":"),"comment";if(r==">")return e.eatWhile(">"),"quote";if(r=="|")return"header"}if(r=="{"&&e.match("{{"))return fx(e,t,bpt);if(/[hf]/i.test(r)&&/[ti]/i.test(e.peek())&&e.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if(r=='"')return"string";if(r=="~"||/[\[\]]/.test(r)&&e.match(r))return"brace";if(r=="@")return e.eatWhile(E$r),"link";if(/\d/.test(r))return e.eatWhile(/\d/),"number";if(r=="/"){if(e.eat("%"))return fx(e,t,j$r);if(e.eat("/"))return fx(e,t,V$r)}if(r=="_"&&e.eat("_"))return fx(e,t,z$r);if(r=="-"&&e.eat("-")){if(e.peek()!=" ")return fx(e,t,H$r);if(e.peek()==" ")return"brace"}return r=="'"&&e.eat("'")?fx(e,t,W$r):r=="<"&&e.eat("<")?fx(e,t,$$r):(e.eatWhile(/[\w\$_]/),L$r.propertyIsEnumerable(e.current())?"keyword":null)}function j$r(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=Oy;break}n=r=="%"}return"comment"}function W$r(e,t){for(var n=!1,r;r=e.next();){if(r=="'"&&n){t.tokenize=Oy;break}n=r=="'"}return"strong"}function bpt(e,t){var n=t.block;return n&&e.current()?"comment":!n&&e.match(U$r)||n&&e.sol()&&e.match(N$r)?(t.tokenize=Oy,"comment"):(e.next(),"comment")}function V$r(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=Oy;break}n=r=="/"}return"emphasis"}function z$r(e,t){for(var n=!1,r;r=e.next();){if(r=="_"&&n){t.tokenize=Oy;break}n=r=="_"}return"link"}function H$r(e,t){for(var n=!1,r;r=e.next();){if(r=="-"&&n){t.tokenize=Oy;break}n=r=="-"}return"deleted"}function $$r(e,t){if(e.current()=="<<")return"meta";var n=e.next();return n?n==">"&&e.peek()==">"?(e.next(),t.tokenize=Oy,"meta"):(e.eatWhile(/[\w\$_]/),x$r.propertyIsEnumerable(e.current())?"keyword":null):(t.tokenize=Oy,null)}const X$r={name:"tiddlywiki",startState:function(){return{tokenize:Oy}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n}},G$r=Object.freeze(Object.defineProperty({__proto__:null,tiddlyWiki:X$r},Symbol.toStringTag,{value:"Module"}));function $p(e,t,n){return function(r,o){for(;!r.eol();){if(r.match(t)){o.tokenize=w4;break}r.next()}return n&&(o.tokenize=n),e}}function vP(e){return function(t,n){for(;!t.eol();)t.next();return n.tokenize=w4,e}}function w4(e,t){function n(s){return t.tokenize=s,s(e,t)}var r=e.sol(),o=e.next();switch(o){case"{":return e.eat("/"),e.eatSpace(),e.eatWhile(/[^\s\u00a0=\"\'\/?(}]/),t.tokenize=dJe,"tag";case"_":if(e.eat("_"))return n($p("strong","__",w4));break;case"'":if(e.eat("'"))return n($p("em","''",w4));break;case"(":if(e.eat("("))return n($p("link","))",w4));break;case"[":return n($p("url","]",w4));case"|":if(e.eat("|"))return n($p("comment","||"));break;case"-":if(e.eat("="))return n($p("header string","=-",w4));if(e.eat("-"))return n($p("error tw-deleted","--",w4));break;case"=":if(e.match("=="))return n($p("tw-underline","===",w4));break;case":":if(e.eat(":"))return n($p("comment","::"));break;case"^":return n($p("tw-box","^"));case"~":if(e.match("np~"))return n($p("meta","~/np~"));break}if(r)switch(o){case"!":return e.match("!!!!!")||e.match("!!!!")||e.match("!!!")||e.match("!!"),n(vP("header string"));case"*":case"#":case"+":return n(vP("tw-listitem bracket"))}return null}var LFe,Mue;function dJe(e,t){var n=e.next(),r=e.peek();return n=="}"?(t.tokenize=w4,"tag"):n=="("||n==")"?"bracket":n=="="?(Mue="equals",r==">"&&(e.next(),r=e.peek()),/[\'\"]/.test(r)||(t.tokenize=Z$r()),"operator"):/[\'\"]/.test(n)?(t.tokenize=Y$r(n),t.tokenize(e,t)):(e.eatWhile(/[^\s\u00a0=\"\'\/?]/),"keyword")}function Y$r(e){return function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=dJe;break}return"string"}}function Z$r(){return function(e,t){for(;!e.eol();){var n=e.next(),r=e.peek();if(n==" "||n==","||/[ )}]/.test(r)){t.tokenize=dJe;break}}return"string"}}var ug,$W;function fie(){for(var e=arguments.length-1;e>=0;e--)ug.cc.push(arguments[e])}function Vv(){return fie.apply(null,arguments),!0}function y9n(e,t){var n=ug.context&&ug.context.noIndent;ug.context={prev:ug.context,pluginName:e,indent:ug.indented,startOfLine:t,noIndent:n}}function wpt(){ug.context&&(ug.context=ug.context.prev)}function q$r(e){if(e=="openPlugin")return ug.pluginName=LFe,Vv(xFe,K$r(ug.startOfLine));if(e=="closePlugin"){var t=!1;return ug.context?(t=ug.context.pluginName!=LFe,wpt()):t=!0,t&&($W="error"),Vv(J$r(t))}else return e=="string"&&((!ug.context||ug.context.name!="!cdata")&&y9n("!cdata"),ug.tokenize==w4&&wpt()),Vv()}function K$r(e){return function(t){return t=="selfclosePlugin"||t=="endPlugin"||t=="endPlugin"&&y9n(ug.pluginName,e),Vv()}}function J$r(e){return function(t){return e&&($W="error"),t=="endPlugin"?Vv():fie()}}function xFe(e){return e=="keyword"?($W="attribute",Vv(xFe)):e=="equals"?Vv(eXr,xFe):fie()}function eXr(e){return e=="keyword"?($W="string",Vv()):e=="string"?Vv(C9n):fie()}function C9n(e){return e=="string"?Vv(C9n):fie()}const tXr={name:"tiki",startState:function(){return{tokenize:w4,cc:[],indented:0,startOfLine:!0,pluginName:null,context:null}},token:function(e,t){if(e.sol()&&(t.startOfLine=!0,t.indented=e.indentation()),e.eatSpace())return null;$W=Mue=LFe=null;var n=t.tokenize(e,t);if((n||Mue)&&n!="comment")for(ug=t;;){var r=t.cc.pop()||q$r;if(r(Mue||n))break}return t.startOfLine=!1,$W||n},indent:function(e,t,n){var r=e.context;if(r&&r.noIndent)return 0;for(r&&/^{\//.test(t)&&(r=r.prev);r&&!r.startOfLine;)r=r.prev;return r?r.indent+n.unit:0}},nXr=Object.freeze(Object.defineProperty({__proto__:null,tiki:tXr},Symbol.toStringTag,{value:"Module"})),iXr={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,t){let n;if(!t.inString&&(n=e.match(/^('''|"""|'|")/))&&(t.stringType=n[0],t.inString=!0),e.sol()&&!t.inString&&t.inArray===0&&(t.lhs=!0),t.inString){for(;t.inString;)if(e.match(t.stringType))t.inString=!1;else if(e.peek()==="\\")e.next(),e.next();else{if(e.eol())break;e.match(/^.[^\\\"\']*/)}return t.lhs?"property":"string"}else{if(t.inArray&&e.peek()==="]")return e.next(),t.inArray--,"bracket";if(t.lhs&&e.peek()==="["&&e.skipTo("]"))return e.next(),e.peek()==="]"&&e.next(),"atom";if(e.peek()==="#")return e.skipToEnd(),"comment";if(e.eatSpace())return null;if(t.lhs&&e.eatWhile(function(r){return r!="="&&r!=" "}))return"property";if(t.lhs&&e.peek()==="=")return e.next(),t.lhs=!1,null;if(!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!t.lhs&&(e.match("true")||e.match("false")))return"atom";if(!t.lhs&&e.peek()==="[")return t.inArray++,e.next(),"bracket";if(!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/))return"number";e.eatSpace()||e.next()}return null},languageData:{commentTokens:{line:"#"}}},rXr=Object.freeze(Object.defineProperty({__proto__:null,toml:iXr},Symbol.toStringTag,{value:"Module"}));var Opt={};function oXr(e){if(e.eatSpace())return null;var t=e.sol(),n=e.next();if(n==="\\")return e.match("fB")||e.match("fR")||e.match("fI")||e.match("u")||e.match("d")||e.match("%")||e.match("&")?"string":e.match("m[")?(e.skipTo("]"),e.next(),"string"):e.match("s+")||e.match("s-")?(e.eatWhile(/[\d-]/),"string"):((e.match("(")||e.match("*("))&&e.eatWhile(/[\w-]/),"string");if(t&&(n==="."||n==="'")&&e.eat("\\")&&e.eat('"'))return e.skipToEnd(),"comment";if(t&&n==="."){if(e.match("B ")||e.match("I ")||e.match("R "))return"attribute";if(e.match("TH ")||e.match("SH ")||e.match("SS ")||e.match("HP "))return e.skipToEnd(),"quote";if(e.match(/[A-Z]/)&&e.match(/[A-Z]/)||e.match(/[a-z]/)&&e.match(/[a-z]/))return"attribute"}e.eatWhile(/[\w-]/);var r=e.current();return Opt.hasOwnProperty(r)?Opt[r]:null}function sXr(e,t){return(t.tokens[0]||oXr)(e,t)}const aXr={name:"troff",startState:function(){return{tokens:[]}},token:function(e,t){return sXr(e,t)}},lXr=Object.freeze(Object.defineProperty({__proto__:null,troff:aXr},Symbol.toStringTag,{value:"Module"}));function hk(e){for(var t={},n=e.split(" "),r=0;r!\/]/,KA;function CXr(e,t){var n=e.next();if(n=='"'||n=="'")return t.tokenize=_Xr(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\\:\?\.]/.test(n))return KA=n,"punctuation";if(n=="#")return e.skipToEnd(),"atom";if(n=="%")return e.eatWhile(/\b/),"atom";if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("*"))return t.tokenize=Cpt,Cpt(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(ypt.test(n))return n=="@"&&(e.match("try")||e.match("catch")||e.match("lazy"))?"keyword":(e.eatWhile(ypt),"operator");e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current();return cXr.propertyIsEnumerable(r)?"keyword":dXr.propertyIsEnumerable(r)?"builtin":uXr.propertyIsEnumerable(r)||fXr.propertyIsEnumerable(r)||gXr.propertyIsEnumerable(r)||hXr.propertyIsEnumerable(r)||mXr.propertyIsEnumerable(r)||kXr.propertyIsEnumerable(r)?"def":vXr.propertyIsEnumerable(r)||AXr.propertyIsEnumerable(r)||pXr.propertyIsEnumerable(r)?"string":bXr.propertyIsEnumerable(r)?"typeName.standard":wXr.propertyIsEnumerable(r)?"modifier":OXr.propertyIsEnumerable(r)?"atom":"variable"}function _Xr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){var a=t.peek();a&&(a=a.toLowerCase(),(a=="b"||a=="h"||a=="o")&&t.next()),s=!0;break}r=!r&&o=="\\"}return s&&(n.tokenize=null),"string"}}function Cpt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function S9n(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function Zae(e,t,n){var r=e.indented;return e.context&&e.context.type=="statement"&&(r=e.context.indented),e.context=new S9n(r,t,n,null,e.context)}function eX(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const SXr={name:"ttcn",startState:function(){return{tokenize:null,context:new S9n(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;KA=null;var r=(t.tokenize||CXr)(e,t);if(r=="comment")return r;if(n.align==null&&(n.align=!0),(KA==";"||KA==":"||KA==",")&&n.type=="statement")eX(t);else if(KA=="{")Zae(t,e.column(),"}");else if(KA=="[")Zae(t,e.column(),"]");else if(KA=="(")Zae(t,e.column(),")");else if(KA=="}"){for(;n.type=="statement";)n=eX(t);for(n.type=="}"&&(n=eX(t));n.type=="statement";)n=eX(t)}else KA==n.type?eX(t):yXr&&((n.type=="}"||n.type=="top")&&KA!=";"||n.type=="statement"&&KA=="newstatement")&&Zae(t,e.column(),"statement");return t.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:_9n}},LXr=Object.freeze(Object.defineProperty({__proto__:null,ttcn:SXr},Symbol.toStringTag,{value:"Module"}));function R8e(e){for(var t={},n=e.split(" "),r=0;r=&|]/;function E9n(e,t){var n=e.next();if(s5=null,n=="<"&&!e.match(/^[\s\u00a0=]/,!1))return e.match(/^[^\s\u00a0>]*>?/),"atom";if(n=='"'||n=="'")return t.tokenize=PXr(n),t.tokenize(e,t);if(/[{}\(\),\.;\[\]]/.test(n))return s5=n,null;if(n=="#")return e.skipToEnd(),"comment";if(Spt.test(n))return e.eatWhile(Spt),null;if(n==":")return"operator";if(e.eatWhile(/[_\w\d]/),e.peek()==":")return"variableName.special";var r=e.current();return MXr.test(r)?"meta":n>="A"&&n<="Z"?"comment":"keyword";var r=e.current()}function PXr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){n.tokenize=E9n;break}r=!r&&o=="\\"}return"string"}}function Kae(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function I8e(e){e.indent=e.context.indent,e.context=e.context.prev}const FXr={name:"turtle",startState:function(){return{tokenize:E9n,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"&&(t.context.align=!0),s5=="(")Kae(t,")",e.column());else if(s5=="[")Kae(t,"]",e.column());else if(s5=="{")Kae(t,"}",e.column());else if(/[\]\}\)]/.test(s5)){for(;t.context&&t.context.type=="pattern";)I8e(t);t.context&&s5==t.context.type&&I8e(t)}else s5=="."&&t.context&&t.context.type=="pattern"?I8e(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?Kae(t,"pattern",e.column()):t.context.type=="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type=="pattern";)o=o.prev;var s=o&&r==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0},languageData:{commentTokens:{line:"#"}}},NXr=Object.freeze(Object.defineProperty({__proto__:null,turtle:FXr},Symbol.toStringTag,{value:"Module"}));function Nz(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var T9n=["Clamp","Constructor","EnforceRange","Exposed","ImplicitThis","Global","PrimaryGlobal","LegacyArrayClass","LegacyUnenumerableNamedProperties","LenientThis","NamedConstructor","NewObject","NoInterfaceObject","OverrideBuiltins","PutForwards","Replaceable","SameObject","TreatNonObjectAsNull","TreatNullAs","EmptyString","Unforgeable","Unscopeable"],UXr=Nz(T9n),Q9n=["unsigned","short","long","unrestricted","float","double","boolean","byte","octet","Promise","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","ByteString","DOMString","USVString","sequence","object","RegExp","Error","DOMException","FrozenArray","any","void"],jXr=Nz(Q9n),D9n=["attribute","callback","const","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","legacycaller","maplike","partial","required","serializer","setlike","setter","static","stringifier","typedef","optional","readonly","or"],WXr=Nz(D9n),B9n=["true","false","Infinity","NaN","null"],VXr=Nz(B9n),zXr=["callback","dictionary","enum","interface"],HXr=Nz(zXr),$Xr=["typedef"],XXr=Nz($Xr),GXr=/^[:<=>?]/,YXr=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,ZXr=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,Lpt=/^_?[A-Za-z][0-9A-Z_a-z-]*/,qXr=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,KXr=/^"[^"]*"/,JXr=/^\/\*.*?\*\//,eGr=/^\/\*.*/,tGr=/^.*?\*\//;function nGr(e,t){if(e.eatSpace())return null;if(t.inComment)return e.match(tGr)?(t.inComment=!1,"comment"):(e.skipToEnd(),"comment");if(e.match("//"))return e.skipToEnd(),"comment";if(e.match(JXr))return"comment";if(e.match(eGr))return t.inComment=!0,"comment";if(e.match(/^-?[0-9\.]/,!1)&&(e.match(YXr)||e.match(ZXr)))return"number";if(e.match(KXr))return"string";if(t.startDef&&e.match(Lpt))return"def";if(t.endDef&&e.match(qXr))return t.endDef=!1,"def";if(e.match(WXr))return"keyword";if(e.match(jXr)){var n=t.lastToken,r=(e.match(/^\s*(.+?)\b/,!1)||[])[1];return n===":"||n==="implements"||r==="implements"||r==="="?"builtin":"type"}return e.match(UXr)?"builtin":e.match(VXr)?"atom":e.match(Lpt)?"variable":e.match(GXr)?"operator":(e.next(),null)}const iGr={name:"webidl",startState:function(){return{inComment:!1,lastToken:"",startDef:!1,endDef:!1}},token:function(e,t){var n=nGr(e,t);if(n){var r=e.current();t.lastToken=r,n==="keyword"?(t.startDef=HXr.test(r),t.endDef=t.endDef||XXr.test(r)):t.startDef=!1}return n},languageData:{autocomplete:T9n.concat(Q9n).concat(D9n).concat(B9n)}},rGr=Object.freeze(Object.defineProperty({__proto__:null,webIDL:iGr},Symbol.toStringTag,{value:"Module"}));var EFe="error";function rE(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var oGr=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),sGr=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),aGr=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),lGr=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),cGr=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),dGr=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),R9n=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],I9n=["else","elseif","case","catch","finally"],M9n=["next","loop"],P9n=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],uGr=rE(P9n),F9n=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],N9n=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],hGr=rE(F9n),fGr=rE(N9n),gGr='"',mGr=rE(R9n),U9n=rE(I9n),j9n=rE(M9n),W9n=rE(["end"]),kGr=rE(["do"]);function TFe(e,t){t.currentIndent++}function Pue(e,t){t.currentIndent--}function QFe(e,t){if(e.eatSpace())return null;var n=e.peek();if(n==="'")return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var r=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(r=!0),r)return e.eat(/J/i),"number";var o=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?o=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),o=!0):e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}return e.match(gGr)?(t.tokenize=vGr(e.current()),t.tokenize(e,t)):e.match(cGr)||e.match(lGr)?null:e.match(aGr)||e.match(oGr)||e.match(uGr)?"operator":e.match(sGr)?null:e.match(kGr)?(TFe(e,t),t.doInCurrentLine=!0,"keyword"):e.match(mGr)?(t.doInCurrentLine?t.doInCurrentLine=!1:TFe(e,t),"keyword"):e.match(U9n)?"keyword":e.match(W9n)?(Pue(e,t),Pue(e,t),"keyword"):e.match(j9n)?(Pue(e,t),"keyword"):e.match(fGr)||e.match(hGr)?"keyword":e.match(dGr)?"variable":(e.next(),EFe)}function vGr(e){var t=e.length==1,n="string";return function(r,o){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return o.tokenize=QFe,n;r.eat(/['"]/)}return t&&(o.tokenize=QFe),n}}function AGr(e,t){var n=t.tokenize(e,t),r=e.current();if(r===".")return n=t.tokenize(e,t),n==="variable"?"variable":EFe;var o="[({".indexOf(r);return o!==-1&&TFe(e,t),o="])}".indexOf(r),o!==-1&&Pue(e,t)?EFe:n}const pGr={name:"vb",startState:function(){return{tokenize:QFe,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=AGr(e,t);return t.lastToken={style:n,content:e.current()},n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(j9n)||r.match(W9n)||r.match(U9n)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:R9n.concat(I9n).concat(M9n).concat(P9n).concat(F9n).concat(N9n)}},bGr=Object.freeze(Object.defineProperty({__proto__:null,vb:pGr},Symbol.toStringTag,{value:"Module"}));function V9n(e){var t="error";function n(q){return new RegExp("^(("+q.join(")|(")+"))\\b","i")}var r=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),o=new RegExp("^((<>)|(<=)|(>=))"),s=new RegExp("^[\\.,]"),a=new RegExp("^[\\(\\)]"),l=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),d=["class","sub","select","while","if","function","property","with","for"],u=["else","elseif","case"],h=["next","loop","wend"],g=n(["and","or","not","xor","is","mod","eqv","imp"]),m=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],v=["true","false","nothing","empty","null"],f=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],k=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],A=["WScript","err","debug","RegExp"],p=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],b=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],w=["server","response","request","session","application"],O=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],y=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],C=b.concat(p);A=A.concat(k),e.isASP&&(A=A.concat(w),C=C.concat(y,O));var _=n(m),S=n(v),L=n(f),E=n(A),T=n(C),D='"',P=n(d),Q=n(u),M=n(h),B=n(["end"]),R=n(["do"]),I=n(["on error resume next","exit"]),F=n(["rem"]);function j(q,re){re.currentIndent++}function W(q,re){re.currentIndent--}function H(q,re){if(q.eatSpace())return null;var J=q.peek();if(J==="'"||q.match(F))return q.skipToEnd(),"comment";if(q.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!q.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var oe=!1;if((q.match(/^\d*\.\d+/i)||q.match(/^\d+\.\d*/)||q.match(/^\.\d+/))&&(oe=!0),oe)return q.eat(/J/i),"number";var se=!1;if(q.match(/^&H[0-9a-f]+/i)||q.match(/^&O[0-7]+/i)?se=!0:q.match(/^[1-9]\d*F?/)?(q.eat(/J/i),se=!0):q.match(/^0(?![\dx])/i)&&(se=!0),se)return q.eat(/L/i),"number"}return q.match(D)?(re.tokenize=$(q.current()),re.tokenize(q,re)):q.match(o)||q.match(r)||q.match(g)?"operator":q.match(s)?null:q.match(a)?"bracket":q.match(I)?(re.doInCurrentLine=!0,"keyword"):q.match(R)?(j(q,re),re.doInCurrentLine=!0,"keyword"):q.match(P)?(re.doInCurrentLine?re.doInCurrentLine=!1:j(q,re),"keyword"):q.match(Q)?"keyword":q.match(B)?(W(q,re),W(q,re),"keyword"):q.match(M)?(re.doInCurrentLine?re.doInCurrentLine=!1:W(q,re),"keyword"):q.match(_)?"keyword":q.match(S)?"atom":q.match(T)?"variableName.special":q.match(L)||q.match(E)?"builtin":q.match(l)?"variable":(q.next(),t)}function $(q){var re=q.length==1,J="string";return function(oe,se){for(;!oe.eol();){if(oe.eatWhile(/[^'"]/),oe.match(q))return se.tokenize=H,J;oe.eat(/['"]/)}return re&&(se.tokenize=H),J}}function G(q,re){var J=re.tokenize(q,re),oe=q.current();return oe==="."?(J=re.tokenize(q,re),oe=q.current(),J&&(J.substr(0,8)==="variable"||J==="builtin"||J==="keyword")?((J==="builtin"||J==="keyword")&&(J="variable"),C.indexOf(oe.substr(1))>-1&&(J="keyword"),J):t):J}return{name:"vbscript",startState:function(){return{tokenize:H,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(q,re){q.sol()&&(re.currentIndent+=re.nextLineIndent,re.nextLineIndent=0,re.doInCurrentLine=0);var J=G(q,re);return re.lastToken={style:J,content:q.current()},J===null&&(J=null),J},indent:function(q,re,J){var oe=re.replace(/^\s+|\s+$/g,"");return oe.match(M)||oe.match(B)||oe.match(Q)?J.unit*(q.currentIndent-1):q.currentIndent<0?0:q.currentIndent*J.unit}}}const wGr=V9n({}),OGr=V9n({isASP:!0}),yGr=Object.freeze(Object.defineProperty({__proto__:null,vbScript:wGr,vbScriptASP:OGr},Symbol.toStringTag,{value:"Module"}));function uJe(e){for(var t={},n=e.split(" "),r=0;r!?:\/|]/;function ele(e,t,n){return t.tokenize=n,n(e,t)}function sbe(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if(r=="'"&&!t.inString&&t.inParams)return t.lastTokenWasBuiltin=!1,ele(e,t,Qpt(r));if(r=='"'){if(t.lastTokenWasBuiltin=!1,t.inString)return t.inString=!1,"string";if(t.inParams)return ele(e,t,Qpt(r))}else{if(/[\[\]{}\(\),;\.]/.test(r))return r=="("&&n?t.inParams=!0:r==")"&&(t.inParams=!1,t.lastTokenWasBuiltin=!0),null;if(/\d/.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(/[\w\.]/),"number";if(r=="#"&&e.eat("*"))return t.lastTokenWasBuiltin=!1,ele(e,t,CGr);if(r=="#"&&e.match(/ *\[ *\[/))return t.lastTokenWasBuiltin=!1,ele(e,t,_Gr);if(r=="#"&&e.eat("#"))return t.lastTokenWasBuiltin=!1,e.skipToEnd(),"comment";if(r=="$")return e.eat("!"),e.eatWhile(/[\w\d\$_\.{}-]/),Ept&&Ept.propertyIsEnumerable(e.current())?"keyword":(t.lastTokenWasBuiltin=!0,t.beforeParams=!0,"builtin");if(Tpt.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(Tpt),"operator";e.eatWhile(/[\w\$_{}@]/);var o=e.current();return xpt&&xpt.propertyIsEnumerable(o)?"keyword":Jae&&Jae.propertyIsEnumerable(o)||e.current().match(/^#@?[a-z0-9_]+ *$/i)&&e.peek()=="("&&!(Jae&&Jae.propertyIsEnumerable(o.toLowerCase()))?(t.beforeParams=!0,t.lastTokenWasBuiltin=!1,"keyword"):t.inString?(t.lastTokenWasBuiltin=!1,"string"):e.pos>o.length&&e.string.charAt(e.pos-o.length-1)=="."&&t.lastTokenWasBuiltin?"builtin":(t.lastTokenWasBuiltin=!1,null)}}function Qpt(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}if(e=='"'&&t.peek()=="$"&&!r){n.inString=!0,s=!0;break}r=!r&&o=="\\"}return s&&(n.tokenize=sbe),"string"}}function CGr(e,t){for(var n=!1,r;r=e.next();){if(r=="#"&&n){t.tokenize=sbe;break}n=r=="*"}return"comment"}function _Gr(e,t){for(var n=0,r;r=e.next();){if(r=="#"&&n==2){t.tokenize=sbe;break}r=="]"?n++:r!=" "&&(n=0)}return"meta"}const SGr={name:"velocity",startState:function(){return{tokenize:sbe,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"##",block:{open:"#*",close:"*#"}}}},LGr=Object.freeze(Object.defineProperty({__proto__:null,velocity:SGr},Symbol.toStringTag,{value:"Module"}));function hJe(e){for(var t={},n=e.split(","),r=0;r",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"],l=0,d=h.length;l\"\'\/?]/);)a+=l;return LF(e,t,FGr(a,s))}else{if(n=="{")return mS(t,{type:"codeblock"}),null;if(n=="}")return R4(t),null;if(X9n(t))return n==">"?"tag":n=="/"&&e.eat(">")?(R4(t),"tag"):"variable";if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),"atom";if(n==="("&&e.eat(":"))return mS(t,{type:"comment"}),LF(e,t,IGr);if(!o&&(n==='"'||n==="'"))return $9n(e,t,n);if(n==="$")return LF(e,t,PGr);if(n===":"&&e.eat("="))return"keyword";if(n==="(")return mS(t,{type:"paren"}),null;if(n===")")return R4(t),null;if(n==="[")return mS(t,{type:"bracket"}),null;if(n==="]")return R4(t),null;var d=nle.propertyIsEnumerable(n)&&nle[n];if(o&&n==='"')for(;e.next()!=='"';);if(o&&n==="'")for(;e.next()!=="'";);d||e.eatWhile(/[\w\$_-]/);var u=e.eat(":");!e.eat(":")&&u&&e.eatWhile(/[\w\$_-]/),e.match(/^[ \t]*\(/,!1)&&(r=!0);var h=e.current();return d=nle.propertyIsEnumerable(h)&&nle[h],r&&!d&&(d={type:"function_call",style:"def"}),WGr(t)?(R4(t),"variable"):((h=="element"||h=="attribute"||d.type=="axis_specifier")&&mS(t,{type:"xmlconstructor"}),d?d.style:"variable")}}function IGr(e,t){for(var n=!1,r=!1,o=0,s;s=e.next();){if(s==")"&&n)if(o>0)o--;else{R4(t);break}else s==":"&&r&&o++;n=s==":",r=s=="("}return"comment"}function MGr(e,t){return function(n,r){for(var o;o=n.next();)if(o==e){R4(r),t&&(r.tokenize=t);break}else if(n.match("{",!1)&&Fue(r))return mS(r,{type:"codeblock"}),r.tokenize=r3,"string";return"string"}}function $9n(e,t,n,r){let o=MGr(n,r);return mS(t,{type:"string",name:n,tokenize:o}),LF(e,t,o)}function PGr(e,t){var n=/[\w\$_-]/;if(e.eat('"')){for(;e.next()!=='"';);e.eat(":")}else e.eatWhile(n),e.match(":=",!1)||e.eat(":");return e.eatWhile(n),t.tokenize=r3,"variable"}function FGr(e,t){return function(n,r){if(n.eatSpace(),t&&n.eat(">"))return R4(r),r.tokenize=r3,"tag";if(n.eat("/")||mS(r,{type:"tag",name:e,tokenize:r3}),n.eat(">"))r.tokenize=r3;else return r.tokenize=DFe,"tag";return"tag"}}function DFe(e,t){var n=e.next();return n=="/"&&e.eat(">")?(Fue(t)&&R4(t),X9n(t)&&R4(t),"tag"):n==">"?(Fue(t)&&R4(t),"tag"):n=="="?null:n=='"'||n=="'"?$9n(e,t,n,DFe):(Fue(t)||mS(t,{type:"attribute",tokenize:DFe}),e.eat(/[a-zA-Z_:]/),e.eatWhile(/[-a-zA-Z0-9_:.]/),e.eatSpace(),(e.match(">",!1)||e.match("/",!1))&&(R4(t),t.tokenize=r3),"attribute")}function NGr(e,t){for(var n;n=e.next();)if(n=="-"&&e.match("->",!0))return t.tokenize=r3,"comment"}function UGr(e,t){for(var n;n=e.next();)if(n=="]"&&e.match("]",!0))return t.tokenize=r3,"comment"}function jGr(e,t){for(var n;n=e.next();)if(n=="?"&&e.match(">",!0))return t.tokenize=r3,"processingInstruction"}function X9n(e){return fJe(e,"tag")}function Fue(e){return fJe(e,"attribute")}function WGr(e){return fJe(e,"xmlconstructor")}function VGr(e){return e.current()==='"'?e.match(/^[^\"]+\"\:/,!1):e.current()==="'"?e.match(/^[^\"]+\'\:/,!1):!1}function fJe(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function mS(e,t){e.stack.push(t)}function R4(e){e.stack.pop();var t=e.stack.length&&e.stack[e.stack.length-1].tokenize;e.tokenize=t||r3}const zGr={name:"xquery",startState:function(){return{tokenize:r3,cc:[],stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{commentTokens:{block:{open:"(:",close:":)"}}}},HGr=Object.freeze(Object.defineProperty({__proto__:null,xQuery:zGr},Symbol.toStringTag,{value:"Module"}));function $Gr(e){for(var t={},n=e.split(" "),r=0;r|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?"operator":"error"}function JGr(e,t){for(var n,r=!1,o=!1;(n=e.next())!=null;){if(n==='"'&&!o){r=!0;break}o=!o&&n==="\\"}return r&&!o&&(t.tokenize=dme),"string"}function eYr(e,t){for(var n,r;(r=e.next())!=null;){if(n==="*"&&r==="/"){t.tokenize=dme;break}n=r}return"comment"}function M8e(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}const tYr={name:"yacas",startState:function(){return{tokenize:dme,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==dme&&e.tokenize!==null)return null;var r=0;return(t==="]"||t==="];"||t==="}"||t==="};"||t===");")&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},nYr=Object.freeze(Object.defineProperty({__proto__:null,yacas:tYr},Symbol.toStringTag,{value:"Module"}));function G9n(e){var t,n;e?(t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,n=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,n=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var r=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,o=/^(n?[zc]|p[oe]?|m)\b/i,s=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,a=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:"z80",startState:function(){return{context:0}},token:function(l,d){if(l.column()||(d.context=0),l.eatSpace())return null;var u;if(l.eatWhile(/\w/))if(e&&l.eat(".")&&l.eatWhile(/\w/),u=l.current(),l.indentation()){if((d.context==1||d.context==4)&&r.test(u))return d.context=4,"variable";if(d.context==2&&o.test(u))return d.context=4,"variableName.special";if(t.test(u))return d.context=1,"keyword";if(n.test(u))return d.context=2,"keyword";if(d.context==4&&a.test(u))return"number";if(s.test(u))return"error"}else return l.match(a)?"number":null;else{if(l.eat(";"))return l.skipToEnd(),"comment";if(l.eat('"')){for(;(u=l.next())&&u!='"';)u=="\\"&&l.next();return"string"}else if(l.eat("'")){if(l.match(/\\?.'/))return"number"}else if(l.eat(".")||l.sol()&&l.eat("#")){if(d.context=5,l.eatWhile(/\w/))return"def"}else if(l.eat("$")){if(l.eatWhile(/[\da-f]/i))return"number"}else if(l.eat("%")){if(l.eatWhile(/[01]/))return"number"}else l.next()}return null}}}const iYr=G9n(!1),rYr=G9n(!0),oYr=Object.freeze(Object.defineProperty({__proto__:null,ez80:rYr,z80:iYr},Symbol.toStringTag,{value:"Module"}));function gJe(e){return{name:"mscgen",startState:cYr,copyState:dYr,token:uYr(e),languageData:{commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}}}const sYr=gJe({keywords:["msc"],options:["hscale","width","arcgradient","wordwraparcs"],constants:["true","false","on","off"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),aYr=gJe({keywords:null,options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:null,brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),lYr=gJe({keywords:["msc","xu"],options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip","title","deactivate","activate","activation"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});function ile(e){return new RegExp("^\\b("+e.join("|")+")\\b","i")}function iX(e){return new RegExp("^(?:"+e.join("|")+")","i")}function cYr(){return{inComment:!1,inString:!1,inAttributeList:!1,inScript:!1}}function dYr(e){return{inComment:e.inComment,inString:e.inString,inAttributeList:e.inAttributeList,inScript:e.inScript}}function uYr(e){return function(t,n){if(t.match(iX(e.brackets),!0,!0))return"bracket";if(!n.inComment){if(t.match(/\/\*[^\*\/]*/,!0,!0))return n.inComment=!0,"comment";if(t.match(iX(e.singlecomment),!0,!0))return t.skipToEnd(),"comment"}if(n.inComment)return t.match(/[^\*\/]*\*\//,!0,!0)?n.inComment=!1:t.skipToEnd(),"comment";if(!n.inString&&t.match(/\"(\\\"|[^\"])*/,!0,!0))return n.inString=!0,"string";if(n.inString)return t.match(/[^\"]*\"/,!0,!0)?n.inString=!1:t.skipToEnd(),"string";if(e.keywords&&t.match(ile(e.keywords),!0,!0)||t.match(ile(e.options),!0,!0)||t.match(ile(e.arcsWords),!0,!0)||t.match(iX(e.arcsOthers),!0,!0))return"keyword";if(e.operators&&t.match(iX(e.operators),!0,!0))return"operator";if(e.constants&&t.match(iX(e.constants),!0,!0))return"variable";if(!e.inAttributeList&&e.attributes&&t.match("[",!0,!0))return e.inAttributeList=!0,"bracket";if(e.inAttributeList){if(e.attributes!==null&&t.match(ile(e.attributes),!0,!0))return"attribute";if(t.match("]",!0,!0))return e.inAttributeList=!1,"bracket"}return t.next(),null}}const P8e=Object.freeze(Object.defineProperty({__proto__:null,mscgen:sYr,msgenny:aYr,xu:lYr},Symbol.toStringTag,{value:"Module"})),hYr=zd.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new Cv("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new Cv("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new Cv("[~RPwxU~ZOp~~",11,15),new Cv("[~RPrsU~ZOn~~",11,14),new Cv("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new Cv("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),fYr=E0.parser.configure({top:"SingleExpression"}),Y9n=hYr.configure({props:[Xd({Text:ve.content,Is:ve.definitionOperator,AttributeName:ve.attributeName,VueAttributeName:ve.keyword,Identifier:ve.variableName,"AttributeValue ScriptAttributeValue":ve.attributeValue,Entity:ve.character,"{{ }}":ve.brace,"@ :":ve.punctuation})]}),Z9n={parser:fYr},gYr=Y9n.configure({wrap:Ap((e,t)=>e.name=="InterpolationContent"?Z9n:null)}),mYr=Y9n.configure({wrap:Ap((e,t)=>e.name=="AttributeScript"?Z9n:null),top:"Attribute"}),kYr={parser:gYr},vYr={parser:mYr},BFe=dI();function q9n(e){return e.configure({dialect:"selfClosing",wrap:Ap(AYr)},"vue")}const K9n=q9n(BFe.language);function AYr(e,t){switch(e.name){case"Attribute":return/^(@|:|v-)/.test(t.read(e.from,e.from+2))?vYr:null;case"Text":return kYr}return null}function pYr(e={}){let t=BFe;if(e.base){if(e.base.language.name!="html"||!(e.base.language instanceof Vd))throw new RangeError("The base option must be the result of calling html(...)");t=e.base}return new wd(t.language==BFe.language?K9n:q9n(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["{",'"']}})])}const bYr=Object.freeze(Object.defineProperty({__proto__:null,vue:pYr,vueLanguage:K9n},Symbol.toStringTag,{value:"Module"})),wYr=1,OYr=33,yYr=34,CYr=35,_Yr=36,SYr=new go(e=>{let t=e.pos;for(;;){if(e.next==10){e.advance();break}else if(e.next==123&&e.peek(1)==123||e.next<0)break;e.advance()}e.pos>t&&e.acceptToken(wYr)});function abe(e,t,n){return new go(r=>{let o=r.pos;for(;r.next!=e&&r.next>=0&&(n||r.next!=38&&(r.next!=123||r.peek(1)!=123));)r.advance();r.pos>o&&r.acceptToken(t)})}const LYr=abe(39,OYr,!1),xYr=abe(34,yYr,!1),EYr=abe(39,CYr,!0),TYr=abe(34,_Yr,!0),QYr=zd.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<e.name=="InterpolationContent"?RFe:null)}),IYr=J9n.configure({wrap:Ap((e,t)=>{var n;return e.name=="InterpolationContent"?RFe:e.name!="AttributeInterpolation"?null:((n=e.node.parent)===null||n===void 0?void 0:n.name)=="StatementAttributeValue"?BYr:RFe}),top:"Attribute"}),MYr={parser:RYr},PYr={parser:IYr},IFe=dI({selfClosingTags:!0});function e6n(e){return e.configure({wrap:Ap(FYr)},"angular")}const t6n=e6n(IFe.language);function FYr(e,t){switch(e.name){case"Attribute":return/^[*#(\[]|\{\{/.test(t.read(e.from,e.to))?PYr:null;case"Text":return MYr}return null}function NYr(e={}){let t=IFe;if(e.base){if(e.base.language.name!="html"||!(e.base.language instanceof Vd))throw new RangeError("The base option must be the result of calling html(...)");t=e.base}return new wd(t.language==IFe.language?t6n:e6n(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/})])}const UYr=Object.freeze(Object.defineProperty({__proto__:null,angular:NYr,angularLanguage:t6n},Symbol.toStringTag,{value:"Module"})),jYr=Je({__name:"404",setup(e){const t=_pe();function n(){t.push("/")}const r=X(()=>window==null?void 0:window.$electron);return(o,s)=>{const a=Si;return xe(),Ge("div",{class:"notFound",style:no({height:Ae(r)?"calc(100vh - 32px)":"100vh"})},[s[1]||(s[1]=ge("span",{class:"title"},"404",-1)),s[2]||(s[2]=ge("div",{class:"notFoundText"},"页面不存在",-1)),c(a,{class:"notFoundBtn",theme:"primary",onClick:n},{default:Oe(()=>[...s[0]||(s[0]=[Bt("返回首页",-1)])]),_:1})],4)}}}),WYr=oo(jYr,[["__scopeId","data-v-0b027e54"]]),VYr=Object.freeze(Object.defineProperty({__proto__:null,default:WYr},Symbol.toStringTag,{value:"Module"})),lbe="data:image/png;base64,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";function n6n(e,t){return function(){return e.apply(t,arguments)}}const{toString:zYr}=Object.prototype,{getPrototypeOf:mJe}=Object,{iterator:cbe,toStringTag:i6n}=Symbol,dbe=(e=>t=>{const n=zYr.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),M3=e=>(e=e.toLowerCase(),t=>dbe(t)===e),ube=e=>t=>typeof t===e,{isArray:Uz}=Array,XW=ube("undefined");function gie(e){return e!==null&&!XW(e)&&e.constructor!==null&&!XW(e.constructor)&&e2(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const r6n=M3("ArrayBuffer");function HYr(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&r6n(e.buffer),t}const $Yr=ube("string"),e2=ube("function"),o6n=ube("number"),mie=e=>e!==null&&typeof e=="object",XYr=e=>e===!0||e===!1,Nue=e=>{if(dbe(e)!=="object")return!1;const t=mJe(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(i6n in e)&&!(cbe in e)},GYr=e=>{if(!mie(e)||gie(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},YYr=M3("Date"),ZYr=M3("File"),qYr=e=>!!(e&&typeof e.uri<"u"),KYr=e=>e&&typeof e.getParts<"u",JYr=M3("Blob"),eZr=M3("FileList"),tZr=e=>mie(e)&&e2(e.pipe);function nZr(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Ipt=nZr(),Mpt=typeof Ipt.FormData<"u"?Ipt.FormData:void 0,iZr=e=>{let t;return e&&(Mpt&&e instanceof Mpt||e2(e.append)&&((t=dbe(e))==="formdata"||t==="object"&&e2(e.toString)&&e.toString()==="[object FormData]"))},rZr=M3("URLSearchParams"),[oZr,sZr,aZr,lZr]=["ReadableStream","Request","Response","Headers"].map(M3),cZr=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function kie(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Uz(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const nQ=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,a6n=e=>!XW(e)&&e!==nQ;function MFe(){const{caseless:e,skipUndefined:t}=a6n(this)&&this||{},n={},r=(o,s)=>{if(s==="__proto__"||s==="constructor"||s==="prototype")return;const a=e&&s6n(n,s)||s;Nue(n[a])&&Nue(o)?n[a]=MFe(n[a],o):Nue(o)?n[a]=MFe({},o):Uz(o)?n[a]=o.slice():(!t||!XW(o))&&(n[a]=o)};for(let o=0,s=arguments.length;o(kie(t,(o,s)=>{n&&e2(o)?Object.defineProperty(e,s,{value:n6n(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,s,{value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),uZr=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),hZr=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},fZr=(e,t,n,r)=>{let o,s,a;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)a=o[s],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&mJe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},gZr=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},mZr=e=>{if(!e)return null;if(Uz(e))return e;let t=e.length;if(!o6n(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},kZr=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&mJe(Uint8Array)),vZr=(e,t)=>{const r=(e&&e[cbe]).call(e);let o;for(;(o=r.next())&&!o.done;){const s=o.value;t.call(e,s[0],s[1])}},AZr=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},pZr=M3("HTMLFormElement"),bZr=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Ppt=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),wZr=M3("RegExp"),l6n=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};kie(n,(o,s)=>{let a;(a=t(o,s,e))!==!1&&(r[s]=a||o)}),Object.defineProperties(e,r)},OZr=e=>{l6n(e,(t,n)=>{if(e2(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(e2(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},yZr=(e,t)=>{const n={},r=o=>{o.forEach(s=>{n[s]=!0})};return Uz(e)?r(e):r(String(e).split(t)),n},CZr=()=>{},_Zr=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function SZr(e){return!!(e&&e2(e.append)&&e[i6n]==="FormData"&&e[cbe])}const LZr=e=>{const t=new Array(10),n=(r,o)=>{if(mie(r)){if(t.indexOf(r)>=0)return;if(gie(r))return r;if(!("toJSON"in r)){t[o]=r;const s=Uz(r)?[]:{};return kie(r,(a,l)=>{const d=n(a,o+1);!XW(d)&&(s[l]=d)}),t[o]=void 0,s}}return r};return n(e,0)},xZr=M3("AsyncFunction"),EZr=e=>e&&(mie(e)||e2(e))&&e2(e.then)&&e2(e.catch),c6n=((e,t)=>e?setImmediate:t?((n,r)=>(nQ.addEventListener("message",({source:o,data:s})=>{o===nQ&&s===n&&r.length&&r.shift()()},!1),o=>{r.push(o),nQ.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",e2(nQ.postMessage)),TZr=typeof queueMicrotask<"u"?queueMicrotask.bind(nQ):typeof process<"u"&&process.nextTick||c6n,QZr=e=>e!=null&&e2(e[cbe]),vn={isArray:Uz,isArrayBuffer:r6n,isBuffer:gie,isFormData:iZr,isArrayBufferView:HYr,isString:$Yr,isNumber:o6n,isBoolean:XYr,isObject:mie,isPlainObject:Nue,isEmptyObject:GYr,isReadableStream:oZr,isRequest:sZr,isResponse:aZr,isHeaders:lZr,isUndefined:XW,isDate:YYr,isFile:ZYr,isReactNativeBlob:qYr,isReactNative:KYr,isBlob:JYr,isRegExp:wZr,isFunction:e2,isStream:tZr,isURLSearchParams:rZr,isTypedArray:kZr,isFileList:eZr,forEach:kie,merge:MFe,extend:dZr,trim:cZr,stripBOM:uZr,inherits:hZr,toFlatObject:fZr,kindOf:dbe,kindOfTest:M3,endsWith:gZr,toArray:mZr,forEachEntry:vZr,matchAll:AZr,isHTMLForm:pZr,hasOwnProperty:Ppt,hasOwnProp:Ppt,reduceDescriptors:l6n,freezeMethods:OZr,toObjectSet:yZr,toCamelCase:bZr,noop:CZr,toFiniteNumber:_Zr,findKey:s6n,global:nQ,isContextDefined:a6n,isSpecCompliantForm:SZr,toJSONObject:LZr,isAsyncFn:xZr,isThenable:EZr,setImmediate:c6n,asap:TZr,isIterable:QZr};let No=class d6n extends Error{static from(t,n,r,o,s,a){const l=new d6n(t.message,n||t.code,r,o,s);return l.cause=t,l.name=t.name,t.status!=null&&l.status==null&&(l.status=t.status),a&&Object.assign(l,a),l}constructor(t,n,r,o,s){super(t),Object.defineProperty(this,"message",{value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),r&&(this.config=r),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:vn.toJSONObject(this.config),code:this.code,status:this.status}}};No.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";No.ERR_BAD_OPTION="ERR_BAD_OPTION";No.ECONNABORTED="ECONNABORTED";No.ETIMEDOUT="ETIMEDOUT";No.ERR_NETWORK="ERR_NETWORK";No.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";No.ERR_DEPRECATED="ERR_DEPRECATED";No.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";No.ERR_BAD_REQUEST="ERR_BAD_REQUEST";No.ERR_CANCELED="ERR_CANCELED";No.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";No.ERR_INVALID_URL="ERR_INVALID_URL";const DZr=null;function PFe(e){return vn.isPlainObject(e)||vn.isArray(e)}function u6n(e){return vn.endsWith(e,"[]")?e.slice(0,-2):e}function F8e(e,t,n){return e?e.concat(t).map(function(o,s){return o=u6n(o),!n&&s?"["+o+"]":o}).join(n?".":""):t}function BZr(e){return vn.isArray(e)&&!e.some(PFe)}const RZr=vn.toFlatObject(vn,{},null,function(t){return/^is[A-Z]/.test(t)});function hbe(e,t,n){if(!vn.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=vn.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(k,A){return!vn.isUndefined(A[k])});const r=n.metaTokens,o=n.visitor||h,s=n.dots,a=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&vn.isSpecCompliantForm(t);if(!vn.isFunction(o))throw new TypeError("visitor must be a function");function u(f){if(f===null)return"";if(vn.isDate(f))return f.toISOString();if(vn.isBoolean(f))return f.toString();if(!d&&vn.isBlob(f))throw new No("Blob is not supported. Use a Buffer instead.");return vn.isArrayBuffer(f)||vn.isTypedArray(f)?d&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function h(f,k,A){let p=f;if(vn.isReactNative(t)&&vn.isReactNativeBlob(f))return t.append(F8e(A,k,s),u(f)),!1;if(f&&!A&&typeof f=="object"){if(vn.endsWith(k,"{}"))k=r?k:k.slice(0,-2),f=JSON.stringify(f);else if(vn.isArray(f)&&BZr(f)||(vn.isFileList(f)||vn.endsWith(k,"[]"))&&(p=vn.toArray(f)))return k=u6n(k),p.forEach(function(w,O){!(vn.isUndefined(w)||w===null)&&t.append(a===!0?F8e([k],O,s):a===null?k:k+"[]",u(w))}),!1}return PFe(f)?!0:(t.append(F8e(A,k,s),u(f)),!1)}const g=[],m=Object.assign(RZr,{defaultVisitor:h,convertValue:u,isVisitable:PFe});function v(f,k){if(!vn.isUndefined(f)){if(g.indexOf(f)!==-1)throw Error("Circular reference detected in "+k.join("."));g.push(f),vn.forEach(f,function(p,b){(!(vn.isUndefined(p)||p===null)&&o.call(t,p,vn.isString(b)?b.trim():b,k,m))===!0&&v(p,k?k.concat(b):[b])}),g.pop()}}if(!vn.isObject(e))throw new TypeError("data must be an object");return v(e),t}function Fpt(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function kJe(e,t){this._pairs=[],e&&hbe(e,this,t)}const h6n=kJe.prototype;h6n.append=function(t,n){this._pairs.push([t,n])};h6n.toString=function(t){const n=t?function(r){return t.call(this,r,Fpt)}:Fpt;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function IZr(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function f6n(e,t,n){if(!t)return e;const r=n&&n.encode||IZr,o=vn.isFunction(n)?{serialize:n}:n,s=o&&o.serialize;let a;if(s?a=s(t,o):a=vn.isURLSearchParams(t)?t.toString():new kJe(t,o).toString(r),a){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class Npt{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){vn.forEach(this.handlers,function(r){r!==null&&t(r)})}}const vJe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},MZr=typeof URLSearchParams<"u"?URLSearchParams:kJe,PZr=typeof FormData<"u"?FormData:null,FZr=typeof Blob<"u"?Blob:null,NZr={isBrowser:!0,classes:{URLSearchParams:MZr,FormData:PZr,Blob:FZr},protocols:["http","https","file","blob","url","data"]},AJe=typeof window<"u"&&typeof document<"u",FFe=typeof navigator=="object"&&navigator||void 0,UZr=AJe&&(!FFe||["ReactNative","NativeScript","NS"].indexOf(FFe.product)<0),jZr=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",WZr=AJe&&window.location.href||"http://localhost",VZr=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:AJe,hasStandardBrowserEnv:UZr,hasStandardBrowserWebWorkerEnv:jZr,navigator:FFe,origin:WZr},Symbol.toStringTag,{value:"Module"})),r1={...VZr,...NZr};function zZr(e,t){return hbe(e,new r1.classes.URLSearchParams,{visitor:function(n,r,o,s){return r1.isNode&&vn.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function HZr(e){return vn.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function $Zr(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r=n.length;return a=!a&&vn.isArray(o)?o.length:a,d?(vn.hasOwnProp(o,a)?o[a]=[o[a],r]:o[a]=r,!l):((!o[a]||!vn.isObject(o[a]))&&(o[a]=[]),t(n,r,o[a],s)&&vn.isArray(o[a])&&(o[a]=$Zr(o[a])),!l)}if(vn.isFormData(e)&&vn.isFunction(e.entries)){const n={};return vn.forEachEntry(e,(r,o)=>{t(HZr(r),o,n,0)}),n}return null}function XZr(e,t,n){if(vn.isString(e))try{return(t||JSON.parse)(e),vn.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const vie={transitional:vJe,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,s=vn.isObject(t);if(s&&vn.isHTMLForm(t)&&(t=new FormData(t)),vn.isFormData(t))return o?JSON.stringify(g6n(t)):t;if(vn.isArrayBuffer(t)||vn.isBuffer(t)||vn.isStream(t)||vn.isFile(t)||vn.isBlob(t)||vn.isReadableStream(t))return t;if(vn.isArrayBufferView(t))return t.buffer;if(vn.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return zZr(t,this.formSerializer).toString();if((l=vn.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return hbe(l?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||o?(n.setContentType("application/json",!1),XZr(t)):t}],transformResponse:[function(t){const n=this.transitional||vie.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(vn.isResponse(t)||vn.isReadableStream(t))return t;if(t&&vn.isString(t)&&(r&&!this.responseType||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?No.from(l,No.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:r1.classes.FormData,Blob:r1.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};vn.forEach(["delete","get","head","post","put","patch"],e=>{vie.headers[e]={}});const GZr=vn.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),YZr=e=>{const t={};let n,r,o;return e&&e.split(` +`,{label:"if",detail:"block",type:"keyword"}),Gs("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Gs("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Gs("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Gs("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],WLn=bpe(ULn,Kne(JQr.concat(eDr)));function XSe(e){let{node:t,pos:n}=e,r=e.lineIndent(n,-1),o=null;for(;;){let s=t.childBefore(n);if(s)if(s.name=="Comment")n=s.from;else if(s.name=="Body"||s.name=="MatchBody")e.baseIndentFor(s)+e.unit<=r&&(o=s),t=s;else if(s.name=="MatchClause")t=s;else if(s.type.is("Statement"))t=s;else break;else break}return o}function GSe(e,t){let n=e.baseIndentFor(t),r=e.lineAt(e.pos,-1),o=r.from+r.text.length;return/^\s*($|#)/.test(r.text)&&e.node.ton?null:n+e.unit}const Que=Vd.define({name:"python",parser:qQr.configure({props:[Vu.add({Body:e=>{var t;let n=/^\s*(#|$)/.test(e.textAfter)&&XSe(e)||e.node;return(t=GSe(e,n))!==null&&t!==void 0?t:e.continue()},MatchBody:e=>{var t;let n=XSe(e);return(t=GSe(e,n||e.node))!==null&&t!==void 0?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),"ForStatement WhileStatement":e=>/^\s*else:/.test(e.textAfter)?e.baseIndent:e.continue(),TryStatement:e=>/^\s*(except[ :]|finally:|else:)/.test(e.textAfter)?e.baseIndent:e.continue(),MatchStatement:e=>/^\s*case /.test(e.textAfter)?e.baseIndent+e.unit:e.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":Xv({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":Xv({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":Xv({closing:"]"}),MemberExpression:e=>e.baseIndent+e.unit,"String FormatString":()=>null,Script:e=>{var t;let n=XSe(e);return(t=n&&GSe(e,n))!==null&&t!==void 0?t:e.continue()}}),kh.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":bA,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)}),"String FormatString":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.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 tDr(){return new wd(Que,[Que.data.of({autocomplete:jLn}),Que.data.of({autocomplete:WLn})])}const nDr=Object.freeze(Object.defineProperty({__proto__:null,globalCompletion:WLn,localCompletionSource:jLn,python:tDr,pythonLanguage:Que},Symbol.toStringTag,{value:"Module"})),iDr=1,rDr=2,oDr=3,sDr=4,aDr=5,Kvt=98,lDr=101,cDr=102,Jvt=114,dDr=69,Qae=48,eAt=46,uDr=43,hDr=45,tAt=35,nAt=34,fDr=124,gDr=60,mDr=62;function eFe(e){return e>=48&&e<=57}function Dae(e){return eFe(e)||e==95}const kDr=new go((e,t)=>{if(eFe(e.next)){let n=!1;do e.advance();while(Dae(e.next));if(e.next==eAt){if(n=!0,e.advance(),eFe(e.next))do e.advance();while(Dae(e.next));else if(e.next==eAt||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==lDr||e.next==dDr){if(n=!0,e.advance(),(e.next==uDr||e.next==hDr)&&e.advance(),!Dae(e.next))return;do e.advance();while(Dae(e.next))}if(e.next==cDr){let r=e.peek(1);if(r==Qae+3&&e.peek(2)==Qae+2||r==Qae+6&&e.peek(2)==Qae+4)e.advance(3),n=!0;else return}n&&e.acceptToken(aDr)}else if(e.next==Kvt||e.next==Jvt){if(e.next==Kvt&&e.advance(),e.next!=Jvt)return;e.advance();let n=0;for(;e.next==tAt;)n++,e.advance();if(e.next!=nAt)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==nAt;if(e.advance(),r){for(let o=0;o{e.next==fDr&&e.acceptToken(iDr,1)}),ADr=new go(e=>{e.next==gDr?e.acceptToken(rDr,1):e.next==mDr&&e.acceptToken(oDr,1)}),pDr=Xd({"const macro_rules struct union enum type fn impl trait let static":ve.definitionKeyword,"mod use crate":ve.moduleKeyword,"pub unsafe async mut extern default move":ve.modifier,"for if else loop while match continue break return await":ve.controlKeyword,"as in ref":ve.operatorKeyword,"where _ crate super dyn":ve.keyword,self:ve.self,String:ve.string,Char:ve.character,RawString:ve.special(ve.string),Boolean:ve.bool,Identifier:ve.variableName,"CallExpression/Identifier":ve.function(ve.variableName),BoundIdentifier:ve.definition(ve.variableName),"FunctionItem/BoundIdentifier":ve.function(ve.definition(ve.variableName)),LoopLabel:ve.labelName,FieldIdentifier:ve.propertyName,"CallExpression/FieldExpression/FieldIdentifier":ve.function(ve.propertyName),Lifetime:ve.special(ve.variableName),ScopeIdentifier:ve.namespace,TypeIdentifier:ve.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":ve.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":ve.macroName,'"!"':ve.macroName,UpdateOp:ve.updateOperator,LineComment:ve.lineComment,BlockComment:ve.blockComment,Integer:ve.integer,Float:ve.float,ArithOp:ve.arithmeticOperator,LogicOp:ve.logicOperator,BitOp:ve.bitwiseOperator,CompareOp:ve.compareOperator,"=":ve.definitionOperator,".. ... => ->":ve.punctuation,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace,". DerefOp":ve.derefOperator,"&":ve.operator,", ; ::":ve.separator,"Attribute/...":ve.meta}),bDr={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},wDr=zd.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[pDr],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[vDr,ADr,kDr,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:e=>bDr[e]||-1}],tokenPrec:15596}),VLn=Vd.define({name:"rust",parser:wDr.configure({props:[Vu.add({IfExpression:Pu({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:e=>e.continue(),"Statement MatchArm":Pu()}),kh.add(e=>{if(/(Block|edTokens|List)$/.test(e.name))return bA;if(e.name=="BlockComment")return t=>({from:t.from+2,to:t.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function ODr(){return new wd(VLn)}const yDr=Object.freeze(Object.defineProperty({__proto__:null,rust:ODr,rustLanguage:VLn},Symbol.toStringTag,{value:"Module"})),zLn=168,tFe=169,CDr=170,_Dr=1,SDr=2,iAt=3,LDr=171,xDr=172,rAt=4,oAt=173,EDr=5,TDr=174,sAt=175,aAt=176,YSe=177,lAt=6,cAt=7,QDr=8,DDr=9,Qpe=0,_S=[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],BDr=58,RDr=40,yKe=95,IDr=91,tZ=45,MDr=46,CKe=35,PDr=37,HLn=123,FDr=125,nZ=47,iZ=42,B4=10,dAt=61,NDr=43,UDr=38;function NW(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function _Ke(e){return e>=48&&e<=57}function SKe(e){let t;return e.next==nZ&&((t=e.peek(1))==nZ||t==iZ)}const jDr=new go((e,t)=>{if(t.dialectEnabled(Qpe)){let n;if(e.next<0&&t.canShift(aAt))e.acceptToken(aAt);else if(((n=e.peek(-1))==B4||n<0)&&t.canShift(sAt)){let r=0;for(;e.next!=B4&&_S.includes(e.next);)e.advance(),r++;e.next==B4||SKe(e)?e.acceptToken(sAt,-r):r&&e.acceptToken(YSe)}else if(e.next==B4)e.acceptToken(TDr,1);else if(_S.includes(e.next)){for(e.advance();e.next!=B4&&_S.includes(e.next);)e.advance();e.acceptToken(YSe)}}else{let n=0;for(;_S.includes(e.next);)e.advance(),n++;n&&e.acceptToken(YSe)}},{contextual:!0}),WDr=new go((e,t)=>{if(SKe(e)){if(e.advance(),t.dialectEnabled(Qpe)){let n=-1;for(let r=1;;r++){let o=e.peek(-r-1);if(o==B4||o<0){n=r+1;break}else if(!_S.includes(o))break}if(n>-1){let r=e.next==iZ,o=0;for(e.advance();e.next>=0;)if(e.next==B4){e.advance();let s=0;for(;e.next!=B4&&_S.includes(e.next);)s++,e.advance();if(s=0;)e.advance();e.acceptToken(lAt)}else{for(e.advance();e.next>=0;){let{next:n}=e;if(e.advance(),n==iZ&&e.next==nZ){e.advance();break}}e.acceptToken(cAt)}}}),VDr=new go((e,t)=>{(e.next==NDr||e.next==dAt)&&t.dialectEnabled(Qpe)&&e.acceptToken(e.next==dAt?QDr:DDr,1)}),zDr=new go((e,t)=>{if(!t.dialectEnabled(Qpe))return;let n=t.context.depth;if(e.next<0&&n){e.acceptToken(tFe);return}if(e.peek(-1)==B4){let o=0;for(;e.next!=B4&&_S.includes(e.next);)e.advance(),o++;o!=n&&e.next!=B4&&!SKe(e)&&(o{for(let n=!1,r=0,o=0;;o++){let{next:s}=e;if(NW(s)||s==tZ||s==yKe||n&&_Ke(s))!n&&(s!=tZ||o>0)&&(n=!0),r===o&&s==tZ&&r++,e.advance();else if(s==CKe&&e.peek(1)==HLn){e.acceptToken(EDr,2);break}else{n&&e.acceptToken(r==2&&t.canShift(rAt)?rAt:t.canShift(oAt)?oAt:s==RDr?LDr:xDr);break}}}),$Dr=new go(e=>{if(e.next==FDr){for(e.advance();NW(e.next)||e.next==tZ||e.next==yKe||_Ke(e.next);)e.advance();e.next==CKe&&e.peek(1)==HLn?e.acceptToken(SDr,2):e.acceptToken(_Dr)}}),XDr=new go(e=>{if(_S.includes(e.peek(-1))){let{next:t}=e;(NW(t)||t==yKe||t==CKe||t==MDr||t==IDr||t==BDr&&NW(e.peek(1))||t==tZ||t==UDr||t==iZ)&&e.acceptToken(CDr)}}),GDr=new go(e=>{if(!_S.includes(e.peek(-1))){let{next:t}=e;if(t==PDr&&(e.advance(),e.acceptToken(iAt)),NW(t)){do e.advance();while(NW(e.next)||_Ke(e.next));e.acceptToken(iAt)}}});function $Ln(e,t){this.parent=e,this.depth=t,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)}const YDr=new $Ln(null,0),ZDr=new cI({start:YDr,shift(e,t,n,r){return t==zLn?new $Ln(e,n.pos-r.pos):t==tFe?e.parent:e},hash(e){return e.hash}}),qDr=Xd({"AtKeyword import charset namespace keyframes media supports include mixin use forward extend at-root":ve.definitionKeyword,"Keyword selector":ve.keyword,ControlKeyword:ve.controlKeyword,NamespaceName:ve.namespace,KeyframeName:ve.labelName,KeyframeRangeName:ve.operatorKeyword,TagName:ve.tagName,"ClassName Suffix":ve.className,PseudoClassName:ve.constant(ve.className),IdName:ve.labelName,"FeatureName PropertyName":ve.propertyName,AttributeName:ve.attributeName,NumberLiteral:ve.number,KeywordQuery:ve.keyword,UnaryQueryOp:ve.operatorKeyword,"CallTag ValueName":ve.atom,VariableName:ve.variableName,SassVariableName:ve.special(ve.variableName),Callee:ve.operatorKeyword,Unit:ve.unit,"UniversalSelector NestingSelector IndentedMixin IndentedInclude":ve.definitionOperator,MatchOp:ve.compareOperator,"ChildOp SiblingOp, LogicOp":ve.logicOperator,BinOp:ve.arithmeticOperator,"Important Global Default":ve.modifier,Comment:ve.blockComment,LineComment:ve.lineComment,ColorLiteral:ve.color,"ParenthesizedContent StringLiteral":ve.string,"InterpolationStart InterpolationContinue InterpolationEnd":ve.meta,': "..."':ve.punctuation,"PseudoOp #":ve.derefOperator,"; ,":ve.separator,"( )":ve.paren,"[ ]":ve.squareBracket,"{ }":ve.brace}),KDr={__proto__:null,not:62,using:197,as:207,with:211,without:211,hide:225,show:225,if:263,from:269,to:271,through:273,in:279},JDr={__proto__:null,url:82,"url-prefix":82,domain:82,regexp:82,lang:104,"nth-child":104,"nth-last-child":104,"nth-of-type":104,"nth-last-of-type":104,dir:104,"host-context":104},eBr={__proto__:null,"@import":162,"@include":194,"@mixin":200,"@function":200,"@use":204,"@extend":214,"@at-root":218,"@forward":222,"@media":228,"@charset":232,"@namespace":236,"@keyframes":242,"@supports":254,"@if":258,"@else":260,"@for":266,"@each":276,"@while":282,"@debug":286,"@warn":286,"@error":286,"@return":286},tBr={__proto__:null,layer:166,not:184,only:184,selector:190},nBr=zd.deserialize({version:14,states:"!$WQ`Q+tOOO#fQ+tOOP#mOpOOOOQ#U'#Ch'#ChO#rQ(pO'#CjOOQ#U'#Ci'#CiO%_Q)QO'#GXO%rQ.jO'#CnO&mQ#dO'#D]O'dQ(pO'#CgO'kQ)OO'#D_O'vQ#dO'#DfO'{Q#dO'#DiO(QQ#dO'#DqOOQ#U'#GX'#GXO(VQ(pO'#GXO(^Q(nO'#DuO%rQ.jO'#D}O%rQ.jO'#E`O%rQ.jO'#EcO%rQ.jO'#EeO(cQ)OO'#EjO)TQ)OO'#ElO%rQ.jO'#EnO)bQ)OO'#EqO%rQ.jO'#EsO)|Q)OO'#EuO*XQ)OO'#ExO*aQ)OO'#FOO*uQ)OO'#FbOOQ&Z'#GW'#GWOOQ&Y'#Fe'#FeO+PQ(nO'#FeQ`Q+tOOO%rQ.jO'#FQO+[Q(nO'#FUO+aQ)OO'#FZO%rQ.jO'#F^O%rQ.jO'#F`OOQ&Z'#Fm'#FmO+iQ+uO'#GaO+vQ(oO'#GaQOQ#SOOP,XO#SO'#GVPOOO)CAz)CAzOOQ#U'#Cm'#CmOOQ#U,59W,59WOOQ#i'#Cp'#CpO%rQ.jO'#CsO,xQ.wO'#CuO/dQ.^O,59YO%rQ.jO'#CzOOQ#S'#DP'#DPO/uQ(nO'#DUO/zQ)OO'#DZOOQ#i'#GZ'#GZO0SQ(nO'#DOOOQ#U'#D^'#D^OOQ#U,59w,59wO&mQ#dO,59wO0XQ)OO,59yO'vQ#dO,5:QO'{Q#dO,5:TO(cQ)OO,5:WO(cQ)OO,5:YO(cQ)OO,5:ZO(cQ)OO'#FlO0dQ(nO,59RO0oQ+tO'#DsO0vQ#TO'#DsOOQ&Z,59R,59ROOQ#U'#Da'#DaOOQ#S'#Dd'#DdOOQ#U,59y,59yO0{Q(nO,59yO1QQ(nO,59yOOQ#U'#Dh'#DhOOQ#U,5:Q,5:QOOQ#S'#Dj'#DjO1VQ9`O,5:TOOQ#U'#Dr'#DrOOQ#U,5:],5:]O2YQ.jO,5:aO2dQ.jO,5:iO3`Q.jO,5:zO3mQ.YO,5:}O4OQ.jO,5;POOQ#U'#Cj'#CjO4wQ(pO,5;UO5UQ(pO,5;WOOQ&Z,5;W,5;WO5]Q)OO,5;WO5bQ.jO,5;YOOQ#S'#ET'#ETO6TQ.jO'#E]O6kQ(nO'#GcO*aQ)OO'#EZO7PQ(nO'#E^OOQ#S'#Gd'#GdO0gQ(nO,5;]O4UQ.YO,5;_OOQ#d'#Ew'#EwO+PQ(nO,5;aO7UQ)OO,5;aOOQ#S'#Ez'#EzO7^Q(nO,5;dO7cQ(nO,5;jO7nQ(nO,5;|OOQ&Z'#Gf'#GfOOQ&Y,5VQ9`O1G/oO>pQ(pO1G/rO?dQ(pO1G/tO@WQ(pO1G/uO@zQ(pO,5aAN>aO!6QQ(pO,5_Ow!bi!a!bi!d!bi!h!bi$p!bi$t!bi!o!bi$v!bif!bie!bi~P>_Ow!ci!a!ci!d!ci!h!ci$p!ci$t!ci!o!ci$v!cif!cie!ci~P>_Ow$`a!h$`a$t$`a~P4]O!p%|O~O$o%TP~P`Oe%RP~P(cOe%QP~P%rOS!XOTVO_!XOc!XOf!QOh!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oe&VOj&TO~PAsOl#sOm#sOq#tOw&XO!l&ZO!m&ZO!n&ZO!o!ii$t!ii$v!ii$m!ii!p!ii$o!ii~P%rOf&[OT!tXc!tX!o!tX#O!tX#R!tX$s!tX$t!tX$v!tX~O$n$_OS%YXT%YXW%YXX%YX_%YXc%YXq%YXu%YX|%YX!S%YX!Z%YX!r%YX!s%YX#T%YX#W%YX#Y%YX#_%YX#a%YX#c%YX#f%YX#h%YX#j%YX#m%YX#s%YX#u%YX#y%YX$O%YX$R%YX$T%YX$m%YX$r%YX$|%YX%S%YX!p%YX!o%YX$t%YX$o%YX~O$r!PO$|&aO~O#]&cO~Ou&dO~O!o#`O#d$wO$t#`O$v#`O~O!o%ZP#d%ZP$t%ZP$v%ZP~P%rO$r!PO~OR#rO!|iXeiX~Oe!wXm!wXu!yX!|!yX~Ou&jO!|&kO~Oe&lOm%PO~Ow$fX!h$fX$t$fX!o$fX$v$fX~P*aOw%QO!h%Va$t%Va!o%Va$v%Va~Om%POw!}a!h!}a$t!}a!o!}a$v!}ae!}a~O!p&xO$r&sO%O&rO~O#v&zOS#tiT#tiW#tiX#ti_#tic#tiq#tiu#ti|#ti!S#ti!Z#ti!r#ti!s#ti#T#ti#W#ti#Y#ti#_#ti#a#ti#c#ti#f#ti#h#ti#j#ti#m#ti#s#ti#u#ti#y#ti$O#ti$R#ti$T#ti$m#ti$r#ti$|#ti%S#ti!p#ti!o#ti$t#ti$o#ti~Oc&|Ow$lX$P$lX~Ow%`O$P%[a~O!o#kO$t#kO$m%Ti!p%Ti$o%Ti~O!o$da$m$da$t$da!p$da$o$da~P`Oq#tOPkiQkilkimkiTkickifki!oki!uki#Oki#Rki$ski$tki$vki!hki#Uki#Zki#]ki#dkiekiSki_kihkijkiokiwkiyki|ki!lki!mki!nki$qki$rki%Oki$mkivki{ki#{ki#|ki!pki$oki~Ol#sOm#sOq#tOP$]aQ$]a~Oe'QO~Ol#sOm#sOq#tOS$YXT$YX_$YXc$YXe$YXf$YXh$YXj$YXo$YXv$YXw$YXy$YX|$YX$q$YX$r$YX%O$YX~Ov'UOw'SOe%PX~P%rOS$}XT$}X_$}Xc$}Xe$}Xf$}Xh$}Xj$}Xl$}Xm$}Xo$}Xq$}Xv$}Xw$}Xy$}X|$}X$q$}X$r$}X%O$}X~Ou'VO~P!%OOe'WO~O$o'YO~Ow'ZOe%RX~P4]Oe']O~Ow'^Oe%QX~P%rOe'`O~Ol#sOm#sOq#tO{'aO~Ou'bOe$}Xl$}Xm$}Xq$}X~Oe'eOj'cO~Ol#sOm#sOq#tOS$cXT$cX_$cXc$cXf$cXh$cXj$cXo$cXw$cXy$cX|$cX!l$cX!m$cX!n$cX!o$cX$q$cX$r$cX$t$cX$v$cX%O$cX$m$cX!p$cX$o$cX~Ow&XO!l'hO!m'hO!n'hO!o!iq$t!iq$v!iq$m!iq!p!iq$o!iq~P%rO$r'iO~O!o#`O#]'nO$t#`O$v#`O~Ou'oO~Ol#sOm#sOq#tOw'qO!o%ZX#d%ZX$t%ZX$v%ZX~O$s'uO~P5oOm%POw$fa!h$fa$t$fa!o$fa$v$fa~Oe'wO~P4]O%O&rOw#pX!h#pX$t#pX~Ow'yO!h!fO$t!gO~O!p'}O$r&sO%O&rO~O#v(POS#tqT#tqW#tqX#tq_#tqc#tqq#tqu#tq|#tq!S#tq!Z#tq!r#tq!s#tq#T#tq#W#tq#Y#tq#_#tq#a#tq#c#tq#f#tq#h#tq#j#tq#m#tq#s#tq#u#tq#y#tq$O#tq$R#tq$T#tq$m#tq$r#tq$|#tq%S#tq!p#tq!o#tq$t#tq$o#tq~O!h!fO#w(QO$t!gO~Ol#sOm#sOq#tO#{(SO#|(SO~Oc(VOe$ZXw$ZX~P=TOw'SOe%Pa~Ol#sOm#sOq#tO{(ZO~Oe$_Xw$_X~P(cOw'ZOe%Ra~Oe$^Xw$^X~P%rOw'^Oe%Qa~Ou'bO~Ol#sOm#sOq#tOS$caT$ca_$cac$caf$cah$caj$cao$caw$cay$ca|$ca!l$ca!m$ca!n$ca!o$ca$q$ca$r$ca$t$ca$v$ca%O$ca$m$ca!p$ca$o$ca~Oe(dOq(bO~Oe(gOm%PO~Ow$hX!o$hX#d$hX$t$hX$v$hX~P%rOw'qO!o%Za#d%Za$t%Za$v%Za~Oe(lO~P%rOe(mO!|(nO~Ov(vOe$Zaw$Za~P%rOu(wO~P!%OOw'SOe%Pi~Ow'SOe%Pi~P%rOe$_aw$_a~P4]Oe$^aw$^a~P%rOl#sOm#sOq#tOw(yOe$bij$bi~Oe(|Oq(bO~Oe)OOm%PO~Ol#sOm#sOq#tOw$ha!o$ha#d$ha$t$ha$v$ha~OS$}Oh$}Oj$}Oy!VO$q!UO$s'uO%O&rO~O#w(QO~Ow'SOe%Pq~Oe)WO~Oe$Zqw$Zq~P%rO%Oql!dl~",goto:"=Y%]PPPPPPPPPPP%^%h%h%{P%h&`&cP(UPP)ZP*YP)ZPP)ZP)ZP+f,j-lPPP-xPPPP)Z/S%h/W%hP/^P/d/j/p%hP/v%h/|P%hP%h%hP%h0S0VP1k1}2XPPPPP%^PP2_P2b'w'w2h'w'wP'wP'w'wP%^PP%^P%^PP2qP%^P%^P%^PP%^P%^P%^P2w%^P2z2}3Q3X%^P%^PPP%^PPPP%^PP%^P%^P%^P3^3d3j4Y4h4n4t4z5Q5W5d5j5p5z6Q6W6b6h6n6t6zPPPPPPPPPPPP7Q7T7aP8WP:_:b:eP:h:q:w;T;p;y=S=VanOPqx!f#l$_%fs^OPefqx!a!b!c!d!f#l$_$`%T%f'ZsTOPefqx!a!b!c!d!f#l$_$`%T%f'ZR!OUb^ef!a!b!c!d$`%T'Z`_OPqx!f#l$_%f!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)Ug#Uhlm!u#Q#S$i%P%Q&d'o!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ&b$pR&i$x!y!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)U!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UU$}#Q&k(nU&u%Y&w'yR'x&t!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UV$}#Q&k(n#P!YVabcdgiruv!Q!T!t#Q#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j&k'S'V'^'b'q't(Q(S(U(Y(^(n(w)UQ$P!YQ&_$lQ&`$oR(e'n!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ#YjU$}#Q&k(nR%X#ZT#{!W#|Q![WR$Q!]Q!kYR$R!^Q$R!mR%y$TQ!lYR$S!^Q$R!lR%y$SQ!oZR$U!_Q!q[R$V!`R!s]Q!hXQ!|fQ$]!eQ$f!tQ$k!vQ$m!wQ$r!{Q%U#VQ%[#^Q%]#_Q%^#cQ%c#gQ'l&_Q'{&vQ(R&zQ(T'OQ(q'zQ(s(PQ)P(gQ)S(tQ)T(uR)V)OSpOqUyP!f$_Q#jxQ%g#lR'P%fa`OPqx!f#l$_%fQ$f!tR(a'bR$i!uQ'j&[R(z(bQ${#QQ'v&kR)R(nQ&b$pR's&iR#ZjR#]kR%Z#]S&v%Y&wR(o'yV&t%Y&w'yQ#o{R%i#oQqOR#bqQ%v$OQ&Q$a^'R%v&Q't(U(Y(^)UQ't&jQ(U'SQ(Y'VQ(^'^R)U(wQ'T%vU(W'T(X(xQ(X'UR(x(YQ#|!WR%s#|Q#v!SR%o#vQ'_&QR(_'_Q'[&OR(]'[Q!eXR$[!eUxP!f$_S#ix%fR%f#lQ&U$dR'd&UQ&Y$eR'g&YQ#myQ%e#jT%h#m%eQ(c'jR({(cQ%R#RR&o%RQ$u#OS&e$u(jR(j'sQ'r&gR(i'rQ&w%YR'|&wQ'z&vR(p'zQ&y%^R(O&yQ%a#eR&}%aR|QSoOq]wPx!f#l$_%f`XOPqx!f#l$_%fQ!zeQ!{fQ$W!aQ$X!bQ$Y!cQ$Z!dQ&O$`Q&p%TR(['ZQ!SVQ!uaQ!vbQ!wcQ!xdQ#OgQ#WiQ#crQ#guQ#hvS#q!Q$dQ#x!TQ$e!tQ%l#sQ%m#tQ%n#ul%u$O$a%v&Q&j'S'V'^'t(U(Y(^(w)UQ&S$cS&W$e&YQ&g$wQ&{%_Q'O%bQ'X%{Q'f&XQ(`'bQ(h'qQ(t(QR(u(SR%x$OR&R$aR&P$`QzPQ$^!fR%}$_X#ly#j#m%eQ#VhQ#_mQ$h!uR&^$iW#Rhm!u$iQ#^lQ$|#QQ%S#SQ&m%PQ&n%QQ'p&dR(f'oQ%O#QQ'v&kR)R(nQ#apQ$k!vQ$n!xQ$q!zQ$v#OQ%V#WQ%W#YQ%]#_Q%d#hQ&]$hQ&f$uQ&q%XQ'k&^Q'l&_S'm&`&bQ(k'sQ(}(eR)Q(jR&h$wR#ft",nodeNames:"⚠ InterpolationEnd InterpolationContinue Unit VariableName InterpolationStart LineComment Comment IndentedMixin IndentedInclude StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector SuffixedSelector Suffix Interpolation SassVariableName ValueName ) ( ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp LogicOp UnaryExpression LogicOp NamespacedValue . CallExpression Callee ArgList : ... , CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName ClassSelector ClassName PseudoClassSelector :: PseudoClassName PseudoClassName ArgList PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp PlaceholderSelector ClassName Block { Declaration PropertyName Map Important Global Default ; } ImportStatement AtKeyword import Layer layer LayerName KeywordQuery FeatureQuery FeatureName BinaryQuery ComparisonQuery CompareOp UnaryQuery LogicOp ParenthesizedQuery SelectorQuery selector IncludeStatement include Keyword MixinStatement mixin UseStatement use Keyword Star Keyword ExtendStatement extend RootStatement at-root ForwardStatement forward Keyword MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports IfStatement ControlKeyword ControlKeyword Keyword ForStatement ControlKeyword Keyword Keyword Keyword EachStatement ControlKeyword Keyword WhileStatement ControlKeyword OutputStatement ControlKeyword AtRule Styles",maxTerm:196,context:ZDr,nodeProps:[["openedBy",1,"InterpolationStart",5,"InterpolationEnd",21,"(",43,"[",78,"{"],["isolate",-3,6,7,26,""],["closedBy",22,")",44,"]",70,"}"]],propSources:[qDr],skippedNodes:[0,6,7,146],repeatNodeCount:21,tokenData:"!$Q~RyOq#rqr$jrs0jst2^tu8{uv;hvw;{wx<^xy={yz>^z{>c{|>||}Co}!ODQ!O!PDo!P!QFY!Q![Fk![!]Gf!]!^Hb!^!_Hs!_!`Is!`!aJ^!a!b#r!b!cKa!c!}#r!}#OMn#O#P#r#P#QNP#Q#RNb#R#T#r#T#UNw#U#c#r#c#d!!Y#d#o#r#o#p!!o#p#qNb#q#r!#Q#r#s!#c#s;'S#r;'S;=`!#z<%lO#rW#uSOy$Rz;'S$R;'S;=`$d<%lO$RW$WSzWOy$Rz;'S$R;'S;=`$d<%lO$RW$gP;=`<%l$RY$m[Oy$Rz!_$R!_!`%c!`#W$R#W#X%v#X#Z$R#Z#[)Z#[#]$R#]#^,V#^;'S$R;'S;=`$d<%lO$RY%jSzWlQOy$Rz;'S$R;'S;=`$d<%lO$RY%{UzWOy$Rz#X$R#X#Y&_#Y;'S$R;'S;=`$d<%lO$RY&dUzWOy$Rz#Y$R#Y#Z&v#Z;'S$R;'S;=`$d<%lO$RY&{UzWOy$Rz#T$R#T#U'_#U;'S$R;'S;=`$d<%lO$RY'dUzWOy$Rz#i$R#i#j'v#j;'S$R;'S;=`$d<%lO$RY'{UzWOy$Rz#`$R#`#a(_#a;'S$R;'S;=`$d<%lO$RY(dUzWOy$Rz#h$R#h#i(v#i;'S$R;'S;=`$d<%lO$RY(}S!nQzWOy$Rz;'S$R;'S;=`$d<%lO$RY)`UzWOy$Rz#`$R#`#a)r#a;'S$R;'S;=`$d<%lO$RY)wUzWOy$Rz#c$R#c#d*Z#d;'S$R;'S;=`$d<%lO$RY*`UzWOy$Rz#U$R#U#V*r#V;'S$R;'S;=`$d<%lO$RY*wUzWOy$Rz#T$R#T#U+Z#U;'S$R;'S;=`$d<%lO$RY+`UzWOy$Rz#`$R#`#a+r#a;'S$R;'S;=`$d<%lO$RY+yS!mQzWOy$Rz;'S$R;'S;=`$d<%lO$RY,[UzWOy$Rz#a$R#a#b,n#b;'S$R;'S;=`$d<%lO$RY,sUzWOy$Rz#d$R#d#e-V#e;'S$R;'S;=`$d<%lO$RY-[UzWOy$Rz#c$R#c#d-n#d;'S$R;'S;=`$d<%lO$RY-sUzWOy$Rz#f$R#f#g.V#g;'S$R;'S;=`$d<%lO$RY.[UzWOy$Rz#h$R#h#i.n#i;'S$R;'S;=`$d<%lO$RY.sUzWOy$Rz#T$R#T#U/V#U;'S$R;'S;=`$d<%lO$RY/[UzWOy$Rz#b$R#b#c/n#c;'S$R;'S;=`$d<%lO$RY/sUzWOy$Rz#h$R#h#i0V#i;'S$R;'S;=`$d<%lO$RY0^S!lQzWOy$Rz;'S$R;'S;=`$d<%lO$R~0mWOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W<%lO0j~1[Oj~~1_RO;'S0j;'S;=`1h;=`O0j~1kXOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W;=`<%l0j<%lO0j~2ZP;=`<%l0jZ2cY!ZPOy$Rz!Q$R!Q![3R![!c$R!c!i3R!i#T$R#T#Z3R#Z;'S$R;'S;=`$d<%lO$RY3WYzWOy$Rz!Q$R!Q![3v![!c$R!c!i3v!i#T$R#T#Z3v#Z;'S$R;'S;=`$d<%lO$RY3{YzWOy$Rz!Q$R!Q![4k![!c$R!c!i4k!i#T$R#T#Z4k#Z;'S$R;'S;=`$d<%lO$RY4rYhQzWOy$Rz!Q$R!Q![5b![!c$R!c!i5b!i#T$R#T#Z5b#Z;'S$R;'S;=`$d<%lO$RY5iYhQzWOy$Rz!Q$R!Q![6X![!c$R!c!i6X!i#T$R#T#Z6X#Z;'S$R;'S;=`$d<%lO$RY6^YzWOy$Rz!Q$R!Q![6|![!c$R!c!i6|!i#T$R#T#Z6|#Z;'S$R;'S;=`$d<%lO$RY7TYhQzWOy$Rz!Q$R!Q![7s![!c$R!c!i7s!i#T$R#T#Z7s#Z;'S$R;'S;=`$d<%lO$RY7xYzWOy$Rz!Q$R!Q![8h![!c$R!c!i8h!i#T$R#T#Z8h#Z;'S$R;'S;=`$d<%lO$RY8oShQzWOy$Rz;'S$R;'S;=`$d<%lO$R_9O`Oy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!_$R!_!`;T!`!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$RZ:X^zWcROy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$R[;[S!_SzWOy$Rz;'S$R;'S;=`$d<%lO$RZ;oS%SPlQOy$Rz;'S$R;'S;=`$d<%lO$RZQSfROy$Rz;'S$R;'S;=`$d<%lO$R~>cOe~_>jU$|PlQOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RZ?TWlQ!dPOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZ?rUzWOy$Rz!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RZ@]YzW%OROy$Rz!Q$R!Q![@U![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZAQYzWOy$Rz{$R{|Ap|}$R}!OAp!O!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZAuUzWOy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZB`UzW%OROy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZBy[zW%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZCtSwROy$Rz;'S$R;'S;=`$d<%lO$RZDVWlQOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZDtWqROy$Rz!O$R!O!PE^!P!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RYEcUzWOy$Rz!O$R!O!PEu!P;'S$R;'S;=`$d<%lO$RYE|SvQzWOy$Rz;'S$R;'S;=`$d<%lO$RYF_SlQOy$Rz;'S$R;'S;=`$d<%lO$RZFp[%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RkGkUucOy$Rz![$R![!]G}!];'S$R;'S;=`$d<%lO$RXHUS!SPzWOy$Rz;'S$R;'S;=`$d<%lO$RZHgS!oROy$Rz;'S$R;'S;=`$d<%lO$RjHzU!|`lQOy$Rz!_$R!_!`I^!`;'S$R;'S;=`$d<%lO$RjIgS!|`zWlQOy$Rz;'S$R;'S;=`$d<%lO$RnIzU!|`!_SOy$Rz!_$R!_!`%c!`;'S$R;'S;=`$d<%lO$RkJgV!aP!|`lQOy$Rz!_$R!_!`I^!`!aJ|!a;'S$R;'S;=`$d<%lO$RXKTS!aPzWOy$Rz;'S$R;'S;=`$d<%lO$RXKdYOy$Rz}$R}!OLS!O!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLXWzWOy$Rz!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLx[!rPzWOy$Rz}$R}!OLq!O!Q$R!Q![Lq![!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RZMsS|ROy$Rz;'S$R;'S;=`$d<%lO$R_NUS{VOy$Rz;'S$R;'S;=`$d<%lO$R[NeUOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RkNzUOy$Rz#b$R#b#c! ^#c;'S$R;'S;=`$d<%lO$Rk! cUzWOy$Rz#W$R#W#X! u#X;'S$R;'S;=`$d<%lO$Rk! |SmczWOy$Rz;'S$R;'S;=`$d<%lO$Rk!!]UOy$Rz#f$R#f#g! u#g;'S$R;'S;=`$d<%lO$RZ!!tS!hROy$Rz;'S$R;'S;=`$d<%lO$RZ!#VS!pROy$Rz;'S$R;'S;=`$d<%lO$R]!#hU!dPOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RW!#}P;=`<%l#r",tokenizers:[zDr,XDr,$Dr,GDr,HDr,jDr,WDr,VDr,0,1,2,3,4],topRules:{StyleSheet:[0,10],Styles:[1,145]},dialects:{indented:0},specialized:[{term:172,get:e=>KDr[e]||-1},{term:171,get:e=>JDr[e]||-1},{term:80,get:e=>eBr[e]||-1},{term:173,get:e=>tBr[e]||-1}],tokenPrec:3217}),qge=Vd.define({name:"sass",parser:nBr.configure({props:[kh.add({Block:bA,Comment(e,t){return{from:e.from+2,to:t.sliceDoc(e.to-2,e.to)=="*/"?e.to-2:e.to}}}),Vu.add({Declaration:Pu()})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"$-"}}),iBr=qge.configure({dialect:"indented",props:[Vu.add({"Block RuleSet":e=>e.baseIndent+e.unit}),kh.add({Block:e=>({from:e.from,to:e.to})})]}),XLn=Ope(e=>e.name=="VariableName"||e.name=="SassVariableName");function rBr(e){return new wd(e!=null&&e.indented?iBr:qge,qge.data.of({autocomplete:XLn}))}const uAt=Object.freeze(Object.defineProperty({__proto__:null,sass:rBr,sassCompletionSource:XLn,sassLanguage:qge},Symbol.toStringTag,{value:"Module"})),oBr={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},sBr=zd.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["isolate",-3,1,2,11,""],["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"0o~R^XY}YZ}]^}pq}rs!Stu#pxy'Uyz(e{|(j}!O(j!Q!R(s!R![*p!]!^.^#T#o.{~!SO_~~!VVOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j<%lO!S~!qOZ~~!tRO;'S!S;'S;=`!};=`O!S~#QWOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j;=`<%l!S<%lO!S~#mP;=`<%l!S~#siqr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~%giV~qr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~'ZPT~!]!^'^~'aTO!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~'sVOy'^yz(Yz!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~(_OQ~~(bP;=`<%l'^~(jOS~~(mQ!Q!R(s!R![*p~(xUY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){#l#m+[~)aRY~!Q![)j!g!h){#X#Y){~)oSY~!Q![)j!g!h){#R#S*j#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dQY~!Q![*_#R#S*X~*mP!Q![)j~*uTY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){~+XP!Q![*p~+_R!Q![+h!c!i+h#T#Z+h~+mVY~!O!P,S!Q![+h!c!i+h!r!s-P#R#S+[#T#Z+h#d#e-P~,XTY~!Q![,h!c!i,h!r!s-P#T#Z,h#d#e-P~,mUY~!Q![,h!c!i,h!r!s-P#R#S.Q#T#Z,h#d#e-P~-ST{|-c}!O-c!Q![-o!c!i-o#T#Z-o~-fR!Q![-o!c!i-o#T#Z-o~-tSY~!Q![-o!c!i-o#R#S-c#T#Z-o~.TR!Q![,h!c!i,h#T#Z,h~.aP!]!^.d~.iSP~OY.dZ;'S.d;'S;=`.u<%lO.d~.xP;=`<%l.d~/QiX~qr.{st.{tu.{uv.{vw.{wx.{z{.{{|.{}!O.{!O!P.{!P!Q.{!Q![.{![!].{!^!_.{!_!`.{!`!a.{!a!b.{!b!c.{!c!}.{#Q#R.{#R#S.{#S#T.{#T#o.{#p#q.{#r#s.{",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:e=>oBr[e]||-1}],tokenPrec:0}),GLn=Vd.define({name:"wast",parser:sBr.configure({props:[Vu.add({App:Xv({closing:")",align:!1})}),kh.add({App:bA,BlockComment(e){return{from:e.from+2,to:e.to-2}}}),Xd({Keyword:ve.keyword,Type:ve.typeName,Number:ve.number,String:ve.string,Identifier:ve.variableName,LineComment:ve.lineComment,BlockComment:ve.blockComment,"( )":ve.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function aBr(){return new wd(GLn)}const lBr=Object.freeze(Object.defineProperty({__proto__:null,wast:aBr,wastLanguage:GLn},Symbol.toStringTag,{value:"Module"})),nFe=1,cBr=2,dBr=3,uBr=4,hBr=5,fBr=36,gBr=37,mBr=38,kBr=11,vBr=13;function ABr(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function pBr(e){return e==9||e==10||e==13||e==32}let hAt=null,fAt=null,gAt=0;function iFe(e,t){let n=e.pos+t;if(fAt==e&&gAt==n)return hAt;for(;pBr(e.peek(t));)t++;let r="";for(;;){let o=e.peek(t);if(!ABr(o))break;r+=String.fromCharCode(o),t++}return fAt=e,gAt=n,hAt=r||null}function mAt(e,t){this.name=e,this.parent=t}const bBr=new cI({start:null,shift(e,t,n,r){return t==nFe?new mAt(iFe(r,1)||"",e):e},reduce(e,t){return t==kBr&&e?e.parent:e},reuse(e,t,n,r){let o=t.type.id;return o==nFe||o==vBr?new mAt(iFe(r,1)||"",e):e},strict:!1}),wBr=new go((e,t)=>{if(e.next==60){if(e.advance(),e.next==47){e.advance();let n=iFe(e,0);if(!n)return e.acceptToken(hBr);if(t.context&&n==t.context.name)return e.acceptToken(cBr);for(let r=t.context;r;r=r.parent)if(r.name==n)return e.acceptToken(dBr,-2);e.acceptToken(uBr)}else if(e.next!=33&&e.next!=63)return e.acceptToken(nFe)}},{contextual:!0});function LKe(e,t){return new go(n=>{let r=0,o=t.charCodeAt(0);e:for(;!(n.next<0);n.advance(),r++)if(n.next==o){for(let s=1;s"),yBr=LKe(gBr,"?>"),CBr=LKe(mBr,"]]>"),_Br=Xd({Text:ve.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":ve.angleBracket,TagName:ve.tagName,"MismatchedCloseTag/TagName":[ve.tagName,ve.invalid],AttributeName:ve.attributeName,AttributeValue:ve.attributeValue,Is:ve.definitionOperator,"EntityReference CharacterReference":ve.character,Comment:ve.blockComment,ProcessingInst:ve.processingInstruction,DoctypeDecl:ve.documentMeta,Cdata:ve.special(ve.string)}),SBr=zd.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<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:[wBr,OBr,yBr,CBr,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function Due(e,t){let n=t&&t.getChild("TagName");return n?e.sliceString(n.from,n.to):""}function ZSe(e,t){let n=t&&t.firstChild;return!n||n.name!="OpenTag"?"":Due(e,n)}function LBr(e,t,n){let r=t&&t.getChildren("Attribute").find(s=>s.from<=n&&s.to>=n),o=r&&r.getChild("AttributeName");return o?e.sliceString(o.from,o.to):""}function qSe(e){for(let t=e&&e.parent;t;t=t.parent)if(t.name=="Element")return t;return null}function xBr(e,t){var n;let r=tc(e).resolveInner(t,-1),o=null;for(let s=r;!o&&s.parent;s=s.parent)(s.name=="OpenTag"||s.name=="CloseTag"||s.name=="SelfClosingTag"||s.name=="MismatchedCloseTag")&&(o=s);if(o&&(o.to>t||o.lastChild.type.isError)){let s=o.parent;if(r.name=="TagName")return o.name=="CloseTag"||o.name=="MismatchedCloseTag"?{type:"closeTag",from:r.from,context:s}:{type:"openTag",from:r.from,context:qSe(s)};if(r.name=="AttributeName")return{type:"attrName",from:r.from,context:o};if(r.name=="AttributeValue")return{type:"attrValue",from:r.from,context:o};let a=r==o||r.name=="Attribute"?r.childBefore(t):r;return(a==null?void 0:a.name)=="StartTag"?{type:"openTag",from:t,context:qSe(s)}:(a==null?void 0:a.name)=="StartCloseTag"&&a.to<=t?{type:"closeTag",from:t,context:s}:(a==null?void 0:a.name)=="Is"?{type:"attrValue",from:t,context:o}:a?{type:"attrName",from:t,context:o}:null}else if(r.name=="StartCloseTag")return{type:"closeTag",from:t,context:r.parent};for(;r.parent&&r.to==t&&!(!((n=r.lastChild)===null||n===void 0)&&n.type.isError);)r=r.parent;return r.name=="Element"||r.name=="Text"||r.name=="Document"?{type:"tag",from:t,context:r.name=="Element"?r:qSe(r)}:null}let EBr=class{constructor(t,n,r){this.attrs=n,this.attrValues=r,this.children=[],this.name=t.name,this.completion=Object.assign(Object.assign({type:"type"},t.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=t.textContent?t.textContent.map(o=>({label:o,type:"text"})):[]}};const KSe=/^[:\-\.\w\u00b7-\uffff]*$/;function kAt(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function vAt(e){return typeof e=="string"?{label:`"${e}"`,type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:`"${e.label}"`})}function YLn(e,t){let n=[],r=[],o=Object.create(null);for(let d of t){let u=kAt(d);n.push(u),d.global&&r.push(u),d.values&&(o[d.name]=d.values.map(vAt))}let s=[],a=[],l=Object.create(null);for(let d of e){let u=r,h=o;d.attributes&&(u=u.concat(d.attributes.map(m=>typeof m=="string"?n.find(v=>v.label==m)||{label:m,type:"property"}:(m.values&&(h==o&&(h=Object.create(h)),h[m.name]=m.values.map(vAt)),kAt(m)))));let g=new EBr(d,u,h);l[g.name]=g,s.push(g),d.top&&a.push(g)}a.length||(a=s);for(let d=0;d{var u;let{doc:h}=d.state,g=xBr(d.state,d.pos);if(!g||g.type=="tag"&&!d.explicit)return null;let{type:m,from:v,context:f}=g;if(m=="openTag"){let k=a,A=ZSe(h,f);if(A){let p=l[A];k=(p==null?void 0:p.children)||s}return{from:v,options:k.map(p=>p.completion),validFor:KSe}}else if(m=="closeTag"){let k=ZSe(h,f);return k?{from:v,to:d.pos+(h.sliceString(d.pos,d.pos+1)==">"?1:0),options:[((u=l[k])===null||u===void 0?void 0:u.closeNameCompletion)||{label:k+">",type:"type"}],validFor:KSe}:null}else if(m=="attrName"){let k=l[Due(h,f)];return{from:v,options:(k==null?void 0:k.attrs)||r,validFor:KSe}}else if(m=="attrValue"){let k=LBr(h,f,v);if(!k)return null;let A=l[Due(h,f)],p=((A==null?void 0:A.attrValues)||o)[k];return!p||!p.length?null:{from:v,to:d.pos+(h.sliceString(d.pos,d.pos+1)=='"'?1:0),options:p,validFor:/^"[^"]*"?$/}}else if(m=="tag"){let k=ZSe(h,f),A=l[k],p=[],b=f&&f.lastChild;k&&(!b||b.name!="CloseTag"||Due(h,b)!=k)&&p.push(A?A.closeCompletion:{label:"",type:"type",boost:2});let w=p.concat(((A==null?void 0:A.children)||(f?s:a)).map(O=>O.openCompletion));if(f&&(A!=null&&A.text.length)){let O=f.firstChild;O.to>d.pos-20&&!/\S/.test(d.state.sliceDoc(O.to,d.pos))&&(w=w.concat(A.text))}return{from:v,options:w,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const Kge=Vd.define({name:"xml",parser:SBr.configure({props:[Vu.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),kh.add({Element(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:n.name=="CloseTag"?n.from:e.to}}}),xqe.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3C!--",close:"-->"}},indentOnInput:/^\s*<\/$/}});function TBr(e={}){let t=[Kge.data.of({autocomplete:YLn(e.elements||[],e.attributes||[])})];return e.autoCloseTags!==!1&&t.push(ZLn),new wd(Kge,t)}function AAt(e,t,n=e.length){if(!t)return"";let r=t.firstChild,o=r&&r.getChild("TagName");return o?e.sliceString(o.from,Math.min(o.to,n)):""}const ZLn=er.inputHandler.of((e,t,n,r,o)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!Kge.isActiveAt(e.state,t,-1))return!1;let s=o(),{state:a}=s,l=a.changeByRange(d=>{var u,h,g;let{head:m}=d,v=a.doc.sliceString(m-1,m)==r,f=tc(a).resolveInner(m,-1),k;if(v&&r==">"&&f.name=="EndTag"){let A=f.parent;if(((h=(u=A.parent)===null||u===void 0?void 0:u.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(k=AAt(a.doc,A.parent,m))){let p=m+(a.doc.sliceString(m,m+1)===">"?1:0),b=``;return{range:d,changes:{from:m,to:p,insert:b}}}}else if(v&&r=="/"&&f.name=="StartCloseTag"){let A=f.parent;if(f.from==m-2&&((g=A.lastChild)===null||g===void 0?void 0:g.name)!="CloseTag"&&(k=AAt(a.doc,A,m))){let p=m+(a.doc.sliceString(m,m+1)===">"?1:0),b=`${k}>`;return{range:Ln.cursor(m+b.length,-1),changes:{from:m,to:p,insert:b}}}}return{range:d}});return l.changes.empty?!1:(e.dispatch([s,a.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),QBr=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:ZLn,completeFromSchema:YLn,xml:TBr,xmlLanguage:Kge},Symbol.toStringTag,{value:"Module"})),SF=63,pAt=64,DBr=1,BBr=2,qLn=3,RBr=4,KLn=5,IBr=6,MBr=7,JLn=65,PBr=66,FBr=8,NBr=9,UBr=10,jBr=11,WBr=12,exn=13,VBr=19,zBr=20,HBr=29,$Br=33,XBr=34,GBr=47,YBr=0,xKe=1,rFe=2,QK=3,oFe=4;let vT=class{constructor(t,n,r){this.parent=t,this.depth=n,this.type=r,this.hash=(t?t.hash+t.hash<<8:0)+n+(n<<4)+r}};vT.top=new vT(null,-1,YBr);function rZ(e,t){for(let n=0,r=t-e.pos-1;;r--,n++){let o=e.peek(r);if(S8(o)||o==-1)return n}}function sFe(e){return e==32||e==9}function S8(e){return e==10||e==13}function txn(e){return sFe(e)||S8(e)}function eQ(e){return e<0||txn(e)}const ZBr=new cI({start:vT.top,reduce(e,t){return e.type==QK&&(t==zBr||t==XBr)?e.parent:e},shift(e,t,n,r){if(t==qLn)return new vT(e,rZ(r,r.pos),xKe);if(t==JLn||t==KLn)return new vT(e,rZ(r,r.pos),rFe);if(t==SF)return e.parent;if(t==VBr||t==$Br)return new vT(e,0,QK);if(t==exn&&e.type==oFe)return e.parent;if(t==GBr){let o=/[1-9]/.exec(r.read(r.pos,n.pos));if(o)return new vT(e,e.depth+ +o[0],oFe)}return e},hash(e){return e.hash}});function UW(e,t,n=0){return e.peek(n)==t&&e.peek(n+1)==t&&e.peek(n+2)==t&&eQ(e.peek(n+3))}const qBr=new go((e,t)=>{if(e.next==-1&&t.canShift(pAt))return e.acceptToken(pAt);let n=e.peek(-1);if((S8(n)||n<0)&&t.context.type!=QK){if(UW(e,45))if(t.canShift(SF))e.acceptToken(SF);else return e.acceptToken(DBr,3);if(UW(e,46))if(t.canShift(SF))e.acceptToken(SF);else return e.acceptToken(BBr,3);let r=0;for(;e.next==32;)r++,e.advance();(r{if(t.context.type==QK){e.next==63&&(e.advance(),eQ(e.next)&&e.acceptToken(MBr));return}if(e.next==45)e.advance(),eQ(e.next)&&e.acceptToken(t.context.type==xKe&&t.context.depth==rZ(e,e.pos-1)?RBr:qLn);else if(e.next==63)e.advance(),eQ(e.next)&&e.acceptToken(t.context.type==rFe&&t.context.depth==rZ(e,e.pos-1)?IBr:KLn);else{let n=e.pos;for(;;)if(sFe(e.next)){if(e.pos==n)return;e.advance()}else if(e.next==33)nxn(e);else if(e.next==38)aFe(e);else if(e.next==42){aFe(e);break}else if(e.next==39||e.next==34){if(EKe(e,!0))break;return}else if(e.next==91||e.next==123){if(!eRr(e))return;break}else{ixn(e,!0,!1,0);break}for(;sFe(e.next);)e.advance();if(e.next==58){if(e.pos==n&&t.canShift(HBr))return;let r=e.peek(1);eQ(r)&&e.acceptTokenTo(t.context.type==rFe&&t.context.depth==rZ(e,n)?PBr:JLn,n)}}},{contextual:!0});function JBr(e){return e>32&&e<127&&e!=34&&e!=37&&e!=44&&e!=60&&e!=62&&e!=92&&e!=94&&e!=96&&e!=123&&e!=124&&e!=125}function bAt(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function wAt(e,t){return e.next==37?(e.advance(),bAt(e.next)&&e.advance(),bAt(e.next)&&e.advance(),!0):JBr(e.next)||t&&e.next==44?(e.advance(),!0):!1}function nxn(e){if(e.advance(),e.next==60){for(e.advance();;)if(!wAt(e,!0)){e.next==62&&e.advance();break}}else for(;wAt(e,!1););}function aFe(e){for(e.advance();!eQ(e.next)&&Jge(e.next)!="f";)e.advance()}function EKe(e,t){let n=e.next,r=!1,o=e.pos;for(e.advance();;){let s=e.next;if(s<0)break;if(e.advance(),s==n)if(s==39)if(e.next==39)e.advance();else break;else break;else if(s==92&&n==34)e.next>=0&&e.advance();else if(S8(s)){if(t)return!1;r=!0}else if(t&&e.pos>=o+1024)return!1}return!r}function eRr(e){for(let t=[],n=e.pos+1024;;)if(e.next==91||e.next==123)t.push(e.next),e.advance();else if(e.next==39||e.next==34){if(!EKe(e,!0))return!1}else if(e.next==93||e.next==125){if(t[t.length-1]!=e.next-2)return!1;if(t.pop(),e.advance(),!t.length)return!0}else{if(e.next<0||e.pos>n||S8(e.next))return!1;e.advance()}}const tRr="iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif";function Jge(e){return e<33?"u":e>125?"s":tRr[e-33]}function JSe(e,t){let n=Jge(e);return n!="u"&&!(t&&n=="f")}function ixn(e,t,n,r){if(Jge(e.next)=="s"||(e.next==63||e.next==58||e.next==45)&&JSe(e.peek(1),n))e.advance();else return!1;let o=e.pos;for(;;){let s=e.next,a=0,l=r+1;for(;txn(s);){if(S8(s)){if(t)return!1;l=0}else l++;s=e.peek(++a)}if(!(s>=0&&(s==58?JSe(e.peek(a+1),n):s==35?e.peek(a-1)!=32:JSe(s,n)))||!n&&l<=r||l==0&&!n&&(UW(e,45,a)||UW(e,46,a)))break;if(t&&Jge(s)=="f")return!1;for(let u=a;u>=0;u--)e.advance();if(t&&e.pos>o+1024)return!1}return!0}const nRr=new go((e,t)=>{if(e.next==33)nxn(e),e.acceptToken(WBr);else if(e.next==38||e.next==42){let n=e.next==38?UBr:jBr;aFe(e),e.acceptToken(n)}else e.next==39||e.next==34?(EKe(e,!1),e.acceptToken(NBr)):ixn(e,!1,t.context.type==QK,t.context.depth)&&e.acceptToken(FBr)}),iRr=new go((e,t)=>{let n=t.context.type==oFe?t.context.depth:-1,r=e.pos;e:for(;;){let o=0,s=e.next;for(;s==32;)s=e.peek(++o);if(!o&&(UW(e,45,o)||UW(e,46,o))||!S8(s)&&(n<0&&(n=Math.max(t.context.depth+1,o)),oYAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:"⚠ DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document",maxTerm:74,context:ZBr,nodeProps:[["isolate",-3,8,9,14,""],["openedBy",18,"[",32,"{"],["closedBy",19,"]",33,"}"]],propSources:[rRr],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[qBr,KBr,nRr,iRr,0,1],topRules:{Stream:[0,15]},tokenPrec:0}),sRr=zd.deserialize({version:14,states:"!vOQOPOOO]OPO'#C_OhOPO'#C^OOOO'#Cc'#CcOpOPO'#CaQOOOOOO{OPOOOOOO'#Cb'#CbO!WOPO'#C`O!`OPO,58xOOOO-E6a-E6aOOOO-E6`-E6`OOOO'#C_'#C_OOOO1G.d1G.d",stateData:"!h~OXPOYROWTP~OWVXXRXYRX~OYVOXSP~OXROYROWTX~OXROYROWTP~OYVOXSX~OX[O~OXY~",goto:"vWPPX[beioRUOQQOR]XRXQTTOUQWQRZWSSOURYS",nodeNames:"⚠ Document Frontmatter DashLine FrontmatterContent Body",maxTerm:10,skippedNodes:[0],repeatNodeCount:2,tokenData:"$z~RXOYnYZ!^Z]n]^!^^}n}!O!i!O;'Sn;'S;=`!c<%lOn~qXOYnYZ!^Z]n]^!^^;'Sn;'S;=`!c<%l~n~On~~!^~!cOY~~!fP;=`<%ln~!lZOYnYZ!^Z]n]^!^^}n}!O#_!O;'Sn;'S;=`!c<%l~n~On~~!^~#bZOYnYZ!^Z]n]^!^^}n}!O$T!O;'Sn;'S;=`!c<%l~n~On~~!^~$WXOYnYZ$sZ]n]^$s^;'Sn;'S;=`!c<%l~n~On~~$s~$zOX~Y~",tokenizers:[0],topRules:{Document:[0,1]},tokenPrec:67}),TKe=Vd.define({name:"yaml",parser:oRr.configure({props:[Vu.add({Stream:e=>{for(let t=e.node.resolve(e.pos,-1);t&&t.to>=e.pos;t=t.parent){if(t.name=="BlockLiteralContent"&&t.frome.pos)return null}}return null},FlowMapping:Xv({closing:"}"}),FlowSequence:Xv({closing:"]"})}),kh.add({"FlowMapping FlowSequence":bA,"Item Pair BlockLiteral":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*[\]\}]$/}});function aRr(){return new wd(TKe)}const lRr=Vd.define({name:"yaml-frontmatter",parser:sRr.configure({props:[Xd({DashLine:ve.meta})]})});function cRr(e){let{language:t,support:n}=e.content instanceof wd?e.content:{language:e.content,support:[]};return new wd(lRr.configure({wrap:Ap(r=>r.name=="FrontmatterContent"?{parser:TKe.parser}:r.name=="Body"?{parser:t.parser}:null)}),n)}const dRr=Object.freeze(Object.defineProperty({__proto__:null,yaml:aRr,yamlFrontmatter:cRr,yamlLanguage:TKe},Symbol.toStringTag,{value:"Module"}));var uRr={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]},hRr=/[\.\/⌿⍀¨⍣]/,fRr=/⍬/,gRr=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,mRr=/←/,kRr=/[⍝#].*$/,vRr=function(e){var t;return t=!1,function(n){return t=n,n===e?t==="\\":!0}};const ARr={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(e,t){var n;return e.eatSpace()?null:(n=e.next(),n==='"'||n==="'"?(e.eatWhile(vRr(n)),e.next(),t.prev=!0,"string"):/[\[{\(]/.test(n)?(t.prev=!1,null):/[\]}\)]/.test(n)?(t.prev=!0,null):fRr.test(n)?(t.prev=!1,"atom"):/[¯\d]/.test(n)?(t.func?(t.func=!1,t.prev=!1):t.prev=!0,e.eatWhile(/[\w\.]/),"number"):hRr.test(n)||mRr.test(n)?"operator":gRr.test(n)?(t.func=!0,t.prev=!1,uRr[n]?"variableName.function.standard":"variableName.function"):kRr.test(n)?(e.skipToEnd(),"comment"):n==="∘"&&e.peek()==="."?(e.next(),"variableName.function"):(e.eatWhile(/[\w\$_]/),t.prev=!0,"keyword"))}},pRr=Object.freeze(Object.defineProperty({__proto__:null,apl:ARr},Symbol.toStringTag,{value:"Module"}));function e8e(e){var t=e.match(/^\s*\S/);return e.skipToEnd(),t?"error":null}const bRr={name:"asciiarmor",token:function(e,t){var n;if(t.state=="top")return e.sol()&&(n=e.match(/^-----BEGIN (.*)?-----\s*$/))?(t.state="headers",t.type=n[1],"tag"):e8e(e);if(t.state=="headers"){if(e.sol()&&e.match(/^\w+:/))return t.state="header","atom";var r=e8e(e);return r&&(t.state="body"),r}else{if(t.state=="header")return e.skipToEnd(),t.state="headers","string";if(t.state=="body")return e.sol()&&(n=e.match(/^-----END (.*)?-----\s*$/))?n[1]!=t.type?"error":(t.state="end","tag"):e.eatWhile(/[A-Za-z0-9+\/=]/)?null:(e.next(),"error");if(t.state=="end")return e8e(e)}},blankLine:function(e){e.state=="headers"&&(e.state="body")},startState:function(){return{state:"top",type:null}}},wRr=Object.freeze(Object.defineProperty({__proto__:null,asciiArmor:bRr},Symbol.toStringTag,{value:"Module"}));function ux(e){for(var t={},n=e.split(" "),r=0;r?$/.test(n)?(t.extenExten=!0,t.extenStart=!1,"strong"):(t.extenStart=!1,e.skipToEnd(),"error");if(t.extenExten)return t.extenExten=!1,t.extenPriority=!0,e.eatWhile(/[^,]/),t.extenInclude&&(e.skipToEnd(),t.extenPriority=!1,t.extenInclude=!1),t.extenSame&&(t.extenPriority=!1,t.extenSame=!1,t.extenApplication=!0),"tag";if(t.extenPriority)return t.extenPriority=!1,t.extenApplication=!0,e.next(),t.extenSame?null:(e.eatWhile(/[^,]/),"number");if(t.extenApplication){if(e.eatWhile(/,/),n=e.current(),n===",")return null;if(e.eatWhile(/\w/),n=e.current().toLowerCase(),t.extenApplication=!1,SRr.indexOf(n)!==-1)return"def"}else return LRr(e,t);return null},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}},ERr=Object.freeze(Object.defineProperty({__proto__:null,asterisk:xRr},Symbol.toStringTag,{value:"Module"}));var TRr="><+-.,[]".split("");const QRr={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,t){if(e.eatSpace())return null;e.sol()&&(t.commentLine=!1);var n=e.next().toString();if(TRr.indexOf(n)!==-1){if(t.commentLine===!0)return e.eol()&&(t.commentLine=!1),"comment";if(n==="]"||n==="[")return n==="["?t.left++:t.right++,"bracket";if(n==="+"||n==="-")return"keyword";if(n==="<"||n===">")return"atom";if(n==="."||n===",")return"def"}else return t.commentLine=!0,e.eol()&&(t.commentLine=!1),"comment";e.eol()&&(t.commentLine=!1)}},DRr=Object.freeze(Object.defineProperty({__proto__:null,brainfuck:QRr},Symbol.toStringTag,{value:"Module"}));var BRr="builtin",RRr="comment",OAt="string",yAt="atom",IRr="number",MRr="keyword",PRr="header",FRr="def",NRr="link";function QKe(e){for(var t={},n=e.split(" "),r=0;r >= "),h4={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,symbol:/[\w*+\-]/};function URr(e,t){return e==="0"&&t.eat(/x/i)?(t.eatWhile(h4.hex),!0):((e=="+"||e=="-")&&h4.digit.test(t.peek())&&(t.eat(h4.sign),e=t.next()),h4.digit.test(e)?(t.eat(e),t.eatWhile(h4.digit),t.peek()=="."&&(t.eat("."),t.eatWhile(h4.digit)),t.eat(h4.exponent)&&(t.eat(h4.sign),t.eatWhile(h4.digit)),!0):!1)}const jRr={name:"cobol",startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(e,t){if(t.indentStack==null&&e.sol()&&(t.indentation=6),e.eatSpace())return null;var n=null;switch(t.mode){case"string":for(var r=!1;(r=e.next())!=null;)if((r=='"'||r=="'")&&!e.match(/['"]/,!1)){t.mode=!1;break}n=OAt;break;default:var o=e.next(),s=e.column();if(s>=0&&s<=5)n=FRr;else if(s>=72&&s<=79)e.skipToEnd(),n=PRr;else if(o=="*"&&s==6)e.skipToEnd(),n=RRr;else if(o=='"'||o=="'")t.mode="string",n=OAt;else if(o=="'"&&!h4.digit_or_colon.test(e.peek()))n=yAt;else if(o==".")n=NRr;else if(URr(o,e))n=IRr;else{if(e.current().match(h4.symbol))for(;s<71&&e.eat(h4.symbol)!==void 0;)s++;_At&&_At.propertyIsEnumerable(e.current().toUpperCase())?n=MRr:SAt&&SAt.propertyIsEnumerable(e.current().toUpperCase())?n=BRr:CAt&&CAt.propertyIsEnumerable(e.current().toUpperCase())?n=yAt:n=null}}return n},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent}},WRr=Object.freeze(Object.defineProperty({__proto__:null,cobol:jRr},Symbol.toStringTag,{value:"Module"}));function DKe(e,t,n,r,o,s){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=o,this.prev=s}function Bae(e,t,n,r){var o=e.indented;return e.context&&e.context.type=="statement"&&n!="statement"&&(o=e.context.indented),e.context=new DKe(o,t,n,r,null,e.context)}function $$(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}function LAt(e,t,n){if(t.prevToken=="variable"||t.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||t.typeAtEndOfLine&&e.column()==e.indentation())return!0}function t8e(e){for(;;){if(!e||e.type=="top")return!0;if(e.type=="}"&&e.prev.info!="namespace")return!1;e=e.prev}}function O2(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,r=e.keywords||{},o=e.types||{},s=e.builtin||{},a=e.blockKeywords||{},l=e.defKeywords||{},d=e.atoms||{},u=e.hooks||{},h=e.multiLineStrings,g=e.indentStatements!==!1,m=e.indentSwitch!==!1,v=e.namespaceSeparator,f=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,k=e.numberStart||/[\d\.]/,A=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,p=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,b=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,w=e.isReservedIdentifier||!1,O,y;function C(E,T){var D=E.next();if(u[D]){var P=u[D](E,T);if(P!==!1)return P}if(D=='"'||D=="'")return T.tokenize=_(D),T.tokenize(E,T);if(k.test(D)){if(E.backUp(1),E.match(A))return"number";E.next()}if(f.test(D))return O=D,null;if(D=="/"){if(E.eat("*"))return T.tokenize=S,S(E,T);if(E.eat("/"))return E.skipToEnd(),"comment"}if(p.test(D)){for(;!E.match(/^\/[\/*]/,!1)&&E.eat(p););return"operator"}if(E.eatWhile(b),v)for(;E.match(v);)E.eatWhile(b);var Q=E.current();return M_(r,Q)?(M_(a,Q)&&(O="newstatement"),M_(l,Q)&&(y=!0),"keyword"):M_(o,Q)?"type":M_(s,Q)||w&&w(Q)?(M_(a,Q)&&(O="newstatement"),"builtin"):M_(d,Q)?"atom":"variable"}function _(E){return function(T,D){for(var P=!1,Q,M=!1;(Q=T.next())!=null;){if(Q==E&&!P){M=!0;break}P=!P&&Q=="\\"}return(M||!(P||h))&&(D.tokenize=null),"string"}}function S(E,T){for(var D=!1,P;P=E.next();){if(P=="/"&&D){T.tokenize=null;break}D=P=="*"}return"comment"}function L(E,T){e.typeFirstDefinitions&&E.eol()&&t8e(T.context)&&(T.typeAtEndOfLine=LAt(E,T,E.pos))}return{name:e.name,startState:function(E){return{tokenize:null,context:new DKe(-E,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(E,T){var D=T.context;if(E.sol()&&(D.align==null&&(D.align=!1),T.indented=E.indentation(),T.startOfLine=!0),E.eatSpace())return L(E,T),null;O=y=null;var P=(T.tokenize||C)(E,T);if(P=="comment"||P=="meta")return P;if(D.align==null&&(D.align=!0),O==";"||O==":"||O==","&&E.match(/^\s*(?:\/\/.*)?$/,!1))for(;T.context.type=="statement";)$$(T);else if(O=="{")Bae(T,E.column(),"}");else if(O=="[")Bae(T,E.column(),"]");else if(O=="(")Bae(T,E.column(),")");else if(O=="}"){for(;D.type=="statement";)D=$$(T);for(D.type=="}"&&(D=$$(T));D.type=="statement";)D=$$(T)}else O==D.type?$$(T):g&&((D.type=="}"||D.type=="top")&&O!=";"||D.type=="statement"&&O=="newstatement")&&Bae(T,E.column(),"statement",E.current());if(P=="variable"&&(T.prevToken=="def"||e.typeFirstDefinitions&&LAt(E,T,E.start)&&t8e(T.context)&&E.match(/^\s*\(/,!1))&&(P="def"),u.token){var Q=u.token(E,T,P);Q!==void 0&&(P=Q)}return P=="def"&&e.styleDefs===!1&&(P="variable"),T.startOfLine=!1,T.prevToken=y?"def":P||O,L(E,T),P},indent:function(E,T,D){if(E.tokenize!=C&&E.tokenize!=null||E.typeAtEndOfLine&&t8e(E.context))return null;var P=E.context,Q=T&&T.charAt(0),M=Q==P.type;if(P.type=="statement"&&Q=="}"&&(P=P.prev),e.dontIndentStatements)for(;P.type=="statement"&&e.dontIndentStatements.test(P.info);)P=P.prev;if(u.indent){var B=u.indent(E,P,T,D.unit);if(typeof B=="number")return B}var R=P.prev&&P.prev.info=="switch";if(e.allmanIndentation&&/[{(]/.test(Q)){for(;P.type!="top"&&P.type!="}";)P=P.prev;return P.indented}return P.type=="statement"?P.indented+(Q=="{"?0:t||D.unit):P.align&&(!n||P.type!=")")?P.column+(M?0:1):P.type==")"&&!M?P.indented+(t||D.unit):P.indented+(M?0:D.unit)+(!M&&R&&!/^(?:case|default)\b/.test(T)?D.unit:0)},languageData:{indentOnInput:m?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(r).concat(Object.keys(o)).concat(Object.keys(s)).concat(Object.keys(d)),...e.languageData}}}function Qr(e){for(var t={},n=e.split(" "),r=0;r!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return e.match('""')?(t.tokenize=cxn,t.tokenize(e,t)):!1},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(e,t){var n=t.context;return n.type=="}"&&n.align&&e.eat(">")?(t.context=new DKe(n.indented,n.column,n.type,n.info,null,n.prev),"operator"):!1},"/":function(e,t){return e.eat("*")?(t.tokenize=DK(1),t.tokenize(e,t)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function ZRr(e){return function(t,n){for(var r=!1,o,s=!1;!t.eol();){if(!e&&!r&&t.match('"')){s=!0;break}if(e&&t.match('"""')){s=!0;break}o=t.next(),!r&&o=="$"&&t.match("{")&&t.skipTo("}"),r=!r&&o=="\\"&&!e}return(s||!e)&&(n.tokenize=null),"string"}}const qRr=O2({name:"kotlin",keywords:Qr("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:Qr("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(ul?|l|f)?/i,blockKeywords:Qr("catch class do else finally for if where try while enum"),defKeywords:Qr("class val var object interface fun"),atoms:Qr("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return t.prevToken=="."?"variable":"operator"},'"':function(e,t){return t.tokenize=ZRr(e.match('""')),t.tokenize(e,t)},"/":function(e,t){return e.eat("*")?(t.tokenize=DK(1),t.tokenize(e,t)):!1},indent:function(e,t,n,r){var o=n&&n.charAt(0);if((e.prevToken=="}"||e.prevToken==")")&&n=="")return e.indented;if(e.prevToken=="operator"&&n!="}"&&e.context.type!="}"||e.prevToken=="variable"&&o=="."||(e.prevToken=="}"||e.prevToken==")")&&o==".")return r*2+t.indented;if(t.align&&t.type=="}")return t.indented+(e.context.type==(n||"").charAt(0)?0:r)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),KRr=O2({name:"shader",keywords:Qr("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:Qr("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:Qr("for while do if else struct"),builtin:Qr("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:Qr("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":nE}}),JRr=O2({name:"nesc",keywords:Qr(oie+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:sie,blockKeywords:Qr(aie),atoms:Qr("null true false"),hooks:{"#":nE}}),eIr=O2({name:"objectivec",keywords:Qr(oie+" "+oxn),types:axn,builtin:Qr(sxn),blockKeywords:Qr(aie+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:Qr(Dpe+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:Qr("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Rpe,hooks:{"#":nE,"*":Bpe}}),tIr=O2({name:"objectivecpp",keywords:Qr(oie+" "+oxn+" "+rxn),types:axn,builtin:Qr(sxn),blockKeywords:Qr(aie+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:Qr(Dpe+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:Qr("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Rpe,hooks:{"#":nE,"*":Bpe,u:o9,U:o9,L:o9,R:o9,0:Rh,1:Rh,2:Rh,3:Rh,4:Rh,5:Rh,6:Rh,7:Rh,8:Rh,9:Rh,token:function(e,t,n){if(n=="variable"&&e.peek()=="("&&(t.prevToken==";"||t.prevToken==null||t.prevToken=="}")&&lxn(e.current()))return"def"}},namespaceSeparator:"::"}),nIr=O2({name:"squirrel",keywords:Qr("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:sie,blockKeywords:Qr("case catch class else for foreach if switch try while"),defKeywords:Qr("function local class"),typeFirstDefinitions:!0,atoms:Qr("true false null"),hooks:{"#":nE}});var Bue=null;function dxn(e){return function(t,n){for(var r=!1,o,s=!1;!t.eol();){if(!r&&t.match('"')&&(e=="single"||t.match('""'))){s=!0;break}if(!r&&t.match("``")){Bue=dxn(e),s=!0;break}o=t.next(),r=e=="single"&&!r&&o=="\\"}return s&&(n.tokenize=null),"string"}}const iIr=O2({name:"ceylon",keywords:Qr("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:Qr("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:Qr("class dynamic function interface module object package value"),builtin:Qr("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:Qr("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=dxn(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!Bue||!e.match("`")?!1:(t.tokenize=Bue,Bue=null,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(e,t,n){if((n=="variable"||n=="type")&&t.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function rIr(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function uxn(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function oIr(e){return e.interpolationStack?e.interpolationStack.length:0}function n8e(e,t,n,r){var o=!1;if(t.eat(e))if(t.eat(e))o=!0;else return"string";function s(a,l){for(var d=!1;!a.eol();){if(!r&&!d&&a.peek()=="$")return rIr(l),l.tokenize=sIr,"string";var u=a.next();if(u==e&&!d&&(!o||a.match(e+e))){l.tokenize=null;break}d=!r&&!d&&u=="\\"}return"string"}return n.tokenize=s,s(t,n)}function sIr(e,t){return e.eat("$"),e.eat("{")?t.tokenize=null:t.tokenize=aIr,null}function aIr(e,t){return e.eatWhile(/[\w_]/),t.tokenize=uxn(t),"variable"}const lIr=O2({name:"dart",keywords:Qr("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:Qr("try catch finally do else for if switch while"),builtin:Qr("void bool num int double dynamic var String Null Never"),atoms:Qr("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(e){return e.eatWhile(/[\w\$_\.]/),"meta"},"'":function(e,t){return n8e("'",e,t,!1)},'"':function(e,t){return n8e('"',e,t,!1)},r:function(e,t){var n=e.peek();return n=="'"||n=='"'?n8e(e.next(),e,t,!0):!1},"}":function(e,t){return oIr(t)>0?(t.tokenize=uxn(t),null):!1},"/":function(e,t){return e.eat("*")?(t.tokenize=DK(1),t.tokenize(e,t)):!1},token:function(e,t,n){if(n=="variable"){var r=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(r.test(e.current()))return"type"}}}}),l7=Object.freeze(Object.defineProperty({__proto__:null,c:HRr,ceylon:iIr,clike:O2,cpp:$Rr,csharp:GRr,dart:lIr,java:XRr,kotlin:qRr,nesC:JRr,objectiveC:eIr,objectiveCpp:tIr,scala:YRr,shader:KRr,squirrel:nIr},Symbol.toStringTag,{value:"Module"}));var hxn=["false","nil","true"],fxn=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],gxn=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],cIr=["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"],dIr=Ipe(hxn),uIr=Ipe(fxn),hIr=Ipe(gxn),fIr=Ipe(cIr),gIr=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,mIr=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,kIr=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,vIr=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function BKe(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(mIr))return[null,"number"];if(e.match(kIr))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=AIr)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(vIr),r=n&&n[0];return r?r==="comment"&&t.lastToken==="("?(t.tokenize=pIr)(e,t):TG(r,dIr)||r.charAt(0)===":"?["symbol","atom"]:TG(r,uIr)||TG(r,hIr)?["symbol","keyword"]:t.lastToken==="("?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile(function(o){return!TG(o,gIr)}),[null,"error"])}function AIr(e,t){for(var n=!1,r;r=e.next();){if(r==='"'&&!n){t.tokenize=BKe;break}n=!n&&r==="\\"}return[null,"string"]}function pIr(e,t){for(var n=1,r;r=e.next();)if(r===")"&&n--,r==="("&&n++,n===0){e.backUp(1),t.tokenize=BKe;break}return["space","comment"]}function Ipe(e){for(var t={},n=0;n*\/]/.test(B)?w(null,"select-op"):B=="."&&Q.match(/^-?[_a-z][_a-z0-9-]*/i)?w("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(B)?w(null,B):Q.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(Q.current())&&(M.tokenize=C),w("variableName.function","variable")):/[\w\\\-]/.test(B)?(Q.eatWhile(/[\w\\\-]/),w("property","word")):w(null,null)}function y(Q){return function(M,B){for(var R=!1,I;(I=M.next())!=null;){if(I==Q&&!R){Q==")"&&M.backUp(1);break}R=!R&&I=="\\"}return(I==Q||!R&&Q!=")")&&(B.tokenize=null),w("string","string")}}function C(Q,M){return Q.next(),Q.match(/^\s*[\"\')]/,!1)?M.tokenize=null:M.tokenize=y(")"),w(null,"(")}function _(Q,M,B){this.type=Q,this.indent=M,this.prev=B}function S(Q,M,B,R){return Q.context=new _(B,M.indentation()+(R===!1?0:M.indentUnit),Q.context),B}function L(Q){return Q.context.prev&&(Q.context=Q.context.prev),Q.context.type}function E(Q,M,B){return P[B.context.type](Q,M,B)}function T(Q,M,B,R){for(var I=R||1;I>0;I--)B.context=B.context.prev;return E(Q,M,B)}function D(Q){var M=Q.current().toLowerCase();m.hasOwnProperty(M)?b="atom":g.hasOwnProperty(M)?b="keyword":b="variable"}var P={};return P.top=function(Q,M,B){if(Q=="{")return S(B,M,"block");if(Q=="}"&&B.context.prev)return L(B);if(k&&/@component/i.test(Q))return S(B,M,"atComponentBlock");if(/^@(-moz-)?document$/i.test(Q))return S(B,M,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(Q))return S(B,M,"atBlock");if(/^@(font-face|counter-style)/i.test(Q))return B.stateArg=Q,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(Q))return"keyframes";if(Q&&Q.charAt(0)=="@")return S(B,M,"at");if(Q=="hash")b="builtin";else if(Q=="word")b="tag";else{if(Q=="variable-definition")return"maybeprop";if(Q=="interpolation")return S(B,M,"interpolation");if(Q==":")return"pseudo";if(v&&Q=="(")return S(B,M,"parens")}return B.context.type},P.block=function(Q,M,B){if(Q=="word"){var R=M.current().toLowerCase();return l.hasOwnProperty(R)?(b="property","maybeprop"):d.hasOwnProperty(R)?(b=A?"string.special":"property","maybeprop"):v?(b=M.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(b="error","maybeprop")}else return Q=="meta"?"block":!v&&(Q=="hash"||Q=="qualifier")?(b="error","block"):P.top(Q,M,B)},P.maybeprop=function(Q,M,B){return Q==":"?S(B,M,"prop"):E(Q,M,B)},P.prop=function(Q,M,B){if(Q==";")return L(B);if(Q=="{"&&v)return S(B,M,"propBlock");if(Q=="}"||Q=="{")return T(Q,M,B);if(Q=="(")return S(B,M,"parens");if(Q=="hash"&&!/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(M.current()))b="error";else if(Q=="word")D(M);else if(Q=="interpolation")return S(B,M,"interpolation");return"prop"},P.propBlock=function(Q,M,B){return Q=="}"?L(B):Q=="word"?(b="property","maybeprop"):B.context.type},P.parens=function(Q,M,B){return Q=="{"||Q=="}"?T(Q,M,B):Q==")"?L(B):Q=="("?S(B,M,"parens"):Q=="interpolation"?S(B,M,"interpolation"):(Q=="word"&&D(M),"parens")},P.pseudo=function(Q,M,B){return Q=="meta"?"pseudo":Q=="word"?(b="variableName.constant",B.context.type):E(Q,M,B)},P.documentTypes=function(Q,M,B){return Q=="word"&&r.hasOwnProperty(M.current())?(b="tag",B.context.type):P.atBlock(Q,M,B)},P.atBlock=function(Q,M,B){if(Q=="(")return S(B,M,"atBlock_parens");if(Q=="}"||Q==";")return T(Q,M,B);if(Q=="{")return L(B)&&S(B,M,v?"block":"top");if(Q=="interpolation")return S(B,M,"interpolation");if(Q=="word"){var R=M.current().toLowerCase();R=="only"||R=="not"||R=="and"||R=="or"?b="keyword":o.hasOwnProperty(R)?b="attribute":s.hasOwnProperty(R)?b="property":a.hasOwnProperty(R)?b="keyword":l.hasOwnProperty(R)?b="property":d.hasOwnProperty(R)?b=A?"string.special":"property":m.hasOwnProperty(R)?b="atom":g.hasOwnProperty(R)?b="keyword":b="error"}return B.context.type},P.atComponentBlock=function(Q,M,B){return Q=="}"?T(Q,M,B):Q=="{"?L(B)&&S(B,M,v?"block":"top",!1):(Q=="word"&&(b="error"),B.context.type)},P.atBlock_parens=function(Q,M,B){return Q==")"?L(B):Q=="{"||Q=="}"?T(Q,M,B,2):P.atBlock(Q,M,B)},P.restricted_atBlock_before=function(Q,M,B){return Q=="{"?S(B,M,"restricted_atBlock"):Q=="word"&&B.stateArg=="@counter-style"?(b="variable","restricted_atBlock_before"):E(Q,M,B)},P.restricted_atBlock=function(Q,M,B){return Q=="}"?(B.stateArg=null,L(B)):Q=="word"?(B.stateArg=="@font-face"&&!u.hasOwnProperty(M.current().toLowerCase())||B.stateArg=="@counter-style"&&!h.hasOwnProperty(M.current().toLowerCase())?b="error":b="property","maybeprop"):"restricted_atBlock"},P.keyframes=function(Q,M,B){return Q=="word"?(b="variable","keyframes"):Q=="{"?S(B,M,"top"):E(Q,M,B)},P.at=function(Q,M,B){return Q==";"?L(B):Q=="{"||Q=="}"?T(Q,M,B):(Q=="word"?b="tag":Q=="hash"&&(b="builtin"),"at")},P.interpolation=function(Q,M,B){return Q=="}"?L(B):Q=="{"||Q==";"?T(Q,M,B):(Q=="word"?b="variable":Q!="variable"&&Q!="("&&Q!=")"&&(b="error"),"interpolation")},{name:e.name,startState:function(){return{tokenize:null,state:t?"block":"top",stateArg:null,context:new _(t?"block":"top",0,null)}},token:function(Q,M){if(!M.tokenize&&Q.eatSpace())return null;var B=(M.tokenize||O)(Q,M);return B&&typeof B=="object"&&(p=B[1],B=B[0]),b=B,p!="comment"&&(M.state=P[M.state](p,Q,M)),b},indent:function(Q,M,B){var R=Q.context,I=M&&M.charAt(0),F=R.indent;return R.type=="prop"&&(I=="}"||I==")")&&(R=R.prev),R.prev&&(I=="}"&&(R.type=="block"||R.type=="top"||R.type=="interpolation"||R.type=="restricted_atBlock")?(R=R.prev,F=R.indent):(I==")"&&(R.type=="parens"||R.type=="atBlock_parens")||I=="{"&&(R.type=="at"||R.type=="atBlock"))&&(F=Math.max(0,R.indent-B.unit))),F},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:f,block:{open:"/*",close:"*/"}},autocomplete:yxn}}}function Zy(e){for(var t={},n=0;n|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,RIr=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,QAt=/^[_A-Za-z$][_A-Za-z$0-9]*/,IIr=/^@[_A-Za-z$][_A-Za-z$0-9]*/,MIr=Vpe(["and","or","not","is","isnt","in","instanceof","typeof"]),eme=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],PIr=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],FIr=Vpe(eme.concat(PIr));eme=Vpe(eme);var NIr=/^('{3}|\"{3}|['\"])/,UIr=/^(\/{3}|\/)/,jIr=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],WIr=Vpe(jIr);function BK(e,t){if(e.sol()){t.scope.align===null&&(t.scope.align=!1);var n=t.scope.offset;if(e.eatSpace()){var r=e.indentation();return r>n&&t.scope.type=="coffee"?"indent":r0&&lFe(e,t)}if(e.eatSpace())return null;var o=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return t.tokenize=VIr,t.tokenize(e,t);if(o==="#")return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var s=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(s=!0),e.match(/^-?\d+\.\d*/)&&(s=!0),e.match(/^-?\.\d+/)&&(s=!0),s)return e.peek()=="."&&e.backUp(1),"number";var a=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(a=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(a=!0),e.match(/^-?0(?![\dx])/i)&&(a=!0),a)return"number"}if(e.match(NIr))return t.tokenize=DAt(e.current(),!1,"string"),t.tokenize(e,t);if(e.match(UIr)){if(e.current()!="/"||e.match(/^.*\//,!1))return t.tokenize=DAt(e.current(),!0,"string.special"),t.tokenize(e,t);e.backUp(1)}return e.match(BIr)||e.match(MIr)?"operator":e.match(RIr)?"punctuation":e.match(WIr)?"atom":e.match(IIr)||t.prop&&e.match(QAt)?"property":e.match(FIr)?"keyword":e.match(QAt)?"variable":(e.next(),Cxn)}function DAt(e,t,n){return function(r,o){for(;!r.eol();)if(r.eatWhile(/[^'"\/\\]/),r.eat("\\")){if(r.next(),t&&r.eol())return n}else{if(r.match(e))return o.tokenize=BK,n;r.eat(/['"\/]/)}return t&&(o.tokenize=BK),n}}function VIr(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=BK;break}e.eatWhile("#")}return"comment"}function r8e(e,t,n="coffee"){for(var r=0,o=!1,s=null,a=t.scope;a;a=a.prev)if(a.type==="coffee"||a.type=="}"){r=a.offset+e.indentUnit;break}n!=="coffee"?(o=null,s=e.column()+e.current().length):t.scope.align&&(t.scope.align=!1),t.scope={offset:r,type:n,prev:t.scope,align:o,alignOffset:s}}function lFe(e,t){if(t.scope.prev)if(t.scope.type==="coffee"){for(var n=e.indentation(),r=!1,o=t.scope;o;o=o.prev)if(n===o.offset){r=!0;break}if(!r)return!0;for(;t.scope.prev&&t.scope.offset!==n;)t.scope=t.scope.prev;return!1}else return t.scope=t.scope.prev,!1}function zIr(e,t){var n=t.tokenize(e,t),r=e.current();r==="return"&&(t.dedent=!0),((r==="->"||r==="=>")&&e.eol()||n==="indent")&&r8e(e,t);var o="[({".indexOf(r);if(o!==-1&&r8e(e,t,"])}".slice(o,o+1)),eme.exec(r)&&r8e(e,t),r=="then"&&lFe(e,t),n==="dedent"&&lFe(e,t))return Cxn;if(o="])}".indexOf(r),o!==-1){for(;t.scope.type=="coffee"&&t.scope.prev;)t.scope=t.scope.prev;t.scope.type==r&&(t.scope=t.scope.prev)}return t.dedent&&e.eol()&&(t.scope.type=="coffee"&&t.scope.prev&&(t.scope=t.scope.prev),t.dedent=!1),n=="indent"||n=="dedent"?null:n}const HIr={name:"coffeescript",startState:function(){return{tokenize:BK,scope:{offset:0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(e,t){var n=t.scope.align===null&&t.scope;n&&e.sol()&&(n.align=!1);var r=zIr(e,t);return r&&r!="comment"&&(n&&(n.align=!0),t.prop=r=="punctuation"&&e.current()=="."),r},indent:function(e,t){if(e.tokenize!=BK)return 0;var n=e.scope,r=t&&"])}".indexOf(t.charAt(0))>-1;if(r)for(;n.type=="coffee"&&n.prev;)n=n.prev;var o=r&&n.type===t.charAt(0);return n.align?n.alignOffset-(o?1:0):(o?n.prev:n).offset},languageData:{commentTokens:{line:"#"}}},$Ir=Object.freeze(Object.defineProperty({__proto__:null,coffeeScript:HIr},Symbol.toStringTag,{value:"Module"}));var XIr=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/,_xn=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/,GIr=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/,YIr=/[^\s'`,@()\[\]";]/,_v;function o8e(e){for(var t;t=e.next();)if(t=="\\")e.next();else if(!YIr.test(t)){e.backUp(1);break}return e.current()}function FKe(e,t){if(e.eatSpace())return _v="ws",null;if(e.match(GIr))return"number";var n=e.next();if(n=="\\"&&(n=e.next()),n=='"')return(t.tokenize=ZIr)(e,t);if(n=="(")return _v="open","bracket";if(n==")")return _v="close","bracket";if(n==";")return e.skipToEnd(),_v="ws","comment";if(/['`,@]/.test(n))return null;if(n=="|")return e.skipTo("|")?(e.next(),"variableName"):(e.skipToEnd(),"error");if(n=="#"){var n=e.next();return n=="("?(_v="open","bracket"):/[+\-=\.']/.test(n)||/\d/.test(n)&&e.match(/^\d*#/)?null:n=="|"?(t.tokenize=qIr)(e,t):n==":"?(o8e(e),"meta"):n=="\\"?(e.next(),o8e(e),"string.special"):"error"}else{var r=o8e(e);return r=="."?null:(_v="symbol",r=="nil"||r=="t"||r.charAt(0)==":"?"atom":t.lastType=="open"&&(XIr.test(r)||_xn.test(r))?"keyword":r.charAt(0)=="&"?"variableName.special":"variableName")}}function ZIr(e,t){for(var n=!1,r;r=e.next();){if(r=='"'&&!n){t.tokenize=FKe;break}n=!n&&r=="\\"}return"string"}function qIr(e,t){for(var n,r;n=e.next();){if(n=="#"&&r=="|"){t.tokenize=FKe;break}r=n}return _v="ws","comment"}const KIr={name:"commonlisp",startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:FKe}},token:function(e,t){e.sol()&&typeof t.ctx.indentTo!="number"&&(t.ctx.indentTo=t.ctx.start+1),_v=null;var n=t.tokenize(e,t);return _v!="ws"&&(t.ctx.indentTo==null?_v=="symbol"&&_xn.test(e.current())?t.ctx.indentTo=t.ctx.start+e.indentUnit:t.ctx.indentTo="next":t.ctx.indentTo=="next"&&(t.ctx.indentTo=e.column()),t.lastType=_v),_v=="open"?t.ctx={prev:t.ctx,start:e.column(),indentTo:null}:_v=="close"&&(t.ctx=t.ctx.prev||t.ctx),n},indent:function(e){var t=e.ctx.indentTo;return typeof t=="number"?t:e.ctx.start+1},languageData:{commentTokens:{line:";;",block:{open:"#|",close:"|#"}},closeBrackets:{brackets:["(","[","{",'"']}}},JIr=Object.freeze(Object.defineProperty({__proto__:null,commonLisp:KIr},Symbol.toStringTag,{value:"Module"}));var zpe=function(e){return new RegExp("^(?:"+e.join("|")+")$","i")},eMr=function(e){o5=null;var t=e.next();if(t==='"')return e.match(/^.*?"/),"string";if(t==="'")return e.match(/^.*?'/),"string";if(/[{}\(\),\.;\[\]]/.test(t))return o5=t,"punctuation";if(t==="/"&&e.eat("/"))return e.skipToEnd(),"comment";if(BAt.test(t))return e.eatWhile(BAt),null;if(e.eatWhile(/[_\w\d]/),e.eat(":"))return e.eatWhile(/[\w\d_\-]/),"atom";var n=e.current();return tMr.test(n)?"builtin":nMr.test(n)?"def":iMr.test(n)||rMr.test(n)?"keyword":"variable"},Rae=function(e,t,n){return e.context={prev:e.context,indent:e.indent,col:n,type:t}},s8e=function(e){return e.indent=e.context.indent,e.context=e.context.prev},o5,tMr=zpe(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]),nMr=zpe(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]),iMr=zpe(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]),rMr=zpe(["access","active","assign","all","alter","as","catalog","change","copy","create","constraint","constraints","current","database","databases","dbms","default","deny","drop","element","elements","exists","from","grant","graph","graphs","if","index","indexes","label","labels","management","match","name","names","new","node","nodes","not","of","on","or","password","populated","privileges","property","read","relationship","relationships","remove","replace","required","revoke","role","roles","set","show","start","status","stop","suspended","to","traverse","type","types","user","users","with","write"]),BAt=/[*+\-<>=&|~%^]/;const oMr={name:"cypher",startState:function(){return{tokenize:eMr,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if(n!=="comment"&&t.context&&t.context.align==null&&t.context.type!=="pattern"&&(t.context.align=!0),o5==="(")Rae(t,")",e.column());else if(o5==="[")Rae(t,"]",e.column());else if(o5==="{")Rae(t,"}",e.column());else if(/[\]\}\)]/.test(o5)){for(;t.context&&t.context.type==="pattern";)s8e(t);t.context&&o5===t.context.type&&s8e(t)}else o5==="."&&t.context&&t.context.type==="pattern"?s8e(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?Rae(t,"pattern",e.column()):t.context.type==="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type==="pattern";)o=o.prev;var s=o&&r===o.type;return o?o.type==="keywords"?null:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0}},sMr=Object.freeze(Object.defineProperty({__proto__:null,cypher:oMr},Symbol.toStringTag,{value:"Module"}));function cFe(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var aMr=cFe(["and","or","not","is"]),RAt=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],IAt=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function zp(e){return e.scopes[e.scopes.length-1]}function NKe(e){for(var t="error",n=e.delimiters||e.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,r=[e.singleOperators,e.doubleOperators,e.doubleDelimiters,e.tripleDelimiters,e.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],o=0;oS?p(y,C):L0&&w(y,C)&&(E+=" "+t),E}}return f(y,C)}function f(y,C,_){if(y.eatSpace())return null;if(!_&&y.match(/^#.*/))return"comment";if(y.match(/^[0-9\.]/,!1)){var S=!1;if(y.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(S=!0),y.match(/^[\d_]+\.\d*/)&&(S=!0),y.match(/^\.\d+/)&&(S=!0),S)return y.eat(/J/i),"number";var L=!1;if(y.match(/^0x[0-9a-f_]+/i)&&(L=!0),y.match(/^0b[01_]+/i)&&(L=!0),y.match(/^0o[0-7_]+/i)&&(L=!0),y.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(y.eat(/J/i),L=!0),y.match(/^0(?![\dx])/i)&&(L=!0),L)return y.eat(/L/i),"number"}if(y.match(h)){var E=y.current().toLowerCase().indexOf("f")!==-1;return E?(C.tokenize=k(y.current(),C.tokenize),C.tokenize(y,C)):(C.tokenize=A(y.current(),C.tokenize),C.tokenize(y,C))}for(var T=0;T=0;)y=y.substr(1);var _=y.length==1,S="string";function L(T){return function(D,P){var Q=f(D,P,!0);return Q=="punctuation"&&(D.current()=="{"?P.tokenize=L(T+1):D.current()=="}"&&(T>1?P.tokenize=L(T-1):P.tokenize=E)),Q}}function E(T,D){for(;!T.eol();)if(T.eatWhile(/[^'"\{\}\\]/),T.eat("\\")){if(T.next(),_&&T.eol())return S}else{if(T.match(y))return D.tokenize=C,S;if(T.match("{{"))return S;if(T.match("{",!1))return D.tokenize=L(0),T.current()?S:D.tokenize(T,D);if(T.match("}}"))return S;if(T.match("}"))return t;T.eat(/['"]/)}if(_){if(e.singleLineStringErrors)return t;D.tokenize=C}return S}return E.isString=!0,E}function A(y,C){for(;"rubf".indexOf(y.charAt(0).toLowerCase())>=0;)y=y.substr(1);var _=y.length==1,S="string";function L(E,T){for(;!E.eol();)if(E.eatWhile(/[^'"\\]/),E.eat("\\")){if(E.next(),_&&E.eol())return S}else{if(E.match(y))return T.tokenize=C,S;E.eat(/['"]/)}if(_){if(e.singleLineStringErrors)return t;T.tokenize=C}return S}return L.isString=!0,L}function p(y,C){for(;zp(C).type!="py";)C.scopes.pop();C.scopes.push({offset:zp(C).offset+y.indentUnit,type:"py",align:null})}function b(y,C,_){var S=y.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:y.column()+1;C.scopes.push({offset:C.indent+(s||y.indentUnit),type:_,align:S})}function w(y,C){for(var _=y.indentation();C.scopes.length>1&&zp(C).offset>_;){if(zp(C).type!="py")return!0;C.scopes.pop()}return zp(C).offset!=_}function O(y,C){y.sol()&&(C.beginningOfLine=!0,C.dedent=!1);var _=C.tokenize(y,C),S=y.current();if(C.beginningOfLine&&S=="@")return y.match(u,!1)?"meta":d?"operator":t;if(/\S/.test(S)&&(C.beginningOfLine=!1),(_=="variable"||_=="builtin")&&C.lastToken=="meta"&&(_="meta"),(S=="pass"||S=="return")&&(C.dedent=!0),S=="lambda"&&(C.lambda=!0),S==":"&&!C.lambda&&zp(C).type=="py"&&y.match(/^\s*(?:#|$)/,!1)&&p(y,C),S.length==1&&!/string|comment/.test(_)){var L="[({".indexOf(S);if(L!=-1&&b(y,C,"])}".slice(L,L+1)),L="])}".indexOf(S),L!=-1)if(zp(C).type==S)C.indent=C.scopes.pop().offset-(s||y.indentUnit);else return t}return C.dedent&&y.eol()&&zp(C).type=="py"&&C.scopes.length>1&&C.scopes.pop(),_}return{name:"python",startState:function(){return{tokenize:v,scopes:[{offset:0,type:"py",align:null}],indent:0,lastToken:null,lambda:!1,dedent:0}},token:function(y,C){var _=C.errorToken;_&&(C.errorToken=!1);var S=O(y,C);return S&&S!="comment"&&(C.lastToken=S=="keyword"||S=="punctuation"?y.current():S),S=="punctuation"&&(S=null),y.eol()&&C.lambda&&(C.lambda=!1),_?t:S},indent:function(y,C,_){if(y.tokenize!=v)return y.tokenize.isString?null:0;var S=zp(y),L=S.type==C.charAt(0)||S.type=="py"&&!y.dedent&&/^(else:|elif |except |finally:)/.test(C);return S.align!=null?S.align-(L?1:0):S.offset-(L?s||_.unit:0)},languageData:{autocomplete:RAt.concat(IAt).concat(["exec","print"]),indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,commentTokens:{line:"#"},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}var lMr=function(e){return e.split(" ")};const cMr=NKe({}),dMr=NKe({extra_keywords:lMr("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")}),uMr=Object.freeze(Object.defineProperty({__proto__:null,cython:dMr,mkPython:NKe,python:cMr},Symbol.toStringTag,{value:"Module"}));function Pz(e,t){return new RegExp((t?"":"^")+"(?:"+e.join("|")+")"+(t?"$":"\\b"))}function hx(e,t,n){return n.tokenize.push(e),e(t,n)}var dFe=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/,uFe=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,Sxn=/^(?:\[\][?=]?)/,hMr=/^(?:\.(?:\.{2})?|->|[?:])/,oZ=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,Rue=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,fMr=Pz(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),gMr=Pz(["true","false","nil","self"]),mMr=["def","fun","macro","class","module","struct","lib","enum","union","do","for"],kMr=Pz(mMr),vMr=["if","unless","case","while","until","begin","then"],AMr=Pz(vMr),Lxn=["end","else","elsif","rescue","ensure"],pMr=Pz(Lxn),xxn=["\\)","\\}","\\]"],bMr=new RegExp("^(?:"+xxn.join("|")+")$"),MAt={def:PAt,fun:PAt,macro:wMr,class:hP,module:hP,struct:hP,lib:hP,enum:hP,union:hP},a8e={"[":"]","{":"}","(":")","<":">"};function UKe(e,t){if(e.eatSpace())return null;if(t.lastToken!="\\"&&e.match("{%",!1))return hx(GB("%","%"),e,t);if(t.lastToken!="\\"&&e.match("{{",!1))return hx(GB("{","}"),e,t);if(e.peek()=="#")return e.skipToEnd(),"comment";var n;if(e.match(oZ))return e.eat(/[?!]/),n=e.current(),e.eat(":")?"atom":t.lastToken=="."?"property":fMr.test(n)?(kMr.test(n)?!(n=="fun"&&t.blocks.indexOf("lib")>=0)&&!(n=="def"&&t.lastToken=="abstract")&&(t.blocks.push(n),t.currentIndent+=1):(t.lastStyle=="operator"||!t.lastStyle)&&AMr.test(n)?(t.blocks.push(n),t.currentIndent+=1):n=="end"&&(t.blocks.pop(),t.currentIndent-=1),MAt.hasOwnProperty(n)&&t.tokenize.push(MAt[n]),"keyword"):gMr.test(n)?"atom":"variable";if(e.eat("@"))return e.peek()=="["?hx(RK("[","]","meta"),e,t):(e.eat("@"),e.match(oZ)||e.match(Rue),"propertyName");if(e.match(Rue))return"tag";if(e.eat(":"))return e.eat('"')?hx(l8e('"',"atom",!1),e,t):e.match(oZ)||e.match(Rue)||e.match(dFe)||e.match(uFe)||e.match(Sxn)?"atom":(e.eat(":"),"operator");if(e.eat('"'))return hx(l8e('"',"string",!0),e,t);if(e.peek()=="%"){var r="string",o=!0,s;if(e.match("%r"))r="string.special",s=e.next();else if(e.match("%w"))o=!1,s=e.next();else if(e.match("%q"))o=!1,s=e.next();else if(s=e.match(/^%([^\w\s=])/))s=s[1];else{if(e.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/))return"meta";if(e.eat("%"))return"operator"}return a8e.hasOwnProperty(s)&&(s=a8e[s]),hx(l8e(s,r,o),e,t)}return(n=e.match(/^<<-('?)([A-Z]\w*)\1/))?hx(OMr(n[2],!n[1]),e,t):e.eat("'")?(e.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),e.eat("'"),"atom"):e.eat("0")?(e.eat("x")?e.match(/^[0-9a-fA-F_]+/):e.eat("o")?e.match(/^[0-7_]+/):e.eat("b")&&e.match(/^[01_]+/),"number"):e.eat(/^\d/)?(e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/),"number"):e.match(dFe)?(e.eat("="),"operator"):e.match(uFe)||e.match(hMr)?"operator":(n=e.match(/[({[]/,!1))?(n=n[0],hx(RK(n,a8e[n],null),e,t)):e.eat("\\")?(e.next(),"meta"):(e.next(),null)}function RK(e,t,n,r){return function(o,s){if(!r&&o.match(e))return s.tokenize[s.tokenize.length-1]=RK(e,t,n,!0),s.currentIndent+=1,n;var a=UKe(o,s);return o.current()===t&&(s.tokenize.pop(),s.currentIndent-=1,a=n),a}}function GB(e,t,n){return function(r,o){return!n&&r.match("{"+e)?(o.currentIndent+=1,o.tokenize[o.tokenize.length-1]=GB(e,t,!0),"meta"):r.match(t+"}")?(o.currentIndent-=1,o.tokenize.pop(),"meta"):UKe(r,o)}}function wMr(e,t){if(e.eatSpace())return null;var n;if(n=e.match(oZ)){if(n=="def")return"keyword";e.eat(/[?!]/)}return t.tokenize.pop(),"def"}function PAt(e,t){return e.eatSpace()?null:(e.match(oZ)?e.eat(/[!?]/):e.match(dFe)||e.match(uFe)||e.match(Sxn),t.tokenize.pop(),"def")}function hP(e,t){return e.eatSpace()?null:(e.match(Rue),t.tokenize.pop(),"def")}function l8e(e,t,n){return function(r,o){for(var s=!1;r.peek();)if(s)r.next(),s=!1;else{if(r.match("{%",!1))return o.tokenize.push(GB("%","%")),t;if(r.match("{{",!1))return o.tokenize.push(GB("{","}")),t;if(n&&r.match("#{",!1))return o.tokenize.push(RK("#{","}","meta")),t;var a=r.next();if(a==e)return o.tokenize.pop(),t;s=n&&a=="\\"}return t}}function OMr(e,t){return function(n,r){if(n.sol()&&(n.eatSpace(),n.match(e)))return r.tokenize.pop(),"string";for(var o=!1;n.peek();)if(o)n.next(),o=!1;else{if(n.match("{%",!1))return r.tokenize.push(GB("%","%")),"string";if(n.match("{{",!1))return r.tokenize.push(GB("{","}")),"string";if(t&&n.match("#{",!1))return r.tokenize.push(RK("#{","}","meta")),"string";o=n.next()=="\\"&&t}return"string"}}const yMr={name:"crystal",startState:function(){return{tokenize:[UKe],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t),r=e.current();return n&&n!="comment"&&(t.lastToken=r,t.lastStyle=n),n},indent:function(e,t,n){return t=t.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),pMr.test(t)||bMr.test(t)?n.unit*(e.currentIndent-1):n.unit*e.currentIndent},languageData:{indentOnInput:Pz(xxn.concat(Lxn),!0),commentTokens:{line:"#"}}},CMr=Object.freeze(Object.defineProperty({__proto__:null,crystal:yMr},Symbol.toStringTag,{value:"Module"}));function Iae(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/,xk;function WAt(e,t){var n=e.next();if(UAt[n]){var r=UAt[n](e,t);if(r!==!1)return r}if(n=='"'||n=="'"||n=="`")return t.tokenize=TMr(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(n))return xk=n,null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("+"))return t.tokenize=zAt,zAt(e,t);if(e.eat("*"))return t.tokenize=VAt,VAt(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(jAt.test(n))return e.eatWhile(jAt),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var o=e.current();return SMr.propertyIsEnumerable(o)?(NAt.propertyIsEnumerable(o)&&(xk="newstatement"),"keyword"):LMr.propertyIsEnumerable(o)?(NAt.propertyIsEnumerable(o)&&(xk="newstatement"),"builtin"):xMr.propertyIsEnumerable(o)?"atom":"variable"}function TMr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!(r||EMr))&&(n.tokenize=null),"string"}}function VAt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function zAt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="+"}return"comment"}function Exn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function Mae(e,t,n){var r=e.indented;return e.context&&e.context.type=="statement"&&(r=e.context.indented),e.context=new Exn(r,t,n,null,e.context)}function X$(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const QMr={name:"d",startState:function(e){return{tokenize:null,context:new Exn(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;xk=null;var r=(t.tokenize||WAt)(e,t);if(r=="comment"||r=="meta")return r;if(n.align==null&&(n.align=!0),(xk==";"||xk==":"||xk==",")&&n.type=="statement")X$(t);else if(xk=="{")Mae(t,e.column(),"}");else if(xk=="[")Mae(t,e.column(),"]");else if(xk=="(")Mae(t,e.column(),")");else if(xk=="}"){for(;n.type=="statement";)n=X$(t);for(n.type=="}"&&(n=X$(t));n.type=="statement";)n=X$(t)}else xk==n.type?X$(t):((n.type=="}"||n.type=="top")&&xk!=";"||n.type=="statement"&&xk=="newstatement")&&Mae(t,e.column(),"statement");return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=WAt&&e.tokenize!=null)return null;var r=e.context,o=t&&t.charAt(0);r.type=="statement"&&o=="}"&&(r=r.prev);var s=o==r.type;return r.type=="statement"?r.indented+(o=="{"?0:_Mr||n.unit):r.align?r.column+(s?0:1):r.indented+(s?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},DMr=Object.freeze(Object.defineProperty({__proto__:null,d:QMr},Symbol.toStringTag,{value:"Module"}));var HAt={"+":"inserted","-":"deleted","@":"meta"};const BMr={name:"diff",token:function(e){var t=e.string.search(/[\t ]+?$/);if(!e.sol()||t===0)return e.skipToEnd(),("error "+(HAt[e.string.charAt(0)]||"")).replace(/ $/,"");var n=HAt[e.peek()]||e.skipToEnd();return t===-1?e.skipToEnd():e.pos=t,n}},RMr=Object.freeze(Object.defineProperty({__proto__:null,diff:BMr},Symbol.toStringTag,{value:"Module"}));function jKe(e){Txn(e,"start");var t={},n=e.languageData||{},r=!1;for(var o in e)if(o!=n&&e.hasOwnProperty(o))for(var s=t[o]=[],a=e[o],l=0;l2&&a.token&&typeof a.token!="string"){n.pending=[];for(var u=2;u-1)return null;var o=n.indent.length-1,s=e[n.state];e:for(;;){for(var a=0;a"),ab("meta",n);if(n=="#"&&e.eatWhile(/[\w]/))return ab("atom","tag");if(n=="|")return ab("keyword","separator");if(n.match(/[\(\)\[\]\-\.,\+\?>]/))return ab(null,n);if(n.match(/[\[\]]/))return ab("rule",n);if(n=='"'||n=="'")return t.tokenize=YMr(n),t.tokenize(e,t);if(e.eatWhile(/[a-zA-Z\?\+\d]/)){var r=e.current();return r.substr(r.length-1,r.length).match(/\?|\+/)!==null&&e.backUp(1),ab("tag","tag")}else return n=="%"||n=="*"?ab("number","number"):(e.eatWhile(/[\w\\\-_%.{,]/),ab(null,null))}}function $At(e,t){for(var n=0,r;(r=e.next())!=null;){if(n>=2&&r==">"){t.tokenize=Hpe;break}n=r=="-"?n+1:0}return ab("comment","comment")}function YMr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){n.tokenize=Hpe;break}r=!r&&o=="\\"}return ab("string","tag")}}function ZMr(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=Hpe;break}n.next()}return e}}const qMr={name:"dtd",startState:function(){return{tokenize:Hpe,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t),r=t.stack[t.stack.length-1];return e.current()=="["||Fm==="doindent"||Fm=="["?t.stack.push("rule"):Fm==="endtag"?t.stack[t.stack.length-1]="endtag":e.current()=="]"||Fm=="]"||Fm==">"&&r=="rule"?t.stack.pop():Fm=="["&&t.stack.push("["),n},indent:function(e,t,n){var r=e.stack.length;return t.charAt(0)==="]"?r--:t.substr(t.length-1,t.length)===">"&&(t.substr(0,1)==="<"||Fm=="doindent"&&t.length>1||(Fm=="doindent"?r--:Fm==">"&&t.length>1||Fm=="tag"&&t!==">"||(Fm=="tag"&&e.stack[e.stack.length-1]=="rule"?r--:Fm=="tag"?r++:t===">"&&e.stack[e.stack.length-1]=="rule"&&Fm===">"?r--:t===">"&&e.stack[e.stack.length-1]=="rule"||(t.substr(0,1)!=="<"&&t.substr(0,1)===">"?r=r-1:t===">"||(r=r-1)))),(Fm==null||Fm=="]")&&r--),e.baseIndent+r*n.unit},languageData:{indentOnInput:/^\s*[\]>]$/}},KMr=Object.freeze(Object.defineProperty({__proto__:null,dtd:qMr},Symbol.toStringTag,{value:"Module"}));function XAt(e,t){for(var n=0;n",symbolGlobal:"\\*"+QG+"\\*",symbolConstant:"\\$"+QG},tPr={symbolKeyword:"atom",symbolClass:"tag",symbolGlobal:"variableName.standard",symbolConstant:"variableName.constant"};for(var c8e in s9)s9.hasOwnProperty(c8e)&&(s9[c8e]=new RegExp("^"+s9[c8e]));s9.keyword=[/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];var cie={};cie.keyword="keyword";cie.definition="def";cie.simpleDefinition="def";cie.signalingCalls="builtin";var Ixn={},Mxn={};XAt(["keyword","definition","simpleDefinition","signalingCalls"],function(e){XAt(_f[e],function(t){Ixn[t]=e,Mxn[t]=cie[e]})});function d8e(e,t,n){return t.tokenize=n,n(e,t)}function WKe(e,t){var n=e.peek();if(n=="'"||n=='"')return e.next(),d8e(e,t,GAt(n,"string"));if(n=="/"){if(e.next(),e.eat("*"))return d8e(e,t,nPr);if(e.eat("/"))return e.skipToEnd(),"comment";e.backUp(1)}else if(/[+\-\d\.]/.test(n)){if(e.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i)||e.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i)||e.match(/^[+-]?\d+/))return"number"}else{if(n=="#")return e.next(),n=e.peek(),n=='"'?(e.next(),d8e(e,t,GAt('"',"string"))):n=="b"?(e.next(),e.eatWhile(/[01]/),"number"):n=="x"?(e.next(),e.eatWhile(/[\da-f]/i),"number"):n=="o"?(e.next(),e.eatWhile(/[0-7]/),"number"):n=="#"?(e.next(),"punctuation"):n=="["||n=="("?(e.next(),"bracket"):e.match(/f|t|all-keys|include|key|next|rest/i)?"atom":(e.eatWhile(/[-a-zA-Z]/),"error");if(n=="~")return e.next(),n=e.peek(),n=="="?(e.next(),n=e.peek(),n=="="&&e.next(),"operator"):"operator";if(n==":"){if(e.next(),n=e.peek(),n=="=")return e.next(),"operator";if(n==":")return e.next(),"punctuation"}else{if("[](){}".indexOf(n)!=-1)return e.next(),"bracket";if(".,".indexOf(n)!=-1)return e.next(),"punctuation";if(e.match("end"))return"keyword"}}for(var r in s9)if(s9.hasOwnProperty(r)){var o=s9[r];if(o instanceof Array&&JMr(o,function(s){return e.match(s)})||e.match(o))return tPr[r]}return/[+\-*\/^=<>&|]/.test(n)?(e.next(),"operator"):e.match("define")?"def":(e.eatWhile(/[\w\-]/),Ixn.hasOwnProperty(e.current())?Mxn[e.current()]:e.current().match(ePr)?"variable":(e.next(),"variableName.standard"))}function nPr(e,t){for(var n=!1,r=!1,o=0,s;s=e.next();){if(s=="/"&&n)if(o>0)o--;else{t.tokenize=WKe;break}else s=="*"&&r&&o++;n=s=="*",r=s=="/"}return"comment"}function GAt(e,t){return function(n,r){for(var o=!1,s,a=!1;(s=n.next())!=null;){if(s==e&&!o){a=!0;break}o=!o&&s=="\\"}return(a||!o)&&(r.tokenize=WKe),t}}const iPr={name:"dylan",startState:function(){return{tokenize:WKe,currentIndent:0}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{commentTokens:{block:{open:"/*",close:"*/"}}}},rPr=Object.freeze(Object.defineProperty({__proto__:null,dylan:iPr},Symbol.toStringTag,{value:"Module"}));var Pae={slash:0,parenthesis:1},hw={comment:0,_string:1,characterClass:2};const oPr={name:"ebnf",startState:function(){return{stringType:null,commentType:null,braced:0,lhs:!0,localState:null,stack:[],inDefinition:!1}},token:function(e,t){if(e){switch(t.stack.length===0&&(e.peek()=='"'||e.peek()=="'"?(t.stringType=e.peek(),e.next(),t.stack.unshift(hw._string)):e.match("/*")?(t.stack.unshift(hw.comment),t.commentType=Pae.slash):e.match("(*")&&(t.stack.unshift(hw.comment),t.commentType=Pae.parenthesis)),t.stack[0]){case hw._string:for(;t.stack[0]===hw._string&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):e.peek()==="\\"?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string";case hw.comment:for(;t.stack[0]===hw.comment&&!e.eol();)t.commentType===Pae.slash&&e.match("*/")||t.commentType===Pae.parenthesis&&e.match("*)")?(t.stack.shift(),t.commentType=null):e.match(/^.[^\*]*/);return"comment";case hw.characterClass:for(;t.stack[0]===hw.characterClass&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(".")||t.stack.shift();return"operator"}var n=e.peek();switch(n){case"[":return e.next(),t.stack.unshift(hw.characterClass),"bracket";case":":case"|":case";":return e.next(),"operator";case"%":if(e.match("%%"))return"header";if(e.match(/[%][A-Za-z]+/))return"keyword";if(e.match(/[%][}]/))return"bracket";break;case"/":if(e.match(/[\/][A-Za-z]+/))return"keyword";case"\\":if(e.match(/[\][a-z]+/))return"string.special";case".":if(e.match("."))return"atom";case"*":case"-":case"+":case"^":if(e.match(n))return"atom";case"$":if(e.match("$$"))return"builtin";if(e.match(/[$][0-9]+/))return"variableName.special";case"<":if(e.match(/<<[a-zA-Z_]+>>/))return"builtin"}return e.match("//")?(e.skipToEnd(),"comment"):e.match("return")?"operator":e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)?e.match(/(?=[\(.])/)?"variable":e.match(/(?=[\s\n]*[:=])/)?"def":"variableName.special":["[","]","(",")"].indexOf(e.peek())!=-1?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}},sPr=Object.freeze(Object.defineProperty({__proto__:null,ebnf:oPr},Symbol.toStringTag,{value:"Module"}));function mI(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/,Gm;function tme(e,t){var n=e.next();if(ZAt[n]){var r=ZAt[n](e,t);if(r!==!1)return r}if(n=='"'||n=="'")return t.tokenize=fPr(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(n))return Gm=n,null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("*"))return t.tokenize=KAt,KAt(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(qAt.test(n))return e.eatWhile(qAt),"operator";e.eatWhile(/[\w\$_]/);var o=e.current().toLowerCase();if(lPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"keyword";if(cPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"variable";if(dPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"modifier";if(YAt.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"type";if(uPr.propertyIsEnumerable(o))return fP.propertyIsEnumerable(o)&&(Gm="newstatement"),"builtin";for(var s=o.length-1;s>=0&&(!isNaN(o[s])||o[s]=="_");)--s;if(s>0){var a=o.substr(0,s+1);if(YAt.propertyIsEnumerable(a))return fP.propertyIsEnumerable(a)&&(Gm="newstatement"),"type"}return hPr.propertyIsEnumerable(o)?"atom":null}function fPr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=tme),"string"}}function KAt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=tme;break}n=r=="*"}return"comment"}function Pxn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function Fae(e,t,n){return e.context=new Pxn(e.indented,t,n,null,e.context)}function G$(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const gPr={name:"ecl",startState:function(e){return{tokenize:null,context:new Pxn(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;Gm=null;var r=(t.tokenize||tme)(e,t);if(r=="comment"||r=="meta")return r;if(n.align==null&&(n.align=!0),(Gm==";"||Gm==":")&&n.type=="statement")G$(t);else if(Gm=="{")Fae(t,e.column(),"}");else if(Gm=="[")Fae(t,e.column(),"]");else if(Gm=="(")Fae(t,e.column(),")");else if(Gm=="}"){for(;n.type=="statement";)n=G$(t);for(n.type=="}"&&(n=G$(t));n.type=="statement";)n=G$(t)}else Gm==n.type?G$(t):(n.type=="}"||n.type=="top"||n.type=="statement"&&Gm=="newstatement")&&Fae(t,e.column(),"statement");return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=tme&&e.tokenize!=null)return 0;var r=e.context,o=t&&t.charAt(0);r.type=="statement"&&o=="}"&&(r=r.prev);var s=o==r.type;return r.type=="statement"?r.indented+(o=="{"?0:n.unit):r.align?r.column+(s?0:1):r.indented+(s?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/}},mPr=Object.freeze(Object.defineProperty({__proto__:null,ecl:gPr},Symbol.toStringTag,{value:"Module"}));function Fxn(e){for(var t={},n=0,r=e.length;n>"]);function APr(e,t,n){return n.tokenize.push(e),e(t,n)}function pPr(e,t){if(e.eatSpace())return null;var n=e.next();return n=='"'||n=="'"?APr(bPr(n,"string"),e,t):n=="-"&&e.eat("-")?(e.skipToEnd(),"comment"):n==":"&&e.eat("=")?"operator":/[0-9]/.test(n)?(e.eatWhile(/[xXbBCc0-9\.]/),e.eat(/[\?\!]/),"variable"):/[a-zA-Z_0-9]/.test(n)?(e.eatWhile(/[a-zA-Z_0-9]/),e.eat(/[\?\!]/),"variable"):/[=+\-\/*^%<>~]/.test(n)?(e.eatWhile(/[=+\-\/*^%<>~]/),"operator"):null}function bPr(e,t,n){return function(r,o){for(var s=!1,a;(a=r.next())!=null;){if(a==e&&!s){o.tokenize.pop();break}s=!s&&a=="%"}return t}}const wPr={name:"eiffel",startState:function(){return{tokenize:[pPr]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t);if(n=="variable"){var r=e.current();n=kPr.propertyIsEnumerable(e.current())?"keyword":vPr.propertyIsEnumerable(e.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(r)?"tag":/^0[bB][0-1]+$/g.test(r)||/^0[cC][0-7]+$/g.test(r)||/^0[xX][a-fA-F0-9]+$/g.test(r)||/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(r)||/^[0-9]+$/g.test(r)?"number":"variable"}return n},languageData:{commentTokens:{line:"--"}}},OPr=Object.freeze(Object.defineProperty({__proto__:null,eiffel:wPr},Symbol.toStringTag,{value:"Module"}));function Y$(e,t,n){return t(n),n(e,t)}var yPr=/[a-z]/,CPr=/[A-Z]/,JAt=/[a-zA-Z0-9_]/,Nae=/[0-9]/,_Pr=/[0-9A-Fa-f]/,e4t=/[-&*+.\\/<>=?^|:]/,SPr=/[(),[\]{}]/,LPr=/[ \v\f]/;function L8(){return function(e,t){if(e.eatWhile(LPr))return null;var n=e.next();if(SPr.test(n))return n==="{"&&e.eat("-")?Y$(e,t,Nxn(1)):n==="["&&e.match("glsl|")?Y$(e,t,QPr):"builtin";if(n==="'")return Y$(e,t,TPr);if(n==='"')return e.eat('"')?e.eat('"')?Y$(e,t,xPr):"string":Y$(e,t,EPr);if(CPr.test(n))return e.eatWhile(JAt),"type";if(yPr.test(n)){var r=e.pos===1;return e.eatWhile(JAt),r?"def":"variable"}if(Nae.test(n)){if(n==="0"){if(e.eat(/[xX]/))return e.eatWhile(_Pr),"number"}else e.eatWhile(Nae);return e.eat(".")&&e.eatWhile(Nae),e.eat(/[eE]/)&&(e.eat(/[-+]/),e.eatWhile(Nae)),"number"}return e4t.test(n)?n==="-"&&e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(e4t),"keyword"):n==="_"?"keyword":"error"}}function Nxn(e){return e==0?L8():function(t,n){for(;!t.eol();){var r=t.next();if(r=="{"&&t.eat("-"))++e;else if(r=="-"&&t.eat("}")&&(--e,e===0))return n(L8()),"comment"}return n(Nxn(e)),"comment"}}function xPr(e,t){for(;!e.eol();){var n=e.next();if(n==='"'&&e.eat('"')&&e.eat('"'))return t(L8()),"string"}return"string"}function EPr(e,t){for(;e.skipTo('\\"');)e.next(),e.next();return e.skipTo('"')?(e.next(),t(L8()),"string"):(e.skipToEnd(),t(L8()),"error")}function TPr(e,t){for(;e.skipTo("\\'");)e.next(),e.next();return e.skipTo("'")?(e.next(),t(L8()),"string"):(e.skipToEnd(),t(L8()),"error")}function QPr(e,t){for(;!e.eol();){var n=e.next();if(n==="|"&&e.eat("]"))return t(L8()),"string"}return"string"}var DPr={case:1,of:1,as:1,if:1,then:1,else:1,let:1,in:1,type:1,alias:1,module:1,where:1,import:1,exposing:1,port:1};const BPr={name:"elm",startState:function(){return{f:L8()}},copyState:function(e){return{f:e.f}},token:function(e,t){var n=t.f(e,function(o){t.f=o}),r=e.current();return DPr.hasOwnProperty(r)?"keyword":n},languageData:{commentTokens:{line:"--"}}},RPr=Object.freeze(Object.defineProperty({__proto__:null,elm:BPr},Symbol.toStringTag,{value:"Module"}));var IPr=["-type","-spec","-export_type","-opaque"],MPr=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],PPr=/[\->,;]/,FPr=["->",";",","],NPr=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],UPr=/[\+\-\*\/<>=\|:!]/,jPr=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],WPr=/[<\(\[\{]/,hFe=["<<","(","[","{"],VPr=/[>\)\]\}]/,Uxn=["}","]",")",">>"],zPr=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],HPr=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],Uae=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/,$Pr=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function XPr(e,t){if(t.in_string)return t.in_string=!i4t(e),$a(t,e,"string");if(t.in_atom)return t.in_atom=!r4t(e),$a(t,e,"atom");if(e.eatSpace())return $a(t,e,"whitespace");if(!sZ(t)&&e.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/))return t1(e.current(),IPr)?$a(t,e,"type"):$a(t,e,"attribute");var n=e.next();if(n=="%")return e.skipToEnd(),$a(t,e,"comment");if(n==":")return $a(t,e,"colon");if(n=="?")return e.eatSpace(),e.eatWhile(Uae),$a(t,e,"macro");if(n=="#")return e.eatSpace(),e.eatWhile(Uae),$a(t,e,"record");if(n=="$")return e.next()=="\\"&&!e.match($Pr)?$a(t,e,"error"):$a(t,e,"number");if(n==".")return $a(t,e,"dot");if(n=="'"){if(!(t.in_atom=!r4t(e))){if(e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),$a(t,e,"fun");if(e.match(/\s*\(/,!1)||e.match(/\s*:/,!1))return $a(t,e,"function")}return $a(t,e,"atom")}if(n=='"')return t.in_string=!i4t(e),$a(t,e,"string");if(/[A-Z_Ø-ÞÀ-Ö]/.test(n))return e.eatWhile(Uae),$a(t,e,"variable");if(/[a-z_ß-öø-ÿ]/.test(n)){if(e.eatWhile(Uae),e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),$a(t,e,"fun");var r=e.current();return t1(r,MPr)?$a(t,e,"keyword"):t1(r,NPr)?$a(t,e,"operator"):e.match(/\s*\(/,!1)?t1(r,HPr)&&(sZ(t).token!=":"||sZ(t,2).token=="erlang")?$a(t,e,"builtin"):t1(r,zPr)?$a(t,e,"guard"):$a(t,e,"function"):GPr(e)==":"?r=="erlang"?$a(t,e,"builtin"):$a(t,e,"function"):t1(r,["true","false"])?$a(t,e,"boolean"):$a(t,e,"atom")}var o=/[0-9]/,s=/[0-9a-zA-Z]/;return o.test(n)?(e.eatWhile(o),e.eat("#")?e.eatWhile(s)||e.backUp(1):e.eat(".")&&(e.eatWhile(o)?e.eat(/[eE]/)&&(e.eat(/[-+]/)?e.eatWhile(o)||e.backUp(2):e.eatWhile(o)||e.backUp(1)):e.backUp(1)),$a(t,e,"number")):t4t(e,WPr,hFe)?$a(t,e,"open_paren"):t4t(e,VPr,Uxn)?$a(t,e,"close_paren"):n4t(e,PPr,FPr)?$a(t,e,"separator"):n4t(e,UPr,jPr)?$a(t,e,"operator"):$a(t,e,null)}function t4t(e,t,n){if(e.current().length==1&&t.test(e.current())){for(e.backUp(1);t.test(e.peek());)if(e.next(),t1(e.current(),n))return!0;e.backUp(e.current().length-1)}return!1}function n4t(e,t,n){if(e.current().length==1&&t.test(e.current())){for(;t.test(e.peek());)e.next();for(;01&&e[t].type==="fun"&&e[t-1].token==="fun")return e.slice(0,t-1);switch(e[t].token){case"}":return Hp(e,{g:["{"]});case"]":return Hp(e,{i:["["]});case")":return Hp(e,{i:["("]});case">>":return Hp(e,{i:["<<"]});case"end":return Hp(e,{i:["begin","case","fun","if","receive","try"]});case",":return Hp(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return Hp(e,{r:["when"],m:["try","if","case","receive"]});case";":return Hp(e,{E:["case","fun","if","receive","try","when"]});case"catch":return Hp(e,{e:["try"]});case"of":return Hp(e,{e:["case"]});case"after":return Hp(e,{e:["receive","try"]});default:return e}}function Hp(e,t){for(var n in t)for(var r=e.length-1,o=t[n],s=r-1;-1"?t1(a.token,["receive","case","if","try"])?a.column+n.unit+n.unit:a.column+n.unit:t1(s.token,hFe)?s.column+s.token.length:(r=iFr(e),rD(r)?r.column+n.unit:0):0}function tFr(e){var t=e.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return rD(t)&&t.index===0?t[0]:""}function nFr(e){var t=e.tokenStack.slice(0,-1),n=nme(t,"type",["open_paren"]);return rD(t[n])?t[n]:!1}function iFr(e){var t=e.tokenStack,n=nme(t,"type",["open_paren","separator","keyword"]),r=nme(t,"type",["operator"]);return rD(n)&&rD(r)&&n!=&|~^\/]/,a=e.support||{},l=e.hooks||{},d=e.dateSQL||{date:!0,time:!0,timestamp:!0},u=e.backslashStringEscapes!==!1,h=e.brackets||/^[\{}\(\)\[\]]/,g=e.punctuation||/^[;.,:]/;function m(p,b){var w=p.next();if(l[w]){var O=l[w](p,b);if(O!==!1)return O}if(a.hexNumber&&(w=="0"&&p.match(/^[xX][0-9a-fA-F]+/)||(w=="x"||w=="X")&&p.match(/^'[0-9a-fA-F]*'/)))return"number";if(a.binaryNumber&&((w=="b"||w=="B")&&p.match(/^'[01]+'/)||w=="0"&&p.match(/^b[01]*/)))return"number";if(w.charCodeAt(0)>47&&w.charCodeAt(0)<58)return p.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),a.decimallessFloat&&p.match(/^\.(?!\.)/),"number";if(w=="?"&&(p.eatSpace()||p.eol()||p.eat(";")))return"macroName";if(w=="'"||w=='"'&&a.doubleQuote)return b.tokenize=v(w),b.tokenize(p,b);if((a.nCharCast&&(w=="n"||w=="N")||a.charsetCast&&w=="_"&&p.match(/[a-z][a-z0-9]*/i))&&(p.peek()=="'"||p.peek()=='"'))return"keyword";if(a.escapeConstant&&(w=="e"||w=="E")&&(p.peek()=="'"||p.peek()=='"'&&a.doubleQuote))return b.tokenize=function(C,_){return(_.tokenize=v(C.next(),!0))(C,_)},"keyword";if(a.commentSlashSlash&&w=="/"&&p.eat("/"))return p.skipToEnd(),"comment";if(a.commentHash&&w=="#"||w=="-"&&p.eat("-")&&(!a.commentSpaceRequired||p.eat(" ")))return p.skipToEnd(),"comment";if(w=="/"&&p.eat("*"))return b.tokenize=f(1),b.tokenize(p,b);if(w=="."){if(a.zerolessFloat&&p.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(p.match(/^\.+/))return null;if(a.ODBCdotTable&&p.match(/^[\w\d_$#]+/))return"type"}else{if(s.test(w))return p.eatWhile(s),"operator";if(h.test(w))return"bracket";if(g.test(w))return p.eatWhile(g),"punctuation";if(w=="{"&&(p.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||p.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";p.eatWhile(/^[_\w\d]/);var y=p.current().toLowerCase();return d.hasOwnProperty(y)&&(p.match(/^( )+'[^']*'/)||p.match(/^( )+"[^"]*"/))?"number":n.hasOwnProperty(y)?"atom":r.hasOwnProperty(y)?"type":o.hasOwnProperty(y)?"keyword":t.hasOwnProperty(y)?"builtin":null}}function v(p,b){return function(w,O){for(var y=!1,C;(C=w.next())!=null;){if(C==p&&!y){O.tokenize=m;break}y=(u||b)&&!y&&C=="\\"}return"string"}}function f(p){return function(b,w){var O=b.match(/^.*?(\/\*|\*\/)/);return O?O[1]=="/*"?w.tokenize=f(p+1):p>1?w.tokenize=f(p-1):w.tokenize=m:b.skipToEnd(),"comment"}}function k(p,b,w){b.context={prev:b.context,indent:p.indentation(),col:p.column(),type:w}}function A(p){p.indent=p.context.indent,p.context=p.context.prev}return{name:"sql",startState:function(){return{tokenize:m,context:null}},token:function(p,b){if(p.sol()&&b.context&&b.context.align==null&&(b.context.align=!1),b.tokenize==m&&p.eatSpace())return null;var w=b.tokenize(p,b);if(w=="comment")return w;b.context&&b.context.align==null&&(b.context.align=!0);var O=p.current();return O=="("?k(p,b,")"):O=="["?k(p,b,"]"):b.context&&b.context.type==O&&A(b),w},indent:function(p,b,w){var O=p.context;if(!O)return null;var y=b.charAt(0)==O.type;return O.align?O.col+(y?0:1):O.indent+(y?0:w.unit)},languageData:{commentTokens:{line:a.commentSlashSlash?"//":a.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function VKe(e){for(var t;(t=e.next())!=null;)if(t=="`"&&!e.eat("`"))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function sFr(e){for(var t;(t=e.next())!=null;)if(t=='"'&&!e.eat('"'))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function tQ(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"string.special"):e.eat('"')?(e.match(/^.*"/),"string.special"):e.eat("`")?(e.match(/^.*`/),"string.special"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function Vxn(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"string.special":null}var kI="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function ur(e){for(var t={},n=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:ur("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":tQ}}),cFr=y2({client:ur("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:ur(kI+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:ur("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":tQ,"`":VKe,"\\":Vxn}}),dFr=y2({client:ur("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:ur(kI+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:ur("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":tQ,"`":VKe,"\\":Vxn}}),uFr=y2({client:ur("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:ur(kI+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:ur("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:ur("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:ur("date time timestamp datetime"),support:ur("decimallessFloat zerolessFloat"),hooks:{"@":tQ,":":tQ,"?":tQ,$:tQ,'"':sFr,"`":VKe}}),hFr=y2({client:{},keywords:ur("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:ur("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:ur("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:ur("commentSlashSlash decimallessFloat"),hooks:{}}),fFr=y2({client:ur("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:ur("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:ur("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:ur("date time timestamp"),support:ur("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),gFr=y2({keywords:ur("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:ur("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:ur("date timestamp"),support:ur("ODBCdotTable doubleQuote binaryNumber hexNumber")}),mFr=y2({client:ur("source"),keywords:ur(kI+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:ur("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:ur("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),kFr=y2({keywords:ur("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:ur("false true"),builtin:ur("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),vFr=y2({client:ur("source"),keywords:ur("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:ur("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:ur("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),AFr=y2({keywords:ur("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:ur("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:ur("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:ur("date time timestamp"),support:ur("ODBCdotTable doubleQuote zerolessFloat")}),pFr=y2({client:ur("source"),keywords:ur("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:ur("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:ur("time"),support:ur("decimallessFloat zerolessFloat binaryNumber hexNumber")}),bFr=Object.freeze(Object.defineProperty({__proto__:null,cassandra:hFr,esper:pFr,gpSQL:vFr,gql:kFr,hive:gFr,mariaDB:dFr,msSQL:lFr,mySQL:cFr,pgSQL:mFr,plSQL:fFr,sparkSQL:AFr,sql:y2,sqlite:uFr,standardSQL:aFr},Symbol.toStringTag,{value:"Module"})),wFr=jKe({start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],languageData:{name:"factor",dontIndentStates:["start","vocabulary","string","string3","stack"],commentTokens:{line:"!"}}}),OFr=Object.freeze(Object.defineProperty({__proto__:null,factor:wFr},Symbol.toStringTag,{value:"Module"}));var yFr={term:!0,method:!0,accu:!0,rule:!0,then:!0,is:!0,and:!0,or:!0,if:!0,default:!0},Hxn={var_input:!0,var_output:!0,fuzzify:!0,defuzzify:!0,function_block:!0,ruleblock:!0},fFe={end_ruleblock:!0,end_defuzzify:!0,end_function_block:!0,end_fuzzify:!0,end_var:!0},CFr={true:!0,false:!0,nan:!0,real:!0,min:!0,max:!0,cog:!0,cogs:!0},o4t=/[+\-*&^%:=<>!|\/]/;function gFe(e,t){var n=e.next();if(/[\d\.]/.test(n))return n=="."?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):n=="0"?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(n=="/"||n=="("){if(e.eat("*"))return t.tokenize=s4t,s4t(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(o4t.test(n))return e.eatWhile(o4t),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current().toLowerCase();return yFr.propertyIsEnumerable(r)||Hxn.propertyIsEnumerable(r)||fFe.propertyIsEnumerable(r)?"keyword":CFr.propertyIsEnumerable(r)?"atom":"variable"}function s4t(e,t){for(var n=!1,r;r=e.next();){if((r=="/"||r==")")&&n){t.tokenize=gFe;break}n=r=="*"}return"comment"}function $xn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function _Fr(e,t,n){return e.context=new $xn(e.indented,t,n,null,e.context)}function SFr(e){if(e.context.prev){var t=e.context.type;return t=="end_block"&&(e.indented=e.context.indented),e.context=e.context.prev}}const LFr={name:"fcl",startState:function(e){return{tokenize:null,context:new $xn(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;var r=(t.tokenize||gFe)(e,t);if(r=="comment")return r;n.align==null&&(n.align=!0);var o=e.current().toLowerCase();return Hxn.propertyIsEnumerable(o)?_Fr(t,e.column(),"end_block"):fFe.propertyIsEnumerable(o)&&SFr(t),t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=gFe&&e.tokenize!=null)return 0;var r=e.context,o=fFe.propertyIsEnumerable(t);return r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{commentTokens:{line:"//",block:{open:"(*",close:"*)"}}}},xFr=Object.freeze(Object.defineProperty({__proto__:null,fcl:LFr},Symbol.toStringTag,{value:"Module"}));function Xxn(e){var t=[];return e.split(" ").forEach(function(n){t.push({name:n})}),t}var EFr=Xxn("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"),TFr=Xxn("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");function h8e(e,t){var n;for(n=e.length-1;n>=0;n--)if(e[n].name===t.toUpperCase())return e[n]}const QFr={name:"forth",startState:function(){return{state:"",base:10,coreWordList:EFr,immediateWordList:TFr,wordList:[]}},token:function(e,t){var n;if(e.eatSpace())return null;if(t.state===""){if(e.match(/^(\]|:NONAME)(\s|$)/i))return t.state=" compilation","builtin";if(n=e.match(/^(\:)\s+(\S+)(\s|$)+/),n)return t.wordList.push({name:n[2].toUpperCase()}),t.state=" compilation","def";if(n=e.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i),n)return t.wordList.push({name:n[2].toUpperCase()}),"def";if(n=e.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/),n)return"builtin"}else{if(e.match(/^(\;|\[)(\s)/))return t.state="",e.backUp(1),"builtin";if(e.match(/^(\;|\[)($)/))return t.state="","builtin";if(e.match(/^(POSTPONE)\s+\S+(\s|$)+/))return"builtin"}if(n=e.match(/^(\S+)(\s+|$)/),n)return h8e(t.wordList,n[1])!==void 0?"variable":n[1]==="\\"?(e.skipToEnd(),"comment"):h8e(t.coreWordList,n[1])!==void 0?"builtin":h8e(t.immediateWordList,n[1])!==void 0?"keyword":n[1]==="("?(e.eatWhile(function(r){return r!==")"}),e.eat(")"),"comment"):n[1]===".("?(e.eatWhile(function(r){return r!==")"}),e.eat(")"),"string"):n[1]==='S"'||n[1]==='."'||n[1]==='C"'?(e.eatWhile(function(r){return r!=='"'}),e.eat('"'),"string"):n[1]-68719476735?"number":"atom"}},DFr=Object.freeze(Object.defineProperty({__proto__:null,forth:QFr},Symbol.toStringTag,{value:"Module"}));function zKe(e){for(var t={},n=0;n\/\:]/,MFr=/^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i;function PFr(e,t){if(e.match(MFr))return"operator";var n=e.next();if(n=="!")return e.skipToEnd(),"comment";if(n=='"'||n=="'")return t.tokenize=FFr(n),t.tokenize(e,t);if(/[\[\]\(\),]/.test(n))return null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(a4t.test(n))return e.eatWhile(a4t),"operator";e.eatWhile(/[\w\$_]/);var r=e.current().toLowerCase();return BFr.hasOwnProperty(r)?"keyword":RFr.hasOwnProperty(r)||IFr.hasOwnProperty(r)?"builtin":"variable"}function FFr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=null),"string"}}const NFr={name:"fortran",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||PFr)(e,t);return n=="comment"||n=="meta",n}},UFr=Object.freeze(Object.defineProperty({__proto__:null,fortran:NFr},Symbol.toStringTag,{value:"Module"}));function HKe(e){var t={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},n=e.extraWords||{};for(var r in n)n.hasOwnProperty(r)&&(t[r]=e.extraWords[r]);var o=[];for(var s in t)o.push(s);function a(h,g){var m=h.next();if(m==='"')return g.tokenize=l,g.tokenize(h,g);if(m==="{"&&h.eat("|"))return g.longString=!0,g.tokenize=u,g.tokenize(h,g);if(m==="("&&h.match(/^\*(?!\))/))return g.commentLevel++,g.tokenize=d,g.tokenize(h,g);if(m==="~"||m==="?")return h.eatWhile(/\w/),"variableName.special";if(m==="`")return h.eatWhile(/\w/),"quote";if(m==="/"&&e.slashComments&&h.eat("/"))return h.skipToEnd(),"comment";if(/\d/.test(m))return m==="0"&&h.eat(/[bB]/)&&h.eatWhile(/[01]/),m==="0"&&h.eat(/[xX]/)&&h.eatWhile(/[0-9a-fA-F]/),m==="0"&&h.eat(/[oO]/)?h.eatWhile(/[0-7]/):(h.eatWhile(/[\d_]/),h.eat(".")&&h.eatWhile(/[\d]/),h.eat(/[eE]/)&&h.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(m))return"operator";if(/[\w\xa1-\uffff]/.test(m)){h.eatWhile(/[\w\xa1-\uffff]/);var v=h.current();return t.hasOwnProperty(v)?t[v]:"variable"}return null}function l(h,g){for(var m,v=!1,f=!1;(m=h.next())!=null;){if(m==='"'&&!f){v=!0;break}f=!f&&m==="\\"}return v&&!f&&(g.tokenize=a),"string"}function d(h,g){for(var m,v;g.commentLevel>0&&(v=h.next())!=null;)m==="("&&v==="*"&&g.commentLevel++,m==="*"&&v===")"&&g.commentLevel--,m=v;return g.commentLevel<=0&&(g.tokenize=a),"comment"}function u(h,g){for(var m,v;g.longString&&(v=h.next())!=null;)m==="|"&&v==="}"&&(g.longString=!1),m=v;return g.longString||(g.tokenize=a),"string"}return{startState:function(){return{tokenize:a,commentLevel:0,longString:!1}},token:function(h,g){return h.eatSpace()?null:g.tokenize(h,g)},languageData:{autocomplete:o,commentTokens:{line:e.slashComments?"//":void 0,block:{open:"(*",close:"*)"}}}}}const jFr=HKe({extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),WFr=HKe({extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),VFr=HKe({extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0}),f8e=Object.freeze(Object.defineProperty({__proto__:null,fSharp:WFr,oCaml:jFr,sml:VFr},Symbol.toStringTag,{value:"Module"}));function Gxn(e){var t=[],n="",r={".abort":"builtin",".align":"builtin",".altmacro":"builtin",".ascii":"builtin",".asciz":"builtin",".balign":"builtin",".balignw":"builtin",".balignl":"builtin",".bundle_align_mode":"builtin",".bundle_lock":"builtin",".bundle_unlock":"builtin",".byte":"builtin",".cfi_startproc":"builtin",".comm":"builtin",".data":"builtin",".def":"builtin",".desc":"builtin",".dim":"builtin",".double":"builtin",".eject":"builtin",".else":"builtin",".elseif":"builtin",".end":"builtin",".endef":"builtin",".endfunc":"builtin",".endif":"builtin",".equ":"builtin",".equiv":"builtin",".eqv":"builtin",".err":"builtin",".error":"builtin",".exitm":"builtin",".extern":"builtin",".fail":"builtin",".file":"builtin",".fill":"builtin",".float":"builtin",".func":"builtin",".global":"builtin",".gnu_attribute":"builtin",".hidden":"builtin",".hword":"builtin",".ident":"builtin",".if":"builtin",".incbin":"builtin",".include":"builtin",".int":"builtin",".internal":"builtin",".irp":"builtin",".irpc":"builtin",".lcomm":"builtin",".lflags":"builtin",".line":"builtin",".linkonce":"builtin",".list":"builtin",".ln":"builtin",".loc":"builtin",".loc_mark_labels":"builtin",".local":"builtin",".long":"builtin",".macro":"builtin",".mri":"builtin",".noaltmacro":"builtin",".nolist":"builtin",".octa":"builtin",".offset":"builtin",".org":"builtin",".p2align":"builtin",".popsection":"builtin",".previous":"builtin",".print":"builtin",".protected":"builtin",".psize":"builtin",".purgem":"builtin",".pushsection":"builtin",".quad":"builtin",".reloc":"builtin",".rept":"builtin",".sbttl":"builtin",".scl":"builtin",".section":"builtin",".set":"builtin",".short":"builtin",".single":"builtin",".size":"builtin",".skip":"builtin",".sleb128":"builtin",".space":"builtin",".stab":"builtin",".string":"builtin",".struct":"builtin",".subsection":"builtin",".symver":"builtin",".tag":"builtin",".text":"builtin",".title":"builtin",".type":"builtin",".uleb128":"builtin",".val":"builtin",".version":"builtin",".vtable_entry":"builtin",".vtable_inherit":"builtin",".warning":"builtin",".weak":"builtin",".weakref":"builtin",".word":"builtin"},o={};function s(){n="#",o.al="variable",o.ah="variable",o.ax="variable",o.eax="variableName.special",o.rax="variableName.special",o.bl="variable",o.bh="variable",o.bx="variable",o.ebx="variableName.special",o.rbx="variableName.special",o.cl="variable",o.ch="variable",o.cx="variable",o.ecx="variableName.special",o.rcx="variableName.special",o.dl="variable",o.dh="variable",o.dx="variable",o.edx="variableName.special",o.rdx="variableName.special",o.si="variable",o.esi="variableName.special",o.rsi="variableName.special",o.di="variable",o.edi="variableName.special",o.rdi="variableName.special",o.sp="variable",o.esp="variableName.special",o.rsp="variableName.special",o.bp="variable",o.ebp="variableName.special",o.rbp="variableName.special",o.ip="variable",o.eip="variableName.special",o.rip="variableName.special",o.cs="keyword",o.ds="keyword",o.ss="keyword",o.es="keyword",o.fs="keyword",o.gs="keyword"}function a(){n="@",r.syntax="builtin",o.r0="variable",o.r1="variable",o.r2="variable",o.r3="variable",o.r4="variable",o.r5="variable",o.r6="variable",o.r7="variable",o.r8="variable",o.r9="variable",o.r10="variable",o.r11="variable",o.r12="variable",o.sp="variableName.special",o.lr="variableName.special",o.pc="variableName.special",o.r13=o.sp,o.r14=o.lr,o.r15=o.pc,t.push(function(u,h){if(u==="#")return h.eatWhile(/\w/),"number"})}e==="x86"?s():(e==="arm"||e==="armv6")&&a();function l(u,h){for(var g=!1,m;(m=u.next())!=null;){if(m===h&&!g)return!1;g=!g&&m==="\\"}return g}function d(u,h){for(var g=!1,m;(m=u.next())!=null;){if(m==="/"&&g){h.tokenize=null;break}g=m==="*"}return"comment"}return{name:"gas",startState:function(){return{tokenize:null}},token:function(u,h){if(h.tokenize)return h.tokenize(u,h);if(u.eatSpace())return null;var g,m,v=u.next();if(v==="/"&&u.eat("*"))return h.tokenize=d,d(u,h);if(v===n)return u.skipToEnd(),"comment";if(v==='"')return l(u,'"'),"string";if(v===".")return u.eatWhile(/\w/),m=u.current().toLowerCase(),g=r[m],g||null;if(v==="=")return u.eatWhile(/\w/),"tag";if(v==="{"||v==="}")return"bracket";if(/\d/.test(v))return v==="0"&&u.eat("x")?(u.eatWhile(/[0-9a-fA-F]/),"number"):(u.eatWhile(/\d/),"number");if(/\w/.test(v))return u.eatWhile(/\w/),u.eat(":")?"tag":(m=u.current().toLowerCase(),g=o[m],g||null);for(var f=0;f]*>?/)?"variable":(e.next(),e.eatWhile(/[^@"<#]/),null)}},GFr=Object.freeze(Object.defineProperty({__proto__:null,gherkin:XFr},Symbol.toStringTag,{value:"Module"}));function $pe(e){for(var t={},n=e.split(" "),r=0;r"))return Hm="->",null;if(/[+\-*&%=<>!?|\/~]/.test(n))return e.eatWhile(/[+\-*&%=<>|~]/),"operator";if(e.eatWhile(/[\w\$_]/),n=="@")return e.eatWhile(/[\w\$_\.]/),"meta";if(t.lastToken==".")return"property";if(e.eat(":"))return Hm="proplabel","property";var r=e.current();return KFr.propertyIsEnumerable(r)?"atom":YFr.propertyIsEnumerable(r)?(ZFr.propertyIsEnumerable(r)?Hm="newstatement":qFr.propertyIsEnumerable(r)&&(Hm="standalone"),"keyword"):"variable"}$Ke.isBase=!0;function l4t(e,t,n){var r=!1;if(e!="/"&&t.eat(e))if(t.eat(e))r=!0;else return"string";function o(s,a){for(var l=!1,d,u=!r;(d=s.next())!=null;){if(d==e&&!l){if(!r)break;if(s.match(e+e)){u=!0;break}}if(e=='"'&&d=="$"&&!l){if(s.eat("{"))return a.tokenize.push(JFr()),"string";if(s.match(/^\w/,!1))return a.tokenize.push(eNr),"string"}l=!l&&d=="\\"}return u&&a.tokenize.pop(),"string"}return n.tokenize.push(o),o(t,n)}function JFr(){var e=1;function t(n,r){if(n.peek()=="}"){if(e--,e==0)return r.tokenize.pop(),r.tokenize[r.tokenize.length-1](n,r)}else n.peek()=="{"&&e++;return $Ke(n,r)}return t.isBase=!0,t}function eNr(e,t){var n=e.match(/^(\.|[\w\$_]+)/);return(!n||!e.match(n[0]=="."?/^[\w$_]/:/^\./))&&t.tokenize.pop(),n?n[0]=="."?null:"variable":t.tokenize[t.tokenize.length-1](e,t)}function c4t(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize.pop();break}n=r=="*"}return"comment"}function mFe(e,t){return!e||e=="operator"||e=="->"||/[\.\[\{\(,;:]/.test(e)||e=="newstatement"||e=="keyword"||e=="proplabel"||e=="standalone"&&!t}function Yxn(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function jae(e,t,n){return e.context=new Yxn(e.indented,t,n,null,e.context)}function c7(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const tNr={name:"groovy",startState:function(e){return{tokenize:[$Ke],context:new Yxn(-e,0,"top",!1),indented:0,startOfLine:!0,lastToken:null}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,n.type=="statement"&&!mFe(t.lastToken,!0)&&(c7(t),n=t.context)),e.eatSpace())return null;Hm=null;var r=t.tokenize[t.tokenize.length-1](e,t);if(r=="comment")return r;if(n.align==null&&(n.align=!0),(Hm==";"||Hm==":")&&n.type=="statement")c7(t);else if(Hm=="->"&&n.type=="statement"&&n.prev.type=="}")c7(t),t.context.align=!1;else if(Hm=="{")jae(t,e.column(),"}");else if(Hm=="[")jae(t,e.column(),"]");else if(Hm=="(")jae(t,e.column(),")");else if(Hm=="}"){for(;n.type=="statement";)n=c7(t);for(n.type=="}"&&(n=c7(t));n.type=="statement";)n=c7(t)}else Hm==n.type?c7(t):(n.type=="}"||n.type=="top"||n.type=="statement"&&Hm=="newstatement")&&jae(t,e.column(),"statement");return t.startOfLine=!1,t.lastToken=Hm||r,r},indent:function(e,t,n){if(!e.tokenize[e.tokenize.length-1].isBase)return null;var r=t&&t.charAt(0),o=e.context;o.type=="statement"&&!mFe(e.lastToken,!0)&&(o=o.prev);var s=r==o.type;return o.type=="statement"?o.indented+(r=="{"?0:n.unit):o.align?o.column+(s?0:1):o.indented+(s?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}},nNr=Object.freeze(Object.defineProperty({__proto__:null,groovy:tNr},Symbol.toStringTag,{value:"Module"}));function kFe(e,t,n){return t(n),n(e,t)}var iNr=/[a-z_]/,rNr=/[A-Z]/,g8e=/\d/,oNr=/[0-9A-Fa-f]/,sNr=/[0-7]/,d4t=/[a-z_A-Z0-9'\xa1-\uffff]/,m8e=/[-!#$%&*+.\/<=>?@\\^|~:]/,aNr=/[(),;[\]`{}]/,Zxn=/[ \t\v\f]/;function jW(e,t){if(e.eatWhile(Zxn))return null;var n=e.next();if(aNr.test(n)){if(n=="{"&&e.eat("-")){var r="comment";return e.eat("#")&&(r="meta"),kFe(e,t,qxn(r,1))}return null}if(n=="'")return e.eat("\\"),e.next(),e.eat("'")?"string":"error";if(n=='"')return kFe(e,t,Kxn);if(rNr.test(n))return e.eatWhile(d4t),e.eat(".")?"qualifier":"type";if(iNr.test(n))return e.eatWhile(d4t),"variable";if(g8e.test(n)){if(n=="0"){if(e.eat(/[xX]/))return e.eatWhile(oNr),"integer";if(e.eat(/[oO]/))return e.eatWhile(sNr),"number"}e.eatWhile(g8e);var r="number";return e.match(/^\.\d+/)&&(r="number"),e.eat(/[eE]/)&&(r="number",e.eat(/[-+]/),e.eatWhile(g8e)),r}return n=="."&&e.eat(".")?"keyword":m8e.test(n)?n=="-"&&e.eat(/-/)&&(e.eatWhile(/-/),!e.eat(m8e))?(e.skipToEnd(),"comment"):(e.eatWhile(m8e),"variable"):"error"}function qxn(e,t){return t==0?jW:function(n,r){for(var o=t;!n.eol();){var s=n.next();if(s=="{"&&n.eat("-"))++o;else if(s=="-"&&n.eat("}")&&(--o,o==0))return r(jW),e}return r(qxn(e,o)),e}}function Kxn(e,t){for(;!e.eol();){var n=e.next();if(n=='"')return t(jW),"string";if(n=="\\"){if(e.eol()||e.eat(Zxn))return t(lNr),"string";e.eat("&")||e.next()}}return t(jW),"error"}function lNr(e,t){return e.eat("\\")?kFe(e,t,Kxn):(e.next(),t(jW),"error")}var u4t=function(){var e={};function t(n){return function(){for(var r=0;r","@","~","=>"),t("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),t("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True"),t("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3"),e}();const cNr={name:"haskell",startState:function(){return{f:jW}},copyState:function(e){return{f:e.f}},token:function(e,t){var n=t.f(e,function(o){t.f=o}),r=e.current();return u4t.hasOwnProperty(r)?u4t[r]:n},languageData:{commentTokens:{line:"--",block:{open:"{-",close:"-}"}}}},dNr=Object.freeze(Object.defineProperty({__proto__:null,haskell:cNr},Symbol.toStringTag,{value:"Module"}));function Bh(e){return{type:e,style:"keyword"}}var h4t=Bh("keyword a"),k8e=Bh("keyword b"),Z$=Bh("keyword c"),uNr=Bh("operator"),v8e={type:"atom",style:"atom"},Wae={type:"attribute",style:"attribute"},Ym=Bh("typedef"),f4t={if:h4t,while:h4t,else:k8e,do:k8e,try:k8e,return:Z$,break:Z$,continue:Z$,new:Z$,throw:Z$,var:Bh("var"),inline:Wae,static:Wae,using:Bh("import"),public:Wae,private:Wae,cast:Bh("cast"),import:Bh("import"),macro:Bh("macro"),function:Bh("function"),catch:Bh("catch"),untyped:Bh("untyped"),callback:Bh("cb"),for:Bh("for"),switch:Bh("switch"),case:Bh("case"),default:Bh("default"),in:uNr,never:Bh("property_access"),trace:Bh("trace"),class:Ym,abstract:Ym,enum:Ym,interface:Ym,typedef:Ym,extends:Ym,implements:Ym,dynamic:Ym,true:v8e,false:v8e,null:v8e},A8e=/[+\-*&%=<>!?|]/;function g4t(e,t,n){return t.tokenize=n,n(e,t)}function Jxn(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r==t&&!n)return!0;n=!n&&r=="\\"}}var Ym,e5n;function yk(e,t,n){return Ym=e,e5n=n,t}function ime(e,t){var n=e.next();if(n=='"'||n=="'")return g4t(e,t,hNr(n));if(/[\[\]{}\(\),;\:\.]/.test(n))return yk(n);if(n=="0"&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),yk("number","number");if(/\d/.test(n)||n=="-"&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),yk("number","number");if(t.reAllowed&&n=="~"&&e.eat(/\//))return Jxn(e,"/"),e.eatWhile(/[gimsu]/),yk("regexp","string.special");if(n=="/")return e.eat("*")?g4t(e,t,fNr):e.eat("/")?(e.skipToEnd(),yk("comment","comment")):(e.eatWhile(A8e),yk("operator",null,e.current()));if(n=="#")return e.skipToEnd(),yk("conditional","meta");if(n=="@")return e.eat(/:/),e.eatWhile(/[\w_]/),yk("metadata","meta");if(A8e.test(n))return e.eatWhile(A8e),yk("operator",null,e.current());var r;if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),r=e.current(),yk("type","type",r);e.eatWhile(/[\w_]/);var r=e.current(),o=f4t.propertyIsEnumerable(r)&&f4t[r];return o&&t.kwAllowed?yk(o.type,o.style,r):yk("variable","variable",r)}function hNr(e){return function(t,n){return Jxn(t,e)&&(n.tokenize=ime),yk("string","string")}}function fNr(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=ime;break}n=r=="*"}return yk("comment","comment")}var t5n={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function n5n(e,t,n,r,o,s){this.indented=e,this.column=t,this.type=n,this.prev=o,this.info=s,r!=null&&(this.align=r)}function gNr(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function mNr(e,t,n,r,o){var s=e.cc;for(Rd.state=e,Rd.stream=o,Rd.marked=null,Rd.cc=s,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var a=s.length?s.pop():SS;if(a(n,r)){for(;s.length&&s[s.length-1].lex;)s.pop()();return Rd.marked?Rd.marked:n=="variable"&&gNr(e,r)?"variableName.local":n=="variable"&&kNr(e,r)?"variableName.special":t}}}function kNr(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r=0;e--)Rd.cc.push(arguments[e])}function pr(){return x8.apply(null,arguments),!0}function m4t(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function Xpe(e){var t=Rd.state;if(t.context){if(Rd.marked="def",m4t(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(m4t(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var vNr={name:"this",next:null};function vFe(){Rd.state.context||(Rd.state.localVars=vNr),Rd.state.context={prev:Rd.state.context,vars:Rd.state.localVars}}function rme(){Rd.state.localVars=Rd.state.context.vars,Rd.state.context=Rd.state.context.prev}rme.lex=!0;function gf(e,t){var n=function(){var r=Rd.state;r.lexical=new n5n(r.indented,Rd.stream.column(),e,null,r.lexical,t)};return n.lex=!0,n}function nh(){var e=Rd.state;e.lexical.prev&&(e.lexical.type==")"&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}nh.lex=!0;function i0(e){function t(n){return n==e?pr():e==";"?x8():pr(t)}return t}function SS(e){return e=="@"?pr(AFe):e=="var"?pr(gf("vardef"),XKe,i0(";"),nh):e=="keyword a"?pr(gf("form"),W4,SS,nh):e=="keyword b"?pr(gf("form"),SS,nh):e=="{"?pr(gf("}"),vFe,pFe,nh,rme):e==";"?pr():e=="attribute"?pr(r5n):e=="function"?pr(IK):e=="for"?pr(gf("form"),i0("("),gf(")"),yNr,i0(")"),nh,SS,nh):e=="variable"?pr(gf("stat"),bNr):e=="switch"?pr(gf("form"),W4,gf("}","switch"),i0("{"),pFe,nh,nh):e=="case"?pr(W4,i0(":")):e=="default"?pr(i0(":")):e=="catch"?pr(gf("form"),vFe,i0("("),a5n,i0(")"),SS,nh,rme):e=="import"?pr(o5n,i0(";")):e=="typedef"?pr(pNr):x8(gf("stat"),W4,i0(";"),nh)}function W4(e){return t5n.hasOwnProperty(e)||e=="type"?pr(yO):e=="function"?pr(IK):e=="keyword c"?pr(p8e):e=="("?pr(gf(")"),p8e,i0(")"),nh,yO):e=="operator"?pr(W4):e=="["?pr(gf("]"),WW(p8e,"]"),nh,yO):e=="{"?pr(gf("}"),WW(ONr,"}"),nh,yO):pr()}function p8e(e){return e.match(/[;\}\)\],]/)?x8():x8(W4)}function yO(e,t){if(e=="operator"&&/\+\+|--/.test(t))return pr(yO);if(e=="operator"||e==":")return pr(W4);if(e!=";"){if(e=="(")return pr(gf(")"),WW(W4,")"),nh,yO);if(e==".")return pr(wNr,yO);if(e=="[")return pr(gf("]"),W4,i0("]"),nh,yO)}}function r5n(e){if(e=="attribute")return pr(r5n);if(e=="function")return pr(IK);if(e=="var")return pr(XKe)}function AFe(e){if(e==":"||e=="variable")return pr(AFe);if(e=="(")return pr(gf(")"),WW(ANr,")"),nh,SS)}function ANr(e){if(e=="variable")return pr()}function o5n(e,t){if(e=="variable"&&/[A-Z]/.test(t.charAt(0)))return i5n(t),pr();if(e=="variable"||e=="property"||e=="."||t=="*")return pr(o5n)}function pNr(e,t){if(e=="variable"&&/[A-Z]/.test(t.charAt(0)))return i5n(t),pr();if(e=="type"&&/[A-Z]/.test(t.charAt(0)))return pr()}function bNr(e){return e==":"?pr(nh,SS):x8(yO,i0(";"),nh)}function wNr(e){if(e=="variable")return Rd.marked="property",pr()}function ONr(e){if(e=="variable"&&(Rd.marked="property"),t5n.hasOwnProperty(e))return pr(i0(":"),W4)}function WW(e,t){function n(r){return r==","?pr(e,n):r==t?pr():pr(i0(t))}return function(r){return r==t?pr():x8(e,n)}}function pFe(e){return e=="}"?pr():x8(SS,pFe)}function XKe(e,t){return e=="variable"?(Xpe(t),pr(Gpe,s5n)):pr()}function s5n(e,t){if(t=="=")return pr(W4,s5n);if(e==",")return pr(XKe)}function yNr(e,t){return e=="variable"?(Xpe(t),pr(CNr,W4)):x8()}function CNr(e,t){if(t=="in")return pr()}function IK(e,t){if(e=="variable"||e=="type")return Xpe(t),pr(IK);if(t=="new")return pr(IK);if(e=="(")return pr(gf(")"),vFe,WW(a5n,")"),nh,Gpe,SS,rme)}function Gpe(e){if(e==":")return pr(_Nr)}function _Nr(e){if(e=="type"||e=="variable")return pr();if(e=="{")return pr(gf("}"),WW(SNr,"}"),nh)}function SNr(e){if(e=="variable")return pr(Gpe)}function a5n(e,t){if(e=="variable")return Xpe(t),pr(Gpe)}const LNr={name:"haxe",startState:function(e){var t=["Int","Float","String","Void","Std","Bool","Dynamic","Array"],n={tokenize:ime,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new n5n(-e,0,"block",!1),importedtypes:t,context:null,indented:0};return n},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return Ym=="comment"?n:(t.reAllowed=!!(Ym=="operator"||Ym=="keyword c"||Ym.match(/^[\[{}\(,;:]$/)),t.kwAllowed=Ym!=".",mNr(t,n,Ym,e5n,e))},indent:function(e,t,n){if(e.tokenize!=ime)return 0;var r=t&&t.charAt(0),o=e.lexical;o.type=="stat"&&r=="}"&&(o=o.prev);var s=o.type,a=r==s;return s=="vardef"?o.indented+4:s=="form"&&r=="{"?o.indented:s=="stat"||s=="form"?o.indented+n.unit:o.info=="switch"&&!a?o.indented+(/^(?:case|default)\b/.test(t)?n.unit:2*n.unit):o.align?o.column+(a?0:1):o.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},xNr={name:"hxml",startState:function(){return{define:!1,inString:!1}},token:function(e,t){var o=e.peek(),n=e.sol();if(o=="#")return e.skipToEnd(),"comment";if(n&&o=="-"){var r="variable-2";return e.eat(/-/),e.peek()=="-"&&(e.eat(/-/),r="keyword a"),e.peek()=="D"&&(e.eat(/[D]/),r="keyword c",t.define=!0),e.eatWhile(/[A-Z]/i),r}var o=e.peek();return t.inString==!1&&o=="'"&&(t.inString=!0,e.next()),t.inString==!0?(e.skipTo("'")||e.skipToEnd(),e.peek()=="'"&&(e.next(),t.inString=!1),"string"):(e.next(),null)},languageData:{commentTokens:{line:"#"}}},k4t=Object.freeze(Object.defineProperty({__proto__:null,haxe:LNr,hxml:xNr},Symbol.toStringTag,{value:"Module"}));function GKe(e,t){return e.skipToEnd(),t.cur=Ype,"error"}function ENr(e,t){return e.match(/^HTTP\/\d\.\d/)?(t.cur=TNr,"keyword"):e.match(/^[A-Z]+/)&&/[ \t]/.test(e.peek())?(t.cur=DNr,"keyword"):GKe(e,t)}function TNr(e,t){var n=e.match(/^\d+/);if(!n)return GKe(e,t);t.cur=QNr;var r=Number(n[0]);return r>=100&&r<400?"atom":"error"}function QNr(e,t){return e.skipToEnd(),t.cur=Ype,null}function DNr(e,t){return e.eatWhile(/\S/),t.cur=BNr,"string.special"}function BNr(e,t){return e.match(/^HTTP\/\d\.\d$/)?(t.cur=Ype,"keyword"):GKe(e,t)}function Ype(e){return e.sol()&&!e.eat(/[ \t]/)?e.match(/^.*?:/)?"atom":(e.skipToEnd(),"error"):(e.skipToEnd(),"string")}function v4t(e){return e.skipToEnd(),null}const RNr={name:"http",token:function(e,t){var n=t.cur;return n!=Ype&&n!=v4t&&e.eatSpace()?null:n(e,t)},blankLine:function(e){e.cur=v4t},startState:function(){return{cur:ENr}}},INr=Object.freeze(Object.defineProperty({__proto__:null,http:RNr},Symbol.toStringTag,{value:"Module"}));function l5n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var c5n=["a_correlate","abs","acos","adapt_hist_equal","alog","alog2","alog10","amoeba","annotate","app_user_dir","app_user_dir_query","arg_present","array_equal","array_indices","arrow","ascii_template","asin","assoc","atan","axis","axis","bandpass_filter","bandreject_filter","barplot","bar_plot","beseli","beselj","beselk","besely","beta","biginteger","bilinear","bin_date","binary_template","bindgen","binomial","bit_ffs","bit_population","blas_axpy","blk_con","boolarr","boolean","boxplot","box_cursor","breakpoint","broyden","bubbleplot","butterworth","bytarr","byte","byteorder","bytscl","c_correlate","calendar","caldat","call_external","call_function","call_method","call_procedure","canny","catch","cd","cdf","ceil","chebyshev","check_math","chisqr_cvf","chisqr_pdf","choldc","cholsol","cindgen","cir_3pnt","clipboard","close","clust_wts","cluster","cluster_tree","cmyk_convert","code_coverage","color_convert","color_exchange","color_quan","color_range_map","colorbar","colorize_sample","colormap_applicable","colormap_gradient","colormap_rotation","colortable","comfit","command_line_args","common","compile_opt","complex","complexarr","complexround","compute_mesh_normals","cond","congrid","conj","constrained_min","contour","contour","convert_coord","convol","convol_fft","coord2to3","copy_lun","correlate","cos","cosh","cpu","cramer","createboxplotdata","create_cursor","create_struct","create_view","crossp","crvlength","ct_luminance","cti_test","cursor","curvefit","cv_coord","cvttobm","cw_animate","cw_animate_getp","cw_animate_load","cw_animate_run","cw_arcball","cw_bgroup","cw_clr_index","cw_colorsel","cw_defroi","cw_field","cw_filesel","cw_form","cw_fslider","cw_light_editor","cw_light_editor_get","cw_light_editor_set","cw_orient","cw_palette_editor","cw_palette_editor_get","cw_palette_editor_set","cw_pdmenu","cw_rgbslider","cw_tmpl","cw_zoom","db_exists","dblarr","dcindgen","dcomplex","dcomplexarr","define_key","define_msgblk","define_msgblk_from_file","defroi","defsysv","delvar","dendro_plot","dendrogram","deriv","derivsig","determ","device","dfpmin","diag_matrix","dialog_dbconnect","dialog_message","dialog_pickfile","dialog_printersetup","dialog_printjob","dialog_read_image","dialog_write_image","dictionary","digital_filter","dilate","dindgen","dissolve","dist","distance_measure","dlm_load","dlm_register","doc_library","double","draw_roi","edge_dog","efont","eigenql","eigenvec","ellipse","elmhes","emboss","empty","enable_sysrtn","eof","eos","erase","erf","erfc","erfcx","erode","errorplot","errplot","estimator_filter","execute","exit","exp","expand","expand_path","expint","extract","extract_slice","f_cvf","f_pdf","factorial","fft","file_basename","file_chmod","file_copy","file_delete","file_dirname","file_expand_path","file_gunzip","file_gzip","file_info","file_lines","file_link","file_mkdir","file_move","file_poll_input","file_readlink","file_same","file_search","file_tar","file_test","file_untar","file_unzip","file_which","file_zip","filepath","findgen","finite","fix","flick","float","floor","flow3","fltarr","flush","format_axis_values","forward_function","free_lun","fstat","fulstr","funct","function","fv_test","fx_root","fz_roots","gamma","gamma_ct","gauss_cvf","gauss_pdf","gauss_smooth","gauss2dfit","gaussfit","gaussian_function","gaussint","get_drive_list","get_dxf_objects","get_kbrd","get_login_info","get_lun","get_screen_size","getenv","getwindows","greg2jul","grib","grid_input","grid_tps","grid3","griddata","gs_iter","h_eq_ct","h_eq_int","hanning","hash","hdf","hdf5","heap_free","heap_gc","heap_nosave","heap_refcount","heap_save","help","hilbert","hist_2d","hist_equal","histogram","hls","hough","hqr","hsv","i18n_multibytetoutf8","i18n_multibytetowidechar","i18n_utf8tomultibyte","i18n_widechartomultibyte","ibeta","icontour","iconvertcoord","idelete","identity","idl_base64","idl_container","idl_validname","idlexbr_assistant","idlitsys_createtool","idlunit","iellipse","igamma","igetcurrent","igetdata","igetid","igetproperty","iimage","image","image_cont","image_statistics","image_threshold","imaginary","imap","indgen","int_2d","int_3d","int_tabulated","intarr","interpol","interpolate","interval_volume","invert","ioctl","iopen","ir_filter","iplot","ipolygon","ipolyline","iputdata","iregister","ireset","iresolve","irotate","isa","isave","iscale","isetcurrent","isetproperty","ishft","isocontour","isosurface","isurface","itext","itranslate","ivector","ivolume","izoom","journal","json_parse","json_serialize","jul2greg","julday","keyword_set","krig2d","kurtosis","kw_test","l64indgen","la_choldc","la_cholmprove","la_cholsol","la_determ","la_eigenproblem","la_eigenql","la_eigenvec","la_elmhes","la_gm_linear_model","la_hqr","la_invert","la_least_square_equality","la_least_squares","la_linear_equation","la_ludc","la_lumprove","la_lusol","la_svd","la_tridc","la_trimprove","la_triql","la_trired","la_trisol","label_date","label_region","ladfit","laguerre","lambda","lambdap","lambertw","laplacian","least_squares_filter","leefilt","legend","legendre","linbcg","lindgen","linfit","linkimage","list","ll_arc_distance","lmfit","lmgr","lngamma","lnp_test","loadct","locale_get","logical_and","logical_or","logical_true","lon64arr","lonarr","long","long64","lsode","lu_complex","ludc","lumprove","lusol","m_correlate","machar","make_array","make_dll","make_rt","map","mapcontinents","mapgrid","map_2points","map_continents","map_grid","map_image","map_patch","map_proj_forward","map_proj_image","map_proj_info","map_proj_init","map_proj_inverse","map_set","matrix_multiply","matrix_power","max","md_test","mean","meanabsdev","mean_filter","median","memory","mesh_clip","mesh_decimate","mesh_issolid","mesh_merge","mesh_numtriangles","mesh_obj","mesh_smooth","mesh_surfacearea","mesh_validate","mesh_volume","message","min","min_curve_surf","mk_html_help","modifyct","moment","morph_close","morph_distance","morph_gradient","morph_hitormiss","morph_open","morph_thin","morph_tophat","multi","n_elements","n_params","n_tags","ncdf","newton","noise_hurl","noise_pick","noise_scatter","noise_slur","norm","obj_class","obj_destroy","obj_hasmethod","obj_isa","obj_new","obj_valid","objarr","on_error","on_ioerror","online_help","openr","openu","openw","oplot","oploterr","orderedhash","p_correlate","parse_url","particle_trace","path_cache","path_sep","pcomp","plot","plot3d","plot","plot_3dbox","plot_field","ploterr","plots","polar_contour","polar_surface","polyfill","polyshade","pnt_line","point_lun","polarplot","poly","poly_2d","poly_area","poly_fit","polyfillv","polygon","polyline","polywarp","popd","powell","pref_commit","pref_get","pref_set","prewitt","primes","print","printf","printd","pro","product","profile","profiler","profiles","project_vol","ps_show_fonts","psafm","pseudo","ptr_free","ptr_new","ptr_valid","ptrarr","pushd","qgrid3","qhull","qromb","qromo","qsimp","query_*","query_ascii","query_bmp","query_csv","query_dicom","query_gif","query_image","query_jpeg","query_jpeg2000","query_mrsid","query_pict","query_png","query_ppm","query_srf","query_tiff","query_video","query_wav","r_correlate","r_test","radon","randomn","randomu","ranks","rdpix","read","readf","read_ascii","read_binary","read_bmp","read_csv","read_dicom","read_gif","read_image","read_interfile","read_jpeg","read_jpeg2000","read_mrsid","read_pict","read_png","read_ppm","read_spr","read_srf","read_sylk","read_tiff","read_video","read_wav","read_wave","read_x11_bitmap","read_xwd","reads","readu","real_part","rebin","recall_commands","recon3","reduce_colors","reform","region_grow","register_cursor","regress","replicate","replicate_inplace","resolve_all","resolve_routine","restore","retall","return","reverse","rk4","roberts","rot","rotate","round","routine_filepath","routine_info","rs_test","s_test","save","savgol","scale3","scale3d","scatterplot","scatterplot3d","scope_level","scope_traceback","scope_varfetch","scope_varname","search2d","search3d","sem_create","sem_delete","sem_lock","sem_release","set_plot","set_shading","setenv","sfit","shade_surf","shade_surf_irr","shade_volume","shift","shift_diff","shmdebug","shmmap","shmunmap","shmvar","show3","showfont","signum","simplex","sin","sindgen","sinh","size","skewness","skip_lun","slicer3","slide_image","smooth","sobel","socket","sort","spawn","sph_4pnt","sph_scat","spher_harm","spl_init","spl_interp","spline","spline_p","sprsab","sprsax","sprsin","sprstp","sqrt","standardize","stddev","stop","strarr","strcmp","strcompress","streamline","streamline","stregex","stretch","string","strjoin","strlen","strlowcase","strmatch","strmessage","strmid","strpos","strput","strsplit","strtrim","struct_assign","struct_hide","strupcase","surface","surface","surfr","svdc","svdfit","svsol","swap_endian","swap_endian_inplace","symbol","systime","t_cvf","t_pdf","t3d","tag_names","tan","tanh","tek_color","temporary","terminal_size","tetra_clip","tetra_surface","tetra_volume","text","thin","thread","threed","tic","time_test2","timegen","timer","timestamp","timestamptovalues","tm_test","toc","total","trace","transpose","tri_surf","triangulate","trigrid","triql","trired","trisol","truncate_lun","ts_coef","ts_diff","ts_fcast","ts_smooth","tv","tvcrs","tvlct","tvrd","tvscl","typename","uindgen","uint","uintarr","ul64indgen","ulindgen","ulon64arr","ulonarr","ulong","ulong64","uniq","unsharp_mask","usersym","value_locate","variance","vector","vector_field","vel","velovect","vert_t3d","voigt","volume","voronoi","voxel_proj","wait","warp_tri","watershed","wdelete","wf_draw","where","widget_base","widget_button","widget_combobox","widget_control","widget_displaycontextmenu","widget_draw","widget_droplist","widget_event","widget_info","widget_label","widget_list","widget_propertysheet","widget_slider","widget_tab","widget_table","widget_text","widget_tree","widget_tree_move","widget_window","wiener_filter","window","window","write_bmp","write_csv","write_gif","write_image","write_jpeg","write_jpeg2000","write_nrif","write_pict","write_png","write_ppm","write_spr","write_srf","write_sylk","write_tiff","write_video","write_wav","write_wave","writeu","wset","wshow","wtn","wv_applet","wv_cwt","wv_cw_wavelet","wv_denoise","wv_dwt","wv_fn_coiflet","wv_fn_daubechies","wv_fn_gaussian","wv_fn_haar","wv_fn_morlet","wv_fn_paul","wv_fn_symlet","wv_import_data","wv_import_wavelet","wv_plot3d_wps","wv_plot_multires","wv_pwt","wv_tool_denoise","xbm_edit","xdisplayfile","xdxf","xfont","xinteranimate","xloadct","xmanager","xmng_tmpl","xmtool","xobjview","xobjview_rotate","xobjview_write_image","xpalette","xpcolor","xplot3d","xregistered","xroi","xsq_test","xsurface","xvaredit","xvolume","xvolume_rotate","xvolume_write_image","xyouts","zlib_compress","zlib_uncompress","zoom","zoom_24"],MNr=l5n(c5n),d5n=["begin","end","endcase","endfor","endwhile","endif","endrep","endforeach","break","case","continue","for","foreach","goto","if","then","else","repeat","until","switch","while","do","pro","function"],PNr=l5n(d5n),FNr=new RegExp("^[_a-z¡-￿][_a-z0-9¡-￿]*","i"),NNr=/[+\-*&=<>\/@#~$]/,UNr=new RegExp("(and|or|eq|lt|le|gt|ge|ne|not)","i");function jNr(e){return e.eatSpace()?null:e.match(";")?(e.skipToEnd(),"comment"):e.match(/^[0-9\.+-]/,!1)&&(e.match(/^[+-]?0x[0-9a-fA-F]+/)||e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(PNr)?"keyword":e.match(MNr)?"builtin":e.match(FNr)?"variable":e.match(NNr)||e.match(UNr)?"operator":(e.next(),null)}const WNr={name:"idl",token:function(e){return jNr(e)},languageData:{autocomplete:c5n.concat(d5n)}},VNr=Object.freeze(Object.defineProperty({__proto__:null,idl:WNr},Symbol.toStringTag,{value:"Module"}));function Zpe(e){var t=e.statementIndent,n=e.jsonld,r=e.json||n,o=e.typescript,s=e.wordCharacters||/[\w$\xa1-\uffff]/,a=function(){function Ue(Wo){return{type:Wo,style:"keyword"}}var ut=Ue("keyword a"),Nt=Ue("keyword b"),wn=Ue("keyword c"),Cn=Ue("keyword d"),wr=Ue("operator"),Kr={type:"atom",style:"atom"};return{if:Ue("if"),while:ut,with:ut,else:Nt,do:Nt,try:Nt,finally:Nt,return:Cn,break:Cn,continue:Cn,new:Ue("new"),delete:wn,void:wn,throw:wn,debugger:Ue("debugger"),var:Ue("var"),const:Ue("var"),let:Ue("var"),function:Ue("function"),catch:Ue("catch"),for:Ue("for"),switch:Ue("switch"),case:Ue("case"),default:Ue("default"),in:wr,typeof:wr,instanceof:wr,true:Kr,false:Kr,null:Kr,undefined:Kr,NaN:Kr,Infinity:Kr,this:Ue("this"),class:Ue("class"),super:Ue("atom"),yield:wn,export:Ue("export"),import:Ue("import"),extends:wn,await:wn}}(),l=/[+\-*&%=<>!?|~^@]/,d=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function u(Ue){for(var ut=!1,Nt,wn=!1;(Nt=Ue.next())!=null;){if(!ut){if(Nt=="/"&&!wn)return;Nt=="["?wn=!0:wn&&Nt=="]"&&(wn=!1)}ut=!ut&&Nt=="\\"}}var h,g;function m(Ue,ut,Nt){return h=Ue,g=Nt,ut}function v(Ue,ut){var Nt=Ue.next();if(Nt=='"'||Nt=="'")return ut.tokenize=f(Nt),ut.tokenize(Ue,ut);if(Nt=="."&&Ue.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return m("number","number");if(Nt=="."&&Ue.match(".."))return m("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(Nt))return m(Nt);if(Nt=="="&&Ue.eat(">"))return m("=>","operator");if(Nt=="0"&&Ue.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return m("number","number");if(/\d/.test(Nt))return Ue.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),m("number","number");if(Nt=="/")return Ue.eat("*")?(ut.tokenize=k,k(Ue,ut)):Ue.eat("/")?(Ue.skipToEnd(),m("comment","comment")):wi(Ue,ut,1)?(u(Ue),Ue.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),m("regexp","string.special")):(Ue.eat("="),m("operator","operator",Ue.current()));if(Nt=="`")return ut.tokenize=A,A(Ue,ut);if(Nt=="#"&&Ue.peek()=="!")return Ue.skipToEnd(),m("meta","meta");if(Nt=="#"&&Ue.eatWhile(s))return m("variable","property");if(Nt=="<"&&Ue.match("!--")||Nt=="-"&&Ue.match("->")&&!/\S/.test(Ue.string.slice(0,Ue.start)))return Ue.skipToEnd(),m("comment","comment");if(l.test(Nt))return(Nt!=">"||!ut.lexical||ut.lexical.type!=">")&&(Ue.eat("=")?(Nt=="!"||Nt=="=")&&Ue.eat("="):/[<>*+\-|&?]/.test(Nt)&&(Ue.eat(Nt),Nt==">"&&Ue.eat(Nt))),Nt=="?"&&Ue.eat(".")?m("."):m("operator","operator",Ue.current());if(s.test(Nt)){Ue.eatWhile(s);var wn=Ue.current();if(ut.lastType!="."){if(a.propertyIsEnumerable(wn)){var Cn=a[wn];return m(Cn.type,Cn.style,wn)}if(wn=="async"&&Ue.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return m("async","keyword",wn)}return m("variable","variable",wn)}}function f(Ue){return function(ut,Nt){var wn=!1,Cn;if(n&&ut.peek()=="@"&&ut.match(d))return Nt.tokenize=v,m("jsonld-keyword","meta");for(;(Cn=ut.next())!=null&&!(Cn==Ue&&!wn);)wn=!wn&&Cn=="\\";return wn||(Nt.tokenize=v),m("string","string")}}function k(Ue,ut){for(var Nt=!1,wn;wn=Ue.next();){if(wn=="/"&&Nt){ut.tokenize=v;break}Nt=wn=="*"}return m("comment","comment")}function A(Ue,ut){for(var Nt=!1,wn;(wn=Ue.next())!=null;){if(!Nt&&(wn=="`"||wn=="$"&&Ue.eat("{"))){ut.tokenize=v;break}Nt=!Nt&&wn=="\\"}return m("quasi","string.special",Ue.current())}var p="([{}])";function b(Ue,ut){ut.fatArrowAt&&(ut.fatArrowAt=null);var Nt=Ue.string.indexOf("=>",Ue.start);if(!(Nt<0)){if(o){var wn=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(Ue.string.slice(Ue.start,Nt));wn&&(Nt=wn.index)}for(var Cn=0,wr=!1,Kr=Nt-1;Kr>=0;--Kr){var Wo=Ue.string.charAt(Kr),pl=p.indexOf(Wo);if(pl>=0&&pl<3){if(!Cn){++Kr;break}if(--Cn==0){Wo=="("&&(wr=!0);break}}else if(pl>=3&&pl<6)++Cn;else if(s.test(Wo))wr=!0;else if(/["'\/`]/.test(Wo))for(;;--Kr){if(Kr==0)return;var pu=Ue.string.charAt(Kr-1);if(pu==Wo&&Ue.string.charAt(Kr-2)!="\\"){Kr--;break}}else if(wr&&!Cn){++Kr;break}}wr&&!Cn&&(ut.fatArrowAt=Kr)}}var w={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function O(Ue,ut,Nt,wn,Cn,wr){this.indented=Ue,this.column=ut,this.type=Nt,this.prev=Cn,this.info=wr,wn!=null&&(this.align=wn)}function y(Ue,ut){for(var Nt=Ue.localVars;Nt;Nt=Nt.next)if(Nt.name==ut)return!0;for(var wn=Ue.context;wn;wn=wn.prev)for(var Nt=wn.vars;Nt;Nt=Nt.next)if(Nt.name==ut)return!0}function C(Ue,ut,Nt,wn,Cn){var wr=Ue.cc;for(_.state=Ue,_.stream=Cn,_.marked=null,_.cc=wr,_.style=ut,Ue.lexical.hasOwnProperty("align")||(Ue.lexical.align=!0);;){var Kr=wr.length?wr.pop():r?q:$;if(Kr(Nt,wn)){for(;wr.length&&wr[wr.length-1].lex;)wr.pop()();return _.marked?_.marked:Nt=="variable"&&y(Ue,wn)?"variableName.local":ut}}}var _={state:null,marked:null,cc:null};function S(){for(var Ue=arguments.length-1;Ue>=0;Ue--)_.cc.push(arguments[Ue])}function L(){return S.apply(null,arguments),!0}function E(Ue,ut){for(var Nt=ut;Nt;Nt=Nt.next)if(Nt.name==Ue)return!0;return!1}function T(Ue){var ut=_.state;if(_.marked="def",ut.context){if(ut.lexical.info=="var"&&ut.context&&ut.context.block){var Nt=D(Ue,ut.context);if(Nt!=null){ut.context=Nt;return}}else if(!E(Ue,ut.localVars)){ut.localVars=new M(Ue,ut.localVars);return}}e.globalVars&&!E(Ue,ut.globalVars)&&(ut.globalVars=new M(Ue,ut.globalVars))}function D(Ue,ut){if(ut)if(ut.block){var Nt=D(Ue,ut.prev);return Nt?Nt==ut.prev?ut:new Q(Nt,ut.vars,!0):null}else return E(Ue,ut.vars)?ut:new Q(ut.prev,new M(Ue,ut.vars),!1);else return null}function P(Ue){return Ue=="public"||Ue=="private"||Ue=="protected"||Ue=="abstract"||Ue=="readonly"}function Q(Ue,ut,Nt){this.prev=Ue,this.vars=ut,this.block=Nt}function M(Ue,ut){this.name=Ue,this.next=ut}var B=new M("this",new M("arguments",null));function R(){_.state.context=new Q(_.state.context,_.state.localVars,!1),_.state.localVars=B}function I(){_.state.context=new Q(_.state.context,_.state.localVars,!0),_.state.localVars=null}R.lex=I.lex=!0;function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}F.lex=!0;function j(Ue,ut){var Nt=function(){var wn=_.state,Cn=wn.indented;if(wn.lexical.type=="stat")Cn=wn.lexical.indented;else for(var wr=wn.lexical;wr&&wr.type==")"&&wr.align;wr=wr.prev)Cn=wr.indented;wn.lexical=new O(Cn,_.stream.column(),Ue,null,wn.lexical,ut)};return Nt.lex=!0,Nt}function W(){var Ue=_.state;Ue.lexical.prev&&(Ue.lexical.type==")"&&(Ue.indented=Ue.lexical.indented),Ue.lexical=Ue.lexical.prev)}W.lex=!0;function H(Ue){function ut(Nt){return Nt==Ue?L():Ue==";"||Nt=="}"||Nt==")"||Nt=="]"?S():L(ut)}return ut}function $(Ue,ut){return Ue=="var"?L(j("vardef",ut),on,H(";"),W):Ue=="keyword a"?L(j("form"),J,$,W):Ue=="keyword b"?L(j("form"),$,W):Ue=="keyword d"?_.stream.match(/^\s*$/,!1)?L():L(j("stat"),se,H(";"),W):Ue=="debugger"?L(H(";")):Ue=="{"?L(j("}"),I,Te,W,F):Ue==";"?L():Ue=="if"?(_.state.lexical.info=="else"&&_.state.cc[_.state.cc.length-1]==W&&_.state.cc.pop()(),L(j("form"),J,$,W,Hr)):Ue=="function"?L(is):Ue=="for"?L(j("form"),I,Bo,$,F,W):Ue=="class"||o&&ut=="interface"?(_.marked="keyword",L(j("form",Ue=="class"?Ue:ut),tr,W)):Ue=="variable"?o&&ut=="declare"?(_.marked="keyword",L($)):o&&(ut=="module"||ut=="enum"||ut=="type")&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword",ut=="enum"?L(bn):ut=="type"?L(Gt,H("operator"),et,H(";")):L(j("form"),pn,H("{"),j("}"),Te,W,W)):o&&ut=="namespace"?(_.marked="keyword",L(j("form"),q,$,W)):o&&ut=="abstract"?(_.marked="keyword",L($)):L(j("stat"),he):Ue=="switch"?L(j("form"),J,H("{"),j("}","switch"),I,Te,W,W,F):Ue=="case"?L(q,H(":")):Ue=="default"?L(H(":")):Ue=="catch"?L(j("form"),R,G,$,W,F):Ue=="export"?L(j("stat"),Kt,W):Ue=="import"?L(j("stat"),Zt,W):Ue=="async"?L($):ut=="@"?L(q,$):S(j("stat"),q,H(";"),W)}function G(Ue){if(Ue=="(")return L(gi,H(")"))}function q(Ue,ut){return oe(Ue,ut,!1)}function re(Ue,ut){return oe(Ue,ut,!0)}function J(Ue){return Ue!="("?S():L(j(")"),se,H(")"),W)}function oe(Ue,ut,Nt){if(_.state.fatArrowAt==_.stream.start){var wn=Nt?Y:z;if(Ue=="(")return L(R,j(")"),me(gi,")"),W,H("=>"),wn,F);if(Ue=="variable")return S(R,pn,H("=>"),wn,F)}var Cn=Nt?ue:le;return w.hasOwnProperty(Ue)?L(Cn):Ue=="function"?L(is,Cn):Ue=="class"||o&&ut=="interface"?(_.marked="keyword",L(j("form"),ri,W)):Ue=="keyword c"||Ue=="async"?L(Nt?re:q):Ue=="("?L(j(")"),se,H(")"),W,Cn):Ue=="operator"||Ue=="spread"?L(Nt?re:q):Ue=="["?L(j("]"),nt,W,Cn):Ue=="{"?_e(Ce,"}",null,Cn):Ue=="quasi"?S(ee,Cn):Ue=="new"?L(ie(Nt)):L()}function se(Ue){return Ue.match(/[;\}\)\],]/)?S():S(q)}function le(Ue,ut){return Ue==","?L(se):ue(Ue,ut,!1)}function ue(Ue,ut,Nt){var wn=Nt==!1?le:ue,Cn=Nt==!1?q:re;if(Ue=="=>")return L(R,Nt?Y:z,F);if(Ue=="operator")return/\+\+|--/.test(ut)||o&&ut=="!"?L(wn):o&&ut=="<"&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?L(j(">"),me(et,">"),W,wn):ut=="?"?L(q,H(":"),Cn):L(Cn);if(Ue=="quasi")return S(ee,wn);if(Ue!=";"){if(Ue=="(")return _e(re,")","call",wn);if(Ue==".")return L(pe,wn);if(Ue=="[")return L(j("]"),se,H("]"),W,wn);if(o&&ut=="as")return _.marked="keyword",L(et,wn);if(Ue=="regexp")return _.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),L(Cn)}}function ee(Ue,ut){return Ue!="quasi"?S():ut.slice(ut.length-2)!="${"?L(ee):L(se,de)}function de(Ue){if(Ue=="}")return _.marked="string.special",_.state.tokenize=A,L(ee)}function z(Ue){return b(_.stream,_.state),S(Ue=="{"?$:q)}function Y(Ue){return b(_.stream,_.state),S(Ue=="{"?$:re)}function ie(Ue){return function(ut){return ut=="."?L(Ue?Z:te):ut=="variable"&&o?L(St,Ue?ue:le):S(Ue?re:q)}}function te(Ue,ut){if(ut=="target")return _.marked="keyword",L(le)}function Z(Ue,ut){if(ut=="target")return _.marked="keyword",L(ue)}function he(Ue){return Ue==":"?L(W,$):S(le,H(";"),W)}function pe(Ue){if(Ue=="variable")return _.marked="property",L()}function Ce(Ue,ut){if(Ue=="async")return _.marked="property",L(Ce);if(Ue=="variable"||_.style=="keyword"){if(_.marked="property",ut=="get"||ut=="set")return L(Qe);var Nt;return o&&_.state.fatArrowAt==_.stream.start&&(Nt=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+Nt[0].length),L(ke)}else{if(Ue=="number"||Ue=="string")return _.marked=n?"property":_.style+" property",L(ke);if(Ue=="jsonld-keyword")return L(ke);if(o&&P(ut))return _.marked="keyword",L(Ce);if(Ue=="[")return L(q,De,H("]"),ke);if(Ue=="spread")return L(re,ke);if(ut=="*")return _.marked="keyword",L(Ce);if(Ue==":")return S(ke)}}function Qe(Ue){return Ue!="variable"?S(ke):(_.marked="property",L(is))}function ke(Ue){if(Ue==":")return L(re);if(Ue=="(")return S(is)}function me(Ue,ut,Nt){function wn(Cn,wr){if(Nt?Nt.indexOf(Cn)>-1:Cn==","){var Kr=_.state.lexical;return Kr.info=="call"&&(Kr.pos=(Kr.pos||0)+1),L(function(Wo,pl){return Wo==ut||pl==ut?S():S(Ue)},wn)}return Cn==ut||wr==ut?L():Nt&&Nt.indexOf(";")>-1?S(Ue):L(H(ut))}return function(Cn,wr){return Cn==ut||wr==ut?L():S(Ue,wn)}}function _e(Ue,ut,Nt){for(var wn=3;wn"),et);if(Ue=="quasi")return S(Ie,gt)}function st(Ue){if(Ue=="=>")return L(et)}function Me(Ue){return Ue.match(/[\}\)\]]/)?L():Ue==","||Ue==";"?L(Me):S(Se,Me)}function Se(Ue,ut){if(Ue=="variable"||_.style=="keyword")return _.marked="property",L(Se);if(ut=="?"||Ue=="number"||Ue=="string")return L(Se);if(Ue==":")return L(et);if(Ue=="[")return L(H("variable"),Ye,H("]"),Se);if(Ue=="(")return S(yi,Se);if(!Ue.match(/[;\}\)\],]/))return L()}function Ie(Ue,ut){return Ue!="quasi"?S():ut.slice(ut.length-2)!="${"?L(Ie):L(et,ze)}function ze(Ue){if(Ue=="}")return _.marked="string.special",_.state.tokenize=A,L(Ie)}function Ze(Ue,ut){return Ue=="variable"&&_.stream.match(/^\s*[?:]/,!1)||ut=="?"?L(Ze):Ue==":"?L(et):Ue=="spread"?L(Ze):S(et)}function gt(Ue,ut){if(ut=="<")return L(j(">"),me(et,">"),W,gt);if(ut=="|"||Ue=="."||ut=="&")return L(et);if(Ue=="[")return L(et,H("]"),gt);if(ut=="extends"||ut=="implements")return _.marked="keyword",L(et);if(ut=="?")return L(et,H(":"),et)}function St(Ue,ut){if(ut=="<")return L(j(">"),me(et,">"),W,gt)}function Pt(){return S(et,dn)}function dn(Ue,ut){if(ut=="=")return L(et)}function on(Ue,ut){return ut=="enum"?(_.marked="keyword",L(bn)):S(pn,De,Pi,rr)}function pn(Ue,ut){if(o&&P(ut))return _.marked="keyword",L(pn);if(Ue=="variable")return T(ut),L();if(Ue=="spread")return L(pn);if(Ue=="[")return _e(Zn,"]");if(Ue=="{")return _e(ni,"}")}function ni(Ue,ut){return Ue=="variable"&&!_.stream.match(/^\s*:/,!1)?(T(ut),L(Pi)):(Ue=="variable"&&(_.marked="property"),Ue=="spread"?L(pn):Ue=="}"?S():Ue=="["?L(q,H("]"),H(":"),ni):L(H(":"),pn,Pi))}function Zn(){return S(pn,Pi)}function Pi(Ue,ut){if(ut=="=")return L(re)}function rr(Ue){if(Ue==",")return L(on)}function Hr(Ue,ut){if(Ue=="keyword b"&&ut=="else")return L(j("form","else"),$,W)}function Bo(Ue,ut){if(ut=="await")return L(Bo);if(Ue=="(")return L(j(")"),lo,W)}function lo(Ue){return Ue=="var"?L(on,Fr):Ue=="variable"?L(Fr):S(Fr)}function Fr(Ue,ut){return Ue==")"?L():Ue==";"?L(Fr):ut=="in"||ut=="of"?(_.marked="keyword",L(q,Fr)):S(q,Fr)}function is(Ue,ut){if(ut=="*")return _.marked="keyword",L(is);if(Ue=="variable")return T(ut),L(is);if(Ue=="(")return L(R,j(")"),me(gi,")"),W,ot,$,F);if(o&&ut=="<")return L(j(">"),me(Pt,">"),W,is)}function yi(Ue,ut){if(ut=="*")return _.marked="keyword",L(yi);if(Ue=="variable")return T(ut),L(yi);if(Ue=="(")return L(R,j(")"),me(gi,")"),W,ot,F);if(o&&ut=="<")return L(j(">"),me(Pt,">"),W,yi)}function Gt(Ue,ut){if(Ue=="keyword"||Ue=="variable")return _.marked="type",L(Gt);if(ut=="<")return L(j(">"),me(Pt,">"),W)}function gi(Ue,ut){return ut=="@"&&L(q,gi),Ue=="spread"?L(gi):o&&P(ut)?(_.marked="keyword",L(gi)):o&&Ue=="this"?L(De,Pi):S(pn,De,Pi)}function ri(Ue,ut){return Ue=="variable"?tr(Ue,ut):ht(Ue,ut)}function tr(Ue,ut){if(Ue=="variable")return T(ut),L(ht)}function ht(Ue,ut){if(ut=="<")return L(j(">"),me(Pt,">"),W,ht);if(ut=="extends"||ut=="implements"||o&&Ue==",")return ut=="implements"&&(_.marked="keyword"),L(o?et:q,ht);if(Ue=="{")return L(j("}"),At,W)}function At(Ue,ut){if(Ue=="async"||Ue=="variable"&&(ut=="static"||ut=="get"||ut=="set"||o&&P(ut))&&_.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return _.marked="keyword",L(At);if(Ue=="variable"||_.style=="keyword")return _.marked="property",L(Mt,At);if(Ue=="number"||Ue=="string")return L(Mt,At);if(Ue=="[")return L(q,De,H("]"),Mt,At);if(ut=="*")return _.marked="keyword",L(At);if(o&&Ue=="(")return S(yi,At);if(Ue==";"||Ue==",")return L(At);if(Ue=="}")return L();if(ut=="@")return L(q,At)}function Mt(Ue,ut){if(ut=="!"||ut=="?")return L(Mt);if(Ue==":")return L(et,Pi);if(ut=="=")return L(re);var Nt=_.state.lexical.prev,wn=Nt&&Nt.info=="interface";return S(wn?yi:is)}function Kt(Ue,ut){return ut=="*"?(_.marked="keyword",L(Ne,H(";"))):ut=="default"?(_.marked="keyword",L(q,H(";"))):Ue=="{"?L(me(qn,"}"),Ne,H(";")):S($)}function qn(Ue,ut){if(ut=="as")return _.marked="keyword",L(H("variable"));if(Ue=="variable")return S(re,qn)}function Zt(Ue){return Ue=="string"?L():Ue=="("?S(q):Ue=="."?S(le):S(so,Un,Ne)}function so(Ue,ut){return Ue=="{"?_e(so,"}"):(Ue=="variable"&&T(ut),ut=="*"&&(_.marked="keyword"),L(dt))}function Un(Ue){if(Ue==",")return L(so,Un)}function dt(Ue,ut){if(ut=="as")return _.marked="keyword",L(so)}function Ne(Ue,ut){if(ut=="from")return _.marked="keyword",L(q)}function nt(Ue){return Ue=="]"?L():S(me(re,"]"))}function bn(){return S(j("form"),pn,H("{"),j("}"),me(hn,"}"),W,W)}function hn(){return S(pn,Pi)}function En(Ue,ut){return Ue.lastType=="operator"||Ue.lastType==","||l.test(ut.charAt(0))||/[,.]/.test(ut.charAt(0))}function wi(Ue,ut,Nt){return ut.tokenize==v&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(ut.lastType)||ut.lastType=="quasi"&&/\{\s*$/.test(Ue.string.slice(0,Ue.pos-Nt))}return{name:e.name,startState:function(Ue){var ut={tokenize:v,lastType:"sof",cc:[],lexical:new O(-Ue,0,"block",!1),localVars:e.localVars,context:e.localVars&&new Q(null,null,!1),indented:0};return e.globalVars&&typeof e.globalVars=="object"&&(ut.globalVars=e.globalVars),ut},token:function(Ue,ut){if(Ue.sol()&&(ut.lexical.hasOwnProperty("align")||(ut.lexical.align=!1),ut.indented=Ue.indentation(),b(Ue,ut)),ut.tokenize!=k&&Ue.eatSpace())return null;var Nt=ut.tokenize(Ue,ut);return h=="comment"?Nt:(ut.lastType=h=="operator"&&(g=="++"||g=="--")?"incdec":h,C(ut,Nt,h,g,Ue))},indent:function(Ue,ut,Nt){if(Ue.tokenize==k||Ue.tokenize==A)return null;if(Ue.tokenize!=v)return 0;var wn=ut&&ut.charAt(0),Cn=Ue.lexical,wr;if(!/^\s*else\b/.test(ut))for(var Kr=Ue.cc.length-1;Kr>=0;--Kr){var Wo=Ue.cc[Kr];if(Wo==W)Cn=Cn.prev;else if(Wo!=Hr&&Wo!=F)break}for(;(Cn.type=="stat"||Cn.type=="form")&&(wn=="}"||(wr=Ue.cc[Ue.cc.length-1])&&(wr==le||wr==ue)&&!/^[,\.=+\-*:?[\(]/.test(ut));)Cn=Cn.prev;t&&Cn.type==")"&&Cn.prev.type=="stat"&&(Cn=Cn.prev);var pl=Cn.type,pu=wn==pl;return pl=="vardef"?Cn.indented+(Ue.lastType=="operator"||Ue.lastType==","?Cn.info.length+1:0):pl=="form"&&wn=="{"?Cn.indented:pl=="form"?Cn.indented+Nt.unit:pl=="stat"?Cn.indented+(En(Ue,ut)?t||Nt.unit:0):Cn.info=="switch"&&!pu&&e.doubleIndentSwitch!=!1?Cn.indented+(/^(?:case|default)\b/.test(ut)?Nt.unit:2*Nt.unit):Cn.align?Cn.column+(pu?0:1):Cn.indented+(pu?0:Nt.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:r?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}const p6=Zpe({name:"javascript"}),zNr=Zpe({name:"json",json:!0}),HNr=Zpe({name:"json",jsonld:!0}),$Nr=Zpe({name:"typescript",typescript:!0}),XNr=Object.freeze(Object.defineProperty({__proto__:null,javascript:p6,json:zNr,jsonld:HNr,typescript:$Nr},Symbol.toStringTag,{value:"Module"}));function iE(e,t,n){return typeof n>"u"&&(n=""),typeof t>"u"&&(t="\\b"),new RegExp("^"+n+"(("+e.join(")|(")+"))"+t)}var GNr="\\\\[0-7]{1,3}",YNr="\\\\x[A-Fa-f0-9]{1,2}",ZNr=`\\\\[abefnrtv0%?'"\\\\]`,qNr="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])",u5n=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],KNr=iE(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),JNr=/^[;,()[\]{}]/,eUr=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,tUr=iE([GNr,YNr,ZNr,qNr],"'"),nUr=["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"],iUr=["end","else","elseif","catch","finally"],h5n=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],f5n=["true","false","nothing","NaN","Inf"],rUr=iE(nUr),oUr=iE(iUr),sUr=iE(h5n),aUr=iE(f5n),lUr=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,cUr=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,dUr=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,uUr=iE(u5n,"","@"),hUr=iE(u5n,"",":");function A4t(e){return e.nestedArrays>0}function fUr(e){return e.nestedGenerators>0}function p4t(e,t){return typeof t>"u"&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function VW(e,t){if(e.match("#=",!1))return t.tokenize=mUr,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r=e.peek();if(r==="#")return e.skipToEnd(),"comment";if(r==="["&&(t.scopes.push("["),t.nestedArrays++),r==="("&&(t.scopes.push("("),t.nestedGenerators++),A4t(t)&&r==="]"){for(;t.scopes.length&&p4t(t)!=="[";)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(fUr(t)&&r===")"){for(;t.scopes.length&&p4t(t)!=="(";)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(A4t(t)){if(t.lastToken=="end"&&e.match(":"))return"operator";if(e.match("end"))return"number"}var o;if((o=e.match(rUr,!1))&&t.scopes.push(o[0]),e.match(oUr,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=gUr,t.tokenize(e,t);if(!n&&(e.match(cUr)||e.match(hUr)))return"builtin";if(e.match(KNr))return"operator";if(e.match(/^\.?\d/,!1)){var s=RegExp(/^im\b/),a=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(a=!0),e.match(/^0x[0-9a-f_]+/i)&&(a=!0),e.match(/^0b[01_]+/i)&&(a=!0),e.match(/^0o[0-7_]+/i)&&(a=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(a=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(a=!0),a)return e.match(s),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=kUr,t.tokenize(e,t);if(e.match(dUr))return t.tokenize=vUr(e.current()),t.tokenize(e,t);if(e.match(lUr)||e.match(uUr))return"meta";if(e.match(JNr))return null;if(e.match(sUr))return"keyword";if(e.match(aUr))return"builtin";var l=t.isDefinition||t.lastToken=="function"||t.lastToken=="macro"||t.lastToken=="type"||t.lastToken=="struct"||t.lastToken=="immutable";return e.match(eUr)?l?e.peek()==="."?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function gUr(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():t.nestedParameters==0&&(t.tokenize=VW),"builtin"}function mUr(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,t.nestedComments==0&&(t.tokenize=VW)),"comment"}function kUr(e,t){var n=!1,r;if(e.match(tUr))n=!0;else if(r=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){var o=parseInt(r[1],16);(o<=55295||o>=57344)&&(n=!0,e.next())}else if(r=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var o=parseInt(r[1],16);o<=1114111&&(n=!0,e.next())}return n?(t.leavingExpr=!0,t.tokenize=VW,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=VW),"error")}function vUr(e){e.substr(-3)==='"""'?e='"""':e.substr(-1)==='"'&&(e='"');function t(n,r){if(n.eat("\\"))n.next();else{if(n.match(e))return r.tokenize=VW,r.leavingExpr=!0,"string";n.eat(/[`"]/)}return n.eatWhile(/[^\\`"]/),"string"}return t}const AUr={name:"julia",startState:function(){return{tokenize:VW,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,t,n){var r=0;return(t==="]"||t===")"||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t))&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:h5n.concat(f5n)}},pUr=Object.freeze(Object.defineProperty({__proto__:null,julia:AUr},Symbol.toStringTag,{value:"Module"}));var bUr=function(e,t){var n=t.next||"start";{t.next=t.next;var r=cN[n];if(r.splice){for(var o=0;o|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+Iue+")?))\\s*$"),gP="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",mP={token:"string",regex:".+"},cN={start:[{token:"docComment",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+gP},{token:"atom",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+gP},{token:"invalid",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+gP},{token:"className.standard",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+gP},{token:"variableName.function.standard",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+gP},{token:"variableName.standard",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+gP},{token:"variableName",regex:Iue+"\\s*:(?![:=])"},{token:"variableName",regex:Iue},{token:"operatorKeyword",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"operatorKeyword",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"docString",regex:"'''",next:"qdoc"},{token:"docString",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"regexp",regex:"//",next:"heregex"},{token:"regexp",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"number",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"paren",regex:"[({[]"},{token:"paren",regex:"[)}\\]]",next:"key"},{token:"operatorKeyword",regex:"\\S+"},{token:"content",regex:"\\s+"}],heregex:[{token:"regexp",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"regexp",regex:"\\s*#{"},{token:"comment",regex:"\\s+(?:#.*)?"},{token:"regexp",regex:"\\S+"}],key:[{token:"operatorKeyword",regex:"[.?@!]+"},{token:"variableName",regex:Iue,next:"start"},{token:"content",regex:"",next:"start"}],comment:[{token:"docComment",regex:".*?\\*/",next:"start"},{token:"docComment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},mP],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},mP],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},mP],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},mP],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},mP],words:[{token:"string",regex:".*?\\]>",next:"key"},mP]};for(var b8e in cN){var Vae=cN[b8e];if(Vae.splice)for(var zae=0,OUr=Vae.length;zae!?^\/\|]/;function S4t(e,t,n){return t.tokenize=n,n(e,t)}function qKe(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if(/[\[\]{}\(\),\.]/.test(r))return r=="("&&n?t.inParams=!0:r==")"&&(t.inParams=!1),null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if(r=="\\")return e.eat("\\"),e.eat(/./),"number";if(r=="/"&&e.eat("*"))return S4t(e,t,RUr);if(r==";"&&e.match(/ *\( *\(/))return S4t(e,t,IUr);if(r==";"&&!t.inParams)return e.skipToEnd(),"comment";if(r=='"')return e.eat(/"/),"keyword";if(r=="$")return e.eatWhile(/[$_a-z0-9A-Z\.:]/),O4t&&O4t.propertyIsEnumerable(e.current().toLowerCase())?"keyword":(t.beforeParams=!0,"builtin");if(r=="%")return e.eatWhile(/[^,\s()]/),t.beforeParams=!0,"string";if(_4t.test(r))return e.eatWhile(_4t),"operator";e.eatWhile(/[\w\$_{}]/);var o=e.current().toLowerCase();return y4t&&y4t.propertyIsEnumerable(o)?"keyword":C4t&&C4t.propertyIsEnumerable(o)?(t.beforeParams=!0,"keyword"):null}function RUr(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=qKe;break}n=r=="*"}return"comment"}function IUr(e,t){for(var n=0,r;r=e.next();){if(r==";"&&n==2){t.tokenize=qKe;break}r==")"?n++:r!=" "&&(n=0)}return"meta"}const MUr={name:"mirc",startState:function(){return{tokenize:qKe,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}},PUr=Object.freeze(Object.defineProperty({__proto__:null,mirc:MUr},Symbol.toStringTag,{value:"Module"}));var L4t="[a-zA-Z\\$][a-zA-Z0-9\\$]*",FUr="(?:\\d+)",g5n="(?:\\.\\d+|\\d+\\.\\d*|\\d+)",NUr="(?:\\.\\w+|\\w+\\.\\w*|\\w+)",m5n="(?:`(?:`?"+g5n+")?)",UUr=new RegExp("(?:"+FUr+"(?:\\^\\^"+NUr+m5n+"?(?:\\*\\^[+-]?\\d+)?))"),jUr=new RegExp("(?:"+g5n+m5n+"?(?:\\*\\^[+-]?\\d+)?)"),WUr=new RegExp("(?:`?)(?:"+L4t+")(?:`(?:"+L4t+"))*(?:`?)");function KKe(e,t){var n;return n=e.next(),n==='"'?(t.tokenize=VUr,t.tokenize(e,t)):n==="("&&e.eat("*")?(t.commentLevel++,t.tokenize=zUr,t.tokenize(e,t)):(e.backUp(1),e.match(UUr,!0,!1)||e.match(jUr,!0,!1)?"number":e.match(/(?:In|Out)\[[0-9]*\]/,!0,!1)?"atom":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,!0,!1)?"meta":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,!0,!1)?"string.special":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,!0,!1)||e.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variableName.special":e.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,!0,!1)?"character":e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":e.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,!0,!1)?"variableName.constant":e.match(WUr,!0,!1)?"keyword":e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,!0,!1)?"operator":(e.next(),"error"))}function VUr(e,t){for(var n,r=!1,o=!1;(n=e.next())!=null;){if(n==='"'&&!o){r=!0;break}o=!o&&n==="\\"}return r&&!o&&(t.tokenize=KKe),"string"}function zUr(e,t){for(var n,r;t.commentLevel>0&&(r=e.next())!=null;)n==="("&&r==="*"&&t.commentLevel++,n==="*"&&r===")"&&t.commentLevel--,n=r;return t.commentLevel<=0&&(t.tokenize=KKe),"comment"}const HUr={name:"mathematica",startState:function(){return{tokenize:KKe,commentLevel:0}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:"(*",close:"*)"}}}},$Ur=Object.freeze(Object.defineProperty({__proto__:null,mathematica:HUr},Symbol.toStringTag,{value:"Module"}));function JKe(e){for(var t={},n=e.split(" "),r=0;r+\-\/^\[\]]/,YUr=/(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/,CU=/[0-9]/,p5n=/[_a-zA-Z]/;function ZUr(e,t){return e.skipToEnd(),t.tokenize=null,"comment"}function qUr(e,t){for(var n=!1,r;r=e.next();){if(n&&r=="/"){t.tokenize=null;break}n=r=="*"}return"comment"}function KUr(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r=='"'&&!n){t.tokenize=null,t.sol=!1;break}n=!n&&r=="\\"}return"string"}function JUr(e,t){for(e.eatWhile(CU);e.eat(CU)||e.eat(p5n););var n=e.current();return t.sol&&(n=="package"||n=="model"||n=="when"||n=="connector")?t.level++:t.sol&&n=="end"&&t.level>0&&t.level--,t.tokenize=null,t.sol=!1,k5n.propertyIsEnumerable(n)?"keyword":v5n.propertyIsEnumerable(n)?"builtin":A5n.propertyIsEnumerable(n)?"atom":"variable"}function ejr(e,t){for(;e.eat(/[^']/););return t.tokenize=null,t.sol=!1,e.eat("'")?"variable":"error"}function tjr(e,t){return e.eatWhile(CU),e.eat(".")&&e.eatWhile(CU),(e.eat("e")||e.eat("E"))&&(e.eat("-")||e.eat("+"),e.eatWhile(CU)),t.tokenize=null,t.sol=!1,"number"}const njr={name:"modelica",startState:function(){return{tokenize:null,level:0,sol:!0}},token:function(e,t){if(t.tokenize!=null)return t.tokenize(e,t);if(e.sol()&&(t.sol=!0),e.eatSpace())return t.tokenize=null,null;var n=e.next();if(n=="/"&&e.eat("/"))t.tokenize=ZUr;else if(n=="/"&&e.eat("*"))t.tokenize=qUr;else{if(YUr.test(n+e.peek()))return e.next(),t.tokenize=null,"operator";if(GUr.test(n))return t.tokenize=null,"operator";if(p5n.test(n))t.tokenize=JUr;else if(n=="'"&&e.peek()&&e.peek()!="'")t.tokenize=ejr;else if(n=='"')t.tokenize=KUr;else if(CU.test(n))t.tokenize=tjr;else return t.tokenize=null,"error"}return t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!=null)return null;var r=e.level;return/(algorithm)/.test(t)&&r--,/(equation)/.test(t)&&r--,/(initial algorithm)/.test(t)&&r--,/(initial equation)/.test(t)&&r--,/(end)/.test(t)&&r--,r>0?n.unit*r:0},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:XUr}},ijr=Object.freeze(Object.defineProperty({__proto__:null,modelica:njr},Symbol.toStringTag,{value:"Module"}));function b5n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var rjr=new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]"),ojr=new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))"),sjr=new RegExp("^[\\.,:]"),ajr=new RegExp("[()]"),ljr=new RegExp("^[%A-Za-z][A-Za-z0-9]*"),cjr=["break","close","do","else","for","goto","halt","hang","if","job","kill","lock","merge","new","open","quit","read","set","tcommit","trollback","tstart","use","view","write","xecute","b","c","d","e","f","g","h","i","j","k","l","m","n","o","q","r","s","tc","tro","ts","u","v","w","x"],djr=["\\$ascii","\\$char","\\$data","\\$ecode","\\$estack","\\$etrap","\\$extract","\\$find","\\$fnumber","\\$get","\\$horolog","\\$io","\\$increment","\\$job","\\$justify","\\$length","\\$name","\\$next","\\$order","\\$piece","\\$qlength","\\$qsubscript","\\$query","\\$quit","\\$random","\\$reverse","\\$select","\\$stack","\\$test","\\$text","\\$translate","\\$view","\\$x","\\$y","\\$a","\\$c","\\$d","\\$e","\\$ec","\\$es","\\$et","\\$f","\\$fn","\\$g","\\$h","\\$i","\\$j","\\$l","\\$n","\\$na","\\$o","\\$p","\\$q","\\$ql","\\$qs","\\$r","\\$re","\\$s","\\$st","\\$t","\\$tr","\\$v","\\$z"],ujr=b5n(djr),hjr=b5n(cjr);function fjr(e,t){e.sol()&&(t.label=!0,t.commandMode=0);var n=e.peek();return n==" "||n==" "?(t.label=!1,t.commandMode==0?t.commandMode=1:(t.commandMode<0||t.commandMode==2)&&(t.commandMode=0)):n!="."&&t.commandMode>0&&(n==":"?t.commandMode=-1:t.commandMode=2),(n==="("||n===" ")&&(t.label=!1),n===";"?(e.skipToEnd(),"comment"):e.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/)?"number":n=='"'?e.skipTo('"')?(e.next(),"string"):(e.skipToEnd(),"error"):e.match(ojr)||e.match(rjr)?"operator":e.match(sjr)?null:ajr.test(n)?(e.next(),"bracket"):t.commandMode>0&&e.match(hjr)?"controlKeyword":e.match(ujr)?"builtin":e.match(ljr)?"variable":n==="$"||n==="^"?(e.next(),"builtin"):n==="@"?(e.next(),"string.special"):/[\w%]/.test(n)?(e.eatWhile(/[\w%]/),"variable"):(e.next(),"error")}const gjr={name:"mumps",startState:function(){return{label:!1,commandMode:0}},token:function(e,t){var n=fjr(e,t);return t.label?"tag":n}},mjr=Object.freeze(Object.defineProperty({__proto__:null,mumps:gjr},Symbol.toStringTag,{value:"Module"}));var w5n=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"],O5n=["Date","Subject","Comments","Keywords","Resent-Date"],kjr=/^[ \t]/,vjr=/^From /,Ajr=new RegExp("^("+w5n.join("|")+"): "),pjr=new RegExp("^("+O5n.join("|")+"): "),bjr=/^[^:]+:/,wjr=/^[^ ]+@[^ ]+/,Ojr=/^.*?(?=[^ ]+?@[^ ]+)/,yjr=/^<.*?>/,Cjr=/^.*?(?=<.*>)/;function _jr(e){return e==="Subject"?"header":"string"}function Sjr(e,t){if(e.sol()){if(t.inSeparator=!1,t.inHeader&&e.match(kjr))return null;if(t.inHeader=!1,t.header=null,e.match(vjr))return t.inHeaders=!0,t.inSeparator=!0,"atom";var n,r=!1;return(n=e.match(pjr))||(r=!0)&&(n=e.match(Ajr))?(t.inHeaders=!0,t.inHeader=!0,t.emailPermitted=r,t.header=n[1],"atom"):t.inHeaders&&(n=e.match(bjr))?(t.inHeader=!0,t.emailPermitted=!0,t.header=n[1],"atom"):(t.inHeaders=!1,e.skipToEnd(),null)}if(t.inSeparator)return e.match(wjr)?"link":(e.match(Ojr)||e.skipToEnd(),"atom");if(t.inHeader){var o=_jr(t.header);if(t.emailPermitted){if(e.match(yjr))return o+" link";if(e.match(Cjr))return o}return e.skipToEnd(),o}return e.skipToEnd(),null}const Ljr={name:"mbox",startState:function(){return{inSeparator:!1,inHeader:!1,emailPermitted:!1,header:null,inHeaders:!1}},token:Sjr,blankLine:function(e){e.inHeaders=e.inSeparator=e.inHeader=!1},languageData:{autocomplete:w5n.concat(O5n)}},xjr=Object.freeze(Object.defineProperty({__proto__:null,mbox:Ljr},Symbol.toStringTag,{value:"Module"}));function eJe(e){for(var t={},n=e.split(" "),r=0;r*\/]/.test(r)?f4(null,"select-op"):/[;{}:\[\]]/.test(r)?f4(null,r):(e.eatWhile(/[\w\\\-]/),f4("variable","variable"))}function x4t(e,t){for(var n=!1,r;(r=e.next())!=null;){if(n&&r=="/"){t.tokenize=Kpe;break}n=r=="*"}return f4("comment","comment")}function E4t(e,t){for(var n=0,r;(r=e.next())!=null;){if(n>=2&&r==">"){t.tokenize=Kpe;break}n=r=="-"?n+1:0}return f4("comment","comment")}function Djr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null&&!(o==e&&!r);)r=!r&&o=="\\";return r||(n.tokenize=Kpe),f4("string","string")}}const Bjr={name:"nginx",startState:function(){return{tokenize:Kpe,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;Fx=null;var n=t.tokenize(e,t),r=t.stack[t.stack.length-1];return Fx=="hash"&&r=="rule"?n="atom":n=="variable"&&(r=="rule"?n="number":(!r||r=="@media{")&&(n="tag")),r=="rule"&&/^[\{\};]$/.test(Fx)&&t.stack.pop(),Fx=="{"?r=="@media"?t.stack[t.stack.length-1]="@media{":t.stack.push("{"):Fx=="}"?t.stack.pop():Fx=="@media"?t.stack.push("@media"):r=="{"&&Fx!="comment"&&t.stack.push("rule"),n},indent:function(e,t,n){var r=e.stack.length;return/^\}/.test(t)&&(r-=e.stack[e.stack.length-1]=="rule"?2:1),e.baseIndent+r*n.unit},languageData:{indentOnInput:/^\s*\}$/}},Rjr=Object.freeze(Object.defineProperty({__proto__:null,nginx:Bjr},Symbol.toStringTag,{value:"Module"})),Ijr=jKe({start:[{regex:/(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/,token:"number"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/`(?:[^\\`]|\\.)*`?/,token:"string"},{regex:/^\s*(?:\!(addincludedir|addplugindir|appendfile|assert|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i,token:"keyword"},{regex:/^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:\!(else|endif|macroend))\b/i,token:"keyword",dedent:!0},{regex:/^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|GetWinVer|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Target|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/i,token:"keyword"},{regex:/^\s*(?:Function|PageEx|Section(?:Group)?)\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/i,token:"keyword",dedent:!0},{regex:/\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/i,token:"atom"},{regex:/\b(?:admin|all|amd64-unicode|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|x-86-(ansi|unicode)|zlib)\b/i,token:"builtin"},{regex:/\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:2|3|4|5|Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/i,token:"variable-2",indent:!0},{regex:/\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/i,token:"keyword",dedent:!0},{regex:/\$\{(?:RunningX64)\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:Disable|Enable)X64FSRedirection\}/i,token:"keyword",dedent:!0},{regex:/(#|;).*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/\$\w[\w\.]*/,token:"variable"},{regex:/\${[\!\w\.:-]+}/,token:"variableName.constant"},{regex:/\$\([\!\w\.:-]+\)/,token:"atom"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"nsis",indentOnInput:/^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/i,commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}}),Mjr=Object.freeze(Object.defineProperty({__proto__:null,nsis:Ijr},Symbol.toStringTag,{value:"Module"}));var Ps={PRE_SUBJECT:0,WRITING_SUB_URI:1,WRITING_BNODE_URI:2,PRE_PRED:3,WRITING_PRED_URI:4,PRE_OBJ:5,WRITING_OBJ_URI:6,WRITING_OBJ_BNODE:7,WRITING_OBJ_LITERAL:8,WRITING_LIT_LANG:9,WRITING_LIT_TYPE:10,POST_OBJ:11,ERROR:12};function $2(e,t){var n=e.location,r;n==Ps.PRE_SUBJECT&&t=="<"?r=Ps.WRITING_SUB_URI:n==Ps.PRE_SUBJECT&&t=="_"?r=Ps.WRITING_BNODE_URI:n==Ps.PRE_PRED&&t=="<"?r=Ps.WRITING_PRED_URI:n==Ps.PRE_OBJ&&t=="<"?r=Ps.WRITING_OBJ_URI:n==Ps.PRE_OBJ&&t=="_"?r=Ps.WRITING_OBJ_BNODE:n==Ps.PRE_OBJ&&t=='"'?r=Ps.WRITING_OBJ_LITERAL:n==Ps.WRITING_SUB_URI&&t==">"||n==Ps.WRITING_BNODE_URI&&t==" "?r=Ps.PRE_PRED:n==Ps.WRITING_PRED_URI&&t==">"?r=Ps.PRE_OBJ:n==Ps.WRITING_OBJ_URI&&t==">"||n==Ps.WRITING_OBJ_BNODE&&t==" "||n==Ps.WRITING_OBJ_LITERAL&&t=='"'||n==Ps.WRITING_LIT_LANG&&t==" "||n==Ps.WRITING_LIT_TYPE&&t==">"?r=Ps.POST_OBJ:n==Ps.WRITING_OBJ_LITERAL&&t=="@"?r=Ps.WRITING_LIT_LANG:n==Ps.WRITING_OBJ_LITERAL&&t=="^"?r=Ps.WRITING_LIT_TYPE:t==" "&&(n==Ps.PRE_SUBJECT||n==Ps.PRE_PRED||n==Ps.PRE_OBJ||n==Ps.POST_OBJ)?r=n:n==Ps.POST_OBJ&&t=="."?r=Ps.PRE_SUBJECT:r=Ps.ERROR,e.location=r}const Pjr={name:"ntriples",startState:function(){return{location:Ps.PRE_SUBJECT,uris:[],anchors:[],bnodes:[],langs:[],types:[]}},token:function(e,t){var n=e.next();if(n=="<"){$2(t,n);var r="";return e.eatWhile(function(d){return d!="#"&&d!=">"?(r+=d,!0):!1}),t.uris.push(r),e.match("#",!1)||(e.next(),$2(t,">")),"variable"}if(n=="#"){var o="";return e.eatWhile(function(d){return d!=">"&&d!=" "?(o+=d,!0):!1}),t.anchors.push(o),"url"}if(n==">")return $2(t,">"),"variable";if(n=="_"){$2(t,n);var s="";return e.eatWhile(function(d){return d!=" "?(s+=d,!0):!1}),t.bnodes.push(s),e.next(),$2(t," "),"builtin"}if(n=='"')return $2(t,n),e.eatWhile(function(d){return d!='"'}),e.next(),e.peek()!="@"&&e.peek()!="^"&&$2(t,'"'),"string";if(n=="@"){$2(t,"@");var a="";return e.eatWhile(function(d){return d!=" "?(a+=d,!0):!1}),t.langs.push(a),e.next(),$2(t," "),"string.special"}if(n=="^"){e.next(),$2(t,"^");var l="";return e.eatWhile(function(d){return d!=">"?(l+=d,!0):!1}),t.types.push(l),e.next(),$2(t,">"),"variable"}n==" "&&$2(t,n),n=="."&&$2(t,n)}},Fjr=Object.freeze(Object.defineProperty({__proto__:null,ntriples:Pjr},Symbol.toStringTag,{value:"Module"}));function tJe(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var Njr=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"),Ujr=new RegExp("^[\\(\\[\\{\\},:=;\\.]"),jjr=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"),Wjr=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"),Vjr=new RegExp("^((>>=)|(<<=))"),zjr=new RegExp("^[\\]\\)]"),Hjr=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*"),$jr=tJe(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]),Xjr=tJe(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);function y5n(e,t){return!e.sol()&&e.peek()==="'"?(e.next(),t.tokenize=_U,"operator"):(t.tokenize=_U,_U(e,t))}function Gjr(e,t){return e.match(/^.*%}/)?(t.tokenize=_U,"comment"):(e.skipToEnd(),"comment")}function _U(e,t){if(e.eatSpace())return null;if(e.match("%{"))return t.tokenize=Gjr,e.skipToEnd(),"comment";if(e.match(/^[%#]/))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/))return e.tokenize=_U,"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/))return"number"}if(e.match(tJe(["nan","NaN","inf","Inf"])))return"number";var n=e.match(/^"(?:[^"]|"")*("|$)/)||e.match(/^'(?:[^']|'')*('|$)/);return n?n[1]?"string":"error":e.match(Xjr)?"keyword":e.match($jr)?"builtin":e.match(Hjr)?"variable":e.match(Njr)||e.match(jjr)?"operator":e.match(Ujr)||e.match(Wjr)||e.match(Vjr)?null:e.match(zjr)?(t.tokenize=y5n,null):(e.next(),"error")}const Yjr={name:"octave",startState:function(){return{tokenize:_U}},token:function(e,t){var n=t.tokenize(e,t);return(n==="number"||n==="variable")&&(t.tokenize=y5n),n},languageData:{commentTokens:{line:"%"}}},Zjr=Object.freeze(Object.defineProperty({__proto__:null,octave:Yjr},Symbol.toStringTag,{value:"Module"}));function die(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var qjr=/[\^@!\|<>#~\.\*\-\+\\/,=]/,Kjr=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/,Jjr=/(:::)|(\.\.\.)|(=<:)|(>=:)/,C5n=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"],_5n=["end"],eWr=die(["true","false","nil","unit"]),tWr=die(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]),nWr=die(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]),S5n=die(C5n),L5n=die(_5n);function YB(e,t){if(e.eatSpace())return null;if(e.match(/[{}]/))return"bracket";if(e.match("[]"))return"keyword";if(e.match(Jjr)||e.match(Kjr))return"operator";if(e.match(eWr))return"atom";var n=e.match(nWr);if(n)return t.doInCurrentLine?t.doInCurrentLine=!1:t.currentIndent++,n[0]=="proc"||n[0]=="fun"?t.tokenize=oWr:n[0]=="class"?t.tokenize=iWr:n[0]=="meth"&&(t.tokenize=rWr),"keyword";if(e.match(S5n)||e.match(tWr))return"keyword";if(e.match(L5n))return t.currentIndent--,"keyword";var r=e.next();if(r=='"'||r=="'")return t.tokenize=sWr(r),t.tokenize(e,t);if(/[~\d]/.test(r)){if(r=="~")if(/^[0-9]/.test(e.peek())){if(e.next()=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}else return null;return r=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/)?"number":null}return r=="%"?(e.skipToEnd(),"comment"):r=="/"&&e.eat("*")?(t.tokenize=T4t,T4t(e,t)):qjr.test(r)?"operator":(e.eatWhile(/\w/),"variable")}function iWr(e,t){return e.eatSpace()?null:(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=YB,"type")}function rWr(e,t){return e.eatSpace()?null:(e.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=YB,"def")}function oWr(e,t){return e.eatSpace()?null:!t.hasPassedFirstStage&&e.eat("{")?(t.hasPassedFirstStage=!0,"bracket"):t.hasPassedFirstStage?(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/),t.hasPassedFirstStage=!1,t.tokenize=YB,"def"):(t.tokenize=YB,null)}function T4t(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=YB;break}n=r=="*"}return"comment"}function sWr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=YB),"string"}}function aWr(){var e=C5n.concat(_5n);return new RegExp("[\\[\\]]|("+e.join("|")+")$")}const lWr={name:"oz",startState:function(){return{tokenize:YB,currentIndent:0,doInCurrentLine:!1,hasPassedFirstStage:!1}},token:function(e,t){return e.sol()&&(t.doInCurrentLine=0),t.tokenize(e,t)},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(L5n)||r.match(S5n)||r.match(/(\[])/)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{indentOnInut:aWr(),commentTokens:{line:"%",block:{open:"/*",close:"*/"}}}},cWr=Object.freeze(Object.defineProperty({__proto__:null,oz:lWr},Symbol.toStringTag,{value:"Module"}));function dWr(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/;function fWr(e,t){var n=e.next();if(n=="#"&&t.startOfLine)return e.skipToEnd(),"meta";if(n=='"'||n=="'")return t.tokenize=gWr(n),t.tokenize(e,t);if(n=="("&&e.eat("*"))return t.tokenize=D4t,D4t(e,t);if(n=="{")return t.tokenize=B4t,B4t(e,t);if(/[\[\]\(\),;\:\.]/.test(n))return null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"&&e.eat("/"))return e.skipToEnd(),"comment";if(Q4t.test(n))return e.eatWhile(Q4t),"operator";e.eatWhile(/[\w\$_]/);var r=e.current().toLowerCase();return uWr.propertyIsEnumerable(r)?"keyword":hWr.propertyIsEnumerable(r)?"atom":"variable"}function gWr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=null),"string"}}function D4t(e,t){for(var n=!1,r;r=e.next();){if(r==")"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function B4t(e,t){for(var n;n=e.next();)if(n=="}"){t.tokenize=null;break}return"comment"}const mWr={name:"pascal",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||fWr)(e,t);return n=="comment"||n=="meta",n},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}},kWr=Object.freeze(Object.defineProperty({__proto__:null,pascal:mWr},Symbol.toStringTag,{value:"Module"}));function $f(e,t){return e.string.charAt(e.pos+(t||0))}function R4t(e,t){if(t){var n=e.pos-t;return e.string.substr(n>=0?n:0,t)}else return e.string.substr(0,e.pos-1)}function O8e(e,t){var n=e.string.length,r=n-e.pos+1;return e.string.substr(e.pos,t&&t=(r=e.string.length-1)?e.pos=r:e.pos=n}var q$={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},bl="string.special",wl=/[goseximacplud]/;function fo(e,t,n,r,o){return t.chain=null,t.style=null,t.tail=null,t.tokenize=function(s,a){for(var l=!1,d,u=0;d=s.next();){if(d===n[u]&&!l)return n[++u]!==void 0?(a.chain=n[u],a.style=r,a.tail=o):o&&s.eatWhile(o),a.tokenize=ome,r;l=!l&&d=="\\"}return r},t.tokenize(e,t)}function y8e(e,t,n){return t.tokenize=function(r,o){return r.string==n&&(o.tokenize=ome),r.skipToEnd(),"string"},t.tokenize(e,t)}function ome(e,t){if(e.eatSpace())return null;if(t.chain)return fo(e,t,t.chain,t.style,t.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/))return e.eatWhile(/\w/),y8e(e,t,e.current().substr(2));if(e.sol()&&e.match(/^\=item(?!\w)/))return y8e(e,t,"=cut");var n=e.next();if(n=='"'||n=="'"){if(R4t(e,3)=="<<"+n){var r=e.pos;e.eatWhile(/\w/);var o=e.current().substr(1);if(o&&e.eat(n))return y8e(e,t,o);e.pos=r}return fo(e,t,[n],"string")}if(n=="q"){var s=$f(e,-2);if(!(s&&/\w/.test(s))){if(s=$f(e,0),s=="x"){if(s=$f(e,1),s=="(")return Ld(e,2),fo(e,t,[")"],bl,wl);if(s=="[")return Ld(e,2),fo(e,t,["]"],bl,wl);if(s=="{")return Ld(e,2),fo(e,t,["}"],bl,wl);if(s=="<")return Ld(e,2),fo(e,t,[">"],bl,wl);if(/[\^'"!~\/]/.test(s))return Ld(e,1),fo(e,t,[e.eat(s)],bl,wl)}else if(s=="q"){if(s=$f(e,1),s=="(")return Ld(e,2),fo(e,t,[")"],"string");if(s=="[")return Ld(e,2),fo(e,t,["]"],"string");if(s=="{")return Ld(e,2),fo(e,t,["}"],"string");if(s=="<")return Ld(e,2),fo(e,t,[">"],"string");if(/[\^'"!~\/]/.test(s))return Ld(e,1),fo(e,t,[e.eat(s)],"string")}else if(s=="w"){if(s=$f(e,1),s=="(")return Ld(e,2),fo(e,t,[")"],"bracket");if(s=="[")return Ld(e,2),fo(e,t,["]"],"bracket");if(s=="{")return Ld(e,2),fo(e,t,["}"],"bracket");if(s=="<")return Ld(e,2),fo(e,t,[">"],"bracket");if(/[\^'"!~\/]/.test(s))return Ld(e,1),fo(e,t,[e.eat(s)],"bracket")}else if(s=="r"){if(s=$f(e,1),s=="(")return Ld(e,2),fo(e,t,[")"],bl,wl);if(s=="[")return Ld(e,2),fo(e,t,["]"],bl,wl);if(s=="{")return Ld(e,2),fo(e,t,["}"],bl,wl);if(s=="<")return Ld(e,2),fo(e,t,[">"],bl,wl);if(/[\^'"!~\/]/.test(s))return Ld(e,1),fo(e,t,[e.eat(s)],bl,wl)}else if(/[\^'"!~\/(\[{<]/.test(s)){if(s=="(")return Ld(e,1),fo(e,t,[")"],"string");if(s=="[")return Ld(e,1),fo(e,t,["]"],"string");if(s=="{")return Ld(e,1),fo(e,t,["}"],"string");if(s=="<")return Ld(e,1),fo(e,t,[">"],"string");if(/[\^'"!~\/]/.test(s))return fo(e,t,[e.eat(s)],"string")}}}if(n=="m"){var s=$f(e,-2);if(!(s&&/\w/.test(s))&&(s=e.eat(/[(\[{<\^'"!~\/]/),s)){if(/[\^'"!~\/]/.test(s))return fo(e,t,[s],bl,wl);if(s=="(")return fo(e,t,[")"],bl,wl);if(s=="[")return fo(e,t,["]"],bl,wl);if(s=="{")return fo(e,t,["}"],bl,wl);if(s=="<")return fo(e,t,[">"],bl,wl)}}if(n=="s"){var s=/[\/>\]})\w]/.test($f(e,-2));if(!s&&(s=e.eat(/[(\[{<\^'"!~\/]/),s))return s=="["?fo(e,t,["]","]"],bl,wl):s=="{"?fo(e,t,["}","}"],bl,wl):s=="<"?fo(e,t,[">",">"],bl,wl):s=="("?fo(e,t,[")",")"],bl,wl):fo(e,t,[s,s],bl,wl)}if(n=="y"){var s=/[\/>\]})\w]/.test($f(e,-2));if(!s&&(s=e.eat(/[(\[{<\^'"!~\/]/),s))return s=="["?fo(e,t,["]","]"],bl,wl):s=="{"?fo(e,t,["}","}"],bl,wl):s=="<"?fo(e,t,[">",">"],bl,wl):s=="("?fo(e,t,[")",")"],bl,wl):fo(e,t,[s,s],bl,wl)}if(n=="t"){var s=/[\/>\]})\w]/.test($f(e,-2));if(!s&&(s=e.eat("r"),s&&(s=e.eat(/[(\[{<\^'"!~\/]/),s)))return s=="["?fo(e,t,["]","]"],bl,wl):s=="{"?fo(e,t,["}","}"],bl,wl):s=="<"?fo(e,t,[">",">"],bl,wl):s=="("?fo(e,t,[")",")"],bl,wl):fo(e,t,[s,s],bl,wl)}if(n=="`")return fo(e,t,[n],"builtin");if(n=="/")return/~\s*$/.test(R4t(e))?fo(e,t,[n],bl,wl):"operator";if(n=="$"){var r=e.pos;if(e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";e.pos=r}if(/[$@%]/.test(n)){var r=e.pos;if(e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test($f(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var s=e.current();if(q$[s])return"builtin"}e.pos=r}if(/[$@%&]/.test(n)&&(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}"))){var s=e.current();return q$[s]?"builtin":"variable"}if(n=="#"&&$f(e,-2)!="$")return e.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(n)){var r=e.pos;if(e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),q$[e.current()])return"operator";e.pos=r}if(n=="_"&&e.pos==1){if(O8e(e,6)=="_END__")return fo(e,t,["\0"],"comment");if(O8e(e,7)=="_DATA__")return fo(e,t,["\0"],"builtin");if(O8e(e,7)=="_C__")return fo(e,t,["\0"],"string")}if(/\w/.test(n)){var r=e.pos;if($f(e,-2)=="{"&&($f(e,0)=="}"||e.eatWhile(/\w/)&&$f(e,0)=="}"))return"string";e.pos=r}if(/[A-Z]/.test(n)){var a=$f(e,-2),r=e.pos;if(e.eatWhile(/[A-Z_]/),/[\da-z]/.test($f(e,0)))e.pos=r;else{var s=q$[e.current()];return s?(s[1]&&(s=s[0]),a!=":"?s==1?"keyword":s==2?"def":s==3?"atom":s==4?"operator":s==5?"builtin":"meta":"meta"):"meta"}}if(/[a-zA-Z_]/.test(n)){var a=$f(e,-2);e.eatWhile(/\w/);var s=q$[e.current()];return s?(s[1]&&(s=s[0]),a!=":"?s==1?"keyword":s==2?"def":s==3?"atom":s==4?"operator":s==5?"builtin":"meta":"meta"):"meta"}return null}const vWr={name:"perl",startState:function(){return{tokenize:ome,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||ome)(e,t)},languageData:{commentTokens:{line:"#"},wordChars:"$"}},AWr=Object.freeze(Object.defineProperty({__proto__:null,perl:vWr},Symbol.toStringTag,{value:"Module"}));function nJe(e){for(var t={},n=e.split(" "),r=0;r=&?:\/!|]/;function F4t(e,t,n){return t.tokenize=n,n(e,t)}function pWr(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=iJe;break}n=r=="*"}return"comment"}function bWr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return(s||!r)&&(n.tokenize=iJe),"error"}}function iJe(e,t){var n=e.next();return n=='"'||n=="'"?F4t(e,t,bWr(n)):/[\[\]{}\(\),;\.]/.test(n)?null:/\d/.test(n)?(e.eatWhile(/[\w\.]/),"number"):n=="/"?e.eat("*")?F4t(e,t,pWr):(e.eatWhile(Hae),"operator"):n=="-"?e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(Hae),"operator"):Hae.test(n)?(e.eatWhile(Hae),"operator"):(e.eatWhile(/[\w\$_]/),M4t&&M4t.propertyIsEnumerable(e.current().toUpperCase())&&!e.eat(")")&&!e.eat(".")?"keyword":I4t&&I4t.propertyIsEnumerable(e.current().toUpperCase())?"builtin":P4t&&P4t.propertyIsEnumerable(e.current().toUpperCase())?"type":"variable")}const wWr={name:"pig",startState:function(){return{tokenize:iJe,startOfLine:!0}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{autocomplete:(x5n+T5n+E5n).split(" ")}},OWr=Object.freeze(Object.defineProperty({__proto__:null,pig:wWr},Symbol.toStringTag,{value:"Module"}));function Fz(e,t){t=t||{};for(var n=t.prefix!==void 0?t.prefix:"^",r=t.suffix!==void 0?t.suffix:"\\b",o=0;o/,LWr=Fz([_Wr,SWr],{suffix:""}),xWr=/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,EWr=/^[A-Za-z\_][A-Za-z\-\_\d]*\b/,TWr=/[A-Z]:|%|\?/i,QWr=Fz([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),DWr=Fz([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),BWr=Fz([TWr,QWr,DWr],{suffix:Q5n}),N4t={keyword:yWr,number:xWr,operator:LWr,builtin:BWr,punctuation:CWr,variable:EWr};function E8(e,t){var n=t.returnStack[t.returnStack.length-1];if(n&&n.shouldReturnFrom(t))return t.tokenize=n.tokenize,t.returnStack.pop(),t.tokenize(e,t);if(e.eatSpace())return null;if(e.eat("("))return t.bracketNesting+=1,"punctuation";if(e.eat(")"))return t.bracketNesting-=1,"punctuation";for(var r in N4t)if(e.match(N4t[r]))return r;var o=e.next();if(o==="'")return RWr(e,t);if(o==="$")return wFe(e,t);if(o==='"')return D5n(e,t);if(o==="<"&&e.eat("#"))return t.tokenize=U4t,U4t(e,t);if(o==="#")return e.skipToEnd(),"comment";if(o==="@"){var s=e.eat(/["']/);if(s&&e.eol())return t.tokenize=sme,t.startQuote=s[0],sme(e,t);if(e.eol())return"error";if(e.peek().match(/[({]/))return"punctuation";if(e.peek().match(bFe))return wFe(e,t)}return"error"}function RWr(e,t){for(var n;(n=e.peek())!=null;)if(e.next(),n==="'"&&!e.eat("'"))return t.tokenize=E8,"string";return"error"}function D5n(e,t){for(var n;(n=e.peek())!=null;){if(n==="$")return t.tokenize=IWr,"string";if(e.next(),n==="`"){e.next();continue}if(n==='"'&&!e.eat('"'))return t.tokenize=E8,"string"}return"error"}function IWr(e,t){return B5n(e,t,D5n)}function MWr(e,t){return t.tokenize=sme,t.startQuote='"',sme(e,t)}function PWr(e,t){return B5n(e,t,MWr)}function B5n(e,t,n){if(e.match("$(")){var r=t.bracketNesting;return t.returnStack.push({shouldReturnFrom:function(o){return o.bracketNesting===r},tokenize:n}),t.tokenize=E8,t.bracketNesting+=1,"punctuation"}else return e.next(),t.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:n}),t.tokenize=wFe,t.tokenize(e,t)}function U4t(e,t){for(var n=!1,r;(r=e.next())!=null;){if(n&&r==">"){t.tokenize=E8;break}n=r==="#"}return"comment"}function wFe(e,t){var n=e.peek();return e.eat("{")?(t.tokenize=j4t,j4t(e,t)):n!=null&&n.match(bFe)?(e.eatWhile(bFe),t.tokenize=E8,"variable"):(t.tokenize=E8,"error")}function j4t(e,t){for(var n;(n=e.next())!=null;)if(n==="}"){t.tokenize=E8;break}return"variable"}function sme(e,t){var n=t.startQuote;if(e.sol()&&e.match(new RegExp(n+"@")))t.tokenize=E8;else if(n==='"')for(;!e.eol();){var r=e.peek();if(r==="$")return t.tokenize=PWr,"string";e.next(),r==="`"&&e.next()}else e.skipToEnd();return"string"}const FWr={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:E8}},token:function(e,t){return t.tokenize(e,t)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}},NWr=Object.freeze(Object.defineProperty({__proto__:null,powerShell:FWr},Symbol.toStringTag,{value:"Module"})),UWr={name:"properties",token:function(e,t){var n=e.sol()||t.afterSection,r=e.eol();if(t.afterSection=!1,n&&(t.nextMultiline?(t.inMultiline=!0,t.nextMultiline=!1):t.position="def"),r&&!t.nextMultiline&&(t.inMultiline=!1,t.position="def"),n)for(;e.eatSpace(););var o=e.next();return n&&(o==="#"||o==="!"||o===";")?(t.position="comment",e.skipToEnd(),"comment"):n&&o==="["?(t.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):o==="="||o===":"?(t.position="quote",null):(o==="\\"&&t.position==="quote"&&e.eol()&&(t.nextMultiline=!0),t.position)},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}},jWr=Object.freeze(Object.defineProperty({__proto__:null,properties:UWr},Symbol.toStringTag,{value:"Module"}));function WWr(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var R5n=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],VWr=WWr(R5n),zWr=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");function HWr(e){return e.eatSpace()?null:e.match("//")?(e.skipToEnd(),"comment"):e.match(/^[0-9\.+-]/,!1)&&(e.match(/^[+-]?0x[0-9a-fA-F]+/)||e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(VWr)?"keyword":e.match(zWr)?"variable":(e.next(),null)}const $Wr={name:"protobuf",token:HWr,languageData:{autocomplete:R5n}},XWr=Object.freeze(Object.defineProperty({__proto__:null,protobuf:$Wr},Symbol.toStringTag,{value:"Module"}));var W4t={"{":"}","(":")","[":"]"};function GWr(e){if(typeof e!="object")return e;let t={};for(let n in e){let r=e[n];t[n]=r instanceof Array?r.slice():r}return t}let YWr=class I5n{constructor(t){this.indentUnit=t,this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=p6.startState(t),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken=""}copy(){var t=new I5n(this.indentUnit);return t.javaScriptLine=this.javaScriptLine,t.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,t.javaScriptArguments=this.javaScriptArguments,t.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,t.isInterpolating=this.isInterpolating,t.interpolationNesting=this.interpolationNesting,t.jsState=(p6.copyState||GWr)(this.jsState),t.restOfLine=this.restOfLine,t.isIncludeFiltered=this.isIncludeFiltered,t.isEach=this.isEach,t.lastTag=this.lastTag,t.isAttrs=this.isAttrs,t.attrsNest=this.attrsNest.slice(),t.inAttributeName=this.inAttributeName,t.attributeIsType=this.attributeIsType,t.attrValue=this.attrValue,t.indentOf=this.indentOf,t.indentToken=this.indentToken,t}};function ZWr(e,t){if(e.sol()&&(t.javaScriptLine=!1,t.javaScriptLineExcludesColon=!1),t.javaScriptLine){if(t.javaScriptLineExcludesColon&&e.peek()===":"){t.javaScriptLine=!1,t.javaScriptLineExcludesColon=!1;return}var n=p6.token(e,t.jsState);return e.eol()&&(t.javaScriptLine=!1),n||!0}}function qWr(e,t){if(t.javaScriptArguments){if(t.javaScriptArgumentsDepth===0&&e.peek()!=="("){t.javaScriptArguments=!1;return}if(e.peek()==="("?t.javaScriptArgumentsDepth++:e.peek()===")"&&t.javaScriptArgumentsDepth--,t.javaScriptArgumentsDepth===0){t.javaScriptArguments=!1;return}var n=p6.token(e,t.jsState);return n||!0}}function KWr(e){if(e.match(/^yield\b/))return"keyword"}function JWr(e){if(e.match(/^(?:doctype) *([^\n]+)?/))return"meta"}function M5n(e,t){if(e.match("#{"))return t.isInterpolating=!0,t.interpolationNesting=0,"punctuation"}function eVr(e,t){if(t.isInterpolating){if(e.peek()==="}"){if(t.interpolationNesting--,t.interpolationNesting<0)return e.next(),t.isInterpolating=!1,"punctuation"}else e.peek()==="{"&&t.interpolationNesting++;return p6.token(e,t.jsState)||!0}}function tVr(e,t){if(e.match(/^case\b/))return t.javaScriptLine=!0,"keyword"}function nVr(e,t){if(e.match(/^when\b/))return t.javaScriptLine=!0,t.javaScriptLineExcludesColon=!0,"keyword"}function iVr(e){if(e.match(/^default\b/))return"keyword"}function rVr(e,t){if(e.match(/^extends?\b/))return t.restOfLine="string","keyword"}function oVr(e,t){if(e.match(/^append\b/))return t.restOfLine="variable","keyword"}function sVr(e,t){if(e.match(/^prepend\b/))return t.restOfLine="variable","keyword"}function aVr(e,t){if(e.match(/^block\b *(?:(prepend|append)\b)?/))return t.restOfLine="variable","keyword"}function lVr(e,t){if(e.match(/^include\b/))return t.restOfLine="string","keyword"}function cVr(e,t){if(e.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&e.match("include"))return t.isIncludeFiltered=!0,"keyword"}function dVr(e,t){if(t.isIncludeFiltered){var n=P5n(e,t);return t.isIncludeFiltered=!1,t.restOfLine="string",n}}function uVr(e,t){if(e.match(/^mixin\b/))return t.javaScriptLine=!0,"keyword"}function hVr(e,t){if(e.match(/^\+([-\w]+)/))return e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),"variable";if(e.match("+#{",!1))return e.next(),t.mixinCallAfter=!0,M5n(e,t)}function fVr(e,t){if(t.mixinCallAfter)return t.mixinCallAfter=!1,e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),!0}function gVr(e,t){if(e.match(/^(if|unless|else if|else)\b/))return t.javaScriptLine=!0,"keyword"}function mVr(e,t){if(e.match(/^(- *)?(each|for)\b/))return t.isEach=!0,"keyword"}function kVr(e,t){if(t.isEach){if(e.match(/^ in\b/))return t.javaScriptLine=!0,t.isEach=!1,"keyword";if(e.sol()||e.eol())t.isEach=!1;else if(e.next()){for(;!e.match(/^ in\b/,!1)&&e.next(););return"variable"}}}function vVr(e,t){if(e.match(/^while\b/))return t.javaScriptLine=!0,"keyword"}function AVr(e,t){var n;if(n=e.match(/^(\w(?:[-:\w]*\w)?)\/?/))return t.lastTag=n[1].toLowerCase(),"tag"}function P5n(e,t){if(e.match(/^:([\w\-]+)/))return rJe(e,t),"atom"}function pVr(e,t){if(e.match(/^(!?=|-)/))return t.javaScriptLine=!0,"punctuation"}function bVr(e){if(e.match(/^#([\w-]+)/))return"builtin"}function wVr(e){if(e.match(/^\.([\w-]+)/))return"className"}function OVr(e,t){if(e.peek()=="(")return e.next(),t.isAttrs=!0,t.attrsNest=[],t.inAttributeName=!0,t.attrValue="",t.attributeIsType=!1,"punctuation"}function F5n(e,t){if(t.isAttrs){if(W4t[e.peek()]&&t.attrsNest.push(W4t[e.peek()]),t.attrsNest[t.attrsNest.length-1]===e.peek())t.attrsNest.pop();else if(e.eat(")"))return t.isAttrs=!1,"punctuation";if(t.inAttributeName&&e.match(/^[^=,\)!]+/))return(e.peek()==="="||e.peek()==="!")&&(t.inAttributeName=!1,t.jsState=p6.startState(2),t.lastTag==="script"&&e.current().trim().toLowerCase()==="type"?t.attributeIsType=!0:t.attributeIsType=!1),"attribute";var n=p6.token(e,t.jsState);if(t.attrsNest.length===0&&(n==="string"||n==="variable"||n==="keyword"))try{return Function("","var x "+t.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),t.inAttributeName=!0,t.attrValue="",e.backUp(e.current().length),F5n(e,t)}catch{}return t.attrValue+=e.current(),n||!0}}function yVr(e,t){if(e.match(/^&attributes\b/))return t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0,"keyword"}function CVr(e){if(e.sol()&&e.eatSpace())return"indent"}function _Vr(e,t){if(e.match(/^ *\/\/(-)?([^\n]*)/))return t.indentOf=e.indentation(),t.indentToken="comment","comment"}function SVr(e){if(e.match(/^: */))return"colon"}function LVr(e,t){if(e.match(/^(?:\| ?| )([^\n]+)/))return"string";if(e.match(/^(<[^\n]*)/,!1))return rJe(e,t),e.skipToEnd(),t.indentToken}function xVr(e,t){if(e.eat("."))return rJe(e,t),"dot"}function EVr(e){return e.next(),null}function rJe(e,t){t.indentOf=e.indentation(),t.indentToken="string"}function TVr(e,t){if(e.sol()&&(t.restOfLine=""),t.restOfLine){e.skipToEnd();var n=t.restOfLine;return t.restOfLine="",n}}function QVr(e){return new YWr(e)}function DVr(e){return e.copy()}function BVr(e,t){var n=TVr(e,t)||eVr(e,t)||dVr(e,t)||kVr(e,t)||F5n(e,t)||ZWr(e,t)||qWr(e,t)||fVr(e,t)||KWr(e)||JWr(e)||M5n(e,t)||tVr(e,t)||nVr(e,t)||iVr(e)||rVr(e,t)||oVr(e,t)||sVr(e,t)||aVr(e,t)||lVr(e,t)||cVr(e,t)||uVr(e,t)||hVr(e,t)||gVr(e,t)||mVr(e,t)||vVr(e,t)||AVr(e,t)||P5n(e,t)||pVr(e,t)||bVr(e)||wVr(e)||OVr(e,t)||yVr(e,t)||CVr(e)||LVr(e,t)||_Vr(e,t)||SVr(e)||xVr(e,t)||EVr(e);return n===!0?null:n}const RVr={startState:QVr,copyState:DVr,token:BVr},IVr=Object.freeze(Object.defineProperty({__proto__:null,pug:RVr},Symbol.toStringTag,{value:"Module"}));var OFe={},MVr=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function Jpe(e,t){for(var n=t.split(" "),r=0;r.*/,!1),o=e.match(/(\s+)?[\w:_]+(\s+)?{/,!1),s=e.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),a=e.next();if(a==="$")return e.match(MVr)?t.continueString?"variableName.special":"variable":"error";if(t.continueString)return e.backUp(1),V4t(e,t);if(t.inDefinition){if(e.match(/(\s+)?[\w:_]+(\s+)?/))return"def";e.match(/\s+{/),t.inDefinition=!1}return t.inInclude?(e.match(/(\s+)?\S+(\s+)?/),t.inInclude=!1,"def"):e.match(/(\s+)?\w+\(/)?(e.backUp(1),"def"):r?(e.match(/(\s+)?\w+/),"tag"):n&&OFe.hasOwnProperty(n)?(e.backUp(1),e.match(/[\w]+/),e.match(/\s+\S+\s+{/,!1)&&(t.inDefinition=!0),n=="include"&&(t.inInclude=!0),OFe[n]):/(^|\s+)[A-Z][\w:_]+/.test(n)?(e.backUp(1),e.match(/(^|\s+)[A-Z][\w:_]+/),"def"):o?(e.match(/(\s+)?[\w:_]+/),"def"):s?(e.match(/(\s+)?[@]{1,2}/),"atom"):a=="#"?(e.skipToEnd(),"comment"):a=="'"||a=='"'?(t.pending=a,V4t(e,t)):a=="{"||a=="}"?"bracket":a=="/"?(e.match(/^[^\/]*\//),"string.special"):a.match(/[0-9]/)?(e.eatWhile(/[0-9]+/),"number"):a=="="?(e.peek()==">"&&e.next(),"operator"):(e.eatWhile(/[\w-]/),null)}const FVr={name:"puppet",startState:function(){var e={};return e.inDefinition=!1,e.inInclude=!1,e.continueString=!1,e.pending=!1,e},token:function(e,t){return e.eatSpace()?null:PVr(e,t)}},NVr=Object.freeze(Object.defineProperty({__proto__:null,puppet:FVr},Symbol.toStringTag,{value:"Module"}));var V7,UVr=WVr(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]),jVr=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;function WVr(e){return new RegExp("^("+e.join("|")+")$")}function zW(e,t){var n=e.sol(),r=e.next();if(V7=null,n){if(r=="/")return(t.tokenize=VVr)(e,t);if(r=="\\")return e.eol()||/\s/.test(e.peek())?(e.skipToEnd(),/^\\\s*$/.test(e.current())?(t.tokenize=HVr)(e):t.tokenize=zW,"comment"):(t.tokenize=zW,"builtin")}if(/\s/.test(r))return e.peek()=="/"?(e.skipToEnd(),"comment"):"null";if(r=='"')return(t.tokenize=$Vr)(e,t);if(r=="`")return e.eatWhile(/[A-Za-z\d_:\/.]/),"macroName";if(r=="."&&/\d/.test(e.peek())||/\d/.test(r)){var o=null;return e.backUp(1),e.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)||e.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)||e.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)||e.match(/^\d+[ptuv]{1}/)?o="temporal":(e.match(/^0[NwW]{1}/)||e.match(/^0x[\da-fA-F]*/)||e.match(/^[01]+[b]{1}/)||e.match(/^\d+[chijn]{1}/)||e.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))&&(o="number"),o&&(!(r=e.peek())||jVr.test(r))?o:(e.next(),"error")}return/[A-Za-z]|\./.test(r)?(e.eatWhile(/[A-Za-z._\d]/),UVr.test(e.current())?"keyword":"variable"):/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(r)||/[{}\(\[\]\)]/.test(r)?null:"error"}function VVr(e,t){return e.skipToEnd(),/^\/\s*$/.test(e.current())?(t.tokenize=zVr)(e,t):t.tokenize=zW,"comment"}function zVr(e,t){var n=e.sol()&&e.peek()=="\\";return e.skipToEnd(),n&&/^\\\s*$/.test(e.current())&&(t.tokenize=zW),"comment"}function HVr(e){return e.skipToEnd(),"comment"}function $Vr(e,t){for(var n=!1,r,o=!1;r=e.next();){if(r=='"'&&!n){o=!0;break}n=!n&&r=="\\"}return o&&(t.tokenize=zW),"string"}function $ae(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function C8e(e){e.indent=e.context.indent,e.context=e.context.prev}const XVr={name:"q",startState:function(){return{tokenize:zW,context:null,indent:0,col:0}},token:function(e,t){e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation());var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"&&(t.context.align=!0),V7=="(")$ae(t,")",e.column());else if(V7=="[")$ae(t,"]",e.column());else if(V7=="{")$ae(t,"}",e.column());else if(/[\]\}\)]/.test(V7)){for(;t.context&&t.context.type=="pattern";)C8e(t);t.context&&V7==t.context.type&&C8e(t)}else V7=="."&&t.context&&t.context.type=="pattern"?C8e(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?$ae(t,"pattern",e.column()):t.context.type=="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type=="pattern";)o=o.prev;var s=o&&r==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0},languageData:{commentTokens:{line:"/"}}},GVr=Object.freeze(Object.defineProperty({__proto__:null,q:XVr},Symbol.toStringTag,{value:"Module"}));function ebe(e){for(var t={},n=0;n=!&|~$:]/,gb;function yFe(e,t){gb=null;var n=e.next();if(n=="#")return e.skipToEnd(),"comment";if(n=="0"&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if(n=="."&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(n))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if(n=="'"||n=='"')return t.tokenize=ezr(n),"string";if(n=="`")return e.match(/[^`]+`/),"string.special";if(n=="."&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(n)){e.eatWhile(/[\w\.]/);var r=e.current();return ZVr.propertyIsEnumerable(r)?"atom":KVr.propertyIsEnumerable(r)?(JVr.propertyIsEnumerable(r)&&!e.match(/\s*if(\s+|$)/,!1)&&(gb="block"),"keyword"):qVr.propertyIsEnumerable(r)?"builtin":"variable"}else return n=="%"?(e.skipTo("%")&&e.next(),"variableName.special"):n=="<"&&e.eat("-")||n=="<"&&e.match("<-")||n=="-"&&e.match(/>>?/)||n=="="&&t.ctx.argList?"operator":z4t.test(n)?(n=="$"||e.eatWhile(z4t),"operator"):/[\(\){}\[\];]/.test(n)?(gb=n,n==";"?"punctuation":null):null}function ezr(e){return function(t,n){if(t.eat("\\")){var r=t.next();return r=="x"?t.match(/^[a-f0-9]{2}/i):(r=="u"||r=="U")&&t.eat("{")&&t.skipTo("}")?t.next():r=="u"?t.match(/^[a-f0-9]{4}/i):r=="U"?t.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&t.match(/^[0-7]{1,2}/),"string.special"}else{for(var o;(o=t.next())!=null;){if(o==e){n.tokenize=yFe;break}if(o=="\\"){t.backUp(1);break}}return"string"}}}var H4t=1,_8e=2,S8e=4;function Xae(e,t,n){e.ctx={type:t,indent:e.indent,flags:0,column:n.column(),prev:e.ctx}}function $4t(e,t){var n=e.ctx;e.ctx={type:n.type,indent:n.indent,flags:n.flags|t,column:n.column,prev:n.prev}}function L8e(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}const tzr={name:"r",startState:function(e){return{tokenize:yFe,ctx:{type:"top",indent:-e,flags:_8e},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(t.ctx.flags&3||(t.ctx.flags|=_8e),t.ctx.flags&S8e&&L8e(t),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return n!="comment"&&!(t.ctx.flags&_8e)&&$4t(t,H4t),(gb==";"||gb=="{"||gb=="}")&&t.ctx.type=="block"&&L8e(t),gb=="{"?Xae(t,"}",e):gb=="("?(Xae(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):gb=="["?Xae(t,"]",e):gb=="block"?Xae(t,"block",e):gb==t.ctx.type?L8e(t):t.ctx.type=="block"&&n!="comment"&&$4t(t,S8e),t.afterIdent=n=="variable"||n=="keyword",n},indent:function(e,t,n){if(e.tokenize!=yFe)return 0;var r=t&&t.charAt(0),o=e.ctx,s=r==o.type;return o.flags&S8e&&(o=o.prev),o.type=="block"?o.indent+(r=="{"?0:n.unit):o.flags&H4t?o.column+(s?0:1):o.indent+(s?0:n.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:N5n.concat(U5n,j5n)}},nzr=Object.freeze(Object.defineProperty({__proto__:null,r:tzr},Symbol.toStringTag,{value:"Module"}));var izr=/^-+$/,rzr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,ozr=/^[\w+.-]+@[\w.-]+/;const szr={name:"rpmchanges",token:function(e){return e.sol()&&(e.match(izr)||e.match(rzr))?"tag":e.match(ozr)?"string":(e.next(),null)}};var azr=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,lzr=/^[a-zA-Z0-9()]+:/,czr=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,dzr=/^%(ifnarch|ifarch|if)/,uzr=/^%(else|endif)/,hzr=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;const fzr={name:"rpmspec",startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(e,t){var n=e.peek();if(n=="#")return e.skipToEnd(),"comment";if(e.sol()){if(e.match(lzr))return"header";if(e.match(czr))return"atom"}if(e.match(/^\$\w+/)||e.match(/^\$\{\w+\}/))return"def";if(e.match(uzr))return"keyword";if(e.match(dzr))return t.controlFlow=!0,"keyword";if(t.controlFlow){if(e.match(hzr))return"operator";if(e.match(/^(\d+)/))return"number";e.eol()&&(t.controlFlow=!1)}if(e.match(azr))return e.eol()&&(t.controlFlow=!1),"number";if(e.match(/^%[\w]+/))return e.match("(")&&(t.macroParameters=!0),"keyword";if(t.macroParameters){if(e.match(/^\d+/))return"number";if(e.match(")"))return t.macroParameters=!1,"keyword"}return e.match(/^%\{\??[\w \-\:\!]+\}/)?(e.eol()&&(t.controlFlow=!1),"def"):(e.next(),null)}},X4t=Object.freeze(Object.defineProperty({__proto__:null,rpmChanges:szr,rpmSpec:fzr},Symbol.toStringTag,{value:"Module"}));function oJe(e){for(var t={},n=0,r=e.length;n]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if(n=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(n=="$")return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(n))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if(n=="|"&&(t.varList||t.lastTok=="{"||t.lastTok=="do"))return mb="|",null;if(/[\(\)\[\]{}\\;]/.test(n))return mb=n,null;if(n=="-"&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(n)){var l=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return n=="."&&!l&&(mb="."),"operator"}else return null}}}function Azr(e){for(var t=e.pos,n=0,r,o=!1,s=!1;(r=e.next())!=null;)if(s)s=!1;else{if("[{(".indexOf(r)>-1)n++;else if("]})".indexOf(r)>-1){if(n--,n<0)break}else if(r=="/"&&n==0){o=!0;break}s=r=="\\"}return e.backUp(e.pos-t),o}function CFe(e){return e||(e=1),function(t,n){if(t.peek()=="}"){if(e==1)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);n.tokenize[n.tokenize.length-1]=CFe(e-1)}else t.peek()=="{"&&(n.tokenize[n.tokenize.length-1]=CFe(e+1));return ame(t,n)}}function pzr(){var e=!1;return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,ame(t,n))}}function K$(e,t,n,r){return function(o,s){var a=!1,l;for(s.context.type==="read-quoted-paused"&&(s.context=s.context.prev,o.eat("}"));(l=o.next())!=null;){if(l==e&&(r||!a)){s.tokenize.pop();break}if(n&&l=="#"&&!a){if(o.eat("{")){e=="}"&&(s.context={prev:s.context,type:"read-quoted-paused"}),s.tokenize.push(CFe());break}else if(/[@\$]/.test(o.peek())){s.tokenize.push(pzr());break}}a=!a&&l=="\\"}return t}}function bzr(e,t){return function(n,r){return t&&n.eatSpace(),n.match(e)?r.tokenize.pop():n.skipToEnd(),"string"}}function wzr(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}const Ozr={name:"ruby",startState:function(e){return{tokenize:[ame],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){mb=null,e.sol()&&(t.indented=e.indentation());var n=t.tokenize[t.tokenize.length-1](e,t),r,o=mb;if(n=="variable"){var s=e.current();n=t.lastTok=="."?"property":gzr.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(s)?"tag":t.lastTok=="def"||t.lastTok=="class"||t.varList?"def":"variable",n=="keyword"&&(o=s,mzr.propertyIsEnumerable(s)?r="indent":kzr.propertyIsEnumerable(s)?r="dedent":((s=="if"||s=="unless")&&e.column()==e.indentation()||s=="do"&&t.context.indented=|!=|<>)/,_zr=/[=\(:\),{}.*<>+\-\/^\[\]]/;function Qg(e,t,n){if(n)for(var r=t.split(" "),o=0;ointeger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),Qzr=V5n("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function Dzr(e,t,n){this.indent=e,this.type=t,this.prev=n}function x8e(e,t,n){e.indentStack=new Dzr(t,n,e.indentStack)}function Bzr(e){e.indentStack=e.indentStack.prev}var Rzr=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),Izr=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),Mzr=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),Pzr=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function Fzr(e){return e.match(Rzr)}function Nzr(e){return e.match(Izr)}function E8e(e,t){return t===!0&&e.backUp(1),e.match(Pzr)}function Uzr(e){return e.match(Mzr)}function tpt(e,t){for(var n,r=!1;(n=e.next())!=null;){if(n==t.token&&!r){t.state.mode=!1;break}r=!r&&n=="\\"}}const jzr={name:"scheme",startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,t){if(t.indentStack==null&&e.sol()&&(t.indentation=e.indentation()),e.eatSpace())return null;var n=null;switch(t.mode){case"string":tpt(e,{token:'"',state:t}),n=Z4t;break;case"symbol":tpt(e,{token:"|",state:t}),n=q4t;break;case"comment":for(var r,o=!1;(r=e.next())!=null;){if(r=="#"&&o){t.mode=!1;break}o=r=="|"}n=d7;break;case"s-expr-comment":if(t.mode=!1,e.peek()=="("||e.peek()=="[")t.sExprComment=0;else{e.eatWhile(/[^\s\(\)\[\]]/),n=d7;break}default:var s=e.next();if(s=='"')t.mode="string",n=Z4t;else if(s=="'")e.peek()=="("||e.peek()=="["?(typeof t.sExprQuote!="number"&&(t.sExprQuote=0),n=J$):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=J$);else if(s=="|")t.mode="symbol",n=q4t;else if(s=="#")if(e.eat("|"))t.mode="comment",n=d7;else if(e.eat(/[tf]/i))n=J$;else if(e.eat(";"))t.mode="s-expr-comment",n=d7;else{var a=null,l=!1,d=!0;e.eat(/[ei]/i)?l=!0:e.backUp(1),e.match(/^#b/i)?a=Fzr:e.match(/^#o/i)?a=Nzr:e.match(/^#x/i)?a=Uzr:e.match(/^#d/i)?a=E8e:e.match(/^[-+0-9.]/,!1)?(d=!1,a=E8e):l||e.eat("#"),a!=null&&(d&&!l&&e.match(/^#[ei]/i),a(e)&&(n=K4t))}else if(/^[-+0-9.]/.test(s)&&E8e(e,!0))n=K4t;else if(s==";")e.skipToEnd(),n=d7;else if(s=="("||s=="["){for(var u="",h=e.column(),g;(g=e.eat(/[^\s\(\[\;\)\]]/))!=null;)u+=g;u.length>0&&Qzr.propertyIsEnumerable(u)?x8e(t,h+Tzr,s):(e.eatSpace(),e.eol()||e.peek()==";"?x8e(t,h+1,s):x8e(t,h+e.current().length,s)),e.backUp(e.current().length-1),typeof t.sExprComment=="number"&&t.sExprComment++,typeof t.sExprQuote=="number"&&t.sExprQuote++,n=J4t}else s==")"||s=="]"?(n=J4t,t.indentStack!=null&&t.indentStack.type==(s==")"?"(":"[")&&(Bzr(t),typeof t.sExprComment=="number"&&--t.sExprComment==0&&(n=d7,t.sExprComment=!1),typeof t.sExprQuote=="number"&&--t.sExprQuote==0&&(n=J$,t.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),ept&&ept.propertyIsEnumerable(e.current())?n=Ezr:n="variable")}return typeof t.sExprComment=="number"?d7:typeof t.sExprQuote=="number"?J$:n},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}},Wzr=Object.freeze(Object.defineProperty({__proto__:null,scheme:jzr},Symbol.toStringTag,{value:"Module"}));var _Fe={};function sJe(e,t){for(var n=0;n1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=tbe(n,n=="("?"quote":n=="{"?"def":"string"),HW(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function Hzr(e){return function(t,n){return t.sol()&&t.string==e&&n.tokens.shift(),t.skipToEnd(),"string.special"}}function HW(e,t){return(t.tokens[0]||Vzr)(e,t)}const $zr={name:"shell",startState:function(){return{tokens:[]}},token:function(e,t){return HW(e,t)},languageData:{autocomplete:z5n.concat(H5n,$5n),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}},Xzr=Object.freeze(Object.defineProperty({__proto__:null,shell:$zr},Symbol.toStringTag,{value:"Module"}));function G5n(e){for(var t={},n=e.split(" "),r=0;r=@%|&?!.,:;^]/,eHr=/true|false|nil|self|super|thisContext/,DG=function(e,t){this.next=e,this.parent=t},uie=function(e,t,n){this.name=e,this.context=t,this.eos=n},Y5n=function(){this.context=new DG(Z5n,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};Y5n.prototype.userIndent=function(e,t){this.userIndentationDelta=e>0?e/t-this.indentation:0};var Z5n=function(e,t,n){var r=new uie(null,t,!1),o=e.next();return o==='"'?r=rpt(e,new DG(rpt,t)):o==="'"?r=opt(e,new DG(opt,t)):o==="#"?e.peek()==="'"?(e.next(),r=spt(e,new DG(spt,t))):e.eatWhile(/[^\s.{}\[\]()]/)?r.name="string.special":r.name="meta":o==="$"?(e.next()==="<"&&(e.eatWhile(/[^\s>]/),e.next()),r.name="string.special"):o==="|"&&n.expectVariable?r.context=new DG(tHr,t):/[\[\]{}()]/.test(o)?(r.name="bracket",r.eos=/[\[{(]/.test(o),o==="["?n.indentation++:o==="]"&&(n.indentation=Math.max(0,n.indentation-1))):ipt.test(o)?(e.eatWhile(ipt),r.name="operator",r.eos=o!==";"):/\d/.test(o)?(e.eatWhile(/[\w\d]/),r.name="number"):/[\w_]/.test(o)?(e.eatWhile(/[\w\d_]/),r.name=n.expectVariable?eHr.test(e.current())?"keyword":"variable":null):r.eos=n.expectVariable,r},rpt=function(e,t){return e.eatWhile(/[^"]/),new uie("comment",e.eat('"')?t.parent:t,!0)},opt=function(e,t){return e.eatWhile(/[^']/),new uie("string",e.eat("'")?t.parent:t,!1)},spt=function(e,t){return e.eatWhile(/[^']/),new uie("string.special",e.eat("'")?t.parent:t,!1)},tHr=function(e,t){var n=new uie(null,t,!1),r=e.next();return r==="|"?(n.context=t.parent,n.eos=!0):(e.eatWhile(/[^|]/),n.name="variable"),n};const nHr={name:"smalltalk",startState:function(){return new Y5n},token:function(e,t){if(t.userIndent(e.indentation(),e.indentUnit),e.eatSpace())return null;var n=t.context.next(e,t.context,t);return t.context=n.context,t.expectVariable=n.eos,n.name},blankLine:function(e,t){e.userIndent(0,t)},indent:function(e,t,n){var r=e.context.next===Z5n&&t&&t.charAt(0)==="]"?-1:e.userIndentationDelta;return(e.indentation+r)*n.unit},languageData:{indentOnInput:/^\s*\]$/}},iHr=Object.freeze(Object.defineProperty({__proto__:null,smalltalk:nHr},Symbol.toStringTag,{value:"Module"}));var q5n=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,rHr=/[\|\!\+\-\*\?\~\^\&]/,oHr=/^(OR|AND|NOT|TO)$/;function sHr(e){return parseFloat(e).toString()===e}function aHr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null&&!(o==e&&!r);)r=!r&&o=="\\";return r||(n.tokenize=hie),"string"}}function lHr(e){return function(t,n){return e=="|"?t.eat(/\|/):e=="&"&&t.eat(/\&/),n.tokenize=hie,"operator"}}function cHr(e){return function(t,n){for(var r=e;(e=t.peek())&&e.match(q5n)!=null;)r+=t.next();return n.tokenize=hie,oHr.test(r)?"operator":sHr(r)?"number":t.peek()==":"?"propertyName":"string"}}function hie(e,t){var n=e.next();return n=='"'?t.tokenize=aHr(n):rHr.test(n)?t.tokenize=lHr(n):q5n.test(n)&&(t.tokenize=cHr(n)),t.tokenize!=hie?t.tokenize(e,t):null}const dHr={name:"solr",startState:function(){return{tokenize:hie}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}},uHr=Object.freeze(Object.defineProperty({__proto__:null,solr:dHr},Symbol.toStringTag,{value:"Module"}));var P_;function K5n(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var hHr=K5n(["str","lang","langmatches","datatype","bound","sameterm","isiri","isuri","iri","uri","bnode","count","sum","min","max","avg","sample","group_concat","rand","abs","ceil","floor","round","concat","substr","strlen","replace","ucase","lcase","encode_for_uri","contains","strstarts","strends","strbefore","strafter","year","month","day","hours","minutes","seconds","timezone","tz","now","uuid","struuid","md5","sha1","sha256","sha384","sha512","coalesce","if","strlang","strdt","isnumeric","regex","exists","isblank","isliteral","a","bind"]),fHr=K5n(["base","prefix","select","distinct","reduced","construct","describe","ask","from","named","where","order","limit","offset","filter","optional","graph","by","asc","desc","as","having","undef","values","group","minus","in","not","service","silent","using","insert","delete","union","true","false","with","data","copy","to","move","add","create","drop","clear","load","into"]),gHr=/[*+\-<>=&|\^\/!\?]/,apt="[A-Za-z_\\-0-9]",mHr=new RegExp("[A-Za-z]"),kHr=new RegExp("(("+apt+"|\\.)*("+apt+"))?:");function J5n(e,t){var n=e.next();if(P_=null,n=="$"||n=="?")return n=="?"&&e.match(/\s/,!1)?"operator":(e.match(/^[A-Za-z0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Za-z0-9_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]*/),"variableName.local");if(n=="<"&&!e.match(/^[\s\u00a0=]/,!1))return e.match(/^[^\s\u00a0>]*>?/),"atom";if(n=='"'||n=="'")return t.tokenize=vHr(n),t.tokenize(e,t);if(/[{}\(\),\.;\[\]]/.test(n))return P_=n,"bracket";if(n=="#")return e.skipToEnd(),"comment";if(gHr.test(n))return"operator";if(n==":")return lpt(e),"atom";if(n=="@")return e.eatWhile(/[a-z\d\-]/i),"meta";if(mHr.test(n)&&e.match(kHr))return lpt(e),"atom";e.eatWhile(/[_\w\d]/);var r=e.current();return hHr.test(r)?"builtin":fHr.test(r)?"keyword":"variable"}function lpt(e){e.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i)}function vHr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){n.tokenize=J5n;break}r=!r&&o=="\\"}return"string"}}function Gae(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function Yae(e){e.indent=e.context.indent,e.context=e.context.prev}const AHr={name:"sparql",startState:function(){return{tokenize:J5n,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"&&(t.context.align=!0),P_=="(")Gae(t,")",e.column());else if(P_=="[")Gae(t,"]",e.column());else if(P_=="{")Gae(t,"}",e.column());else if(/[\]\}\)]/.test(P_)){for(;t.context&&t.context.type=="pattern";)Yae(t);t.context&&P_==t.context.type&&(Yae(t),P_=="}"&&t.context&&t.context.type=="pattern"&&Yae(t))}else P_=="."&&t.context&&t.context.type=="pattern"?Yae(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?Gae(t,"pattern",e.column()):t.context.type=="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type=="pattern";)o=o.prev;var s=o&&r==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0},languageData:{commentTokens:{line:"#"}}},pHr=Object.freeze(Object.defineProperty({__proto__:null,sparql:AHr},Symbol.toStringTag,{value:"Module"})),bHr={name:"spreadsheet",startState:function(){return{stringType:null,stack:[]}},token:function(e,t){if(e){switch(t.stack.length===0&&(e.peek()=='"'||e.peek()=="'")&&(t.stringType=e.peek(),e.next(),t.stack.unshift("string")),t.stack[0]){case"string":for(;t.stack[0]==="string"&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):e.peek()==="\\"?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return"string";case"characterClass":for(;t.stack[0]==="characterClass"&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(/^\\./)||t.stack.shift();return"operator"}var n=e.peek();switch(n){case"[":return e.next(),t.stack.unshift("characterClass"),"bracket";case":":return e.next(),"operator";case"\\":return e.match(/\\[a-z]+/)?"string.special":(e.next(),"atom");case".":case",":case";":case"*":case"-":case"+":case"^":case"<":case"/":case"=":return e.next(),"atom";case"$":return e.next(),"builtin"}return e.match(/\d+/)?e.match(/^\w+/)?"error":"number":e.match(/^[a-zA-Z_]\w*/)?e.match(/(?=[\(.])/,!1)?"keyword":"variable":["[","]","(",")","{","}"].indexOf(n)!=-1?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}},wHr=Object.freeze(Object.defineProperty({__proto__:null,spreadsheet:bHr},Symbol.toStringTag,{value:"Module"}));var e9n=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],aJe=["domain","regexp","url-prefix","url"],t9n=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],n9n=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],i9n=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],r9n=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],o9n=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],s9n=["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"],a9n=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","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","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","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","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","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","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],l9n=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],c9n=["for","if","else","unless","from","to"],d9n=["null","true","false","href","title","type","not-allowed","readonly","disabled"],OHr=["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"],yHr=e9n.concat(aJe,t9n,n9n,i9n,r9n,s9n,a9n,o9n,l9n,c9n,d9n,OHr);function u9n(e){return e=e.sort(function(t,n){return n>t}),new RegExp("^(("+e.join(")|(")+"))\\b")}function I3(e){for(var t={},n=0;n]=?|\?:|\~)/,MHr=u9n(l9n),PHr=I3(c9n),h9n=new RegExp(/^\-(moz|ms|o|webkit)-/i),FHr=I3(d9n),T8e="",aA={},fw,u7,cpt,ws;function NHr(e,t){if(T8e=e.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),t.context.line.firstWord=T8e?T8e[0].replace(/^\s*/,""):"",t.context.line.indent=e.indentation(),fw=e.peek(),e.match("//"))return e.skipToEnd(),["comment","comment"];if(e.match("/*"))return t.tokenize=dpt,dpt(e,t);if(fw=='"'||fw=="'")return e.next(),t.tokenize=f9n(fw),t.tokenize(e,t);if(fw=="@")return e.next(),e.eatWhile(/[\w\\-]/),["def",e.current()];if(fw=="#"){if(e.next(),e.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if(e.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return e.match(h9n)?["meta","vendor-prefixes"]:e.match(/^-?[0-9]?\.?[0-9]/)?(e.eatWhile(/[a-z%]/i),["number","unit"]):fw=="!"?(e.next(),[e.match(/^(important|optional)/i)?"keyword":"operator","important"]):fw=="."&&e.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:e.match(QHr)?(e.peek()=="("&&(t.tokenize=UHr),["property","word"]):e.match(/^[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","mixin"]):e.match(/^(\+|-)[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","block-mixin"]):e.string.match(/^\s*&/)&&e.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:e.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?(e.backUp(1),["variableName.special","reference"]):e.match(/^&{1}\s*$/)?["variableName.special","reference"]:e.match(MHr)?["operator","operator"]:e.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?e.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!sy(e.current())?(e.match("."),["variable","variable-name"]):["variable","word"]:e.match(IHr)?["operator",e.current()]:/[:;,{}\[\]\(\)]/.test(fw)?(e.next(),[null,fw]):(e.next(),[null,null])}function dpt(e,t){for(var n=!1,r;(r=e.next())!=null;){if(n&&r=="/"){t.tokenize=null;break}n=r=="*"}return["comment","comment"]}function f9n(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){e==")"&&t.backUp(1);break}r=!r&&o=="\\"}return(o==e||!r&&e!=")")&&(n.tokenize=null),["string","string"]}}function UHr(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=f9n(")"),[null,"("]}function g9n(e,t,n,r){this.type=e,this.indent=t,this.prev=n,this.line=r||{firstWord:"",indent:0}}function po(e,t,n,r){return r=r>=0?r:t.indentUnit,e.context=new g9n(n,t.indentation()+r,e.context),n}function ZB(e,t,n){var r=e.context.indent-t.indentUnit;return n=n||!1,e.context=e.context.prev,n&&(e.context.indent=r),e.context.type}function jHr(e,t,n){return aA[n.context.type](e,t,n)}function cJe(e,t,n,r){for(var o=1;o>0;o--)n.context=n.context.prev;return jHr(e,t,n)}function sy(e){return e.toLowerCase()in _Hr}function qB(e){return e=e.toLowerCase(),e in SHr||e in RHr}function oD(e){return e.toLowerCase()in PHr}function upt(e){return e.toLowerCase().match(h9n)}function vI(e){var t=e.toLowerCase(),n="variable";return sy(e)?n="tag":oD(e)?n="block-keyword":qB(e)?n="property":t in xHr||t in FHr?n="atom":t=="return"||t in EHr?n="keyword":e.match(/^[A-Z]/)&&(n="string"),n}function m9n(e,t){return l0(t)&&(e=="{"||e=="]"||e=="hash"||e=="qualifier")||e=="block-mixin"}function k9n(e,t){return e=="{"&&t.match(/^\s*\$?[\w-]+/i,!1)}function v9n(e,t){return e==":"&&t.match(/^[a-z-]+/,!1)}function AT(e){return e.sol()||e.string.match(new RegExp("^\\s*"+CHr(e.current())))}function l0(e){return e.eol()||e.match(/^\s*$/,!1)}function S4(e){var t=/^\s*[-_]*[a-z0-9]+[\w-]*/i,n=typeof e=="string"?e.match(t):e.string.match(t);return n?n[0].replace(/^\s*/,""):""}aA.block=function(e,t,n){if(e=="comment"&&AT(t)||e==","&&l0(t)||e=="mixin")return po(n,t,"block",0);if(k9n(e,t))return po(n,t,"interpolation");if(l0(t)&&e=="]"&&!/^\s*(\.|#|:|\[|\*|&)/.test(t.string)&&!sy(S4(t)))return po(n,t,"block",0);if(m9n(e,t))return po(n,t,"block");if(e=="}"&&l0(t))return po(n,t,"block",0);if(e=="variable-name")return t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||oD(S4(t))?po(n,t,"variableName"):po(n,t,"variableName",0);if(e=="=")return!l0(t)&&!oD(S4(t))?po(n,t,"block",0):po(n,t,"block");if(e=="*"&&(l0(t)||t.match(/\s*(,|\.|#|\[|:|{)/,!1)))return ws="tag",po(n,t,"block");if(v9n(e,t))return po(n,t,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test(e))return po(n,t,l0(t)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return po(n,t,"keyframes");if(/@extends?/.test(e))return po(n,t,"extend",0);if(e&&e.charAt(0)=="@")return t.indentation()>0&&qB(t.current().slice(1))?(ws="variable","block"):/(@import|@require|@charset)/.test(e)?po(n,t,"block",0):po(n,t,"block");if(e=="reference"&&l0(t))return po(n,t,"block");if(e=="(")return po(n,t,"parens");if(e=="vendor-prefixes")return po(n,t,"vendorPrefixes");if(e=="word"){var r=t.current();if(ws=vI(r),ws=="property")return AT(t)?po(n,t,"block",0):(ws="atom","block");if(ws=="tag"){if(/embed|menu|pre|progress|sub|table/.test(r)&&qB(S4(t))||t.string.match(new RegExp("\\[\\s*"+r+"|"+r+"\\s*\\]")))return ws="atom","block";if(lJe.test(r)&&(AT(t)&&t.string.match(/=/)||!AT(t)&&!t.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!sy(S4(t))))return ws="variable",oD(S4(t))?"block":po(n,t,"block",0);if(l0(t))return po(n,t,"block")}if(ws=="block-keyword")return ws="keyword",t.current(/(if|unless)/)&&!AT(t)?"block":po(n,t,"block");if(r=="return")return po(n,t,"block",0);if(ws=="variable"&&t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return po(n,t,"block")}return n.context.type};aA.parens=function(e,t,n){if(e=="(")return po(n,t,"parens");if(e==")")return n.context.prev.type=="parens"?ZB(n,t):t.string.match(/^[a-z][\w-]*\(/i)&&l0(t)||oD(S4(t))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(S4(t))||!t.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&sy(S4(t))?po(n,t,"block"):t.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||t.string.match(/^\s*(\(|\)|[0-9])/)||t.string.match(/^\s+[a-z][\w-]*\(/i)||t.string.match(/^\s+[\$-]?[a-z]/i)?po(n,t,"block",0):l0(t)?po(n,t,"block"):po(n,t,"block",0);if(e&&e.charAt(0)=="@"&&qB(t.current().slice(1))&&(ws="variable"),e=="word"){var r=t.current();ws=vI(r),ws=="tag"&&lJe.test(r)&&(ws="variable"),(ws=="property"||r=="to")&&(ws="atom")}return e=="variable-name"?po(n,t,"variableName"):v9n(e,t)?po(n,t,"pseudo"):n.context.type};aA.vendorPrefixes=function(e,t,n){return e=="word"?(ws="property",po(n,t,"block",0)):ZB(n,t)};aA.pseudo=function(e,t,n){return qB(S4(t.string))?cJe(e,t,n):(t.match(/^[a-z-]+/),ws="variableName.special",l0(t)?po(n,t,"block"):ZB(n,t))};aA.atBlock=function(e,t,n){if(e=="(")return po(n,t,"atBlock_parens");if(m9n(e,t))return po(n,t,"block");if(k9n(e,t))return po(n,t,"interpolation");if(e=="word"){var r=t.current().toLowerCase();if(/^(only|not|and|or)$/.test(r)?ws="keyword":THr.hasOwnProperty(r)?ws="tag":BHr.hasOwnProperty(r)?ws="attribute":DHr.hasOwnProperty(r)?ws="property":LHr.hasOwnProperty(r)?ws="string.special":ws=vI(t.current()),ws=="tag"&&l0(t))return po(n,t,"block")}return e=="operator"&&/^(not|and|or)$/.test(t.current())&&(ws="keyword"),n.context.type};aA.atBlock_parens=function(e,t,n){if(e=="{"||e=="}")return n.context.type;if(e==")")return l0(t)?po(n,t,"block"):po(n,t,"atBlock");if(e=="word"){var r=t.current().toLowerCase();return ws=vI(r),/^(max|min)/.test(r)&&(ws="property"),ws=="tag"&&(lJe.test(r)?ws="variable":ws="atom"),n.context.type}return aA.atBlock(e,t,n)};aA.keyframes=function(e,t,n){return t.indentation()=="0"&&(e=="}"&&AT(t)||e=="]"||e=="hash"||e=="qualifier"||sy(t.current()))?cJe(e,t,n):e=="{"?po(n,t,"keyframes"):e=="}"?AT(t)?ZB(n,t,!0):po(n,t,"keyframes"):e=="unit"&&/^[0-9]+\%$/.test(t.current())?po(n,t,"keyframes"):e=="word"&&(ws=vI(t.current()),ws=="block-keyword")?(ws="keyword",po(n,t,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test(e)?po(n,t,l0(t)?"block":"atBlock"):e=="mixin"?po(n,t,"block",0):n.context.type};aA.interpolation=function(e,t,n){return e=="{"&&ZB(n,t)&&po(n,t,"block"),e=="}"?t.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||t.string.match(/^\s*[a-z]/i)&&sy(S4(t))?po(n,t,"block"):!t.string.match(/^(\{|\s*\&)/)||t.match(/\s*[\w-]/,!1)?po(n,t,"block",0):po(n,t,"block"):e=="variable-name"?po(n,t,"variableName",0):(e=="word"&&(ws=vI(t.current()),ws=="tag"&&(ws="atom")),n.context.type)};aA.extend=function(e,t,n){return e=="["||e=="="?"extend":e=="]"?ZB(n,t):e=="word"?(ws=vI(t.current()),"extend"):ZB(n,t)};aA.variableName=function(e,t,n){return e=="string"||e=="["||e=="]"||t.current().match(/^(\.|\$)/)?(t.current().match(/^\.[\w-]+/i)&&(ws="variable"),"variableName"):cJe(e,t,n)};const WHr={name:"stylus",startState:function(){return{tokenize:null,state:"block",context:new g9n("block",0,null)}},token:function(e,t){return!t.tokenize&&e.eatSpace()?null:(u7=(t.tokenize||NHr)(e,t),u7&&typeof u7=="object"&&(cpt=u7[1],u7=u7[0]),ws=u7,t.state=aA[t.state](cpt,e,t),ws)},indent:function(e,t,n){var r=e.context,o=t&&t.charAt(0),s=r.indent,a=S4(t),l=r.line.indent,d=e.context.prev?e.context.prev.line.firstWord:"",u=e.context.prev?e.context.prev.line.indent:l;return r.prev&&(o=="}"&&(r.type=="block"||r.type=="atBlock"||r.type=="keyframes")||o==")"&&(r.type=="parens"||r.type=="atBlock_parens")||o=="{"&&r.type=="at")?s=r.indent-n.unit:/(\})/.test(o)||(/@|\$|\d/.test(o)||/^\{/.test(t)||/^\s*\/(\/|\*)/.test(t)||/^\s*\/\*/.test(d)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(t)||/^(\+|-)?[a-z][\w-]*\(/i.test(t)||/^return/.test(t)||oD(a)?s=l:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(o)||sy(a)?/\,\s*$/.test(d)?s=u:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(d)||sy(d)?s=l<=u?u:u+n.unit:s=l:!/,\s*$/.test(t)&&(upt(a)||qB(a))&&(oD(d)?s=l<=u?u:u+n.unit:/^\{/.test(d)?s=l<=u?l:u+n.unit:upt(d)||qB(d)?s=l>=u?u:l:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(d)||/=\s*$/.test(d)||sy(d)||/^\$[\w-\.\[\]\'\"]/.test(d)?s=u+n.unit:s=l)),s},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:yHr}},VHr=Object.freeze(Object.defineProperty({__proto__:null,stylus:WHr},Symbol.toStringTag,{value:"Module"}));function nbe(e){for(var t={},n=0;n~^?!",YHr=":;,.(){}[]",ZHr=/^\-?0b[01][01_]*/,qHr=/^\-?0o[0-7][0-7_]*/,KHr=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,JHr=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,e$r=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,t$r=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,n$r=/^\#[A-Za-z]+/,i$r=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function A9n(e,t,n){if(e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;var r=e.peek();if(r=="/"){if(e.match("//"))return e.skipToEnd(),"comment";if(e.match("/*"))return t.tokenize.push(SFe),SFe(e,t)}if(e.match(n$r))return"builtin";if(e.match(i$r))return"attribute";if(e.match(ZHr)||e.match(qHr)||e.match(KHr)||e.match(JHr))return"number";if(e.match(t$r))return"property";if(GHr.indexOf(r)>-1)return e.next(),"operator";if(YHr.indexOf(r)>-1)return e.next(),e.match(".."),"punctuation";var o;if(o=e.match(/("""|"|')/)){var s=o$r.bind(null,o[0]);return t.tokenize.push(s),s(e,t)}if(e.match(e$r)){var a=e.current();return XHr.hasOwnProperty(a)?"type":$Hr.hasOwnProperty(a)?"atom":zHr.hasOwnProperty(a)?(HHr.hasOwnProperty(a)&&(t.prev="define"),"keyword"):n=="define"?"def":"variable"}return e.next(),null}function r$r(){var e=0;return function(t,n,r){var o=A9n(t,n,r);if(o=="punctuation"){if(t.current()=="(")++e;else if(t.current()==")"){if(e==0)return t.backUp(1),n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);--e}}return o}}function o$r(e,t,n){for(var r=e.length==1,o,s=!1;o=t.peek();)if(s){if(t.next(),o=="(")return n.tokenize.push(r$r()),"string";s=!1}else{if(t.match(e))return n.tokenize.pop(),"string";t.next(),s=o=="\\"}return r&&n.tokenize.pop(),"string"}function SFe(e,t){for(var n;n=e.next();)if(n==="/"&&e.eat("*"))t.tokenize.push(SFe);else if(n==="*"&&e.eat("/")){t.tokenize.pop();break}return"comment"}function s$r(e,t,n){this.prev=e,this.align=t,this.indented=n}function a$r(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:t.column()+1;e.context=new s$r(e.context,n,e.indented)}function l$r(e){e.context&&(e.indented=e.context.indented,e.context=e.context.prev)}const c$r={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=t.tokenize[t.tokenize.length-1]||A9n,o=r(e,t,n);if(!o||o=="comment"?t.prev=n:t.prev||(t.prev=o),o=="punctuation"){var s=/[\(\[\{]|([\]\)\}])/.exec(e.current());s&&(s[1]?l$r:a$r)(t,e)}return o},indent:function(e,t,n){var r=e.context;if(!r)return 0;var o=/^[\]\}\)]/.test(t);return r.align!=null?r.align-(o?1:0):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}},d$r=Object.freeze(Object.defineProperty({__proto__:null,swift:c$r},Symbol.toStringTag,{value:"Module"}));function p9n(e){function t(g,m){g.cmdState.push(m)}function n(g){return g.cmdState.length>0?g.cmdState[g.cmdState.length-1]:null}function r(g){var m=g.cmdState.pop();m&&m.closeBracket()}function o(g){for(var m=g.cmdState,v=m.length-1;v>=0;v--){var f=m[v];if(f.name!="DEFAULT")return f}return{styleIdentifier:function(){return null}}}function s(g,m,v){return function(){this.name=g,this.bracketNo=0,this.style=m,this.styles=v,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var a={};a.importmodule=s("importmodule","tag",["string","builtin"]),a.documentclass=s("documentclass","tag",["","atom"]),a.usepackage=s("usepackage","tag",["atom"]),a.begin=s("begin","tag",["atom"]),a.end=s("end","tag",["atom"]),a.label=s("label","tag",["atom"]),a.ref=s("ref","tag",["atom"]),a.eqref=s("eqref","tag",["atom"]),a.cite=s("cite","tag",["atom"]),a.bibitem=s("bibitem","tag",["atom"]),a.Bibitem=s("Bibitem","tag",["atom"]),a.RBibitem=s("RBibitem","tag",["atom"]),a.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}};function l(g,m){g.f=m}function d(g,m){var v;if(g.match(/^\\[a-zA-Z@\xc0-\u1fff\u2060-\uffff]+/)){var f=g.current().slice(1);return v=a.hasOwnProperty(f)?a[f]:a.DEFAULT,v=new v,t(m,v),l(m,h),v.style}if(g.match(/^\\[$&%#{}_]/)||g.match(/^\\[,;!\/\\]/))return"tag";if(g.match("\\["))return l(m,function(A,p){return u(A,p,"\\]")}),"keyword";if(g.match("\\("))return l(m,function(A,p){return u(A,p,"\\)")}),"keyword";if(g.match("$$"))return l(m,function(A,p){return u(A,p,"$$")}),"keyword";if(g.match("$"))return l(m,function(A,p){return u(A,p,"$")}),"keyword";var k=g.next();if(k=="%")return g.skipToEnd(),"comment";if(k=="}"||k=="]"){if(v=n(m),v)v.closeBracket(k),l(m,h);else return"error";return"bracket"}else return k=="{"||k=="["?(v=a.DEFAULT,v=new v,t(m,v),"bracket"):/\d/.test(k)?(g.eatWhile(/[\w.%]/),"atom"):(g.eatWhile(/[\w\-_]/),v=o(m),v.name=="begin"&&(v.argument=g.current()),v.styleIdentifier())}function u(g,m,v){if(g.eatSpace())return null;if(v&&g.match(v))return l(m,d),"keyword";if(g.match(/^\\[a-zA-Z@]+/))return"tag";if(g.match(/^[a-zA-Z]+/))return"variableName.special";if(g.match(/^\\[$&%#{}_]/)||g.match(/^\\[,;!\/]/)||g.match(/^[\^_&]/))return"tag";if(g.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(g.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var f=g.next();return f=="{"||f=="}"||f=="["||f=="]"||f=="("||f==")"?"bracket":f=="%"?(g.skipToEnd(),"comment"):"error"}function h(g,m){var v=g.peek(),f;return v=="{"||v=="["?(f=n(m),f.openBracket(v),g.eat(v),l(m,d),"bracket"):/[ \t\r]/.test(v)?(g.eat(v),null):(l(m,d),r(m),d(g,m))}return{name:"stex",startState:function(){var g=e?function(m,v){return u(m,v)}:d;return{cmdState:[],f:g}},copyState:function(g){return{cmdState:g.cmdState.slice(),f:g.f}},token:function(g,m){return m.f(g,m)},blankLine:function(g){g.f=d,g.cmdState.length=0},languageData:{commentTokens:{line:"%"}}}}const u$r=p9n(!1),h$r=p9n(!0),hpt=Object.freeze(Object.defineProperty({__proto__:null,stex:u$r,stexMath:h$r},Symbol.toStringTag,{value:"Module"}));function b9n(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,r=e.noIndentKeywords||[],o=e.multiLineStrings,s=e.hooks||{};function a(R){for(var I={},F=R.split(" "),j=0;j=0)return j}var W=R.context,H=I&&I.charAt(0);W.type=="statement"&&H=="}"&&(W=W.prev);var $=!1,G=I.match(A);return G&&($=M(G[0],W.type)),W.type=="statement"?W.indented+(H=="{"?0:t||F.unit):p.test(W.type)&&W.align&&!n?W.column+($?0:1):W.type==")"&&!$?W.indented+(t||F.unit):W.indented+($?0:F.unit)},languageData:{indentOnInput:B(),commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}const f$r=b9n({});var Q8e={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"contentSeparator","/":"property","/-":"property","@":"variableName.special","@-":"variableName.special","@++":"variableName.special","@+=":"variableName.special","@+=-":"variableName.special","@--":"variableName.special","@-=":"variableName.special","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable","**":"variable","\\":"keyword",'"':"comment"},fpt={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"},D8e=3,gpt=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,g$r=/^[! ] */,m$r=/^\/[\/\*]/;const k$r=b9n({hooks:{electricInput:!1,token:function(e,t){var n=void 0,r;if(e.sol()&&!t.tlvInBlockComment){e.peek()=="\\"&&(n="def",e.skipToEnd(),e.string.match(/\\SV/)?t.tlvCodeActive=!1:e.string.match(/\\TLV/)&&(t.tlvCodeActive=!0)),t.tlvCodeActive&&e.pos==0&&t.indented==0&&(r=e.match(g$r,!1))&&(t.indented=r[0].length);var o=t.indented,s=o/D8e;if(s<=t.tlvIndentationStyle.length){var a=e.string.length==o,l=s*D8e;if(l0||(t.tlvIndentationStyle[s]=fpt[u],s++))}if(!a)for(;t.tlvIndentationStyle.length>s;)t.tlvIndentationStyle.pop()}t.tlvNextIndent=o}if(t.tlvCodeActive){var r;if(n===void 0)if(t.tlvInBlockComment)e.match(/^.*?\*\//)?t.tlvInBlockComment=!1:e.skipToEnd(),n="comment";else if((r=e.match(m$r))&&!t.tlvInBlockComment)r[0]=="//"?e.skipToEnd():t.tlvInBlockComment=!0,n="comment";else if(r=e.match(gpt)){var h=r[1],g=r[2];Q8e.hasOwnProperty(h)&&(g.length>0||e.eol())?n=Q8e[h]:e.backUp(e.current().length-1)}else e.match(/^\t+/)?n="invalid":e.match(/^[\[\]{}\(\);\:]+/)?n="meta":(r=e.match(/^[mM]4([\+_])?[\w\d_]*/))?n=r[1]=="+"?"keyword.special":"keyword":e.match(/^ +/)?e.eol()&&(n="error"):e.match(/^[\w\d_]+/)?n="number":e.next()}else e.match(/^[mM]4([\w\d_]*)/)&&(n="keyword");return n},indent:function(e){return e.tlvCodeActive==!0?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[],e.tlvCodeActive=!0,e.tlvNextIndent=-1,e.tlvInBlockComment=!1}}}),mpt=Object.freeze(Object.defineProperty({__proto__:null,tlv:k$r,verilog:f$r},Symbol.toStringTag,{value:"Module"}));function w9n(e){for(var t={},n=e.split(" "),r=0;r!?^\/\|]/;function B8e(e,t,n){return t.tokenize=n,n(e,t)}function ibe(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if((r=='"'||r=="'")&&t.inParams)return B8e(e,t,v$r(r));if(/[\[\]{}\(\),;\.]/.test(r))return r=="("&&n?t.inParams=!0:r==")"&&(t.inParams=!1),null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if(r=="#")return e.eat("*")?B8e(e,t,A$r):r=="#"&&e.match(/ *\[ *\[/)?B8e(e,t,p$r):(e.skipToEnd(),"comment");if(r=='"')return e.skipTo(/"/),"comment";if(r=="$")return e.eatWhile(/[$_a-z0-9A-Z\.{:]/),e.eatWhile(/}/),t.beforeParams=!0,"builtin";if(Apt.test(r))return e.eatWhile(Apt),"comment";e.eatWhile(/[\w\$_{}\xa1-\uffff]/);var o=e.current().toLowerCase();return kpt&&kpt.propertyIsEnumerable(o)?"keyword":vpt&&vpt.propertyIsEnumerable(o)?(t.beforeParams=!0,"keyword"):null}function v$r(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}r=!r&&o=="\\"}return s&&(n.tokenize=ibe),"string"}}function A$r(e,t){for(var n=!1,r;r=e.next();){if(r=="#"&&n){t.tokenize=ibe;break}n=r=="*"}return"comment"}function p$r(e,t){for(var n=0,r;r=e.next();){if(r=="#"&&n==2){t.tokenize=ibe;break}r=="]"?n++:r!=" "&&(n=0)}return"meta"}const b$r={name:"tcl",startState:function(){return{tokenize:ibe,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"#"}}},w$r=Object.freeze(Object.defineProperty({__proto__:null,tcl:b$r},Symbol.toStringTag,{value:"Module"}));var Tv={addition:"inserted",attributes:"propertyName",bold:"strong",cite:"keyword",code:"monospace",definitionList:"list",deletion:"deleted",div:"punctuation",em:"emphasis",footnote:"variable",footCite:"qualifier",header:"heading",html:"comment",image:"atom",italic:"emphasis",link:"link",linkDefinition:"link",list1:"list",list2:"list.special",list3:"list",notextile:"string.special",pre:"operator",p:"content",quote:"bracket",span:"quote",specialChar:"character",strong:"strong",sub:"content.special",sup:"content.special",table:"variableName.special",tableHeading:"operator"};function O$r(e,t){t.mode=nu.newLayout,t.tableHeading=!1,t.layoutType==="definitionList"&&t.spanningLayout&&e.match(Fl("definitionListEnd"),!1)&&(t.spanningLayout=!1)}function ppt(e,t,n){if(n==="_")return e.eat("_")?X2(e,t,"italic",/__/,2):X2(e,t,"em",/_/,1);if(n==="*")return e.eat("*")?X2(e,t,"bold",/\*\*/,2):X2(e,t,"strong",/\*/,1);if(n==="[")return e.match(/\d+\]/)&&(t.footCite=!0),t0(t);if(n==="("){var r=e.match(/^(r|tm|c)\)/);if(r)return Tv.specialChar}if(n==="<"&&e.match(/(\w+)[^>]+>[^<]+<\/\1>/))return Tv.html;if(n==="?"&&e.eat("?"))return X2(e,t,"cite",/\?\?/,2);if(n==="="&&e.eat("="))return X2(e,t,"notextile",/==/,2);if(n==="-"&&!e.eat("-"))return X2(e,t,"deletion",/-/,1);if(n==="+")return X2(e,t,"addition",/\+/,1);if(n==="~")return X2(e,t,"sub",/~/,1);if(n==="^")return X2(e,t,"sup",/\^/,1);if(n==="%")return X2(e,t,"span",/%/,1);if(n==="@")return X2(e,t,"code",/@/,1);if(n==="!"){var o=X2(e,t,"image",/(?:\([^\)]+\))?!/,1);return e.match(/^:\S+/),o}return t0(t)}function X2(e,t,n,r,o){var s=e.pos>o?e.string.charAt(e.pos-o-1):null,a=e.peek();if(t[n]){if((!a||/\W/.test(a))&&s&&/\S/.test(s)){var l=t0(t);return t[n]=!1,l}}else(!s||/\W/.test(s))&&a&&/\S/.test(a)&&e.match(new RegExp("^.*\\S"+r.source+"(?:\\W|$)"),!1)&&(t[n]=!0,t.mode=nu.attributes);return t0(t)}function t0(e){var t=O9n(e);if(t)return t;var n=[];return e.layoutType&&n.push(Tv[e.layoutType]),n=n.concat(y$r(e,"addition","bold","cite","code","deletion","em","footCite","image","italic","link","span","strong","sub","sup","table","tableHeading")),e.layoutType==="header"&&n.push(Tv.header+"-"+e.header),n.length?n.join(" "):null}function O9n(e){var t=e.layoutType;switch(t){case"notextile":case"code":case"pre":return Tv[t];default:return e.notextile?Tv.notextile+(t?" "+Tv[t]:""):null}}function y$r(e){for(var t=[],n=1;n]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(e){switch(e){case"drawTable":return oa.makeRe("^",oa.single.drawTable,"$");case"html":return oa.makeRe("^",oa.single.html,"(?:",oa.single.html,")*","$");case"linkDefinition":return oa.makeRe("^",oa.single.linkDefinition,"$");case"listLayout":return oa.makeRe("^",oa.single.list,Fl("allAttributes"),"*\\s+");case"tableCellAttributes":return oa.makeRe("^",oa.choiceRe(oa.single.tableCellAttributes,Fl("allAttributes")),"+\\.");case"type":return oa.makeRe("^",Fl("allTypes"));case"typeLayout":return oa.makeRe("^",Fl("allTypes"),Fl("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return oa.makeRe("^",Fl("allAttributes"),"+");case"allTypes":return oa.choiceRe(oa.single.div,oa.single.foot,oa.single.header,oa.single.bc,oa.single.bq,oa.single.notextile,oa.single.pre,oa.single.table,oa.single.para);case"allAttributes":return oa.choiceRe(oa.attributes.selector,oa.attributes.css,oa.attributes.lang,oa.attributes.align,oa.attributes.pad);default:return oa.makeRe("^",oa.single[e])}},makeRe:function(){for(var e="",t=0;t$/,P$r=/^\x3C!--\}\}\}-->$/,F$r=/^\{\{\{$/,N$r=/^\}\}\}$/,U$r=/.*?\}\}\}/;function fx(e,t,n){return t.tokenize=n,n(e,t)}function Oy(e,t){var n=e.sol(),r=e.peek();if(t.block=!1,n&&/[<\/\*{}\-]/.test(r)){if(e.match(F$r))return t.block=!0,fx(e,t,bpt);if(e.match(B$r))return"quote";if(e.match(Q$r)||e.match(D$r)||e.match(R$r)||e.match(I$r)||e.match(M$r)||e.match(P$r))return"comment";if(e.match(T$r))return"contentSeparator"}if(e.next(),n&&/[\/\*!#;:>|]/.test(r)){if(r=="!")return e.skipToEnd(),"header";if(r=="*")return e.eatWhile("*"),"comment";if(r=="#")return e.eatWhile("#"),"comment";if(r==";")return e.eatWhile(";"),"comment";if(r==":")return e.eatWhile(":"),"comment";if(r==">")return e.eatWhile(">"),"quote";if(r=="|")return"header"}if(r=="{"&&e.match("{{"))return fx(e,t,bpt);if(/[hf]/i.test(r)&&/[ti]/i.test(e.peek())&&e.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if(r=='"')return"string";if(r=="~"||/[\[\]]/.test(r)&&e.match(r))return"brace";if(r=="@")return e.eatWhile(E$r),"link";if(/\d/.test(r))return e.eatWhile(/\d/),"number";if(r=="/"){if(e.eat("%"))return fx(e,t,j$r);if(e.eat("/"))return fx(e,t,V$r)}if(r=="_"&&e.eat("_"))return fx(e,t,z$r);if(r=="-"&&e.eat("-")){if(e.peek()!=" ")return fx(e,t,H$r);if(e.peek()==" ")return"brace"}return r=="'"&&e.eat("'")?fx(e,t,W$r):r=="<"&&e.eat("<")?fx(e,t,$$r):(e.eatWhile(/[\w\$_]/),L$r.propertyIsEnumerable(e.current())?"keyword":null)}function j$r(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=Oy;break}n=r=="%"}return"comment"}function W$r(e,t){for(var n=!1,r;r=e.next();){if(r=="'"&&n){t.tokenize=Oy;break}n=r=="'"}return"strong"}function bpt(e,t){var n=t.block;return n&&e.current()?"comment":!n&&e.match(U$r)||n&&e.sol()&&e.match(N$r)?(t.tokenize=Oy,"comment"):(e.next(),"comment")}function V$r(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=Oy;break}n=r=="/"}return"emphasis"}function z$r(e,t){for(var n=!1,r;r=e.next();){if(r=="_"&&n){t.tokenize=Oy;break}n=r=="_"}return"link"}function H$r(e,t){for(var n=!1,r;r=e.next();){if(r=="-"&&n){t.tokenize=Oy;break}n=r=="-"}return"deleted"}function $$r(e,t){if(e.current()=="<<")return"meta";var n=e.next();return n?n==">"&&e.peek()==">"?(e.next(),t.tokenize=Oy,"meta"):(e.eatWhile(/[\w\$_]/),x$r.propertyIsEnumerable(e.current())?"keyword":null):(t.tokenize=Oy,null)}const X$r={name:"tiddlywiki",startState:function(){return{tokenize:Oy}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n}},G$r=Object.freeze(Object.defineProperty({__proto__:null,tiddlyWiki:X$r},Symbol.toStringTag,{value:"Module"}));function $p(e,t,n){return function(r,o){for(;!r.eol();){if(r.match(t)){o.tokenize=w4;break}r.next()}return n&&(o.tokenize=n),e}}function vP(e){return function(t,n){for(;!t.eol();)t.next();return n.tokenize=w4,e}}function w4(e,t){function n(s){return t.tokenize=s,s(e,t)}var r=e.sol(),o=e.next();switch(o){case"{":return e.eat("/"),e.eatSpace(),e.eatWhile(/[^\s\u00a0=\"\'\/?(}]/),t.tokenize=dJe,"tag";case"_":if(e.eat("_"))return n($p("strong","__",w4));break;case"'":if(e.eat("'"))return n($p("em","''",w4));break;case"(":if(e.eat("("))return n($p("link","))",w4));break;case"[":return n($p("url","]",w4));case"|":if(e.eat("|"))return n($p("comment","||"));break;case"-":if(e.eat("="))return n($p("header string","=-",w4));if(e.eat("-"))return n($p("error tw-deleted","--",w4));break;case"=":if(e.match("=="))return n($p("tw-underline","===",w4));break;case":":if(e.eat(":"))return n($p("comment","::"));break;case"^":return n($p("tw-box","^"));case"~":if(e.match("np~"))return n($p("meta","~/np~"));break}if(r)switch(o){case"!":return e.match("!!!!!")||e.match("!!!!")||e.match("!!!")||e.match("!!"),n(vP("header string"));case"*":case"#":case"+":return n(vP("tw-listitem bracket"))}return null}var LFe,Mue;function dJe(e,t){var n=e.next(),r=e.peek();return n=="}"?(t.tokenize=w4,"tag"):n=="("||n==")"?"bracket":n=="="?(Mue="equals",r==">"&&(e.next(),r=e.peek()),/[\'\"]/.test(r)||(t.tokenize=Z$r()),"operator"):/[\'\"]/.test(n)?(t.tokenize=Y$r(n),t.tokenize(e,t)):(e.eatWhile(/[^\s\u00a0=\"\'\/?]/),"keyword")}function Y$r(e){return function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=dJe;break}return"string"}}function Z$r(){return function(e,t){for(;!e.eol();){var n=e.next(),r=e.peek();if(n==" "||n==","||/[ )}]/.test(r)){t.tokenize=dJe;break}}return"string"}}var ug,$W;function fie(){for(var e=arguments.length-1;e>=0;e--)ug.cc.push(arguments[e])}function Vv(){return fie.apply(null,arguments),!0}function y9n(e,t){var n=ug.context&&ug.context.noIndent;ug.context={prev:ug.context,pluginName:e,indent:ug.indented,startOfLine:t,noIndent:n}}function wpt(){ug.context&&(ug.context=ug.context.prev)}function q$r(e){if(e=="openPlugin")return ug.pluginName=LFe,Vv(xFe,K$r(ug.startOfLine));if(e=="closePlugin"){var t=!1;return ug.context?(t=ug.context.pluginName!=LFe,wpt()):t=!0,t&&($W="error"),Vv(J$r(t))}else return e=="string"&&((!ug.context||ug.context.name!="!cdata")&&y9n("!cdata"),ug.tokenize==w4&&wpt()),Vv()}function K$r(e){return function(t){return t=="selfclosePlugin"||t=="endPlugin"||t=="endPlugin"&&y9n(ug.pluginName,e),Vv()}}function J$r(e){return function(t){return e&&($W="error"),t=="endPlugin"?Vv():fie()}}function xFe(e){return e=="keyword"?($W="attribute",Vv(xFe)):e=="equals"?Vv(eXr,xFe):fie()}function eXr(e){return e=="keyword"?($W="string",Vv()):e=="string"?Vv(C9n):fie()}function C9n(e){return e=="string"?Vv(C9n):fie()}const tXr={name:"tiki",startState:function(){return{tokenize:w4,cc:[],indented:0,startOfLine:!0,pluginName:null,context:null}},token:function(e,t){if(e.sol()&&(t.startOfLine=!0,t.indented=e.indentation()),e.eatSpace())return null;$W=Mue=LFe=null;var n=t.tokenize(e,t);if((n||Mue)&&n!="comment")for(ug=t;;){var r=t.cc.pop()||q$r;if(r(Mue||n))break}return t.startOfLine=!1,$W||n},indent:function(e,t,n){var r=e.context;if(r&&r.noIndent)return 0;for(r&&/^{\//.test(t)&&(r=r.prev);r&&!r.startOfLine;)r=r.prev;return r?r.indent+n.unit:0}},nXr=Object.freeze(Object.defineProperty({__proto__:null,tiki:tXr},Symbol.toStringTag,{value:"Module"})),iXr={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,t){let n;if(!t.inString&&(n=e.match(/^('''|"""|'|")/))&&(t.stringType=n[0],t.inString=!0),e.sol()&&!t.inString&&t.inArray===0&&(t.lhs=!0),t.inString){for(;t.inString;)if(e.match(t.stringType))t.inString=!1;else if(e.peek()==="\\")e.next(),e.next();else{if(e.eol())break;e.match(/^.[^\\\"\']*/)}return t.lhs?"property":"string"}else{if(t.inArray&&e.peek()==="]")return e.next(),t.inArray--,"bracket";if(t.lhs&&e.peek()==="["&&e.skipTo("]"))return e.next(),e.peek()==="]"&&e.next(),"atom";if(e.peek()==="#")return e.skipToEnd(),"comment";if(e.eatSpace())return null;if(t.lhs&&e.eatWhile(function(r){return r!="="&&r!=" "}))return"property";if(t.lhs&&e.peek()==="=")return e.next(),t.lhs=!1,null;if(!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!t.lhs&&(e.match("true")||e.match("false")))return"atom";if(!t.lhs&&e.peek()==="[")return t.inArray++,e.next(),"bracket";if(!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/))return"number";e.eatSpace()||e.next()}return null},languageData:{commentTokens:{line:"#"}}},rXr=Object.freeze(Object.defineProperty({__proto__:null,toml:iXr},Symbol.toStringTag,{value:"Module"}));var Opt={};function oXr(e){if(e.eatSpace())return null;var t=e.sol(),n=e.next();if(n==="\\")return e.match("fB")||e.match("fR")||e.match("fI")||e.match("u")||e.match("d")||e.match("%")||e.match("&")?"string":e.match("m[")?(e.skipTo("]"),e.next(),"string"):e.match("s+")||e.match("s-")?(e.eatWhile(/[\d-]/),"string"):((e.match("(")||e.match("*("))&&e.eatWhile(/[\w-]/),"string");if(t&&(n==="."||n==="'")&&e.eat("\\")&&e.eat('"'))return e.skipToEnd(),"comment";if(t&&n==="."){if(e.match("B ")||e.match("I ")||e.match("R "))return"attribute";if(e.match("TH ")||e.match("SH ")||e.match("SS ")||e.match("HP "))return e.skipToEnd(),"quote";if(e.match(/[A-Z]/)&&e.match(/[A-Z]/)||e.match(/[a-z]/)&&e.match(/[a-z]/))return"attribute"}e.eatWhile(/[\w-]/);var r=e.current();return Opt.hasOwnProperty(r)?Opt[r]:null}function sXr(e,t){return(t.tokens[0]||oXr)(e,t)}const aXr={name:"troff",startState:function(){return{tokens:[]}},token:function(e,t){return sXr(e,t)}},lXr=Object.freeze(Object.defineProperty({__proto__:null,troff:aXr},Symbol.toStringTag,{value:"Module"}));function hk(e){for(var t={},n=e.split(" "),r=0;r!\/]/,KA;function CXr(e,t){var n=e.next();if(n=='"'||n=="'")return t.tokenize=_Xr(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\\:\?\.]/.test(n))return KA=n,"punctuation";if(n=="#")return e.skipToEnd(),"atom";if(n=="%")return e.eatWhile(/\b/),"atom";if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("*"))return t.tokenize=Cpt,Cpt(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(ypt.test(n))return n=="@"&&(e.match("try")||e.match("catch")||e.match("lazy"))?"keyword":(e.eatWhile(ypt),"operator");e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current();return cXr.propertyIsEnumerable(r)?"keyword":dXr.propertyIsEnumerable(r)?"builtin":uXr.propertyIsEnumerable(r)||fXr.propertyIsEnumerable(r)||gXr.propertyIsEnumerable(r)||hXr.propertyIsEnumerable(r)||mXr.propertyIsEnumerable(r)||kXr.propertyIsEnumerable(r)?"def":vXr.propertyIsEnumerable(r)||AXr.propertyIsEnumerable(r)||pXr.propertyIsEnumerable(r)?"string":bXr.propertyIsEnumerable(r)?"typeName.standard":wXr.propertyIsEnumerable(r)?"modifier":OXr.propertyIsEnumerable(r)?"atom":"variable"}function _Xr(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){var a=t.peek();a&&(a=a.toLowerCase(),(a=="b"||a=="h"||a=="o")&&t.next()),s=!0;break}r=!r&&o=="\\"}return s&&(n.tokenize=null),"string"}}function Cpt(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function S9n(e,t,n,r,o){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=o}function Zae(e,t,n){var r=e.indented;return e.context&&e.context.type=="statement"&&(r=e.context.indented),e.context=new S9n(r,t,n,null,e.context)}function eX(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const SXr={name:"ttcn",startState:function(){return{tokenize:null,context:new S9n(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;KA=null;var r=(t.tokenize||CXr)(e,t);if(r=="comment")return r;if(n.align==null&&(n.align=!0),(KA==";"||KA==":"||KA==",")&&n.type=="statement")eX(t);else if(KA=="{")Zae(t,e.column(),"}");else if(KA=="[")Zae(t,e.column(),"]");else if(KA=="(")Zae(t,e.column(),")");else if(KA=="}"){for(;n.type=="statement";)n=eX(t);for(n.type=="}"&&(n=eX(t));n.type=="statement";)n=eX(t)}else KA==n.type?eX(t):yXr&&((n.type=="}"||n.type=="top")&&KA!=";"||n.type=="statement"&&KA=="newstatement")&&Zae(t,e.column(),"statement");return t.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:_9n}},LXr=Object.freeze(Object.defineProperty({__proto__:null,ttcn:SXr},Symbol.toStringTag,{value:"Module"}));function R8e(e){for(var t={},n=e.split(" "),r=0;r=&|]/;function E9n(e,t){var n=e.next();if(s5=null,n=="<"&&!e.match(/^[\s\u00a0=]/,!1))return e.match(/^[^\s\u00a0>]*>?/),"atom";if(n=='"'||n=="'")return t.tokenize=PXr(n),t.tokenize(e,t);if(/[{}\(\),\.;\[\]]/.test(n))return s5=n,null;if(n=="#")return e.skipToEnd(),"comment";if(Spt.test(n))return e.eatWhile(Spt),null;if(n==":")return"operator";if(e.eatWhile(/[_\w\d]/),e.peek()==":")return"variableName.special";var r=e.current();return MXr.test(r)?"meta":n>="A"&&n<="Z"?"comment":"keyword";var r=e.current()}function PXr(e){return function(t,n){for(var r=!1,o;(o=t.next())!=null;){if(o==e&&!r){n.tokenize=E9n;break}r=!r&&o=="\\"}return"string"}}function Kae(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function I8e(e){e.indent=e.context.indent,e.context=e.context.prev}const FXr={name:"turtle",startState:function(){return{tokenize:E9n,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&t.context.align==null&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"&&(t.context.align=!0),s5=="(")Kae(t,")",e.column());else if(s5=="[")Kae(t,"]",e.column());else if(s5=="{")Kae(t,"}",e.column());else if(/[\]\}\)]/.test(s5)){for(;t.context&&t.context.type=="pattern";)I8e(t);t.context&&s5==t.context.type&&I8e(t)}else s5=="."&&t.context&&t.context.type=="pattern"?I8e(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?Kae(t,"pattern",e.column()):t.context.type=="pattern"&&!t.context.align&&(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&o.type=="pattern";)o=o.prev;var s=o&&r==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(s?0:1):o.indent+(s?0:n.unit):0},languageData:{commentTokens:{line:"#"}}},NXr=Object.freeze(Object.defineProperty({__proto__:null,turtle:FXr},Symbol.toStringTag,{value:"Module"}));function Nz(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var T9n=["Clamp","Constructor","EnforceRange","Exposed","ImplicitThis","Global","PrimaryGlobal","LegacyArrayClass","LegacyUnenumerableNamedProperties","LenientThis","NamedConstructor","NewObject","NoInterfaceObject","OverrideBuiltins","PutForwards","Replaceable","SameObject","TreatNonObjectAsNull","TreatNullAs","EmptyString","Unforgeable","Unscopeable"],UXr=Nz(T9n),Q9n=["unsigned","short","long","unrestricted","float","double","boolean","byte","octet","Promise","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","ByteString","DOMString","USVString","sequence","object","RegExp","Error","DOMException","FrozenArray","any","void"],jXr=Nz(Q9n),D9n=["attribute","callback","const","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","legacycaller","maplike","partial","required","serializer","setlike","setter","static","stringifier","typedef","optional","readonly","or"],WXr=Nz(D9n),B9n=["true","false","Infinity","NaN","null"],VXr=Nz(B9n),zXr=["callback","dictionary","enum","interface"],HXr=Nz(zXr),$Xr=["typedef"],XXr=Nz($Xr),GXr=/^[:<=>?]/,YXr=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,ZXr=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,Lpt=/^_?[A-Za-z][0-9A-Z_a-z-]*/,qXr=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,KXr=/^"[^"]*"/,JXr=/^\/\*.*?\*\//,eGr=/^\/\*.*/,tGr=/^.*?\*\//;function nGr(e,t){if(e.eatSpace())return null;if(t.inComment)return e.match(tGr)?(t.inComment=!1,"comment"):(e.skipToEnd(),"comment");if(e.match("//"))return e.skipToEnd(),"comment";if(e.match(JXr))return"comment";if(e.match(eGr))return t.inComment=!0,"comment";if(e.match(/^-?[0-9\.]/,!1)&&(e.match(YXr)||e.match(ZXr)))return"number";if(e.match(KXr))return"string";if(t.startDef&&e.match(Lpt))return"def";if(t.endDef&&e.match(qXr))return t.endDef=!1,"def";if(e.match(WXr))return"keyword";if(e.match(jXr)){var n=t.lastToken,r=(e.match(/^\s*(.+?)\b/,!1)||[])[1];return n===":"||n==="implements"||r==="implements"||r==="="?"builtin":"type"}return e.match(UXr)?"builtin":e.match(VXr)?"atom":e.match(Lpt)?"variable":e.match(GXr)?"operator":(e.next(),null)}const iGr={name:"webidl",startState:function(){return{inComment:!1,lastToken:"",startDef:!1,endDef:!1}},token:function(e,t){var n=nGr(e,t);if(n){var r=e.current();t.lastToken=r,n==="keyword"?(t.startDef=HXr.test(r),t.endDef=t.endDef||XXr.test(r)):t.startDef=!1}return n},languageData:{autocomplete:T9n.concat(Q9n).concat(D9n).concat(B9n)}},rGr=Object.freeze(Object.defineProperty({__proto__:null,webIDL:iGr},Symbol.toStringTag,{value:"Module"}));var EFe="error";function rE(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var oGr=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),sGr=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),aGr=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),lGr=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),cGr=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),dGr=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),R9n=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],I9n=["else","elseif","case","catch","finally"],M9n=["next","loop"],P9n=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],uGr=rE(P9n),F9n=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],N9n=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],hGr=rE(F9n),fGr=rE(N9n),gGr='"',mGr=rE(R9n),U9n=rE(I9n),j9n=rE(M9n),W9n=rE(["end"]),kGr=rE(["do"]);function TFe(e,t){t.currentIndent++}function Pue(e,t){t.currentIndent--}function QFe(e,t){if(e.eatSpace())return null;var n=e.peek();if(n==="'")return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var r=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(r=!0),r)return e.eat(/J/i),"number";var o=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?o=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),o=!0):e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}return e.match(gGr)?(t.tokenize=vGr(e.current()),t.tokenize(e,t)):e.match(cGr)||e.match(lGr)?null:e.match(aGr)||e.match(oGr)||e.match(uGr)?"operator":e.match(sGr)?null:e.match(kGr)?(TFe(e,t),t.doInCurrentLine=!0,"keyword"):e.match(mGr)?(t.doInCurrentLine?t.doInCurrentLine=!1:TFe(e,t),"keyword"):e.match(U9n)?"keyword":e.match(W9n)?(Pue(e,t),Pue(e,t),"keyword"):e.match(j9n)?(Pue(e,t),"keyword"):e.match(fGr)||e.match(hGr)?"keyword":e.match(dGr)?"variable":(e.next(),EFe)}function vGr(e){var t=e.length==1,n="string";return function(r,o){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return o.tokenize=QFe,n;r.eat(/['"]/)}return t&&(o.tokenize=QFe),n}}function AGr(e,t){var n=t.tokenize(e,t),r=e.current();if(r===".")return n=t.tokenize(e,t),n==="variable"?"variable":EFe;var o="[({".indexOf(r);return o!==-1&&TFe(e,t),o="])}".indexOf(r),o!==-1&&Pue(e,t)?EFe:n}const pGr={name:"vb",startState:function(){return{tokenize:QFe,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=AGr(e,t);return t.lastToken={style:n,content:e.current()},n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(j9n)||r.match(W9n)||r.match(U9n)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:R9n.concat(I9n).concat(M9n).concat(P9n).concat(F9n).concat(N9n)}},bGr=Object.freeze(Object.defineProperty({__proto__:null,vb:pGr},Symbol.toStringTag,{value:"Module"}));function V9n(e){var t="error";function n(q){return new RegExp("^(("+q.join(")|(")+"))\\b","i")}var r=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),o=new RegExp("^((<>)|(<=)|(>=))"),s=new RegExp("^[\\.,]"),a=new RegExp("^[\\(\\)]"),l=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),d=["class","sub","select","while","if","function","property","with","for"],u=["else","elseif","case"],h=["next","loop","wend"],g=n(["and","or","not","xor","is","mod","eqv","imp"]),m=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],v=["true","false","nothing","empty","null"],f=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],k=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],A=["WScript","err","debug","RegExp"],p=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],b=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],w=["server","response","request","session","application"],O=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],y=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],C=b.concat(p);A=A.concat(k),e.isASP&&(A=A.concat(w),C=C.concat(y,O));var _=n(m),S=n(v),L=n(f),E=n(A),T=n(C),D='"',P=n(d),Q=n(u),M=n(h),B=n(["end"]),R=n(["do"]),I=n(["on error resume next","exit"]),F=n(["rem"]);function j(q,re){re.currentIndent++}function W(q,re){re.currentIndent--}function H(q,re){if(q.eatSpace())return null;var J=q.peek();if(J==="'"||q.match(F))return q.skipToEnd(),"comment";if(q.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!q.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var oe=!1;if((q.match(/^\d*\.\d+/i)||q.match(/^\d+\.\d*/)||q.match(/^\.\d+/))&&(oe=!0),oe)return q.eat(/J/i),"number";var se=!1;if(q.match(/^&H[0-9a-f]+/i)||q.match(/^&O[0-7]+/i)?se=!0:q.match(/^[1-9]\d*F?/)?(q.eat(/J/i),se=!0):q.match(/^0(?![\dx])/i)&&(se=!0),se)return q.eat(/L/i),"number"}return q.match(D)?(re.tokenize=$(q.current()),re.tokenize(q,re)):q.match(o)||q.match(r)||q.match(g)?"operator":q.match(s)?null:q.match(a)?"bracket":q.match(I)?(re.doInCurrentLine=!0,"keyword"):q.match(R)?(j(q,re),re.doInCurrentLine=!0,"keyword"):q.match(P)?(re.doInCurrentLine?re.doInCurrentLine=!1:j(q,re),"keyword"):q.match(Q)?"keyword":q.match(B)?(W(q,re),W(q,re),"keyword"):q.match(M)?(re.doInCurrentLine?re.doInCurrentLine=!1:W(q,re),"keyword"):q.match(_)?"keyword":q.match(S)?"atom":q.match(T)?"variableName.special":q.match(L)||q.match(E)?"builtin":q.match(l)?"variable":(q.next(),t)}function $(q){var re=q.length==1,J="string";return function(oe,se){for(;!oe.eol();){if(oe.eatWhile(/[^'"]/),oe.match(q))return se.tokenize=H,J;oe.eat(/['"]/)}return re&&(se.tokenize=H),J}}function G(q,re){var J=re.tokenize(q,re),oe=q.current();return oe==="."?(J=re.tokenize(q,re),oe=q.current(),J&&(J.substr(0,8)==="variable"||J==="builtin"||J==="keyword")?((J==="builtin"||J==="keyword")&&(J="variable"),C.indexOf(oe.substr(1))>-1&&(J="keyword"),J):t):J}return{name:"vbscript",startState:function(){return{tokenize:H,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(q,re){q.sol()&&(re.currentIndent+=re.nextLineIndent,re.nextLineIndent=0,re.doInCurrentLine=0);var J=G(q,re);return re.lastToken={style:J,content:q.current()},J===null&&(J=null),J},indent:function(q,re,J){var oe=re.replace(/^\s+|\s+$/g,"");return oe.match(M)||oe.match(B)||oe.match(Q)?J.unit*(q.currentIndent-1):q.currentIndent<0?0:q.currentIndent*J.unit}}}const wGr=V9n({}),OGr=V9n({isASP:!0}),yGr=Object.freeze(Object.defineProperty({__proto__:null,vbScript:wGr,vbScriptASP:OGr},Symbol.toStringTag,{value:"Module"}));function uJe(e){for(var t={},n=e.split(" "),r=0;r!?:\/|]/;function ele(e,t,n){return t.tokenize=n,n(e,t)}function sbe(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if(r=="'"&&!t.inString&&t.inParams)return t.lastTokenWasBuiltin=!1,ele(e,t,Qpt(r));if(r=='"'){if(t.lastTokenWasBuiltin=!1,t.inString)return t.inString=!1,"string";if(t.inParams)return ele(e,t,Qpt(r))}else{if(/[\[\]{}\(\),;\.]/.test(r))return r=="("&&n?t.inParams=!0:r==")"&&(t.inParams=!1,t.lastTokenWasBuiltin=!0),null;if(/\d/.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(/[\w\.]/),"number";if(r=="#"&&e.eat("*"))return t.lastTokenWasBuiltin=!1,ele(e,t,CGr);if(r=="#"&&e.match(/ *\[ *\[/))return t.lastTokenWasBuiltin=!1,ele(e,t,_Gr);if(r=="#"&&e.eat("#"))return t.lastTokenWasBuiltin=!1,e.skipToEnd(),"comment";if(r=="$")return e.eat("!"),e.eatWhile(/[\w\d\$_\.{}-]/),Ept&&Ept.propertyIsEnumerable(e.current())?"keyword":(t.lastTokenWasBuiltin=!0,t.beforeParams=!0,"builtin");if(Tpt.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(Tpt),"operator";e.eatWhile(/[\w\$_{}@]/);var o=e.current();return xpt&&xpt.propertyIsEnumerable(o)?"keyword":Jae&&Jae.propertyIsEnumerable(o)||e.current().match(/^#@?[a-z0-9_]+ *$/i)&&e.peek()=="("&&!(Jae&&Jae.propertyIsEnumerable(o.toLowerCase()))?(t.beforeParams=!0,t.lastTokenWasBuiltin=!1,"keyword"):t.inString?(t.lastTokenWasBuiltin=!1,"string"):e.pos>o.length&&e.string.charAt(e.pos-o.length-1)=="."&&t.lastTokenWasBuiltin?"builtin":(t.lastTokenWasBuiltin=!1,null)}}function Qpt(e){return function(t,n){for(var r=!1,o,s=!1;(o=t.next())!=null;){if(o==e&&!r){s=!0;break}if(e=='"'&&t.peek()=="$"&&!r){n.inString=!0,s=!0;break}r=!r&&o=="\\"}return s&&(n.tokenize=sbe),"string"}}function CGr(e,t){for(var n=!1,r;r=e.next();){if(r=="#"&&n){t.tokenize=sbe;break}n=r=="*"}return"comment"}function _Gr(e,t){for(var n=0,r;r=e.next();){if(r=="#"&&n==2){t.tokenize=sbe;break}r=="]"?n++:r!=" "&&(n=0)}return"meta"}const SGr={name:"velocity",startState:function(){return{tokenize:sbe,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"##",block:{open:"#*",close:"*#"}}}},LGr=Object.freeze(Object.defineProperty({__proto__:null,velocity:SGr},Symbol.toStringTag,{value:"Module"}));function hJe(e){for(var t={},n=e.split(","),r=0;r",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"],l=0,d=h.length;l\"\'\/?]/);)a+=l;return LF(e,t,FGr(a,s))}else{if(n=="{")return mS(t,{type:"codeblock"}),null;if(n=="}")return R4(t),null;if(X9n(t))return n==">"?"tag":n=="/"&&e.eat(">")?(R4(t),"tag"):"variable";if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),"atom";if(n==="("&&e.eat(":"))return mS(t,{type:"comment"}),LF(e,t,IGr);if(!o&&(n==='"'||n==="'"))return $9n(e,t,n);if(n==="$")return LF(e,t,PGr);if(n===":"&&e.eat("="))return"keyword";if(n==="(")return mS(t,{type:"paren"}),null;if(n===")")return R4(t),null;if(n==="[")return mS(t,{type:"bracket"}),null;if(n==="]")return R4(t),null;var d=nle.propertyIsEnumerable(n)&&nle[n];if(o&&n==='"')for(;e.next()!=='"';);if(o&&n==="'")for(;e.next()!=="'";);d||e.eatWhile(/[\w\$_-]/);var u=e.eat(":");!e.eat(":")&&u&&e.eatWhile(/[\w\$_-]/),e.match(/^[ \t]*\(/,!1)&&(r=!0);var h=e.current();return d=nle.propertyIsEnumerable(h)&&nle[h],r&&!d&&(d={type:"function_call",style:"def"}),WGr(t)?(R4(t),"variable"):((h=="element"||h=="attribute"||d.type=="axis_specifier")&&mS(t,{type:"xmlconstructor"}),d?d.style:"variable")}}function IGr(e,t){for(var n=!1,r=!1,o=0,s;s=e.next();){if(s==")"&&n)if(o>0)o--;else{R4(t);break}else s==":"&&r&&o++;n=s==":",r=s=="("}return"comment"}function MGr(e,t){return function(n,r){for(var o;o=n.next();)if(o==e){R4(r),t&&(r.tokenize=t);break}else if(n.match("{",!1)&&Fue(r))return mS(r,{type:"codeblock"}),r.tokenize=r3,"string";return"string"}}function $9n(e,t,n,r){let o=MGr(n,r);return mS(t,{type:"string",name:n,tokenize:o}),LF(e,t,o)}function PGr(e,t){var n=/[\w\$_-]/;if(e.eat('"')){for(;e.next()!=='"';);e.eat(":")}else e.eatWhile(n),e.match(":=",!1)||e.eat(":");return e.eatWhile(n),t.tokenize=r3,"variable"}function FGr(e,t){return function(n,r){if(n.eatSpace(),t&&n.eat(">"))return R4(r),r.tokenize=r3,"tag";if(n.eat("/")||mS(r,{type:"tag",name:e,tokenize:r3}),n.eat(">"))r.tokenize=r3;else return r.tokenize=DFe,"tag";return"tag"}}function DFe(e,t){var n=e.next();return n=="/"&&e.eat(">")?(Fue(t)&&R4(t),X9n(t)&&R4(t),"tag"):n==">"?(Fue(t)&&R4(t),"tag"):n=="="?null:n=='"'||n=="'"?$9n(e,t,n,DFe):(Fue(t)||mS(t,{type:"attribute",tokenize:DFe}),e.eat(/[a-zA-Z_:]/),e.eatWhile(/[-a-zA-Z0-9_:.]/),e.eatSpace(),(e.match(">",!1)||e.match("/",!1))&&(R4(t),t.tokenize=r3),"attribute")}function NGr(e,t){for(var n;n=e.next();)if(n=="-"&&e.match("->",!0))return t.tokenize=r3,"comment"}function UGr(e,t){for(var n;n=e.next();)if(n=="]"&&e.match("]",!0))return t.tokenize=r3,"comment"}function jGr(e,t){for(var n;n=e.next();)if(n=="?"&&e.match(">",!0))return t.tokenize=r3,"processingInstruction"}function X9n(e){return fJe(e,"tag")}function Fue(e){return fJe(e,"attribute")}function WGr(e){return fJe(e,"xmlconstructor")}function VGr(e){return e.current()==='"'?e.match(/^[^\"]+\"\:/,!1):e.current()==="'"?e.match(/^[^\"]+\'\:/,!1):!1}function fJe(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function mS(e,t){e.stack.push(t)}function R4(e){e.stack.pop();var t=e.stack.length&&e.stack[e.stack.length-1].tokenize;e.tokenize=t||r3}const zGr={name:"xquery",startState:function(){return{tokenize:r3,cc:[],stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{commentTokens:{block:{open:"(:",close:":)"}}}},HGr=Object.freeze(Object.defineProperty({__proto__:null,xQuery:zGr},Symbol.toStringTag,{value:"Module"}));function $Gr(e){for(var t={},n=e.split(" "),r=0;r|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?"operator":"error"}function JGr(e,t){for(var n,r=!1,o=!1;(n=e.next())!=null;){if(n==='"'&&!o){r=!0;break}o=!o&&n==="\\"}return r&&!o&&(t.tokenize=dme),"string"}function eYr(e,t){for(var n,r;(r=e.next())!=null;){if(n==="*"&&r==="/"){t.tokenize=dme;break}n=r}return"comment"}function M8e(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}const tYr={name:"yacas",startState:function(){return{tokenize:dme,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==dme&&e.tokenize!==null)return null;var r=0;return(t==="]"||t==="];"||t==="}"||t==="};"||t===");")&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},nYr=Object.freeze(Object.defineProperty({__proto__:null,yacas:tYr},Symbol.toStringTag,{value:"Module"}));function G9n(e){var t,n;e?(t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,n=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,n=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var r=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,o=/^(n?[zc]|p[oe]?|m)\b/i,s=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,a=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:"z80",startState:function(){return{context:0}},token:function(l,d){if(l.column()||(d.context=0),l.eatSpace())return null;var u;if(l.eatWhile(/\w/))if(e&&l.eat(".")&&l.eatWhile(/\w/),u=l.current(),l.indentation()){if((d.context==1||d.context==4)&&r.test(u))return d.context=4,"variable";if(d.context==2&&o.test(u))return d.context=4,"variableName.special";if(t.test(u))return d.context=1,"keyword";if(n.test(u))return d.context=2,"keyword";if(d.context==4&&a.test(u))return"number";if(s.test(u))return"error"}else return l.match(a)?"number":null;else{if(l.eat(";"))return l.skipToEnd(),"comment";if(l.eat('"')){for(;(u=l.next())&&u!='"';)u=="\\"&&l.next();return"string"}else if(l.eat("'")){if(l.match(/\\?.'/))return"number"}else if(l.eat(".")||l.sol()&&l.eat("#")){if(d.context=5,l.eatWhile(/\w/))return"def"}else if(l.eat("$")){if(l.eatWhile(/[\da-f]/i))return"number"}else if(l.eat("%")){if(l.eatWhile(/[01]/))return"number"}else l.next()}return null}}}const iYr=G9n(!1),rYr=G9n(!0),oYr=Object.freeze(Object.defineProperty({__proto__:null,ez80:rYr,z80:iYr},Symbol.toStringTag,{value:"Module"}));function gJe(e){return{name:"mscgen",startState:cYr,copyState:dYr,token:uYr(e),languageData:{commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}}}const sYr=gJe({keywords:["msc"],options:["hscale","width","arcgradient","wordwraparcs"],constants:["true","false","on","off"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),aYr=gJe({keywords:null,options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:null,brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),lYr=gJe({keywords:["msc","xu"],options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip","title","deactivate","activate","activation"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});function ile(e){return new RegExp("^\\b("+e.join("|")+")\\b","i")}function iX(e){return new RegExp("^(?:"+e.join("|")+")","i")}function cYr(){return{inComment:!1,inString:!1,inAttributeList:!1,inScript:!1}}function dYr(e){return{inComment:e.inComment,inString:e.inString,inAttributeList:e.inAttributeList,inScript:e.inScript}}function uYr(e){return function(t,n){if(t.match(iX(e.brackets),!0,!0))return"bracket";if(!n.inComment){if(t.match(/\/\*[^\*\/]*/,!0,!0))return n.inComment=!0,"comment";if(t.match(iX(e.singlecomment),!0,!0))return t.skipToEnd(),"comment"}if(n.inComment)return t.match(/[^\*\/]*\*\//,!0,!0)?n.inComment=!1:t.skipToEnd(),"comment";if(!n.inString&&t.match(/\"(\\\"|[^\"])*/,!0,!0))return n.inString=!0,"string";if(n.inString)return t.match(/[^\"]*\"/,!0,!0)?n.inString=!1:t.skipToEnd(),"string";if(e.keywords&&t.match(ile(e.keywords),!0,!0)||t.match(ile(e.options),!0,!0)||t.match(ile(e.arcsWords),!0,!0)||t.match(iX(e.arcsOthers),!0,!0))return"keyword";if(e.operators&&t.match(iX(e.operators),!0,!0))return"operator";if(e.constants&&t.match(iX(e.constants),!0,!0))return"variable";if(!e.inAttributeList&&e.attributes&&t.match("[",!0,!0))return e.inAttributeList=!0,"bracket";if(e.inAttributeList){if(e.attributes!==null&&t.match(ile(e.attributes),!0,!0))return"attribute";if(t.match("]",!0,!0))return e.inAttributeList=!1,"bracket"}return t.next(),null}}const P8e=Object.freeze(Object.defineProperty({__proto__:null,mscgen:sYr,msgenny:aYr,xu:lYr},Symbol.toStringTag,{value:"Module"})),hYr=zd.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new Cv("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new Cv("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new Cv("[~RPwxU~ZOp~~",11,15),new Cv("[~RPrsU~ZOn~~",11,14),new Cv("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new Cv("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),fYr=E0.parser.configure({top:"SingleExpression"}),Y9n=hYr.configure({props:[Xd({Text:ve.content,Is:ve.definitionOperator,AttributeName:ve.attributeName,VueAttributeName:ve.keyword,Identifier:ve.variableName,"AttributeValue ScriptAttributeValue":ve.attributeValue,Entity:ve.character,"{{ }}":ve.brace,"@ :":ve.punctuation})]}),Z9n={parser:fYr},gYr=Y9n.configure({wrap:Ap((e,t)=>e.name=="InterpolationContent"?Z9n:null)}),mYr=Y9n.configure({wrap:Ap((e,t)=>e.name=="AttributeScript"?Z9n:null),top:"Attribute"}),kYr={parser:gYr},vYr={parser:mYr},BFe=dI();function q9n(e){return e.configure({dialect:"selfClosing",wrap:Ap(AYr)},"vue")}const K9n=q9n(BFe.language);function AYr(e,t){switch(e.name){case"Attribute":return/^(@|:|v-)/.test(t.read(e.from,e.from+2))?vYr:null;case"Text":return kYr}return null}function pYr(e={}){let t=BFe;if(e.base){if(e.base.language.name!="html"||!(e.base.language instanceof Vd))throw new RangeError("The base option must be the result of calling html(...)");t=e.base}return new wd(t.language==BFe.language?K9n:q9n(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["{",'"']}})])}const bYr=Object.freeze(Object.defineProperty({__proto__:null,vue:pYr,vueLanguage:K9n},Symbol.toStringTag,{value:"Module"})),wYr=1,OYr=33,yYr=34,CYr=35,_Yr=36,SYr=new go(e=>{let t=e.pos;for(;;){if(e.next==10){e.advance();break}else if(e.next==123&&e.peek(1)==123||e.next<0)break;e.advance()}e.pos>t&&e.acceptToken(wYr)});function abe(e,t,n){return new go(r=>{let o=r.pos;for(;r.next!=e&&r.next>=0&&(n||r.next!=38&&(r.next!=123||r.peek(1)!=123));)r.advance();r.pos>o&&r.acceptToken(t)})}const LYr=abe(39,OYr,!1),xYr=abe(34,yYr,!1),EYr=abe(39,CYr,!0),TYr=abe(34,_Yr,!0),QYr=zd.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<e.name=="InterpolationContent"?RFe:null)}),IYr=J9n.configure({wrap:Ap((e,t)=>{var n;return e.name=="InterpolationContent"?RFe:e.name!="AttributeInterpolation"?null:((n=e.node.parent)===null||n===void 0?void 0:n.name)=="StatementAttributeValue"?BYr:RFe}),top:"Attribute"}),MYr={parser:RYr},PYr={parser:IYr},IFe=dI({selfClosingTags:!0});function e6n(e){return e.configure({wrap:Ap(FYr)},"angular")}const t6n=e6n(IFe.language);function FYr(e,t){switch(e.name){case"Attribute":return/^[*#(\[]|\{\{/.test(t.read(e.from,e.to))?PYr:null;case"Text":return MYr}return null}function NYr(e={}){let t=IFe;if(e.base){if(e.base.language.name!="html"||!(e.base.language instanceof Vd))throw new RangeError("The base option must be the result of calling html(...)");t=e.base}return new wd(t.language==IFe.language?t6n:e6n(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/})])}const UYr=Object.freeze(Object.defineProperty({__proto__:null,angular:NYr,angularLanguage:t6n},Symbol.toStringTag,{value:"Module"})),jYr=Je({__name:"404",setup(e){const t=_pe();function n(){t.push("/")}const r=X(()=>window==null?void 0:window.$electron);return(o,s)=>{const a=Si;return xe(),Ge("div",{class:"notFound",style:no({height:Ae(r)?"calc(100vh - 32px)":"100vh"})},[s[1]||(s[1]=ge("span",{class:"title"},"404",-1)),s[2]||(s[2]=ge("div",{class:"notFoundText"},"页面不存在",-1)),c(a,{class:"notFoundBtn",theme:"primary",onClick:n},{default:Oe(()=>[...s[0]||(s[0]=[Bt("返回首页",-1)])]),_:1})],4)}}}),WYr=oo(jYr,[["__scopeId","data-v-0b027e54"]]),VYr=Object.freeze(Object.defineProperty({__proto__:null,default:WYr},Symbol.toStringTag,{value:"Module"})),lbe="data:image/png;base64,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";function n6n(e,t){return function(){return e.apply(t,arguments)}}const{toString:zYr}=Object.prototype,{getPrototypeOf:mJe}=Object,{iterator:cbe,toStringTag:i6n}=Symbol,dbe=(e=>t=>{const n=zYr.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),M3=e=>(e=e.toLowerCase(),t=>dbe(t)===e),ube=e=>t=>typeof t===e,{isArray:Uz}=Array,XW=ube("undefined");function gie(e){return e!==null&&!XW(e)&&e.constructor!==null&&!XW(e.constructor)&&e2(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const r6n=M3("ArrayBuffer");function HYr(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&r6n(e.buffer),t}const $Yr=ube("string"),e2=ube("function"),o6n=ube("number"),mie=e=>e!==null&&typeof e=="object",XYr=e=>e===!0||e===!1,Nue=e=>{if(dbe(e)!=="object")return!1;const t=mJe(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(i6n in e)&&!(cbe in e)},GYr=e=>{if(!mie(e)||gie(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},YYr=M3("Date"),ZYr=M3("File"),qYr=e=>!!(e&&typeof e.uri<"u"),KYr=e=>e&&typeof e.getParts<"u",JYr=M3("Blob"),eZr=M3("FileList"),tZr=e=>mie(e)&&e2(e.pipe);function nZr(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Ipt=nZr(),Mpt=typeof Ipt.FormData<"u"?Ipt.FormData:void 0,iZr=e=>{let t;return e&&(Mpt&&e instanceof Mpt||e2(e.append)&&((t=dbe(e))==="formdata"||t==="object"&&e2(e.toString)&&e.toString()==="[object FormData]"))},rZr=M3("URLSearchParams"),[oZr,sZr,aZr,lZr]=["ReadableStream","Request","Response","Headers"].map(M3),cZr=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function kie(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Uz(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const nQ=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,a6n=e=>!XW(e)&&e!==nQ;function MFe(){const{caseless:e,skipUndefined:t}=a6n(this)&&this||{},n={},r=(o,s)=>{if(s==="__proto__"||s==="constructor"||s==="prototype")return;const a=e&&s6n(n,s)||s;Nue(n[a])&&Nue(o)?n[a]=MFe(n[a],o):Nue(o)?n[a]=MFe({},o):Uz(o)?n[a]=o.slice():(!t||!XW(o))&&(n[a]=o)};for(let o=0,s=arguments.length;o(kie(t,(o,s)=>{n&&e2(o)?Object.defineProperty(e,s,{value:n6n(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,s,{value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),uZr=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),hZr=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},fZr=(e,t,n,r)=>{let o,s,a;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)a=o[s],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&mJe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},gZr=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},mZr=e=>{if(!e)return null;if(Uz(e))return e;let t=e.length;if(!o6n(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},kZr=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&mJe(Uint8Array)),vZr=(e,t)=>{const r=(e&&e[cbe]).call(e);let o;for(;(o=r.next())&&!o.done;){const s=o.value;t.call(e,s[0],s[1])}},AZr=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},pZr=M3("HTMLFormElement"),bZr=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Ppt=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),wZr=M3("RegExp"),l6n=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};kie(n,(o,s)=>{let a;(a=t(o,s,e))!==!1&&(r[s]=a||o)}),Object.defineProperties(e,r)},OZr=e=>{l6n(e,(t,n)=>{if(e2(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(e2(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},yZr=(e,t)=>{const n={},r=o=>{o.forEach(s=>{n[s]=!0})};return Uz(e)?r(e):r(String(e).split(t)),n},CZr=()=>{},_Zr=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function SZr(e){return!!(e&&e2(e.append)&&e[i6n]==="FormData"&&e[cbe])}const LZr=e=>{const t=new Array(10),n=(r,o)=>{if(mie(r)){if(t.indexOf(r)>=0)return;if(gie(r))return r;if(!("toJSON"in r)){t[o]=r;const s=Uz(r)?[]:{};return kie(r,(a,l)=>{const d=n(a,o+1);!XW(d)&&(s[l]=d)}),t[o]=void 0,s}}return r};return n(e,0)},xZr=M3("AsyncFunction"),EZr=e=>e&&(mie(e)||e2(e))&&e2(e.then)&&e2(e.catch),c6n=((e,t)=>e?setImmediate:t?((n,r)=>(nQ.addEventListener("message",({source:o,data:s})=>{o===nQ&&s===n&&r.length&&r.shift()()},!1),o=>{r.push(o),nQ.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",e2(nQ.postMessage)),TZr=typeof queueMicrotask<"u"?queueMicrotask.bind(nQ):typeof process<"u"&&process.nextTick||c6n,QZr=e=>e!=null&&e2(e[cbe]),vn={isArray:Uz,isArrayBuffer:r6n,isBuffer:gie,isFormData:iZr,isArrayBufferView:HYr,isString:$Yr,isNumber:o6n,isBoolean:XYr,isObject:mie,isPlainObject:Nue,isEmptyObject:GYr,isReadableStream:oZr,isRequest:sZr,isResponse:aZr,isHeaders:lZr,isUndefined:XW,isDate:YYr,isFile:ZYr,isReactNativeBlob:qYr,isReactNative:KYr,isBlob:JYr,isRegExp:wZr,isFunction:e2,isStream:tZr,isURLSearchParams:rZr,isTypedArray:kZr,isFileList:eZr,forEach:kie,merge:MFe,extend:dZr,trim:cZr,stripBOM:uZr,inherits:hZr,toFlatObject:fZr,kindOf:dbe,kindOfTest:M3,endsWith:gZr,toArray:mZr,forEachEntry:vZr,matchAll:AZr,isHTMLForm:pZr,hasOwnProperty:Ppt,hasOwnProp:Ppt,reduceDescriptors:l6n,freezeMethods:OZr,toObjectSet:yZr,toCamelCase:bZr,noop:CZr,toFiniteNumber:_Zr,findKey:s6n,global:nQ,isContextDefined:a6n,isSpecCompliantForm:SZr,toJSONObject:LZr,isAsyncFn:xZr,isThenable:EZr,setImmediate:c6n,asap:TZr,isIterable:QZr};let No=class d6n extends Error{static from(t,n,r,o,s,a){const l=new d6n(t.message,n||t.code,r,o,s);return l.cause=t,l.name=t.name,t.status!=null&&l.status==null&&(l.status=t.status),a&&Object.assign(l,a),l}constructor(t,n,r,o,s){super(t),Object.defineProperty(this,"message",{value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),r&&(this.config=r),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:vn.toJSONObject(this.config),code:this.code,status:this.status}}};No.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";No.ERR_BAD_OPTION="ERR_BAD_OPTION";No.ECONNABORTED="ECONNABORTED";No.ETIMEDOUT="ETIMEDOUT";No.ERR_NETWORK="ERR_NETWORK";No.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";No.ERR_DEPRECATED="ERR_DEPRECATED";No.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";No.ERR_BAD_REQUEST="ERR_BAD_REQUEST";No.ERR_CANCELED="ERR_CANCELED";No.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";No.ERR_INVALID_URL="ERR_INVALID_URL";const DZr=null;function PFe(e){return vn.isPlainObject(e)||vn.isArray(e)}function u6n(e){return vn.endsWith(e,"[]")?e.slice(0,-2):e}function F8e(e,t,n){return e?e.concat(t).map(function(o,s){return o=u6n(o),!n&&s?"["+o+"]":o}).join(n?".":""):t}function BZr(e){return vn.isArray(e)&&!e.some(PFe)}const RZr=vn.toFlatObject(vn,{},null,function(t){return/^is[A-Z]/.test(t)});function hbe(e,t,n){if(!vn.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=vn.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(k,A){return!vn.isUndefined(A[k])});const r=n.metaTokens,o=n.visitor||h,s=n.dots,a=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&vn.isSpecCompliantForm(t);if(!vn.isFunction(o))throw new TypeError("visitor must be a function");function u(f){if(f===null)return"";if(vn.isDate(f))return f.toISOString();if(vn.isBoolean(f))return f.toString();if(!d&&vn.isBlob(f))throw new No("Blob is not supported. Use a Buffer instead.");return vn.isArrayBuffer(f)||vn.isTypedArray(f)?d&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function h(f,k,A){let p=f;if(vn.isReactNative(t)&&vn.isReactNativeBlob(f))return t.append(F8e(A,k,s),u(f)),!1;if(f&&!A&&typeof f=="object"){if(vn.endsWith(k,"{}"))k=r?k:k.slice(0,-2),f=JSON.stringify(f);else if(vn.isArray(f)&&BZr(f)||(vn.isFileList(f)||vn.endsWith(k,"[]"))&&(p=vn.toArray(f)))return k=u6n(k),p.forEach(function(w,O){!(vn.isUndefined(w)||w===null)&&t.append(a===!0?F8e([k],O,s):a===null?k:k+"[]",u(w))}),!1}return PFe(f)?!0:(t.append(F8e(A,k,s),u(f)),!1)}const g=[],m=Object.assign(RZr,{defaultVisitor:h,convertValue:u,isVisitable:PFe});function v(f,k){if(!vn.isUndefined(f)){if(g.indexOf(f)!==-1)throw Error("Circular reference detected in "+k.join("."));g.push(f),vn.forEach(f,function(p,b){(!(vn.isUndefined(p)||p===null)&&o.call(t,p,vn.isString(b)?b.trim():b,k,m))===!0&&v(p,k?k.concat(b):[b])}),g.pop()}}if(!vn.isObject(e))throw new TypeError("data must be an object");return v(e),t}function Fpt(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function kJe(e,t){this._pairs=[],e&&hbe(e,this,t)}const h6n=kJe.prototype;h6n.append=function(t,n){this._pairs.push([t,n])};h6n.toString=function(t){const n=t?function(r){return t.call(this,r,Fpt)}:Fpt;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function IZr(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function f6n(e,t,n){if(!t)return e;const r=n&&n.encode||IZr,o=vn.isFunction(n)?{serialize:n}:n,s=o&&o.serialize;let a;if(s?a=s(t,o):a=vn.isURLSearchParams(t)?t.toString():new kJe(t,o).toString(r),a){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class Npt{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){vn.forEach(this.handlers,function(r){r!==null&&t(r)})}}const vJe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},MZr=typeof URLSearchParams<"u"?URLSearchParams:kJe,PZr=typeof FormData<"u"?FormData:null,FZr=typeof Blob<"u"?Blob:null,NZr={isBrowser:!0,classes:{URLSearchParams:MZr,FormData:PZr,Blob:FZr},protocols:["http","https","file","blob","url","data"]},AJe=typeof window<"u"&&typeof document<"u",FFe=typeof navigator=="object"&&navigator||void 0,UZr=AJe&&(!FFe||["ReactNative","NativeScript","NS"].indexOf(FFe.product)<0),jZr=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",WZr=AJe&&window.location.href||"http://localhost",VZr=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:AJe,hasStandardBrowserEnv:UZr,hasStandardBrowserWebWorkerEnv:jZr,navigator:FFe,origin:WZr},Symbol.toStringTag,{value:"Module"})),r1={...VZr,...NZr};function zZr(e,t){return hbe(e,new r1.classes.URLSearchParams,{visitor:function(n,r,o,s){return r1.isNode&&vn.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function HZr(e){return vn.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function $Zr(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r=n.length;return a=!a&&vn.isArray(o)?o.length:a,d?(vn.hasOwnProp(o,a)?o[a]=[o[a],r]:o[a]=r,!l):((!o[a]||!vn.isObject(o[a]))&&(o[a]=[]),t(n,r,o[a],s)&&vn.isArray(o[a])&&(o[a]=$Zr(o[a])),!l)}if(vn.isFormData(e)&&vn.isFunction(e.entries)){const n={};return vn.forEachEntry(e,(r,o)=>{t(HZr(r),o,n,0)}),n}return null}function XZr(e,t,n){if(vn.isString(e))try{return(t||JSON.parse)(e),vn.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const vie={transitional:vJe,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,s=vn.isObject(t);if(s&&vn.isHTMLForm(t)&&(t=new FormData(t)),vn.isFormData(t))return o?JSON.stringify(g6n(t)):t;if(vn.isArrayBuffer(t)||vn.isBuffer(t)||vn.isStream(t)||vn.isFile(t)||vn.isBlob(t)||vn.isReadableStream(t))return t;if(vn.isArrayBufferView(t))return t.buffer;if(vn.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return zZr(t,this.formSerializer).toString();if((l=vn.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return hbe(l?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||o?(n.setContentType("application/json",!1),XZr(t)):t}],transformResponse:[function(t){const n=this.transitional||vie.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(vn.isResponse(t)||vn.isReadableStream(t))return t;if(t&&vn.isString(t)&&(r&&!this.responseType||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?No.from(l,No.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:r1.classes.FormData,Blob:r1.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};vn.forEach(["delete","get","head","post","put","patch"],e=>{vie.headers[e]={}});const GZr=vn.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),YZr=e=>{const t={};let n,r,o;return e&&e.split(` `).forEach(function(a){o=a.indexOf(":"),n=a.substring(0,o).trim().toLowerCase(),r=a.substring(o+1).trim(),!(!n||t[n]&&GZr[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Upt=Symbol("internals");function rX(e){return e&&String(e).trim().toLowerCase()}function Uue(e){return e===!1||e==null?e:vn.isArray(e)?e.map(Uue):String(e)}function ZZr(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const qZr=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function N8e(e,t,n,r,o){if(vn.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!vn.isString(t)){if(vn.isString(r))return t.indexOf(r)!==-1;if(vn.isRegExp(r))return r.test(t)}}function KZr(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function JZr(e,t){const n=vn.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,s,a){return this[r].call(this,t,o,s,a)},configurable:!0})})}let t2=class{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function s(l,d,u){const h=rX(d);if(!h)throw new Error("header name must be a non-empty string");const g=vn.findKey(o,h);(!g||o[g]===void 0||u===!0||u===void 0&&o[g]!==!1)&&(o[g||d]=Uue(l))}const a=(l,d)=>vn.forEach(l,(u,h)=>s(u,h,d));if(vn.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(vn.isString(t)&&(t=t.trim())&&!qZr(t))a(YZr(t),n);else if(vn.isObject(t)&&vn.isIterable(t)){let l={},d,u;for(const h of t){if(!vn.isArray(h))throw TypeError("Object iterator must return a key-value pair");l[u=h[0]]=(d=l[u])?vn.isArray(d)?[...d,h[1]]:[d,h[1]]:h[1]}a(l,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=rX(t),t){const r=vn.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return ZZr(o);if(vn.isFunction(n))return n.call(this,o,r);if(vn.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=rX(t),t){const r=vn.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||N8e(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function s(a){if(a=rX(a),a){const l=vn.findKey(r,a);l&&(!n||N8e(r,r[l],l,n))&&(delete r[l],o=!0)}}return vn.isArray(t)?t.forEach(s):s(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const s=n[r];(!t||N8e(this,this[s],s,t,!0))&&(delete this[s],o=!0)}return o}normalize(t){const n=this,r={};return vn.forEach(this,(o,s)=>{const a=vn.findKey(r,s);if(a){n[a]=Uue(o),delete n[s];return}const l=t?KZr(s):String(s).trim();l!==s&&delete n[s],n[l]=Uue(o),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return vn.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&vn.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[Upt]=this[Upt]={accessors:{}}).accessors,o=this.prototype;function s(a){const l=rX(a);r[l]||(JZr(o,a),r[l]=!0)}return vn.isArray(t)?t.forEach(s):s(t),this}};t2.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);vn.reduceDescriptors(t2.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});vn.freezeMethods(t2);function U8e(e,t){const n=this||vie,r=t||n,o=t2.from(r.headers);let s=r.data;return vn.forEach(e,function(l){s=l.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function m6n(e){return!!(e&&e.__CANCEL__)}let Aie=class extends No{constructor(t,n,r){super(t??"canceled",No.ERR_CANCELED,n,r),this.name="CanceledError",this.__CANCEL__=!0}};function k6n(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new No("Request failed with status code "+n.status,[No.ERR_BAD_REQUEST,No.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function eqr(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function tqr(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,s=0,a;return t=t!==void 0?t:1e3,function(d){const u=Date.now(),h=r[s];a||(a=u),n[o]=d,r[o]=u;let g=s,m=0;for(;g!==o;)m+=n[g++],g=g%e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),u-a{n=h,o=null,s&&(clearTimeout(s),s=null),e(...u)};return[(...u)=>{const h=Date.now(),g=h-n;g>=r?a(u,h):(o=u,s||(s=setTimeout(()=>{s=null,a(o)},r-g)))},()=>o&&a(o)]}const ume=(e,t,n=3)=>{let r=0;const o=tqr(50,250);return nqr(s=>{const a=s.loaded,l=s.lengthComputable?s.total:void 0,d=a-r,u=o(d),h=a<=l;r=a;const g={loaded:a,total:l,progress:l?a/l:void 0,bytes:d,rate:u||void 0,estimated:u&&l&&h?(l-a)/u:void 0,event:s,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(g)},n)},jpt=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wpt=e=>(...t)=>vn.asap(()=>e(...t)),iqr=r1.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,r1.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(r1.origin),r1.navigator&&/(msie|trident)/i.test(r1.navigator.userAgent)):()=>!0,rqr=r1.hasStandardBrowserEnv?{write(e,t,n,r,o,s,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];vn.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),vn.isString(r)&&l.push(`path=${r}`),vn.isString(o)&&l.push(`domain=${o}`),s===!0&&l.push("secure"),vn.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function oqr(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function sqr(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function v6n(e,t,n){let r=!oqr(t);return e&&(r||n==!1)?sqr(e,t):t}const Vpt=e=>e instanceof t2?{...e}:e;function KB(e,t){t=t||{};const n={};function r(u,h,g,m){return vn.isPlainObject(u)&&vn.isPlainObject(h)?vn.merge.call({caseless:m},u,h):vn.isPlainObject(h)?vn.merge({},h):vn.isArray(h)?h.slice():h}function o(u,h,g,m){if(vn.isUndefined(h)){if(!vn.isUndefined(u))return r(void 0,u,g,m)}else return r(u,h,g,m)}function s(u,h){if(!vn.isUndefined(h))return r(void 0,h)}function a(u,h){if(vn.isUndefined(h)){if(!vn.isUndefined(u))return r(void 0,u)}else return r(void 0,h)}function l(u,h,g){if(g in t)return r(u,h);if(g in e)return r(void 0,u)}const d={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,h,g)=>o(Vpt(u),Vpt(h),g,!0)};return vn.forEach(Object.keys({...e,...t}),function(h){if(h==="__proto__"||h==="constructor"||h==="prototype")return;const g=vn.hasOwnProp(d,h)?d[h]:o,m=g(e[h],t[h],h);vn.isUndefined(m)&&g!==l||(n[h]=m)}),n}const A6n=e=>{const t=KB({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:s,headers:a,auth:l}=t;if(t.headers=a=t2.from(a),t.url=f6n(v6n(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),vn.isFormData(n)){if(r1.hasStandardBrowserEnv||r1.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(vn.isFunction(n.getHeaders)){const d=n.getHeaders(),u=["content-type","content-length"];Object.entries(d).forEach(([h,g])=>{u.includes(h.toLowerCase())&&a.set(h,g)})}}if(r1.hasStandardBrowserEnv&&(r&&vn.isFunction(r)&&(r=r(t)),r||r!==!1&&iqr(t.url))){const d=o&&s&&rqr.read(s);d&&a.set(o,d)}return t},aqr=typeof XMLHttpRequest<"u",lqr=aqr&&function(e){return new Promise(function(n,r){const o=A6n(e);let s=o.data;const a=t2.from(o.headers).normalize();let{responseType:l,onUploadProgress:d,onDownloadProgress:u}=o,h,g,m,v,f;function k(){v&&v(),f&&f(),o.cancelToken&&o.cancelToken.unsubscribe(h),o.signal&&o.signal.removeEventListener("abort",h)}let A=new XMLHttpRequest;A.open(o.method.toUpperCase(),o.url,!0),A.timeout=o.timeout;function p(){if(!A)return;const w=t2.from("getAllResponseHeaders"in A&&A.getAllResponseHeaders()),y={data:!l||l==="text"||l==="json"?A.responseText:A.response,status:A.status,statusText:A.statusText,headers:w,config:e,request:A};k6n(function(_){n(_),k()},function(_){r(_),k()},y),A=null}"onloadend"in A?A.onloadend=p:A.onreadystatechange=function(){!A||A.readyState!==4||A.status===0&&!(A.responseURL&&A.responseURL.indexOf("file:")===0)||setTimeout(p)},A.onabort=function(){A&&(r(new No("Request aborted",No.ECONNABORTED,e,A)),A=null)},A.onerror=function(O){const y=O&&O.message?O.message:"Network Error",C=new No(y,No.ERR_NETWORK,e,A);C.event=O||null,r(C),A=null},A.ontimeout=function(){let O=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const y=o.transitional||vJe;o.timeoutErrorMessage&&(O=o.timeoutErrorMessage),r(new No(O,y.clarifyTimeoutError?No.ETIMEDOUT:No.ECONNABORTED,e,A)),A=null},s===void 0&&a.setContentType(null),"setRequestHeader"in A&&vn.forEach(a.toJSON(),function(O,y){A.setRequestHeader(y,O)}),vn.isUndefined(o.withCredentials)||(A.withCredentials=!!o.withCredentials),l&&l!=="json"&&(A.responseType=o.responseType),u&&([m,f]=ume(u,!0),A.addEventListener("progress",m)),d&&A.upload&&([g,v]=ume(d),A.upload.addEventListener("progress",g),A.upload.addEventListener("loadend",v)),(o.cancelToken||o.signal)&&(h=w=>{A&&(r(!w||w.type?new Aie(null,e,A):w),A.abort(),A=null)},o.cancelToken&&o.cancelToken.subscribe(h),o.signal&&(o.signal.aborted?h():o.signal.addEventListener("abort",h)));const b=eqr(o.url);if(b&&r1.protocols.indexOf(b)===-1){r(new No("Unsupported protocol "+b+":",No.ERR_BAD_REQUEST,e));return}A.send(s||null)})},cqr=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const s=function(u){if(!o){o=!0,l();const h=u instanceof Error?u:this.reason;r.abort(h instanceof No?h:new Aie(h instanceof Error?h.message:h))}};let a=t&&setTimeout(()=>{a=null,s(new No(`timeout of ${t}ms exceeded`,No.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(s):u.removeEventListener("abort",s)}),e=null)};e.forEach(u=>u.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>vn.asap(l),d}},dqr=function*(e,t){let n=e.byteLength;if(n{const o=uqr(e,t);let s=0,a,l=d=>{a||(a=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:u,value:h}=await o.next();if(u){l(),d.close();return}let g=h.byteLength;if(n){let m=s+=g;n(m)}d.enqueue(new Uint8Array(h))}catch(u){throw l(u),u}},cancel(d){return l(d),o.return()}},{highWaterMark:2})},Hpt=64*1024,{isFunction:rle}=vn,fqr=(({Request:e,Response:t})=>({Request:e,Response:t}))(vn.global),{ReadableStream:$pt,TextEncoder:Xpt}=vn.global,Gpt=(e,...t)=>{try{return!!e(...t)}catch{return!1}},gqr=e=>{e=vn.merge.call({skipUndefined:!0},fqr,e);const{fetch:t,Request:n,Response:r}=e,o=t?rle(t):typeof fetch=="function",s=rle(n),a=rle(r);if(!o)return!1;const l=o&&rle($pt),d=o&&(typeof Xpt=="function"?(f=>k=>f.encode(k))(new Xpt):async f=>new Uint8Array(await new n(f).arrayBuffer())),u=s&&l&&Gpt(()=>{let f=!1;const k=new n(r1.origin,{body:new $pt,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!k}),h=a&&l&&Gpt(()=>vn.isReadableStream(new r("").body)),g={stream:h&&(f=>f.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!g[f]&&(g[f]=(k,A)=>{let p=k&&k[f];if(p)return p.call(k);throw new No(`Response type '${f}' is not supported`,No.ERR_NOT_SUPPORT,A)})});const m=async f=>{if(f==null)return 0;if(vn.isBlob(f))return f.size;if(vn.isSpecCompliantForm(f))return(await new n(r1.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(vn.isArrayBufferView(f)||vn.isArrayBuffer(f))return f.byteLength;if(vn.isURLSearchParams(f)&&(f=f+""),vn.isString(f))return(await d(f)).byteLength},v=async(f,k)=>{const A=vn.toFiniteNumber(f.getContentLength());return A??m(k)};return async f=>{let{url:k,method:A,data:p,signal:b,cancelToken:w,timeout:O,onDownloadProgress:y,onUploadProgress:C,responseType:_,headers:S,withCredentials:L="same-origin",fetchOptions:E}=A6n(f),T=t||fetch;_=_?(_+"").toLowerCase():"text";let D=cqr([b,w&&w.toAbortSignal()],O),P=null;const Q=D&&D.unsubscribe&&(()=>{D.unsubscribe()});let M;try{if(C&&u&&A!=="get"&&A!=="head"&&(M=await v(S,p))!==0){let W=new n(k,{method:"POST",body:p,duplex:"half"}),H;if(vn.isFormData(p)&&(H=W.headers.get("content-type"))&&S.setContentType(H),W.body){const[$,G]=jpt(M,ume(Wpt(C)));p=zpt(W.body,Hpt,$,G)}}vn.isString(L)||(L=L?"include":"omit");const B=s&&"credentials"in n.prototype,R={...E,signal:D,method:A.toUpperCase(),headers:S.normalize().toJSON(),body:p,duplex:"half",credentials:B?L:void 0};P=s&&new n(k,R);let I=await(s?T(P,E):T(k,R));const F=h&&(_==="stream"||_==="response");if(h&&(y||F&&Q)){const W={};["status","statusText","headers"].forEach(q=>{W[q]=I[q]});const H=vn.toFiniteNumber(I.headers.get("content-length")),[$,G]=y&&jpt(H,ume(Wpt(y),!0))||[];I=new r(zpt(I.body,Hpt,$,()=>{G&&G(),Q&&Q()}),W)}_=_||"text";let j=await g[vn.findKey(g,_)||"text"](I,f);return!F&&Q&&Q(),await new Promise((W,H)=>{k6n(W,H,{data:j,headers:t2.from(I.headers),status:I.status,statusText:I.statusText,config:f,request:P})})}catch(B){throw Q&&Q(),B&&B.name==="TypeError"&&/Load failed|fetch/i.test(B.message)?Object.assign(new No("Network Error",No.ERR_NETWORK,f,P,B&&B.response),{cause:B.cause||B}):No.from(B,B&&B.code,f,P,B&&B.response)}}},mqr=new Map,p6n=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:o}=t,s=[r,o,n];let a=s.length,l=a,d,u,h=mqr;for(;l--;)d=s[l],u=h.get(d),u===void 0&&h.set(d,u=l?new Map:gqr(t)),h=u;return u};p6n();const pJe={http:DZr,xhr:lqr,fetch:{get:p6n}};vn.forEach(pJe,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ypt=e=>`- ${e}`,kqr=e=>vn.isFunction(e)||e===null||e===!1;function vqr(e,t){e=vn.isArray(e)?e:[e];const{length:n}=e;let r,o;const s={};for(let a=0;a`adapter ${d} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : `+a.map(Ypt).join(` `):" "+Ypt(a[0]):"as no adapter specified";throw new No("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return o}const b6n={getAdapter:vqr,adapters:pJe};function j8e(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Aie(null,e)}function Zpt(e){return j8e(e),e.headers=t2.from(e.headers),e.data=U8e.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),b6n.getAdapter(e.adapter||vie.adapter,e)(e).then(function(r){return j8e(e),r.data=U8e.call(e,e.transformResponse,r),r.headers=t2.from(r.headers),r},function(r){return m6n(r)||(j8e(e),r&&r.response&&(r.response.data=U8e.call(e,e.transformResponse,r.response),r.response.headers=t2.from(r.response.headers))),Promise.reject(r)})}const w6n="1.13.6",fbe={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{fbe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const qpt={};fbe.transitional=function(t,n,r){function o(s,a){return"[Axios v"+w6n+"] Transitional option '"+s+"'"+a+(r?". "+r:"")}return(s,a,l)=>{if(t===!1)throw new No(o(a," has been removed"+(n?" in "+n:"")),No.ERR_DEPRECATED);return n&&!qpt[a]&&(qpt[a]=!0,console.warn(o(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,a,l):!0}};fbe.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Aqr(e,t,n){if(typeof e!="object")throw new No("options must be an object",No.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],a=t[s];if(a){const l=e[s],d=l===void 0||a(l,s,e);if(d!==!0)throw new No("option "+s+" must be "+d,No.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new No("Unknown option "+s,No.ERR_BAD_OPTION)}}const jue={assertOptions:Aqr,validators:fbe},HA=jue.validators;let sD=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Npt,response:new Npt}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const s=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=KB(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&jue.assertOptions(r,{silentJSONParsing:HA.transitional(HA.boolean),forcedJSONParsing:HA.transitional(HA.boolean),clarifyTimeoutError:HA.transitional(HA.boolean),legacyInterceptorReqResOrdering:HA.transitional(HA.boolean)},!1),o!=null&&(vn.isFunction(o)?n.paramsSerializer={serialize:o}:jue.assertOptions(o,{encode:HA.function,serialize:HA.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),jue.assertOptions(n,{baseUrl:HA.spelling("baseURL"),withXsrfToken:HA.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=s&&vn.merge(s.common,s[n.method]);s&&vn.forEach(["delete","get","head","post","put","patch","common"],f=>{delete s[f]}),n.headers=t2.concat(a,s);const l=[];let d=!0;this.interceptors.request.forEach(function(k){if(typeof k.runWhen=="function"&&k.runWhen(n)===!1)return;d=d&&k.synchronous;const A=n.transitional||vJe;A&&A.legacyInterceptorReqResOrdering?l.unshift(k.fulfilled,k.rejected):l.push(k.fulfilled,k.rejected)});const u=[];this.interceptors.response.forEach(function(k){u.push(k.fulfilled,k.rejected)});let h,g=0,m;if(!d){const f=[Zpt.bind(this),void 0];for(f.unshift(...l),f.push(...u),m=f.length,h=Promise.resolve(n);g{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const a=new Promise(l=>{r.subscribe(l),s=l}).then(o);return a.cancel=function(){r.unsubscribe(s)},a},t(function(s,a,l){r.reason||(r.reason=new Aie(s,a,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new O6n(function(o){t=o}),cancel:t}}};function bqr(e){return function(n){return e.apply(null,n)}}function wqr(e){return vn.isObject(e)&&e.isAxiosError===!0}const NFe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(NFe).forEach(([e,t])=>{NFe[t]=e});function y6n(e){const t=new sD(e),n=n6n(sD.prototype.request,t);return vn.extend(n,sD.prototype,t,{allOwnKeys:!0}),vn.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return y6n(KB(e,o))},n}const gh=y6n(vie);gh.Axios=sD;gh.CanceledError=Aie;gh.CancelToken=pqr;gh.isCancel=m6n;gh.VERSION=w6n;gh.toFormData=hbe;gh.AxiosError=No;gh.Cancel=gh.CanceledError;gh.all=function(t){return Promise.all(t)};gh.spread=bqr;gh.isAxiosError=wqr;gh.mergeConfig=KB;gh.AxiosHeaders=t2;gh.formToJSON=e=>g6n(vn.isHTMLForm(e)?new FormData(e):e);gh.getAdapter=b6n.getAdapter;gh.HttpStatusCode=NFe;gh.default=gh;const{Axios:PNs,AxiosError:FNs,CanceledError:NNs,isCancel:UNs,CancelToken:jNs,VERSION:WNs,all:VNs,Cancel:zNs,isAxiosError:HNs,spread:$Ns,toFormData:XNs,AxiosHeaders:GNs,HttpStatusCode:YNs,formToJSON:ZNs,getAdapter:qNs,mergeConfig:KNs}=gh,mn=gh.create();mn.interceptors.request.use(function(e){const{baseUrl:t,otherSetting:n}=xs(ku());e.baseURL=t.value,e.timeout=n.value.axiosTimeOut;const r=localStorage.getItem("token");return r&&(e.headers.Authorization=r),e});mn.interceptors.response.use(function(e){return e.data},function(e){var t;return e.status===401&&(localStorage.removeItem("token"),tie.push("/login"),i1.error(window.$t("common.sessionExpired"))),Promise.reject(((t=e==null?void 0:e.response)==null?void 0:t.data)??e)});const Oqr={class:"languageConfig"},yqr={class:"sectionDesc"},Cqr={class:"langGrid"},_qr=["onClick"],Sqr={class:"langInfo"},Lqr={class:"langName"},xqr={class:"langNative"},Eqr=Je({__name:"languageConfig",setup(e){const t=fe(yW.value??"zh-CN"),{locale:n}=aI();function r(o){var s;n.value=o,t.value=o,yW.value=o,(s=window.$message)==null||s.success($t("settings.language.msg.saved"))}return(o,s)=>{const a=dL;return xe(),Ge("div",Oqr,[ge("p",yqr,Pe(o.$t("settings.language.desc")),1),ge("div",Cqr,[(xe(!0),Ge(sn,null,Bi(Ae(GZe),l=>(xe(),Ge("div",{key:l.value,class:Eo(["langCard",{active:Ae(t)===l.value}]),onClick:d=>r(l.value)},[ge("div",Sqr,[ge("div",Lqr,Pe(l.label),1),ge("div",xqr,Pe(l.tips),1)]),Ae(t)===l.value?(xe(),Ut(a,{key:0,name:"check-circle-filled",class:"checkIcon"})):nn("",!0)],10,_qr))),128))])])}}}),Tqr=oo(Eqr,[["__scopeId","data-v-6430745e"]]),Qqr={class:"requestConfig"},Dqr=Je({__name:"requestConfig",setup(e){const{baseUrl:t,isElectron:n}=xs(ku()),r=fe({baseUrl:""}),o={baseUrl:[{required:!0,message:$t("settings.request.msg.enterApi"),trigger:"blur"},{pattern:/^https?:\/\/.+/,message:$t("settings.request.msg.validUrl"),trigger:"blur"}]};function s(){r.value.baseUrl=t.value}function a(){t.value=r.value.baseUrl,window.$message.success($t("settings.request.msg.saved"))}function l(){r.value.baseUrl="http://localhost:10588",t.value=r.value.baseUrl,window.$message.success($t("settings.request.msg.reset"))}async function d(){try{const h=await(await fetch("toonflow://getPort")).json();h!=null&&h.port&&(t.value=`http://localhost:${h.port}/api`,n.value=!0,window.$message.success($t("settings.request.msg.refreshSuccess"))),window.$message.error($t("settings.request.msg.refreshFailed"))}catch{window.$message.error($t("settings.request.msg.refreshFailed"))}}return An(()=>{s()}),(u,h)=>{const g=Ez,m=dL,v=Wu,f=p2,k=Si,A=Ev,p=A2;return xe(),Ge("div",Qqr,[c(g,{style:{"margin-bottom":"16px"},theme:"warning",message:u.$t("settings.request.warning")},null,8,["message"]),c(p,{data:r.value,labelAlign:"top",rules:o},{default:Oe(()=>[c(f,{label:u.$t("settings.request.apiAddress"),name:"baseUrl"},{default:Oe(()=>[c(v,{modelValue:r.value.baseUrl,"onUpdate:modelValue":h[0]||(h[0]=b=>r.value.baseUrl=b),placeholder:u.$t("settings.request.apiPlaceholder"),clearable:""},{"prefix-icon":Oe(()=>[c(m,{name:"link"})]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"]),c(f,null,{default:Oe(()=>[c(A,{size:"small"},{default:Oe(()=>[c(k,{theme:"primary",type:"submit",onClick:a},{default:Oe(()=>[Bt(Pe(u.$t("settings.request.save")),1)]),_:1}),c(k,{theme:"default",onClick:l},{default:Oe(()=>[Bt(Pe(u.$t("settings.request.reset")),1)]),_:1}),Ae(n)?(xe(),Ut(k,{key:0,theme:"warning",onClick:d},{default:Oe(()=>[Bt(Pe(u.$t("settings.request.refresh")),1)]),_:1})):nn("",!0)]),_:1})]),_:1})]),_:1},8,["data"])])}}}),Bqr=Je({__name:"loginConfig",setup(e){const t=fe(null),n=fe(!1),r=fe({id:null,name:"",password:""}),o={name:[{required:!0,message:$t("settings.login.msg.enterUsername"),trigger:"blur"},{min:2,max:20,message:$t("settings.login.msg.usernameLength"),trigger:"blur"}],password:[{required:!0,message:$t("settings.login.msg.enterPassword"),trigger:"blur"},{min:6,max:20,message:$t("settings.login.msg.passwordLength"),trigger:"blur"}]};async function s(){try{const u=await mn.get("/setting/loginConfig/getUser");r.value={id:u.data.id??null,name:u.data.name??"",password:u.data.password??""}}catch{window.$message.error($t("settings.login.msg.fetchFailed"))}}async function a(){n.value=!0;try{await mn.post("/setting/loginConfig/updateUserPwd",r.value),window.$message.success($t("settings.login.msg.saveSuccess")),await s()}catch{window.$message.error($t("settings.login.msg.saveFailed"))}finally{n.value=!1}}function l(u){u.validateResult===!0&&a()}function d(){var u;(u=t.value)==null||u.reset()}return An(()=>{s()}),(u,h)=>{const g=Wu,m=p2,v=Si,f=Ev,k=A2,A=Wc;return xe(),Ut(A,{loading:Ae(n)},{default:Oe(()=>[c(k,{ref_key:"formRef",ref:t,labelAlign:"top",data:Ae(r),rules:o,colon:!0,onSubmit:l,onReset:d},{default:Oe(()=>[c(m,{label:u.$t("settings.login.username"),name:"name"},{default:Oe(()=>[c(g,{modelValue:Ae(r).name,"onUpdate:modelValue":h[0]||(h[0]=p=>Ae(r).name=p),placeholder:u.$t("settings.login.usernamePlaceholder"),clearable:"",width:"100%"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(m,{label:u.$t("settings.login.password"),name:"password"},{default:Oe(()=>[c(g,{modelValue:Ae(r).password,"onUpdate:modelValue":h[1]||(h[1]=p=>Ae(r).password=p),type:"password",placeholder:u.$t("settings.login.passwordPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(m,{"status-icon":!1},{default:Oe(()=>[c(f,{size:"small"},{default:Oe(()=>[c(v,{theme:"primary",type:"submit",loading:Ae(n)},{default:Oe(()=>[Bt(Pe(u.$t("settings.login.modify")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1},8,["loading"])}}}),Rqr="data:image/png;base64,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",Iqr="data:image/png;base64,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",Mqr="data:image/png;base64,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",Pqr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAKACAYAAAAMzckjAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR4nOy9CXxcV3n3/zgkEEzKVgptCQnQkqZsLxBLMxqPPKORHW9R5EWae++568xITshGSxcIiZcE4thOgELpv6W0QMhCoOVftsRxnZQudIFSaCC2PHESeSIClLeUBkVxHGnmvJ/n3HtHV7JlyZal2X7fz+dBi7Ezc++dc7/3Oec8DxEAADQp+XyedHcXdZsHKKGXKaHLt8R1+RcxQz4ZM+TzCb38dFKT30xm5dUJTb6oTUhK2UPUn9tJXsGr9csHAAAAAACnxlIS3jba4NxFGTHMAvgHCV1OxHUpY4aUMVGWCb0sk5pUkdDlI21CvtEXwF0QQAAAAACAxuN8Wm/tU/KXNEavYvFLqCjLuDEZ/LtAAFkMH0tbxVdo3h6VPQQAAAAAAA3FRdRtDnHm71fjuhzzBbB8kvAzg53myEd7nXtJeDtUFhEAAAAAADQMF1O3KPK6vz+sZv6qWUA/65fUJgUwnBqOi6OjnVbphWuc/UR0Qa3fBAAAAAAAOA0B/Eo0y5fQIhHKH08Hh2sD/ViWtoZUFhEAAAAAADQMF1PGLFJcl//gr/WbFECWvWoYZbUhhCP8XcyQl/Lf5X8DAAAAAAA0mADGDPnl6QIYY8mbJoBhFjAQwOVpCwIIAAAAANBgXExd4hBnAN/fka3I5Ya/9k8JXhD+NPBkNjD4frxNyJelbAggAAAAAECDcQGttfZRl/nk+Snr2NHlRiWa4ZsUwOiUMGcKxdiXO80RWo1NIAAAAAAAjcZSMq0b6XJxB6WMJ/6wwzp+s4fK+oUCqOoCjj+TMod/u9e9i/TcNpSBAQAAAABoJM4iosGcR7a7jc75tfcuSdtHbk8aozMKYEKMjqbN4XXrnL2qgwgKQQMAAAAANCCe7ZBjXUm6dQP1iDt4Onhdh5Df6jCkVJFVcTSmVb6YMo5c1GvfScLZSq53NeVyuVq/fAAAAAAAcKo4jlMN3dpK6639qjtIxiy+JmMeTmWMR/9Pl/HoS3izCK8XFM52yns5ynkFcnMFHHAAAAAAgEbDdj0yPZ4G9sh0riLD3kZZexf1OTtps7uT+tzd1TDc7eS61wbylyM7nyNaUut3AAAAAAAA5s4SUvIXCqDjhOGQ7Tpke5YSPT8KSvzCgAACAAAAADQqnME73Swesn8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGg8zgoCAADqFYxTAABwhrAcm2zbJs8yVbi2Sa5lB+FSIZc/aeS8ggo350f0Z/46ODhIVwxwXEGDg1fQwJZBGriiQFcM5lQAABqXwfygikKhEEQuCP/nfD6vwit4KiZ/9oO/nzKeuK6KvJdTP3u2p8JxHPJsh/K2pcJz/JiVJbMEAAC0KpMCaFPenCqBlnUFme4O0t09M0a/u1tFn3sbae5NZHvXBjI4qL7OJICDWyCAADS7ALLEhQLo5q8i4W0jzdtF/Tk/+PvoeKI5u6th2NvIst6tHkR5jOJxacqDqm3O/gIhgAAAcGJ4YFWDa5D18yyDXNsg2zGo37qe1tn7KWMWZ4wucSiIg7TW2qckMJQ/DhY+lkCWPz98AQwDANC4DOYLKkLhGyzkVKjv+c9yHhVyfuZPz22jdc5eylg/oJR9QEXGHKJuUazGKvNR9bVLP0irtfvVGGQ7LHvhuGQGP0MAAQDgjAigbbsq46eZ76M+czttsrbTOvFZSpmlc2OGzMQMeWPMkPfEDPlgzJDfiRny72OG/Jt2vbKrXa9sbtcrr1whjlCP/Xnqd25TYbjbKT/4Hj/rt4Wzf74AKglUvxvE2QOggQmFLxRBX/58AczlrybT20a662f6ep17KGUOU0yMv3yZWe5tE+WdMUN+Ka7Lv4/r8jtxXT6UtOS9cV3uaOufuDTRd3jpZcbnqM+8SY1J/db7SHcG/VmLQAJnBRlAAAA4MWowdR2yXY82G9fTSu1rtEJ/mDLikbenzeG/TIjRp2OiLE8YhpRtohrjCePo19JiZG23OEyrjCKtt/aTXdgZiF+Q/at+7wcAoAkEMJL5yw0U1JQvZ/zWOPsobQ2pSJmlVXEx9uU2IY/xmMHjh4oZxpeEGHumSz9yR8Y4+K4u8xFabe+lTfb1ZOdzSgAtS8z+AiGAAABwIl5KurGb+vSP00ZjD60z7qIV4sjr4kb5rzpEpdIhKjJu+KI3U4QCGP4c16VMaPJbSU22ZYwR6sv9tZLA/ODvBmsAffHjNYEcAIDGpXACAfQK15KR30497j3UaZWoTchLYob81xONFycLNZYEwbMNnVbpwtXm56hX7KJN2kdI0z6kxrCTAgEEAIAT8WbasGmEVq4vU2bzCHWZPzI7xbO/6BBShsGD8MkiHKijwQN2UpPlTn3sppX2j17Q4/19JBM4GNkYgilgABqZ6Zs/8nmPrMIO2lD4e7o0/9MXxMXRm2KGnJhtHJkpEpof6nvj6DMrjCetFZuGaeW6o7Rp07Aaw04KBBAAAE7EMupa+xzRC48sWZ6VuzoMKZcHMVcBnJS+sorpPyct+eWVzg/P3aQygR+igYH3VOUPAghAY8PTvaEE8po/JX+Omkl48bKs/Fr0ATEUueliN1cBDB84k5rcSS8uLbn0sufVGHba8ocyMACAZqaQGwjCr7OVzw2o4BpcmvsRWqU9RYl++ZH4HAbj0wqjLDvFM3u77dI5l7v7yXa3VV+Hlx+o9eEBs+DmXRW5XE4F12fLe/7vOKbXcatuBgjCca1qZojXbeVy7pQIa8Hxn3OE9eLCOnGgvvHPm3/uuWTUemsfpc3hFyaN0f0LMp6EYtgvb+Oxa3P2VlUmxhT+RjbTNMk0DTIsUwUkDwDQopxFBW+LH4EEsni5uetIz+1Qu/LSovQ7CzlQx/QJJYEdYuKTK60SbbLvUjsD3dw1uME3pABykV6X3FyOrNzVqq6bcHZVQ7N2ViNr7yQzz/XddpHm3Fr9Gsam3K207opd1HPFNjILV0UEcLJIMKhv+Jz59f120Ab7HpY/ihvjn/NnABZuXOFIi5Er1/V9lvr0G8hyryFhOWRZlgr+3jDtWh8eAACopQBe6Qdn/rgga36AtPwOWu3s5wXalyTE2LGFFkAVYlwuN3+R5RvEOnsf6fkb1c0e1DeT2To7CF8Gucaj5m1XGZ9V4kA1VltD56y2hi5cbQ1dfKk9dEm3OdS12nn07V36I78Wu/zbZ2eMgxRGu3eQLrzuAP3We/ZS75Ybq9mkaID6Ru32zd+odvt2WsMUN5/24sZ4uA54QSUwaYwdTYuRt63U7qOss0NVMuCOIZwJFJanAg0uAQAtylmUz01mAMMWTP3eHkpbxbNihvyPhZQ/JYBaRQlgu/E8S+CPY6L8srR9gPpzOyGADQDLnp17N2neDdTn3UL97q3Vzi9c8zEtSr+Z0MvvSejlzyT08nc7tIljHdqEDKM9O66ugcj1UIpplS/GtMrvvNmZaPuVq8tnve6aYeoe/FxQL24PCe9m8rzrVMYa1Dcs7Zq3k/gz3WaOv6rNHP8ffthTAphdWAHk6BDym/TqTyzZYHxQTflWa5raORUQQABAyxKu+Yuus+IbbbcoWgstf9EyDjwNzJmBmCjfzDXBuA0U1njVP2Gm71JnL62wDlLKPEQp8eivpsSj21YYTx5IGmMzn391zmeoISnKcplZlm9zykfe4Y5+sNMavoi7QqTNw7Ta+YaSQL5uQX0Tjid87tqE/GhbWMMv/NwvvADKS+3ixk3GzapXsJr+tf0pYA4AAGhZJtdTeeTl/F6caq2OGHl4LrvwzpwEBruEjfL/ZMyhl3AWEgJY7yxVrf0usz9PSfMILTMmLlqmy7vadXmsXZeyfS4Z4DnWeQtk4QGuGZe0nqIe54tKAvk1gPqF27z5Alh8RcyQo+G5XUwB7DKf/NcecSdlxfvJsLZU5Q8CCABoacLF9OEuvTW89s8cuSRhHF0U+ZtezoGjWxQNbg2FNV71zgW02tpPK4wnX5XQf/EnMX3ieZ7ODeXvTApg5P9biYujX+w0R36Tr1V+DaB+UT1+/RmFLeE5jD70LfS4wtnGDutZmTJLF2f6v0p94gNk8WYQ01NfAQCgZQkX07MA6q5a+8dTNdyDc1HEjwfo6RKYFiN/xVlIzkYiw1MfnKX+l7Nt5xPRRUR0MRGtZvm7LKZVfhyu6VNrOiMSuAACGHaYeabTKg0QrQpey0XBazsXpT3qhqWTu39Fad+UB75FFEA17WzJ62ObvkcbxYd8AQwCAABalmrtNrdAmrObusQhatcr/9Su8018cnH+YgVP2XSKZ/8vvepTS9Za+5DhqTG8zo43CA16eVWeh/utpp1D1LbhP87udn/yx7NliufSzuu0buw8jSjG+GHhS92i+Mpu8wCtc/ZSf+4Gsgt+GRq+tkEtuYDWOw9SW++Bs7mDUFv/xGk9BMxbAv1/628zZlGNcTzW5bwCrg8AQGvjF+7NqQGRB8eMcYhiWuXpWgmgyh5lyxyvXWU+GmR3QK1Qu8Pd68h2dtAm+x5aLh6ndqvy0na98vW5XB8LJYDTYihujJ+fsh6ny9w7qD+3lWzvatzga87Fajxp6594U/CZrtX1wf/WT6YIIB4QAACtzgkE8JX+FF5tBJBjualiRbcoQgBrPO3LmT+Wvx5rH2XEMHUYv3hlhyX/c7nDU7x1IoD+TuInEmL0jSvEEeLMMe9M5h3KoPYC2CHkqnBpQA0FUGbM4nkQQAAAmFkAL6ylAIY9hmNapZdvHsgA1hZeGyqcPdRtDlHcKL+8Q1S+k7CljJsVJepzvfkupPxFSsk8FdMqr0/pP6KNxtdIWLcR0UtrfARbmaoAbkpash4E8HwIIAAAzCCAK/p+8EY1aAopL8meeM3OYkRMq2S79IMQwBqjOsN4e7iO2wtiovy31Zszb94xJuu5zRSznefZ/v6s/7aSP1U/UkW7Xvne8s3yJZdeJmnjhiNE9OZaH8IW5mLiZRzLTdl/qg8HCySAvwEBBACAGQSwWxRfEwpgh1UT8Qu/70EGsNYsJd27mXrceyllDt+uJOskdfpqJ4B+hP9mR5/8Ap3z+JI1PWUiWlbrg9jCXEyXWocprst1dSKAvw4BBACAGQQw1vOds9uz5ed5mm+xSsHMIIBtEMBacwGts/ez/K1JiKdlXBzzhesUb84LfXOfLpPLWQI3y2u7+54iorfW+iC2MBfzAyUL4DvrQAAnMmbxhRBAAAAICHfDRTKAvGZniAfNZdrC1+k67kagVWRCf6aSFiOvYPlAod9aENb7W8X1214aN8pPcps+P/xrYq436MW6wasakix+Wf8BosOQT6fEU6/lWoX+e0HHkFo9QKRF6byEGCvX4vqI1JB8vLoLmB94sQsYANDqhP1//Yr9e5QAJjT56UUTv2BasS0I/j4tRoZ6nXtVEVncuBcWrpfn18xzVfC1wAW419n7KGWWKCHGPhLdbFErwTutm79x9IudVonWOPtIz20L2h56KsIC6GChC0Fvo17nHr6W/vO46yMybb8g51+XMhk8GMR1eRcLoGHfWhVAvu4BAKBl8W+GXrUTCA+SMUPqi3mjVjcD/hr83C0Of4w3HvAGBLAIAph3VYQCqHs7w12/r4/r8rlZz12dCqB6sBDlrrQ1RGFrwegDDwRw4eFjzcc+Yw7tOe4cGYsggFk/4rp0pgggF4L2UCYIANDCRAWQpavTGaJ3WfIlbcJv3L7YfYD9XsCHO5QAFpChWWhY+kIB5AgFcJUYoqQmPz3bRo56FkD1+kR5b8YcUqVsuKYhX+eh/OEBY3HGFxbAblF8Z5iRi2TlFmtsORrX5cu6xWHSHF8Aw24gAADQskyZAs7toG5vP8WdEsXF2B8v9BRNVP7CG0MyK/+dp6EhgItDOPUbTgUrAXR30Wpj6FVJTR5tAgGUKbP0du5Ha7o7yMtdU5U/CODiCGB/bpfKKCd0+c2kVpYcc90lfiYiqY//adr4Ma2zHiLhbEcGEAAAmDAbwj1f3dx1pOVupvV+2Y8L4sb4sws9TVOVQL0cRg/fLPwpOw8naYHJe64Kf0psUF0HvBRglVF8P0+dNbwA8mswRz+VtIdplbeXtLy/FtBV6wGRYV6cDCAvKThACX18dUIflxyLdv41eTSl//ANPfbnVXeYsEVgmPEGAICWhW/4YYRZkX5vD6XtAxQT49sXQwCVBOplmTRG96ZFidZb+9XicazRWnjUur9gSsx136M23nC2LGOMHJhLhqbeBZCjTZR//i5r/Jyke4A253cp+QuDlizCQW5xARS5G2l90EowaTz9ZbWbfJHOfbsuP9RlPEp97u5qlju67hUAAFqWqvgFGREOnrJJuj8gvmnGRPlfFmWwNsr/kxalC/zdvzerbCQyNItbBshwt6sdsylz+E1JY1Q2iwAGEtiVsofUww1f727BDwjgwqKyrblr1PQ7P1ikzeFXx43yj8IuMgt5zmOG/I9lunxhSjxG/c5tUwUw2PkOAAAtS5j1C+XPXwu4jbpzeynuDlPcHL0wrsunFnCQlgkxdiwtSl1cM4zlr/qasAt4wQl3Q7IE9ru3Bpnf8ntnKvvSaAJYrQMnyh/xdwPv8Zc7QAAXhei4whLoFxYvdSbE6NEFnl34ccI4+vqk8SNabT1EhnOTus4n5c8PAAAAJywE3K1qwcVE+e1xXf7kRPX7TvVGPF0a2oR8rtMqbdpg30umy5m/a6prtDBFt7gZwH53N5fr4M4Nf1VrcTtTsdysXnMPh4WAQ+FFHbiFZ7Luoqc24PASA87yd1ql3jZRfm7GB4bgAWTWh4vIg0rkz34SE+X/w2OXXwj8AtQTBQCA02sFVqKkMfamhC4PTh+cTzkTEx3AxdGfdpojXWscP/NX4LWIvEMTi/Rr2QuaBbBULxm8+UbS8uOS7MRzsQ3fPRutwGqXAVQleHID6rO+2tlPSbvUFRdjP51R6uaSIYz8f4MHykfiYuw3/QLg6CQEAACnyVJVGoazc936CNeFOy+hlz+Z0MvluU7fTJeINuFHzJD3pcyR14Zr/jzvOl8AgzWJ4cYUsOgC+LKoqDeDAIbvZ5Xz2G9BAGu3yYyDP+P8WefPfI+rMoHntwn5wJTuIGp94GSpmJlimgCWY6L8J8tM+ZKkNaL+bXQSAgCAecAypgZr8yFabRRVPa+0ORxLGmMPHPe0foJQU8XhoC7GZKc58u2UXVyftooqu8jTvnxTCLN/028WYNEF8K3NJIDt2eBBRUiZMYsbIIC1FkDOBPrfs6Bxlo7XZvK5SZml7yXEaCCAkwWjTyqBRrmSEKNfTZvD7+LlCym7SKvch0j3bsYDJAAAzAeWMt6RyxKouberHcI97l3c4J0SevnihC4/lNDldxK6LJ9gcJbt+kSlXZ/4Qbs+8ZEV4kjbZc7dqiQDrzfjXadhYd7qTSKsS4hWXbUSwLXNJIBh8HvJmMVBCODiEv0sh1PAoQjyZ59nGHhjDtee5JmGtPXk8pghP5HQZbEjWzlO+Ph3HdnKeEe28i8d2cq2mD7xGynjCeq171SbmHi3r+beRFbuWnJz6PQBAACnTVTO/PIZeVVMd529T2UDVYgix4u7RfEd3aK4slsU+7tFcXW3OXRJlzh4Xsp8hLrMR2ittZc0b+uUUgz+InG/M0MogIVc2J0EhaBrIID9TSyA10EAa7cJJMz++RF50At+x7uE14gHqEscolXmo3Spdfjl3aLY3i2Ka7pFsY/Hloxx6K0Z49ALM8Yh8uOgGlcMd2t1MxOLn533A2V+AADgNKlOz0Y3aAR1vfipfbbgGy733+Sncx6kuRJ/WIjVLrjV3b5TM4Ae5QuOCrDoAiiaWADfBwFcXLyCE4TfbnLKco9p2UHOCFr5m0nP3aauxay9a4bxZDLCmYRqh49crip/EEAAAJgHMw/YJ/79ceEWfMEICq+GZUeiAqh2CU759yCANRRAs4kFcCsEsH4E0N8dHM0O5tXYUM0KFvzWhNGo1q0MgrN9HNVxRQngpAQiAwgAAPUIt+FCK666EsCMcWhdTKvIdt2PWovbmYyMWbySs0iTmxHQC7ipxxWMLQAAAMCcBbCtWQWwWxR7IYAAAAAAaHlOIICvbWIBjEMAAQAAANDynEAAKaZVftaEAljpFsVfgQACAAAAoOU5kQAuN+U3ErZsNgE8xOWKIIAAAAAAaHmmC2CXfpA6hNzZhBnAz0AAAQAAAABOXAaG2vonOptQAAcggAAAAAAA0wSQC+qudx6kS3oPnN1hPfvzS7ITtZa2MxIJMfZ8WpRezb2nuf9s2IkCZWAAAAAA0JJEO7BwhxfhbaNe9y5K2qU/W2aW674YdFiwesYQZZkyS1/use8kzbmRHOcqyjk5yrkuua5b68MPAAAAALD4VPs8hx1Z8h5p3k7qdA5c0iwCmLEObORWhCx8LH4sgPw9BBAAAAAALUnYss/LD0wRwLT9A2ozx/+VBaphBZBfuzH+ZMY68ELuR63kLxA/FZ5d68MPAAAAAFAfAihyN9IaZy91WsOrE2KsYQWQ/zyplfOrjSEy7FuPkz8IIAAAAABaWgCrIljwyC5cRVp+G/W491DKLP1jowpgMiuHYqueO3v9hiLZ1h5yLVvJn+NNiiAAAAAAQMtxIgF0BzyVDdS8PZQxi2+P6/L5RhTATv1o75rep6hv89+RI3ZUM4AQQAAAAAC0NDzl64e/CYQFkIN/5q4ZXDsvrssPNaAAfjYtRmizeS9Z5jZynatUuRtMAQMAAACg5QkFMNwF7Mufp2rkme4OWm/tp7QovShpjH2rUSQwIcYeS5mlX1pn76N+63rKufYJN4BgDSAAAAAAwHEsJeFspV77TuoynnhdTJ/4aVW8jLJM6HWwQ9jgnb5+uZo2ofoXP7tCHImpun/eViI69/i3tSQSAAAAAABgKnnPVRK4ztxLKePI8oQYe0btsA3Eq54EMC7GxleIIz1rrb1K/txcjpacdRL5gwACAAAAABwPt4hzvaurmcCUWcq0CXk0Wmql1hFk/yqdVinHmT/D3UpW7lpycwVasmSa5UEAAQAAAABmF0AO3kDBYrXG2U+dVikTF2M/rxcBTIix51JmyeZev/wac7mckr9QAKdkASGAAAAAAAAnh8UvDM4E8tTqZY7KBL45ZsgnOnjdXbYsl5tSxrTKgsteW/+E+sr/vWAK+MdpUerY4NylspT8Gvm1sgRyYAoYAAAAAOAUCUUqlCpeV8cSuNreSyvEkZclxNjdLH4sgouR7Qv/OyydSWPsHzJG6XU91j4lf1FZDV/3cSADCAAAAABwcsKp1FCo+HteX8cSyOvtUsYRrhOoxbTKyGJN+bZnyz+L6zJPr/rUkk32XWQFmb+pouq/7uOAAAIAAAAAnLoA+hGsCRQPULf1KK3QDixNmSPbE2Ls5+HGjDO9RpB3IHeZP/zjlfbhV2fMIq2NZP7U6wvWKkIAAQAAAAAWjKUkvB2qZVy/dzv1uPfy2sBfiony77YJ+SjX5QslMCaOLxujJFGU/T+L/i4ijgn+nVb5UVzIG1Jm6ZW9zr2kubdTv7eH9NwO9RpOCWQAAQAAAADmh+ohnBsgLz+ghIy7b6TtA5SyhyhlF9+VMYu70mLkWwkxNu4Xj5YyoU0VwGhNwaCen0yZpUcy5tCtGeNQ4lLr8AvSxiO01n2QhHez+m+5BY78qdfygwACAAAAAMwPbhnHwW3k3Nw1JLxtpHm7qD+3S2XpODPIWbu0KL0krstEQpN2QpPb47r8aFyXn+RI6OU/SujlbXGjfEXcKC9PmaWX97j3qH9Dz91GWXsXmfk9ZLjbyc1dVxVOjlMGAggAAAAAMD9Y/lQWcFqEvYVZ1niaeL21j1aJIVplFGmVcZi6BUeRus2hKZExh1QWkbOJ6u/n81Qo+Gv71H8rNzAlThkIIAAAAADA/AhFL5S16PdK2HhThvtuspwbSNi3kLBuJcPeTZp9G/W7u0n3dqrQVOxSwfLH2UQledPEMsw4hj+fMhBAAAAAAIB5sISCtXgDkwIYTM2yvPkC6NKA69KAZ/tf3aBUC3cY4bIteY/yBYe8gjdFHk8kfxBAAAAAAIA6IDrVe6Lwy8e4xxVorhaYZgGcJo5R+Svk+M8no5oBDNYBnjLIAAIAAAAAzI9qdm4GAXSjwhdk/fzfub4YhmsGI/JXOIkARv97EEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgiuGAwAAAAAABoPqodKrxCtWixm3fJzvtfXc+knGuqr65nk+M4friWCi5UfLIIiyC7uYJfCDmMaHFk9bPr//eCCAsln3JnC3S6qCvC62CyyPXUXsZTi1wvQESub468G4T6/Ryur9nA9QcAAKARibYomyKABffkAug45NlO9YY+U0yRvMgN+EQCmMvZQUAAm1kAp/Y3XlwBzHmD6vrjnswcZ833DUIAAQAANCKcmWPxmxLVLJwdiF8gf54byJ9Hnp1XwW3LZgq/FRr/+5NZlwGX++L6EW2Pptqi5ezJ3wcxK7gB1zXHZ/wmW9/5fZS9BQsWwCm9lyMPIgOBBEIAAQAAtCTTpW/6FCyLn+VeQ4a5izTjE9Rv7qZ+81bKittU6M7tpLt7Thiat4f63Nuo37mNNGc3GfatZDi3kHCvJ9d795SbcyiFYcYmzErOCgSwrj1ZlPoAACAASURBVDnRlK8YuIp6tuygdVv20Kb8LtK8hQnd3UXC2k22dRO57rXBMoeoABYggAAAAFqTyanXSemrrsfL5chybNLFrbSh93Fave45Sm9+glL9j1Cq/6CKjFk8aaQt/2u3CMI8QOucvaTntqkMEEuBmiIsOH7GJpwmDoRwViCADSKAQUZu0KWeKz9Av/WevXTh1QcplhuijDklXpMxh1IZc2hLxhzakzGHPpkxh76QMYfuy5hDf58xh/4xYw7tzZhDX8yYQ3+eMYc+kjGHrsqYQ90Zc+j86L+1yihSz6YnaPPGb5Bp3KSmf8MIlyLMG1x/AAAAGpHoujs7924yvBuo372F+t1bqc/dTZudXdSjfYXW9Eqisw8vSfTJC2L6xMqYJq+KafJjMUN+JWbIv4sZ8jsxQx6OGfJHMUM+HjPkwzFD/mvMkPtjhvxcXJc3xnWpxUT5XSlz+Lwe9x6VIeQsjQpvZyRjs51y7rshgE0Ay5+Xu4aEt400byf1uTdTZuAzdMF1T9CvXivPeqsrL4kZ8g9ihnwgZsifxwwp5xm/iBnyGzFDbk1mZSKxpnL2mt4f02bzr6nPvp00+zYynJvI9q6dW4Z5NiCAAAAA6gNe1TT3lU1u3g7CJc3bSqvtvZQyD1LKPKSi2zn85pT+o6tWZOUXk33yv5brUnaIiowL6Yd+8ghvzOpnoyxjYlzGzdGJlFn6dsYs7ukWxbXdovhL3eYQrTaG6LK+g9SX3UeWs/XUpoCj35817fegZtcXrwMV3g5a4+yntDVEK53iWZ3OkVVvdX9x12/b4z9bZs5+Dc0nkln5i+V9x76UNn/Uuzb/5DkZ4xCtM/eR4W5VGe5Tft/TrysIIAAAgPpg2o3qpCJ0LmneDdTn+Rm/HvtuWiGOULteeUu7XrmlXZfDHeak6C03pYzpEyra9YqKOQugUQ4E0I/wzxOalAldjsd1+fWkVu7r2jzxorV9R2ijeTf1u7uJ6GIiuoCIls7t7UcFEJypq+mkvzkePlfnq3PHWd5e515KmSNvjBnylphWeVJdF3wNmLNfP/MNde0FDysxQ/40plX+KGUceVuPfae65okumuP1NYMAMihDBAAAYLFRa+eC9XNqkX1uQO2wdAt5FVYh59f0i9bhCzZ+cMZvrbWXktmHOZamjCNXJ8TY9xb6pjxTJDhjo8mfpbSxT6RF6a3hGsI19kMkvJv996Z2jk5uKvDXLE5uJonuYOZdxeD0YeUZzDkq+PpSxz3Y3R0e/+gGj/C88HTvGmefyvhlzOLFaTFyZ0KMjdfqujouK2iMVdKi9JWMObQsZQ/Ramc/afkdketq5jIybnTHOq4vAAAAtRVAa04CyOuehLNd7cjt826ly5y7KW09+Ypgfd5PO+YwpbuIUY7r8q9jhnx7yhyhDfa9pLm3U7+3R92s3dw1EQH0JXByNzPfnE3coM+QABby/vWl5Dt/vADyGj89t8M/N94u6nXuoU5r+OI2Ub43ZqjzKOsxODvYJuT9Sbu0jNekhq+fBdbNXzW1jAwEEAAAQD0RZirUTtqIAIY11qLZMZY/Xv/UJQ5Slzj04hXGkzuWm8/+ImlJyVFnAhjepCsJMfaltBh5C2cEU9ZhWu08pISD32O1dE1EAKM7m7EW8MxcX1EBDK+v8KGD1/hxFi1lc8Z26MUpc/iDcXP0WHSqv16DX2NCjJZTZulPMubQy1TG2dmvJNAXwPDaCkrIBBnA8LoDAAAAasL0ArvRKTo1PcfTV+7VJJyt1GvfSSnjCMW0Sk+7Lp9o5xugVlFr+9T6Pq1Sl1maYBPJeMyQH2sz5Es6zafUujIWD965HBXAKWVs+AaNzSDzIpxyr0ZEADkLy6KkMn7mCLUJ2RUz5FC4zrNRBFC9Tl6jqssfxwzp+Bnne9R7s72rTyCAk0XTAQAAgEXGX5ReFb4p4jfZjcOzbDKtG1XtvbR95MKkMfogix7LX3sd3IBPQQBVdBjycFI/tjJjjNA6sZ8Md3u1hd1ktuYUOomAWa+vqvSFmb/gWmMBX2fvp7QovTCpH/3Yyc5bHU8Bq4i+1oRx9PNpUfolfm+ae9Pk+tkT9LQGAAAAanKDjt6c/V6rA+R515Hp3qy6cQhnF220OPP3RN8y/dj/qF28DSyA8X4pE/1Sdury493ih+fw2kCWQM7URPsZQwDPzPUVyl70GnNz16lNOXzs06J0Qdwo/xtv4Amj1tfMaV1fwS71yJ8NpcXIW3vsz0/WDYx0EjljhaQBAACAU2YJVTd7THbVGFDyx9kL7oawou8HS1f0D3+qUzyr1vmx/DWSAKpQN+dx9TUppFS1CLNSLu8f++eUceS1a619kUygPwUctpULOStavgQlYk7C1DIv0R2+YfaP5W+9pTJ/qxJi9L9DeUroHONBNM61xa87GbxuNSUcPHAk9aNjKeNJsdbcryQwOgUc7g4GAIA5D6vzbj4OwBQB9Hf8qkX6uavIdHeozEzKLFG7PvGamFb595jGwlRRN+WGE8AwMxMIoHofXDswiLguf5IyjqRVpoYzgTnuMWwf10qOBdCXQBSJntNIFUhytIcv74zlad8g85eNG+VjU9bQGVEB5O/r4PqZJfzXeWIB5OjIViop48nf6bX864t7WEd7VmM8BwvBWfN0BbjGGWLqrrdojaip9chmDn+H5mA1uKyCo37HAcDpw1PAW/ypuXyeTG8brbf2UUYMU9IY/Y24UX40vJHV4waPUxbBGf4saYwdS4uRzZz1FLkbVWkc//OVV72MOWzbJddyybb5Z5Ms11DR6hQGXD8KOSoUClQoDFKuMEjeYIFyA4VgWYHfr5mvrx6+voySmxCj423TZGmKsDfSdRVkAae/7qAupUxpYzJjjOzqMfeT6d1YvbbU9SXMIGwyhU2GZZJhGWSZmgoATqVXdn6aL4R/fqKYUn8zXKoRJAPC+p14QFlAAZx7TJ5UJX9B8O8BOH14jdaWYE3WDtrg3KXkL6GPd8SNcX9qrtY32EUK7iaSFiWLjwFLIGdD+bMXFUA/IIDHC6A9swDyDSZ3jZK/Tba6vn4vbpQrnCmbvnmiIeMkwhoKYBgZo/Tx6PV1MgE0LQggmJ1C8HA1pfg4+0LemZMAnmh3/uTfhwDOm+mdB6IC6J+IgRkj3JV5fKbQq3ZwAGA+TNuNSZ3G05ck9PGnwynTmt9gFziq67W0suzUR8tpc/jKdfY+PxOY98h2TCV9UQHk36ksoGO2/MXni1+OBqcJIMuf+rMg8xdklt2kMVpRLf0aYJfvfEMJYNaXPzVVLEZlpzW8bbU7eX2ZpkGmaSr5U2H6AhgGACcdv/Nhjc2gzmbVNyKJpumVHqa5xYnrc/oB5sl04ZtM0wZPxu4OtdtypuBemFy0lmtmTRbo5YAAgvmyNFjzd4+Sv7hRflNCH/8Jr2VqBfmbLoD+Oq5yJSOGzTBTI+zBKQLoWrYK/3doFedLXzQGgyhQLn91NPPXzWv+WuXBYlqv6qCP9bjkae+kPXxVr+tfX7pZ8LN+pq1CyaCSQD8AmM0vvKj8cRcn1Vlnm+pKo/xhBrfgB3/lFdMEMBpgnhyXmo3M2XOh0Mvch2ilfZjjnJX24U0Zs/jxjFn8QsYs/kXGLL47bRVf7VeW3+Eb+zRLB+D0uUDtxswYJerUxy5M6OWRcBF+rW+ciy2AaiF/IIEpbfRoxigt52PTb95QXf/ni1/4vR+ti79MfFL4JsVvMD+owvZuoh7nb6nbPHJJp3hmtENMBMe5ugGndUIJoC+BcXN0PGWW1nHWfZP5AV/8hE1CiOr3YQBwMvLTuuyEnXXYGdgd2CG6RfEvu0XxC92i+PFuUdzYLYrndIuimvUJe6RX+6RPKwsGFkAAwzUxnHnpMp+kuJDL40I+Fg/WxESjTcjRTqv0u/z/5WxN2MM0nPsH4PS5mHggSOjyxQld/me4o7FVpuhCAeRIRCVQUztQ/zstRt60zriL+s2tZFnvDjaBQACjAqime4NgAWTxy+XeQ7b3QdrofJHHt5d3iMoTHaIiOfzjW/vzXpPrbGqHk/9Ji5EL1+p30mbjBtLFFSQMqyqAVhAAnIxCsBmUncDvrLNDdTlKmSPvjRlydIYx/HBcl4m08Hukc9kvrv06vV4nBPAMcPzav2A3nLmfuvURSujPdMW0ynNheY3pgwZPGcTNUZkyS7s4I8ESGF3ECcB8BTCuy0/PpcNBM0X0Znwi2eUMVVI/ejCuPbE0YzygJBBTwNNYQmqzR7jhI8z+sfytdx6ktPUkdVjPfDFu+vLHvaLDzF/TP2AEm0Oml4WJRlI/+s9tlw+d3bX5a+r6crxcdQo43BwCwMkewQaDzaHsFTzty5m/lDmyOy6OHpdMmhbPJcRYF3dE6jEfUhJYzQJG9hyABRBA3d1Fq4wiJTV5Xry//JP2bFmGcSIBDMolVNKi1L3JYmPfobKIOEHg9Fiqpn+JVlFajBSOk6OqAM5882pGATyRlLyj//k/jelP0BoRZgKvqK7/493BLU1EAKubQfKDZHi3Ubd9iOJmZQvLny+AUkX0Gmt1AeRo65+4Jdl3mNZv/iz1972PTGMwsjMYAghmF8C8d5WSv/We6qm9Knxwny24BmpCl+exi+jO7dWNIdEqJWCeTE7XTmbtWAC7zSFK6OX3zHqjimRj4mLswbTxFK03v6FSvVikCWbDdj1yHA6HPNuhnJMj3dpKa/S9tEIf/u2kMfbsTNddI9yg5zDIzfvfj4ujlyfNI3Sp+QBp9g5y3Ry5rkuu1+ICqKocTK0/xsHjW8YcemPcKI/V+vqo94gZspzSRhO9m4dJ9O8jz+YZHr92Im7AYDYKOX8vQbe3j+JOiWLm0b+rzt7M7QH+Op4F4k0hJyopA+bJiWrv+AJ4gHdd7j3Fm9yxuC5f3G08Tpp7OwQQzFkAPdsjx7qKNLGVesTdRL/850s6ROUfmuAGuuACGDPkT5cZldesMA5Sn71nUgDdVt4E4hMtS+XlrlSFjnnXb9oc/mor7fY97TDKsjNb/u7qTeMv2NR3gFyLb8RhJgYZGHByCjlP7fZNukP0Dku+pE3I58OkUbDWdLbx7esZc6oARiUQLKwAfn8ug0S1Ubq/e+4N3eKwL4B57NIBJ8d2naoACrGdVmsPUMp4kjr0Z3LRKblGjUUSQLnMqPxlUhykzc4etVYrlMBWp9pRoOCQyH2Aeqy9XPJlfdJ4uqXKvZx2cH9qrSxT/fKqNXqRTHtSADHDA+by+dPdXZS2D1CbKL9xyrg1NwF8GAJYOwF8eK7ypwqK+kVFL+CULdf3gQCC2eCpX3/616Os2E1d+kGKaZVXxnX504Zv77a4AlhebpTaL7PuIc3ZRpZ7jZLAVodlhXcfaoUPUI/3Wc78vSihl4utVu/vdCPseZzwdwX/Cu/KjNZnA+Dkn788CWcXrRY/oKQ+/uuJUxfA70EAayeAXz2VYqIJXR5N6OVz+e9y2hdTBGA2eN1fGFl7J3WJg3zdfSx8sIg3eCyWAKpMjTH6TXrNXy5Zpd9PWXsrMoC8CD0/qBagZ7yvUdx9nOLm6LUN2dO3RlH9HHI/YTF6e8ocoXXWQ6r4PwQQzO4XHtn2TurNPkzdfcde0Jkt/3zKuDX7+PZlCGDtBPCKUxkoksbY19PmMK2396qFnxBAMBssfrZ9JenWDXS5+TlaIZ74tbhRfjbMPMQbPBZlE0ggM6pOoCX708ZB2mzdCgEM1gBusm+hhPN9asvLc9qEPBIds2p9fTSSAMZEmeu2vZJvyP08w4MMIJiFfN4j17mRNO0+Wt//OKW00b84lQevmCEHIYC1E8Bz47ocnuPJKqdFKd7r3DM5RYA1gGAWeP0fZ6vWmPfTCnGEEmLsw6HMqKLPdXATrGcBrGayJjNa/94lDlGfvQuFUoloYMsg9ed2Uco8SMuMilttrVftgVv7a6SeI5qJD47d9nCJDx7wwWzkea1o7hqy3W202VItPS+MifIzc8zAD8cMeS4EcJEFkLN33HCes3kJMbYsrstfnOxEJY0xmRYjf8CtW9TUQKRdCwCzCSBnq9LGIxQT5VfHdalKc0AAT08Al2llmbZ+2BWuBfRrKs7UJ6P5sRyTjIHbaZX76Fnt2fLBqti0Yru3eQpg8PN/d5tD50EAwanVGc5XW8ClzNLlSWP02CwC+HRCjF2SMkuqJRw3p8Au4EWDbxrnq0K8Hf2HaZk2/paYKH+rXZ+Q0YjpE3zT+XHKOCIuN++hrLWdTOfKYGenHwCcjLyXI83Z7a/9E3JbeNM5U2u0FjwDV4eREGP3cRslHjg3au8jzTBJ13UVmsiqr1bWVNHsEsgdQIz8HspYBzLR66mZz/8Zv56mRFlmzKGCmgKeywP+klkCNDUDg/lq5AauI7NwM230/oq67JHEclMemP4Ay07RISr/FtMn3pLMPqYcxHeRc2v9VlqRC2ildh+t0H9A9Ko/WtJtH1rebR+6sds+9Ilu+9At3fahTSv6H166WrtfyR/vOnQ8VwXqkIHZYPkYcHOkWbuIfuWPl3APyPAmE3YpmO/NqxUFMK7LSlyXb+Kpk57sTaQZ+mQEAii0VhDApWQVdlCvq+r+fToUwGjx+ia+Bs5YqPXd2uTnMmUO/12Pe4+a7Zkpw1wFAtjSbCkMqBgY8KMwuIXMwodovfcQrXSKL+i2D61cZR26aZV16BOrrEM3dptDCXaNVPb71J39etARCtSIpbTBeD9tMD6oYpN5y3GxQb9FtaAynasCAcxF6pChDAWYGZaPgp0j4dxOXeJQksu+RBacn5FWby0qgBzbM+YQ9WhblfRNEUDDl0CO5ub8cCnLuQkx+r/V8x22QDsDDxjNHuFSDK4FGApgQoyWU+bw69Y4+4LszEmAALY0AwNbqsHyx19zhd9REmjkP0IbxYdokzEZ/eat1e83G9fP/oABFhbO5gnLIcO01dfpwWu4QtnjqV/u7BAG/xkAM7OUNPMG6rU+zz1//7xa9+8M3qBbWAAPTQpg36QE8tdINDcXqZaWcaOsRcvlTNs0g5iDACb08cnMvF/D7Q/5+uJjfFIggC3NQCB+YfiZwEkZtCxnSgjDIl03yRR+P3NQY1RTecuaMXzpi4qfMyUAmJnz1e7fVbkfn7PcfPbnUzp/YA3gvMUkYxbfyVPAKttnBNIXmQ5u/gzgxaqweIeQX+CHC15f1OTSf8YjuvZv2sasf+MlBnyMTwoEsKUpDA5UI5wCnhTBAXJM66QBaoxliZOG7VnHCaDjWtUAYGYuohXi+7TckcsX6gbWwhlA3pm/c/XmO2hT//WkaYXqJpBQ/lpBAOlVH1/SIeR/BRvWan5OGi3C3dInkMDxjFl8KQQQnIzCYL4aYfbPjwHaMpAnxxInDVDnAhju9uXp3qgA5m2horkXmYP5cZHaYNRhyR0qQ7MArd9aWQCT+tF/7uh9glZu3Eub+m+YFEC1EYR3BptNfgFfTCnz0FviQqqqBcvNyHURRK3PUb1HeIyiEhiKdMYsroMAgpOxZcCjgUEvkEBfALcUtlQ3h0AAm0gAfQmEAIK5cjF1Zh/h8i//1J6Vsj175st0tLIAxnX5/Dt7JpYmew9Sb/8tvvTxBhCjL8gANocAzlzT8CLqdorXtOsVGTcrXF5iithAAOcmgLGIAFbLdRhSpo2nbiPaSERvJqKXnvisNPMUcLO8jwUWwC0DEMCWo1kKzfIaSLUO0nGD8H92LZdcy6ZcLqdClb4JvufIuwU/vMnf8Z+7nq2CpZnXUKq/l3dVy5xczp38+56rorm5mHf/nhfTKs/PlP1rcYE7E5HpFodJd/dUC6nyteZHnhqdwXyBtuQ4BtX3hUKuGnpuN2XMoXvr4Bw0ZXRm5bcS3c/T2jWHaPOmmymb1Smra5TVDdI0U0Wj3wXC5gj5nN/YICxqzN+7hTDyqi0ef6b4qwpuhFDIB+O5f29QkffH+/DnyXtDIfLz5H0AAFAHAjgpgVEB9OsdCutqsp0PU7/xx9Tv3Eb97m7S7Nv8cHZTv3trJG4hw7uBbO9qKhQKapDgAcH/0LeeAGaMQ/GTTf1CAOd3k44Zclszt1IaLOSqEhgKoFe4msz8VtrgqdZT36+1KDVrJPvkL+hFR5Z0rRyjTRs/SppmNK8ABhJ4IgG089ep7lmat0u1yItGOO73ebeS5m1V435VBo8TwAIEEIB6ayVlc1Ql0A/b9jOCLHBZsZs2bCrR6t4Jymg/5HVH1GU8Rl3Go+p77kPKwd0u0uI/aa11HxnuVr9YdjAQcKYwzBby1wHXVdHYw+ecBDA3i8AgAzg/Aby3mQUwN+hSYcD1RVBl/rjzx3Za6z1AK+wjZyXE2LO1FqVmDZ4W7tLkryfXP0a9m3YF0qepMLKGikYnmi2fEiyDKraQ6d5M6639nG0m/qxlzMMq0lYxGPsfUbHa3kuGu51yXsGPqAhGfldNBHiFWr99AFobJX+OqaZ7LesK6rOvpw3WZFHszc4u6hVfoZU9kuicx5fE+uWF7bq8tF2TersmtyzT5XuXGZWBdr2yOaZPZDod+Zv0mj9bwt0JOFPY53KGcDdpzq0knK3kelcHAphrCQHsFsU9EMCFu0nHDPkfzS6AHIMFtyqA2fxtlHYPUrtVuRDLBBZWAtv7JtKJjd+jns03UX8fZ/40MjSNzKwfZzWRAHq5a6Zk+vgzxUXsN1n3cqb5BXGj/Ma4LtfGdSniutwSM9TYn19mTGxcZkykV4gjr++xP1+dGeLgzGB4DxDOdjX+h1lBCCAANYazdJ7tqJpEffr1lNG/Rh3Z71Iy+7Bqj5cxhzpS4sfbkln594l++cz0AbItaDs1WeB4XMbNp/+30yo9mLaGdmbMoTgXq81YB1TXAh4EwrWDHNT8AvhVCOCCCuD/NrUADuRU8NRvOB2s526jLvtRajflpRDABc8EXtG+4d9Vy0F/6teICGB/wwtgdApYeDtovfO3lDa+z5uLXtAlDma6zaFb0qL0Lwkx+pzqkhJkRtVnT5/acjAhxmSnOfLTtFW8P2MOcaeet/FnMx1kDNdZD5HmbKPBQX89a/OP/wDUNUvJNraSrt9CmnELrdPvoI5skToceX5MlLfHjfITs21KmPL7SIuztrDThb+r7vG4UeaB5A291t3Vp0OeLmjuVjhKAH8AAVxQAeRyHa9uJQE0vNuo23qUd5d7Cyw/LR8xUb5JCaC2Xa3/YwEMJdDQ+qmxWaqkjz87nPHrde7htoJviukTe+Jm5UeR8bsa0wUwOv5P9qDm/+94WE7nkZgub4jp8ldT4inVFcmwbiPH/jA5YluTj/8A1DUX0KYN99Flvd+nlZu/T53a46+Pa6N/Fjcrx/jDy3XFpovfcWvWpope9ecpg0fwd5PG2PNpMfKpjHHo9V3iEK219jV5M2wlgCMQwAUXwLc3rwDyxo9CdQ1gKICrzMeow5DXQtIWVlJjovyRMAMYyl91M4jR6AJ4Aa1x/LV93ebQW9KidHfSGJvgckId2oRcbkzdvMbil8z6X6ffA6Ljv/+931pPldbxZXEsoY9/OKX/8DWX9hepp7dIWt9DTT7+A1CXLA0+eKvo0p5HKXXZsRclNj+/vT07flR9WIO2UrMK4Alk77iepCcaVLXKsXZdfniF8eSLiVYHr2VpE9WfWho0kV/Fa2dGIYALLoAdrSKA/D1PAQcC+AEI4IIL4KeOF0Bf/hpPAM8LahouI6K3qvEpZZZ+KWbIj8aN8gQLG4/9qqB4dnyKAFY7pgQxUwJgMlMYxtTj2dZXGVuhyRs7Vj139uV9PyF//OexEplAAM4403sYczFrTvuvsR+i5dowpbSxd3Zm5aHpH9TFiIRxdCgtRtrX2fvV4uOwzhTXnXIHPBX1LoHRqu/c+mdwS4HM/Hba6D5I67yfnJM0xhb9uLZSqIK9VnElT2HxOqbJckN+PTJqmkX6k4v1+b3y2qq4LnfW+vg3e8RE+V7OkPExn6yT1zgPGJ5jqXBcQcK4hS6//DBdetkEdfWPsPylE2LspDMUCxF8r+nMym+ntKO/ncg+RiuNr6uqEeHr9MNStWRnpZkLcQNwJgXQdK4k4d1M68XdlBRP8iJy3smlsn41jPG0GPl9Xn/Sn9tFm/O7qL+wjczCVQ0hgNW+j4EA8lotq7CH1oiDtLxv/JW1EOsWFMDLpwtgWJC20ZkufywhoQDGDPnxWh//Zo+YKH+t0QXQsbeQaV5Pm7Jfoksvk7Tk5T/hag43tOuViRof36MdlnSTxjBdbt6lqkTYzkBV/iCAAMyT8IPEAthvb1U7seg1dyyJi7Hb3qVN1LzbRLh7LGWWPpayh85Kuj+g7txeJYGcCaxrAVxClNsyoCJs/s0CaOf30FpxkJKbx8+DAC789ZO2itkWFcDbay1IzR4xUf5SIwsgj/2muIE29e2lNRtGaNm6Y2cv1+WdagMHT93W+Ph2aBOVFcazN6S1Eq3JPkBZe2t1popjVpABBGBmuMSLbV+p5I8zf6u8/3tWXMi/uEQvy2VG7QVQDbLBepJlZvmv3mGPn8MSuDm/U00H1zVLiNwrpgrgFYMFcryt1Gc/SJe5P3pBp44p4IW+dtJWcV2LCuD2Wn92mz1iovzZRhdAXdxC6zYdoBUbKi9KCvnVmC1lu1WR7fpEzY8vrxPs6CvLFYb8/+hX7ljC9yi+V5nOVRBAAOZLzsmp2kuXmn9Ly40SJYyjH5ncrl8H/WYju8e4fMAys/zplH2ANG9n/Q+wkQxgYTBPA4N5JYEDhWvIzd1Mfe4XeBPI87UeZFtAAJe3qAD+Xq2Pf7NHTJT/uJEFkDcO9YsP0lr7sbPi/fKLapw1x/16rTNs0lvMCDeLJDUpO/WxD6XMEVpp3E+at52Ebc3+BpEBBGAmlpJh7aDLzXsoqZdomVb+/TDbVhfyFwwAU0rIGJKng2/Y4NxFplf/daIKgyx/UwVQSeDAABn52/lG/fNaSE6xDAAAIABJREFUH+MWEMC3tagAbqn18W/2iInyzsYVwKVqQ1qPuIO67Kc+1l4t3FyuIwH0gwWQv8YMWeB71WXWPdRv3jD7+A8BBGAmLqC1xt/SCm2E4tpo5zKtPLno9yRlWhY1ppUPCNYEVtJiZON6q/7rRLH4KfkLpoCV/KnfDZBWUAI4VPNj3PwCeGGLCmBfrY9/s0dMlH+/cQXQr/O3QhzREsZRyQI4lzJdixlK/rKR8jKafD6hPdvZ2fckrdH3zz7+QwBBK8OtiGZuR3QxdWlFas/KV7Zny08u08aPS73XegCI1o2aNiD9V9p46lXROoH12HYpzPyFO4HV91MF8P6aH+Mmjpghx9NW8YWTApib0oS+2QQwn/MFMG0pAXxHrY9/C8QGlm3NvT0QwKlleeq9zusKceQN3C4xlL/q+6oXAZxWX7A9K2WHIQ8v21hemukvqnvYSYEAglaFhWjQy6so5PynU68wOTjp7i7uRMH1wj5V6w/66URSP3p3WozQems/2e42GlRFfv2+lbxBpO43iXAnEOvRP6n1cWzmaNcrh1LmIdVsPtpk3s0NqjjZ41EjEGYy/cym/976ndtohXWQlhkTL4kZslLrc9DM0Z4t/zY/RPfZt5Pr5sj2LLK9yVp1tSbs4xsWQOfx0XR3ENdWTZklSoix+2p9DE8zPsz3Li7wHt7X/HtbfsrPALS2AOa8QAAnPxhu/ioSuRuJ19GlRak9rstyHXygTzfWdptDJNydDSmAq8xHsVB/Aa+PmFb5MrcVrAqgVwiiSQQwyGTye8t7Ocq7BTKcm+hSex8lzSNUi0K+rRJJ/ejECm3kRWuNB0mzb/YFkAvqe1yw2I96FECWJp62jhlyY62P4TxiIi1KyzbY96gmAXxP4/G+sabgAVhg8gVHRdj+ij8kem4brXH2Usoc5hvEP9TBh/m0I6GXv80CyNnMcLAL10JxNIAArqn1MWzmiGny1owRCCCLXyCBLEocjU70vXDwz7Z3rZLAHvvzlBYjD9b6HDRrpMXIY5eLe5X8We41kwJ4KnXqFphwXaLfBtEfG3mJQLc59IK4UT5c62M4n0gaY19Lm8O03t6rJNAXQK96z+MAoKXxIh+GUAD7eY2QfYBiory81h/ieYdRlmlRWs2dQlhs3dw1jSaAL2/wDGxdR0e2IpQAOrdNCmAuRwOuH42d/6Mp8qcEMCK4mrObl3igHdwCXVsZs3h3n71HiR+H47mRzkp1JIDh8p/cNarNJ4+VaVHS62KN93zCKFcS+vg7uk0uC7ZnigAW8n4A0NLM1Cs0WCT+lZp/iM9AJMTYP3I2c529L+gZ7C+G52gAAeQ1mN+v9TFs1ojpE7/eJQ5Sn3sbuTlfkPKeW41Gp7quMZwGDmXQ4/qet1LGOLgqplXUsegQtT8fzRQZc2hws31LNesX7akeRq2Jzorw2LjO2UucNUsao9+t9fE7I2GUv8gzQOEmL77H8WyXWvqU8xr+AQ+AhWoW/2rus1vzD/A8IyxbEBPli9PVAtH+pheOBhHAP631cWzGSBpjB1LGEVpr7SPNvalJBXCypE1UAPn7fvdW6tS+v7Q9Wz7G8tdp1/6cNFNkzKHf2Gx/0N/4ERHAsL3mnHrVLqIAat4uylgHKG6Mv7MedvieoXg+Yw79Mr+3SQH0Nz5yQABBSzM5AEwVwG5x+D28rb4OPsDzi6A2YJuQH0jZ/CS4y1/r0lgZQK3mx7EJIy1GPs7r4Fj+rNy1vgAG08Bqw4TX+GVg3LwdxIkFkBf7x3X5TT4eYSYQcUaOwZN8bDkDqDZ8OFMFMG9bKmotIOFSmMnyQEO89OfDdVPm64zU+RzK9+d2VXcB++sdGyEBAMCi7QKLrgG5lzLGU//YZAL43ZRdbDABvIB67Ad5Pc55SWPs2ZofyyaLjFns5bV/LH7V3bLBLuBmE8CwDEy4ESQUwBX6D6hdr9zAGcDlZn1092mGiBnyk1UBrGb86k0AzyIvv0VFPrdFCSA/JLeJ8pFqbdXGPw+y0yrd3+P6a8D5HqdKnjXE+A/AAhPe6PiGYLjb6TL3IUr2P7E0YRx9bq4fsJNFrQeA6OtMW8XzucRBdQDI13sZmKVk57YTlzJIi9L/P5PcNsLxr5eWUdV1bkb5v7vEwRcTvZmWLFlSjdbiIrXZq02U3xAT5YrfT3vyuknUwXmr9wiPUbRDRtCXPMUyxcf41AvwLxZnqXJHYfDDUNoqvoFbvdVLoef5RtAZ6ljKLL2YaxvyPa66M/5MPOChkDRoCgH0qrsCqT1b7m7XK3MSiEYREH4tGbN4eVUAg8xnvVMo5FQJm4w5ZBx3PCGA8xHA23nzB9FvtbAAnk+r3X3UaXG5p6e/GRVA/3g1vgAsdIQdiKICmBCjpU5r+Cw+tnyM65lo3UsWwIxZzNVTq7f5RuQ+1M73Nr7HndEMPwQQNJMAdukHqUPI97IAcjSZAO5oRAHkaeu0VTyvTcino9mZ6dmHej7+9RIdoqLKQ8RE+TchgEtJy2+j9d5dXPPzylBk+Dgl9XEVkMCTXE9qmnRcxo1xlfULxSltDt8alp3y26rVL2Hva39XuEoAfEyNK80ngFdCAAGYRQDT2gFKWvKTTSqAX2k0AcwN5IgXMPtrc+RHeXqGbzYQwNMXwIQY3cdtrnj3L9GFrZsBXELkct3PnMowvzJmyGeqWSwI4CkJYESeKxlz6OJw12m94wugv0aUywJ1m0MPhGNLMywBiNyHPgkBBGAWAeSiuDGt8lCTCuB3GzMDuNNfq2WOv7HNHJ9oM8fVewo36TTC8a9VVKcyIxmNbntkg5+h2UG05CWtKX8BXBw3Uvfzj6rXTJNkgBY8Iscp2Gz2N3wsuZh+/beaJBrYwi0P/TXgeo6ngIce88VWyqTW+BIYGQfvhwACMDcB/F6TCuATjSiA3JeZi1hzMeu4+fTfxEQggHM4B7U+7rWOajmLyRv1j9p7/+Nsbv3G5S9aWf4YvwDwDlpjP0Qpc+R1CTH2vLqmgkxzrc9fIwlgQozJTnOknY8lP1w0ggDyDnhuDWg7H6J+668pZZb+J5xhaDIB/BcIIABzE8DDTSqAP288ASyo0gWmu8PfDWwOx/wWR/4gPds5qPVxr3VMr2eWFPJjGeOg6v3reLmWlj+Gd8O7ueuUBAa7zT+jjhUygHO7xoLjxNKUMksPcmaZj6XnXdcQZUY4+2fZN1Ff3z/Qmt6nqFM/+rwvgM1TBiYYB4cggADMTQB/2KQCON6IAhh2LuHXrgr3GuUvRAfoRjj+NYuIyCSNMe4L3b5WPODfpOu+F/TCE9ZD49qYvNu82xy6KK7LYxDAOY4rQaa0TZQraWtoBR/DRio0zOOL436QNm/8BqVXD5+dyh477nPTyBEZB0cggABMg/siqsLIeb4B7OEbAAvG4WacAsqYxZ/xewxveBz1zmDeF0CeTuoPKvUHdduea7bzs9A3gZRZeqTXulvVArO9q9W6p1bHsEwyTT826jdRYvP3KG5W9rT1P98UArDQ1xVvylpmjct3WeV7eKMWCyC3GGsUAVQPwu515Nofos3mFyljjKglAE0Tocga5QN8b1Pjf6T7FQAtjS+AfoucIAPAAvi9ZhTAbuGvAWw0AVRdWgp5ta5ojbOfOq0Sxc3RDzfb+VmIiGZDM2bxvTz1y+IXRqvDAhjGZuN9lOn/MqXtI+ctN5/5IQRw9mtL7cq3RkeT9vBrue6f8LZVH6obQQDDcZDHRJUAEMWfRT83tf78nkEB/BdfACd7AkMAQcszgwA+1KQC+B8NJ4CFXDVD60bWAqbMkZfGDDlc62PaQAJYyZjF10IAZxJAg7JWgTYZv09rjc/QCvGE0Wyf/wW5vtTav+E/6HXvIj1/I7n5q6o91RtiicnxAng4+rmp9fE9gwJ4HwQQgLkJ4J81qQD+TWMK4GRGgb+yBK6zHqK0GEknjbFyrY9rgwjggYxZVJs/kAE8sQBy2I5Jm6ybiH7t40uWaeNfrfX5q/swyt/OWAfO4VJNYVapKoCNmQHcG/3cNMH5CeNPIYAAzE0A39ukAri10QSwMOBSIe9UXy9LIO8wrO4KFqWP1vq41nPwRqYOS339oxXaAQhglCVEumWr8NcBGmRZgjZoOyjV9zAl9PIrYlrlSEyrqBZ6/LXW57POYjQmyhfxulwupu0VpspfPrelLjr+nqIA/lGzCWBMn+AC8IMQQADmJoBdTSqAPY0ogPmCM2Vayd8VHGzaEcUXx3X5cK2Pbd2GqMbGdFD+BRnAEwmgQZYwlAhuNq6n1f33UarvMeoUz66I63IC8nf8tZUQYxp3lOF1uWHdvyYQQLeZBJDlb7kpZXt2vG2VdQhrAAGYgwCeGxPlo00ogL/ekFPAeYe8QhjedAGkuC5fH9flf9X6+NZlcObKkHKZVr6oSxyCAB4ngP70Lwsgh2HapIsrqE+/ntZu/gx1Zoe5LNQNfCzbs801Hswz/jQtRmiDfe9k3b/I5oIGXgN4YTMJILd+bM+OH1tuynO5/ic2gQBwogFAdQTYFuk4MfqNJhPA7/AaMG57Fc2kNcoawKkC6N9geBp4vbWfp4EpaYwlVf222h/nuoplWpkzNceWbTx4Nvf+5RIwyABOEq79CwVQFxYJyyFhWNS76fdonbmP6Jf/fEmnePbTSav257MeImmM3Z8WI+fwZ48/g2HJl3Acja4FbCQB5LGRx8iYIR9vpingTvHM11PGE+rexvc47AIGICB6M+TaaIa7lXrsOylhPXHNu8REww8CkYHs/aEA8lRNKFKNzVISzlbaaN1JPMDF9AmPm9Hz+26WSv5n4vynzNJQtUND7prIjbr+HwBqy1LSrRvocnEHXXL598/uEJX7w6lgvraWG62zJjAyjvx7Woycx5k/lj8+Rs2SANAm64zu5vI2qsRNg4//HGlR8jY4dyn540oKPPaHD9QAtDTcAYSDWwL5TcFd6ndvoaT9yK+8S0w83+gDAL/+hHFUpsXIb6yz9/sSEAggR6OT91wlgevMvZQyjnAm8GolgU1Syf9MnP+MWfzHMPMbveFBAGfHcywlgZnNf8PX13kJ/Zlvq6ngFru+1Dgixh5Li9JrwsxfI+zynY3o50HPbaM1zj7qtIbfFrNGm0UAj3WbQ6/wp369yNgPAQSgmv3jpuBRAUxZ36dl4vkvNcM0cFqUvhGu1fGfAP3Cyo3QrH028m6B3EjmlqeD47p8N9e9a4LB+0wJ4H0QwNPDtVyyrCuoz3w/rTfvoNW5n7w8rst/4p3Vl2Qnan5+Fy2M8iNpc/i1vPOe5Y/HkWZ4gIh2xeAahiJ3I3FNw5Q5/O1mGPsTuvx8dPdv+ODPAsib6wBoaU4kgIZ3A62276Ok+UR7Qow1+sAtM+bQSiUAkR7AzSSAHHwOWQI5y6kkUIxdETNky9cIDATwCxDA0xdADsdxlASu1O6j9g0Hl3ZYz369VQQwaYz9a9ocfqW/hszP/DXN+BERwDC4pmHGOrC50TO8SWOskhalt3HGNlz7NzUD2PgzQACcsTWASgTzLln5d1N/bitd5txNKbP0YK0/yPMKo/xvGesATRXA8Cmw8QeAvJdTEa7h5OngXvtOWiGOULteWR/X5dM1Pwe1F8DPQgBPD9eyVbAAGtYWyor3U4+4g9YM/PScmCHvbPrrR6vsTYvSS1TmL3cT2fnryMsPkNskAsjvZfq4yDUN09bQWTFRHqr18T/V4I1KXPaF61amRenLvPaXp7Y5u+mX6fHPmxsE74QHoGU5kQDaBVdlA7lmWsYsvpPrgNX6g31ag4ExJtPm8Orqk/u0J93G3wQyVQA5+HvOBK619ioJTIix347r8tFan4saC+CnIYDzF0DLsijnuqpn8KXiPqJf+8yShBj7nbgun6/1eV6AKCeNsQ92W0+9YL3zoNo97ro5JUzNKIB+KTBPvS8t7/ccT5ml9Y02A8QCyBuVlptyokscele/tyc4V96kAKrz5wcEELQ0POXrh78JhAWQg3/WnN1hnblP1PqDfTqRFqW7eD0Lr2sJ1+xMb9fUTJt4lAR6BbK9a0nzOIN7Jw/ifP5eEdflV1tYAP8SAnh62Lbrh+sLIH9vOlfRJvP9tM66I7y+OuK6fLLW5/oMxn/HdbmW6/xdbt6j5M8rXEsDA9OXkDT+A2RYvDqsB8tyxFlOfmDmddNpMfKVOjgfc45Ix5rbufD7ZNUHP5ptCRAAZ0QAw13Avvy5KpMknO1hnbmXJY2xJ2r94T7F+K+MOfTLvJ4lLJ4cLgIO5a8RCkHPhr92M7KLOyKELIG8JpAlnkvgpEXJTRpjP6+Dc1MzAZwe4ORYjquCBVDYFlmWoyRQF4I2ivdVr69uUXxVWpS+wFn3M3XeTmcT03zq16kZA1HalzGHLsiYQ+q98bRvuOZPZdgj40hzCKA/HlYbAqgOJgPRwtCvi+vyZ9OPVSKIWn++jzv/WkWuMI8+mug7vJTrfk5WfTj+sw8BBOCkLCXDvpEuNz9Hae3xWHv2/7F3JvBxXdX9P3IWEkMDgWxACJSmaaBQaCJpFo80o5HlXV6lee/et89Ish07IVAalnhLSLxkoaGkCy1LIc5C2gIlJI5j0pa2/IEWCiW2pImw5bFiloayRFaUWJp5/8+5b97M00iyZW2znR+fgyzFluy33Pd9557zOyOnc3NB5VE7xIt/wwuvu2yxslj8HesC7IBdG1GTAHBdFZ/jhaJjERdyBCCsh4nw1Fv9sv2UmJGZHfeXPWbOg5ON9Q+cbKEv1QfAuOC23cR7/1GMgOtIjKl5wgceaWbXF74k4k4Bxhr1Yby+lvtl+2hulGTB9eTax+SunYLr0L2P67JxNpjzuZH9vYX+dYV+mEHJCe/fJXs9/zTCB+RW7WFoN/YIJwQspSh3n7+Z6XpobHsOAtxeG4hlMu5xxHMXktIiir0GoBdlQMJZv87nde2jpxukoyGsU41pt487fwtKfjgfiVRCsgxNQOBy/hQ0yv1bAvIpZ7Zqdsh2sR/w3gXefQgE+dDHw8oALNOeBYBroJrldfrHt2HM6DaoKXif+dtV7zZHnrtBdR68ddmRaWULemcAwLCS+nar8QjIiZ1ie6ucRgGWurz1w7hVipNDGvnxi/3K4F11PD2Ug6yCjlLvdeWFxXMFQP+UANAeB4DB/NrxaoM89OkoG3g93hsIfU4ZjCZ2Qqpb18By5RCE2o9BUD611z2OpQSACH94HhEA8dnUIB2NY30qwh/WrRaKAJBEOgdh4bOu35TPBKon9iAs4IMVvcCK/YCfAFA+j7U7a3TH96+63+Admwcxpsrsgrhxq8gItnTsh6tvOQpvvPnVBe82R9rreDo3+mmq22dlMyqKpe2AeuroIuM4NFsHQIrvyAKgA4GkmUnAUrb8wJkktBMwixZUTsANPHOZj4/s8vGR3/j4SC7TPOF964HEmWz9ejOJk64ZkgCYV0PyyJdCkv17zfIAbFAfAU3fJf4Nrh0WAeBC2MA+BivYfoArvlDjkzJfOMO6W5QQ4Jd9eY2oJ+5Cr0qEP6xT1YzxGX4CQBLpHAEQA7v/JH0bLLjqT2satRMP+tipkgOAIBv+sjOj89mcX1e1S9S7ZAGw0+gS0LOmaxv8/gefhLd94Dmoix/B+sDXRJU+JcxPfhunpkwFBssFAEVBuJJ55UZ99IKQ9mNhceHWABEAzlxu05hbf+p0oe+EJdohaFR6IaIdgYjS/6YG9ts7g/LIC14IGwcQE2QJz+lcZ0sYJvxv+VKHF4Ns+P4o73/rUnYElrIeWMMPCfjD68Hrh4pTdqpdOBu6jX8clrCDsMT8xQUhefjvi31PF55zzPxF1BN/ed4VH65xM38IfwSAJNIMZWp6LjRtE7Trt4vuv0Xy0TvQCBbfvnA0FHovuXNC5zJcjyf8We5IquzC/mdhfnIBZv5kaxdocWfiR7XLLeh2M15Y96Z0bILWjdtgZdduAUSyfh/I+idhjfY4hJWB9/uY/Td13B7ETG+97NR84kdcbN3z3KBg/U3xHwBni/w248gfRdXnQDZ3V1QXeLFlWbhVquXsiMRkGgO70HcKGymsPcXs2opYPzRvGDmvIZZeGpTth4OS/bKoxcvfv3kI9AReew2ac82hxce4c1zw+721rJ7PX/Ux+6t13F5by+0LQ+pJUQ+L0yGYtgdUfbuYplM4EpMygNgFrgHXNoKk3A6r5P3Qov/8PJ+U+ZtiZgDdNQijrv10pkE6+vF85m+TAEA3CkUZQBLpHOTeSAiAzpuVLiCwhT+JEKgF+dAptzFkPm5+788RiwBPnw7yoQ82ZGv+EP7I6DMv7/xb1+vLNXzNbQ8LSOwCbt4p/L9wIHxY63ldWEmpjezlRwNt6V9hw4/3PCP8hSbK4pRYeOq99GbliADA/HEgAJypBPwJAHScA8b5UlodIrvWLh+ANbHnYJl8BFp4D7Sw5CXNPLk2qvR8Oqz0dwf54Ji6Pe+WMD7wC+/93BowQSMTfq+I0n+0Wen5TFRJxqJK8k3YEIbRoPXBUv1fxDohMsHi7523wdLieScEAkAHAN1ACFwmHxTbwUH51AcDscy8+z/mXvxl227gL7/cIB3VvTV/buBzCqNQBIAk0jnITaXnbywTuH6TgEB864rw1B8GuP3j+cj+uQuABwYP+2X7Rmz4EJk/887crF8y+nSEsNMpQodEXB+T/XK3h90wrFvEgxHNUzHWa4/Aig3HYWmbfV5w/WjDImbvrJcz/+Bjdp+/PZ0uCwDMZyo+HfXMBKUmkNmRACgXAicAQWG3YW0FQ98BmrYbFH0v8GzgucDrDBt0wkr/W3w8vc4v2x/1yzbWmn3Xx+xfoCGze89Pssa86GP2f9Vxe38dt2+v4+n2sNL/uzi5g+v35Drg3Y8YwhrE2iquAQf0tNxWtjDBz/qgYlS7cjZAmubMhOYfF5nAUPtxCDA76JftebUHc3d/fFLmuy3GT//A7fbFzB8Cnwt/immKKDR6JgAkkWYIgE7o4sZDr6VmbeCCQGzwtgC3T831AoBvfwH51CtNyom9S7TkRehBtiJb8zd21A85vecBUJ8UAN3JBoWf4zHEzI0UOwStG3phOXseoqwXGiVRMwjh9sMLF8u9i5p5cltYST3hVwafx2zsrNUFTtA5OpNAaMW/d94Q2sl8kmamfAbN3Qp2PvcCoGu544Q3G+3cq/jSsUw/CAjoeI680cR7xbXWojx/ZZPc/XvNPPn7zTx5VTNPvi7rP+h4XKpJCGv4Ef37DopmJ5HZzv38bKbbU//pAmCujtETrql6tcsLgGI7mKmwgd0uuoMb245Ak9y9MMyO7wnyoXnJBtZK6cGAfOpjN6w+fD4+e/I1f86ziQCQRJo3LRQF3+j/FWbHICCNvtUnZT7lkzIvY80YxhQezJOG89affeOTR+16efSVenn0wUZ+7OpW7SGQ9LuzPn9XA8BFY/9q+OZHcx5n+Na7MGujc/2kIVv3wmrzMVhkHANstKhXM+/yc7vDz+0v+bkzHWKMD1yBfU+hT5sLf0F5RMRMIdB7PUWV5PXuTGgCwFLSwuw9fN0Zr7WphbseVHf3/9wqvy4I/0cdM7ipa308/Xk/S5/2eju627UYE9VwjtnCnyDc50i9bA/Wy/aeG5h9GXaY45x6rDOd9DzXTBAT/R4SiTR9Of5f22GFcgCirFtEE+++Kqx0fyykHO892yzJqQBgUHr5SJgd39bEu98aVrphqXYAmHk71eiUgNBcGf31WuJPQ6N5GJr0bmjWeqFJex6a1eehWem5McpS94bYUKowu5cHwImyfwh/swuAYWXgTx17oDvBNG+hDCCJNNP737LE7gtmcDH7GlWPvCOs9H/Crwym0I/RmwTwwuBUABBrORv58R808d4/aeK9l4WVXgipvbBYPwjt5k5Rs3lWTQaBlCAgkWYuUTdjbRaZQOz6c2IPtJl7xFtaWEnd6GP2R33MfsbH7N9MBHkTxM/9sv0Nv2zv9En2+8LsBKxRHxVvm/j9ETjxZ1KRdvGVSCTATGwBFt8JsrUPmDk2sPYKZ4qGlYEFPmav8rP0PxdMYMh36rI52AL2/iw+1O02CyEEkk0QiTQzObXDW53aYWsv4OhNnL8e0voX1CrpRfWKvdPH7H/zMfsU+saOW/8Lurj9LD3gZ+mv+ln6oxGe+gNnMouz7rdhmHvEiEv0a5xSjSYBIIk0P0aw3qkA+HV3Fm1BXc+bo0oyElWS7VEl2RFVkjdFlaQRVZKtUSUZjCrJtxXWAGG9CdPvcObc5n6GU6dDKq4SCSsbCeiMJ6AzYeUjnhB1Vopxp6jTxPPZrPSgL9wNQT709GQvAOdqSj2VcCGzjtuNWCvmbgWTSKTpyztX150rLMe3wVLjIDoJQKPYEeoFuOLBmsVa3zVRJbk4u/Z3RZXklqjSo0WVnpVRpScQVXre7NSBOoG1nPiy73ZoFz5jCABJpCJrLJB5wxLeWu4s2skinzWcLPY4Gb/sG9/4BWDBDIM0OwCYB8ExYcXFditm3NBvELs/12v7sXscfDy9bJEiOrnHwB/6D042mm6m2cA6bj+KW1WS6XQDk0ik6SvfVOaxmLJuAsXcIdb3mLb3jOF0Zu+dMGRrh2cySzaxUACDZxVlAEmkuZMLfxPaQBgIAB2TBmZgHPPVycKauDuPALBk5IU/qwMjkQsEwEKrGZERNHeIt3t8y69b85/nR3jqIyE2dFo0+0ytRGDaAOhj9mhYSf0hblNxcwc1C5BIM9A4W6lsh3Wn6YSlW5MGTpjKZw8njrwnY3bdx10gj2H3WUUASCLNnfI3qAOAHYYBHXhjG86NKh78nsWhMCbK6o152/OMmvI69Ltfm7Db61yCNCM5270GJDoMAYBmZwLMjk6wEp2QSHSOgb/cdpG1VRSO49t/m74bVqn70Uoo4JMyR6dSyzdDAMRawK+ElX4BoU7HKIlEmo7G+ol2FUwe6hDYGDlzAAAgAElEQVQjRI0zhPPnzUnDtRdyIRCfK+LZQgBIIhVf+czcJAB4Bvg7GwBaZwPAuEEAWGS59X5uBrAQAAt9Bsf4DSbioJuGyMRhrWiEp94U5EP/MmEGcAIAPOcMYX40WMbH04ui6pGsbQgVBJBI09FY+BsPgMZZAdA8cxAAkkjlI6qsq3KdY2a1tbUVVrRK0LJyCwSXfwqWxH9+QR23/7ZOzdj1qhj1N6ZLMNcxjA0dZ7AQmmwL2Z0kEOB2zzKj7yJ3NFyn2SECt6+8htikKZ5vyrBXuWjlJ5FIJNI5aPWqVhEIggiBNyzdD3DlZ2t86uCnCgHQ6xk4XQD0RrM2sHetvl/UJMbNrQIAczVJBIBTEwEgiUQikUikc80ZrF21EtaubB2TCQyt+DTAlV+oqZczn3YtXApNo4PSeMuYcwXAoHxqJKL0Lxajw8wdTseypwCduoSnIAJAEolEIpFI0wLAVSsFAK5sXSM+Ll62GQLLHwe44gs1IXn4Edcs2gVAb5wNAsd5DDrbv+JjbdtpzDD+KsJT12ImEGsRtfjWHPwRAE5BBIAkEolEIpHOHQCXw+rW5Q4ArnYgcMUqBktWbIGGZZ+CYFvfQj9Lfx+hLRDLTDhDeLoZQDdCbOhwlKUuXakeEt5jAgCzxeyks4gAkEQikUgk0rkK4c8BwJUOAK52toOxLnDJys2wVP4GhNmxq0Ns8JfudnBIysJfvqt3RgCYje9HeOpS9AdECDSsWwgApyICQBKJRCKRSOcqBL/W1cthZTbE560OBK5cJYGk74CVykMIgZLbBTzV7d8pAeDYWcH/2aCmLsUxVm4mkHQWEQCSSCQSiUQ6VznAt7IAAPMQqJsWrFfuhgj7MQR45rGgpwHE6wc4UwB0f38dT/c1qKl3YyYQx1E5PoFoFn1RkU0xxn/HkhhkSABIIpFIJBJptoUAiDOhm7VeBMAr/LL9EjZwuE0hszoqLguTQT706whPLcdRdRGjG5YaB0AybwfDdEYdupNvMNBDELuH8aPXwNYdhVX49fFxFqP0hGOqbSU2ZqNTjNnrjCegK26VBgSSSCQSiUQizaZwJrRi3QEr9WegSTkBIXV42yLFydwFpNFZB0BPZHzM/ky9mvmdBrUfWrWHQNK3gWFu9gCgkYU/NzwAiObSAg5nCIA4V1kA4OZsbBQTVggASSQSiUQiVawSiQSYiZuFRQtuy/piyYU3SKdP+uQ5hb98cPtYkA8tb2QnYBl/Gpixfcxw+tzoK7NLjL5CaBOTRWYTAAUEbszBnwuAGCQSiUQikUgVCYAuDGFNXpPWCz6e/lPX02+uATCQrSP0xexvN0qphjUiE3g3SPoekPR9IJn3ADd3gWneKiDQHW7vbA1PDfKmBoAO+I0NAkASiUQikUgVKCejhvV0HaAY90MzT4Jfti/1y/ap+cgAuo0k2HjSIA9nGmNHDy5Retf6Vn3n/Gb5xxBVjwBOEkEIFNnAuAlmwhv5sXLTifHQl4/OeGexTw+JRCKRSCTS7EtkwqwO6LI6QdPvhFblWYiyAQixob+aVwBE/8GYA4L460D7qwNBeWSPn40sCiv9563RHxHZQMxSSuZuaLcw9kK7+Nr0QzbvB8X6BFjxm0XGrzAbSCKRSCQSiVRxcrNgCIGmeQsoxp2wVnsMoiwVnIsu4HEAyNMi3DF07pZwSLXtAM+IZpQQG3wxrAw8ElGTH4oqPU1RpecNzUoPRHORPEP0nDFa1F5o1b4pGmGc7WArG4m53QJGexcSiUQikUikYgizXWI7NBHPNV1gZiyq9Czws/RP5xsAazeksTFEBI6nc02kx3kPsvSv/Szd7Zftf/Yx+/FJg6e98SUfT/+5j6fv8PH0LX6WXh3gmT9uUk5cutZ4HGTrXojF90Esvgdka58IgOuz4foVLpyV4z77PoYkEolEIpFIU1SuHg5r6RJuM8g9ENZ6oI7bf3mO497mbJt4hmPozhghNmRH+MBPo0ryUFTp+bOo0sOiSs/bsR4yynpFLGbdsEI5ILqUDcsCI244H0Ukcl3LbuDXMHTTEGEYFhiGAbqlCb/DhKFAQtcIAkkkEolEIs2/xNZvvAOMhAOBbjcwAmCtYq8rNgDO4izi6cTJQMz+YiBm82Asc3mTfBxatYehzdgHbeYeaDcw9gEzdoJmbnEyqKYFlpkQ4QVANNx2whAAaBkaASCJRCKRSKTiSHjrZSGwEADrePrNVQ6Atk+y7UBMRDoovfwfjezEB8JK71vDSi808W4Ry1UnM4gA2GEkRLgQOCEAGg4EYpBIJBKJRCIVHQAxZGsHLNMPQYOagiAfShEAOhCIMFgvY2TS9XLmUL2c0X3y6MVhdkxMMsGMIFPvBVW7Awzj5kkB0BskEolEIpFIRa8BxDCsrcBNpxs4wge+Vs0A6DSnOA0qE/29/Cz9iyAf3NWg9l8RUXuEjyJa6XD9jlwWUGwHG1YBCGJNoEXtICQSiUQikUoDAB1z6A6Q9fsQaB4gAEw73cjMgcECABRRx9PDPp7+a79sX4M+imvUR51JJtq9AgZ1fWsWAvPwRwBIIpFIJBKpKELYy03TyMJfDgCNexAAP1TNAOgCHlrVuL+e6L97vv5qiA39RZN8/C1R1g2L5V5YxQ/lMoL5rmAnSCQSiUQikeZdLvCNB8C4C4Dt1QyArk+hG5NtERd+PSCNngpIo9sCsczF2D2MGUHsFlaNmwgASSQSiUQilbKuRwBcMRsZtEmjiHA5L8HSx0NscHkTO5b1EdwpvANdv8CYLIlgkhOS3O4E/lqSin0BkEgkEolEqlIAbCEAnDkAB6TTjzexY5eu0R+DDeo+YOa9IOk7YINsTQyAWQgkkUgkEolEKgYAhgkAZ7B17akdDLGhnzayE6saGc4o7oPlyiFY0/5RkCRWEHkQJJFIJBKJRJpnUQZw2rWDk9Qq1sbsTFC1/+qG9SMLI3wAFm/4vIDAWCwBkqTkIZAAkEQikUgkUhEBsJMygDOvBXQh0CePuhnBHwX50Nt96/sg2vYNaF33YeACAB0IdLeESSQSiUQikYoBgHcRAM5iJlB4CY7YfjaC28Mv1nE7fOOaHlja9gVYu+E2kQlkMeYEASCJRCKRSKQiAeB+AsDpw18dz4ebBXStY7A+8P3y6Vd8ypCFENi04QlY1/ZRAX/uVjCJRCKRSEXWgmy4/1/6f0/SdI/aQgC4GgBaIMJT/04AOBsAmPcRxLFywjsQJ4ioGdun23a9Yt8LVz1UswRrAmO3QZuUgJjMxp0furIrfV0ol78niUSqeOVmmVqdIuJGAjoMC+KmAZZl5CZJuAbCcatDBBoJC0PhhAVWRz7MhDnNcH+OmQ3n+7t+avm5q51OiK/TpIWzCTtOcatRibWLkGNtsLr9Q9Dc9jWAyz9bE2JDL86JP16VxNlMq3PZQYRC9upfwVVfrFnCDkCbuh003TXlNqEzFzok4rr4GgbpzMKJNhhxq0uE87mzjoxdV8avX+7vO9fAdQfXPfy1YWoi3OkvuG46gWuoBYqiOMG1bBhOiK9TBphEIhVRLlzlANC0oCO7kLkA6C6cpnkLcHOXmCDhxF5o03dDm35XLiRztyf2njHarbEhWzvAtLbmFmexQJt5U908ACYIAKco13KESU7ILAar27fBojXfhwbFvrbYAFXpUQiHPmb/bZN2csEK5VFo19A0eqsACRcCBfxlA79OmlyYR+s04wUA6IU/DwB61i/JzK9fIszdE4f73wtC0vcAM/c5a5ixJxfM2A6GuSUHfxgqVwogEAFQIwAkkUjFlwtYOL3AmWBgjAkX/hJmFyjGnbBSPQTNSo8TPAlL1L4Fi7W+axdrfasWa30bo0pyV1RJ/lVUSX4uqiQfjyp9GA9Flb7PRJW+e6NK3weiSl8sqvTVRpXkayNqD0S0IyJWaAdBMXZBp9mRCycbOfbvKCJuiCCdWTHWPiY2xDbAyvaPQ2jtDyAk2UqwBCCpygDQDrLhv4bLP1fTIj/lvPR4M1QiTIgndBGkqQBgdtyhgD0H/IwO56M79xrhkJv59SsqAv0ak7iOvaGZJ+ubeVJq5smuZp78cDNP7mzmyb3NvA/jo8287+Zm3hdfoh5d1dh25LrlZuqCCOuGRhXjMISVw7BcdSbB4Auqs5OSGAOATPUGE0EikUhFkxf2EKgsSwPN2giSuV281Yo3Zf0+kPVPwlrtcYjwgSv8st3ml+1P+WX7v3yS/bJPsm03zvEBmfEx+2gdTz/m4+ktYSX13rXaY8D1+0DR7gGu3+O8bRvbQbM256BPRDYrSDqzcvAnS9DGJIipMqxs2wYN638IDbL9BQLAOQZA1yg6+3lIdT7Wx9J/jVvwa/RHQLZ2iUygO6/ZCQLAqcjdKs9n/XTQEpsEWGOGDtcvPnb9usQv26v8sn2/j9n/6pftX5zrOQ0g1Mfs0z5mJ32q/VWfZn8ooNp/3KQNLGjVHoV2HafA7BOxTr4DNrCPgKwkxJavC34uFJJIJFLRlNtezWb/4pYG3LhdvM028W5o4T3QwpLXNvO+j0TYye+E5OH0RJmN2ciQBPmQHVYGUlEl+WCz0hONKj0L8A17iX4AJPP2sfCXrQkknVmu4TA2HMQkBTa0S7CqfRfA5Q/WBGL2yWJnyKomPPORnS5h2w7Jw58IKwOwTD8ktiZFFisLgW69GenMcrOm7jHDrXPF3CZ2E6L5nQpcv3ZG2MnvBtnwyETrz0wju379X4QP/GMT7+URdnhhhB2GQPuPIBL7GsT4baCrHFSVg6ZpoMgqqFyj00sikYonhCnN3CKybJhtk/S7YY32EDTy4xf7pIwektLfCknpjLtgBqWxHZAzhcDCP58rmne6Ko/fwEd3BdVjb2vVHhJ/N8xKSuZOMIybxTYL6cxyZ84iALbFOkUH6tK2z0EzfyEQ4iUARhUe40fGjQifwGzmNVPHbblBTcFa7RFR/uDUBLo1sASAZxOCnxbfms/4mbthrb4fu9vf4JftTUE5/e2gnF+/5uuc18ujL9VKI1+o4+kmeOvna1bIX4A1bdtgrbQL1kkfAZVvAp1p1A9MIpGKJ8z6IfyJjJ+CtSzdl4SU4x+o56dO1ssZka0ISU7GwhsTwdtsZEe8D0wfH8GF1A6wl9JN7NgTi1l3bZR1wwrlIKjaHaLGhgwVptAEIoIJ+Gta/xUIru+BRbHfPrhots4fxaQgMMYjMAuATji2MXU8PexXBuvDSkrUpyEE5jtU4/O0CpSvcNsX4W+ZfhCi6hHM+l0RVlK7gnzoN3gOcO1y1y9/wfrlRvBMIU0e3vXLtf3BNdNdv+rZafExwF56LqL06/Wt3zs/FPsfwNrPNvl2AkASiVQsH7hrAOA6kfXD7FojP/a6enl0Vy3LDNayjI3hAqC7ZeX6m4nFbjYf+pMCYFqM1sIISCIyPinz5TA7ce065VFg2j5hZuz8W/DfRCpUbvasJMHq9h3gX/M98LORiwM886IYW0bwNq8AiC81TuQAEOMFv2y/Bbcrub43B38EgJPJ9bG8TrgHtBr7Iaz0v83H0w/6mD3s3ZYdD4Dj16/pAmBwEgAUEOiuXzxtL1Jya9zzixTbWmr973lL138e2uS7aP0ikUhzJ13XwdR0iGuqE6YFTNsBy/nT0CQfBrjsgZpmbSARkE/9bMyWVQlnh0Js6HSEDzzQzJOXRKQjsIQdhJi2HXTdFP9W/Ddrhimi2mXplhOGATFtN2Bdko+nO9yHU7HPZaXHuHvJfdkpuNeCsv29Ft7zGkm9S2z9oqccNTlhiYpT6+vYqhhjdyx4NyzWkxdE1BO3BeRTp+pj46/niTJ+xY4QG/rvCB/wo4sCxkr12WzmN+9PKGpB4x3FXj5IJFKlAKCpopXLLljFvgRhdhwWKfb1ftn+Fi6cPilT9IVxGjFQH0uvbZRSsFp5BCR9B2jaJgJAjxD+DG2rgP7VCmZKUgvqePqwd3IFRXEB0QWVZpbau059CJj+cTDMzQSAHqN6YQVlbBbwl92xgHp5tDHA7cO5Y1leaxg2033GL9tvjPABQPcDXJvjpuODSgBIIpFmLFPPZv40FbhyOyyTDwBc/vmaRmVoa0AaHcbFCLcoAtyJElgYzylEjSIb/LsIH3jdCvVZATqY7TKyUc3CLf+EboCi7oDl7BlAUA7yIc27xV7s80eRv44b5MHRiNIfaJG/AZq1HSyDukQxC+pm/7juZP4a+fELA+w3f+aTT2fcMoZyXb98PP3zIB+MYjc4rl+5bvCsHRCJRCLNCAB1rUvA32r2EPpgXRrg9lcDPGNjuG/NmAUsxwXU/Xf4uZ2MqC+8380EqsZNVQ+AKIRhSd0LTXI31MfSF/uY3U8AWHrh1KaJ5pBksD25sN16DGT19qqvbUXww2wowt8a9WGEv2vq5dHvYoOFiNiIWMNw7RK1duUHgBijPmbvCCsDC9bojwkIFL6QBIAkEmmmAMC0baLmL8JTfxDkQ0lvgXKxF8BZrbPiw6ca2Yn1LfygYxVjkU0M2vys1+6GRvk5qJcze52mBKcZwe1GLfb5o8g3JyAENsiDDzSzFLQqh7INTtUrb81fIz++3M+H/i/bOONcxyVcq3yuEWTDz0T4wGW5TKBFNYAkEmnaWpiv/WLHmwM882u387DSANDttqzjdqZBGfjoSvURAYHV3R28ENrMbbBSE12SN/h4eiTvs0gAWCrXbr4O0OlYDUnpdEiywy0sme0SrVYt9NT8HTfq5dERXLtqFVzDZseHtASvhe6wMnC1mwms7vWLRCLNQNeIzF+jlFoVYoPDuEWSAz+PH1mxF74Zhcc+Bh8IaMEQUF+2G5SBfQuu/EhNdWdQroYl6lMAV3ymJsQG/01s+XsNvMv93FeYTUyB/Uh3M09eUN0AeHU283dsS4D9Jo1bvk7mr3JqWF37GO+14OdDqQZl4Lpl2rNVnwEmkUjn7PXn+vwtRfiTfFLmND78CwEwW3NUMQuogBol61+o2XYjO/FpPAbV6xN4nbDKCPCMilM/8FiVusVPNYXz0M8CjZsF9JgMR/jALQAtVXj9uj5/LZj524lm8G7NnxcAy33tmhgAc9nNXzQoA++v7vWLRCKdtcbLyHbKdRgWdMXR528bLGEHIKwMrAyy4dMTLj4eP7KZPsTONiOzaIsrG8aH6N1en63c3OMKmSWcSHRCIpGAzngCEglL/NrqcH4tW/twMsLr/DLN/C32g/5s989E/y3Ehn4V4ak3igkh5g7hD5jziauQLlHX28+d842fq/p2WKEcwLKVW3E+uHe9KoV1Za7Wv8I/G2TDP4/wgXd6z78wCLc6Kub8k0ikWQJAy9giuuVWK1+CRnYi5Of2y+W0AM5VRPjAreizJbrrzC0VBYCWAEAHAl0ANBM3gxLfCeuMR7Dx585iH3+KGR2DPTghBGfcViIAIvy5AKhZTrfvOuVhhL92nzyaLvXrZx7Wv+cjPHUZzjdWzG1gZmdFV8r5J5FIs2SUiosneog18mNvb+Av/+982LqUPADimCY+mA4rA6tEd52+04HlbCawvLUAzI6NItysHwIgwt9K/RloUk68IcSGfl30c0Ax7WMQlNOnWnjPlbKxVzz43TFxlWIU7L7AYjBjJ6zghyDMTjQG5VPD5TCqcK7XP6wHDbHB/wwr/a/Fecfc2gbxuCmygNQlTCJVuRD+DONmATbok+Vv611YL4/+EOv9Fs0DgJUDAIq6R2b/OqwMXLdGfVQcKy2bCawMAOwUAGh1IABawMx90KL2Yu0fZf+Kff3NGADSdoSn7l2jPwLc3JHPAFUQAKrWFgF/rdqj0MheuKZetv8Pvf0IAPPz1308/XCD2g9rjP3OdWDeQgBIIlW7EADFm7NyUIx3C7Ghz83nDMySB0DP39PPh38c4ides1Q9VDE+gQ74OfBndRrQmTBAMfcgAF7q5/Zvin3cKWZ+3Qb50G/DSv/rV2gHxcPfrQOrhAwQvoTh+oXzvJd1/PI8Px/6N7cpppTWj2Ktf7l13NnJMCLqCVipfxM08w5R90sikapY+AbdbuwT3Z4+KbPBu2gQAI49Drgg38Az94X4CVinPAqqVv4+gZjxQ/gzOw3QOzaLEWIb9Edw+/dj/jKc7EIxCWDw9J9G1SMgmbuzW8EdIspbC8U9uEF7HGuWoY7bO8rN32/OAVAa87MGa2P2dRHWDTFtrzD5J5FI1aoaAC1uwXprD4SV3ivrZfuX871wlnoG0J2w4P5db+CZdEA+FVnedgLa28t/0oIDf07IiZ3Qqj8DzcqJ8xr4y8fLcbQfRcH9lZ124WP2iYjac55k7q2gDOA10Nb+LCzZcBKC0ivBGyV7pNATsdSvh/la/3JgrNo/aNaPXsDi90FHR7mff1IFec+R5l8Lod3aDiuMhyHETzxUfxZbiXJeAGcLAGvZKM4OTUbXZ17TuqG37CctuNu/CICxuFP7t4jZaxH+CACLf/3N1v2FD/8GZWClWwtoWOVRA3bm58P1sGJdEnzLXj3fJ9nP+dT8mkEA6LkGEADxGsD1S0Z/0xduxXpJ3Dov9x0MUhkLb+xOs0MEbkfggjSmSy3h/Fp0LU0Sbju7u6XhtLjj13UR1S6ns9Pp7hR+b57PWfwOWKI8DRH1RENAPpXBwulKA7i5eKDix5Bkf3QpS4Js3OO55rI+W57PS13u3xfvJewUbeZJCMr2M7Pl80hR/Os1lxXjQ18LKykxHUPSt4Gu62XwfIiL8K7t7trP9b2A92AoZt/qvTcpzrxOB9nwbyN84M0rNK8/4NjnabmsX3OthIcrxrJIfEqBdeJYp4r+lBhux7pjX6RBVWtiAHRvdCfOBH8EgOcKgJYAQCuxGXTTqfWCN/1NTYDb/z0d+KtGAPTEqQhPXbVWy2ZU4jdN+MJSLgscvnghzDbz5Nv8sp0hAKw8APTL9oiPp69oUg5Dm34X6IYKJf98sMwsAOZfrPBeQzsT9LaL8NTlftn+VbGPcxnGZ4U/pLAH8j5PXQgkAJwdAHSBTxORsy2KEwAKubUoY2LcwT5bODUt7oMsfyGX/gN4ruVae7jwhx8R/tr5U7BcPgYh6SUJt/oQANH6ZToPmCoFQJy08OcRpR9WagccawX3hSWh56LU5RgDO/eOrN8HUaXvQ8U+rhSzdwwK70MfT29uVA/DBuMu0MzSBkCUex+5WSq8x2RrByzTcVJRPwT50F/T9TKtayMdVZJ/LJn3jAG+QsCpdiWyxunu8XDM1M8NALVEflKN17cSP696jYc+90CPPfBnDc8WsvfPVbtcg9/OHAAmhM1Hq3wYmmOnz2tkdi/C33RrvqoZAP0s/UpQHrmmWcHuynvGAGAi7kSpS0yFsLYCN+8EnHYS4QPfLfpxpZi1Y1BYE+fj6X91AHA3aEbpX59YxpN7ocoCYLt5D0S0I+Dj6av9sj3xqEqKsx6DsJL6cqvxiABqzKqOS6rQ8xNc4HO5Ir9dfnYmwWs1B34TAWDZ+8jOgvBgjj3AHoBDoEt05kxLcT/d/bUbefDLZv9yv64Em4OZK1f7F8/Pe0Wj3yVKNzTImbUz7ZSragDEYOk/w60UBEA3a43Xs9i6ssySb3DC+wVH3C3TD+Hs53c0yEOZkJQ3kC368aWY0TEotHSqldLpiNpzOVo/lcMDfqLdHrzXImoSfMy+l66PGVwbfGi0Qe2/FrOp7oQQdwuYALAQAPOZP2/G9GzhbP86UQh/BIAFAIiZCCxKxboErEeSjPugTdsrfOpk617A1nW8+ceEcZ/IXqCzubeOkAAwewF74M8LgC3K8xBg9r/OdAGtegCU7d9GlZ5LcvYa4np2CtcxygEA8T4Ka0n0UfuAGB2VA0ACsHIGDO+5zNV0ctsOyz/V1sb+CTjbBwCXQDkCYFRJXuKXyah8Rms3T9t1yshfRbTnsv6QBICT80keAA1rq8ia4pp/tmg39gh+wcDhAe4EqcoYJToL8t7YmInAzqSoksRaJBGLtb4LmtXnr2/ivaEI614WVZKLsXYBFwB8C8QH11L9WQGBtAU8XgL8PPV/+Dkz74UW5SfvDcxChq7aARD/jRG155Z2a2+uC9hbV1fqwr+rAEC1DwHwCRccCAArDwDxgY9fb4zZjy5bY8PaNUcB4N1Qypqo+B6v12be9ydek2OK6a1dtUr65bB25E3jALAifCLPQTXZKNBE/QhY753nFBELokrynVElGYgqyaVZRnl/RE2+Nqz0QmM2cIIUWu/EjYQInMJVdRrr63SROJgOLd8Da/THcBsKU/vv9sv2XX7Z/m69nDmdgwnPiB8fszM+Zh+pVexPhdQBP/5ZLGLH7KHjc7VVXMjVLhf+RPdv/GYxAmid/jg0KT/dSwA4OwAYVlL/LWZsWtvAtG7KlSKUwwLqdv9GlL4L6rj9khcA6aFa/sfAOwpMmEJjve96+0W48Cc1K9amAaAWSlneB7Do/jV3AHoZRtnAEQLAma9ddTxtN6ipTe6M4JybQZmsX/MBgIaokUZO2S1YBa+/sDJwtY/Zt/mY/axftocmBWyWOVzLMp+sle1anCCFs+QlfR9I2r3A9Tsq34exsIgy7+tkgmJuA5xPGVV6BElH+EBTkA/9y7ldwAiGQ3ZYGfivqJJcjd8Lv6ds7XJqBD1NJYVvkvi1Shd6fZmaE7K6HVrkpwAu+1xNSB5OucewmjN4ua2xyWIK3yPEhuxm1v+eNcoBUPXbhd+TW/NRDj5rXBdbag1jzjf5AFZsIDiF2ux3t0gnAeA9UMrydkxK5u2wTHkKrV/+qIG/bNfHqEZ1putX1h/yW+gPiXXAuAvndeSodMXNbH2ep1HD8ehzfPucnUnM+B0EHKUYUXve06AMfNnPh9KFDVaF4T3G2eP8vQgfWIFeqxgr1bwPY77/Ie+FXA42YmdVIXAJ+DNuAs3I+TiBX7bRy+nL57qQTQQqPp5+Kqz0v9Xpbtol6N3bWOK2ursHvRoA0IFAE9qVPTr8z3EAACAASURBVNDEeyGg2iG0fMEFlABw5gAottrkkbuX8ueA6XfnFhCMMgLA23P3kZstym4ZUlTkMejCh1CpT7LJFc/HDWg37oYI+zEEeGa361xQAsex7NcvtITxMfttWFIlmtmqEAAtaywAxtGzz9zoZJyN/Wg5dJGPp+/3MXukwFtzUgA8wy7KP/ll+ypkn/XafpEIw/6HsU2w5eEje1a5dQVGbmKHCZqxA1rVgxDl/RBiQwG/bL9wrhe++4DKPaiyF7tD2oP/G1b6w0jtirEr1xyS6xz2+PlUGwDiIHAfs/9CHCspQwA4C2/Q2YX4f9AOBh9SeQAs7QwgyvX/i6jJrxAAVlV8oSwA0HQmKeD9JOl3A1z+KTSuP1ovj9p+ZXrm9RUVswOAuI59uBoB0PKs1d7A7B83bocVjt/k74bY4A/HlVNkX5CnAYAYPwuxoUXIQMhCDqfkwa9i+AT9m9DLyegwQYs7e+k4PSHKUhCU00sm2z8/6wVbCH+FFzxLD0d4atV69TFQjDvF7Esz3pWzjnGtOkq9S3OOALAvpOZufNoCnuEC6h7DqNLzNuz68i4opa2FYssnW3t7nACwquKH5QCAbsE8ZmokfQ8s0ZLvEsb1PG0HsmtYVcfsAeBBAkBLvHAY5hbg+nZYoz2E8PcuH0+fdIEuJDmz4WcBADGGgnJ6KbKQM1FqV86PUfjIVgIAuoa4mAXE1ukV6rNY64eZP/904e9sN0TuZMnDL0f4wKKV6rMCAp0sYJf4WC42HbMNgFEl+ZYxW+YEgDNbQD2/J6r0WdjuL+DPLIcur6tFbUuEp94U5ENjrwnaAq7I8Bi+vxplvReWOgAahgWW3gGWboGkilnVXWPApwSOaYUA4GBETV5QbRnAeHZGr7tm44sG13fCcvUgNLITb/PzoQGxq5iDv7Fgdyb4m2Ij3VCQD/kalAFYqh8SZWveaVJlL5HKjDsu7ln/JsxAXYEp0Nm4AcbVAQoAdE5U9vf8NKwMXIZTDtAqBjOBrldglQKgRAA4ewuo90aPsJN/i11e2OqPfk+l3gQCcJ0obPazdHSi+6kqmoCqLLwTf6Ks94/KAQB1fSswdRes5mJSzX66Lmdv/RprZ5X0VxMALgCADiMPgLhmI/zhGt7ITlxYK9v/lav183CFt/t8FgAQv/9ArWK/CS3tcMqNaACpFAD0jmpzALAHAfCr4uDN0MfJLcasKwBAbz1gtkv4MSTsZdqzIKNpdG4buLIv8EkA8EECwNlbQPEadqNBHjrSJB+HFcoBYMb2sgDAiCruxw4CvqoEwHWlD4BY+7cDlvFnICSnwM+HUmhdQhA4JwB4W7UCoCG6zLfDUvUgoF1LPX/5zlqWyTV71E3SFCfW/mkCoMgqxpzv4WP2o7gWoyWX6FmolFF8eBFh1g2zb06tUWrJbHUXTgSAudpAlj9xddzO1HE75NY4VJPPEcKfpm0SFjCtHGsaUv9JADh7AFiwCKQD0ujFUdYtHOBLf9j39e5IrbsIAKsPAJt474fLAQBxGhTWLtdK6auc9ZwAcDbXL/fej6jJx6oJAL1bwLhWt5l7hGFzLcu8s5ZlhrHRaCxH5K87XwHIzQIAop9sI9YCYkMITjariOOfn/Ahao0gyIe+PZsPmwlsYHKkngNEXPBY+ins0nQdzyuGsKf0Br0NlvOnoFE+isf/V7TFN6cP2fdjltsdDVfaul6UZPhl++GZ3n9V6yNZ4nGmcxNVkn+pdD0AXZs2waZsbN7YBZs3Zj/feNPUDXQnixkK579jXS3aV9XLmYYJr6tZyIBVa3ibKaNKzw9yGaisa0alK+7xBkY2wLXbL9ufCcojNkZuN3GOaqJdUMz6BB5q5MdguYo7SDvLYAdpigcYp3MgfPlZunauHxCFJyr3c1g606wceaecA0AHAqsBAGPabmhiP4b62Mgb6QE9y9db4QsIsxlClXiTLvnr63phSOqX7f+Y6b+fALD4D/NzPT8RNfnViQEwD4ElBoDxudoCrdrwWJqElf6Xchkoa2sZrF+zO2lGMvciAL4hKKeHQ/IIeruKur8x19ksH39vphDvyXp59F1NymFnB6kCAfD++c4Q5H4WvuGoR25zMjP5uX5VBoD1BIBzc315Pv9IGQJg94zvL8oAFv9hfo7nJ6okv612PiAyfSJcANzUkQPBEgPA3RMBDAHgLFwnfMT2K7+1I0r/m1eiL52YUFHq69fsNKnGsxCYbVK1HDBzmj7m+v6cAADvrGQAfK6YABhW+g+gqzfa0aDfTqlPapgDAJQJAOfm+vJ8/kAZAuDJuQAM2gKeX9g71/MTVZLPTwqAWQgsMQB8bNy/kQBwZgCSrV92soBiyzOIz2qu760MH7qpDKqwbsr6oT6CZWqPFhkAv1upAHgJbsMW6wGBJ7OBn/plo34MlplPi46fijjAZxG2t6OBapQfBp88uoke0HPzgPV8/lgZAuCpuQAMAsD5W9+mc36iSvIXeucDsLnrJrHl62z7dmWjQ3wsMQA8MO7fSAA4KwDiaVhYjmsCPrOrIQNoJpxZv5j1FMMp+ODxvOXL/AOgj6dHouqR1+BOJf7dKgkAbxD1BkUDQOx+y9h12unfaTQPQ5t5N+imUW0A+CF6QM/NA9bz+ZPlBIDBdT88352rirOhZxMwCADnb32bzvkJaamXlt/0D9C29S5IbPpQOQDgv4/7NxIAzjYAtjsAiM0gpb5+zVxmArd+90IL78HJZBf5WTo9ZrrY/AMglqr9YSUC4IpiAqAIBQFw9HdzAGhpUGUAuI0e0HPzgPV8/myZAeBCAsDqBMD3moMj7/jTFPzhbc8ICPQCYNfmDujaXHIA+MNx/0YCwJldHx7LtOzX4nkArIYuYFPwSQtLQlC2rymc81skAFxcUQAoumvUI+uL3pmFljBq5g8iRndVASDWE2BdgU8eFUXUlKGZ/Qes5/Nvl5kNzGvnCjAoA1ikdW6K5+e95qD9jj9NLZgYAJ0oMQB8fty/kQBwZteH45MrfO1EMPsWfIGtNgBs5gIAr5vv5+OEAKj0rKsYANQN1QEQ3r1qkeIWV059TMpsLoR4odcq6XeGtSNl8oCeudDgst24G8JKNy6ge4r9QKq0GLNQOG+P38oDoFkWAEgAV/7X33QAPKSlMnBeM8AFVwPULIRSFHrReUaI9hb7eFdauNdJnRvc3orm8NUEgJJj/4K10O8ovKfmHQCd2tzVDgCW+vNjCjJMzQXAhrr2UQGAIc/4rPm8yP182G5QU5cs0w+Krp9qAUDMdoYVfIO2P+ZedMVeeColctdWNhPh4+mDBIDFPy/VEjMBwGaeHCn1SSAFAPiDYh/vSgxxrWQzgHXcNqsLAOOiCWSFdgjCysClQfaqmwktDgDiiEalL1IxAIiE3abvhgg7/FYsNJ9vAMwthrJtR9jJ36zVHhNGl3Hjlqq4wAsAcIt70RV70algAPxamQHg6ygDWLUAOFxmAPitYh/vSgzvPHO/bG9wt4CrIUFixp1RtTKOqtUehzD/2a9KAADfUTEAiFvACIBw+adq/LL9YjEygG40875/4/o90Gl2CPirQgDU3Iuu2ItOBQPgZ8sMABf4mD1KNXxVCYC/KDMAfLLYx7uS4S8LI0tcG5hqAUAzG+3mfRBRjn4Lt8LderwiAOCvo0rfgsoBQEsTANjID+Mw73/I1QDOM/xhRJXkJxx/I7Nqhl0XAOAq96Ir9sJTwQB4V5kBID5YXyQArEoATJYZAD5U7ONd0cHSdkAarUPHCHSOiFeBTVo8OwUEGy7azXsgrPbdUYvNorxoGcCvR5U+qCgA3GDkAFBxTBbn76J2QdMpruypz88CjlfFsOsCAHyXe9EVfbGpXADcUoYAmCQArEoA/G6ZAeDOYh/vSg3MdgX5oB1mx964QjkAXN8OcdOqulnAYS35/lqlqABoVSQAhpTDcKOcfq2fpX/tXbzmCwDrePq5iOj+zQNgNaS4CwDwQr9sjxAAzikAtpQhAP4/AsCqBMCvlRkAKsU+3pUW3gRJWEn9slV7GJixEwxzi7AQq3SZCYcD0PQadwdx7fYx+4eF985c1QQWAOBLPtl+fWUBoIkAsg0Wq0/DItaPo1bu8hpCuwdh3MGZJc/AfG1DWm/hR8DJAMarCgBx7N1S9SA0shMQYkPPEwDOwWKKmW281mL21S3SAMj6feUEgE+Qh19VAuCnSx4AxaSGe1ybDl+xj3clA2BETX4HPRctM5GLagLAdmsv+K0j8F49zTELONF9Ntnn0z7+Hv4JsuF7w/wkrFCfBdnaURkAiPN2VetmkIw7oFV7FBbrJ97gZ+lfLNJxNJvzjw9J+W1ht/gSB1Nnh1OfeQHMG1h6/mzaM/7Nthe1jfxoSSx9XmvbYdA0Z8ZhtdQA4lucZm4Rb3Vr1Idx3uET3mNd7AWoEsK9hhva7F/DRT+pWdL6CjD9L8rAaBwBsA8frH8+4cI2lRcwMuItq8D1EAN/3cyTt5U6ALqDBJoRAFn6Uh+zxTz5Yh/HSrsecBpQVOn5Yrt6N5iaDrruRLGNwOda8SwHIBO0du6Fd9x8BC7fMrLgPYb9/XHA55maglvEU9kmLnwZc3sgcsc/lhHhk0d/2ciPv9HNwKrxzSJ5U/ZCJ3cnOkEyd8JK/RmIKP1skfKyOCjOw7PgoM0AAOsKANAv26cbYy/VrW4/DpJ0EAx9R9UBoBuSvg8dz7cRAM7eAup20OE1HGmzD7assmHt2j5g2j7QTBVKW9cLB3y/bG/1LljndAwIAMs2WpTn28sBANGnbaV6CCI8BX4+1E0AOHvXAIIfzgDHIQ1N8uEtAgB1tSoBcG3nDrj+AwfgbVv74X3GUC2ywzgu8QDgdK7DiQAwKJ/C2kt9ufqk2K3DpBnCX0UBoBZPgGptAWbeDmv1L0FIOf5ZPIhnfbCc6wXtBUBn+7ejWTkB65WHwdB3gWndlEv5VsOw6wkAsIEAcG4eqBH2s10blKeAq/eCamwFq6PUa2iuczIrsr102lsaBIBlG0vUvneXOgC6Pm0cfdr0x6BBOfkZt+YWH6bFPoblHgh+7izwFrX3PdUMgFriJgGBLYlHoEEZwHXxQ167usK5yVN1MvGUoY2b+lEv23YjP/7FVv2LIFkfE5k/LWFUJgAi2aIvILP2QEPs8IX1sn1w1t/mPNAYYkP7wuw4rNafBabugkSiM9fxg1YwGFUIgBcGZXvIvQiLvQBVUkSV5GKsocGFM5FIgGGU+g18HSxlRyAkpd9ZeD1MGQgJAMsq8GGffeCfXqr/5IJSB0B8OJvxLo9PW58qEgfFnitfIYHXQvbXL6JXb9UBYNytAXR4oNOMi0EROBkkwgcgJA8/mDtWHgCc6jhb9/dN9vvrZfvZJt77Gkm/GyxLE/CXA8Dyb8JZILZ+nXCKSrG1nGl7YLHcCz7JvtgnZb7uvoFM6yIufAA5X8/4WfqusNK/YI2xX4x9M81bIWF25QEwrouoQgDEodffFBc0AeDMF1ElI667ELdfisaee42k7gbL0MAyjLIAwNbYcxBtf/W8kJR+ecyDgQCw0uM5XAvKAQAFBKJPm4U2HT3XzJdFR5VtA38lIj0H1QaAiSz4OUmhuBgSYZq3gGztglZjP8CVf1uzSLEfqJVG8ubQ2ezzdJop8c8t4jgSd8Subzv9RCCWuTjKegUToe+im/lD+LMqCQDdriIEQFXbCav4IQGBy+PHz4vw1CeC8qm0SEef61ZU3n7D/XMvhdjg+ojSDyu0g9lumnhu8odj+mhCPKGLqFIA/KC48WkRnfHiGeA5APxHXEAl9S4PAJb6DXw1tMtPworYUQhLg/+eeyCcixM+ZQDLNT5XDgDortluMwhaefl4+r/na1RXFQFgZ7UCYFzYwjnWcOJ6szrAwO7z+DZoYV+HEOuDgHqqo5aNvux1LpkSABZkqcUkNPk36cVq6o6V5tHzEP5W8EPA9Z1jANB9ZlfMFnAOREzcGrsZuH4HSNq9ENN2w1rtEQiz4z6flPn+udgYuCdCXMTO7/9qHU//bljpF98TU7mmtXWM2zeeWKPDBLO6AfAtftkZ/1XsxafcY1F2OyCg2nqDfERMvTFMTdgfYZS2FoJm7IAN6n7sDr9noqaqKS1wZ4oSOEcUEx6DjeUAgF7LLvRpa1aOQFAeuY2urdm7rn1S5tX6WPqN1QiA8Sz8IRs4gb82BSdgTWDM+Dis0v4OFvE+8Gn2tT5mPzWdY+zWAfpZ+juN8tHatXy/4J92/X5g+icEE+EzOg+AWmVMYhEdLR4IyWUCDSfwa9jltUx5CuDND9ZElWRrWBk4EORDUwWUU0E2vD+sDNRG1CRE1B5Yph8U275O1i/v9O2eWBcAMaoJALG93O2mC/Khb9Jb9OwAYEgePtWknfydFn4AYsa2MgJA8DxYe9YRAFYHLOIW6nv19Pt8Vo8oAygXAFTMHdCqHoAo7397iA1lin0cKyHwGRCQT/1TiPXDEnYAZPV2AsBEHghxDcfO3MX86xCSfyR8U8P8ZCDIhh/zMXt4Ksc4xIZOR9nA11tYchk23a02DoFifQIsE3dGPTukWVbKAWDJ24jNgkTa09wMzNgO7cYewCJ69Ats5Mcvr5dHJT9L3x+U008E5fR3g3L6+0E5/R9BOf33QTl9p5+ll9Wy0dcGlePiz7Tr94rvgd8Lve8mTKGWyZvJXNTQGNZWkRXF7GiDmoq7tTTTNZKlcI5BhJ3cjx2KWDdixLHLPL+tUOrCkgyc+xll3VcJPyrJHhN0jsv8GBRkYvGF5Y/MzP9etWV0wTtv6QY4v7QB0Fs6ZBlbxIiyNdpD+Hz4f/VyroGBYprwh8+AoHJcXqntFy+vurFJlLAYZVHDPMeqAejatAkSmz4E+sa7QO36JOidD0Bbxz9Ac3wAFln27/iYvcov23v8sv0Vv2x/2y/b3/fL9nf8sv01v2zvq5cz69Hfb53yZWDqvaLWz+GTm8XOKJbJOVGlwhtb3NzZLBUeFDSNxskVTbxb2FS08IkD3eEb1W5Yoh0Uf8ZdKLzfr9rl1jRgF5135E1E7bmkjtu/IQCc+Rt0VOkL47SCXH2pp6ak1OU0Ze0T9biBWCZZCIH0cK0sAMRmuxvMU49ec8txePetTwOcfzWUCwA667ohXvKbeK9BADjztauWZf4vpBxeiONa0bgedy9yUe0ACAiAN4nYtGkTbN7YBZs3bgKz6y5o7XwGWjqSgkGwlGKiENlCpRuWqwdFyZvY9cyyiVsaV/Xyjp1xO4WRjhHoMKMnG/cA1ycO/G/4e/D34h662FL2bC9jVLPwvQK7mlwILABAqOPpfQSAM15E/xNvdHd2o3fLqgwB8JMIfehN5UbRAYZixg/5wghpKau54xFo3bgDoGYhlLLc8iEHAJ3ieNwlCiu9aCP2Al0fM7s+aqWROxv5j6FNv0sAoBsuBFa7Nm28CTZ33STAD2PTpi7o2HSrgEDMCOKLP3LIRIH/Da9V72xltyTOZZ2qlwt+Y5pFPDDodu9OFmNqCpGuCQDPCICusz76HIWV1JVBPjRMW8DTX0CDcroNC9MLAdCtISn166PDsICr+2Bp7HkItttNvpgXAGmLrdwBw3tv43ZfvZwZbeK9l4uZr2WwQ+IWxSP8FQAg1LLMbVSmMoO1iw8NhdjRy5eo3wBJ/zjoluIAIJZl0RawkAt+XgB0soFOFL7wF4a3Bt8LgLRDmVWeiMemRt0D5E7smCzGNZfQFvCENYDeixI7oxXjTlirPQYR9YXP4lxmfNgHNaoBPJcFNCSljzXLI+etZIcBjTxx4cx3lTmFxKUOgF1WAnTtflixth/ql2TOr99g/1o8VJXM1GxgKMoNBP8ZM9ayfp94MSx1GXFNhNsV6dSsIgB2Qy0bvcTH7N8U+9iWa4SV1Kfd2j/F6iIAnEAO8OUjD4PO51PlkzGNsASAeeWMD13vG3dLWKT9jZxR42SBNSHun8vvsVfQKJU5AEDX8JLr92GdwjsDqv2KeOhP0BRS7EWqlKNBHowvl4/Bev6k6FAU12wO/pwodWHBt6beAW1t/w5L1v4MwmzkMXEd8LTjcVgCx5li5sfAcz/fjPVJuEVVrgCInmlLtQPQyI+hm8EOuj6mdU0MR5Wed6BtlbPlqxRkAK0y8DGde23a1AVdmzuga7MXAPHXHSK8Y2ULY0wGsCBB5WSziU9EqzPe3Dn3aw/IYYw1ahwf7gH22so48OcsHNWuHPh5agDzAHiPKFStlzO7nbmEGQLAqS+gP4jw1ALsSET4wxnTiYQ1Zvu31DOAKPTCxC58NGdv1x6HRikl7GCmPZmHorSOgWuU7wDg6aBsX44NdFgHXA41qs4LvhPuMwHrqRAC16gPo6XVxX7Z7i/6cS6/uAMbLGMaGtcrIhACVcsAFUe24nEmAAQEPzfGAODmuABDXONzSZaCcOZYuyVqndChd0KHkRBlNx2GU9JQ9UIAjJ8BAM8Efxi5ImECwAmVexspAEAMtITBDqVg7CcLFykvp2pjlPmbyuIZ5EOZCB9owDrKmL5DXIMIfx2d8bIDwK6N+JbqvIQxcx/cuOq759fH0j8LqTZOByj2Q4pilo6BmF/Kh74SZQPQqhwSdcDlYFNUCH/ujo+bCcz6mraH2BBdK1O8FoJ8aCDCU6/F9Ytp23IAiLsBmP0jAMzLC38uADq/7sgBIILeZOECoIA/AkBSaWkhrFM/ClgHElYGFGwAyC0Skm2HYlMYd1PpkyC8owaz4wbDysBDru8fHsNylniRSjhzsWVzt7A18DH7ftr+rxDwy85ZF92/rH811v06E5Icv8ry1kIBsuhrGuED/+KFXSphyR6L7LrlPTZhZUBaoz8ihiVAzWvHH9Yq8smdLy3I/W+Wnf/KfBILqZiqAZA1BmvVTwBc9mCNT7b/yX3wI/wRAI4HQL9s/yyqJK/AFn98wyt3eetpxUQe/RA0KAPvCfIhqgGtgAi4tX9Kpn+p2XeeU/vn7gKYFbHDISbZ8OS1Qcl+iQDwrAD4dZyY5fqW1tQQJZS1CABJMxHXVFiv7YGgfBj+mNuX1Sr2SbSLcLOAU82QVXwG0HmQZoKyvdQtoi+HGqqz2wRhPagzBN00bwHZvBMwuxlWBr5TEsefYmbHgKPXW9q+MXb6w03yYeD63jFF6pVw/WItM9Y1BmVbL5gNX/XXTw4AnTXsZC23LwurfcK2CjPABIBlLgJA0kyE9TRt6u0Qkb4BPvknUKcONtfxdFoA4DkAUjUAYJAP3evWUGHjR6U8QIVXpNkFcatL1LTgwyGq9Gwo+rGnmPExwMauRcrLLzVpA5euVA+K7d/8fPRKuH47QNN3iXsyylIQYkOPEABOCIDpIB+KhtQBWKo/m6sBJQAscxEAkmYiTTOAq5uhXf0YrOB/B4FYEgKq/QmfPEoAiAuoPCrsUHzM/l4wduzCNeqjovgcO2croY3fhQFRsJyIQ6LLBJbYDYv15IKAavcShJU5iHLbjqgn9mLNl5hIYN2Smw1eDk1KZ5ObuXZnnIeV/tfX8XQfZf+y5z/r51kfS9/VpLwgsvtY++fOLCcALHMRAJJmCoCGaoChKSApH4Hl6gGAK/+2Jii/9KXQVKxAqiADGOSDxxr58Stb+AFg+h1Z66HK8HFyu5aNbJidBsQSd0OT1gv1ip2gB2nZA+CpJq1X1KxiR+KYLsUKAEAx4zzrcODUsB6EBrX/nUE+9HO6drN+nvKpx6P6CwuW8aezOxd5s3oCwDIXASBpJjJULRequhFi/DZYxf4OQrGfvCbA7VxnXdUCoJJ5sZEfv26Vuh8ktHwxtziGtFlj2nKXa1htdDihJTRYb90NIbUXa0Iv9DGat1oOEZysZEPJ7EWYRwAUFlsej7Kyb2KqATASmLnuyE04QghcY+zHRiZ/HbeHqh0Ca6X0t6L6Cxet0h8COb4NjPimMTZqBIBlLgJA0uwAIGYCNZEJRG+o5fxpWGL+4g0hefi5sy40FQqAOCuzSRvwL1Oegph2e246jTfKXd6pJRg4CaDN3AbN6jMQ4AMQZMMbC48L2WyUBwAG+dCLEfXEG5Yb3xTbfsIrtUIBUBjyCp/TMd3sq4NseLTY56YYka1ZPhJRT1y6RHkaZGsHWB3jfXUJAMtcBICk2Rd6210DAEshygYuC8r2f7kPmOBUu4PLJIKyxyLBhRuncPrXYSUVAmgBgKvL3u9vuue/WT153iJmP4e1kPWxEXF8sEu8jqdFVHuGpVQC70n3vnSv4bCSusW5fq+p3Ot3Qr+z/PUbVgYYTkARxynbzOXe9957v1zD/TeItQvtu3j236nZzy1i/W+p+PNf7qohHz9Syeoat7vudSE2eKjcM3pny5y4ma0gH/x5WEm9H7MIzuJZrboGWrVv4qSF5hAbFA0xDgCm7TplRITXY4yiRADQeYH5n4jacwHAdVC9ugaWac8iBDYH+dCge49XEgD6C9cu9H6Ufvu9sD7wpuXWs1W+fpWBaggASSWrhaAZO2C9mBTSf7GPp7/uZH6yC06FPTizcTTCU9fmnPKr+s15oegcdSYtpJ7OdkNnAeNVEZX4UlC+LzJZqGHpkTqevjGi9kB1A+BCMa0n62u5yMfsX1WaP6C3HEPMc4+ln/RtSC5coT5UEZOKKl41BICkUvbZskxQzG1ud90Cnzq4o47bo5UCgAXdvk9EeOqNOF9U1ExZZV4jNQsyDAPajX3QrPW+e5Fiv5oHwBHbzzAIAIt+7XrgLyiP4HV8T4PaL+5Zp3yheoX3MN7LK9RncVzc9UE2hZrmMooc/PF0JsgH71ua+MUF2O2L8NfRtbHYh590NhEAkkoZADsMS3S+SubtsMJ4CBr5caiX7Ui9ZP+svgJqAcW2Jh8Z9Suju5r01ALsIMSCaS2+tSJsMmYqLKx3jKGTOCP4E+gr59YA0vZvCVy/Y7Y0R/B6fr6RH7sYuz4lc3vVZ4Dc7mD0CVyv8lFA0gAAIABJREFUPoY1zRcFZftTk3ZNl1lkz/tv/WykLaz0w1p9v2iCMaytZW/0XRWqoQwgqYSFnYPY/WrEDWi3tsNy9SA0secx3hqWXzgQkoeLvghOO8SM35G+AP9VwyLeBy3KE8IqQdiiZH3xqn2gNnYK4gNlhXYIt9EuCiivHMuVAFTQVlrZZ6/ltN0gD2bC7FgEvTyZsV3ct9UupzPYGXfoTAx5FiEQGuQhMyTZL5UzBOJL2Pv0ke+83/z1O0LaUVihHwBubcvO9i7/SS9VoRoCQFIJyzE9toSJrGbeLIyQJX2fCJyKEeED7X7ZPlnsxXAaMexn6V0hLX1Rk3EU1pr7sz5ZNxEAeiRgOH6TMJBdj7WA6gtKLutUARngytn6TdtR3v/AOvUh4Pp2sPSbocNIiCx+Ncu1vRFAZOYzgc3ySQjF7LcGZfvxYp/Dacav3qunN1+55dUFb9/aB82dX8qtXy4AYpBKXDUEgKQSliHgzxImst6Im5YYiYb1chGeuiTEhh7wy/bpcsgKhdjQU9jo0awcgSb2I1iuPSHenF2fLMoA5uX6hQl/NX0vNKvPL/Ax+8cOfBT/XFZ8nMlPM5v5C0n40f5uC++5kGl7RNkGwh8BYH5SiAtEODpOMe4UmcAW1gfNPInr19IgH3q+6Od6apEJsaG/i/CBK/xmD7zj5ufg+g88Ca0bnZ2L/P1KAFgWqiEAJJV1l+h2WKM9BGF2DOrl0bfXstG/qJdHh8UMXcmZJ+zNFBXW3hR2sZ1ruA/IQlsHL4iKTl/ZzgTl9JN+lg5EsrUysrkbAK7NFspfNAV/seoTbiO5gdMkokoP+HhaF40gUzk/xX9glm+I63pEhBcCxf0z5rq3fxmK2W9vYUng+j0e2KEM0MRyfQKvh5i2F3DKT4j1X1grjXQFeOao8LwUtcFOnav3Wi8E8hmvXwXfx7tmia9LGbtezmBtZ9onj/5jIJa5oUk+AeuUR6HN2Adw3nUA518NsKBg/SKRSKS5Fs7DZebtsFx9EpqUwxBWDkMjP/bmxthL94faM78t9NibzQek25FaOHmk4Ge9GpKH/z7KUn/crPQAxgrtoMj44Zsy6cxyQQKzKNhZiMcurPRfGOSDJwkAiwOA7n9z/rt9ukEejuCWJma1cIvTAXYnE0Q6e5c7jnhcoj4Fjfww1K/93vmL5D4toJ7qrldHc81Ok61fMwXA3PpV8H1dAKyXMyM+dmp/Iz/+h028G6KsG1YoB8XuC+7CkEgkUtGE28OatVl0HLYbe6DN3APrlIdhxYYXILrOfk1Islt9PP14HbdfFc0DEzzogtMM/LPuRAr3gehZrL/vl+0P+Jh9RVhJCS872dgrQnTJiVo/ypCcTbmCcqsLDOtWYamBxzLKBnYXwj1lAOdxC9gFQMnehPC3QXlMbG1q8Vucbc8sBJLOsn4ZFqjGTRDTd8AGYzfI8T3Qqj0EIa0f/KZ9Y0C1P+Xj6RdzRsvjfUOn/wLryTDmazlza9sRH7M/Ussybw4qJ2CV9qiwY8JAb07N3CLWXhKJRCqBJpF8qNpOaG8/BK0bemEp64GoegTCWs+bwlrSjCh9Xwzzk6kgG54R/OXgg6ftG9S0/R4j/av3mYNfDWqpWyJqz7W4VYmBZrjoh4bQ593ORPgjAJwqAGJgLVWXkwk07oEWlrx+zOgxAsC5zQZOkEkPsaE7sKPVyfzdKc6NkejyzMYlAJxKBhBDNw0xB1s3VGF5tUQ/AI1qNyzWk7BY67soovS1hfnJz4fk4ePjdhnONAv9DIFrV26kIk+fDrHB/4iy1B3NPPne5uz61aj0whLtILSbO0UjXm6djRsiSCQSqWgSA+aNbHNIFgYtYzNo2nZQ1T3A8a3a3A2SiL2ijsxx5k/9rp+ldZ+U2e2TMv/gkzL/45MyL5/x4ecAx4hftvv8sv2kX7bvD/DMpndpIzdccUt6wVu2HoNo5yPQbt4jfo7z8/Y6vn4Jp7vXDdoim7oReKfHVgKPHR5TfED5ZfvHVAM4P8DnBY4AznuV7XvD7IToaMVtX8PCzJ8Dfy4A4rkinVmGqY0L3dgETNsGMW23eNmRjPtAMj4Ja7THoUEZgFrFfmetYnfUcfsz9XLmX+rlzM+wTk/U6k1h2zegCkP1bh+zv1LH07trlfSyG9T0a0NaSqyN+DNlHX/mfSLjJ5k7QbW2gBYf+6JNNj8kEql0ADALgXHTgLilichnkLLQ5aklw8ygW9fiiUuirPuqZqXn95p58kaMKOu9Psp63xplva+Psl7AwO49EUoP1JvdcM2t3fD7tx6E1q5dYgvMzfCNzfiNhT/KkEwBAM14DgLdDul2a7fITvhlex8BYBFCGnoQrvh8zRJ2IFfzh9e8C3/oX0kZ7qkpB37ZTCCGZRiQ0LORtZHB7Lds3glL9UPQoPeICGtJCCu90MRFXNLEe9/XxHsjTbx3ZVRJSlEl2RVVklZUSbZHleTiqJL0L9b6rq1b/f3zI6wbIuyw2KEIaz0QMnqgxTgk1kbXugbDXVdFqY0HAN2XbRKJRCqanAVpLABiY4hlaSIc0Mp3JYptKusWUUuG9XiSvucssW/ScN6O74ENiXtheec+WLlxF/AOZ4JHfrvX+fmFQEhdklOTe5w6LR0ScT0HgPjg8vF0lABwjmHP0+Euyh64/Tm48vM1y/h+kRnCWtbCa1xE1v6EdJb1Kwd+FhhGR/ajBZbuhBfGcN1CQMMdhlxk6/KmGrhetWl7c7+WPN8Lv7eTyXW38OMeABy//UtbwCQSqaR8AgsXqELo8hqzYjiweKawzhi4MCY6u0A3LbASneNAb8zDMVcc7/iBYZDOLHG+xPEycwCIW+pYVxlWUr8T5EPOXGiqAZwT+PPavYTY0BeajZ+ft0R5Gtq17WB1JMZks90Mrbj+s/cZ6Szr1xj4OwMAujsJCGeeHYazrU+Fgd8Df2bh9xvzuWcNswrXVgJAEolEIhXXRw29E1vQRPe5ed8CrcAY4znHxzYJvL/9dMbP7e1w1Rdrmts+D6tjt0GbZIAkt9NNMKsFD9U+N4VEIpFIpCnpeqzDfKzY8FTOketoZ5MBoP2KTxlWb1z3PITbnhDwF5MlAX9MIgAkkUgkEolUHAC8q9gQVa6B4Idj3DDw8zGTJhzvv18GFLuxdu3zsLTtC7Cm/aPQJiVAkhgwSQIl1k45KxKJRCKRSEUBwI5ig1R5A6ATOQDMf/2/w9LwO32rn4eG1V+FtRtuA1lWICYpAgCVGAEgiUQikUik4gHgumKDVCVsAeeaaKRMJhjLfCq6PvOaFRtOwMq1n4d17VjzlxDwF5MZZQBJJBKJRCIVHQDDxYaocg7vOL0gHzreyE6El0i9sKqtF9piB6Ftw4fFdi9m/RD+HACUxNcwSCQSiUQikYoBgIFiQ1TZh2Pz8niEp97Yqj0KknYvMG0fqPp2iGW7fRH6MEQDCMJfjIkgkUgkEolEmmddhxNBCABnkP0LxeyesDS0Ksr7YaV6EJixc4zxrwA/BMBsxJgLgwSAJBKJRCKR5kiqroCGoWlgqBpomiF+jV9fq92BAOifSfar3CeJnOnvGZTG2rwIaxd5VES9PPrLYLv9AV/LK+eHlz4PLWv/BlrbPgjtGwyQ2iTY0O4EiUQikUgkUkkB4HpVAGADAeDkGb5gITBKmVcC8ql9YXb89VjrF136I1i2/Buwdv2fQHv7BpDa2kVsiDkBNXTRk0gkEolEmmch7HnDUA0BgoamQJvyCWhWetZVcwbwjJH388M45ZftB+pl+22N7ASsUR8Gpu2BNetuh/XrPggb2rQcALa3I/xtECEAkCCQRCKRSCRS8QHQgcA2fjc2gWwkAJwYbLNZwBca5OHtUTZwWVTpg7DSC8vV/8/emcC3UZ75/3ECLQTaLW2hlHJsL5Zley3YlizLlizFuR0nsaWZeeeW7AAhpO0epS25ISds/+22++9uj20L4dgeS9ttSdOUnv/tbq9tC0kcJYCjmEDvbUlEAFt6/5/nnRlpbHyE+NDh5/v5/D4+kjjWaGbe3zzvc+wDZmyClGUL0yeMnys0f973UARBEARBEDOOs+Xrl7MNrOk2rFJ3QkzNbJzNBjAkiwreYVu9AYUPBhT+UEjiXfXtuXMWrByAhPZFSKi7IGHuEoUepnUz2DYawMQwSb5tYMwFpOm0BEEQBEGUPQIozJ92E8jKJuiQ7oMoG7iPDKAwgYNhJfftKMveHFP7Lo5qGYizo7BoVQZWJR8GXdsCKTMtTJ9fww3gcPPnGUAygQRBEARBzChMZ0KGxsBQNWCaAZK8EVat/CYs7DwGEen0gVlsAB8PyfnPhOS8HJLzF8WULKzQ7wPJ2l2UYt0ptnsx4pdKpV5kAL1q39K2LxpByVWCznaCIAiCIGYeNH8amj9XaAC75e2wrPMARDteeHlLkr8wnQawEoxgSDnNo2zgqTjLfDPOMjvjal8ypvZdEVP7sAimqKXafmDWZkjZPY5SKdBNA8yUCbbtaSID6Ji/YhUwQRAEQRDETINRP5TJHKmqCl3SFoh0/BRiCm8dNsd2io0b/vsGlucN7Mx/XlOywJtV/lxQyWcDLP+zgMK/EVD458fRVwIK/7L7+acDCv9YQOEbAwq/MaDwzvokf2dYHrhgOfs8SOpdkNR3QlLfDt3Gdugyt4tm2CVdCQDz6CQlCIIgCKK68Zs//FxVFVipbIKWVT+HMOO3B2fEAOZH/Vni/2B5nKH786hyYnecHVUWakevvX7JD89plR+FqHIA+xRiocqYwly98dSqHIJF7FugaFshrfeAbZpgWjoYtg6GZZb77SEIgiAIgph6NKaAxlRQmQ6KqoPEktAhbYAW6RFolAs/mu6tWzR4qOJ2rOxO1GD57zew/OoGlr+8RcPcuweAGXcBM3aCpG0HydgBkrUTZBO1e0z58/VGU1LbDYq2GUx9LaR12zGAPhEEQRAEQdSkAcRtXzR/SXYzrExsgYWr7odW5cmr6qV8ftpz93zNlEMsdyqq9n88rh58e1TrA1RE74NFBubebYW03QO9qTTYpg6plOUqBWl7bOGfjyfbsIXQ/KUNUxhAIff7BEEQBEEQNYeqMGCMgcw0WJXYDouXHoG2JRwiCb4xzCYu5Ji0AUwI8/dCkPF/aVb6L1um7RH5d936TugydkK3hZG+TWCatxTbrGDRhZnShTwTOJ6s9OgSBtBn+IQJdEUGkCAIgiCImgXNn6cV3R+C6KLTABcM1LUk+RPNSmFaDWBI4rwlwb8Rkfhbm5MD0M72gmRsBNO0hQzLBtNOC6H5m2oDiMJ8P9zqdQxfz3ADSFvABEEQBEHUBsNbD2PkTxYGUIYVyTugdcVjEO7mKwIS502sMJ3tW3Lhbv5uOP/JusWdHDoSX4aEugE0Yx2YZk/RBHoG0GurYrryvk7b1rgqbRW/WFbaAs0t9sD/y4v6FaOCZAAJgiAIgqgpA1gHQmgAk0oPJKT3QUfXpwAu/mRdkzT0U5GXp06PAQwruf+Jsuyft0snYElHAVZ0ZoHJd4JtpV3z1yOMmIjMWX4DaJbMn5UWs3adXL+pMIBOFNAr/sA8QxRBEARBEETVkUobjrytUrsHrFQPmLj9ibJt0PRNkEjsg2VdxyCWyC0L+apxp2qWbhPDiCLHHn6fb1xxaN4S+TPQmbgdAOoB4FoAeKX7G8/wcLS6M/w7Y4kgCIIgCKIyDaA2rgFk2i7o6DoM81cWXh5J8MOeARQmcIoMYEAq8Cb51A54zSfq2rofhFXy+0TeYcUznvkjA0gQBEEQRCXibXc626ElA1isgrXSoGh3wgLpMISShY1+8zcVBhCjfmj+rk8O3RlKPgaLlc9Al3IrJOReMXau4iEDSBAEQRBEtfGiqljfHFvLXgvM2ASdGvb9O35to1w4Paw33xRsAQdx61c+tQvNXyzx1WLkD3MPsfdgxUMGkCAIgiCI6sHJpSsaPp/xw4bKKNXcDEv0fRBRsxeEWO6gv6hj5ISOs48AFr4Ir/1k3cLkp4T5w4ITf+uZiocMIEEQBEEQ1WYAxXavq5Rr/CxrHajmVjFeLaJmIcDyd4+s6m1gjibT6iWs5H4SUY6dH0t8GbrV94uJI57xk11VPGQACYIgCIKoKuqgWOzh5fw5kb+tsETfL8xfiOU2+s2fkwPoRgEn1+fv91GWvXxh4pPQmfw7kFkvJGWpaP6SqiZU8YUUZAAJgiAIgqg2SmPPLLDsNWLb1xf5WzOyp5/fAE4i8sejLMuWavtFwQeavoSUBElxIoBkAAniJVLpD0oEQUw9oqFtyihJNLhNFbf1DMMASx9bTqPcsTWyOKC4ZSiMg0VvaYWDzZD9EzJwTBo2TMbv4Z/h+LQe04Ye0wTN2ADL2F5ok49BCzu1rjE5mJ90mxepFC0UeYNSgUeUYw92avcCMzYAwLzRf3Fqo0IQE1IcWZj2KveHNzMvXudjaKJ7f+nekR4h515CEERFG0BragwgVoX68sXIAFYH3o1+uAF0TCF+H82fbd4szN9K7R6A1/5LXUjO34kVvo2yM+t3SgygWzQSkAq5mHLoMsnYASmLFhCCmGoD6J9wM3UGcKQJJANIEGXHMWclE1hs6OtG7dAAjqcXVYGOUhXq3WSGy7nBEJUNmiyUdyPHvn621Vu8ieP3MRK3WNsLEeWJV4eVkw8G5CHRnqVRnXSenzCAYsvYbRsTkArbYsohIANIEFNwffsezp0irhEGTlzvY2ui+//IGdue9LRJEUCCKDelCN3IWaZOH7ekvgES6o4xJZu7x5RkOZLtjWCm1gjT58n7f4lqMYDunFyrF3Tr3SBZm6Db2gEJcwd06PdAK3siGJCHngired6YHOQBbWoMYFFKnoeVk7+NKMf+bIm6T/QXxAgEQRCTuL7d+7BXvc+szc4927uHG7vG1Xj3f+/fK+YG0O2bnHtIypVrBAmCKCOOIStF5vyGkFkbYYGyF2LKYYgkDgBc/LG6OMtcHWeZxXGWYXGWuTnOMrfGWWZdnGWMOMssj7PMX8dZ5tw4y0BMzUBcPyyiQ8y8DXrTtlMsgP+P+4RIVDZOvp9PONnD3CTe0zb1AET1g6+NqP3/HFZODoXkweJ0j5FtXyYj72dF1IHbsKk0M7aAad4i8g8Jgjh7vGhfr+VU7y8y9kNE74Oo5ty/Y2rmwjjLROMsc0ucZT4RZ5n/irPM43GWeSrOMn+Is8wp9+v/jLPMv8dZZkucZRbGWeaV+O8j6iFYqDv3f+9BUmwrm2m6fgmi3KAZ01NrQbY3Q8KL2Ino3U7oNO6DVrn/uibGtwVl/u2gzP94hos2Tnz476DMP1ovDS6I69m53eb9IGl3iJ+LT5n4tEkGsNKZJ57eMconGdvEtmvC3AVYgBFRnjg/IL+wLsDyvxcNnZXSeLcpavNSyv1zDOBzMTVzCf7/YuvJ7KUFhCAmeX2r1kZgxk5gxm5Rvd+iZaGB8QsaGE8FFP4fAUXcy8/m2h0KKPxH9crQLWH1idd26veA4t5D8AHSNugBjiAqwgCi+cOJDTHtIGDkLs4yr4+zzNYoy2ZCLMfrpbyQv6XHmapJw5vBn37dKj/+Twv0vnfF1D7RIw7bheC2A1HJXAm43TpfOQQxV23s8GsiyvENYemZXzdJQy8a6yZy9tzCjamM/gVlvgfPTdxS8ucgEQRxtlwOS/W9EFcfhbh6EKJq/xUhlrsrKPP/PZt7/WiqV4Z4gD3zfER54ksxduCv29ghWKy5KRwUwSeIcjJPROMw0hdV+yGo5C8LyfzDIYk/61+A0cSdrQFsxIIAtYAju3hAHioEWP7BKMu+c5X2gHjqBLhGGI0x23kQU/p+400f4OoRumYMtYuWLk3JwvlNyUJ3QCo8GJD4c9iKpSlZ4MMMoL9oY4oNIH5sSeYji+Q+UHSfAaQcoimf7PLSz6crxzl/JqsJ7gv+JtqTeBWzD+99a3fv+4OvCiqDu4LK4Gn/tTwVBhDv/ygsDAvIQ/lGeei+VnbszZjKgQ9zzv3n8mHvM71/BDFFFMd0+fvxuZW5mOOH0bjrOw6cE1ZyG67rev5sw/0vSWElV4iyAYzovGaBdhQWs2+IiGBvKl1sQ+NVps12RlbV+auohxfVOBpZZV2s6LN7hNlfqu0TT/sYifXkRn39enWcZVqjLLs+rOT2B2Wem4nzYlQxzsNS/jeLFT63o/sAqMbOYZXlxOQojfFb7cq7VzjnD9M1t9rbdNuCOEn8hmWKQqBF7BvQJh8qys0Xnoe5wFHpIOYEm3GWeW+cZW6Ps8zOOMt8wM0bxu8pC7SjLTHl8JsXGo+JvOF29UhRS41vQdJcD3aPv/9kqSBJVJL2GEJ4vnu5bCjvvJ/tk1hKE3q89i54399cnNQTVnKdQSX/65EPctOpEMu9EGUDH4ipfXOi+kFYaO4DKbVR/K64K+S8f44IgpgE/r57ngk0bcz52wid5h6IsuxfNSbzP8GoThkW+KeCycGl7fqTsFK9V+SjpKw1xRsVVQmPZwBLJs+r2vbe14S9U0jkW7r5PbJxl8jxibLsa4JKPhJg+RsDCt8QlPmHgjL/TFDmnw/K/AdBmf+2bGZvFGEUoVU59a8dyWMgSXvBNDaSAZxCxHnkN4Cp4b3g7J40aPbNoFi3gWxth25ju8gJxQpw3DmIKMdeHpAKLQGpsD4gFR4KyvxYQCoUxHt3BveUJuZ8bFb5802M/7SJ8U82Mb6mifG/bFOPQ4d+LyRTu5w8VGunyEXF3wV/Jz1lFw1g6WGHDODoVb6WuLd6Oz4RNXt+QOGfLvO1/Z0Glr+8ReuHpdYece/C3HDP/FGOOEFMkpF9+JwnwI2wyNiHCb9GiOWea1adG7F3M54xicKBQR6W//iRdv3JuRgJ1M2N0Ot7Wp3tjNpQ2/d+lvp2YRXfZvG+RvSDWJ3rRPfUvmviLPOemJp5KKIO/ArHqHnGaspatEyj+WtgeR5Wj63AJtNo/rA1UXGiDEUAJ81o1f8ovAZROAlIMjbCIvUhiCqPiDzQOMu8ql09Yrapxx8KK7kX7RrgfUSkCZzB/QT/Dt5/vM/9amHP9rdIj//fmHJoaX3HT87BjgIxdkBUoGMhAUYBR3sQ8mu2RwA9M4/CB2wn8jdwWYid/PFMRfzGvcZZ/nch9qemiPY4LDL2OibQd04SBDEJ/KYBI0Ro/jDy16Jl39/AeAFz+/BCxJtwQ2Joxg1gMxsSJrAxOfiluD5w3ir9PnGjwrmy1Ch6dAPobY9j9bZTxVeK8OG2TgPLhxtY/uMBhfePZ66qwQA2aphr+MtLsTpdtI8YMVKQmBylVAEvhcAAM3VjsTo0qe+E5eoegEv+pa5Zzbc3K/zBZpk/14S5waMYPDR+eC9pTOaLRnAi+f/+aD8Pvx/W+NONyfzORun5t7bKj4vfCX83rAoXZtBy+8x5DctdzXYDiO+rmNFtbYQVOkb+Bq4OKHzAm6xT7mvc3Xo+FWCD89EE4tqERYm4VtEDHkFMEi+cjiYCbwJLtf24DfhhrO6tCAPgqyINsdz34/rAK5eZDwuj2tvbO+vf/5EGMJ1OC+HNUbI2ONXbqujbdVFEHXh3iOUO+g3eWEYPW7V47VoqWbhYYT8xNIDDclkpRWCKc8RSRQMopdaLvKyoJiLIL4+x/hvDyp8OBpXp6fM4wftf/H/E/60MFsLKn74TY/0L4iKHNSOiWni/KEYAi/e8M3hAqHEDiMdDTWHfTnw/j785yHIDGFX3VBFrgIgEDj4XYn9aHmVZsUbhVjVFAAliEmA1FSbUpsx1zhOgsQdiSnaD/+Za7gu/OOLLfSJt0vg3rlt+4BzMU0kaG2d9dfDICC7ezBVrl8iHwvyoiNr/+gAb/KcGln+2wY2g+PvwCfn69FWbAQzK/EHPAI40f7RATJ7ieWVtBNnE3NHtIh8rrGfnNjBuBZX8MafBtyenz+NMG0DnfM2P+D3ymLPahlFvjByJHEFfn1EygPNAtbfAMm0PtOkDlzTKQ/1o+urVyjOAzjowmAvJ+evw/WxP3wedqzcC1FF3CIKYhAFMibw6rP6MsqyJFbh+41Xui967oXsm0IkEnvxEmz4gnuyddgWzFycq41T34tbIUuObENcPYdTv1RHl2K4QO5kLsMGigS4aPWVsVcxN/8wMwA6McKI58R8Lr3iBmBx4PDF6hvcH7AOKUyDCejYWUHMHhj88OCYs7M1mnqEHyFL0r/R/+2dDu/eLhyNq/zWY99piHIR2ay/IqfVnlkJS0xHAK0Xkr00/cW5Q/tP3sB1X0fiJe4Zz3y3n9e29n8V7lsyz7zJyl1y1th+uXbcX4BxsEUMQxFl3el+li2rftw/r6l6hBjCMM2RxlqzC17WaAwBz2gHOvXyWPgleCKq+G2T9YyAbH3L6NerH5gTVwrqAwv8oqix9EdTigjiOAfRN1qgKIxhQ+C1kAKeWUq887APqdgNw+oBe1MD4pzE3eFj02FusRxiwmcghG2lA/T0m/ed8gOWfa1AHN1ynDZ4b1jGX7G5g9noAOO/szV9d9ff5i6gD0CgX7kLzh8fLbwBxS7/ca8DI6UGotxv5771uzeCcN609CDAX+wQSBDEqlm4J6aYj09KFDFsXPbTwCTCiHDs/JJ86MB2tXiZqBDrhzxjbiObeaebeetXfPAVvWvt1WH7jJujp6RE9wdJpVFr0Day1Po1edSsKzV/nyidgcecQLEg8CW3q8beGWO4HuNXbgMe3Mgza5N7/iQ1AFxpA3NqjLeDJn19OmxTslzcsJxj7wS0KyvzpmX4wmMrzx42CPxJiJ+udXLJ9oFrr3SrYUi508TrDCHLVmjwHzTBBM3QhXXfUrd0GUX0vNKiPQ5DlQkGZ50ce76kKAHg7D2PpbH4m3t/ebuTXBK0+6LJ3D2t/NbIdFkHMasYzgF3mdsDROwGpsMOruKvkG/hIvc3k33/tu/mcK9b1QccNu4TpQwMAP7F9AAAgAElEQVTomECnGKLmDGBxNvNGWKF+FRYs5wDnHqtr6eLvbVb4s8OO7wwt0uV6/90FJkwGcPLn17BiD2utSAtxdwbmBmW+1W8SauD8eS4o89VoAjHv2ekqsHZ0AwjVbwCZWTKAtmnCSnYHNKsHIJji5wYU3jet7980GEBX/xtl2ddh5TLmdIqqYNGvcnghGEHMagwDe3V5BtAoGUDLhm59J85ufXNAKjxXjQawXkUTmF8d6j0CydSdIuKHjWmtXuejna7+KuFSZKZ0U3MmtOyDqHICWrv4BS1d/Ith7JM2hU/u1fD+uwtMkAzg2TO8cbhznjmRP5ETfJE76aUmz5+wkvtUjPWf50QCN/p6ZtaOgfCifyUDqMMKaTOEun4Ojcn8zdP+/k2fAcT373OYmoDvnyjsKT4ol/o+EsSsxov8+Q2gZt0oKmiXadip//gX/D23qukGjmpMDh6Lp54+d1H6AVjRuxn0nluK5q8WDKB/UcIohZeThZVwAYX/eZPCf9nsmT88JiPz+sq4eM/E+x9g+QAZwLPHb/68al+MikVZ9oqAwg/U+vkTVPI/jrLsxcMjgbVnANH8aerNIMvbYEXyQYhJT17YrPBfVbMBDMp8KCTn34ztfiTzrmEG0GtuTRCzGtM0wTRtEfHD+ZxoABPaB2Chvhea5cevDrFcvppv4NgE9jrrVPrKdcfg2vd8A1bcsKm4/VsLW8BeTosXmcHK5xYti7k7TQ2M/3bM40gGsCYW8OmmOEbQjSxjzl9Myb4trOQGymX6ZvL+gQqx3KGImr2s1C+wtraA0QCamg6ytBOWLDsK8WUcmrv4zTPxgDjNBhD1EZwRjQbQO4+dmc+OnGImgpiloOkbJhzdZO2EsPQIVn99vNpv4M0K5++wCkcvWTs058/ffaiYC1hLBhB7lnmRGWeSB28OKPwZPH6YEF1M2h7lxjvTC/ZMv/8Blg9RBHBy55dprytV+7Ls24Iy/125z5uZOn+8/6OB8cdbtOyf4zHAY6Gn1tWWAdRVkKQPQ3vHEMD5x+qak/xQEyvUggE8GVMzrxJ9QIsG0Jn3jCIDSMxe6gA02wbNdswfRgNxGxgvlrB0aF6jzE/WggFsVDl/u1VoaUwfhq70nZBO9xZV7eDTLCbkdzg5WRBiuTCaP3/PvpHH0VnQKqOR6wwYwDgZwLPH6R9ZnP39lhDLPTWbIsjDel+y3PGImr0K82u9mbPVjq6bTvWvoUA32wbRRD80J3lzGOcr10AEEN+3qJZZncBJQG4VsCjmsVYLeQ2NCGJW4mz92sL8GcY6UNhuWJb8MrTKv0pen5iBJ8AZMICoJsY/isPgZftOkQNYGwbwvGKfxpiShaDMm4Iyf2bkwjWbDWBQyXcOM4C+LU3aAp6IecLouLO/L29g/FjxfZklBtDriVn8mSx/IKJmX+VFAp2eebVgAFVYpW2BVvlRzB3+B3zN9d3P1YQBbFEHvtph3ica4XsTXlL2aiGCmNV4VcAoJt8JHR2PiRyQsMK/UNw+LPNNflI3cKnY/PWpmNo3B42AM8De2QqYNNPcCNaZXOFMr/DnsGAiMzaqXcweEpG/YOKZK4PymSdtT+UWWYVrjUgCx/c9VXry94zgbMdLhi9VRjrnGR4rXDAx7y3KsueHWO4ns+R8mVAhlvtWlGVf5uQEOjNnSw8V/mNZ+UUGKcsWsm0bEuYu7PqAbb8ea5QLHFXuYz0VOeAhlns22H1knni/jE2QMtNgW2nxmidNTTYCJ2ZdH0A0gEn5n2BRRx5g3vG6xi7+21q4AfgMII+pffWStd2tAqsOAzhsfJlbxeYt2PhaMLoVkAoXBGX+c7zZlft4V6B2Fg2gaGPimkAygALnOnDOJ+/BCHP+pNRm6DAfEJMggjK/pwLex0rTZ/DBC6freH3mhhvA6ogwFw2glQbJ2AUx5fAbsNtDLRlA/Hh9cmhxVDkkXqMwgLZjeicNGUCiNgygAQn1TognBiAi82vRNE1H25eyScnzuHpwtWxtd6MeTiStGgwgysQ2HG4zXu97aGrg4o/UBWX+BTJ/Y773XyttAZfed2+yw2zHOw4jZ0YvNPbjTF/MKX132a/dClWI5SysuMf8SLG9KK7PUhTV2WKcU20GcGUtGUCUaGGm8Pe3JA+QASSIsQxgl74N8CkpKHM9onHeJA2V/eKdYgP4cdncOax3XrUYwOIoo5TX72+zM9uXZde06M5rJBM4ys1f4b/yzwL2zD9tATt4kVDn/Co9WET0Pmhg+b8aNv+bNPLceqaB5d8S1UoPGDVgALfWogFs0vjd4cSjZAAJwo9laEKGqQkD2KwcxDYiW7Bwwj9gu1rlH/geV/v+W7QDKI4CsqrGAHoLi+j3Zzq5WRE1+6YQy50q9zGuaCl53q4dvkYydvjy3Wqnj9tkKY0QdCKAvWkbkvodMN/oO7dRHvpp2d+/CleA5X8U0w6ey0xnZ8E7jlOWYzzDBjDOMp+rxRzhgMJ/GlMzZAAJwo9n/lCrSgbwXpE8Wxs36GI1WUTNPonVYFJqI5ipNVVhAL2ojIgC2mtBt7ZAB7sXYsZTcxrlwnfLfXyrQVGWfW9pkgO+72QAPbz50WLSR2oNqNZ66NTvgTbt2MZKqPKtdOG9JaL234aV+Hjs8Bh6I/OmZIdh5g3gt2vUAP6aDCBBjMAzf9j/b5W+wzOA3whi8mwNLAB4g3ZannAe0E6eDJlHod3+KsipD1aFASxG/+weYNZWWKI9DFH1KQgpz99cSzfoaRPDcYDPHIwZT5672J3pOpoBnCO26tztupqu4vO9TnzAcI8DmpbiDGn92OublGdOVUKj8EqW104poJ08FVH7r/D6A3rRvyqNAP7Se221dH/B7XoygAQxgQFskQ9iH6j/hwtnLSwAfgNYr+Z5vXb63Ij5c5DsO6rIADo5RTjOqE0/AtdL/M+aVP67gFvdTBr7GGAeU5OGJjD/ftEH0tw93ADWlQzgnNlkAN3X50z6KOWUtrJj0KTxL9bLz/OgWhs5YNNoKkr9NFn+fn+/yWqMAGIbmDjLHKrR92qQDCBBjMCfD4c3L7xIAgr/Sa08ARabijpNXHmLwV8VY4+AZGyrijYN/uIPLGSIauL92eFvxDvdo7CqWd77HpLzubja90b/SChUSzQiFGltg2hrG0Qi+HVLUdVOT6/lKgU9PT3Q07Ma0r2rwV7dA+neHtEKA3ujYXQUzV9YyXU659ZgTewAnNH5MTXXTyGm9rUmzB1g2yaYKRPMqWgzMlP3f3zAtHajATyMqT+1kP6DCmulz9uNx84VD4Du7PRqMOgEMWMGEA0G9kwLyvz7tWIg/DmAYSVXaFp+4Bwcm8aMDWL6SaWD5k9PrxFNn1cYd2Phx+UBhT87ctIHGcCJ3/8oyz7UaTzgtOxw+7b5DWCkZg2gMaYBxOiPohcbAP9ZSOZPFqdf1MAOwIT3h0lePyGfoiz7/zr0e0GyNoCWukmYwKopAkoVDeBP/a8pWOXydUZ4tl094uwAkAEkiHEN4EM1YwDd14A3s5iS/SMmayv6erBTt0xNI9BpBotA5NR6WGp8FWLqUQgrJz8+lQvYbFDxWLDTOBbqlkVGaYJDJNIiTJ/fAPpNYLVvBQvj15uC1T3DDSCaP/wam+Iq2p2eAfyCWPRd81cJowJn6tw46+vHjZLicQvLp3mYHW9eqO0TJhAjgVVoAB+qJQPo62X7RExxU0DIABLEuAbwc7VoANtZX7/TDy4lon/VsQXsTPyIa7/Ewo9XheT8Kf+NmQzgS17kn4uo2XpngsNGCEcWDzOA0VbHAHqqdhzT59dqVz2QTq8T27+d2v0QUY7fUlwsXQNIEcAzNIAKphg4X9fL/Cut6mFwtoLtajSAn6klA9iYLEaxf9gmHyIDSBBnYAA31JIB9F5HXO37HvaD85KeUdWwBZyw8X05CCE5/zfhJOeoYqSGIoDjv/9e/qfvXG5VTz++MPXUq5Ya34Rgq+GYv3AUIi2t0NoS9ZnBtuHVwVWF83uXDF/J+K1OrxbSUltF1W9EzTaGWO750YxNua/fio4AurmSIRlVzMctxI3Mtd36zqpIMRnFAP5dLRlAn/4tzjJkAAniDAygUosGMKZm/g+2OvDmQFbDE7pnAGNq35yQzB8jA3j27/+w0VDy0N4lPb86923N26ApYkM4vATmt80vbQX7DGCxOrgKDaCz3esIDSAav3T6PWDYd8BK6wto/t4YYPmny32dVq0BZM8LFQ0gy/NW/fhHlmn3gWRsBIB5UGUGMF6jBvBvyAASxJkZwDfXigH03+hjasbAVgdYnSeq9KokSRtvzFEts+BFRmaCxauW3r8pkRvValY5D8gv8Gb11N3wuk/VvTX8SWECMfpXU1vAdSCKPbyCDy/6h+ZvmfkwtOkDrwmy3OHZfJ5M1gAG2KCQFy2tlwZ5QDn1q3ctPXDOYnU/AFwJVWYALwrJfKgGDWATGUCCGNMAeo1gxYgxHAJ/opYWBnwtUa3v2m5rR9EAVn6S9jy3P9sDEGEn/vlMDB8ZwPEXbFygUWgCsc9dvVLYdWnjt+Fd4Z0QajEg0rIQoq1OYQhWB1c7dk9aKJ22wUrfLLZ9MfLXpg+8oknjPxzL6MyWB4jJXj8vypVUnb6TYY0vjEoHAeCaUePHlZJY4LWZQgkDqPZBSOb/VUvmL6zkTkdZ9uVLtVLx15SNAiWIagarAD2Z1s2gmBsAWxm0KsfvaayFG7zktAIIKPxoi/IorNBuB83QQTdUocrmSmHIo2xgTkg5PWu36aZTDYkhXCA2tCWz0KHsA8PaACnLBMMwhNJpNE9p6E2lxZzc3rQJ6R5Hdm/5HyC8fmbenOOREr93yjGAamoTLDa/CVHt+Kua1VM/bGLU6Hk6zim83zSr/HPYdiS+8G9h+aIOWLp0KSxeuhSWLl0Ey5YsguWLlwqV1QTWAeipNOgpWzwUY+FKTDsIQSW/qVZyQN3uD19fod8nZqhj03PH8BqQShvlPPoEUVkG0MmLM8WNIKIe7qgVA+hONdkeln8Bq9TbQdd1MHVVqLK5BrdkcEu+udzHsWaVyPOmZIGHkoUPw6s/Udchf7Y403U8A4jmrxIMYGnqxHDjh4ubMIBWClLWWjECr9PcAxG1/zUBlv9ZLSzulawmxv93gXZ0LhrAZUvQ+A1XZRnAtDCA2LpmsbYXomr/20LsZM1UgcdZJulNACrNvraECGJWUxwFVCyMcA0gO/Kyepn/vtq3gYSJFQZw8F0t0i+gW70dTE0vqkoM4M5yH8daVUhyc52SWMn5zD1x68lzF2gPwSrtfSJC7Jk/jKCh0ASK7dReR2XrEej2J8RFrDgu0Cfv+2gCddOZ8RtR+68OKyf7yPzNzLnVrh2ub1v0XhH1c+REARcv7Siq3Jg2mj/HAGLzajSBHfo9EFUf/68amQbzh5iaOU9MABpxjVRDGzCCmFbQ8DkqmUA3Agj1Mr+rFgxgs/rsTyLKE9CufBUS2gecCGB1GcDvl/s41rIBbFY4b+x+gTexIcwPfDisPvG6ZcY9kNBuB93cBZa5CezUzT4zmAar11ElGEDH7JVGeuE2l2xvFNXjWNiFzc+jav/CoJL/g79lCWl6j0FUOfF3zfFPwvwFfw+LF0tFA7hwWQcsXNopPpa7ybhn/rx1AHOj8f7fph6wa8EABhT+URyf6c1o9l8nKIKY1ZgpXchvArFSNqIegnqlcEVA4S+U+yKelBjnbfqJFYukz0BCvQ1k4wYnB1B3VNlcA43LfnJOYzJ/ShQtlPtY1rK8nCfs68ZOnoio2ZZ21gcrkodAlr8hTGA63Qu99g3Qm+p1iyvK30ZomAF0JxxgrhNOO2nTj0C7dnhuXD32gZD8zFCT9AJvkoacFh8Y+ZQq4LjXsFoS/GvvqP8DBAM/ggWLboUlHcsqLgJoWLboV2ibOtimCratQ7dxB7RIj7ysvvu5/nIfw0nq2YDCL/cbQLH9m+opiiBmNaMZQMUsDYcPsdynK+BCPms1yvwAvO6f6lap28AwLGH+PFWDAYyzzLt8ieVlP56zwwSK5tGDYYnfujjJ53Yms5BQMYl8K1jWe4QBdHIDy28Ane1fxwDifGM0fyv0B6BFHYAGxt/YxArfL872lYeKUyvIAE7/+RTu5n+EeU/X1Tf9FtraN8GiJYtflAtYWQYQ1wEdsFn+QvkohJM8Vc0PCSGWuzOiDoiHIexw4RlAM00GkCAEI7d/UVgN7I2IirKB1wdl/ky5L+azVZPGV7bIB2GVcoe40WnGcFU218Biq7+3uKBo5T+eNSPP6LmTQkY2v8XvoelulfhP26Rnr29nxwHbSKj2lqL5qwQDWCz6SFm+Nk4DcwLq6RsbGH+m0TV9+Dobsf9hlad0VJNCOLFnFb/8HZFfQGTRrbBo6cKi8XMigeU3gHhPdOQaQdsERd0JC5cfhaZF/Jxwkv+83MfxLPXHKMu+Bkc+yvZm8XBUKgBBE+h8JIhZTbEABEejuQZQFIa4Q+LdJ8Fb8aKqtsUjxHJfapYfh3a2V2z/apoGul4tBhDrA6+BmJq5E18LRQBnwACOsi2KbWKakoWhFpV/eIH19CtWmA+AbO8CxdoFur2pzJMe5onqXmY4uX642EXUgZaAwv+ngXHsccjRAAqpXEgURFXZdVzlir+t/QfQuug9sHT50oo1gBgJ9KKBmr4Furq+C4tW/hoiyeevC8p8sAKO44TyejeGWI5HWVZ/cd8/fxUwGUCCmIBrYXnyCWhc/Pw5TYz/8DppSFxo3kJZEdsDvm07VKNc4PUSfuS/D8vZSwHa3W78lTmSiemakKYZwqB6XzPNgpXKdjSA/4bmz1PZj/csVljJ/SbKsu+LqX0XYMNcjLZh1M3Lw0NhXqBh62LyhpNcP75Gq0wcfbGyRggbt28WUUn8XeJq3zujLPuFEMsV8Hcd2ch4tjR2rkCtcSZQeEUIwyu2KxO8V/45ACyGmDIATcnCViyU8hcP4eeVUEzkrUF4buNDDyqiDtwv+v5ZlT+KjyAqmCshKX0XFnY/hbmAb6xX+R/FE1YFGkCvIz/+fs3qs4WIOpBcoH6j4kcxlQwfGkBj2NdoAOPakR+S+as4/Too87+LsuyFGHXDalsUJppL1nZQrNvASN8iTNpUGECs6mX2evGznf8DtVtE/KIsGwrK/D+CMhfGj1Rxx+Aj3ggyLNApGsCqqEK9Epaw/TBfPTG3OXlyH5rASjOAnnwGsD+qZV6FhhuPN0EQZ808sR3QbeLQeJFUvqyB8aFKiiQ4xm+QN6iOcIsrLGc3LlPuhqR+W8U/AWoaKxo+xwRq7vcYrGRbIa4ffpIif5WpEMs9E1Gzn4hqfY0xNSMicfOVA9BhfFPk0IpF3tdofTSlReXu6MJ/j5WKTqRvnxPpYxnUJXGWeW+UDTwSVnJlPw6kcY/B56vXAM4D3doCK9h9aAJfE5AKRzyzVUnvuWf+Agr/TVDm18TUPvGAVLkRVoKoEjBnLmlsFJVUoeQTEGS5GyppOwkNoGf+8POQzO+GV/9jnaLvECO9Kh00e/6tX/G5uhok5YOwPPk5iKvHq7sNT42rmHck819i1XAo+ULDfC07d7m6BxTrTpCMXeMKjcF4woUMt7NirP8vQnL+PWGJ7wtJTmumSrkGSeMeg73VawCxyKhHmECMBEbZwBUh5XT/S5mVPFPXX0DhzwRZrj7KsiI1QxR+UJsXgpgcummAZt8Mkr4ZlrMHoFV5EgIKf5/YcqqEJqFqQZi/6+VBHOv1YOuKwsuXrOwDme0AS6/8WY+Gqg03gIYOkrweVnbuhwXLjkFEOk1be+U+xyZYgPBjWELhA8ggDyt/+t+o2v+VmNp3Wxs7vKrdeOyaxs6fnYNRwok0Xz86N6ocekNUOdQ+Xz96a1zteyDG+vtblD85P9tNvfBFPcp+DEjjHoP/rGYDiI3PcZSgbmyGVdoDaALfFFD4YxX2nv8hwPKRiNoPHaZT9aun1pEBJIjJYlimSGbHNgHM2AKL1YchqpyAsJLrCcn5obJf/CpWOuIoL/7pBSqfu6jzBKzq2gcq21BVBtDbCsZKvISyExYvPQzhhYVzWpJlv7mSXqIB9CYoeDmpqOuTQ883yoWnAgp/NKDw7wUU/mBA4XsDCt/v6r8CCn8yyPggFjKhxNa/6Nvn/Fz8KAzg8G0ven8q+xx9tJoNoDNnOiVmSmOPySXaw5gOdHGI5f6zAo4tXguZsJK7Oqr2i3GHOAHH3+yZIIhJIMYDWbpoD4C9lNAEYqNZvOCCSn5RUOa/LetNQC0Mhhl/H8x7sm7BMg6rEl8Bld0Ghr4aLEOrki1gTxpIigor5G0Q6zoEzV38/IootCGNeQw8A+bvITisOEkqiK/PtIk3/n2v6Ef8W6/CXR69VyG9NxV/DB6vZgPo/Z74u4v7v7UZOo0HIMJOnIdj1spZfBSS+dfDSX5RXB4Q4w6x6tfr91fZVdYEUSVgHp3TId50LirLFk+CmJQeZQPQkuRvCCX4d8uxIIVY7lgre6I5Jh2HRR15WN7RD0zZBYapCfNXjQZQUXVYqeyG6KpjEOjkF5IBrGyJCB8rGTTf4iSEfQSxgbeniX5eYzIvzCIKP/cbQP/PHdb+yP8zRvseqZzH4GA1G0CMoonf1TdDV7a2OpFAdgLC8mkMAgzMcJ+/30ZZ1sCiqHYlAx3qfmH+nKboTsSSDCBBTBtYWXs5AKyE2BIOcN7xumCS29fLg78Rkwe8C1YquAvW8P5R3gJVXDz9C9aIrTNnUXQa2HpbY41y4flGeWhHKzt2AcBCAHgbANSLvoUAr6yq9/2qK94AVxR1BVx1+VXwuku64dwLvgFwfn9duLs6mrDOFk3YX881YJ5Rw2sAt34b5cK3G+XCxxvlwoZGubC2US6ojXJhSUDhHQGFJ1zpAYW/P6Dwfwwo/N+DMv9FUMm/4Dd1Tj825//Ba63Y/si9jpytYme7eFhEklSuY/CTaTWAdRNo2u7/2F5rIczXfwX1KwfnNTO+KSjzUyOvi/HkXS9eS5kXy/k7GA3H+34Dy7/QwPKfatGyr+0094jeigBXu2vRedP1YgmCGJ1rYVnHExBd8hxEkwMQTz19Udg4vaVRHvo9Lnwt6vj9ojwD6EVQxPd8/fy8i79Jc24AIZZ7Iaz0f6aVHXhrKzsATp+/q6r6zUEDeNUIA3jZJYvhzy78FJwz7wcYYf0VLd6VaWBGq4YMsPzpEDv5vSgbuD3Ojra3scN/1sYOw1gavyhENHh+eVztq4+pfaujLHtvU/Lk78RMX7UgrgtsgTSaAaQoYMXou7VnAD2uhKXawxBnR6FNOQJt6pOXhOXTm7FPpj9H9WwNoLj/49+Tcs+06Sf+IaIeuiKq9cEiY58729ea7hdIEMTYvBKSbBesUv4ROpXdsIB9DprUo9CoDb2iiRVuCSbyP/JH/Mbr4+eP+vkXVGeRy/cHWH5bWOm/cpm2B7r1nUKSUf2d3q+6HE3fFcMM4BWXvd0xga99D8Tkpw9UwCI2azXWFvyIxezZoMy/GFC4dJ2WvyCkZ0WelGTeBQnjznGFbV7GljPizZHT+LnNyM4NqoVgvTJ0+/Xy4KP+ByanHY2be1ghbTpI/Ou1awDngaKvBy31IXE/XmF+HhuTQ1DmmB+4ooHx+0R7lpcwycmnkwGFf7FR5nqb/vSrsAOFYv2DuC4wDxGbo1OOH0FUQJsY1bKElivvh5j2H9Ak/wxaEz+HWPJRjGC8Jc4yt8TZ0S9FlRO/CimnxzWA+NQYZKefibKBb8XUvg3zrSNBeN2H66LSo7CYPQRJfQPopgWGYYGlV/8TYMkAloQmEPXay9qx6a/IrySVyQCOUXQhPme5RyPqwOqYevTCmHoUoloGWow+aLewGnGzWOBxxrZp946h9LC5pCPl5TF5OU248C3U90JUPwgYCWnTMYLY97Yoy344pJz+HY1+q8jr5HO1awBB5Iev7klBOp0GxdwkcsMxco3nJ14PMTUzN84y1zlrQObjcZbBvoiH4izzeEzNPB1T+56KqX2PxtS+78bUvk/H1L73xNS+WEztOw9/DkbCsfOEam2DlL26eNwox48gKgA0Y5phihYmstELq4xbYYW+BVZpm6Bb3SIG1TPjLpCND8EKHZ8QBy4KyrwxKPMVAYVjHtTqRnnIrFcK3fVKoaVR5pe1KsdhmXEvdJu7oEvbAQl1ByTVbSBrG0A11hQNIKraufzKK4T8BtDTq98Qx5vpPRWwiM1a+bejfAbrawGFx1rUAejQ/k1E8lZZu2CVvQO6rW1iFJxp3SQKpsTINys9us5gFJxjGByZqTVi6wsjgl6UsNvYDth0ulXKvrw+yeV6Kf8/9dIgx23iJuZUIJPKegw21LIBdAovrFKVsDuyMGF7YwvHb3TuaOeYKkX81r2oGMU5fnMmIYIgJgU2LvYaGGuGWpRuKKAbqluVhRfralDNrf7h9eLpzsmFOgQRFeXkRS3U9oFkbRL9Bw3DEP38PKHpq00DeJXP/Dk5ga4BxKbbtIiX0QB6hUkhlvvvKMtGvcjEIv1hUIwtIpKnp2zQ0ybYtg4pFFbP2+akZwH7DWBJpQUQ2zNhKsQi9k2IKocALvtYXcTMdoTYyZ9THmBFXDdKLRtAfD2l6lvn/LTShtDI1zqavKrd0eSfh+2PiJMBJIgKAVuX6Lr+YqEJ1PViQ04x19RaJ1rI4M2QGY4UfRfg2DbJ2AEJE7VLbCVoqZvATJlOS5ei+TPEljMaQE/VzuVXXuXKMYLeljAWhrz2DXE0ygsrYBGbvXLykY4HWH5FRM2KsWxe5AIjE7p1szByeK6iSubuTA3gaAavZPRGLn7Fr915wbaBD0lrhQnsMnZCt7UDFrG7YX76qTkhnadxSkLZj+HsVkMtG0ArjYavdM76vx7P3A03eWNfA87P85/z1OaFqCpqO9zsGT1T00VOHn5EeUawaMQE61UAACAASURBVAC9XCbfkx92l+8xbaGRERNnMXUNoKEJ81cygCUTWHsG8KqiCUQDGFMzr6eE/vIs3iGWK0RZ9v/G1L5XYtQPZ4ziAwwaL0epMc2emJ6TmiID6PViw4eoUQwgTunBSKA3tUdKbYQFxl5oUR7FCPKlUZb9QljJldsIzTrhMY+y7EW46+GcNz4D6JrAWjSA3ms8MwNonZEB9I7XbDWAc2raRVQxw7ZlfPJu3LbV68i74ZtpR5ZjemYzlI0xEdeIROoGxn/ttVQo5qS525LlXuSqXSPbFHnNmps0/mSbfiIC0O72Grva7X02r4r6dF4NkrENOvV7oE15IhGQh57B14fNqTE/sFmhHMHpPLeiLHvEOX+q5bwhZpqU5xcwUFKM9Puj/46/wGAJSqRTFT1G9QdAasYAjpq3MI4B9L4miLG5RuSaBRT+eTKAM2MAcfpGk3zqe02Jxy/FaQfO4l29YJUmturACvpWuf/qZvXZg9hTEx8gqEhkeh8u4izzSbyGCWIsrFEr/1+8nV4ygMMjp0SZ8d60XqtHyHPmxTd0hOETn4vWECgygMR4XC2KZYJKvmfY4uJNS6EI4JQs1P6efk0av7N+xeFzFsv3iFYu1R65EUVT+o0ga7dBB/sctLJjrwxo/D8orWD6o8txljHIABJjUgdgpnvAfJEJ9G+BD9/6FgU3KaNYfU2UGX8+TspyyuDl1HrQU2udPxNbvb6cH/zcbQNBBpAYn8vdmcvZq8Kyr3+i2yyVDOCUmr9CkJ3+22apX8w5TRobwbCq/wFN100hzMtNaB8Q03Ni1lNzgyz3WWoUPe0G8CoygMR4WOmUawCHR/yE+bOx7dNW0VDea5eDLXbQY+CfoSEkyoy/yhUHUi81vgpLjK+DbG8Ub66XJO4ZwZEiiLGZJypNV+gPQEQdOOzftqQWH1O0UDtm+oWAwjUcbt+h3y+q0L3q3mrH30IJI4Er2a2wSP0sLEz/em6jXPjkdEfBZrEex+pfMoDEeKTQ7BVb5gwX3vvxYRSbzDvKQGkUntNonqiABdprdrnC2OO9Wefh5/h9p7WJ0+aEGZvAtG4Wxs+rfqXKHmI88CkPz62YmtlRAYta7UnJD4VYbmVEHRA3WzR/xSreGjCAXvW810YJK4XRBLazrwO8/jN1IZb7TNnfg9rUHWQAiYlI43Zuyig1ei820t4pxklG2cAbgzK/MSjzrQGF/01A4a0RNTsH/wyjg9WeolLleMOwM6i2mJL9Sot88pkW+SSPK9k/tbO+r7WxQ0uxyTE2O16i7nMWGCsNPaYjMoDEWOC5gYm/OE0lzjJXB2VeoNytqV2oAwrvRfOHN1TZ2ioif2j89BQ2d07PSCuN6cRrl1Rqo2SBZt8C3foHYJl2N6YXnBuU+UMVYJhqTdeQASQmIoXRPzcCiFN+MLoX0fsgomde06IO3BdSTueHj6XM8xY5dyTKBhbWQpFalTLPPfDt6NDnhiT+UW9mqKew5FQXNspDqAca5cL5OOUCGx2jAfSKQwjijAwgFoPI/PtkAKdukQ6x3AYv8ofmD1M5vMhfLRtAzG3EyT0J4zbR2zCiDlwYYrmfVIBpqolCIjyW2DQcjy0t0MSZtpGTrN1ii7eB8UsaGD/qdX4IjvAVYUl8no+ygV5qMzTNlJq8Ok1dRaNVaxMs1vZhRR2EldyuURcX9yO2XBBtF9TCF+HiD9d16ztF01ZPBDH++WeLhwaMIDfKBWuYAcT8tRGLz0iVe2Est/zHwGn54lybAZa/N6L2w5h92maokW55mSfuZcv0+yGsHru8UR76zfXJIacaGucIu+cXaeJzDBdrTy3qwNoO8z6RB05bdBVO2Wcpp4rt49AAum2/9o11//buX+JzlhuMqNkAPmhgx4KRbWSoTcy0GMC0uyAfxgX5r4IyL4ZoRxVzhG9mVDueXKbtEWObNHMNGUBiQvB8w7SBxdpeiCjHLgix3G+8KmBRCTyO+SMD6H+CdiLy4ilayR2KqP0X4naL0zB5dp9faAIX6nvxgXZBs346H1QLosKc+gSeufn1GcDfRdWjFyas3WJBJiqcSjGAdo/I9Y6zTLP/oX7CB1yW/zZOKULz6E3cIgM4cwbwQxO+QfJQ0Qg2yc/+Z1jOisHtTpsJigASE51/tigcYsYGWKndA1G1/++LBnCC6B8ZQPcYKHm/ATwVZdm/6jTuEzk3sz1CI7a7rZtBMTeIiSFh5fEtor0QmkCKIE+4ABen8rhRwIDCN2IUhwxglVB5BnD3SzSAeRz3SAawPAbwhxO9Qc0q5wGp4EQBZZ6vT/Lzo3IGuvXdNdFnjJhe/P0jFX0H5gJeEFTyv/ZvP5EBHPcG6fRLVPK8geX52438TQG7D7pSO2fVLNGx8HIe8RzDTgXXL/vvc+qlwR+HdM7rJdoCnjD654vEB1numYg68OrillyK2nRUPJVnAL/wEg0gj6l9cTKA5TGAB8/oBuG9oTLn9Un+JjKAxJmff24TcSsNkn6nlyPyt2MZwJHfn/X5W27DbDR/11r5H156C5/zpnWHYEnvDjAtfdafiJ4BFPc1406IqIehXin8VaNceE7kLlMO4IQLsJDCeUQd2OG15zDttfSAUQ1UngH895dqAOP64eWiuDTdS1vAM2wAf/xSDGBIOc3DcvZS2gImzvz8K02OUYwtomI1og6cH1Zyj5MBfEkG8IW3WyfffuW6Y3DNun3QuXqjuKZnO575E7mA5hZYqO2HMDsOTfKpD5IBPLMF2F2on4ypR1+BUxtwMffGdxEVTuUZwH96SQ/waoFHlQP1SuoucQ1TDuDMGsB/nvAG4YvORNTsk1QEQrwU8Hwrjg40bwHV3Comg8SU7ILRikBmfQTQlx9ZitAMoraF9X6Yn7pHmD81vQbSaUrB8Mwfnl+6dYt4yMBpKBHl2MsC8lB2oq3P2R4h9BlACfv+4SIuFmHXBBIVTuUZwJUvxQBi5f58IzMXu4tQBHDm28CEQix3xu0Bolrfjm5jO7WBIc4qRwvzANPejQL7Air5uyd68JiVC7K7KAuxPA+xk49E1f6X41xlRV/vHkeLDKDfAPpSDZyq831oAjvCSm5WG8AJryMlj1Xl+6NsQAwFwHGg3oJOBrAKqBQDmCpOfJoblPmhM7l/i44GSX7rfPkwyPado7SBoQj0tDeCblOP34PtErwqw2JSsJt3VK9yoQbGj8XUzEVirx4X9ZQpRBATGsBU6QEEm4djLiBOl6lXhl4bkvlvRWNQVy8yQl4RRC0v0L7P8Zpz5N5AGX+hTT3+1x36PZDQPgCmsQbSBs7mdjTrGXWhK93fYkr2k6L32BjnV7nf/+k+txpc+R8o/K87JOefiSnZt6zSHhDReUvk/lnFhZ2obANWbmzDBts0hZL6dmiRHoF6Kf/OoMxPNuM9TCoINSWdj+5gCfF5KMG/HWh/7pzowkegY+UG6EomQOp2hJ+jiGnlamhZ8bN5bYx/PZQc4k3SUOnJ2DWBaP4C6ulshJ14m3/WqBdVJIiXEgFEA4jbdAv0fdi8F1rk3OKwxPNoAt0O8bPWAHqv2zOA+HWLxDfGE33QzbY51517s7VNXWjWM+5Cew20K5lXhCX+uL8B7WyJMI80gP7rCj/H6GhMybIOdb8wfxiddyIwjvkjA3gGkAEE736EuxPY7xWjyVHphXe1yrwvIDnDJDwjKMwfe6bQqhz/1wXSkfNjCx6BRYu/BitW/S0kEl1kAGeWq6Ez0QcdGp/bksz3BOShA34DGJT5rwMKvyvCTrwa87bwJoF5XGIUHC7mFIEgJsA/NhDlz9Xq1O4XN4uQzDc5I4JKUejZ2AvQm5Xpvf5wkn+nqX3onI7Oo6Ab/yAWZpy+UzKB9AA2PtfAQiUDYYk3hOT86eIOx4iJBLUqX2+/4mv2b31H2cAni5E/a51jAIsFII6ICZjtBtAsPZAa5mqRQrBSuQ/mLzsOTQvz5wSSvLte5p9qlPlDjTL/cqM8tK2VHXsH5uniTlDnig2wauV7oatbLxrARAKjf11CxLRyOSQSe6Gj+xAskvtEXlZM7bskpva9I672XdXO+uZgYjBG/rwnRNvqJQNInDF+8ycMoJunhZ8zY5OYNxpl2Tlh5eTXQ/LgiyaEBGfBIu03JI4JFt87GpFOv2ZJ5wCsWr4fFGk96LpezL8lA3gmXAkY3YorWQgrJ1lQGSx455e3LTwbzi/RwcH/gOH82S9jauZ82biraPb8xR+eCSQmYJYbQLN4P3J2JCxDA5VtgK6V34GlK/uhTXkMWtUj0KYcEYWnOBIUo4RYhyAKUhNdjvFzhebP+x4ZwGlnHuj6BtD1naAaO4EZO0GyHOHn+D1F3yUWaify55g/igASZ0oxOd/bBvbMoGWDbt8Ecmo9dJh7IKL2XxRg+UeDyuDsMIC+PFtR6CF7EVCxUP8xqOT/Mqr2wwr5HnFDNbQbwdINMAxH+DmKmOD+Zm6EVbo4vyDA8tu886tF5bxZnl2NxH2zpLMBlr88quEIrp3DjZ+7BeyJmIBZbgANyxYyTbtoBDFPWdU2g6TuFr05UZKxSzRql4xtoFi3gZa6SaQGOYavJGEEuxMgd2EuoFTul1f74KLs5XugvEqcXssRLtT+Xm5CXj4XTQIhJjy/nGIhpxCkZAC9PFIrbQkTiHNtI2r/pWHl5JHZZgC9fD93cX4+rJxcgOZvib4PkvptYJha0fB5BtATMT5YLa1azvnVovXPCbGTd2PRG+YjYZL6bDKA7jn227By8i/REOMxwXGCIw2gqDB3RUwAGUDwDKC3K+FFBXFUrNeiyUsZS9k62LZeXBOw0KNkAEs5gHKXJDSHTsDpBSu+cBH2y6kCc+RvIeOZPmEKXTNIEONhpvBi18cwgLaT15ZaA8xeD53mHtwOvjIo82NnvLBV+wI9vA/icwGWXyYif/p9oJqbQdfXgGFYrkaaQFqgJ76/OeeXF2le1PObuUHG76vph4uxdSrA8gE0fx3mfc64N3ut+/A/3ADeYBlCtABPwCw3gKZr9rAzAcr7WsjSfbs/jo8o+gcMDNg2dCUkIW/b1zGCkiuqAp52PNNn9jjyG0D86O8j6LWeIANIvFQD6G8D40WRS9Fn51xDE+jkBA68JaScfmLURcxXoV4LBtBnAp8NsdzCiBv5c/qx9fjM33ADqJsoMoAT4e8rhucX9gd819ID5wTZ6X+bZSbw9yHldFNEzYrIH5q/4RW/pTxAMoAvATKAYA8zgBgR9BtAxzsUAwBFA+joxQbQMX/UBmammSVPLERlgUnDKNzmVI3VkFBvg6XsXmxS/rqgzH80rFpT5DENCnkmsErMXVFNrsSfyU7bpZDMT4YkHo8pA7DC2CO2LC17jTAtY0LX6xnRc0NaqHd1Gnp6bwE9fQessr8IEevJuU06/9hIEzjWZJpK1ZjtbYY3uc6GJP6XUeUEdOj3gmJuEPm3uACPBUb+zij6N8sNEPESzxeCIAgPf26bkzdiQ9LYDPOVh6ApcXReWMk9WCsGcNifFatR80db5Nzb4vKAqFjFyJ+IWKUNMoBTQM/qXqHe3l64oQc/3gB6ejssSX0b2swnIcRy7w7KfGiY8fNNYqkKA+hvcO1r9uzkmPJHg+z05Wj+lk5HH1cygARBEMTZPDMO2+J0k4k1cy10axtgsXwPRNSBOQGFbw4ofNBvnKplgR72e3q/t7s4N7HCQyGZX4Tmr0tzc/5Sa91CLGfbkpjc+YWGz68bem6Anp73ChMoIoHqAAQUvqyB8d8Xe+ZV0fk18qHCb/7qVf7Zd2n8gqB+AjrMB4BZW0UPzint4kAGkCAIgpiMAcR8Ns0wRa87XXcigZK5BRYZ+wHzlkLK6VBA4cW8wGpZoIdtySl5rxP+YFQ/tqVdOzxnATviRP5MJyfLTPeAmcZqfDKA02MAMRJ4QykS6PShhLCSuyIk8+9U2/nlN3+OARzkQfXkyYjar0f0PggbGYhbD4NkbxVFHtjKy2vDRAaQIAiCmHncyIFTzOAWNui6MIEo/Fo1bhRbolgR60ZqXhmU+WeDSr7gRTladM6b3HYe3seKjgDKL/x0vnHsXV3W/aIvlui3aW0E014LVsoxf54BRBGTO7+87V//FrBnBHt63g1meit0aXtgaaIfFkp8bljiHwzK/PlqMYD+Bs+YGhFg+e/HzON/sVT9HHQb26Hb3OU03TVvgZTZ+6I2TFN1HVMOIEEQBHFmuIsGFn8U5bY2KVa8Gprbx22jiNTE1AxOqsGITUOI5X4oiioq0PSNagCV/LNh5eStC+yBuUuMvWJupr8CGrd9PfPnGEDHBBKTNIC+IhAv+ueoF27oTUNv2gbTWA+StBdWJA+L0XERduItIeX5r1eDAXRMoMglfTrEThpw6SfqsMoXCz0wt7bYustMQ48rfxXmpCEDSBAEQZwNlsGEdEtzI4EWWLpVLA5Bc6Sn14Bsb3Sn1OyGTuMBbBUzJyjzVEAqPFXhBvC5gMI/GlTyl2F/vw79HvFarPQtkE6nIZ22iwUfw/tx0iSGSSMMoO0q7UYBHQPoRQWdtlZrhAlk2g7A0Wid+uehxYk4dwZl/li5z6FxpeSfDbD8PzSw/CvDej8ssfdAt7Ve5NHahtd2o9R/zW8Ip6SPKxlAgiAIYjoM4EhThGLWZjGfGiOCLckDL4sox4xm9dmDjXJhxrftxtoqDCj8hRDL3R1Rs2/CqGVcPQhLtX2u+Uu55i9dLPbwVGrG7kxnICbHRAYQe5V5Te+xCh2PuWxtFbmnUQ0jzpk5UZZNhFjuUEVtCyv5P4XYyY9E1OxlONIN8/3arX2QSG8EPWWLNAosqCoZQEf+fpyoSUMGkCAIgpg55gHAlQBwDSTMXdBp3CfGfDWw/PIGxvcFFD4UHNEfbbrM3/WYd6VzHsStaGc7+kiQ8fcHNP7661ceAoB2ALja1eXu705Uy/klm7tFDqp7fnU3MP6dgMILI4t7zlb+qt3RVC8NFvtH4jnXlOSPBpX8e5tN/oqQchQA4i8+v6j/HjFT1FEOKEEQZQKjaRhVW2juE1EQjIbE1L5L4mrfzVGW/UFYyRWm3QBqJ59uUQf+Na4dicClH61r6PwxNHT/DFoSD7qLMlGtYJ4mzsvFvDo8t1xhVPf2iJrNhpXctJpAnBUdZLlszPjVzvn64+8Idz0Czd2/gLD8C4gmv0znF1Fe6sgAEgRRJnDbVMx6tTdDwtotcgRlc6eQUz2cvSSg8K6Awj8SUPjPMTo4ctrDWegPAYXvDyj876+X8++E13+6rnXFv8ByeSt0SBtgaeL90CHfBsulvwGA8+jcqGLEtry9RrTpwWggnl9OLqpzfkVZ9uqQzG8Iyfz+kMyfLlXlnpnGeLjAvNb7Awq/KWTya+HST9UtYntguXI7dOnbYJV6O6xkd0BS20QRZaK81JEBJAiiTDi5c6kRc02d6lo2rHq4qAtjauZdMTXTFVMz74upmU/E1MznY2pmb0zNPBxTMz919a2YmvlSTM38a0zNfCimZm6KqZm2mJq51P/zAl0/g9CKL8HS7r8XMyyTUjcwloREciXISjedF1WOMxe9dF6VzjWnOn2pth/iIsezqIvjal84rval42rfrrjad29c7ftKXO17OK72/TSu9j3qfvxWXO37Wlztuz+m9u2MqX3pmNrXGlP7LsWcUU8tyqPQpnwdVrIPANM10AwVNEMHWVbBNDFHlAZwEWWkjgwgQRBlwm/4hisFKWttMXJztpKMXeOqM7kJVkq3giT1ApN0kCQFJEkCSU6AIiXovKix86vXk+WcX8zYIPo5jiUvGj2WEuaOcYXRvm72QVC01aJPJtOZkKZpoGlGuQ8PMdupIwNIEEQZwNgHLsS4IKdThpAXEXQW7Z5Jy6uWHFWWDbIsA0NJqlDRALoiqptir0Zs1ZM2HBOI55zlnGP+ubqjaWSV90iZKXNs2bYT9dM0MFTNNYBa8XsogigrdWQACYIolwF0IzO4OFtCbg89NG+efFvEL1Vew9yxJCmyEJOTQhj5IwNYO5Ta8zjnV+kBw3lAmOj8mOj8QpM3nphmCInxiKohon6e+dM0Vu7DQ8x26sgAEgRRJrytOW+BLvYLTPUITcb8nZkBVIUBlBWfAZQTkJQlIaK2DKC/RyMZQGLWU0cGkCAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiBqH2pEOilSlgkpWy8Jv7ZwCkVaqDRWb3Th3x1L2ChbNOTGxtye3Obc3ui+qofOP4IgCIIoA7QAT68BFBMvJmcAzTSqZADxIxlAgiAIgiDOHjKAk8IZaVcygfh5cdSd5RjA8YR/Zzx5I/mGRQHTpVF7VQ+dfwRBEARRBmgBnhSlucbmCNlgWjcDszaDbO4eU5Kxa0wp5iYw7bXDDB8ZQIIgCIIgJg8ZwElhpkww0ey58htCxdwAS/T9EGeZkZobZ5mL4ixz8QLt6Btbux+dF1MOiz/Dj54Wa/uAWRuLxs8zgX4zWPXQ+UcQBEEQZYAW4EmBpk+zbwbJ2gTd5i5ImE70LmHugA79Xoiy7JVBmfcEZf6xoMy/HZT5b4Iy5341JvM8IBWeCUiFvoBU+FpAKrw/IBWaI8qxl3eae0CydkLC3gkJazdI5l0g25tBT68BK21B1UPnH0EQBEGUAVqAJ20A0fwt1vZCm3rAi979ZUw5fEdEOfaLEMvxgMLHVL2U50HGeaNceJGa5FO5iJq9J6r1xSN635yInoEW/Si0mw+DlFoPVpqqgAmCIAiCOBvIAJ4F8wDgSgC4RkT8MNIXUZ6AgDwUaUoW/qMpyQsBqYBRvXHNH+q6xAs8pDsGEM3gSBMYYHmhBpY/Vq/ytdep/GUh/QQstfaAnFoPAOdV93lP5x9BEARBEJWGV41bzPGz0qI4YwnbD17eXpRl3x5Wcj8YubU7lfKZxseC7LQMF3+ybqnxTWDmbU7rGTMtJFrLYH6gWz1MEARBEARBTMIAYq6fYmyBTu1+aJOPQ1OycH5Q5puDMn9+Os3fMCMoFbyPD7dIj7+hU78HmLEBLHstpN2eg2QACYIgCIIgJoHXkLmY66fuh4j8JITkU9c0JQuZmTJ+nlp0zpuY83lYyf0mxvqXLdX2gWptHN5gulb6BBIEQRAEQcw0aP50y6ny7dDvF+YvIPGFAanwvwF5aEbNnxcB9AygkJIvRFn2/SuMPcIEOpFAMoAEQRAEQRBnDY5zQ/O3UNsPrcpxCCmn00GZD3k5eTNtAEcTVhpH1Ow27DlY7BtIOYAEQRAEQRBnwzxIWFtgiXE/hNlxaJQLclDmeX9RRrnNn/e7NDDOW7Tsh7BvIJpAPbWOikAIgiAIgiBeOlfCAn0/hNQnoZGdam+UC88VTZfbnqXc5i+o5IWEGXUigTct0feBbG+sjUkhBEEQBEEQM8s1EGFHoF7mV9crhVON/pw/pTIMYEguGUAhln8hombDXiTQ6VlIEARBEARBFPFapziFE1Zxxi6OWcPxa/P1o+cGGf+JaMycnHrD50USx9JZmUKW+1WUZS9xcgI3i9fkvEZ8fZZ4bc5rrYFRcgRBEARBEGdnAL3+eWiOUqCn1oot1A5zD0S149tH9uCrdAPo6rNRloVV+n2gmxshZa0pGkChtEEGkCAIgiCI2cgcSNmrHaVKBhDN3yJjH0TU7F80yacG0VBh65Vh7Vcq3wAWWuSTbYukx6FL2StMoD8KiAYQI4EEQRAEQRCz1AD2FA0gSrJ2QkztgwDLfwm3fb3ee81qVRlAHpbyB2Ldg3OXSo8CM3a6W8HWsK1ggiAIgiCIWYc/Py6dMkRkTLK2owFsCCi8MNWGbyYNYMgxgSvb2UGQTTSAaP5oUghBEARBELMcL+qH5s+ybwRmrwesoI2o2S/PRJ+/6TSArn4QV/teZAAx7xEjnwRBEARBELMO3Ab1qmKxbQrm/rVo2YtDLPfCdJu/GTKAPM4yDaMZQBRBEARBEMSsNoCY+xfV+qCB8XfP1JSPmTCAUTbwj53GfcLgerOCyQASBEEQBDFrcfr+OSYwYW/3DOCPK2XM21SoST7VH1b6YYGyF2RtA1i6BZZugGEYkz+AdROIIAiCIAii0ii1fykawIsCijPvt1aEVcz1Uv7trdJBSKg7hAFE80cGkCAIgiCIWV0E4hnAmHZwiZivi1W0Uk0ZwL8lA0gQBEEQBOEzgF4OYFw9uN0zgLUi1wB+hgwgQRAEQRAEAKzuSUFv2gbbtiGpowHs2ydMk+KoFswfNrNu0viPo8oh2gImCIIgCIJA82fZa0SFbId+L0RZ9lFhnKawCrfcBhCnmAQUfhIu/mgd5QASBEEQBDHrSVkmMPuDsMj+GrSYj0GInfytME+4DVwDW8HeDGOMZsa1IxeSASQIgiAIYtZjWjokrNuhzXgEmvTBc4NKvqYqgMOaEwUMMmEALyYDWEFQqxyCIIjKxTCwZYYFumkMk/d9bKVhmqbIIUM5bUVK0i1NyDAdYcQJTYeBkSddA7vH9iktlE73Qjqdht5Uutwvv+bB467YO2AxOwTRJL8w5BonrAD2Pq9mieifuw0c145chQYQz1vsA4giphecLS0kCo1KI/isdArMdAr0tAlmCu8fntz7iGVCynI+t610UfhvTbP0Pfw5KH8xk1PV7nyfIAiCmLQBdEwgGj7VuBGS+gbo0naAbN8JCXOX+HyVug0ka/cwdRvbi0rq20EytoFkfBA0c424QTumb7gBdEwgGcCZAI+7bm+CLuXbsFh6am6L9HzNGUDPBEYSB64mA1gOA6gVDSAaOGHiXAOI5s8xgDaY1s2gmBsgYe4AyfC0a5i62TbQUh9yPtd3On/X2gC6fZPPRJaMJEEQBHGWOJESL9rnRE5k7TZYwL4OrfKj0JI8MK9VOrigjR3eHNf+f3v3AhxXdd4B/LNToJWbe+N4TgAAFy1JREFUJpS0CVPsADOhHpK2SZB0V+uVdrWyHFnGli1be+89971rORMw0JnOtNOAX2D8TJs0mWTyalMgGJKmNM2kGMdhOkkzbZlST4mxhDBGXoQJk9ACkRViS6vT+c7dK62EhMGwu1rp/5s5Iyw/sLTXd//3O+d85+lvp62BH6WtgcfT1sBP0tbA99LWwMG01Z9JWwPvS1v9lNKfoNXiYTKd7eTZngp6pSMKg2EA7MXrVmbqex7cRq53N/XYD1Ha+Nm5+dL/j4faASzC/241+t6HAFhZUUUuF0wGQD8bVgDVz/lc7Qsreqa3gzqtw5QWT1Kr9SS1ir73tIq+xrTZ15E2+3rSZl/7KmfgYy09T9SlzT7i+0mr20er/UfUQwzPGORyfO8I7x88kwAAABeJA5/j3EQZewdttPdTxrqb1ol7qFk/9bEbMmP3NBrjw42GlPUZKW/oGZ9oHzLRRkRMjLEmIR9uEuM30vu+vGideR9lrL3kePvJ93ZQLrhN3bCnBkBMAZdbON3eS7nsJ8n0Pktt5qn/mwhQ5jzaBayPn1/0gS+pXcCYAq6c6UtCogqgOoIw2ErC3Uams5905yB12Q9Q0jzdpBljX9CMsf5GY1y9fqWjGOgLmj5+rNEY26OJ0euT9ila7xwi4R4gw99DIrijeObz5gp+pQAA80zgBqSLbdRuPELcRy1t9l3daj77T03GWalu0NMC3+sC4PQ3ZDEq4+LVx1PWoPYJ8wSt158kXT9MQXa3WttTuv4PAbD8cgGvy8qqqkyPf4BS9sDjb/T61WoAjBny+VTxKDgEwMqJ1vyVBj/+HA/L20lr7CPce5LaxMCGlBg6FhcjU1+/C9xfiveTIymRb+I/J22foE73sPqzEQABAC5aHRn2Nlor7qek+Rxp+rgbNwpn40bYIiS8ARdmHyUhIlpPFv7cKH8sJIzR3Z2WfNfqnmdoo/8tMjffSW7utpIpYazhqVgAzGWLAbD/3gYxLwPgjxEAKy8KfvyAwR85lPn+rWR5d9J650FKi8GlcWP0yGzV5jcTAGMmj8J4zCx8TROj705ag9TtHFIhkO9hAADwli2jDuMw0RVfXRQ3zh7kELfC5MFvquF4wzffaZWkiRBYDI584242z39P6/n5b8XdU5TOHqbM5h1TNoNAeZVOzfGmnZTd/xfzoQH0DAHwAAJg5UW7fcM1f2H1j8Nfp3OUm46vbDaGX0oYozJ6qOSPUx4wLzTDoPpVqgAYjf6EOfyhtBhU1UWiq6rwVQMA1Cx+al5GRO3UYgxSzCx8noNfU2Zchbj4W2gUPFMALA2BjeZ52WifP6L1yktasieoJ7eX/N6A/F4EwEqI2mXwKAbAlTO9XvMgAG7gs4B5tzrvZI8GlNEimtjtO7Hmz9+pKn9JK78xZhbOcdhL6IWLCoDqNS7+npIAyOPFuFH445Q1SERtxRCISiAAwIwVIN6lF46smjrhJ/Sklae4GPmzsr05F0NgAw9r9Gsp5wRlcneTn3PJDRyyXQevVpmp9hvFscnbT/Hu45c1mfKXsZ6CCvwXfB2nvvG+flQ5APIGJc2U4x/vHv1Am/2MCrl+jvvEhbtToYwWUdjnr9iSRe3ydY5Q0hpcmTCHz00GvrK89mfiYnhZs3ua2v3Dqr0M9yv1gpwaWS8c78TX+IYDAKCWAqDhHVAtFjRTNsQMeb6sFZqSp/mUNWiss/9e9QkM+3phDWC5Rf3SuBfbJn8vpTL9tMKQ31FT/Zas+QDI11aT8aufJI3nqdN+VJ15HAVAHlBefF3Z2U+p8Ndl38/hb6kmRv83DH9lfu1F4bEb3LFLmr3j1OPdXRIAexEAAQAme3JFQTAMgG1W/7tiZuFY2d+gi5tF+M2g2Rh5cZWVf+9a+4jqNWjbAi9QmfGJC9w4NwqAafMpivVIl6dN50MA5L9Dq/Xclg3ut0n4d5IXbC2GP5wUUQl8Xen+7aq/X6v5LCXMV4+qNXuVCP+8xMQe2550j9Mm/y5yA6tY7S6eLPJOPGCiAggANR0AeYdeNqveHMM1Ood4gbZbiTfwiQCoS5nISBnPjO9eZfSRbu+mwMMUcLlFJyeEb9TbaLV4hGLdJ+uajLMvvaldwHM8AGrG2Gsdwan38tQvtxgKH3QQACuFryuuvnFz5yb9/Ia42vBRmQCohjX+q2Z7cOla955wZsG/eSL8cQPqtw0BEABq1eTuvCxZ/nbVQ4vbKCTM4Z9WZBNASUhQJ1D0FF5eafYtyTi71TFSUF7R+j8ednALZdydtNZ5gJLW0G7VwLvGA2DMLHyDlzNwACxtSIwp4MqYrCz3UVNm/Bhv+Ag3fVRok5HFvUrP/k3KPEOd4lEy3V0qAG72AtrsebT47X6BCIAAUKuiqbBw6ncf8UYMTYzWV2KNzvQAyIOnHldaP7O6re+SMPcS0e9U+1s0r3Hwc7JRCMyRrTaDHOSG0FfGhPx1LQfAhDlyLiXy1/DGA177N/VUCmwCqWQAbBVPJZoyUia40l/Bc6YbjTE+heiXDZtkXZt5Sp04wpU/Dn8IgACwoEVTwDyKbUBIE4U9E+0YynyDjnYBcvWPh1q0v0l+J90paX0Xt3G4vtrfonn/Bq1GsQro+p7aDZx0BqjRkn99wWngORwAUyL/xS7vmyr8edmbiqEPAbCSeKq1x9tLSeupLzbOdO2U+RrgzUyNm8ZkkykzrfoA6e5+te41Gm8bKoAAUKs4+Hm5LSVHgakA+G9lbM8wcwAshkB1vNwm+Qu67LlFnV2SiOqr/S1acAFQ93dQh3uUWpzn3x0XI0MXHf4qEQBn//+8krb6r9T9fRMtX6K1f1EFkHe9QznVqd2/a537qUWcfvp1R0dWoOF41Lu0MVP4Om9w0t29CIAAACzqi8Wjx9uv2r/EDPlq2d+4LxQMe+RV7foZIvoIXqgqNgJP2c91c8DiSsqUB4LSBrzVuk7U36G4qWBa8NRMafO1THQdrp+qWUar7SOUNE9fwWeHc1Pu6a/hWz1L/C3fRyYbS5/g64E7HJQuBQAAWLAmA2BQDIADv1t6Y65iCEy2iQEiWl7tb9ECtpxajT5aYclDPI02EQBLT2yo5oPCLAEwLoYf4Cbm3Mw8DLJQreuHq26aPq5x+KtGAGzcdF426WN8bOW5du/pd6nNQHw+MQIgACx0MwTAD86RANiFAFhty2ml/gxpG2RdXJf/HYXAKPzNiaPiuNonpoyTSSt/eZd7iIxgJ44AmxsBcN0cCICy3Xv69xEAAQBmD4DXzpEAmEEArLarqTPzKLX2nCFt49mljZnCixNVNqOyuzlnG6XhLyZGXkha+Wu58mcEfOIHpvjmSADMVCsAlp4tnLb6r0UABACYPQC+P7ox12eq+ua+FgGw2n6bhHMXbbC+Ra368/xG/nHNkb+oN8dkszUHAqAKozz9O8rX6ytJa+hPeMMBn/saHiX4DuzyhLdhOfG/YU0f71L3lOoHwGUIgAAAswTAhnWP/0ZjpnCuyap6BbABAbD6sl6OhLuLOi21mJ80e/j6enPsTLTDsorXx0QIjIthrvzVc+WPw190sglf01BNy6ll03EOgKnZXr8KB8DLEQABAGavAPIu4H4+BYJDYJXe2MdjhrwcAbD6uGmu53+KhHc78XFaK8QpqjfHrq3XC33c1qPaAVAz5bGklb8qWvPHlT8Of9zcmofq0wZVnQJuzBSWcvVvprOlKxgAX544EQabQAAASB2LNBkA91Ki5zhppvxbvvnekBmr9Jt5eNMWI33YxTk3RA1zg8Ah07+dVprfV70i45kn6hLm4FfjYqRq4S8uRr6RtIaWhGv+dqo1f1HlLwyAOQTAOdAGhq74+qK4/quXGjNvLfy9MwEwDIExs/AjBEAAgGmd+qPBAbBFP0H1Gak3iILktV7lngaO1pDx/6dBhB+T1tDn1npc0dmOXZxzym8S0VXF3no82ikl8ptihnyhtCFz6brA6ISXmcZMQUB9rqS3YBOf5JCRsskOm4Q3ZgpcSXpWE4X2hMknxbQXW71w78IZTmiAKqpTwbzLfZBS5pl/nC38lfv+Urwe7+TZDa4AqpOP1BGYaAQOAAt8io8Hr5vi9VMd4ge0Qh+s08Qrv6wX58verX+mAJiyTsb4VBLs4pzrltEa+yilxNCSmBjZronC8Iyv8YUCIO/inSUA8lDBj6cPxchLrc6ZHdr6Y3VchVxlPYI+f3Mc/xvmf8tp66Q1UwAs570lGgnjNZkSQx8trRRHJ8IAACxYkxVAT62fEu4OWmfeRwnz1Oc0UWywW9YAONlQuPim8FjKHlBvGgiAc10dCf9OWus9SAknT/WWfH+DkDs1U+bf9DXAO3jF6EQInKlC1GiP5+vNsT9ttvNLuJrEVRwjOEjCR5+/uY6rbHwcX9oaWBIz5MsTxz5OqxSXc6RE/th650F1vXjB1pLjABEAAWABiwKgV/zI1UDd3kMtxhNLG42xkbLfoEunDsUIT/+umXhSz26u9rcHLoAX1PNr1e4foWa3n5LOAKWsk4vT1smOpDX0jbj52uk3XOMVtXEpqQKG10F+IGX370tafbE2r39xi/gprfZ+QLq7nTwvUP9fz0Obl9oIgHuiIyZ3Rw98lWohxNdV2uo31BFwJZs/csFmNQAAaKHvAubNIBwAc7mcemJPWn2kicIdlQiA0Zt/0hr6fvikfqd6UscT+tyXC7LkBzeRkb2DeoI91BPsU9XbHv8zau0Xb+bRTHm1ZkpLM+UOzZR/p5nyh5opH9dE4b9iZuFozCwcjhnyK5op/7xByO5ma+gaXgPK1yGvS9Xdu9XgTSiOf/OUdaswt/G/4bACqALge5rE+Iu8jjNhchuhigTAx1LOicXTd//ydcsDAGDBmhIAeUew51HG3U4d7lFqdYYuiYuR/yj3E3qx8vPztHXySsP9jHoyj27WMLflAl+NbM5V1Z5ofRVXb3nKjau5/OY/22grGfxjriB+wg1P8shm/YldyOFOZG9K+EMAnPv43zBfB+Fa0TzFxbA6FYQ395SuAy3HiIuRXyetwY92uEfU32EyAPI1iwAIAAtc1DaDwx83/d2S20K+f6uaaltnHeIF/ktjhny+zAHw1zFDJrnvn5qqwRRNzVAhTY2wslK6wN4Ptqo3Xq6+zD72keHtI8Pfo4b6cbCTvOxNUwLg9PDH1ywaPc99/CDgBbeS5e2kbofvJ3lqEuNfnulUkHd6pER+a5f3TRLBHeHavywCIADAlAAYvblyAIwGV+Ecf1f05P7hhDnyQuwiF2+/4a83C6/FxUhXSgzRGvtREj5XfrBGp1Zw1S8Kf6VTbFNCIbfdmGlMLMb3JyuJU35/GACj6zNapxr+d1i5hrktqgbz/YRDIJ8o0+YMXRIzXn04ZpUnBHJlMbFJ/lW7foZ4RoGvo9IHE1QAAQAuqI6Eu4022PdR0nz2Ws0YO86LtxOZC/Rxiyp7IlrwzR+nhcFw88eLTWK8pdV6jja43yYruIv83C2Uy4VrEXkAQO2aqSLMa0Ob7fxlDaLwUOnmn4tpC7NChCNRHHxGdYsud9NlpxetunGMiOqr/S0AAKg9i4los+epY8BW24epRZxe0myMfCmuy0IUAGe7eavPTQTAqVXAhMm7PAf/OW2fuLLdforWOj9U4S+X66Vgc04NBECA+RUAed0dV4l5kxev80w4+cUxa3iHJgpjUQ/QtxoCeS2hGhz+xNlXm/VTerL7FK3sfI3WrTtFRNdX+1sAAFCrATA8C1b3t9GN7v2UtIZ4V2e9Zsp/KW3eHN24S6uDqqXHtKa/MUP+e9LKd3R595Ie7CbTPxhW/rK3hQGwOHLFAQC1Sy0LKBk8FcxrjDkETuwSF4UbNFP+58VUApsy41LTxwuaMXaoRZz+g9XGPbTR3k8Z6/Okm3cT0e9U+1sAAFC7AZB7A/JawZ5gG3U4jxI3auaTGFJ2/3Up6+SupDjzWMIcGeMqXzRFrAJgeJMeTxjn/iclhg62iYGP8XFMnc4REsGn1c7RsNLXO1n9mxYCAWA+BcBwfW9YCSzdJT7AD5cdcTHyPc2U599MCEyYIy+3GINfaTWe/HDKfJJW2Q9Tt3M7Wb5Ljm+TGzjV/vIBAGo/APLCezu4WVUCe7z9pLv7SXcOqtFlP0CtxunL4pmxj8Qz4yubMuMbNH18ZaMhP6plZF3SeEH9Gt3lnm571ZFzTvDJcAPK5mBq8CtOAUcDAGrX5KaeySngKAjymkDH3UnCPaA2a6gzg4XqG3m5ZsoNmin3xgz5UMyQ/xoz5OMxQx6NGfK+mCE/HTNkS0rkL+0U91K3dRd127tok/OXZLifJOE5ZLuWGgAA8LbPCg6rgNGu4XC3cK8awt1FN4rDtNJ8klaafZQujlbBH5+mTvGoOmKutKfbxJ81QwAMN4GEAwBqV9gbMtzRHVX/whEGwl6fR/i5sCJ4RFUEizMMYa9IMTDj4Oohh74o7DnqI4c/BEAAgHcsAIbtOJySEbWN6SXPu0XtFjbViQ3FKp8zOTj88TrCmQNgtOFjagDckvXU4CokANQmXzUID5uEl7Z3Kq0K9ga+GnyiDLeB4qPjJgf3iTww4+DAyBW/KPQ5jkOe7aggKHyThGcRLar2dwAAYB4EwOyUADitd+BESCxWCH1P7SDmMf3zpQEw2u1bug4QARBgYQTA0h6QYR/IyYphaS/J2YbtehMjCoCeE1YEEQABAKqEq3eLq/B7AQBQ/QMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB5a9EFBgAAAADMMwiAAAAAAAsMAiAAAADAAoMACAAAALDAIAACAAAALDAIgAAAAAALDAIgAAAAwAKDAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWwaNoAAAAAgNrn57JqZLPhiH7Mw+Ox2Q8Hfy67eXIUfw0AAAAA1BgOfVZuK3Vt2U5rtuyj7uw+6gnCsTG7Rw3+b90/QMLfSV5wKwIgAAAAQC3LBT6t791Oy287TB+89QQ1ZPspZfdT0j1+TdI9viJl99+QtgaWtIt+WmsdVSFQVf+KlUAAAAAAqMEAuLZ3D119y3H6vZtHF3/Ek1s0UTjZYJ2TPDRTypghzyd0+Q9tZv5D691vkvC3kxdsxRQwAAAAQK1OAW/M7iMtOHHpH7mFhxqECnwyZo5KTYxGAVDGDSmbjeGRtBjsXOMcViGQfy8AAAAA1JQ6NaXb5R6ipJX/ggp6ejhiZkENDoCTIbAg48bo2bQYXM6VQMvfrv4MAAAAAKgZy2iNfZRSIr88JkbGOOhxpS/BIZCrgEYY/kpDIIfChDny3TZjSK0J5D8DAAAAAGrGcmoTAxQz5C6e+i0NgNPD35QQaMixuCEvbzcH1J8BAAAAALUXAL+rAp4oRAFvptA3/fMJ3i1MdF21vwgAAAAAuIgA+INoejcKeVFFMNoAUvpz4c8XViUdBEAAAACAGrOc0tZJ0kz5rdkCYDglzJs/plYAG0ShPumcQAUQAAAAoLYsp5Q9QA1C3jZ7ACy8LgDGxMhws52/tMM9QkRXVfuLAAAAAIA37zriKl6DKFyhicKrEyHQLHCFTw21LtDkADgZDpPW0Ge73AdVCxm0gQEAAACoKVdRh3uYmp1TFLOGs9M3gagq4OsD4DMpe+Byw/0M5QIcBQcAAABQg42gt1OXdy8l7VOkicKtMUOOlu76jcJfMQD+VDPlNTxtbHgHKBfgJBAAAACAmpPN+qT7eyhtHydNjPKO4D+MGfLLcV0+G9flubhReCVuFH4cN+SnYoa8VDOlWjeIAAgANM/9P9r3NQQmVTeTAAAAAElFTkSuQmCC",Kpt="data:image/png;base64,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",Fqr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAKACAYAAAAMzckjAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR4nOydB/RVxdXFN4IgYMHeG/beey9J7CXGJMYWa4zREDVq1BSs0WhUbJ9orFETjS323jXG3ntHUcQKiALC/dboEPDPK/e9d+89e2b2b629lkYl755zZu65U84BhBAp0h3A3ABWB7AdgF8B+D2AkwCcB+BqAHcBeBLA617vA/jEazSAzGuU/9+GT/bvPg3gMf9nXA7gTABHARgAYEcAmwBYEcCs1oYQQgghhIiJfgBWA7ArgOMAXAHgQQDvAhg3WQJnLZdAPgfgBgBnAPgtgB8BWAFAL2sjCiGEEEIw0hPASgD2BnA2gLv9al0WgVyi+oJfRXQrlNsA6A+gm7XRhRBCCCGq3Lp1K2P7ADgHwOMAxhIkalVrJIB7ABwLYAsAMysEhRBCCBELPfw5vUP8FulnBMkXoyYAeAnABQD2ArC4teOEEEIIIVphSX8O7la/0mWdXIWqtwGc688TzqgQFEIIIQQTfQBsDuAsAG8SJE4x6msADwH4k19Rncra6UIIIYRI84burn5bd/KSKlI1NngPwGkA1lUyKIQQQogy6Q1gSwAXA/hCyR5NsvuR94nzzdQaAkIIIYQo4hLHVgCuAvAlQbIjNbbBhwAGAVhOoS+EEEKIVlkUwEB/EUFJV5g2eB7AoQBmUfgLIYQQoh59AewG4H6C5EUqzgZu5fYSABvqvKAQQgghJjKnX+1zZ8mUeMVtg1d9P2OX7AshhBAiQVbylweY+upK1djgc39WcD7rIBRCCCFENa3YdgDwqJItJZu+Dd8/AKymwSeEEELEhysP8nMALyvxU+JXJwZcb+L1rQNVCCGEEJ3TE8AuAF5R4qfEL2cMPOBrCgohhBAiwBW/fQEMUeKnxK/NGLgXwAbWgSyEEEKI5nQDsL1W/JT0FZwIrqHBJ4QQQnDiXtKq4afkr6ybw9cDWMg6yIUQQgjxLUsCuFGJj1b9KoiBrwD8BUA/DT4hhBDChr6+gPMYJX9K/iqOgY99mzl3yUgIIYQQFZ3z2wnAUCV+SvyMY+AFAOtp1AshhBDlshyA+5T4KfEjioEJvqPMrBr8QgghRLH0BnCC2raZJztSfRt8CGBnv0IthBBCiA5ZE8CLSj6UfAVUNmZxjXohhBCiPaYFcBqA8QQvdUk2aCUGvgRwMICpNPiFEEKI/GwI4A0lHUo8I1gNXEADXwghhGjews2VdtGqn33yIhVjg88B7K2BL4QQQtTGnZt6XImHEq9IY+AqALNo8AshhBCT2AvAKIKXtCQblBkD7wPYRANfCCFE6vTzKyNKvGSDVGLAHW84GkB368EnhBBCWLAsgNcIXsiSbGARA3cDmENTjxBCiJT4mbZ8lXgq8cS7ANayHoxCCCFE2fQAcLxe/Er+FAP/i4FxAA5VBxEhhBCxMieAB/TiV/KnGKgZA//0LQ+FEEKIaFgGwFt68Sv5Uww0jIH/6lygEEKIWNgCwEi9+JX8KQZyxcBb/oMpxOMdcwNYEsDqAL4PYHtf4ukgv839J38EZKLOAjB4sr8/xv97TgN8Ae1dAGzu/8xFAMxk/aBCCCGa4ybxr/XiLy35GwHgOQA3ATgfwEkAjgDwSwA/8S/hlQGsBKD/ZHIv0Rkn09yT/TN3O3tdAFv5l++vfdmSCwDc4v//PpFPS+8esinRBNMNwDwA1gew52TxcCOAp3x9wwkVxoSbUz4E8CKAu3zs/8nHq4vd+X1CKoQQomJ6+K97rfp0boMPfckQZ89f+dWQpQHMYBzVLnFcFcCOAI7yZ9heUMJfaJKzX8U+7e478riPhz8DuBrAMwBGB3q55k3/cXQCgJ0ALA+gZ8U2FUKIZHAH2a8jeAGEWCDYJVAX+kRvvUBbh/Xx23X7ADgXwPMVrw7FplNKuiHskr3lAOzr/fRIoIleO4mhi8nLARwOYAMA05ZgXyGESIrpAdxDMMmHss13nd+y3ZhgRa9MZgawpV+JeVirhC3HygUFdA6ZzseZ2yq91cef9RhgSgpdH/LT/Yr2AgXFvRBCJMFsfhK1nsxZ9ZXfyv09gDUSP6M0s99mPN8XQ7b2TQhyLRN7tWDjqfwWvYu3+3ySY/0MIWkogMsA7Kqb2UIIUZ/5ALxEMGmz6X1/y3FTvzUqpqSbv6jizpy9QuAzZrmVu74NgmhWALv585gfEfzeWDTBX3ZxK9gb6hyhEEJ8y6IA3iGYpFnk+huf6Ft8uVUY0RrL+kslbxL4klEPAug3mb3m9pdF3G1Y3bivxgejAFwLYOcuvhBCiGRwdbneI3gpMtzUHQRgRWuHRLYy6Ep6nKfzalPE25MADgbwkL88ZB3/qR/tuMFvFbub8UIIET0LJ35+a4wvk7E1gKmtnZHAzXK3tfkogd8l2aDRnHCTj1V36UYIIaJjIQBDEu7UcEigJVpiwF1suAjAlwSxIMkGjbaJ3e3ttUsq4yOEEJUzf6Lnsx7wra1Svr3LhLvwMBDAxwSxIckGjWLgZR+r7rKcEEIEyTx+BSylLZ1zfX9TwYnbajsw4RVpKRwbjPO1P12LRq0KCiGCqt32PMEkWlXid7Hf6hZh4M5h7p34uVQpHBu84nulqzyUEIL+EP4DBJNmFed2BvnSGiJMevpEcChBPEmyQbMY+MzPOW53RQgh6FZWbox8Ih8L4AzfzUTEwbS+7dkogviSZIM8uw7uctMS1gNHCCHgz6lcEPkL7Hpfz1DEyVy+G4uKJNuPNam5Dcb7OWl564EjhEib4yOetB/wPXlFGqyUyDEGKZ5E8B+6gCaEsODnBJNgWV07XNV+3cJLD+fzPVU6xnwMSkoEhRCkrO1bHMXW0N3d7FUBZzGT3xaeQBCXkmyQd0XQzV9zavgKIcqiP4DhkU3KTwNYUyEjurBhokXNpXBtMBLAEb4ygxBCFFpU91mCSa7IwqvH+9IgQtSij4+R8QTxKskGeWPgXV/uqLuGtRCiU6aKrNzLi75vrBB5+B6AtwniVpINWomBRwGspSEuhOiEP0Yy8U7w57v6KhxEi0wP4DKCGJZkg1bnPJ1vFkK0xcaR1Ekb5p9FiE7YC8AXBPEsyQatxMAHAHbU0BdC5GUeXxol9JfNfb7orxBFsKS2hM3HtNSeDW5TH3MhRJ42bw9GsP3hDvH3kLtFQcwP4HKC2JZkg3ZjYDSAwzUvCiHqcXLgE+ynALaQe0WBN4KP9C9P69iWZIMiYuC/ABbVDCGEmJzvB14I93W1SRIFsqVqApqPaakcG7gPmkN9pQchROK4bhhDA55wXU/X2ayNKKJgRX9+1DqmJdmgirOB7sy3ECJhrgh4sj1PhZ1FAcwMYFAkt98l2aCVYzM7aQYRIk32CHiydIeahegE1xXmtwA+J4hnSTawioFzAEyjqUSItPr8jghw0nVnFQdYG08Ej6sR+TxBPEuyAUMMPKlyMUKkgTsAfD/BpNOqxgLYwdp4ImgWB3AzQSxLsgHjlvDW1gNUCFEu+xJMNq3qKwDbKjBEm/TzNSLHEMSyJBsw77AM8nVhhRCRMXeAZ55cK64NrA0ngqQ7gF9E0uFGkg2qioF7AcxuPXiFEMVyTWCTqFux2UxBINpgPX+2yTqGJdkgxBh4F8AKmnmEiIPtA0z+XFFeIVrB1Te7OPDi5pJswBADIzUHCxE+MwZW8Nld+NCBZNEKfQEcpfZt5h9t7/qV15t9nVGncwEMBnC6P4vp9IfJ/vpU/8+dLvH/zR3+z3kHwCiCOSlVufqYqrwgRMCcRjCR5NV4AD+1NpgIhm4AfgZgCEHsxiy3ovq2T8zOBnCQv5i1lu8xO0PJfna16uYCsCyArQD82vcwvwrA4wA+IrBRzDoLQI+SfSyEKJilAYwjmEDyyhXnFSIPKwN4kCBmY9P7AK7zq3Tb+jkkhGLBMwFYH8B+fjXxoQAvvTHrVgDTWTtZCJGfOwkmjrxyK5VCNGMO3wpwPEHMhq4Rfo5wW7E/BDBvhCvEC/pV4tP9amFIH8RsesS3TxRCkLMdwYSRV9f4sh1CNGrfdrBWdToaZy5pfhTAMQDWTbTm27QANvQrnHf5M8fW819Iet6XFBNCkNIbwJsEk0UePex/rxD1cDfCXyGI1VC3dC/wZ2tnUYhNgdvW3MafbXyLwF8hyL1bFlYsCcHJHwJ6OelrUtRjCQC3EMRpaPoMwPm+77FW1luPuUP9drG1H9nn7uU0dQnBxaz+bE9GLrf1sra1sQRt6SJXHkTbc/nH05cArvRn+UK4tBECiwA4AsAzBPMlaw/hNaydJISYxMkEE0Me/UpOE11wq1X7ABhOEJ+h6AVvs7JLsaSOWxk8NrCaqlXI3bRezdo5Qohvt1NHE0wKzfR3OUt0wZXweIogNkOpy3e7PxvpbrqKaj9SNvYFq3WjeNKRg1UUhELYci7By6mZntOlDzEZCwD4F0FchqARvpyJK74s7JkfwNEAPiCIDWt9DGB5a4cIkSqLBfBF+pWv5i9EX//y/JIgLtk1ypdu6aewocSdudwbwMsEsWKp4b5wuBCiYi4nmACa6TeKiuRxW5Y7qn1b7v66rkD67MlHTRhM5bunPEQw11rJrYYubu0IIVJi8QA6I7hyHjqvlDZq35ZvrHwN4CK/PS7CZB0A9xDMuxZ6F8B81g4QIhXOJxj0jfShb+El0mQOH6PsHykMugHAUtYOE4Xxfd9CLUuwY4gr5ySEKJF5/FZRRizXi1Okh2s1NkDt23KNEXd+bAtrh4nScDeHnySYi6vUfapJKUS5nEow0BvpRgVAkmwF4FWC+GPXJz5JTrEvb4pnBPdOrM7lFf65hRAFMzOAkQSDvNHtxQXl9eRuo99IEHvsctvhFwOYzdphonLcbe5BAVRtKEpnKcaEKJ6jCAZ3I+0vpyfDjIm91DrRHQCWsXaYMGfZhC6KHGRtbCFiqz3FvJXwsJb+k+mM8EvyWGTRawC2sXaYoMJVRtjFHwXIIl/x3sza2ELEws8JBnWjVlWrWhtIlI7at+U/CjFQB+JFA1ytx6sI5u6yO9ksqSgQonOYSwu4GmYiXub159es44xdE7ydVAJJ5GV7XzYri1QvAZhB4SBE+6xKMJAbrXbMLedG277NtSRT+7bm4+B+ACtZO0wEibsY9G+CubwsXaumAEK0D/Pqyx/k2CjPKbmVibcI4iuELgjuTJe63ohOcXE0miCmy5A7EiGEaJFZiVdghgDoLY9GxSqJ9zbNqy8A/FHxLwpmBV8kPIvwUoirFSqEaIHfEgzeetpHnoyGOQFcoPZtuc75Xeo78ghRBtOS7/q0K3fzWT2DhWiBZwgGbi29DaCnPBk8at+WP+YfA7C2tcNEMuwdQNvPds7K9rA2rBAhsCLBgK2nPa2NIwrpV/oCQSyxa6h/GbsaiEJUifvg+IBgDBQpnQcUIgeDCAZrLb2p1b+gUfu2fHE+xo/B6a0dJpJmHr/6nEV0HnBDa6MKwb41x1ofajdr44i2mAnAaWrflivGXZHe/oozQVSSKabC0e/4+UgIUYOtCQZpLb2n1b/gcFuX+wL4iCB+2PU0gA2sHSZEDabyH3BZJLpaXhaiNqxfe4fJYUGxIfFFIia51fZf6JyfCIDD/W30LALtam1MIRjLAIwmrX02s7VxRC7Uvi1fTI8FMBjALIorEVjR6LEE74RO9Zk6SQnxXX5EMDBr6Sw5KoiPh2OJi4cz6UZ/IUaIENmCdKGgVWkrWIjJ+AfBoOwqt+WwuLxE377tbYJYYdfL/uUpROis5/uxZ4Hrx9aGFIKBXgA+JxiQXXWLtWFEXVYF8B+CGAmhE8EAf8NeiJjqeYa+EjhMxzCE+HZlIiOUW10SfO3bBvu6WtbxwazxvrXWbNYOE6Ik1gUwkmCsdSLXYlGIpPkbwUDsquF+ZVJw4HzxOwAjCGKDXXcAWMbaYUJUwEYRrARuqkgRKdd5GkYwCLvqFGvDiP+xDYDXCGKCXa95WwmRElsGXuj9FdWZFamyEsEArKVlrQ0jvrmtehNBLLBrlO81Oo1iRiTKToHXCTzU2oBCWPA7gsHXVf9VKJji2iWdHvhXfVXn/M4DMIfiVYhvkqgsULmjLXPJhyI17iIYfF11kLVREj4OsAtxP2i2j5Q1rB0mBBknEYzNduUubQmRVLPvrwgG3uRy2wgLWBsm0cPczxL4n12u5uFPfQ1EIcR3cePiSoJx2u67Zy05VKTC5gSDrqu0/Vstat+WvyXh8b7riRCiPr0BPErwLmlHT6g3t0iFQQQDrqsOtjZKIvTxFxfUvq15TF6vVWkhWmI+AB8QvE/akTsGI0T0PE0w2LpqIWujRI7at+WPxccArG3tMCECZU3CI0Z59KbKwojYmR7A1wSDbXI9Y22UyFkNwMMEfmbXUAA/95dihBDtsyfBeG5Hv5TTRcx8n2CQddWJ1kaJFLVvyxd/Y/yxCPdxJIQohgsJ3i3tfAT2UQCIWBlIMMi66nvWRomMngAGAPicwLchnPPrb+0wISKtNvE8wRhvVb+1NpwQZXErwQCbXKP97TFRXHum1wn8yq4XAGyioBOiVJbyN+mzgPSRdgNEjLizTZ8RDLDJdbO1USJhaQB3EPiTXcMB7KOSD0JURojnAQcqPkRsrEowsLrqAGujBM7MAM5Q+7amcTYWwMkA+lk7TIgEuYLgXdOKPgEwnbXRhOiE7gBW8g2vH/A9TDMyrSgXt0UPAHurfVuuGLvdb0UJIew+VN8neN+0ogMVLCI0ZgOwB4B/AfiUYBA1kjsbMrW1wQJkY7VvyxVfLwLY1NpZQohv2IbgndOK3tH7SYTydbWLv9E4lmDg5NW91oYLDLVvyxdXn/pVb3cbWgjBw98J3jutaBdrgwlRb6XPFa28i7Cwc16dINfmwvWh/XOg1fWrlBsHZwGYRXElBCUzAXiPYK5opUlBN2ujCTHx3NdWAK4NbKWvntyWgKiPm3h29cVJrX3FrjsBLKNgEoKebQnmi1a0qbXBRNosAeAvAR6ibSbXqULUZnUA/yXwEbte8y8UIUQ43EQwd+TV3dbGEunhLkf8xN/ezSLUMGsDkzIXgIsBTCDwEbNG+HN+vawdJoRomYUBfEkwj+TVMvKxqOpCx+8ADCEI+rK37MQkpgFwOICRBL5hlitldD6AORQ8UeMu8KhDUNwwtiWtp9OtjSXiZkkAgwNsm9OuBlkbnIgN/FamtU/Y5VbDV7Z2ligUl+RtAeBo36bSld4Y1aVVpLs0cB+AkwD8SMW8o/L96wFVFuhjbTARH65Q8zUJbvntZW14AqYHcHaCvm9VLin4qW7jRcXaAM4D8Hkb8fClr3O6hW9vKcIlpAshP7c2loiHNX3dvlRf/u6SQ8r0B/AcgR+Y5VbDj/dlcEQcLOXnvaJixI2h7a0fSnREKOfcH5KfRaes58+/ZYnLrX6lvPoxnMAHrHIfRZf5wtcirstNZbWjvNVXSxBhzodZIFrG2lgi3DN+oTXELksfIl1W1UWPhrHxuH8hiHiqGQxoc6u3VY3zZ4tnsH5o0TL/Jngv5dFp8q1oBbeKcUGJX74h6tGEPwI+IrA/o4b6MzY60xUPWxtdbhrm+6ErlsKaG0PoaPWJSk+JPPTzrc5GEwQtm65M9MbbiwS2Z9NXvs3ddNYOEoW+zG8jiK1HdNY4KC4iiJk82sraUIK7fdcu/ivUOlBZ9Vekx6kEdmeTuwywkLVjRKEfve7SzhiC2Jr8PKk7eqPzpPwsHshO2aXWhhKcrOBvClkHKLt+jfRK/YQwsVWlpwFsaO0UURjdAeztz/ZmxJ1jDvYFpgUvIZyTH6magGJyZgRwRiBnGBi0TWLhE8oB57Llbj7v4xMGEQfrAHiCILby6mUAm1obTdRl+UBKo20vHwrHDtrubXnwrJFQ6IQyoZWpsQBOUQeHqHBbqv8IOLav9/1oBR9F1oksS1dZG0nYMofv4GEdiCFqsYSCN/Wzfzf5sz0instMf4ykZeXEC0gqNM7FWgSxkeXoRpNyLduk2QnAxwRBGKpmRToXgt4msLeF3I1nbbXFhevD+yZBbBWtdwHsqFaDVDxGEBdZE7k8QCTEnACuIwi8kOW2jHogDVYksLdFnazf+ALAIg6WBXAXQWyVrQf8mBX27EoQD1kTXW5tJFFtUVMV8S0mQUiFfQgmqao03rf6ms3a6KLQy22DfIcN6/hSHKdFLwAfEMRD1uRdlspiRrJM4yfBUA87s+lVpMOZBPauQm51aDlrY4vCmMrXMmUu61K2PgVwqMrGmHIsQRxkTaS2lRGzNIDnCIIsJj2FdIh92+x1ANtaG1kUiqvP+AxBbLHoWdWsNGOeAFafj7MzjyiTff1NH+sAi02uPVMqPE1g77KK6v5OPTGjYgHfotE6tlj1LwDzWzspQW4k8H3WQE9aG0gUv+V7AUFgxar7EwrYtwjsXaQm+HN+rgSSiIM+AAaqZ3mu+B/tW92pbEx1/CSAOXHuCu0hSqS/36K0DqqY5bZFU+HjyG5IrmxtUFFoiSJXxH4IQWyFprd8SRxRzYLMpwQ+zxpoDwVC+Pwgshc2q25BOnxOYO9O9Y5PFFzCIOJgRb8Sbx1boetOf05clMtgAl9nDeT6F4tAcS+2w9XHt7LB4uoopkLICeAXfmvQbRGKOHAF2M/xJXus4ysWuUsKp/mSOaIc1iTwc9ZAQ+X4cGsN/Z0ggFLS1UiHEBNAd6blMt/rVcTB1L44N/tWWshyJXP29iV0RPGLNOwdaPrL6WHhvtjuJgic1JRSE+3QEsDHAaxjbTRRKBv5UibWsZWKntAYKoWTCXybNZCrmykCYSEALxEETYpSAsgnl6j+QqsXUbEwgH8TxFaKcqvolwCYyzoIImIdAr9mDeTOKYpAzhMMJwiYVKUEkEvu1vt81oNSFIYrUfJnAF8RxFbqGql6mYXRnbw13PPFPaooiy1U78p8oCgB5NGDAKbTdBPNOSm3DfUeQVxJU7a/dO8e0RnnkK/6ziwH8+JKWYwlCJTUpQSQQ29owoqGVQD8hyCmpMY2uAnAotbBEjCbkcfYVtYGErVx55tU+oBDSgA5vla/p8kieObwXYs0t4WjMQD+opX3tuhDfrThmKIHuOicQ/0Lzzo4pG9toATQPhZu1cQSfFmXAQHeMpcm2eB9lY1pi7uI4+i6oge66IyjCYJC+q4NlADax8SWmliCZXMArxDEkFSMDdzWvVos5ucw8haBgoQjCQJCmtIGSgDtG9r3th6comUWAXC95pQo51S3Q3UxgNk1LpqyKrkf+8mH9vyRIBik2jZQAmgbG/daD07REjMAOEkX2JKYTz8DcIDf4hf1y8F8QuCrrI5USN+YwwmCgEFf+gklI5MSQFv7n209QEUuXEuxPchrn0nl1ZTTJa36XEMce7/S/GbHgQQBwHC4eKBv/H47we/pKiWAtvZ352IFf1mXhwjGqmRrA7flrx6ztS92ssbm2QbzhQDwSwLnW+pRAD/psn2gBNAWxlua7hC14GRu30JMVQvsxwnTTs7RvgSK+Jb1CfySNbjUIypmOwBfEzjfQvcA+H4duygBtIUxAXRfz4KLafzRlVEE8SFx2uAd/4Evvm13yPq+/1QOqv5rgLk4ZFm6zfc1boQSQFuUAIpmbAPgdYL5RArng39ZDatvephnpJpR/qmGZXzGnSWkhwFslNM+SgBtUQIo6rGYbw1mPZ9I4dlgvC8b4855p8rZBH7I6mgFa+OkwIIAhhI4u8qbYa02FFcCaIsSQNEVtzowCMA4gjlFCtsGH/mz7640SortXTNS/dDaOLEzHYBnCBxdhT7x57Z6tmEnJYC2KAEUk5d12QXAMII5RYrLBi80OAceK2sT2D2ro4OsjRMz3RPZOnGHXE8HMFMHtlICaIsSQOFYF8CTBHOKFK8N3M3xfwCYJ6GV9IxUZ1gbJ2ZOJXBw2XoEwIoF2EoJoC1KANNmPgCXE8wnoe143OWTmUsB3JrYUZ9O5W6SH+FvlsfOewT2zmroBmvDxMreBM4tUy5h2L/AMx1KAG1RApgmrtfynwB8QTCnhFLr7kwAKwPo1uDSzLHkbcCY5G6Wb424uY3Azlmd8/qiYDaIvB/mzb4QbJEoAbRFCWB6bA/gLYL5JKRty/lbsO9Mfhco5ndBkXIrqEsgTlh3A0dYGyY25oh4G8CtEgxo8OXbCUoAbVECmA7uJXsLwXwSih4DsE4H9l7Ut0qzfo4QNM7fPJ8BcTGAwLZZHaWwBV8JrrXZAwQOLauo5wIl2k4JoC1KAONnZgBnEXcmYJM7t7WrvxVdBJsBeInguULQBwB2L9D2DEXUM1LNbW2cWDiFwJlFy70sBlZQv0kJoC1KAOOlhz+T/CHBfBKCxvhVqOlLWiRwvhhO8Jwh6PEcXaRCYAUCW2Z1pG4tBbB1hI3Rh/iyEFWgBNAWJYDxnkd+mmAuCUVuq7Z/BX6ZySeZWo1t7hP3Xr0CwLwIe/U9I9UG1sYJnUVJX6CdHsh1QVsVSgBtYYxfV1RctN996CoCH4a00lTVx+7kLOdLyVg/fwhyc9Rv22w0wMBIAhtmNeQug4k26ekPCWcRfW392aBljxJAW5QAxkFfAMf4ciXWc0kIeh/AHgRnzbYD8AaBPUKQO0e5CcLjeQLbZTW0j7VhQuZ4AgcWJfeF8iMjOyoBtEUJYPhsqbIuuee6sSWe8+tkMWEA6Vhk1O2BlY25l8BmWQ393towobI+gPEEDixCbwNYxtCWSgBtYXzpaAs4HytFXH2gDF1V0Tm/dpkTwIURvVvK1FcAjvMr3+xcQ2CvrIZOtjZMiPTzSVMWgZ4k6MuoBNAWJYDh4c7o6iJB/nnuhcC2Dl1ifz/B+yGUkj27lFSjtijOI7BTVkOuNJRokSsIHFeErgTQh8D7SgBtUQIYDq6UyAEAPiOYP0LQMF96pepzzUXgEpqf+YoM1nYMQff7kiuMnEhgn6yGXGIqWmAHAqcVlflbH36eiBJAW5QAhsFGAJ4jmDtCOucXQ1eJPpGlmacAACAASURBVP5IBOtNUia5rfOLAcwGLg4jsE1WQ3+3NkxIzBJJQdUjwYUSQFuUAHKzCIDrCOaNUPRvb7PYmA/APyOsOVuGPgGwny+EzsAvCWyS1ZDbzRQ5uYzAYZ1+He1P6G0lgLYoAeRkOgAn+O4U1nNHCHoWwMaIn3V87UJre4egZ0iKHe9OYIuszseSyMHmBM7qRO6rcV9STysBtEUJIN/ZL1eg9R2CeSMEfexLqLCs9lQVI7v4WobW9g+ly0uZ/eybsROBDbIautnQJsEwQ+AHcd3K327gRQmgLUoAuW5/PkgwZ4Ryzm+wP5qTKn19v3YV/24eL6N97d5pDfz0Y4LxktWQ60QjmnA2gaPa1df+S5EZJYC2KAHkqf+m81355rUbACxm7TQiFgZwLcH7JgS96buvVMnWBM+d1ZD72BRNvshDbdo9wZdAYEcJoC1KAG3LuqgDRGutwNxxHFGbDQE8TfDuCUF3V9gAYVOC581q6CENpPq4MikPEzipXR0ciHOVANqiBNCufdsrBPNEKOf89k/snF+7OBv9CsBHBH5j1zgAp/rmDmXyPYJnzWrItagTddiTwEHt6uiAvKoE0BYlgNWyqN/CtJ4jQnlBu3N+s1bsoxiY0Z950y3y/BeJyioYvgnBWMpq6I6Snjd4Zgq45t+5CAslgLYoAazuMtnJ/vKC9RwRgm4BsGRFvokZZ8NbCfwZgh4DsGYJPtiMeIyJGpxJ4Jx2r3WHtk2iBNAWJYDlHyXZ07cls54fQpDO+ZWDjhzkPzvvOmTMVbDtM9LyOKILi/mthyzAopchtj5SAmiLEsDyWAXAfwjmhhD0qW951qtEf6TOxEtH6iXdPB6/8CV2pinA7tsSjK+shtQJpAYhXqd/t+AvlipRAmiLEsDimQfApSrrkmvuGud7k6dcz69qXK/cc3yNWOt3F7teKeDm+XYEz5HV0HkFxVNUbXaywOSKgK6KcFECaIsSwOLo6VdYRhDMCyHoTgDLFmh/0RrLA7iHIA5C0O0dnEn9CcHvz2rI3YAWk7XXeYjAKa1q18A9qATQFiWAxfBDAG8QzAehrKpsVZDdReds7wskW8cFu8b4/tyuT3cMreCO1uDhX6aNPYNXAmiLEsDOWNqXU7CeC0KQO3v2W79SKrjoDeD3AEYRxAm7hgLY2S8a5WEfgt+c1dAhJcdUMHT3t8+ygPSQP9QbOkoAbVEC2H6pqNMCvTBWtb729fzc2TPBzdwALtb51dzv4JVz2PRggjGY1ZCrTiB8Np8FpE8ALBCJ55QA2qIEsPWyLq6/tsq65G+5tVxJsSvKwyU2DxC860IoG+MS5tkb2PJogt+Z1ZCOYQS4+ucCbouIZj4lgLYoAczPegCeIpgDQtDr/lykCJdufnHkXYJ4CqGM0YA6dXhZ6wqvYRBTdOxI4IhW5LoJxIQSQFuUADZnfl8zy3rsh1RDbYMKYldUQ18Ax/iKE9axxa7nAWzcxX5XEfyurIYWTn0AudW/FwMLLndYNyaUANqiBLA+vX1x4pEEYz80TfBJs0ueRRy4+pY6H5i/y0Z/bzfWYvDTIXF2IHBCK1fQV0B8KAG0RQlgbX4M4G2CcR+6XPJ8eEEdFQTPUYgnCWKLXaMBHAVgCOm4ROrnG54hcEReuUk0RpQA2qIEcMriuPcSjPcYzwRuYxTjopzds710GSpYvZD6oPgBgRPy6slISr7UQgmgLUoAJ5V1GeRLlliP95h1F4BljGNeFMe0vmfuVwSxJSG3DW5JfRDcGkjAuDpjKyJelADaknoC6G7t7Q1gOMFzp6Jxvi6g+v/GwyK6KBWUzkHCLO0PKWcB6FjEjRJAW1JOAN1tvecInjdVuaT7F347UcSzs/YCQWxJaGiDPyJhzg8kQF5O4PC0EkBbUkwA3e28awieU5p0xGXdkn0uql1V/7VvWKAY57TBjqkOiDkCOq+wCeJHCaAtKSWAff2KuuqZceqfAOYryfeiemb2RZDVLpFPK6Y6IP5AYPw8uhZpoATQlhQSQHfjf3sAbxE8m9S8dMbx/nKBiIPFANyo2KcZ++P9x3ByTBXIS+Arf6g2BZQA2hJ7Aui+dO8neCapNRsM8T2XXfIu4sCdudX5QPu54E0kyuYExs+j2C9+TI4SQFtiTQBdc/a/+a9d6+eR2rfB3QCWLSAeBAe9ABxCOu+kopuQKNcRGD/PzbjpkQ5KAG2JLQGc2jdl/4zgOaRibDDetyCbrcC4F/bnA1V302aO+GuqfQxDKPK6P9JCCaAtMSWAKusStz7xsdGz4DEg7HBHNNR5p9pxtGeKAT+QYAJrptcSnNyUANoSQwK4iG++bv27pWps8CyAjUoaD6J63DnPn6j3dmXzx9opBtgbAUzQOyE9lADaEnIC6I5K/AXAGILfLFVvg6sALFjy+BDV0dsXKP5C46nUcTNzakG9ZiBFn1OsiK8E0JYQE0B3m//nAN4n+K2SrQ1cTcejUy1rEfFxrUsD6tYVkoYhQc4iMHwz7Yw0UQJoS2gJ4MoAHiT4jRKXDd5T2ZjoWEVjvfBxcgsSbEszjGCCaqRX/e9MESWAtoSSAM4JYLDKupj7hl2PAFjdYByJcphYxP1tgtiKQUelFqhbEBi9mZK8leNRAmgLewLYy//9CILfJYVTNuZclY2JiukA/DmgNq6s2hKJcRmB0RvJnWOaBumiBNAW5gRwK786bv17pDBt4GpBHuBrQ4o46O8v/1jHVqiaHQnRK4CVgyOQNkoAbWFMAF0Hj1sJfge7vg6ktqm1XgTwA+NxJoplAwBPE8RWSHoztSBk3/79IsUr2V1QAmgLYwIoNbfB7b5F2uKqgdiSzZY0Hm+iOKby/aLZz/iz6J+pBd+5BEZvpP+zNhABSgBtUQIYlp4DsEkNP27i/5n172OXO0N2vD9TJuKgH4BTAIwliC9mHYTEvg7Y64S5NjipowTQFiWAYegj3+O4R44VEfZ5j0FDAeztbSbiwHUEuoIgtli1NhJiHQKDN9JD1gYiQQmgLUoAueW6nAwCMEMLPu3rW1+OJvj97HrMNwoQ8bCxbxdoHVtMGpdasfSTCIzeSLtaG4gEJYC2KAHklOuC8A8A83fg2/n9n6GOCs1tfaGvNSniwN38/g2ATwnGMoOeQmK8QGD0RuUJXN9DoQTQGiWAfHqw4GLG7s9S95TmdncVIw4B0LNA2wtbZvFn7VO/LT8GwA9TCca5CQzeSO5yivgWrQDaogSQR++U3M7MFYF9neA52fWq7z4h4sHdlr+ZILYs9bXvoR49uxEYu5Hc+UTxLUoAbVECaD8fjPRn9qooCN/TXybR1lhzv9wBYOkKfCKqw30EvUYw5i2PO+wfe8BdRl6Msawv/BBRAmiLEkDbg9mDjarzz+TLoYwhmBOZNbaNSziC/3zggITnvgkADkSkdCMvDHmstYHIUAJoS6qToLVuBLAE7FnC/xZre7BrmO/ZrrIx8eAu/Vzge0dnCeoIRMjyBIZtJNX++y5KAG1RAljt+Hftq74HPtxvUmutfGVj1rJ2liiUVRK+JHVcbLF0AIFR6ym5Xnw5UAJoixLAasb+cL/t1B28TCwkPZRgrmTX9R2W6BGc5wPfJIitqnUUIuJKAoPW04nWxiFECaAtSgDLHfOj/Vm76REOrmDsof5yivWcyd7LvarLO6Ia+iQa+4fEEmDvERiznrR1MCVKAG1RAljeQetLAMyLcJnXP4MKSTf29RsAtrV2liiU+QD8M6HYnwDgF6HH0IIEhqynT8i3f6xQAmiLEsDix/rDkbUXWwnAvQRzKLvuArCstbNEoazq27ZmCWg8gJ+FHD87ERixnlxpGjElSgBtUQJY3Bh/u+RCzgxnpF4lmEtDKO0zq7WzRGF08+P6fYL4qqJY9I9CjZ2zCAxYTztbG4cUJYC2KAHsfGx/6s8NTZNIDbW9/aUW6zmVWR8HcOlHtH421p35/JIgvrIS5WqDbhJicDxGYLx6++uzWRuHFCWAtigB7KxI8GkAZkZ6zOyffSzB/MqspwCsZ+0sUSgLA7iWILayEjXSl9QLhh7Emfmz1sYhRgmgLUoA2xvT1wFYzNh3DCzmbWE9x7Lrcn+xQMTD9yI/EjEEwFwIhGUIDFZPZ1gbhxglgLYoAWxtLD8PYFNjnzGyAYAnCObaEEoCTWvtLFEYvf22cKwtFR/3W9/0MF8A+bG1cYhRAmiLEsB8Y/g9f/ZNZ7oaF5Le3l+GsZ5zmfVu5JeFUsQtQP2HILayEnRDCPPeiQSGqqdgllENUAJoixLA5sV+QyvkzFJMdwTB3MusewAsZ+0sUegH0N6Rxv1f2OPkNgIj1dLr1oYhRwmgLUoA69fEuhDA3Mb+CZm5vQ3HE8zDzGU3/g/ALNbOEoUWUL+LILaygrUXc4x8QGCgWnLVxEV9lADaogRwyjF7N4AVjf0SEyt6m1rPxRl5o4D9/WVGET7d/dnArwliKytI7sb/hiBkBgLj1NNB1sYhRwmgLUoAJ43VV/wZNlEOGwN4jmBOZtZLumQUFeuTt6fNWtQwxl2RlQkMU0/rWhuHHCWAtigB/Hb1xZ1Z62XsCyRUSPpDgrmZWdcD6G/tLFEIrivMzQQxlRUkd9mlJ1Ns7EBglHoFoHV4vDFKAG1JOQF0pRtOATCTsQ9SZCZv+1jLZxQhV9f22FDKcIimF0SO8K0Cswj0VyZ//4nAILX0lrVhAkAJoC2pJoAu7pYytr0AFgFwhf9Yto4JVrktRJWNiad4dAxz7gQA24GESwgMUks3WRsmAJQA2hLDZNRqYVO15uJjdQAPEcQHsx4BsIa1o0QhNQNjqJU5AsDiDPHwMIExaukka8MEgBJAW1JJAIf4VRS3FSM4mcr7aAhBvLDKldT5m3rLB888vk90Frie8t1QTGG9ZbO7tWECQAmgLZ8n0NT8D744sQiDPt5nIwnih1WfATjQX6oRYTJdJJdDzrY0Yg/iWjvaamqOEkBbPo94peQ8AHMa21e0z5zehyok3bhszCYKsmBx+ctggvky6/A84GaWS6kZqVxFcNEYJYC2xJgA3glgeWO7iuJYEsCNBHHFrNu9nUSYHEMQQ1kHGgpgZgvDrUrw8LU0JoQGygQoAbQlpgTwZRVyjr6Q9LMEccbcqWGQSo8Fy9EEMZR1oKstjLYtwYPX6yogmqME0JYYEsCPfSFnquKkorQts719RwLruGPVcAADdOEpSI4iiJ+sA/20aoPtS/DQ9bahRHOUANoScgL4FYATAfQztqGonn7e918RxCGr/gtgNQVncBwT+Mf4XFUa60iCh64lV5tQNEcJoC2fB9wqayFj2wl75gNwsQpJNzygf4W3kwiHgQRzbNambgPQrSpDnUrwwLV0clUGCBwlgLZ8HuCqxtrGNhN8rO1jwzo+mYv2qt91WBxHEDcZewm8iwgetpYOqcoAgaME0JZQEsAh/uyXCjmLerhVh+0BvEEQr6x6VRelgornCwhiJmtzK3jWKox0LcHD1tLPq3j4CFACaMvnAaxcHM5QbV4EQ28fMyMI4pdVt7C08RINmdpvqWYB6m9V+PZeggetpW0U2LlQAmgLawI43p/tmsPYPiJcZvFlUVgbBVhrnC9CbFK/TbTUMeQJgnjJ2jh/WnozDNZ+ehuV/eCRoATQFsYE8GHfMF2IIliGuF88g1xJnb10vIIad7P2bYJYyVrU0750U2mwnvdYpcyHjgglgLYwJoDusLoQRXIoQVyz63FdsKJmKQCfEsRJ1qIOKtMo7xI8YC3pfEU+lADaogRQpIASwPzbdpf5FquCj40CPNIwssx4Yq0Ir7pL+VACaIsSQJECSgBbe3+NAvB7ANNYO05MwWEE+U3Woi4vy4+sS6JzKnBzoQTQFiWAIgWUALZffmkXa+eJKcrDXE2Q47SqNcvw4yiCB6ul2RS0uVACaIsSQJECSgA7e5/dDWBZayeK77RCfI0gz2lF95Xhv7EED1ZLMylYc6EE0BYlgCIFlAAWV5qpkgK/oinLAviCINdpRVsU7dfxBA9VSzMogHOhBNAWJYAiBZQAFvdu+wjALwF0t3aqwO4EuU4req7ouGFdAdRXUj6UANqiBFCkgBLAcmq8rW/tWIHQ2sXtkcIZQF2jz4cSQFuUAIoUUAJY3rvuegALWjs4YaYN7DzgewD6FPXwHxE8UC0tWtQDRo4SQFuUAIoUUAJY7vtuNIAji3yxi5brA04gyHvyypWyKYShBA9TS7oxlQ8lgLYoARQpoASwmvfeu75sjCtVIqrldIK8J68+9iuXHfMWwcPU0qpFPFwCKAG0RQmgSAElgNW+//4LYDVrpydGHwCvEOQ+eXVgEQ/9MsGD1NJ6RTxcAigBtEUJoEgBJYB2ZWNUE7c61gioVdz7RXSaeYbgQWppk2L8GT1KAG1RAihSQAmg3bvwU2//ntZBkAgnEuQ/efWLTh/2UYKHqKUfFuPL6FECaIsSQJECSgDt34nPA/iedSAkQG8AbxL4O4/eANCjk4e9i+AhaskVyhTNUQJoixJAkQJKAHl0DYD+1gEROdsS+Dmvdu7kQS8neIBaOro4X0aNEkBblACKFFACyCXXwGEQgOmtAyNibiLwcx69AGCqdh/yTIIHqKXzi/VltCgBtEUJoEgBJYC8ZWN2UtmYUlgcwBgCH+fRVu0+5ECCH19LtxTry2hRAmiLEkCRAkoAufWIv8EqiuUvBL7No1vbfcD9CH58LbnbyaI5SgBtUQIoUkAJIL8m+LIxc1gHS0RM51dZQ/B9W93TfkLw42vJtagTzVECaIsSQJECSgDD0WcADlLZmMLYkcCneXRyuz3wMlK569iiMUoAbVECKFJACWB4cl0ttrAOnAjoBuBJAn/mqRfZt9WHW5bgh9fTwuX4MyqUANqiBFCkAGMC6A7ov07wO9h1Q7vbg+J/bEXgxzzaAy0yO8GPLvxmS0IoAbRFCaBIAcYE0I29XgAOAzCS4Pcwa4y/0KCyMe2vAj5C4MdmerydBxtF8MNryQ1sEV4CeGNCTlMCKFKANQGcyFwALvKH4a1/F3v/2N06qRuXMJsQ+C+PVo+lH/Al5fgxKhgTwPuQDkoARQqwJ4ATWQ3AwwS/jV2PtJMoCDxA4LtmGtyqn/5N8KNryR28FOElgEMScpoSQJECoSSAE3e1tgfwNsFvZJZbLb0CwHwVx1LIbEjgt2b6xB+NyM3JBD+6lr4E0L08X0YBYwLoNAvSQAmgSIGQEsCJTAvgOP8esf6tzHLnJ3/XatKQMHcR+KyZtomhGLSTbi+FmQC62kkpoARQpECICeBE+gO4iuD3sus1XbzMxfcJfNVM/0ILbEbwg+tp21YeJEFuj601TWAoARQpEHICOPn2Het5dyZdDWDOkuIoBroBeI7AT43kVr1naKXpcUaqI8v1ZfDcTny+ZGXEjxJAkQIxJICOHgD29Z2mrH8/+zmyVHZx2mEvAh810+55H2YaAF8T/OBauqMt96QDawI4sSaRm3BjRgmgSIFYEsCJzATgNADjCJ6DWe5+gM7hT4nrUjacwD+NdCda4HmCH1xLoxJIImJNAJ3OQdwoARQpEFsCOJGlANxG8CzMuglAnwJsHRvHEPimkcb7+pi5uIzgB9fTKuX6MWjYE0Cn0yP+ilQCKFIg1gRwIlsDeJXgmVjlivtPXaC9Y2Au32HF2jeNtE/ehzmE4MfW0wHl+jFoQkgAM/87Y6w3pQRQpEDsCSB8GRT3nCMIno1Rf/cXIMQk/k7gl2Z9oIO/2uyu8IuwE8DMT6wHRvYlqQRQpEAKCeBE3A3YC/wWmvUzsmnvkmweKqsT+KSRRufdvp+V4MfW0wfl+zFYQkoAJ+plX3ooBpQAihRIKQGcyIoA7id4TrYz+YuUbPfQeJHAL420Zd4HeY/gx9aTCkLHkwBO1LW+SGvIKAEUKZBiAgi/5enKobxL8Lwsur4Cu4fEEQQ+KaQ38I0EP7aeXO0mEVcCmPlDtIMATBeoc5UAihRINQGciNtGG+i31Kyfm0Ep1HjNy/zkxwWG5j27eQz5VXQRXwI4UUMA/DTAQ8ZKAEUKpJ4ATmQB32YrS1xXGtiembsIfNJI7jhDUzYl+KGNWpu45t7iu9xC4JsidS+A5QNyshJAkQJKAL/L+gCeIpgvLXducrcaS4CfE/ikkf6Y5yGmJ+4I4qS+wFMS49eoW06/GMBs4EcJoEgBJYBTMhWAXQAMI5gzLbSTQRyyMi2AkQQ+qSe3QpmLxwl+bD2dV64Pg+Q8Ar+UpY8B/Iq8iLQSQJECSgDrMyOAUwGMJZgzq9TlFcZfCFxC4JN6Gu3rXDblFIIf26gcjPvqEpM4icAvZetpv+XCiBJAkQJKAJuzRIRHcpqV8xKT2I7AJ420NnLwQ4If2kir5XmIhNiDwCdVlh9wh7CZUAIoUkAJYH42BvA8wXxZxVGdviXGXIjbwF8R+KWeDsvzELMAmEDwY+vp2PL9GBSrEPikSn0B4A8AeoMDJYAiBZQAtkZPAAeTzg9FKqQLe1VwC4FP6unmvA/xHMGPrac3AywVUia9yb86ytIbfrXaGsYJ3r2shSgSJYDtMTuAv5HXietEG2iYfYf9CHzSqBVrD+TgLIIf20is58GsYC7gXbZcHcQlDW2vBFCkgBLAzlgJwAME82XR2qag+IqpKHQWegHvLQl+aCOdX74fg2J3Ap9Yaqy/vNTPwPZKAEUKKAHsHLdztQOAdwjmzKK0cwF2iY2nCfxSTwfmbXszmnwp0/1GMakMwQgCv1jL1ePas+Kb4koARQooASwO9+46kvwdm1euALIIp6PapcjJ9QQ/tpFcg24xieMJfMKiRwGsUVFwKAEUKaAEsJztwssJ5stOpARwStYi8Es9ufsdufgFwY9tpFvzPkgiuK4Zowj8wqIJvpvInCXbXQmgSAElgOWxLoAnCebMdqQEcEp6+da1GaHG5a2gMRd5ORh3q2qePA+SEL8i8AubXFI8MG8V9DZQAihSQAlgNW3lPiCYM1uREsDa3Evgm3pypeNy8QTBj+24wXFCuEPGtxH4hbVq/WYl2FwJoEgBJYDVnee+gGC+zCslgLU5lsA39bQXcnIUwY9tpPdLXNkJlTl9jTxr37DqBgCLFGhvJYAiBZQAVsvPAqnvqgSwNpsR+KaezkROVib4sc20a96HSYiFA9xKqFJj/KWZ6QqwtRJAkQJKAKvn+77EVUYsJYC16Udc/PtBtMCrBD+4kdw2tZiSZQEMIfAPs97zdaw66SyjBFCkgBJAG/YlmCcbSQlgePUAR7ZSKm0gwQ9upvXyPkyC28GPEPiHXQ/6Sv3toARQpIASQBvcx+k9BHNkPSkBrM+ZBP6pp7mRk0UJfmwzXZP3YRLEXfk+nXg5mkXOPucCmLVF+yoBFCmgBNCO9Qnmx3pSAlif3Qj8U0+u9FBu2FeRvgawUCsPlCDrAHiFwFfs+hTAgLxNs5UAikRQAmjLiwRzYy0pAazPqgT+KcRvAwh+cDOd0coDJbwa+HsVjM5dMX2jHDbVCqBIASWAtpxE8I5VAtga0xLXUnYVXlrqMjGO4Ec3u9m5QIsOSpW5fJcM1uBkkmuJuGADWyoBFCmgBNCWHxPMhbWkFcDGvEngo1r6O1rkFoIf3UyDW32oxHE9Cx8j8Bu7Rvvm7a6Je1eUAIoUUAJoy3IE82AtKQFszA0EPqqlh9BGYcqMXK5mUv9WHyxx3HXwPVQ3MFd8ve2/xCdHCaBIASWAtsxL8H5VAtg6xxP4qJZcneCWcB03hhH88Ga6sA0nCWAGACf6rXRrH7LrbgDL+KBRAihSQAmgLTMRzHu1pBXAxuxM4KN6cmcUW+I4gh+d50bwYq0+mPhO2R/WZWsmjfMXj74g+C1d5V7WQhSJEkD7HsEZoZQANmZFAh/Vk3vXt8R8PsHKyHVZqw8mpmBjfxPW2pdS6zZQAiiKRgmgLUoAw2RG4neYuwPQMv8m+OF5ivq6Q7OiM6YGcCCAzwh8KikBFHYoAbSFNZHQCmBzRhP4qZa2RpsNqrMAdH+HPV7FJGYGMCiQ1V9JK4CieJQA2qIEMFxeI30v7dnOw7ik6mWCH59HOxTvy6RZAcB9BH6VGttAW8CiaJQA2qIEMFzuI31nHdbuAx1A8OPz6N12brqIpmxJXOBSUgIoikcJoC1KAMPln6Tvpb92UjIklHNhrg6PKJ4+vjgy6/mGlKUVQFE0SgBtUQIYLicTvBNq6aJOHupYggfII1fXTmVhymMetZUzj3ElgKJslADaogQwXH5L8E6opZs6eahZSWugFf6gIhfrAXiKwNeSVgBF8SgBtEUJYLj8jPS99J9OH+xUgofIqx8V40vRgO4A9gEwnMDfKUtbwKJolADaogQw7DPzGaGeKGL7L5TWYS4pmb0Yf4om9PNnL0OJjdikBFAUjRJAW5QAht1UISPU80U83LkED5JX1xbxwCI3rtXMjQR+T01KAEXRKAG0RQlguKxF8E6oJVefsGP6+76oWSDasYiHFi1/Ab1A4PtUpARQFI0SQFuUAIbLigTvhFoaUtQDXkLwMHn1CYC5inpwkZte/iUygiAGYpcSQFE0SgBtUQIYLksQvBNq6cOiHnABAF8RPFBe3aY2cWbMCWCw79dsHQexSgmgKBolgLYoAQyXBQneCbX0eZEPGdKN4Lb74InCWBXAwwRxEKOUAIqiUQJoixLAcJmD4J1QS27RrjBmCag7SOZrGC5TpAFEW32ldwHwHkE8xCQlgKJolADaogQw7KoYGaHcLlyhHE7wUK3oFd/WTti3lRsI4EuCmIhBSgBF0SgBtEUJYLjMTPBOqKWxRT9obwDvEDxYK/q3zgPSMK9vK2cdE6FLCaAoGiWAtigBDJc5CN4JtTSqjIfdk+DBWpXr1Sd42ADA0wRxEaqUAIqiUQJoixLAsBc2MkJ9WlY7sOcJHq4VuTqG65ZhDNE2PQDsD+BjgvgITUoARdEoW4w2RAAAIABJREFUAbRFCWC49Cd4J9TSsLIeeCOCh2tVQ/1SreA7P3EWgK8JYiQUKQEURaME0BYlgOGyFME7oZbeLfOhLyV4wFb1sL+QIPhYFsBdBDESgpQAiqJRAmiLEsBwWYPgnVBLb5T50HMEVhZm8n7BbhtbcLIdgDcJ4oRZFwKY2tpRIhqm9jGVxVzIlhwlgOHyA4KxUkvPlv3g+xE8ZDtynSoELz0BDFBbuaYljra3dpSIoo/3cwRzshJAe3vX0s+tAzQAtifwUy3dW/aDu5W0xwgetB0dUrZxRMfM448aTCCIF1bd7ZuRC9EKK/rYyYilFUB7HygBbM4eBH6qpetRASsFeoDfJRU7V2Eg0TGrAHiIIGaYY/kKAPMr1kQT5vI7ICHM2UoA7X2gBLA5RxD4qZYuQkWcSfCw7fbKW78qI4mOmMp/aX1AEDcZceFP13Glr2JNdKGvj41RBHGaV0oA7X2gBLA5gwj8VEunoyKmB/AWwQO3IzchKgkM70X2FUHssMr1Xt5bl52E74K0faDzsxJAex8oAWzOFQR+qqUjUXF3h/EED92ORgBYu0pjiY5ZFMANBLHDrCf8uBRpsoGPgSxQKQG094ESwObcS+CnWnIXKSvlFIKH7mQlUC/L8NiI+BYji273xUpFGixCvCrRipQA2vtACWBz3iDwUy39CBXTy9eeyQLVF0oCg61jNiDQupRVaaw//D+btbNEacwE4PiIjkcoAbT3gRLA5i1NxxL4qZbWhFF5AVaD5E0CN7QwnCikrdygQG44WukT3/XBfayJeD6A3JnPDwniq0gpAbT3gRLAxixA4KN6MqsKMZDg4TvdDt7EyniikI+Q+wniiFmvAvihYi14fuh9mUUoJYD2PlAC2JgNCHxUrzRYL8sv0kcJjNCJxgH4hZUBRSG3H38K4B2CWGLWfQBWVrwFx8red1nEUgJo7wMlgGEWgXa7AaYsHMmZrBN8DToRJn38dfjRBLGUEX8t/h3AvNbOEk2Z1/sqhe44SgDtfaAEsDF/JfBRLT0JAraKZKK6yicSIuy2chdHEo9labS/RODqegq++pfu7OZIgjipSkoA7X2gBLAxtxD4qJb+BRJYM+RW9bBuUEbBev7ryDqemDXc36p2vb6FLW73YRcAQwniomopAbT3gRLAxgwh8FEtHQcS3HnABwkMUoReA7C8tUFFx3T35zuHE8QUs54GsLHizYyNvQ+yRKUE0N4HSgDrMz3xjtJuIGIOAO8TGKUIfWVRYVuUQj+/5TmGIK7YC0kvoxisjMUiKeTcqZQA2vtACWB91ifwTz2tBTI2jKw+29U+gRBxtJW7kSCm2G/Fu0LSs1s7K4FCzvog+TbmlADaj3slgPX5LYF/6omy4P8fCAxTpF71NedEHGwVcU21ouRu9h+sQtKF0svbNIaqCUVKCaC9D5QA1ucfBP6pJTeP0NZmYzVaJ1vC+1kbVhT6Mna3LUcQxBazXP/L7f2YFu3RzduQtZeotZQA2vtACWB9WBcL3J0LWqYB8BCBkco4J7WQtXFFYcwJ4ELiQ75Mk81qiruWWS2iy3FlSQmgvQ+UANZmVuJ3w5kgZxbi7LnTOmquDV5PawOLwlgJwAMEscWsCf7SwoKKu1z1KN1ZyvEEfmOXEkB7HygBrN+CMSPVngiAJQB8SmCsMuRKN2hVJL6turcJYotZ7vLCIAAzWDuMtJCz+zhUR5r88aQE0H5MKwGszSkEvqmnlUO6Rh3rjbfx/kt/Omsji8Lo41/iXxLEF7M+8qWSeij2/lfIOZYyWFVKCaC9D5QA1uZxAt/Uq9bgjtkFwy8IjFamXKXwn+mwfFT0B3ANQWyx61kAP0C6/MDbwNoPoUoJoL0PlABOST/iknbPIUCOITBc2XIXX1axNrQovFPDcwSxxa6bASyVUOwt5Z/Z2u6hSwmgvQ+UAE7Jjwj8Uk/u4mKQxNIzOM9h+fmsjS0Kw21z7g3gQ4L4Yj8ScbHvChQrM/szkOMI7B2DlADa+0AJ4JScS+CXetoLAR+0ZzZskRrlz5IFtVcvGjKjXv4txX7viOKppz/zqELOxc6TSgDt31VKAKeE+TLgkgiY7gD+RWDEqvS6v04u4mFZAHcRxBa73gKwQ+BnY7v5Z3iLwJ4xSgmgvQ+UAH6XpQl8Uk+f4NtLZ0EzNYAbCIxZpe4GsJy14UWhbOkTfOvYYtcjANYJMPZWBXA/gf1ilhJAex8oAfwuvyfwST25fvZR4LaH7iEwqMUZqdmtjS8K3xpUW7nm8X99IJ105vXjlLULQExSAmjvAyWA3+VJAp/U0xGIiOkjbRnXTK449gF+JVTE0/3hUiUNufpqn0BaSHoG/9u+IpgjUpESQHsfKAGcxIIE/mik9RAZ0yZ8nuolAJtZO0AUypoAHiWILXa5G9X7khSS7uF/i255Vx8HSgDtx6ISwEkcROCPehoZawvaXgCuJTCwlW73B09FHLiLA+oMkf8jyLXgs6zz+AzBHJCqlADa+0AJ4CQeI/BHoyM00dIzsdvBXTXOt5WbxdoRovDesNpSbB7/dwBYvuI+5aldRGOUEkB7HygBnDQnZMT6NSLHlYi5gMDQlvpYPVajY2FfHNw6tkK5JDVnib6YxRdyZm3zlJqUANr7QAngtxxL4ItGcglqEttnpxEY21ovAtjU2hmiUDZS39jchaSP9+eDi6w6cKhPOKzHtjTJBkoA7eNBCSC+yTveIPBFPb2LxJyhcznfOv7qQEpniHy4m98HqqNErknvHQA7dVhIupv/M94hmMSlKW2gBNA+LpQA4puP84xY56X0gu3ub7xYG51FY/22lSubI+JgJm1F5o7/x9osf7AagAcJxq9U3wZKAO3jQwkg6O8fuKYDSbXasjY4o4b784EuQRZxsAKAewliKwRd789TNmM+FXIORkoA7X2QegI4h19kyUj1BYA+SIi9CIzOrMcDba0l6uO+8N4kiC12jW1wW76fPzv4JcHvlPLZQAmgfaykngAeTuCDRroSiXEugdHZ5dpUXebbVok4cF95RwIYTRBf7PoIwP7+TOXU/q8/IvhdUms2UAJoHzMpJ4A9ALxN4INGcjVlk+JpAqOHoi98rbmklogjZ36VjWmpkPRLBOOQXR+Rtt1UAmjvg5QTwJ8Q2L9ZfWB3XjwZXOkH1ehqPVDcLccdOrwxKbhYj7wxucRvg3G+rJZ7ifyR4Pd0lRJAex+knAA+TGD/Zl3CkmJ9AqOHrEcArGHtRFEYU/ktgGEEsSWFZYM7ASwzWSwpAbRlRoKYqKVUE8C1CGzfTLshMQ4hMHoMHRXO97ebRDwvj1PJb6tJHDZ4FcBWNWJICaAtSgC5uJZgrDaSu8w2AxLjKgLDx9RRwZ0PnMbaqaIwFgVwI0FsSeGNdyWAtigB5GE5f5EyI9blSJC3CAwfm14DsK21Y0WhbOVXeqxjS+JY8T8vx4q/EkBblADy8C+CcdtMtVbxo6ZvAFl5TGeCRNj08v1tRxDElmRjgwcArJQzXpQA2qIEkIOl/EcT+639nkiMlQgMH7vcDeuz6hTSFWEyJ4ALApjUJNtb/0oAbVECyMFVAcxFZyJBdiIwfCr61K8euVUkEc8H1AMEsSWVZ4PRvtvJdG3EhxJAW5QA2rNKILuMrkVochxDYPjU9DKALawdLwrDrQhtH0B1e6m9XsgLdBAbSgBtUQJoz50BzD2uNmGSXElg/FTlbpYuZh0AotCC6sepL24UKqr3txJAW5QA2vIDgrGcR8nV/pvICwTGT1muxtxgnQ+MCtcr+mKC2JLaOwg+AED3gmJBCaAtSgDt6A7gmQDmoc/8ZdgkmzKPIXCABHxc8ItH2LOBemwH9SE2qIQisEoAbVECaMf+BOM6j1zbxiRZjMD40ndt8LRPHEQ8H1n7+QRfsc57zs8V+y4DJYC2KAG0YeZA5rwJvkRNkmxD4ACptg3ctfn+1gEiCp0Qz/QlgRTzHDZ4wZ9RKhMlgLYoAbTh/wjGdx7djIRRD2D+voTH+csFIg5cUfC7CGIrZX3ij1tMXYG/lQDaogSwelYPqD7q95AwZxI4QGpug6EA9tb5wKjYEsDriv9Kx/94fzlntgr9rATQFiWA1R95eTKQee2ZFou6R8d1BE6Q8tvgMQBrWweNKIyefiVKbeXKnwfu9s3oq0YJoC1KAKvlsIDe6bsgcULJ1KXvHlq9FMA81sEjCmNuAJcEUi0/NL0B4IeGsaoE0BYlgNVeKh1NMObz6L0U+/525SMCR0jt2eAL/3LpbR1EojDWBPCoxkQhc8JIAIcDmMY4PpUA2qIEsLqt34cDmrsORuL0JnBCPbmziZcT/I4Q5NqP/ST1swwRMRWA3QF8QBBbIcqtol4EYC5woATQFiWA1fB7grGfV8N1sRKYn8AR9bSTD6p1ATxB8HtC0P0AVqposIvymR7AiSrU3tIYcCsQq5EFpxJAW5QAls+KvpB6Foh+V4FN6FmFwBH15BK/yVdE3GFNrYjkW/1wtxznMIwrUdyL63glgLnP8+zt5wo2lADaogSwXPoG1k7WHXubrmSbBMHmBM6opwVr/F5XC28ggK8Ifh+7RnlbWZ9/Eu2dpXHJzIcEccSuMb59m1stZUUJoC1KAMvlIoJ5oBW5c8ECwK4Ezqi3itWryU2jGwl+Zwh6FcDWivZgcF0pnieImxB0ZZ0PRTaUANqiBLA8diaYB1rRx+Qfi5VyIIFDaun9nL9/UwAvEfzeEHQ7gKVLjifRPu6j5gaCOAlBofXKVgJoixLAcljC37TPAlLyN38nZyCBQ2rpkRaCcGq/XTac4Hezy6ILgmhMP3/OT8ca8n29u6LZ3QMLKiWAtigBLJ7pAjv35zREJdO+y18JnFJLV7cRkLMCGAzga4LfH0If1F9X1AdV1D/n90t9uOSKV3e78FT/Ig8RJYC2KAEslqkAXE/wHmtVbrtaTMY5BE6pJZfItcvyAO4leIYQ9II/cyaqZWMAzxL4PwTd7LeaQkYJoC1KAIvlSIJ5oVU9SVohwJR/Ejimlo4p4Nm29C2grJ8llPOBSxVgc9GYhQFcQeDvEPQKgO0jCSglgLYoASyOHwfarvJ7BdogGliXcd3llKI6nfzBt0yzfqYQymm4IwEzFGR7MQlnUxV0zheHnwE4KLIenUoAbVECWAxrAfiS4F2VtbGLIGpwM4FzaunnBXtrHgCXBfrlUrWG+Us1oR20Z6S7t+UwAr+GcEHpnEgvKCkBtEUJYOcsFOh55TG+woKowR0EDqol19e2rC+YxwieL5QzE+tr1LSNK1PyFIEfQ9B9AFaIONaUANqiBLAzZvdHMrIA9eeCYihKWC9LbFPiM3fzbeXeJ3jOEOSOCfQv0R+xMa8vtWPtt1DKMuzix2TMKAG0RQlg+7iiyY8HPL9MW2AcRceDBE6qJVfguYr+hQMDPdNQtUJot2WN4il/PH3hax+mMjkrAbRFCWD7Z+hZF4myHHIXVkQD/kPgJOsbO4sAuI7gmUPQe4ms2LSCKy2wh1aUc8XPBH8W153JTQklgLYoAWydXsR3BLIcurOEOIoO1ux+cwNbbAjgGYJnD0HuHOXaBj5iYzXijyg2PZ5wzCgBtEUJYGu4G/j/Jpgzsjb1VQS1QyvhdgJn1dK2ht0Z3K3NDwlsEMJqjqtpNz/SYx5/zk+3ypvHyfBA27cViRJAW5QAppP8Zer3m58bErsFnJdZAJyltnK5fDUKwO8T6bHozqwdq3Ojub/CT9C50W9QAmiLEsB8TENcGzjLqUf9Qo7IwdUEDmPu2bd44OcgqlTMNzq7+a4UbxPYOQS5nQVtwUxCCaAtSgDzfdzeRjB3ZB1oXOTlpJJpBecO1TPh2sq9TmCXEPRfAKsjHlYB8BCBXUPQSwA2s3YYIUoAbVEC2Nw+MZxlHlhRPEXDRQROq6VfgQ+3PH44gJEE9gmhq8O5voBoqMwH4B8655fL3x8D2E9bL3VRAmiLEsD6uDPcLxC8M7IO9VRk7SMr4VwCx9WS69/LylwABvskx9pOIZwPHOhLCoRCHwCHKtHP5d/x/jLMrNZOI0cJoC1KAGuznD+6kwWuLwEsW3FMRcEZBM6rpVPBz+p+u9PaViHItRHaCvzn/HaKZEKs6pzf0tZOCwQlgLYoAax9rGkUwTySFaD9DWIqCo4hcF4t/R1h4JKGXQEMJbBZCHKHjJcCZz2/hwnsE4JeK7lVY4woAbRFCeB3OTCiChc3RXrxsBIOIHZqSKgNWGs3tQaTbBtqO7/17Xx3Fla0hhJAW5QAfosbuxcQvN+zAmuMzmkcW0GzM4ETa8ltrYZIf+LSOmyyvDjQ27+UY9kCKfucn3tpaKJtHyWAtigBBBYE8CTBfJIVJFeEfwvjuAqezQgcWUuu5ErIbATgWQI7hqDnAXy/Ir+4rYKfqp5fbt886MvgiM5QAmhL6gng1v6DO4tIx1dku6hZlcCRtTQGwFQIm6l8YWS1lct/qWDJEv2xEoD7CGI7BL0XcVFvC5QA2pJqAtjDJ0qxtay8WyWnimEhAmfW09yIg5kAnO7PvlnblF0u8T8RwAwFn/O7UGV7ctl/NICj/JlWURxKAG1JMQFcxLdFyyL8OJ29RLslxQwEDq2nNREXiwG4kcCuIegjAAMAdO/A3j39n/E5wfOEoOv9OSFRPEoAbUkpAXSr9ntHWsd0HIB1SrBZsrhgGUvg2Fr6GeJka19Kw9q+IegJAOu22bf3TYLfH4KebMPGojWUANqSSgI4bwT9fLMGch/0omBYG9y7tmux0st3mxhBYOcQ5G5Wr5zjzKW7TKK+vflsOsyvFHSyyiryoQTQltgTQDf37QPgM4JnykrS3wqylejCvQTOraVzEvDUnL7EhtrK5b8xfCaAXwL4kb/R+2tvQ9YPGTa5Ff+/FnzOUjRGCaAtMSeArrD+AwTPkpWoe9TntzwuJHBwLbmgTgVXakMrV/YxF7tu9GdRRbUoAbQlxgSwr+/kNYbgObIS5Y5LzVxgLIguDCRwci19llgZioln194isL0Ulw1eVtFUU5QA2hJTApjSe2KE+o2Xz64Ejq6n+ZEeE7/sviSwvxS2DT4F8BsAU1sHdeIoAbQllgRw9YR6lo8F8IOS4kFMxnoEzq6nzRP21DwALo6wiKdUvg3G+9iZzTqIxTcoAbQl9ARwCQBXJPQumFBhl5TkmY/A4fV0WPLeAdYH8BSBL6RwquQvp3FDhRJAW0JNAF1dzosSvCR4UEVxIXwZCNaDpJfJQ//zkbvmP5zAJxKnDd70N6MFH0oAbQktAVzCJ36sNXqzEuU6QYmKeZHA8bX0hiJhions1EQnBqm2DUYBOALANBortCgBtCWUBNDVOr0ywRW/zOuixC5+0nA5gfPrydXKE1N+Id5C4BvJ9pzM3yPqmR0zxxOOFdciMRWYE8Ae/lbv/QS/x1LX6rKaHUcQBEA9bWdoF3a2APAKgY+kam3wX38jUITB2YRjRAmgvQ9uUgF7TOxD7nq3CyO2IhgM9eS6Foj6TO17JMbcBkj61gZDffs21/pJhMOdhDGsBNDeBxJwq46v2DM/cTD+x9o4gTC775eY6vmRmOVqQh4HYFrrIBNtXeD6iCCGukoJoL0PUtdtSv446Ea8guRuKPexNlBArKTzJFHpagD9rYNKtM0aBDFUS0oA7X2Qsu4E0FvzCg/3EQRFPW1mbZwA2dKXBrH2ndSeDdzN/E2sg0h0zPmkY0AJoL0PUtUNSv74OIMgMOrpNGvjBIpbOT0SwGgCH0r5bOC2C3/ptw5F2PQnbumoBNDeBynqMt325WQ3guCoJ3fTVXTW7eWfCbUSClHjAAzyJStE+LiLOncQxFU9KQG090Fq+j9dYONlMYIAaSSdg+qcdQA8QeBLacqbcEsW4F/Bwynkca4E0N4HKenPKvLMfxFkGEGg1NO+1gaKaGViL3Jfp6JX/FlNEQ/dyY/TTJQSQHsfpKDxAA6wHpQiH9cQBEyjopmiOGYAcJLaypm9fA9W8dPoWDSgG/hKAO19ELu+ALCt9aAU+fktQdDUk+t/O5OcWcrW/40E/k3la/hvvmajiIe+AI4K7LKVEkB7H8SsDwCsaj0wRWusThA4jbS7HFoaGwN4lsDHsUrt2+I8NuP6uL5FEF+tSgmgvQ9i1fMAFrAenKJ1epJ/xWobuPy2cu68xqcEvo5F7wD4qQ5AR8eqvktRFqhSSgBnIbB3Shfa+lk7XLTPvQRB1GgbeGY5t3Rm8iVJvibweahyH1LHq31bdMwFYHAELRdTSgDnJrB37Jrg5zvVLw2cPxIEUyNpG7g6lgdwD4HPQ5sI/wFg3gr9JMpnGgCHAxhJEGNFyK3yp8KCBPaOWSMAbGftZFEMqxAEVCO5lnWiWlypkjcIfM+ux32tRRFf/L9OEF9FH01IhcUJ7B1zKaulrB0siq0TN4x8hcUNaFEtrnH3H/zVfusYYLzxtoeq3EdHzCvgzyEdliGwd4y6CsD01s4VxXMRQXA10olyuhnzALhUbeW+icMxAP6iSTA6ZvPn/GI+A/sA0mFlAnvHdr55H2univL4KUGQNdIwf2NZ2LEmgEcJYsFK1wFYRAEYFW5OOQjAZwTxVbYuQDqsQ2DvWORKhS1l7VBRLjP65vQZsXTolKMO2i4A3ieIh6r0EoDNrA0vSqmD+RxBfFWllNpzbUNg7xh0MYA+1s4U1fAAQcA10h0KBBrcOZAT/JZoFqk+AfBrAD2sjS0KZQkAtxDEV9XaKKE42p3A3iHLfeBvZe1EUS2HEQReM7lD2oKHhQH8myAuipQ7B3am6k9GW+uSfaejrBqAvZAOBxPYPORVP7VgTZCFAglOwceGAJ4hiI9OdReAZa2NKQqvcrALeaWDsnVJYjF1AoHNQ1z1c1vnImEeIwjERhrjq7wLPnr4LdNPCOKkVbmab9taG1AUjvpdfxvfWyQWW+cSzCmhyJVZO0/t3ITjtwQB2Uyu/YzgxbXuOyuQkhoj/dGHlLbHUjmacC1BfDHo6QT7Ul9DYPcQ5C5BrWftLMHDfAHUe3MrTCpGyc+yfks1I5SL8Qt9n1cRDylcTmpVP0Z6PE5gd/ZWbq780dTWjhJ8sN8Gdvq9tZFEsG21HvU1DUU8pFieKG8bTXcGMjU+JrA9q673Cz1C1GQ/giDN09i8n/wXDNMAONxvuVrFzLsAdkpwOyyFor9a8Zky3j9L9EU/HcH7iVFujGxg7RzBzxyBnN86ytpQomXm8je5qzxm8CWAYwD0lb+iYn4A/wzgyIqFxgP4EdJkaQL7M+kNAD/Th69ohZsIAjdPbSt34UCEx+oA/ltBjPwLwALWDysKpa//+BtNMAexat+EY24LAvsz6CMAv1ELVRFzKx3dCA6Xbn5L9rUS4uJB3W6LMl52BDCEYN5hlVsNPQRpE8IRprIXRtyOxwzWjhBh13R7lyCYm8mtAmiFJ2zcTbQ9C7oo8hCATawfSBTOqt631vMNs74AsL1i75sSVFmCctUx/gRgRsWAKIKjCII6j66Qu6NZ4VnXF3Ed3uIZlz8DWNL6AUQpZ0Yv0jm/pmPgRQArKf6+4T6Cd1KVcnPlESqNJopmvkAug2Q+cRBxsagv7XEsgP/zif5lAM4AcCSAH6qOX7Qw3BoPQeP8MRhnL/EtIXYiakfuw/dAANPK8aIsbiAI9Dx6ItF6V0LExnb+5WY9p7DL1Wtd0dpZZMxN4JeydY9vW9nd2tgifrYiCPi8cufIhBBhshyAuwnmEXa5SzA7qKxHTTYh8E8Z+grABQCWr3pQirRxl0HeIhgAea+9z2ZtMCFES8wKYHBAx00sL7y5ow99FF91OZjAT0XqGQADAMwinwsrfkMwEPLKnRETQoRx+3uA7+pjPW+E0L5rQWuHBcBVBL4qooOL+yBa29qYQsAfMg2pt6IrBCqE4GVzAC8TzBXselIX3FpiKIHP2t3ivc537Ohd1qATol2OIRgkefWeimAKQXuzO5SLZZb62K+O6qB/fvoT+K3VpO96X+lARZsFNbP7nqpZIHKlQoQQHLjitIMAjCWYG5jl7HMygH7WDguQHQn8l2d791/+t05vbTAhWuFsggHUSkskbQULYctUfoVjGMGcwK7bASytgG2bMwl8WEuv+4+fjdWXV4S+fTOeYEDl1fu6FSyEGe6F9yzBPMCul/2ZSNEZTxH4cnL9AcCccqqIiSsIBlYrusG3GBNCVMPCAK4lGPshbAcepFWhQpiDrF2gK2k0XTGPJgQPi/n2Q1lA+pW10YRIgL4ABgZ2VthCbhflYn+uWhTDLgR+7dqZSogouZBggLVaQNV1GRBClHPObw8AHxCMdXbdr/ZtpXApgW8nly4himiZH8AYgkHWilw3E1VTF6JYVgXwH4Lxza53/SqVjqOU8wHCdsnIteoTIlpYb1w1u2WnulpCdM48fhuT6dwV6+7D8b6YviiHlQn83FVukUSIaHG3m74gGGityhW0FkK0f87vSJ/YWI9ldl0OYD4FWukMJPB110YEQkTPCQSDrVW5FYttrA0nRGB088VrhxCMYXa5CwDrWjssIZ4n8Pnk+qe1QYSogpkAfEQw4FrVSB3EFiI3qwB4iGDcssudQ9vLn0kT1bAUgd+7anc5X6TCvgQDrh25puE6pyFE42MegwMr/m7Vvs11elA/1+o5ksD/XTWvgR2EMKE7YQX2vHre9ygVQkyiJ4ABAD4nGKMhXCxzq1DCBrbtX/d7hEiKdQK+DXi3KvEL8T+2A/AGwbhk10sANlPcmLI0QRx01amKCZEilxEMvnb1D5WHEYmznP8Ysh6LobRvm9raYQInEsRDV+mjQCTJ3P5yRRaoXHcTHd4WKV7kGuR7l1qPQWapfRsXLgF/nyAuJpdrjqB6jyJZDiMYhJ3oLFXqFwm9QA8E8CnBuGPXfQBWsHaYmOKoQkamW+Qjkfrh8WcIBmIn0hkOETsbA3iOYKyxS+3beLmJID7YDlj8AAAQwUlEQVS6ypUAEgKp1wwLfTvpz9ZGFKIElgBwM8H4YpfrcPQnAH0UhZTMS/iOcb9nNmvDCMHAXwgGZKc6XdvBIhJm9Of8xhKMK2ZN8F0cVMeNm6MIYqWr7rE2ihAs9ALwAsGg7FSX6rafCBh3qWkX36HCeiyF0L7NlbMS3LhV2eEE8dJV+1sbRggm1oikg8B1AKaxNqYQLbIBgKcJxg+7PvJFr11Be8HPvqQrx1o1FqILpxMMzqKq/U8v74oAWAjANQRjhl2uZMdJat8W3Ir2KwSx01UPWxtGCEZcTaRXCQZoEXoWwALWBhWiDu4D5QQAXxGMFXbdCGAxRVJwbEMQO7W0n7VhhGBlZf+1nUWgDwCsbm1QIbqsiuxOWBSXtX3bpoqeYHmQIIa6yr3bZrE2jBDMHEwwUIuSW2HZ0dqgQgBYFcB/CMYEu1yx60P95TQRJt8niKNautraMEKw081XSc8i0QRfikAHx4UF8/lyJRMIxgKz3CW0cwDMqjANnocJ4qmW3La0EKIJrkjmUIIBW6TuBjCHPC8qLIFxaOA9t6uSSxhWU2RGwZYE8VTvBrnrfiWEyLmMH0NpmK7totaS90XJK+jbA3iLIN7ZNcTXPnQ2E+Hj/PgIQVzV0mnWxhEiNE4gGLhFa6yvJaaXjiijteJDBDEeQvu2PwLorRCMiu0IYquelrU2jhAh3lpkbORdhG4FMLe1gUUUzAlgcIQr5mXoepVoipKepHX/nO61No4QIfcmjaU+YK0bhz+zNrAI+qXnVpM/J4hldj2u9m1RcxhBjNXTj62NI0TILBH5S+4Kn+gK0cph99cJYpddat8WP7MTvx/cZcaprQ0kROhsH3kpi7cBbGFtZEHPcgDuIohXdrmiuyeqfVsSXEgQb/XkzpoKIQrgOIIBXbau1NlAUQNXn+5sAF8TxCi7bgCwqKIoCVYjPvvqPkJU+kuIAi+FXE8wsMuW2874tYpHC799dIA/L2odl+x6EcAmipqkxsZTBHFXT5dYG0iI2OgL4L8Eg7sKPQZgbWuDCzM29z1preOQXS45/o3OWiXHEQSxV0/uuNIy1gYSIkZcQ+2XCQZ5VXKrngtbG11UxqKJrHR3Krf1d7G/BCDSYjEAX5LP2UKIkugP4AOCgV5lAenBvk2eiJN+AI73Z4es441d9wBY3tphwuwo0P0EMdhI6vgkRMmsCmAUwWCvUp/4rY/pFV3R0APALwEMJ4gvdr3lKwKIdNmfIA4bSYWfhaiIzQCMIxj0VWuEXy1S/cDw+/amdJyhk/ZtLt6ntXaaMGUpAKMJ4rGRdBFJiArZlbgUQBUH4I9UIhjkh8uTBPHDLneY/jIA81g7TJgzDYBnCWKyWccZ9XkXomJ2SzgJzPyB6Iv9F7LgZQ0AdxPESwhS+zYxOWcQxGQzafVPCCP2jbxbSB65578ZwA/0JUp1aN11ebmDID5CkLvctbu3mxCOrQKY2++Tq4Sw5TcEEwFTYVxXRFg3h22Yzh9Yf5UgFkKQu/38F11wEl1YwPd0zsilmq1CEHAAwWTAJNc+7HZ/4aCntXMSKVF0vL+xbe37UOTic0lrxwk6evuC+Bm5VPdPCCIOI5gUGDUMwCnA/7d3J7B6FVUAx/9QCgWRvZRFqBBApCwCUgFFFIqgWClrMSIqIKA2VqkViKgIjcW4pewhCMoiS5EloEYJEimCsksKRgRBSqEW20LBAsUWM3DQV6B93/e+772Ze+//l5yQUBJe556ZO2/uzBl29RNbV6XT2EcCNzV8L2q78WBsV5DeyiUF5Ghvkfr7dj4+qSzjfBkvc+CaCZwF7OG9w31enTgEuBZ4sYAXUdVOr4/3+jYtw3EF5GkrcalPUSrTYXGLRu5BovRIRYgvAA4FhuZ+aAVbGxgLXBy1GHM/typuRzg3rnOUlmbPitR3TfUpN/IxSuXatwLFQ0uLR+LqudFRf6upBgE7AsfHPrUqvJRKvr7NT2XqzYgK7Z/9po9TKt/uwLMFDBhVjPR587bYO5hWvzamvlaNXJkAXA08U0D7Vz0eBQ7K/WBVCang94wK5XXaBiKpAnaIQxC5B446xJPANcApsQ9u6wqeME6D905RP/JCYHp8oszdtnWJdE/3Sb4k1aI1KnDTR8/wlxqpYjaJF33uwaOOsTBOdU4FvgscG1eejch4h+uQ+P+PAb4Wn7XTSd3HK1BYtqqxODbGe32bWrVSxW7IST+rpApaLW7LyD2INC3mAH8GfgdcBZwHTAYmRgmVgyPSns1RESNjD97IHv/ugPjv0gGfo6P49yTgfOC6+Fydii97SGPgn/GdUWJIatXgOEn/SoV+0d3GxytVe3P/aQUMJoZtUJdT5OOjX0ntjMOXFZC/7UT6ZVNSDaQVJMvE5B9UjWq2Qeo7U7y+TX2c/FWh0HPP+GvDqyJItbNPFKbNPbgYtkGVciB9bt8sd+dVJS0PXFRADrd748duuRtOUv/c33p3AYOMYRuUngMPAB9xEFIHe/4uLSCP242zfeJSvU+iTSlgoDFsgxJzYF4UxK5auR+VYxXglwXkcl/KXqUyNZJq7vC44if3oGPYBiXkQKqNeI7Xt6lDawK3FpDPfSlrlLYJSWqIbWLDb+7Bx7ANcuZAKtmzbe7OqMpbP0pAVXE8OyN340nKUy/wZwUMQIZtkOOaqwMddNQF6f7nf1S0D6fC9l73JjXYgVHnLPdgZNgG/Z0DaevDyZa6UJd8tMJ3sC+MqyIlNdy6UfYi96Bk2Ab9tc/pSmB47o6m2hgfpVOqOmalA0+S9KrlgGPikvvcg5NhG3QrB+4AdrGPq0tWrsHWmZujVqEkLSEVv51WwCBl2Aadlrb4rC86ddEWwH0V75dPxaEVSVrqauDngbkFDFiGbdBuDqRN+evYt9VFY4H5Fe+LLwO7mxWSWjEsrjRaXMDgZdgG7eTAdGBru7k6VKcC+hPNBkntSldjPVzAAGbYBu3kwHPxGVjqi21r8Mn39bg2vuxIUp82P08CXihgMDNsg3Zy4DJgLfu8WjQIOBF4qSb9LP3y7lVvkjr2Dj8LZx/QjfbbYBawv/1fvdgUuKVGfWx+3PwkSV2zM3BbAQOcYRu0kwOphIerIXqjFYAJNbsnPd1z/TEftaT+kPaUHAL8vYDBzrANWs2BmcDBDgkKHwDur2H/+apPWNJAnJQ7Lj6z5R70DNug1Rz4VXzyUzMNBS6saZWD83I3rqRmWcWJYPaB32ivDRYA3/B+4EYZDIwD5tS0v9wcf0dJyrIieHR8ass9GBq2QSs58DhwuKUyam808FDN61964l1SMSuCTxYwMBq2QSs5cCswMnfHUdd9EPhjzfvAY8CG5o6kkqwYqyv3FDBIGrZBbzmQ9oRNBbbK3XHUlWoFNzQg52fHXcWSVPSJuyujREHuQdOwDZaVA4siV32xVnOcub4h+Z1K1+ySu8ElqVWbAafX4IJ1o/5t8HLUDxxh9y6+LFWqe/eHAnJmoCLdVjIqd8NLUl8MiZpsN9a0HINRnzZYHKtKvnDL8vY4dDa9gBwZyFgIjMnd+JLUDelT22keGsn+YjF6b4O0ynRo7G9VHu+KrwjPNjBnnfxJqu21TKNjI36drmYy6tcGTwGTgI1yd5qGWBX4DHBTg78YpMnfAbkfhCT1t7fFJ+K0Gf/5AgZf47XDEekeaCfn/8+H/8Rp00NiW4O6Z3lgL+Aix4BX96MeZHJJamJdwQOBy4DnnIwN+Isn7dP8ArB+j5OWz/gc3tRW84Bzo33S5EXtGwR8GJgCPGGO/W/lzzusJTXekFgV+H5NL3IvIdLeqqvjk9vSbhfYPmqQ5f5ZS410G86ZwB4xqdHSrQzsF/fz/quAZ1dSpNX2fU0eSXqzDYDPAZf78ujoM2a6LeGUWL1KezFbsWVcpZb7JVl6PA38FPgksI6d+NXV0R2BrwO/cUvBMleUU3+UJPUirbRsB3wRuBh4pICXf6mflP4E/Dg+rXdyh+jwmt+x2h/7KO8ATo2yMulwQ92tECvGXwKuAuYU8BxKj1nAe3I/OEmqsvWA/eOT8bSGlo54IurYnRh3o6Y9ld00DLivgL9nVfdY3hV73sZGofRU2Liq0s++aZTK+VHcsbyggHauUjwKbJ77QUpSHb0z9tWcAFwak5eXChj4O40X4++Sbq+YECtMA/XJcfX4nJe7DeoQ6ZeUW6LW3VHA7vGLTElWjMnqftGP0kndOz2t2/Gzvzu2tUiSBsjgKDC7N3AMMDlOHaeyJ08WMCl4fa/ezHjRTo3i2UfFqcmNCzh5mj71nVNAO9U15scE4apYMZwIHBYTxHRd3YZRPqkTq8UvSDsAe0Z5my8DP4ySTLdFDi4qoD3qFtd14flJkvrh9HF6Me4E7AN8Kl6MJwNnAD8Hro2SKSluj097d8dexJ5xT/zZXfGJ7MZ4qV8Q+/K+Eyt4R8RK5fZRgiX3BK9VX4nJau4XapP3eM7ukW9/iVy7I+KNefkYMNdnlvWZpc/lnhaXJFXePg3db2nYBu3kQPpFaVzuzipJUjelU4wznBA4KTQH3jIH5saWE0mSamco8FsnAE4CzYElcuDeOC0tSVJtDYq9kh4ccCLoRPC1GqXdLsUkSVKx0oEWiwA7CWzqJDCVaRqfuxNKkpTDJnECNffL2LANBjIH0knrkQ45kqSml9Q51wmIk9CG5ECqJ7pG7k4nSVJJpWJKKbJt2Ab9Ubj76NydTJKkUk8JX+PkwwlozXIgFdz2Pl9JknpxZKyY5H5xG7ZBJznwMnBqXC0pSZJakK7a+70TECehFc2B+4H32tMlSepbzcB0x7KrgfknNEbr5V1OctVPkqTOrQ9c5CTESVjhOXA7sJUdXpKk7voE8HgBL3rDNuiZA/OAcbFiLUmS+kG6Nuu02GDvRMw2yJkDi2Nlepg9XZKkgbEdcKMTICfBmXIg3WCzs51dkqQ8Pg486ETQieAA5cBs4Fg/90qSlN8KccvCLCeCTgT7KQeej60Hq+dOdkmStKT0cv4e8IITQSeCXcqBhcBZwHp2NkmSyrYhcLoTQSeBHUz8FgFXeIWbJEnVs258tlvgiqCTwTYmftcDO+ROXkmS1Bkngk4AW5n4XQlsaWeTJKl+N4pMBuY4IXJFMHIg7Rc9D9g0d3JKkqT+tRJwODDdiWBjJ4KzYnvABnY2SZKaZTlgVOz5WlzApMQYmALOqWTQkNzJJ0mS8tsaOAOY60SsdhPRBXFl2665k0ySJJX7efjgWBX0vuFqxwPA8cDauZNKkiRVx8bAt4BHC5jMGK21wdPAlLgrWpIkqc+WB3aLicUMJ2PFTUbTqe6fAHvHtYCSJEldNwI4GfhbAZOfpsa82Nc3GljRHJckSQN5ivh9UU7kXk8S9/uk70HgB8AewGDTXJIklWAY8GngEuCfBaySVT3+DfwaGGehZkmSVJXVwe3jFOoN3j7S0oRvfkz4TgTe76ddSZJUhwnhu4EjgPOjREnTi08/DFwBHAfs5AEOSZLUBGsCewETgAuBu6Jo8Ss1i1RP8SHgcmBi7OFbI3fjS5IklWIQsAVwEPBt4GJgGvAEsKiAydyyYjZwe0xmTwD2j1VPT+lKkiT1UZpIbR6rhkcBpwBnA1OBm4H7gZnAi12c1D0ThbDvAW4CfgGcGfv00oGXD8XP5N26kiRJma0KDI/Ts1sBO8Y+u1ERY+Kfu8Sfpdgy/vsUa8W+RUmSJEmSJEmSJEmSJEmSJEmSJEkSFfRfX9qlhAsPd60AAAAASUVORK5CYII=",Nqr="data:image/png;base64,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",Uqr="data:image/png;base64,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",jqr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABdFBMVEUC26MAAAAAAQEACwgAFhAAIhkAOisBW0QBfl0Bp3wCzJgC16AADwsAEw4AQDABelsCu4sCtIYBc1YAJRwAAgEADgoBQzIBkWwCzpoCyZYBhGMAKR8AAQAABAMALSIBhmQC0JsCzpkBeFoADgsAAwIAKh8BongC2qMCvo0BSDUABgQBUT0CxZMC1qABfV0AEAwAIBgC2aECp30ADAkBeFkCvIwBZUsC1Z4CwpEBNScAAgIBV0EC050BXkYBbFEBjGgC2qIAFA8CtYcAMCQC1Z8BfFwAEg4BUz4Cs4UC2aICv44BhWMBPS0AOSoC1J4BgWAACQYCvY0CsoQACQcBjWkAHRUBV0ABSzgAKB0C1p8Bb1MACAYC0ZwBkWsCuIkCsIMBmXICwI8BiWYCypcBfl4Cr4MACggBdVcCxpQCxpMAIxoBRDMBbVEAGhMBpnsBj2oC2KEBg2IBgF8ANykABwUBe1wBRjQAFRACxJIBo3kBimf////Yuo2SAAAAAWJLR0R7T9K1/AAAAm5JREFUeNrt2tdTU1EQBvDdBAQ1FgIBExI1lBBKEGlibNgVFRtKRwEbBAIWbH+9Lz452XsznJPNN+N+z3cmvzn3tLsbIovFYrFYLBaLxVKvcFWJRBsajzQ1Hz12XBEREzAnTp46XQNH5R9ribe2CY5Ee8cZHQRRMtWZFhiZs+fO6yCIsl3d0hTp6c0pIagv398jMQYGh3QQRIXhC+KCGcld1EEQjTaKirFxb+skBEETvaIiM3lJCUFTl0VF8cpVJQRNyWNRvObnjYQjaEKeF8XrXhRVIGhUXiMDN6aVEDQs7hd885YWotAvIvj2HSUE5btlxV0tRF9XWkTcyyshKNspD8V957lZJYJSbSIi9kALkWyVh6LpoRKC4jKiYUYL0RKTFY+0ENOPZcSTWSUEPY2IiGfPtRAvXspDMaeFKLySEa/dtorqETQvIxYWtRBLMmJ5RQuxKiN4TQvxJgDxVguxHoDY0EJsBiDeaSEWAxDx/woB8TpmECbm+wCE2hKF2Kwgtm2EAwziKIe41CBc7yAuuhBXfoSPH4jPQIQPYoTSAESRBKFcBFE4QyghIhRTEcrKCAV2hFYDQtMFoP0E0IhDaEkCNGcD2tTMHz5+UkAENOz/zoj4Vs0RMQ5LZHvO338YQn9NTKaUrC3i36d2Kj61W/ZxejkiOLG3X38ERz97UbghOLqn1pyVEZwoAyB418MacUZwyX2/cEdkHIsTXhC87byDe0BE3Mq5fhA84nqm+kDwFwTEV8dbtxfEN8dvQS8IPkBAfHe7eftB/HCrIfpB8E8ExC8ExG8EhEYPLBThfHxYLBaLxWKxWCyWQ+QPoptb+kQLop8AAAAASUVORK5CYII=",Wqr="data:image/png;base64,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",Vqr="data:image/png;base64,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",Wue={deepSeek:Rqr,volcengine:Iqr,kling:Mqr,zhipu:Pqr,qwen:Kpt,wan:Kpt,openai:Fqr,vidu:Nqr,anthropic:Uqr,runninghub:jqr,gemini:Wqr,grsai:Vqr},zqr={class:"optionItem"},Hqr={class:"optionMain"},$qr={class:"optionLabel"},Xqr={class:"optionType"},Gqr={class:"emptyActionWrap"},Yqr=Je({__name:"modelSelect",props:Fc({type:{type:String,default:"all"},size:{type:String,default:"medium"},placeholder:{type:String},changeConfig:{type:Boolean,default:!1}},{modelValue:{type:String,default:""},modelModifiers:{}}),emits:Fc(["change"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=t;async function s(f){if(n.value=f,r.changeConfig){const{data:k}=await mn.post("/modelSelect/getModelDetail",{modelId:f});o("change",f,k)}else o("change",f)}const a=fe([]);An(()=>{u()});function l(f){f&&u()}const d={image:$t("components.modelSelect.type.image"),text:$t("components.modelSelect.type.text"),video:$t("components.modelSelect.type.video")};function u(){mn.post("/modelSelect/getModelList",{type:r.type}).then(f=>{const k=new Map;f.data.forEach(A=>{const p=A.id;k.has(p)||k.set(p,{group:A.name,id:A.id,children:[]}),k.get(p).children.push({id:A.id,label:A.label,value:A.value,vendorId:A.vendorId,type:d[A.type]})}),a.value=Array.from(k.values()),a.value.map(A=>A.children).flat().every(A=>`${A.id}:${A.value}`!==n.value)&&(n.value="")}).catch(f=>{console.error($t("components.modelSelect.msg.fetchModelFailed"),f)})}const h=[{pattern:/gpt|o1|o3|o4|openai/i,provider:"openai"},{pattern:/claude|anthropic/i,provider:"anthropic"},{pattern:/deepseek/i,provider:"deepSeek"},{pattern:/gemini|veo/i,provider:"gemini"},{pattern:/qwen|qwq|tongyi|通义|wanx|万相|wan/i,provider:"qwen"},{pattern:/glm|zhipu|智谱/i,provider:"zhipu"},{pattern:/doubao|seedream|seedance|volc/i,provider:"volcengine"},{pattern:/kling|可灵/i,provider:"kling"},{pattern:/vidu/i,provider:"vidu"},{pattern:/runninghub/i,provider:"runninghub"},{pattern:/grok|xai|grsai/i,provider:"grsai"}];function g(f,k){const A=`${f||""} ${k||""}`.trim();if(!A)return null;const p=h.find(b=>b.pattern.test(A));return p?Wue[p.provider]:null}function m(f){var k;return((k=f==null?void 0:f.slice(0,1))==null?void 0:k.toUpperCase())||"M"}function v(){const f=ku();f.activeMenu="vendorConfig",f.showSetting=!0}return(f,k)=>{const A=yZe,p=uL,b=Rvi,w=Si,O=pA;return xe(),Ut(O,{size:r.size,modelValue:n.value,"onUpdate:modelValue":k[0]||(k[0]=y=>n.value=y),placeholder:r.placeholder??f.$t("components.modelSelect.placeholder"),onChange:s,onPopupVisibleChange:l},{empty:Oe(()=>[ge("div",Gqr,[c(w,{class:"emptyActionButton",size:"small",variant:"text",theme:"primary",onClick:Mr(v,["stop"])},{default:Oe(()=>[Bt(Pe(f.$t("components.modelSelect.goSetting")),1)]),_:1})])]),default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(a),(y,C)=>(xe(),Ut(b,{key:C,label:y.group},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(y.children,_=>(xe(),Ut(p,{key:_.id,value:`${_.id}:${_.value}`,label:_.label},{default:Oe(()=>[ge("div",zqr,[ge("div",Hqr,[g(_.label,_.value)?(xe(),Ut(A,{key:0,size:"24px",shape:"round",image:g(_.label,_.value)},null,8,["image"])):(xe(),Ut(A,{key:1,size:"24px",shape:"round",class:"fallbackAvatar"},{default:Oe(()=>[Bt(Pe(m(_.label)),1)]),_:2},1024)),ge("div",$qr,Pe(_.label),1)]),ge("span",Xqr,Pe(_.type),1)])]),_:2},1032,["value","label"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["size","modelValue","placeholder"])}}}),T8=oo(Yqr,[["__scopeId","data-v-a402fa9b"]]),Zqr={class:"aiConfog"},qqr={class:"banner"},Kqr={class:"content f ac jb"},Jqr={class:"textContent ac"},eKr={class:"btnList f w"},tKr={class:"rightBtnList f nw"},nKr={class:"cardGrid"},iKr={class:"skillCardHeader"},rKr={class:"headerLeft"},oKr={class:"skillName"},sKr={class:"skillCardBody"},aKr={class:"dialogContent"},lKr=Je({__name:"agentConfog",setup(e){const{isElectron:t}=xs(ku()),n=fe([]),r=fe(!1),o=fe(null),s=fe(""),a=[{pattern:/gpt|o1|o3|o4|openai/i,provider:"openai"},{pattern:/claude|anthropic/i,provider:"anthropic"},{pattern:/deepseek/i,provider:"deepSeek"},{pattern:/gemini|veo/i,provider:"gemini"},{pattern:/qwen|qwq|tongyi|通义|wanx|万相|wan/i,provider:"qwen"},{pattern:/glm|zhipu|智谱/i,provider:"zhipu"},{pattern:/doubao|seedream|seedance|volc/i,provider:"volcengine"},{pattern:/kling|可灵/i,provider:"kling"},{pattern:/vidu/i,provider:"vidu"},{pattern:/runninghub/i,provider:"runninghub"},{pattern:/grok|xai|grsai/i,provider:"grsai"}];function l(y){if(!y)return null;const C=Object.keys(Wue).find(_=>_.toLowerCase()===y.toLowerCase());return C?Wue[C]:null}function d(y,C){const _=`${y||""} ${C||""}`.trim();if(!_)return null;const S=a.find(L=>L.pattern.test(_));return S?Wue[S.provider]:null}function u(y){return l(y.icon)||d(y.modelName,y.model)}function h(y){return(y==null?void 0:y.slice(0,1))||"A"}function g(y){if(y.disabled)return window.$message.warning($t("settings.agent.msg.notAvailable"));o.value=y,s.value=y.modelName,r.value=!0}const m=fe(null);function v(){var C,_,S,L,E;o.value&&(o.value.modelName=s.value,o.value.vendorId=m.value);const y={id:(C=o.value)==null?void 0:C.id,name:(_=o.value)==null?void 0:_.name,model:s.value.split(":")[1]||((S=o.value)==null?void 0:S.model),modelName:(L=o.value)==null?void 0:L.modelName,vendorId:s.value.split(":")[0],desc:(E=o.value)==null?void 0:E.desc};mn.post("/setting/agentDeploy/deployAgentModel",y).then(()=>{window.$message.success($t("settings.agent.msg.configSuccess")),A()}).catch(T=>{window.$message.error(`${$t("settings.agent.msg.updateConfigFailed")}${T.message}`)}).finally(()=>{r.value=!1})}async function f(){t.value?await fetch("toonflow://openurlwithbrowser?url=https://api.toonflow.net"):window.open("https://api.toonflow.net","_blank")}const k=fe(!1);function A(){mn.post("/setting/agentDeploy/getAgentDeploy").then(y=>{n.value=y.data.map(C=>({id:C.id,model:C.model,modelName:C.modelName,vendorId:C.vendorId,name:C.name,icon:C.icon,desc:C.desc,disabled:C.disabled}))}).catch(y=>{window.$message.error(`${$t("settings.agent.msg.getAgentListFailed")}${y.message}`)}).finally(()=>{})}An(()=>{A()});async function p(){k.value=!0,await O();const y=w.value.find(C=>C.id==="toonflow");if(!y){window.$message.error($t("settings.agent.msg.toonflowNotFound")),k.value=!1;return}if(!y.inputValues.apiKey){k.value=!1;const C=fe(""),_=fo({theme:"warning",header:$t("settings.agent.fillKeyHeader"),body:()=>xn("div",{style:"padding: 8px 0"},[xn(Wu,{modelValue:C.value,"onUpdate:modelValue":S=>C.value=S,placeholder:$t("settings.agent.keyPlaceholder"),type:"password"})]),confirmBtn:$t("settings.agent.confirm"),cancelBtn:$t("settings.agent.cancel"),onConfirm:()=>{if(!C.value){window.$message.warning($t("settings.agent.msg.enterKey"));return}_.hide(),b(C.value)},onClose:()=>{_.hide()}});return}b(y.inputValues.apiKey)}function b(y){k.value=!0,mn.post("/setting/agentDeploy/agentSetKey",{key:y}).then(()=>{window.$message.success($t("settings.agent.msg.configSuccess")),A()}).catch(C=>{window.$message.error(`${$t("settings.agent.msg.updateConfigFailed")}${C.message}`)}).finally(()=>{r.value=!1,k.value=!1})}const w=fe([]);async function O(){try{const y=await mn.post("/setting/vendorConfig/getVendorList");w.value=y.data.map(C=>({...C,enable:C.enable==1}))}catch(y){window.$message.error(`${$t("settings.vendor.msg.getVendorListFailed")}${y.message}`)}}return(y,C)=>{var R;const _=_n("i-good-two"),S=_n("i-share"),L=Si,E=yZe,T=Sg,D=km,P=p2,Q=A2,M=gc,B=f4e("loading");return uu((xe(),Ge("div",Zqr,[ge("div",qqr,[ge("div",Kqr,[ge("div",Jqr,[c(_,{class:"icon",theme:"filled",size:"24",fill:"currentColor"}),ge("span",null,Pe(y.$t("settings.agent.bannerDesc")),1)]),ge("div",eKr,[c(L,{onClick:f},{suffix:Oe(()=>[c(S,{theme:"outline"})]),default:Oe(()=>[Bt(Pe(y.$t("settings.agent.visitWebsite"))+" ",1)]),_:1}),ge("div",tKr,[c(L,{onClick:p},{default:Oe(()=>[Bt(Pe(y.$t("settings.agent.oneClickFill")),1)]),_:1})])])])]),ge("div",nKr,[(xe(!0),Ge(sn,null,Bi(Ae(n),(I,F)=>(xe(),Ut(D,{hoverShadow:"",key:F,class:"skillCard",onClick:j=>g(I)},{default:Oe(()=>[ge("div",iKr,[ge("div",rKr,[u(I)?(xe(),Ut(E,{key:0,image:u(I),shape:"round"},null,8,["image"])):(xe(),Ut(E,{key:1,shape:"round",class:"fallbackAvatar"},{default:Oe(()=>[Bt(Pe(h(I.name)),1)]),_:2},1024)),ge("span",oKr,Pe(I.name),1)]),I.model&&!I.disabled?(xe(),Ut(T,{key:0,theme:"primary",variant:"light",size:"small"},{default:Oe(()=>[Bt(Pe(I.model),1)]),_:2},1024)):I.disabled?(xe(),Ut(T,{key:1,variant:"light",size:"small"},{default:Oe(()=>[Bt(Pe(y.$t("settings.agent.notOpen")),1)]),_:1})):!I.disabled&&!I.model?(xe(),Ut(T,{key:2,theme:"warning",variant:"light",size:"small"},{default:Oe(()=>[Bt(Pe(y.$t("settings.agent.notConfigured")),1)]),_:1})):nn("",!0)]),ge("div",sKr,Pe(I.desc),1)]),_:2},1032,["onClick"]))),128))]),c(M,{visible:Ae(r),"onUpdate:visible":C[1]||(C[1]=I=>Fn(r)?r.value=I:null),header:((R=Ae(o))==null?void 0:R.name)+" "+y.$t("settings.agent.modelConfig"),width:"480px","on-confirm":v,"confirm-btn":y.$t("settings.agent.confirm"),"cancel-btn":y.$t("settings.agent.cancel")},{default:Oe(()=>[ge("div",aKr,[c(Q,{"label-align":"left","label-width":70},{default:Oe(()=>[c(P,{label:y.$t("settings.agent.selectModel")},{default:Oe(()=>[c(T8,{modelValue:Ae(s),"onUpdate:modelValue":C[0]||(C[0]=I=>Fn(s)?s.value=I:null),type:"text"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])])),[[B,Ae(k)]])}}}),cKr=oo(lKr,[["__scopeId","data-v-cbb834b1"]]),dKr={class:"dbConfig"},uKr={class:"actionInfo"},hKr={class:"confirmContent"},fKr={class:"confirmContent"},gKr=Je({__name:"dbConfig",setup(e){const t=fe(!1),n=fe(!1),r=fe(""),o=fe(null),s={deleteAll:{title:()=>$t("settings.db.msg.clearDbTitle"),firstMessage:()=>$t("settings.db.msg.firstConfirm"),secondMessage:()=>$t("settings.db.msg.secondConfirm"),keyword:()=>$t("settings.db.msg.keyword")}},a=X(()=>{const v=s[o.value||"deleteAll"];return{title:v.title(),firstMessage:v.firstMessage(),secondMessage:v.secondMessage(),keyword:v.keyword()}}),l=X(()=>r.value===a.value.keyword),d=X(()=>l.value?$t("settings.db.msg.confirm"):`${$t("settings.db.msg.pleaseInput")}"${a.value.keyword}"`);function u(){o.value="deleteAll",r.value="",t.value=!0}function h(){t.value=!1,n.value=!0}async function g(){if(l.value){n.value=!1,Wh(!0);try{await mn.get("/setting/dbConfig/clearData"),window.$message.success($t("settings.db.msg.cleared")),tie.push("/login")}catch{window.$message.error($t("settings.db.msg.operationFailed"))}finally{Wh(!1),o.value=null,r.value=""}}}function m(){t.value=!1,n.value=!1,o.value=null,r.value="",window.$message.info($t("settings.db.msg.cancelled"))}return(v,f)=>{const k=_n("i-clear"),A=Si,p=km,b=_n("i-attention"),w=gc,O=Wu;return xe(),Ge("div",dKr,[c(p,{class:"actionItem"},{default:Oe(()=>[ge("div",uKr,[ge("h4",null,Pe(v.$t("settings.db.clearDb")),1),ge("p",null,Pe(v.$t("settings.db.clearDbDesc")),1)]),c(A,{theme:"danger",variant:"outline",onClick:u},{icon:Oe(()=>[c(k,{theme:"outline",size:"14",fill:"currentColor"})]),default:Oe(()=>[Bt(" "+Pe(v.$t("settings.db.clearData")),1)]),_:1})]),_:1}),c(w,{visible:t.value,"onUpdate:visible":f[0]||(f[0]=y=>t.value=y),header:a.value.title,"confirm-btn":{content:v.$t("settings.db.msg.confirm"),theme:"danger"},onConfirm:h,onCancel:m},{default:Oe(()=>[ge("div",hKr,[c(b,{theme:"filled",size:"48",fill:"#e34d59"}),ge("p",null,Pe(a.value.firstMessage),1)])]),_:1},8,["visible","header","confirm-btn"]),c(w,{visible:n.value,"onUpdate:visible":f[2]||(f[2]=y=>n.value=y),header:a.value.title,"confirm-btn":{content:d.value,theme:"danger",disabled:!l.value},onConfirm:g,onCancel:m},{default:Oe(()=>[ge("div",fKr,[c(b,{theme:"filled",size:"48",fill:"#e34d59"}),ge("p",null,Pe(a.value.secondMessage),1),c(O,{modelValue:r.value,"onUpdate:modelValue":f[1]||(f[1]=y=>r.value=y),placeholder:`${v.$t("settings.db.msg.pleaseInput")} ${a.value.keyword} ${v.$t("settings.db.confirmAction")}`,class:"confirmInput"},null,8,["modelValue","placeholder"])])]),_:1},8,["visible","header","confirm-btn"])])}}}),mKr=oo(gKr,[["__scopeId","data-v-0f49f50e"]]),kKr={class:"otherConfig"},vKr=Je({__name:"otherConfig",setup(e){const{otherSetting:t,canvasWheelEvent:n}=xs(ku()),r=X({get:()=>{const s=t.value.axiosTimeOut;return s==null||isNaN(s)?600:Math.floor(s/1e3)},set:s=>{s==null||isNaN(s)||(t.value.axiosTimeOut=s*1e3)}});function o(){t.value.chapterReg="/第\\s*([0-90-9零一二三四五六七八九十百千万]+)\\s*[章回节]\\s*([^\\n\\r]*)/g"}return(s,a)=>{const l=Si,d=c2,u=p2,h=Lz,g=x3n,m=OZe,v=A2;return xe(),Ge("div",kKr,[c(v,{"label-align":"top"},{default:Oe(()=>[c(u,{name:"chapterReg"},{label:Oe(()=>[ge("span",null,Pe(s.$t("settings.other.chapterRegex")),1),c(l,{style:{"margin-left":"15px"},onClick:o,size:"small"},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.restoreDefault")),1)]),_:1})]),default:Oe(()=>[c(d,{modelValue:Ae(t).chapterReg,"onUpdate:modelValue":a[0]||(a[0]=f=>Ae(t).chapterReg=f),placeholder:s.$t("settings.other.regexPlaceholder"),style:{width:"400px"}},null,8,["modelValue","placeholder"])]),_:1}),c(u,{label:s.$t("settings.other.requestTimeout"),name:"axiosTimeOut"},{default:Oe(()=>[c(h,{"auto-width":"",suffix:s.$t("settings.other.seconds"),min:10,modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=f=>r.value=f),allowInputOverLimit:!1,placeholder:s.$t("settings.other.inputSeconds")},null,8,["suffix","modelValue","placeholder"])]),_:1},8,["label"]),c(u,{label:s.$t("settings.other.agentCanvasScalingMethod")},{default:Oe(()=>[c(m,{variant:"default-filled",modelValue:Ae(n),"onUpdate:modelValue":a[2]||(a[2]=f=>Fn(n)?n.value=f:null)},{default:Oe(()=>[c(g,{value:"zoom"},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.zoom")),1)]),_:1}),c(g,{value:"scroll"},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.scroll")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"]),c(u,{label:s.$t("settings.other.isInteracting")},{default:Oe(()=>[c(m,{variant:"default-filled",modelValue:Ae(t).interacting,"onUpdate:modelValue":a[3]||(a[3]=f=>Ae(t).interacting=f)},{default:Oe(()=>[c(g,{value:!1},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.closeIsInteracting")),1)]),_:1}),c(g,{value:!0},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.openIsInteracting")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"]),c(u,{label:s.$t("settings.other.assetConcurrency"),name:"assetsBatchGenereateSize"},{default:Oe(()=>[c(h,{"auto-width":"",suffix:s.$t("settings.other.count"),min:1,modelValue:Ae(t).assetsBatchGenereateSize,"onUpdate:modelValue":a[4]||(a[4]=f=>Ae(t).assetsBatchGenereateSize=f),allowInputOverLimit:!1,placeholder:s.$t("settings.other.inputCount")},null,8,["suffix","modelValue","placeholder"])]),_:1},8,["label"])]),_:1})])}}}),AKr=oo(vKr,[["__scopeId","data-v-a6ec5f61"]]),pKr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='96'%20height='96'%3e%3cpath%20d='M0%200%20C2.60491411%203.39771405%202.43893626%206.83010556%202%2011%20C0.20437595%2013.75329021%20-1.05254922%2015.52627461%20-4%2017%20C-9.16062661%2017.49941548%20-9.16062661%2017.49941548%20-12%2017%20C-14.90799783%2014.4555019%20-15.90702057%2013.04601863%20-16.25%209.1875%20C-16.1675%208.465625%20-16.085%207.74375%20-16%207%20C-17.0725%207.639375%20-18.145%208.27875%20-19.25%208.9375%20C-27.64061736%2013.11803647%20-42.1161507%2013.9612831%20-51%2011%20C-51.09796875%2011.67804687%20-51.1959375%2012.35609375%20-51.296875%2013.0546875%20C-52.09650113%2018.03167082%20-53.07549372%2022.54151804%20-55.0625%2027.1875%20C-58.18113878%2034.59280707%20-58.84191514%2041.34103871%20-56%2049%20C-51.69477815%2055.71108112%20-45.90514151%2058.44542058%20-38.375%2060.3125%20C-28.59646317%2061.98237321%20-17.61397475%2061.2378015%20-9%2056%20C-6.49898905%2053.93089054%20-4.42615578%2051.9334749%20-3%2049%20C-2.8015185%2045.84858524%20-2.8015185%2045.84858524%20-3%2043%20C-3.63502441%2042.9498877%20-4.27004883%2042.89977539%20-4.92431641%2042.84814453%20C-7.82522523%2042.61482321%20-10.72505632%2042.37001416%20-13.625%2042.125%20C-14.62402344%2042.04636719%20-15.62304688%2041.96773437%20-16.65234375%2041.88671875%20C-29.19293478%2040.80706522%20-29.19293478%2040.80706522%20-33%2037%20C-32.79953373%2033.85936171%20-32.54877905%2031.72339057%20-30.625%2029.1875%20C-24.50435236%2024.71471903%20-13.19717736%2026.55890184%20-6%2027%20C-2.41396623%2027.60321914%200.69870236%2028.49303823%204%2030%20C4.94875%2030.4125%205.8975%2030.825%206.875%2031.25%20C11.08743551%2034.71906454%2012.65632177%2038.68972676%2014%2043.8125%20C14.64326159%2052.37282738%209.41850308%2059.51339193%204.13671875%2065.7421875%20C-2.45750281%2072.7101218%20-11.41635656%2078.38746195%20-21.19140625%2079.17700195%20C-37.70773611%2079.60385521%20-50.14814106%2078.46993862%20-63%2067%20C-73.50321308%2056.03782298%20-76.52428161%2045.45597262%20-76.2734375%2030.625%20C-75.77333104%2018.46399527%20-69.95822491%208.40894719%20-61.1875%200.1875%20C-43.74979764%20-14.14115465%20-17.3489938%20-15.03579462%200%200%20Z%20'%20fill='%23DA203E'%20transform='translate(80,13)'/%3e%3c/svg%3e";var C6n={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Ho,function(){var n=1e3,r=6e4,o=36e5,s="millisecond",a="second",l="minute",d="hour",u="day",h="week",g="month",m="quarter",v="year",f="date",k="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(Q){var M=["th","st","nd","rd"],B=Q%100;return"["+Q+(M[(B-20)%10]||M[B]||M[0])+"]"}},w=function(Q,M,B){var R=String(Q);return!R||R.length>=M?Q:""+Array(M+1-R.length).join(B)+Q},O={s:w,z:function(Q){var M=-Q.utcOffset(),B=Math.abs(M),R=Math.floor(B/60),I=B%60;return(M<=0?"+":"-")+w(R,2,"0")+":"+w(I,2,"0")},m:function Q(M,B){if(M.date()1)return Q(j[0])}else{var W=M.name;C[W]=M,I=W}return!R&&I&&(y=I),I||!R&&y},E=function(Q,M){if(S(Q))return Q.clone();var B=typeof M=="object"?M:{};return B.date=Q,B.args=arguments,new D(B)},T=O;T.l=L,T.i=S,T.w=function(Q,M){return E(Q,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var D=function(){function Q(B){this.$L=L(B.locale,null,!0),this.parse(B),this.$x=this.$x||B.x||{},this[_]=!0}var M=Q.prototype;return M.parse=function(B){this.$d=function(R){var I=R.date,F=R.utc;if(I===null)return new Date(NaN);if(T.u(I))return new Date;if(I instanceof Date)return new Date(I);if(typeof I=="string"&&!/Z$/i.test(I)){var j=I.match(A);if(j){var W=j[2]-1||0,H=(j[7]||"0").substring(0,3);return F?new Date(Date.UTC(j[1],W,j[3]||1,j[4]||0,j[5]||0,j[6]||0,H)):new Date(j[1],W,j[3]||1,j[4]||0,j[5]||0,j[6]||0,H)}}return new Date(I)}(B),this.init()},M.init=function(){var B=this.$d;this.$y=B.getFullYear(),this.$M=B.getMonth(),this.$D=B.getDate(),this.$W=B.getDay(),this.$H=B.getHours(),this.$m=B.getMinutes(),this.$s=B.getSeconds(),this.$ms=B.getMilliseconds()},M.$utils=function(){return T},M.isValid=function(){return this.$d.toString()!==k},M.isSame=function(B,R){var I=E(B);return this.startOf(R)<=I&&I<=this.endOf(R)},M.isAfter=function(B,R){return E(B){const e=fe("v1.0.7"),t=fe(""),n=fe(null),r=X(()=>n.value?Number(n.value.id):-1),o=fe(null);async function s(a){var u;const l=await mn.post("/project/getSingleProject",{id:a});n.value=l.data[0];const d=await mn.post("/script/getScrptApi",{projectId:a});o.value=((u=d.data)==null?void 0:u.id)||null}return{version:e,activeMenu:t,project:n,projectId:r,currentScriptId:o,setProjectById:s}},{persist:!1}),yKr={class:"about"},CKr={class:"f"},_Kr={class:"appName"},SKr={class:"data"},LKr={class:"version"},xKr={class:"renew ac"},EKr={style:{"margin-left":"5px"}},TKr={class:"codeRepository"},QKr={class:"f"},DKr={class:"github"},BKr={style:{"margin-left":"15px"}},RKr={style:{"font-size":"15px","font-weight":"900"}},IKr={class:"f"},MKr={class:"gitee"},PKr={style:{"margin-left":"15px"}},FKr={style:{"font-size":"15px","font-weight":"900"}},NKr={class:"license"},UKr={class:"ac jb",style:{cursor:"pointer"}},jKr={class:"f"},WKr={class:"data"},VKr={style:{"margin-left":"15px"}},zKr={style:{"font-size":"12px",color:"#666"}},HKr={class:"updateDialog"},$Kr={class:"updateHeader"},XKr={class:"updateIcon"},GKr={class:"updateTitle"},YKr={key:0,class:"versionCompare"},ZKr={class:"versionCard current"},qKr={class:"versionLabel"},KKr={class:"arrow"},JKr={class:"versionCard latest"},eJr={class:"versionLabel"},tJr={key:1,class:"versionTime"},nJr={class:"versionTimeValue"},iJr={key:2,class:"customUrl"},rJr={class:"sourceSelect"},oJr={class:"sourceTitle"},sJr={class:"sourceCards"},aJr=["onClick"],lJr=["src","alt"],cJr={class:"sourceName"},dJr={key:0,class:"checkMark"},uJr={style:{display:"flex","justify-content":"flex-end",gap:"8px","padding-top":"4px"}},hJr=Je({__name:"about",setup(e){const{t}=aI(),{version:n}=xs(OKr()),{isElectron:r,needUpdate:o}=xs(ku()),s=fe(!1),a=fe(""),l=fe(0);let d=null;function u(){l.value++,l.value===1&&(d=setTimeout(()=>{l.value=0},3e3)),l.value>=3&&(l.value=0,d&&clearTimeout(d),s.value=!s.value,s.value||(a.value=""),i1.info(s.value?"已开启自定义更新地址":"已关闭自定义更新地址"))}const h=fe(!1),g=fe("toonflow"),m=fe([{value:"toonflow",label:"ToonFlow",iconType:"image",iconSrc:wKr,iconClass:"toonflow",iconBg:"#ececec",disabled:!1},{value:"github",label:t("settings.about.github"),iconType:"component",iconName:"github",iconClass:"github",disabled:!0},{value:"atomgit",label:"AtomGit",iconType:"image",iconSrc:pKr,iconClass:"atomgit",iconBg:"#f9f9fb",disabled:!0},{value:"gitee",label:t("settings.about.gitee"),iconType:"component",iconName:"code",iconClass:"gitee",disabled:!0}]),v=fe(!1),f=fe({needUpdate:!1,latestVersion:"",reinstall:!1,time:0,url:"",version:""}),k=X(()=>f.value.time?JB(f.value.time).format("YYYY-MM-DD HH:mm:ss"):"");pt(g,()=>{f.value={needUpdate:!1,latestVersion:"",reinstall:!1,time:0,url:"",version:""}});async function A(_){r.value?await fetch(`toonflow://openurlwithbrowser?url=${_}`):window.open(_,"_blank")}An(async()=>{const{data:_}=await mn.get("/other/getVersion");n.value=_});function p(){f.value={needUpdate:!1,latestVersion:"",reinstall:!1,time:0,url:"",version:""},g.value="toonflow",h.value=!0}function b(_){return{toonflow:"ToonFlow",github:"GitHub",atomgit:"AtomGit",gitee:"Gitee"}[_]}async function w(){v.value=!0;try{const{data:_}=await mn.post("/setting/about/checkUpdate",{source:g.value,url:a.value||null});a.value&&(_.needUpdate=!0),f.value=_,_.needUpdate?window.$message.success(t("settings.about.updateAvailable")):i1.success(t("settings.about.noUpdate"))}catch(_){i1.error(_.message??t("settings.about.updateFailed"))}finally{v.value=!1}}async function O(_){try{return await(await fetch(`toonflow://${_}`)).json()}catch{}}async function y(){v.value=!0;try{await mn.post("/setting/about/downloadApp",{url:f.value.url,reinstall:f.value.reinstall,version:f.value.version}),O("apprestart"),i1.success(t("settings.about.updateSuccess")),h.value=!1}catch(_){i1.error(_.message??t("settings.about.updateFailed"))}finally{v.value=!1}}function C(){const _=f.value.reinstall?` +`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=KB(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&jue.assertOptions(r,{silentJSONParsing:HA.transitional(HA.boolean),forcedJSONParsing:HA.transitional(HA.boolean),clarifyTimeoutError:HA.transitional(HA.boolean),legacyInterceptorReqResOrdering:HA.transitional(HA.boolean)},!1),o!=null&&(vn.isFunction(o)?n.paramsSerializer={serialize:o}:jue.assertOptions(o,{encode:HA.function,serialize:HA.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),jue.assertOptions(n,{baseUrl:HA.spelling("baseURL"),withXsrfToken:HA.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=s&&vn.merge(s.common,s[n.method]);s&&vn.forEach(["delete","get","head","post","put","patch","common"],f=>{delete s[f]}),n.headers=t2.concat(a,s);const l=[];let d=!0;this.interceptors.request.forEach(function(k){if(typeof k.runWhen=="function"&&k.runWhen(n)===!1)return;d=d&&k.synchronous;const A=n.transitional||vJe;A&&A.legacyInterceptorReqResOrdering?l.unshift(k.fulfilled,k.rejected):l.push(k.fulfilled,k.rejected)});const u=[];this.interceptors.response.forEach(function(k){u.push(k.fulfilled,k.rejected)});let h,g=0,m;if(!d){const f=[Zpt.bind(this),void 0];for(f.unshift(...l),f.push(...u),m=f.length,h=Promise.resolve(n);g{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const a=new Promise(l=>{r.subscribe(l),s=l}).then(o);return a.cancel=function(){r.unsubscribe(s)},a},t(function(s,a,l){r.reason||(r.reason=new Aie(s,a,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new O6n(function(o){t=o}),cancel:t}}};function bqr(e){return function(n){return e.apply(null,n)}}function wqr(e){return vn.isObject(e)&&e.isAxiosError===!0}const NFe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(NFe).forEach(([e,t])=>{NFe[t]=e});function y6n(e){const t=new sD(e),n=n6n(sD.prototype.request,t);return vn.extend(n,sD.prototype,t,{allOwnKeys:!0}),vn.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return y6n(KB(e,o))},n}const gh=y6n(vie);gh.Axios=sD;gh.CanceledError=Aie;gh.CancelToken=pqr;gh.isCancel=m6n;gh.VERSION=w6n;gh.toFormData=hbe;gh.AxiosError=No;gh.Cancel=gh.CanceledError;gh.all=function(t){return Promise.all(t)};gh.spread=bqr;gh.isAxiosError=wqr;gh.mergeConfig=KB;gh.AxiosHeaders=t2;gh.formToJSON=e=>g6n(vn.isHTMLForm(e)?new FormData(e):e);gh.getAdapter=b6n.getAdapter;gh.HttpStatusCode=NFe;gh.default=gh;const{Axios:PNs,AxiosError:FNs,CanceledError:NNs,isCancel:UNs,CancelToken:jNs,VERSION:WNs,all:VNs,Cancel:zNs,isAxiosError:HNs,spread:$Ns,toFormData:XNs,AxiosHeaders:GNs,HttpStatusCode:YNs,formToJSON:ZNs,getAdapter:qNs,mergeConfig:KNs}=gh,mn=gh.create();mn.interceptors.request.use(function(e){const{baseUrl:t,otherSetting:n}=xs(ku());e.baseURL=t.value,e.timeout=n.value.axiosTimeOut;const r=localStorage.getItem("token");return r&&(e.headers.Authorization=r),e});mn.interceptors.response.use(function(e){return e.data},function(e){var t;return e.status===401&&(localStorage.removeItem("token"),tie.push("/login"),i1.error(window.$t("common.sessionExpired"))),Promise.reject(((t=e==null?void 0:e.response)==null?void 0:t.data)??e)});const Oqr={class:"languageConfig"},yqr={class:"sectionDesc"},Cqr={class:"langGrid"},_qr=["onClick"],Sqr={class:"langInfo"},Lqr={class:"langName"},xqr={class:"langNative"},Eqr=Je({__name:"languageConfig",setup(e){const t=fe(yW.value??"zh-CN"),{locale:n}=aI();function r(o){var s;n.value=o,t.value=o,yW.value=o,(s=window.$message)==null||s.success($t("settings.language.msg.saved"))}return(o,s)=>{const a=dL;return xe(),Ge("div",Oqr,[ge("p",yqr,Pe(o.$t("settings.language.desc")),1),ge("div",Cqr,[(xe(!0),Ge(sn,null,Bi(Ae(GZe),l=>(xe(),Ge("div",{key:l.value,class:Eo(["langCard",{active:Ae(t)===l.value}]),onClick:d=>r(l.value)},[ge("div",Sqr,[ge("div",Lqr,Pe(l.label),1),ge("div",xqr,Pe(l.tips),1)]),Ae(t)===l.value?(xe(),Ut(a,{key:0,name:"check-circle-filled",class:"checkIcon"})):nn("",!0)],10,_qr))),128))])])}}}),Tqr=oo(Eqr,[["__scopeId","data-v-6430745e"]]),Qqr={class:"requestConfig"},Dqr=Je({__name:"requestConfig",setup(e){const{baseUrl:t,isElectron:n}=xs(ku()),r=fe({baseUrl:""}),o={baseUrl:[{required:!0,message:$t("settings.request.msg.enterApi"),trigger:"blur"},{pattern:/^https?:\/\/.+/,message:$t("settings.request.msg.validUrl"),trigger:"blur"}]};function s(){r.value.baseUrl=t.value}function a(){t.value=r.value.baseUrl,window.$message.success($t("settings.request.msg.saved"))}function l(){r.value.baseUrl="http://localhost:10588",t.value=r.value.baseUrl,window.$message.success($t("settings.request.msg.reset"))}async function d(){try{const h=await(await fetch("toonflow://getPort")).json();h!=null&&h.port&&(t.value=`http://localhost:${h.port}/api`,n.value=!0,window.$message.success($t("settings.request.msg.refreshSuccess"))),window.$message.error($t("settings.request.msg.refreshFailed"))}catch{window.$message.error($t("settings.request.msg.refreshFailed"))}}return An(()=>{s()}),(u,h)=>{const g=Ez,m=dL,v=Wu,f=p2,k=Si,A=Ev,p=A2;return xe(),Ge("div",Qqr,[c(g,{style:{"margin-bottom":"16px"},theme:"warning",message:u.$t("settings.request.warning")},null,8,["message"]),c(p,{data:r.value,labelAlign:"top",rules:o},{default:Oe(()=>[c(f,{label:u.$t("settings.request.apiAddress"),name:"baseUrl"},{default:Oe(()=>[c(v,{modelValue:r.value.baseUrl,"onUpdate:modelValue":h[0]||(h[0]=b=>r.value.baseUrl=b),placeholder:u.$t("settings.request.apiPlaceholder"),clearable:""},{"prefix-icon":Oe(()=>[c(m,{name:"link"})]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"]),c(f,null,{default:Oe(()=>[c(A,{size:"small"},{default:Oe(()=>[c(k,{theme:"primary",type:"submit",onClick:a},{default:Oe(()=>[Bt(Pe(u.$t("settings.request.save")),1)]),_:1}),c(k,{theme:"default",onClick:l},{default:Oe(()=>[Bt(Pe(u.$t("settings.request.reset")),1)]),_:1}),Ae(n)?(xe(),Ut(k,{key:0,theme:"warning",onClick:d},{default:Oe(()=>[Bt(Pe(u.$t("settings.request.refresh")),1)]),_:1})):nn("",!0)]),_:1})]),_:1})]),_:1},8,["data"])])}}}),Bqr=Je({__name:"loginConfig",setup(e){const t=fe(null),n=fe(!1),r=fe({id:null,name:"",password:""}),o={name:[{required:!0,message:$t("settings.login.msg.enterUsername"),trigger:"blur"},{min:2,max:20,message:$t("settings.login.msg.usernameLength"),trigger:"blur"}],password:[{required:!0,message:$t("settings.login.msg.enterPassword"),trigger:"blur"},{min:6,max:20,message:$t("settings.login.msg.passwordLength"),trigger:"blur"}]};async function s(){try{const u=await mn.get("/setting/loginConfig/getUser");r.value={id:u.data.id??null,name:u.data.name??"",password:u.data.password??""}}catch{window.$message.error($t("settings.login.msg.fetchFailed"))}}async function a(){n.value=!0;try{await mn.post("/setting/loginConfig/updateUserPwd",r.value),window.$message.success($t("settings.login.msg.saveSuccess")),await s()}catch{window.$message.error($t("settings.login.msg.saveFailed"))}finally{n.value=!1}}function l(u){u.validateResult===!0&&a()}function d(){var u;(u=t.value)==null||u.reset()}return An(()=>{s()}),(u,h)=>{const g=Wu,m=p2,v=Si,f=Ev,k=A2,A=Wc;return xe(),Ut(A,{loading:Ae(n)},{default:Oe(()=>[c(k,{ref_key:"formRef",ref:t,labelAlign:"top",data:Ae(r),rules:o,colon:!0,onSubmit:l,onReset:d},{default:Oe(()=>[c(m,{label:u.$t("settings.login.username"),name:"name"},{default:Oe(()=>[c(g,{modelValue:Ae(r).name,"onUpdate:modelValue":h[0]||(h[0]=p=>Ae(r).name=p),placeholder:u.$t("settings.login.usernamePlaceholder"),clearable:"",width:"100%"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(m,{label:u.$t("settings.login.password"),name:"password"},{default:Oe(()=>[c(g,{modelValue:Ae(r).password,"onUpdate:modelValue":h[1]||(h[1]=p=>Ae(r).password=p),type:"password",placeholder:u.$t("settings.login.passwordPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(m,{"status-icon":!1},{default:Oe(()=>[c(f,{size:"small"},{default:Oe(()=>[c(v,{theme:"primary",type:"submit",loading:Ae(n)},{default:Oe(()=>[Bt(Pe(u.$t("settings.login.modify")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1},8,["loading"])}}}),Rqr="data:image/png;base64,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",Iqr="data:image/png;base64,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",Mqr="data:image/png;base64,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",Pqr="data:image/png;base64,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",Kpt="data:image/png;base64,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",Fqr="data:image/png;base64,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",Nqr="data:image/png;base64,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",Uqr="data:image/png;base64,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",jqr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABdFBMVEUC26MAAAAAAQEACwgAFhAAIhkAOisBW0QBfl0Bp3wCzJgC16AADwsAEw4AQDABelsCu4sCtIYBc1YAJRwAAgEADgoBQzIBkWwCzpoCyZYBhGMAKR8AAQAABAMALSIBhmQC0JsCzpkBeFoADgsAAwIAKh8BongC2qMCvo0BSDUABgQBUT0CxZMC1qABfV0AEAwAIBgC2aECp30ADAkBeFkCvIwBZUsC1Z4CwpEBNScAAgIBV0EC050BXkYBbFEBjGgC2qIAFA8CtYcAMCQC1Z8BfFwAEg4BUz4Cs4UC2aICv44BhWMBPS0AOSoC1J4BgWAACQYCvY0CsoQACQcBjWkAHRUBV0ABSzgAKB0C1p8Bb1MACAYC0ZwBkWsCuIkCsIMBmXICwI8BiWYCypcBfl4Cr4MACggBdVcCxpQCxpMAIxoBRDMBbVEAGhMBpnsBj2oC2KEBg2IBgF8ANykABwUBe1wBRjQAFRACxJIBo3kBimf////Yuo2SAAAAAWJLR0R7T9K1/AAAAm5JREFUeNrt2tdTU1EQBvDdBAQ1FgIBExI1lBBKEGlibNgVFRtKRwEbBAIWbH+9Lz452XsznJPNN+N+z3cmvzn3tLsbIovFYrFYLBaLxVKvcFWJRBsajzQ1Hz12XBEREzAnTp46XQNH5R9ribe2CY5Ee8cZHQRRMtWZFhiZs+fO6yCIsl3d0hTp6c0pIagv398jMQYGh3QQRIXhC+KCGcld1EEQjTaKirFxb+skBEETvaIiM3lJCUFTl0VF8cpVJQRNyWNRvObnjYQjaEKeF8XrXhRVIGhUXiMDN6aVEDQs7hd885YWotAvIvj2HSUE5btlxV0tRF9XWkTcyyshKNspD8V957lZJYJSbSIi9kALkWyVh6LpoRKC4jKiYUYL0RKTFY+0ENOPZcSTWSUEPY2IiGfPtRAvXspDMaeFKLySEa/dtorqETQvIxYWtRBLMmJ5RQuxKiN4TQvxJgDxVguxHoDY0EJsBiDeaSEWAxDx/woB8TpmECbm+wCE2hKF2Kwgtm2EAwziKIe41CBc7yAuuhBXfoSPH4jPQIQPYoTSAESRBKFcBFE4QyghIhRTEcrKCAV2hFYDQtMFoP0E0IhDaEkCNGcD2tTMHz5+UkAENOz/zoj4Vs0RMQ5LZHvO338YQn9NTKaUrC3i36d2Kj61W/ZxejkiOLG3X38ERz97UbghOLqn1pyVEZwoAyB418MacUZwyX2/cEdkHIsTXhC87byDe0BE3Mq5fhA84nqm+kDwFwTEV8dbtxfEN8dvQS8IPkBAfHe7eftB/HCrIfpB8E8ExC8ExG8EhEYPLBThfHxYLBaLxWKxWCyWQ+QPoptb+kQLop8AAAAASUVORK5CYII=",Wqr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAKACAYAAAAMzckjAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR4nOy9CZRe1XXnuy2TtON2sjrd6Uyd9OpOJ3lv9XurV690+iUvL207blloHkulqlLNVap5/Oqb5/pqVFFoKEvCAmRZgCwLJGQJCaEJzQOSsDCDUTAYjE2wsQmYmECw0XnrnHPPvefce7/vKw1QlvX/rbWXSgIbqUrIP+999n8TAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHALEoslKBaLUSwWEZWwSv5YjGKJqKh4PG5XLBG3fzz/X5cV538tEaVkXJb4vvX3JWPJqf7lAwAAAADcetii5xLARNQRwGQsToOhJI0F4rS6N0gTPT1WdVnVQ+u6A7S2J0gr++KUCyfFf0aIniZ/9o/ZAhif6l8+AAAAAMCthxI/WVL6uPzpAsiFbn17jrbXJ+lwZRudLav9zLmyyr89V1ZZz+tsefVnz5bV/hb/a/zv4X8vF0YueKb8Ja1yOoMAAAAAAOBjxi1/vJKRBA309dNIb4pW94RpU1uA9tSE/8vZ0q5HXlxQ+Y+vzV3Mfjh7IfvhnPmiXp+zkPEfe3FB5VtnS7v27a0O/9nm1iCt7QnTWCBJg6E0paJK/qwSAhjG1xsAAAAA4OPG6fYl7PeA/cEMrW29gx6oG6KDlV2/e7G09sILC8uE5L05ay57e+ZM9vbMGeyd2/WaKf4a/3teWFjBLpbWPnmwsuv3ttYP0kT7GOVCWSl+sbQo1R0EAAAAAABTKIDJSIr6gyla3Zmh7dVDdLwk0Xh5Qf0HvNvHhe/d27/A3vvidFkzviDq/S/KUt9/d8Z0IYg/nL2YXV5Q//MTpdHmB2sHaaIjJyQwFcmK5Q8IIAAAAADAFKEvfQz0pWht2whtr+mnsyXt4e/OXX7lJ7MWsp/dPkOInSl909kH053S/xoXRP6f+cms+ezleZXsfEnH2IO1OdEJHAxm7e4f3gACAAAAAEyxAI70JuiB+n46WhpZ8eK8cvbWjFlC5lSXTy9d/kwB/Dz7gNd0KYLv3D6bvTK3gp0ojbZsbciJN4F2HAyWQAAAAAAAPn6cWJYkre6J0oHKnv/z+YX1v3hj9nzR9fOKnyzeAXw/jxyaNZ29OXM+e2FB7YeHl3f93zwqJq7lBwIAAAAAgI8ZLn98Q5dv6m5qDdP50vrnXp+zWIxweTfvegWQdwPfnTGDvTF7IXtyafXzW1p7aCgkR8AQQAAAAACAKSCWkPK3sTVH+yvDM15cUCE2evk4l8vb9XcAPy/+u/gSyYsLS9j+qp7Zd7fxf6bMAgQAAAAAAB8zfPQ73puknbVxenJJx1m+vave8t2IDqD673lvxufZ63Pns4slLU/sqA/TWB/eAAIAAAAATAk8kmVdV5hOlLfQK3MrPnj79tmGuN2IEbDqJL41czZ7aUHZz49UNk3jJ+X4rWAAAAAAAPAxwyNZ7uoM0PlltQt43p98+1dA6K5FAK3/DB8t86Do0+W1y/j9YAggAAAAAMAULYGs6w7Q2bL63a/PLhFXPW6kAOrbwDwShgvg2bLafeu6e/AGEAAAAADg4+aTNI1yoTTd2xami6W1P+bv/1QH0BG96xdAkREoBHCm2gZ+k98XzoWT4ucAAAAAAABuIKNDw6KGhwdpeHjYLv5jq7NjtLZjjHbWpP/N5YWVjL//45Etjth93lNqpDvZzh9f/tDPxP1sxkz24oIytqs2+rtrO4fpy+PraM2aCVq9dg2tWcNrgiZWT4hveQEAAAAAgBsogOvSY7R5xTAdKYvHXp1bKuTvvS/yMi97eATQZzmkYPdPK/5jr80pYcfKgqktK3K0eVQKoJQ/RwLVjwEAAAAAgKtkdGhQlC5/SgA3pgZpZ12YnixpucAXQOTZt+niW96tU/d/r0cATQmU/x0/mT2XPbWk8Zt7agK0dXgVrVu9xur66RK4hiYggAAAAAAA19MB9NY9qSwdqG6jywsr33tz1lxT2iwRdI+Cr14A5X+HI5JfEKPml+ZXvH+ksoUeHBqTAuiSP1UAAAAAAOAaBVCXwMERWfcm03RseeP/eGVeqZAyLmv+Sx7XPwJ2bwO/Oq+Enaqo/+sHh0Z95I+/CZQFAAAAAACuQwCVBA4Oj9HA8Bq6Nz5Kp8vrN/Hbv3xDVxfAD6b7L4LcGAGcyV6fs5CdK6v96q7cOK2/c52UwLWr7AUQCCAAAAAAwA0UQC5//bkH6N7I3XSutOl7P5wzXwuAdsvd9QqgPAOniyD/Z70h3gHWfu9gfB1tHrmX1q2a8BFAjIABAAAAAK55CUQfAY8OTNB48uu0vefe255aUv/hm7N4/Avv+H3eV9j8cwCvVQA/L/5Zb82ayS4vrLxyOrTu17/ev4XuGl9HqydWGRvAEEAAAAAAgGsgEYuIisViFIslxLcDfRna0HwH7a1I1bw8v0zb9i20yJGvJi+D+liY/zN59Mzh8njdpqZRGgqmxWk4Xvw6STwRxaUQAAAAAIDrEcBoPEbRuBTAO3pi9FBtgs4v7jzOL3MU3+K9sQKoiv+zLy7pOr6jLkljASl/tgRCAAEAAAAAboQA8i5gjNZ29dHhimZ6cV75P781c/aUCSD/Z780v+Kfjy5voYnuoJA+XQCT8Si+7AAAAAAAV0siGhMlR8Dy4y91ddOpsqq//cGcBewde/nj4xdAuQ28mJ0tq/3c+q4ejwDyAgAAAAAAVwl/95eI8orJbqAjgN94de7UCyA/C3e2rH7Xuu6A8fZPfByP4+sNAAAAAHA9ApiOxGiwL0Vfaemji0uXv/X67Dla/MvHL4AyDmYhe3Jp7Vub2oI0GEpTKibFT3UCAQAAAADANY2ApQRy+VvXOkSPVEb+7MV5y9g7X/yidu7t4xdAcXP4izPZy/Mq2J7q+J+vax+mwWCW4vEkBBAAAAAA4HrfAPJa2Zugr9Vl6ExJ772vz1rE3pv+d5MQtY9OAHnxiyNvzCphZ5cG7tlWn6WVgTQEEAAAAADgekjGkpTkY9VElFb3BulAVQddXlj9D3wD92oCnT+6ms7emjmfXV5Q+xr/ua3uCTvvALEEAgAAAABwrQKYFDI10dNDJyoa/y0PYOYLGFdz0u2jFMC3b58tQqFPlTf+zkRPAAIIAAAAAHA98Pd0suLE5epERePIL5MA8qsgXABfm1PKTpc1DvKfo30NBFvAAAAAAABXD5e/VDRNuVCa7m0L08Wl9d/54ezFk9j+/fgEkMsofwf45NL6v+c/x/5wWnYtIYAAAAAAAFdPIpGg/mCG1naM0snAxK+/sKD6w3dun83enfHLI4D85/LOjLnsxfnVV3bVpD810T4qJBAxMAAAAAAA1wDvot0RztGWFYN0tDQSfm12GXvvizNEBEvxCJiPSwD5z2Um4z+3E6XRvvsaB2mkDwIIAAAAAHBN8Pu/o10h2lMToGeWNP89D15+7wbGuNwIARQ/n+kz2JszF7NnFzVd3lsToPGAPAsHAAAAAACukkQqRau6AnSiuuMzL8+ruPLWzLmaAP5yjIB5yW3guezleZVXji5v+S0eWQMBBAAAAAC4Bnj8y5d6++jc8qaRH8wpE5Ilxr+2eP2ylBTAH8ypYKfKm6xt4Ci+5gAAAAAAV8MniWgwlKSvtoXoqaV1r/5k5mL2sxkzNQGc+hgYuxP4xemML6dY28Df29QaFpvLn6Rp+KIDAAAAAEyWT9NtdFfHMD1am/iDl+ZXCPl793YpfqqmXPzEz8O6C8y3gW+fzV5cUMn2VCV/b33bqPg1AAAAAACASfJvaBo92JCh80v7vvz67BKr86fL39QLoJRAKYB8O5lLoAiFXhpet61+kH4LAggAAAAAMHl+l4iOVHXSdxbWvMGXP6Rw/fKInyy5kKIL4E9mLWSXFzS+fqAyQP8eX3AAAAAAgMnzh0R0pqLhz1+bUyKubegC+MH0L4iaavn74H/PEBEwSv7e/eJM9tbM+ezVuRXsREXTn/4+vuAAAAAAAFcngOfL67aJ028zXAJo1VQLIJe/96fPlPJnCGAZO1Xe+FUIIAAAAADAJLd/P03T6M+I6KmSyrffnDlfO/2mRsBTJ4AqgkaNffkVEP7z45LKi8fB8DeLF0tr3/wv1q+F/5oAAAAAAIB16o0XD02WFaVcOEnr23O0tzr8Vy/PLxVy9VGdfftg+nRRXskzt4x16eOn35ySXT8lfz+bMVsIIJfWywur2aO1if++viVL2b44JdIJ+9epft0AAAAAAHSrC2AkGaWVfXHaXp+kc0u7Dv1w9sKPtJtXWABdXT9N/n52Oy+n68eLR8CImjFXSCB/B3hmWd8j2+pSNBKIUDwVE4ILAQQAAAAA3eqXPnjFtFrdG6Ajy9umvTS/8oO3Zs7+6N/xaWV3+owxryzV8RPidzvP/OPFxU/K39uipPy9fft8MQZ+dkHD+werO6etCfRRLN5n/xq59CZj6AACAAAA4BYXQC5FmUia7m4P0/lltb28+8dFa8oEcJLy97ZL/vgSCC++vPLinDJ2ZnlLy8buGKVCUvrErxkjYAAAAADcqnAhElLE5S+co/HOVcQDlJ9eXP/yT2bP/dgEUJc9Xfj0cka9pvjxLiXPKZQ1X7z/e3PmQiGAr8wrY+dK2y7f1zhMK7vHKRPJ2vKHN4AAAAAAuMUFMEmDwRzd3TRO+yuyf/zCgmohVlzEPn4BNMVPX/Iwx72m/Enxmy+CoHlxAfzB3FL21OKWK7uqhv/j+tZVlAtljTePAAAAAAC3HM44NEljgSQ9WCeWP77Ow58/yu1fe7nD0/lzpM+93auWPNS41xa/WVL+fjJLyt8bsxeyN2YtFgL4+pzF7PKCWna0LPqVBxpzNNKXlONuqwAAAAAAblkBTMaStLY7Sgequuj5hbXvcqGS3bmPtvvnK3+erp8ufpOQP5cAvjS/gp0v6Xp7V22UxgPWe0cIIAAAAABuVbgIyTFwktZ1BelERdNifkWDC9eNkDzvyTjvyNdY8JjhN+5Vyx3OOz/nrZ8z8tXFTxUXwFfmVrCnFzWx/VU9i9cEIpRIJETHkxcAAAAAwC0Hl79MhL//y9LmljBdKql9issUF7IbcevXFEBt21dc8JhxnfK3sKD8CQGcXSLOwr2woJYdK+84t741Sv3hLGViGUolM1P96QcAAAAA+PiRyx9ZWt82Snuqkp95cUHlh/LuLw9o/ijGvVL89EUPJX9K+vzf+jkdP0P+Zi4W4ufIX4mQPr34IsgrcyvZxZKOX2xvHPnNNV3jYhkkEY3htxwAAAAAbk0BXBlI09aGHJ1eGpzgwiQXP27k+z9zw1fJn5PpZ8qfs+FrvvNzj3wnI398meW1OaXsB3Mq2HMLWtj+itzwpqZRGgllxCgYAAAAAOCWI5VI0J1dQTpQ20PPLqx5k2f/KVm7ERJYLNrFDHI2FzxU108ueHi3fGWVCPFz5K9UCJ+7uAC+ML+enV0a+IcddXEaCyAGBgAAAAC3INNomrj8saGjj04vb5jz6rwS9vbMmcaCxo0SQL9Q5/zyN7+w/GkCaMpfib/8zeUCWMZemlfNMwHZgcrgjInOLKUiOfE5AAAAAAC4Zfg1uo1Geofp/uYUXSype0acfrPe/92oEbAuf36LHvqo133JQ77zm8/emM0r36KHz7h3rl7yDSBfBOEC+OyiRna0LHh2c+M4rexeQ79Gn5rqLwMAAAAAwMfHp+k2Wtc6QHvrEn9weV7FlXdmzhOidv3y50S96G/9/E65FZY/rePnF/FiiJ8UPb1etatMRMFwAXx+IR8D93y4o3rsD9a3rKFPQwABAAAA8KuGunkbswOfZeYf/3isL0o76sN0saTtYS5UckFjOntvhjfGxZ3nx/8eUT53fN2LHs6Sh3nGTY189c1efbtXLXnk6/ipka8pfGV28TvAXPz4BvArc6vZy3Nr2Yvza9mlxW3sYHnyq/eJyyBpKxPQug9sBUTHrAIAAAAA+JURQHH5oydMhys7pr04v/pfuIx9MF3K36QFsNAlD+2dn97xU+In5c+MddFz/fzlb3FR+RPSp2puBXt5XiV7eZ6UP14vzatlzy5qYqdLA+/uqItO48sgbvlzBBC3ggEAAABwE2LLjVZKANd3Bel0WWOKixQXNHtpwyOAToCzHumiQpwLvfEzY130ka83zNkd7aKfc/OLdpHbvd6O38vz9HIEkMvfi/Or2fMLGnkmINtTE+y+s9fs+NkSaH2uAAAAAAB+JQSQX/7go8/7moP0VEn1G3zRgsubvrXrCCAPhP6o5E/L9OPv/WblkT9LANVbP7f8qY6fKX6O/HHxk/In6/KCerENfHh5z8t3dcQpF+ZCbHVJNfmDAAIAAADgpsR432aNgIeCSbq7NU0HKgP/++X5ZULY3r1djX7dG8DT2fvTZ4hyX/BQY15T/JxLHuqUm77o4TfyNRc83Ll++pKHtuih5E/r+L00n1elWZYA8gxAUQukAD63sJGdLu1h2+tyfzPRMSwkUHYCZT4gBBAAAAAANy3G+zZr/DveG6eddVG+/HFJLn+43/5Nn5T8uQXQ75SbIX/GRQ9zy1df8igqf9p7P1P+KtiLCyrNml9td/14cQnk3/JtYD4G3l+RPbplxSCN9CkBNAsAAAAA4KbDeNsmZFAufxxZ3vZ7Ly6ovMLHsXrHzxFBNfLN0/nTol3sJY+ZZrCzGvsK8Zs1l/ErI34XPewFD+OtnwpyduTPb8vXlD8pgC8YVW13/fTiAnhpSQs7sSz48wfr478jL4NEKRaLUDQeoXCCV4zoE1P9FQQAAAAAuA4BTMXiNBhK06bWMJ0vrf86l66fzZitvfFztnvdAugnf/7RLq4bvkr8NPnzdv3yyZ9/xIuMdqnI2/3T5e/ywmp2eUGtED6+/KHX04ua2LmlHWxvdfCuic40ZSJZSkRjlgDGIIAAAAAAuDnR3/9x+Vu7IkeH20Zv+/aCqvffnqUHP+tLHk7XT5c/d8fPHvnOmFv0hq9+zcO93OG33fva7DLxzs/Y8rXFr9JT6s2fHPnyrp8mfgvlmz9ZTXYJAVzYzA6Vh95JT2+7bbxrnDKhlNUF5CIYm+ovHwAAAADA9QngWCBJDzb005nS0B3fm7OM/fOs2drGr3fkW0j+nHHvZOSPS5/T8ePi99rcxUL4JiN/bvHzLHp45K/WWPZQxc/A8QxAVU8vamFPlbTyMTB7qGplfF3DKA30SQFUBQAAAABw06GHG/O3f49X99Dzc2r+6cczZrP3b//fvlc8hPR9caZdk4t2cZY8Cnb9XMsdtvSpca8lfj+YU8FenStLyZ+z1StFz13Oez8pf6rzp8TvaaNaRBTMNxc3szMl3Wx/aeyN++vSNNwbpWgsSPGoLAAAAACAmw7+/o9Hv+RCabq3LUznSup7/2HWEvaP07/A3pv+d/7ypwngZOTPyfQz3/gVkj+12FFI/l4pIH9S9iYrf/K9n15c/oQALmxil5b1sNPLQmxXTbz2zo40JcJJSkTCEEAAAAAA3Jzwzl9/OE2rO0fpwbosPbu49sci+HnGTK/0WeJnZvuZmX76uDdfpEu+E25GiLOW52e+9bM6f3P4/V5t5Gt3/eR41690+eNLHlIA1bjX6fyp7p+oRW3sySUd7OzSHrZ3eeKlDU2raaBrDaWCaYpGw1P95QMAAAAAuDYB5MHPm5sG6UhZdCnfluXv97jsFcv1s+XPWvJw5G9+UflTSx755E9t9U5G/rxv+/zLvfBRaPSr5I/XpcUd7HxJFztUFmP316yduap5grKBLEWjyAEEAAAAwE0Iv2oxHgjTntoeenpx4yt8GUPKnnPOLd8ZN1P+5gvx87vh64x6XRu+xtjX7Pg5eX7mWz8ufrKqrTNujvypDp/d5XPVc4v83/w9tdgZ+fLi+X+XFrfZxTuAPBSaL4PsXT54aVPDIA31Jl0dwGlT+FUEAAAAAHBpST41mUbTKBPOEb93e6Ki6bOvzCsVb/cc+ZvuG+hsvveTHb+893vzyJ/Y8p3rdP88J9ys+73qnZ8uf84NXzPSxS2AXPj0cW9++Wvylb8nl8i6WMJLjoEPl8evfK0m/Zd3dGYpEcqKz2HxzzQAAAAAwMcE15FMPCEqlUhQIpGgeDJFiURKfH8gPEB3dqyhbXXDdGlJ0zNczPj492e3a+InAp1n5L3k4Zxv06Rv1mJP5d/ydZY+5NhXlrjiMd855eZk+lV7Nn3zCaAz7pW5fnbEy0L5zk8vWwBt8ZNdP17nreICeLQszL5RM3D0rtYNNNK7gbKxIYon+ec25dxVxqk4AAAAAEwlXPSU/LkFcDTYT5tWjNPBstyfvTi/9gqXOS56+si3mPzpp9vyy5+T52eMe+e63/z5y5+d5WeLX6217OHd7jUEcIEmfwtbjHp6UZtVXvlzi5+sLiGAfAz8aGX/L7bUbfiT1W0bKBcZkJdU4nGKxWLOXWXcCgYAAADAVMGFT0qfksCUXXcGErSrNkpPLuk4wbtwQv6Md35mqLNfrp8n1sXe8C1xalapcb5ND3I2Ap21sa8ufk6WnyV+8+tFmUsejvSpUt0/c9NXdf3atCUPZ+TriF8XO7dUq5Iedq4kwM6V9rGjy+Ls4eUrd9yzYqW4nsJPw/GrIFwAeaQOLxWuDQAAAADw8fIJomgqJcoUwAxlogO0vitFR5Z3/IcXFlR/KKJfjLd+s4uGOrvlz4x2KSx/zpKHJn+uXD9xu9e14evInypnu9cUvwIRLy7xKyp/S2X37+zSgKgTpVG2v6z//fvrh/79cO8AxaIZisUSlgAmRUEAAQAAADBlqJGvMwJOCPkb7V1D9zWN0rnStkN87CrHvzM8J9yMXD/7vZ+z7KGLn/t2ryxvrp/fkof+1s/s+hUWQH27N1/HT9/wdcSvQ7zz00sKYJcUQN7x4+JX2iHqdGkPO10aYKeXBoUAHixPsq/VDm0d69xAyeA6SkZzRucPAggAAACAKUONe50lEL780U9fbl1Fj1QN/PFzi+o/5Bu6vMOnxr2y2+fEunjlb6G//HmWPCz5c3X8dOFzxr3myNd53zcJ+VtUb1/0cHf9/KNdvOLn6f6V8I5fDztb2sVOl3axU8t62KnSIDtVGmbHlkX5NjDbWT34L+uaN/7uUPdGyoQHbQHk0ToQQAAAAABMGc7o16k7+lK0sz5B50u7H+ddOC54b2sjX9Hxu32hED2z46dFvMz0bveam716rp95us2JcnHKb+TrfuMny/XGT8ifFMCnF5sn3VS8i57nZ9fiLnZxSZex7HFuaYfV9ZMjX9n167HkLyAWQE4IAQyzI+Vhtm95mm2rHf/6XS2raKgvZ49+pQDyj5P4nQ8AAACAjx9d/DKxlNhavaszQ0cqe//jCwsbPuQCp498nUseSgAX5t30NXL9PLEuheXP3uw1zrjlk79C7/waPfLnn+nn6vpx+Vsix736mz9T/gJC/HjnT8mfEkAeB3OwIs72VA5+cF/D6B+OdY9SKjIopA8dQAAAAABMKcl41NpMTVIuOEh3dkzQ1roxOre06xgXMj7G1Zc7Cl3y0GNd9GgXPcvPfutnnXLT5U/P8zPlT8W6OKNeZ8zL5a/W562fJn9u8XMFORujXkv8dPk7LzZ8ZallD/XeT419VfH3f7z4GPhIWZIdKM+y7bVjD/JImP6AfAvo5ABiCxgAAAAAUyyAI4FB2tS4hvaXD//pcwubrnB54509e8mj4Bk3c7u3uPxJAfRb8rAFMI/8ud/55Zc/16KHK9LF/cbPT/xM+ZNbvlz8pPyF/eWvNC6KC+DB8jTbVTX6wcYVG/9oZSd/C6gLIG4FAwAAAGAK0DdSx3uTtLs6SReX9JzkEsbFTgifteDh98bPyfVzb/k60S5u6XNHu+jbvd6xr7frZ7z187nh67vl67Pdq6TPET6z26ey/Wzxc3X9TmjSp7p+XPx4DuDRZUlLAJNs7/Ic21q7asf61lU0GMza7wDRAQQAAADAlMBlhHf/+sNZuqs9TUfLe/708oL6K7xrJ4Rvdv5rHsU2fE3xc+RPRbw4lzy0ax5axIvq+nmueOR555dvw3cy8ueEOZuj3mLyJ6Rvmb/8HS6XAsiXQXZWjX6wuXHsj1f2jFKSvwWMpSGAAAAAAJi6EXB/OE3jnavogXrx9u8M78ZxsVPi98bs+b6XPPzv9mqZfmrMWyzTb4FWdsSLkj9nzOucb9Pv97q3e1sKR7uo7V5b/opLnzPy9ZE/W/pM+TuyLM0Ol6WFAO5fnubLIOyBulUP39m2iTKBeygeHYQAAgAAAGDqBHCkL033No3TvorBP392UdMVLnFc9tzyZ3f88sqfd8lDFz+/RQ9/+XM2ff3lzwl0FvK3uNGKdHFt+Pps+eryZ+T52WWJnypb/JxNX77ly+XvaFnUkL8jZXG78yflL80OVKSFAO5bnmMPVo//fP2KLX8y0rmZUuFhCCAAAAAApgYeSzLeGxc3f8+XdJzjgqbkT51y40HQ3jw/9cYv/4KHGepsZvrxN37ind+CSvaCKFP89HiXfJc8lAA+tUQK4KUlvBz5e7Kkxdj09Rv76nl+ZrSLK+JlWZAdKwvaES9c/o6IUuIXF+HPauyr5E8IYEVW1K6qYXZf3cSeda1rKBfK4RYwAAAAAD5+ptE06g/laH1Hmo5UdP3N8wtr7bd/TtdPlv7Oz7jicT3y57ro4cn0c8mfLn7qrZ/q/BnyZ0S8yBu++hk3Nfb15vl5pU/P9vOTPyl9sqT4JW3x0+WPFx8DP1gz9ot7m8b++0jvqIiE4V8FAAAAAIAbSjKdlZVJUzotK5PilaTB2KD19m+Uzi3teJHLGpc8Ne7lHzvxLnIGpRIAACAASURBVOb417vhm3+7V4ifJX1+0S5u8Su83NFil37D1xQ/9wk37X6vtdmrtnvdY95CSx5i5Kt1/cyOHxe/pD3y1cVPFd8G3lEzzDY3rjo73r5R5AJG+tIUDIcpHA6KioTCFA5FxY/xAgAAAAC4atKprKy0VwDvCOfU27+lXLC40HHJ4wJob/VqEpg34mVOYfnTBfBq5U8/3WZs9ury537nl6fjp8TPjnYpUQseZp7fqaVmnp/5xs/b8ZuM/CkB3FUllkGurGveNGek8x6KBbKGAIbFx1L+IIAAAAAAuCa4/GVEpV0SmKS1wSTtqonT+ZKeN9TmrzHytQTQ9+3fbH7GTVa+ix76uLdQrp973GuGOJvLHd7tXkf+3GHOZrSLI32qDPmzpM8pJX/WVm+Bjp/fyJcvfcjiH8vv710+yHZXDvNlELa5fsPlidYJSvYoAXQqGAnaBQAAAABwQwSwP5mlkWiOvtKZpmPlXUkuYbyTp978GYHOxh1fq+tniN81yJ+W6+cvf/r5Np/t3quUPzvaxRA/55KHKX5650/Jn7XZe5Xyt9eoQbZ3+TDbs3yY7aocY9tq1rC7m9asyHUMU6QvS5FgXI5/w478cRkEAAAAALhq9K6fqpH4AN3Tu5qOBdf9+pNL2t7lwsaXOUzZK2GvzZXfNxY9fDp+r8ytFOUd9zoj37ydP0+gs7fzp2/2ut/5ebd789/tdY973Xl+5sjXyfMTmX62ADrxLu4lD6fTp4TPKb4AwuVvz/JRfhqO7ageZ1vqJ37YtyD3yWT7WooHMxQJyTGwkj8IIAAAAACuiWQmSel00hDAlaF++lrzKB1elriHi5eUO3eOnxI/58f07V5d/Bz5c3f8/N78uTp/ed78Odu9fvJnvvc7b733c+f6qQ1fueXrLHg48hd2FjyMMGeZ56cHOvvGu4h8v6xRquMnhE+V1fnj49/dlVIAd1aNsa21E+yupvtyw80bKN6VokCgx34HyLuBvAAAAAAArpp0Ji6Kv/nj8pdKpWh1KEmPrYj/9sXFrR/wHD4peYtdsueufAse1XZJ+XN1/BZcf+fPN89PKy6AItOvtMuQv1PLerzRLob8mYHOeqafO9DZs+gh5M8RwL2VVgn50wTQFj9ZUv6kAG6vWcW+UnfXO1/u/vK/SXbHKRIJ2Z0/3g3kBQAAAABw1cjuX1J7+5elzd0JOrasad+351WyV+aVWvLnCCAXPv7jvArLn1/Xz7vhO5kbvtcuf06gsyN/eXL9fOJd3NEuctnDHPe6u37OuNc99jXlT3X8VOnyx4svgzxQO8E2Nq3ZNNQ5RMm+DEWCUQggAAAAAK6PeDJhVYqGwhm6qy1Hu2vif35pSeOHXOq48Onv/FTHz77fa9zw9Wb6ecXPJ9BZu99rZvrplS/ahQc5O2HO+iUP582feb/XON1mhDmb7/38412cUa+srKgDVsn3fmrD13zvZ4qf7PYZVSnFT9a4eAe4rXYV29ww8f5Eyz1/PNK1gTLhQXEhhF9o4QUAAAAAcNUkEikhf7zGgina1pCmE6XhJ7mgKfkzA53z3fD1W/DI3/UrLH7eLL/JyJ8pfmrL18r1s7Z7bfnTRr3XIn+i42fJnxJALn5C/ioGRfkteejv/HTxc8ufEsDtNeP8PBy7u2HLvtWtm6g/xG8EJykWT1M8lsalEAAAAABcPYlEwq7VgQjtqw7Me2pRm4hp8d/uLRDmbEW7uKUvb66fLn8LXRc8FplRLu5YF3PJwy/Xzz/exVzw0MRPe+tnbPl6Il4c+ZOVs0vJnx7popchf4bwOR0/u6pWsQerV4l3gFtr1/BcwA8nWie+wE/zRRJJIX8QQAAAAABcE6lEgrKxBI2GYvTVtr5pp8tafszljQvetcsfv93r3uyV7/u8m72q82eebysmfkL+9Ew/I9fPlD89189P/tQ7P7Prlz/bz7zmIcVPjX3tjp+v/DljXyV+O6pVSfF70C5HAHkmIO8Cbmxa89JQYHQavxGc5AKIETAAAAAArgX+nmwkGKctzVE6WNmz9tlF9SLD7wdzKrRA5wpXmLMpfYWXPIpv9brHvt5IF2+Ysy1/WqyLkeunyh775lnwyLfdq8mfFL8k27886dnudS56OO/99HGvnwCqRQ8lfw/WyIUPVXzsy8VPFX8HKLqADRNsonVDeKR7DaUiOfG1AwAAAAC4KqbRNMqEczTRmaW9VdHff3JJxwdc6pxTbhUu+XN1/DQBdHf+bqT86Qse+pKHW/4M8TOy/byLHn7bvfqGbzH5U5Euuvy5lzzc5ZY/IX6a/EnxGzfEj3f/eHEB3FK/jm1s3PTTO9vu+e1M3xqKxYaJ6Db8rgcAAADA5Pk1+hSNdU7Q5sZVdLQseIKfW+OjXTX2VQJYPMy5WOevqfiih/bmzx3p4t3qNe/3+gmf/6KHf66fWvBwv/VT7/3cuX5K/twXPZT87ary2fD1dP680ieET5UlfTwGho9/t9RPsE0N69jdjRvZ2pbNX890b6NYcDMRfQa/5QEAAAAweT5Nn6KNTWtoV+XY350v6brywoJK9vJ8PvJVVz18un4e8XN3/Wo9Sx5C/ha2WIseKs8v/2av3vXzbvVevfxJ8Qt7un5S/PRcP9X1y5/r5w5z1hc+dPnb6VP2yFeTv221MupF1VZr3OvI3zpRvPvHBfDexg1sXdPmXwy17frrVM82mka/hd/yAAAAADBJxqNmxZJ2jfcm6cG6NJ0qDb+mun/OOz9n0UONe/lVECl87iUPrePHxW+Rs+jh7f6Zyx6TEUDzhJuZ6ecseOQTP++414x08T/hpt/w9cv1M8+4jYry2/B1ljycca9nzKtJnxC/OqfzJwSwdoMtgZvrN7C7GzaxtU3bnl3ZsVnmAiaiFLOKfyy/HxcFAAAAgFsQPwHMRNI0GMzSxrYkHVweGOICxuXO2fDlwlfhvPPzkT/nioe//Okbvtcrf/qCh7HkkUf+3B0/v65fMflzL3gYG74u+dMvebjlz37nV8NPu/nLnxr3+snflroNUgCt2lK3kd3bcA+7q3ELW926qSXXN058K1gEQxsCKCUQAAAAALcgyVhcVMr6ltdgKE3r2wZpR236t8+Wdrz//MJaIXiyA+iMe5X0OaNeXf4c6Su86FE838/75s+UP36317vV697u9ev4uU+4xX1jXVSun+r4mefb8oU558/109/46e/8dOHTpW9r7YQoLn7usS/v+G2u3yhEkBf/eFP9PWxj42Y20bzlJ0OdWz6TCWygZMS6EJIIWyVFEAAAAAC3IFwKdAHk31/Zl6QHGrN0uDx+kN/WFaK3QHb91Hu/j1r+fCNebrj8RT8y+XMverhHvu5Il8nJ3zqP/G0SwreRbWqQ8qcE8O6GzWzdivvZeMv2TYNdmykVHoYAAgAAAEDCx4BKApUAjgeitKcm+IXzJR1XuNBx8XMk0Or+ucKcnUBnKXy69BV857eozS4pf+YVD78bvvqbP++SR9gQv0K5fs6Sh88ZN+OtnxPk7Bn15rvkoW31Fu78OWHOeinxcwRwnRRAMeZV3T4pgPc2yJIyeI8YAfN3gHwMPNG09YOxjnv+u3oLyMsZ92MEDAAAANySqGUALgT9kTiN9CXp3rbwtKMVba/z93qq88e/5VvAzls/vzNu1jUP7YavIX8+59zMrp+P+LlPuWlv/orJX75MP1P8zDd/BeVPu9+ry5/3iode+ZY8boz86QLIxU/IX6OsjY1SAle33vPtXN+4dSEkacg+AAAAAG5BxHKAeBsWFRc/NjcnaX9V8O5LS5pcI14pgPqGr+r4mfLnlT4n4oVXkY6f1unz6/jpY99TlvydWBb07fgJ+fPJ8zMXPPKfcrMXPSoGfW/45uv46Zu9fuJnRLsUED5d/Bz526iNenUB1MRvhVN3rdjEcwHZyo7N8VzvOkpFBm35gwACAAAAt7AApqJp6g9naaIzTXuq4//XuZKeX/C3e2rUawqg3vHz6/yZ416/rp97ucMv1Nm+31tQ/gJS/jQBNOSvwHavuuBxdfJXvOtnSF9Nfvlz8vx08dO6fdZbP3fXzxG/e6zS5K9hk0v+pACua9rC7mzZ9u5Ix/3/KdM3QfHIKMXi/FZwnKaJiy8AAAAA+JVCbX3Kro/V7TMqKc69jXWP0+YVo3S0LPwiF7XnF1W7On7mkocufb6dv6u44VtIAP3iXexYFyV/y4J2tEu+LV87zLki7l3yUGNfe9Ejd9WLHs47Py6Bo64zbubdXiPWxdjuNTd8Rdnit0EseugdP8/Id4U19l2harOo9Su2sLXNW9nKtm3HMl0PUbxvM8Wio+Lrn4pFRansR9UNVmNiAAAAANyEJONhWS4BdN6BJWXmX8sY7a4ajHHpEpu7i6rZ5YX5Rr7XL38XS2SeX77xr9P5M0Od/eSveMSL+4ybS/7K8wc667l+pvj5yZ/fDV9N/lwbvoXkb7Md8eIvf0r6/OWPS58s/gaQC+BEk9gIZrn2R5pSPdspHhmzBTAThQACAAAAvzLw0Z7T4XE6frycjk+SxgJJ2lEX/4NTpYH3ubiJLt9CLoDV3jBnH+kTtcD91q/4DV8lfarct3xV988MdPaecJvUDd8yebvXGPf6XfOoKN7x81/ysLZ7eaBzrRnqbIqfv/TZXT99ycOSPt+3fnzc22iWKX9bxOhXFRfA1c3b2MrWnW/murf822Rk2Pg/Avq7QNUFRE4gAAAAcNMKoJnxpwRQjH4jSRoKJunutigdXt51nmf+8dBn3vXj3zplyp8hfsYdX/OSR/4LHk6en98tX2PLt8Alj8nf8E0XPOWW75KHHujslj856i0U6mwtekxC/vRx742Wv4lmKX88E3CiaSu7s3k7G+nY8lAmuIri0UGKx+RbwHwFAAAAgJsQp8OjxE/GvvAaDCVpU1uG9tXEKp9c2souL6qzO39c/MTZNlVapt/ktnsLhzjrCx6ejp/91s/a8s0T5uwe9xa84avGvMvTbJ8o71u/4mHO3lgXLn9SAFdZ416/qx4+kS5K/owFD33JI89bP1v+5Ps+vQz5E8Knaqtda1q+zkabH7jS33n/3GTgLimBvvInf78AAAAA4CbEefOnPfLnm7+RHN3ZnaOHquP/+nhJ4J2nFtazy/MqC8qfO8jZqauXv7OlcsHjWuXPueQRvYZLHllL+iYnf3k3fO3On5I/7w3fycpfvo7f9cnfVqP4IsidKx5gK5u+xkY6Hn51InfgX8VD6ygWG7a3giGAAAAAwK/UpQ9HALn8jXSvoXubxulQVWrfN0u72LdLGtnfL+Hip0rKnzzdZp5vc1/wkNUhMv0K5fq5I130Dd+8ix7uQOdruuShL3hk2d5KKYBq1GvKX+GOnxnk7IQ5b6+2gpyNiJc1XvHziXXZXET6VBnyZy136OWWPy58a5u2yWreylbz77duZ3fwt4Adu1h/5871scBDFApvFhLo7gLy3zsAAAAAuGkFUF/6iFMulKP1ratoR/XYkpNL+65cWrSCPb2wjj27sEbI37Na508JoJS/Jvt9n1sAr1b+jBu+eeJdVNev+DWPYvLnHvdev/ypN355N3zr1JZvoZHvRyx/Qvq22XVnyza2uvVBtrpjB1vZ9hAbaHv458mufZ+L9G23Y2HshZBElGKJ6FT/9gUAAADAtRBLmFu/kXCMRnoTtKN56DePlMV/ymVNjHgXyUUPU/z0SBdTANWo1ylL/hZPYqvXNeb1dvzM7V5/ATRjXexFD23cq4ufn/ztrtKDnUelAFaOiXKiXcZdSx5+Y17/eBdjy7dIoLMjf5tE6dKnypQ/udihl7vzp4sfLx4Dw2usdbsQwKH2nSzXufeVVM/W30iEhygeCVMiGhMVi8UoGo/hXzoAAADgZhdAvvU72JegDW0xOlgbPc4FjUud2vL1LHrkkT/9rd+NkD93mPPRMlVS+rzjX3eun7/8+eX66fLnbPkWlj9HAL2BzpOKeCl6zeMjlr/m7Yb8jbU+JARwpG0nG+rYw/q7tm1OB1ZTIpSlRDQBAQQAAABudvQ3XTzy5Svt/fRwZbTu3LLuK99auMLu/rm7fs52Lxe/JiPM2X3D15S/HiF+jvxN5o2fLn7mggeXPlWG/Nm5fs6ihxRAR/omm+snyhY/r/QZSx7VXulzn3Lzy/Xz3vA1pU+J390Nm0Xp0qfKlD9zwcMrf9uF+Dny95AQPyV/K1t3CgEcad/DBtt3fdjfsW12qvvLlAwPUCIWoZhVAAAAALgJkWe9kuLW79rOHD2yYvB3jpUE3720qJk9u6DOs+ihb/kaVzw0+TPEj7/3s7t+uvgVP+FmZvmZ8ne4nJez8GGOfc1cv3zyN9lLHsXkL987P1P8CuX66eKnv/XTxS+//Nnv/Oxun4/4ae/9TPHbboqf1fmTtYuNtu1hQ227WX/bnh+lOr7227HgeopGhygWS0AAAQAAgJt5CSQTydJ45xra3LiKDpYnn+RdOt7ZU/L39GJnycNzwWNJC3uypMW43Vv4gsfkO36TW/Lwjnvd0S76uHcyt3vdlzwM+asq3vHTT7j5dfz0E27ejp97wcMZ84pqMKVPH/f6bvfmHffm6fjxsW/7TjbUtsuq3WywfTfLdexmqa7dD4UCj1AwtFVsBSfjWAIBAAAAbloB5Fu/G5tX0c6q8Z5TS6NC7rj08W1fXf78Fjwc8dMveZgXPK5n3GsGOl+9/JmBztpmbxH5c1/y2FGg43c1Z9zct3vzyV++N35K/tRWb7E3ftcqf4PtvBz5EwLYue9KqPtoZbBvN8WiYxBAAAAA4GZeAhnpS9K2hvQfHSmLv887dkL2ljSyp5bUy29db/xUp08WF782b5izNuo15K8kWOR2r/eCh/t2r/uSh/utX74FDyGAmvRNNtrFWPC45jd+xS555I90cb/xU10/d5hzvjd+vm/9WnYK8XPkT3X8HPkT4tf+iF2Zjn0s3nXgH2O9O38/HhnDKTgAAADgZuSTNI0GQ2m6qyNO+6uCz3N546LHBfDSkkZRUv7496UA6qNeOe6VAqju9xY64SY6f4b8ee/3Tlb+jEseKtsvT6bf9cvf+A1451fkjJuf/Plm+unyd3/Rd36+b/0M8Zuc/PHq79jHUp37WbJn5/54aAPFI6NE9OvWVWleAAAAAPilwH29QYT4Wh/zW7/3tmRpT1VyJZc0tdXrbPZqY1+XACrxM0+5dRhn3NzRLu6xrxJAc9mjeKRL/jDnrG+kizvMWRc/M9ZFjnsd6dMueWjRLvq4t5gAugOd3eNe96KH/s7PGPc25Q9z9hv7OvKXb9zrSJ/+1s8rf/vsylgCGO/ex2K9u1pjwS2Uit9BmWSOMukBSqey1J/up/50hrLZLGWz6an+7Q8AAADcmrgFUJx6iyYpF0rTRGeWdtWk/+JEafTnPLaF5/u5t3sNAdTe/Onyd9FH/gpd8piM/EkBnJz8ue/3GuLnI3+2AF6n/HkF0O/NX3750y95FJK/iWarrK6fIX6uax43Sv76O2THL9e2XxT/ONOxnyW79vMxMIt1H/pppHf3nyajX6FMYi1lUiOUyfRTNpujXCYriosgAAAAAKYo5kWe7ZK3W2XnL03r2kZpW93wvzpcHv2RGv3KiBd5uk2Jnnfhw5Q+fdlDCKAmf/kueUzuzV/+PD//jh8Xv5xPiLNr3GuFOReKdplcmPM6T+UPdTbDnO8uGuZsvvNb26yXvNnrt+CR762f+d5vlyWAuw3xG2zTR71S/kS17xfF5U+MfzsPKAFkkZ4Dzwxlz9yWiu2gVOxO6u/nApilTCZD/cm0KAyGAQAAgKkSwLiUv1g8TclojsZ6humB+jHaXz54kI9kudjJt38q3sVZ8FASWEj+1Lu/fPKncv0Kv/fznnG7HvlzsvycPD8n0uXqzrh5T7g5nT5j09cQP7Xlm++d342VP/XO70bJX8YuP/k7wCLdh1io5wgLdB5fHwkdpETyPkokV1EyNUjpNJe/rCgIIAAAADAFOKPfJCUjg5TrW0dfal9H36gZaD5ZFrnCBU7v8j21qEOUGfHiDnS2xM9Y8nBGvsVy/dzRLk6si77ooeQvK0oPczY3fPOFOedb8DClz6/j5yx4+Ee7uLd7iy165F3wyHvJY6t9ycMZ85ryl7fjp8oWPyl9ztjXK33qrZ/q+inx49KX6pTv/hwBPCS7f5YA9nU/fqU3cKSkN3qYQqmHKZ5eLTuA4i1gP/6dBwAAAKayA8irP5Sj1Z3r6L7GiT8/UhF7/0Jpp9bhk+faLlnldACv4oZvkVBnv1w/Xf4OXqP8eUOd88vf5N74rWEP1DkdPz/5U12+a5W/9aLMDV/3Cbdi8ufe7vVu+V6v/EkB5O/+dPlTAiiq93EW6D3+k774N/+wN/YYxVNfggACAAAAU00yHqZ4gldU5P3d1zQ87bHl/d89V9rLnipp1ca8SvR6rHKk7+pu+F57rp8R7WKLX84UP5/bvarcb/38x703KszZud1bbNHDO+YtEubsd8FDldbxU10/teDhzvUT1bpblD32bXvEEkC52au/9dPHvamOA1L8unj2n734wWJdRwwBDHUeZKHeY6yv7/TZbQ/96BPJ1FpLAGUBAAAAYIoEMBML02AoTus74vRITeLB08tC7MmlnezpJa12908XQCV6sop0/bT3foWueRSSPyl+jvy5T7gVGvlOTv7GJn2/15Q/V6yL533fxyt/fh0/9yUPc8tXid8jovLJn7vrx7t96r2flL/9jvxZpQQw2H6A9XUeYT1dR1lP756hWHIzJdN3iliY/nQK/84DAAAAHwWpVMKqlKh0kn+boEQyZtdIOEEb29K0oy657Gh54Mp5a5HDvOjhHvVa3T4t2Nkv109f8jhWFtTEzy2Aznav2vCV8mdFuhixLjnfcuf7mdu+zoavr/jVjFljX2+osxRAK86Fj37r1ngF0B716sLnbPgW2/I13/np8ue895tYod/v3W5c89Dlz93xMxc8vOPewbZ9omzx0zZ7DfHTRr3OuNfq/Anh4+J31K6QVcGeo3wMzHoDR3/R0fvIF3vC91M4OkLRaFSruPg2HItSKBqRFYnhDwUAAADgugUwmRECmE5KAUwlEpSLZGhNTz89WJf+o8Pl0Xd5Tp87xNm95KG6gPqCx9XK35HysLbd6xPvouX63Tj5GxexLt5oFyV+jgDq8retxi/QWRv/2tEu3o7fZLZ8pfzdb2z46gLolb9theWv7SG725dPAPUNX3/5OyDKkD9r1Ku/9VOdP0P+uo6zUPdxFuw5bstfoOck6+09ydp7Tv5DW+++f9cbuYeC0ZUUCqcoEolQJByT30Yc+YMAAgAAANdIIp0QZQpgihKJBGWj/XRnzxh9tWmU9ldGn+MRLbL718bOL5VlhzlrCx6ilgSsd36uUOcClzxUx09J3+FyXoW3fPUgZ/clD3eZix5mxIvs/I2znZWr2I6qVT65fuNsWy0vfeHDEb+tNSrPL9+2ryV/dcU7fu4tX3O7t9gNX2+0y1jr9oLjXt9FD59zbs7I16fzZ416VcyLinqRdUTr+En5C3WfFALYGzjKenn3r1cKYGffSdbed+xQU/Ax6oxup2BoxJA/u/iPhdEBBAAAAK4JNfrl8mcLYCJDmegAjQVGaVPzOO2qHdh8rCxgCZ91u3dpGztXqm74mvLHxU8teUz2ksdk5M+95cuXPCYjf96IF798v3EpflXyjZ8n3kUr/Yav7PppQc6+d3xV18+/41d8y9c16i1wxm2y8jfUvlMI32S2fM23fvs84ueVv0Mu+Ttij3uVAAa7T8qxb+9x1h3gdVJUT98J1tF3mjUFz8WbggepM3QPBcIjFIykROePy1807BQAAAAArhIesptNpCibyAjp48VlsD82QKN9a+nL7WvpGzX9VccqQlfOlLWzC6Wt7Mml7WIB5MLSbna+tNt442ds95YERbfPL9rF2fKNurZ89QUPXfic9376hq8a+aowZ1v4tM1ev46fjHbxi3jh4reGbefliXbh4rfKFfHic8FD3O9VN3z1aJerueTht+ghx7x+HT//ke/kMv3MLd98Sx77Cyx5OOXInyV9PWbxca8sOf7VBZB3/ngJEew9zToCT/y8NXh2dn3wADUE76dAdFS8/4tEQhQNhyjOKxRBUDQAAABwowRwKDJE6zvW0tcbVv/XIxWx986Xdgr5u7CsWQggz//j8ne+tNeQPzvWZWkx+Yua8rcsf7SLX7yL/t7vWuVvRzWvPPJX7Y52saRPlfuah+d82wa2qcHZ9C264GF3/TTx0+TP/41f8a5fMfkz62rlTy56TFr+ek0BlPInhU/Jn0sAWWvwwpuNiW/+54bIXuqN3ekVwHAIAggAAABMik9YZaHe/NmVyNAdwX56oHngNx6rzrx+Zlmf7PiVcvFrNwSQZwF6Fjy0PD9V7lw/UaVxIX6O/OnLHc6Ch7Hlay17qHGvinWxI11cYc6q/EOdx8Rmr3HRQ8jfhFjq8OT68c3eenO717zkoRY8HPlTYc6m/BXv+Mk3flq0i93x2+693cvjXVq3aeK3na1s46WPff3f+DlLHkr+tFDnglu+Pose2sjXX/qsZQ9r4UMufZwWstcZOG1IIP9+R99Z1hp8gjWGLzxd1vz1T/VF7xRh5HwTWL4DDFE0Gsa/9AAAAMC1CWDCqhT1x1M0Gs7Ql7tTtLshdu5kRUiInpQ+KX6ixPi31xZA74JHYfkzxc+RP/eo1xC/a5A/U/zcHT/vDV/Z+ZMCmD/Xzyt/3miX65c/dbvXlD/vZq/Z9XPkb8Te9C2w4DHJJY/rlz+3+Onyd1YKoFb8DWCbJYANgQusNXz0qz2RzeItYDiatjaBQxSOQQABAACAvEHOomLynm8sERcV51EviYSIeuGVTqdpOJKhu7ty9PCK9PjjtQH2xPIudqGsg11c1iG+vbCsyxn9iurzWe5wxryq/Me9TsdP/SKEFwAAIABJREFUVFnaN9bFGfd65U+NfPU4Fz3MWWX62R2/fGHO2mav+5Zv4VgXvzd+/ksetvw1eG/36tEu3jNufm/8nCsenlBnLeKFL3qoax7eSx66+En5y9fxM9/8mdEuTrCzvulbXPzszp8lfLLOiuLyJwXwAmsKPcmaQvzbY10d4R0UCo9SLBYTCyF8JJzMpMXv3UwmJYKj+RUR/nGqPyEKAAAAuCVxC6C666tqINsv3gEOhVO0oTdLO5rSCw7XxH9xprKLnV/exi6Utdnyd2FZjy1+heXPEcD8b/1MATTkb3natd3rv+mrb/Zet/y5bvlenfyZ3T79rd+Nkb9tk5M/ny1f/Z2fW/6k+Lnkj2f7qTNuReTPKXews7XkYYjfybzip4TPET/+/u8J1hy8wJqDT7Km4CXWEHzq/ebw8b/tCn1F5APGE/1CAFNZLnwZymXToqQAZiiVTYkCAAAAbkmS8agoR/qSlIw5lUmlaSSapY3dOXq4rf8/HayNvnuqknf/OoQAPlHOq4M9UdbFniiTAsjfBZ4pDdkj33wLHsU6f3qkiy2AWrdvb6VPLc+xPZW8HAG0s/yMM25OoLMZ5qyPe70dPz3MWS172LEuPrd8/c63uce9pvy5A52L5/n5bvfayx3eG75OmLMV6Oz3xk+LdTFOuXV4pc+47OHT7VPxLvp2b/6O31mfTp8jfUL8Qkr+pAA2By8JCWwKXfiHxvCx3+9N7qZoYrX4vZzNZkXpApjK9NsiCAAAANySuDt+uvylokkajOdobV+O+r9QfttjNbFXTlX1SPmrkOXInxTAM8ukAPrLn7bk4RvvYr71yy9/+navU1L8rl7+PCfc8ox7i8mfHu1yNfLndP38O35XLX+843eLyJ8QP1HfYo2hb7Hq4LfO9Axcuq0rsoUi8VWUzg7bEshLih8XQCmBAAAAwC257CHe+2mdP10GM5E0rQ7eQZs7V9K+xtjBE7Xd7FxVJ7tY2c7OV3aLOlfeZVWPKC6Ap8v62OllIXZ6WcS73at1/FTXTx/z6tu9Ks/PyfVzve/TFzzU+TbthJsZ5KyJnxXozKvYmNeUPjPQWY177WgX3xNuerSL0+3zG/fm6/gVPuEmR75+nT/vJY/d5qKH/c5vX8HtXkf+DolyS5//Oz9H+kTxYGfft358yeOsI3+BJ1hbnyxD/GzpkyXf/j3JGkOXhPg1Bp9h9aFnWG3oaVYXeXJ1ffQ0tcZ2UTy91u72qepPOwUAAADc0gKoun7q41QkRyOBQbq36w7a2TwwcKS+j52rbmXnq1odAVzeawpgWcCQv5NlEfuSh7vrV0z+1HLHZOQvn/gVkz/11s97xcMtf+qMmyN+uvz5Z/rdOPnzvvPTy3zz5yt/+pKHccmjcKafr/x1HhF1NfKX/62fJn6i4+cVv2LyVx/+lqyQFMC68DOsJvLMlerIc011sdPUm95GscxaSmZG7K4fXwaRCyF4AwgAAOAWxT365R8L+eteQ+tbV9GupoFlR+pCvzhd0ynkT1Y7u7jc6QCeqeDVw86USwE8WRYS8icFUJM+16KHEkBD/rQgZ1k5u4xoF0+IszvMWYmfs+jBR77uiBcpfab4OZc8JjzS5yx5bBTlRLo40S75xr0q2qXgWz9PoHOBCx56+XT+zCWPSeb5aWNes6zOX6dX+swlj2IdP9e419Pxu+AjfI70CfELK/nTBNCSQC6AQgLDz71fE/nW5+ozF6kts48imS/ZAsjFL5NNiAIAAABuSaT8WQIYzVIsNkz9wTGaaFtDD9SP/T+H62L/cra60+7+cfk7X9lpdwB1+TtVwcUvxE6URayKeca97g3ffJ0/PdLFk+t3TfLnbPrqb/4KyZ99u9cIdHbe+G0uIn/uSx7ut36+nb8iXT93pIva7tU3fH1DnT3bvZM74+a+7OEnf57tXuOdX7G3fmbXz5S+YvInBbDOLlv+RFVHnv9xVfq7f1KfOU/B9BZKpe6gTHoAMTAAAACA8x6qnzKpOygW3UQrI/fR9p7Vv3egKfXWyboedr6mjV2o5tUh3gCeq+JvAbvZucpedqqih52q4PIXYDwY+kR5iB0rj7Bj5TFRarPX3O51ljvyC6AlfhVy5OuVP2+Qs/t2r7vj54528e/4mbEu3sUO9xs/S/pUuc+4aWHObulTle+Um3nCLX+ki3vBQ5c//zw/nwUPT5jzZBc98i14OGfb+Ds/461f4IlJvPXzSp8qvfPHxa8mwkuMfi3xk1UZfZ6VRy5/u7n/md/sjO6hYHQjxePDIt8ykYyJ+qUJXs9Xv+zg54/PPwDg5hZA8TYquZIGg1+hmr9qvG1Pc/alU40Bdq7Wkb8LVV22+J2t4tVnyV9IyN/JCi5+sh6viLHHyxN55c9e9KjIL39K/CYrf/lHva5cP/cN3zzy5/fGzxPmrMmfFD+z86fLn9rudXf9fDt/XP74GTc/+dPCnAvKX8duLctP1mTlT93uLSp/3Sd9xr155K/3iYLy12pEu1yd/FVHn7HFT8rfc6xCCOC3WW38maN9Q9+6rTPyEEUS41IArZpyIFD4/N/Kv38AAFOHsx2ZopF4P23qHqOdTUMnDtcG2bmaDrv7d55/XC0FUMnf6ao+dnJ5wJa/48uV/EkBPFKR8FzyyP/Wzz/ImUufKkP+7EiXArd7Vaafb66fv/TZ0S7WuLf4Gz8lfZt8Rr2Tu+Hr++ZPu+ErBLBlp3zn577mUeCGr+r6ZTpN8Ut18sof7WKccSu26CHk73TBt35c/Bz5u8Da+mRx4fO++bM6f1a8i99bP2Pcq8kflz7e9VPFBbAifpmVxZ5ly4IX19dHHqW+5CqKp2KUSKRETTk3+/+A4+ePzz8A4OZEXElIZWgkkaL1wQTtbI1tOL4iys7WdbOLNe1294/L3/nqHkP+Tlepzl9IyB8vR/5MAfwo5M8QP03+DPG7CvnTw5zVWz9f+TNGvZr4+d3vbdriEj/3Dd9C7/2sN39K/lxv/SYtf5YASvHbl/e9n3m3V97u1cv/ksdpIX1+J9y8Xb9C4qe99csjf3V55E+K33Om+PHuX+x5Vhb9NlsWf54ti/89q0mc621N3E99yXGKJgZE9NGUA4HC5/9W/v0DAJhaARyJpemevjQ91B5vPtjY++GZ+k72RF07u1DbLjqAdvevRgqgkj9eJyrD7PhyKYDHKiPs2HJH/g4t55XKI3/mgoef/Okn3LydP78g53FPkLNTE0L89GgX95KH33u//G/8HPlbb4x6nY6f6vrZwlfwhJv/qNdZ8tDz/FSYsyN85v1eJ95FF79kFy/3uNfp9inpC/VoVeB+r9PxO+u74OFs+Wri1yfHu/obP/+3fl7ps9/5aW/9xKg3Jse9sv6elcecKoteZuWx77Blse/wTuDPKxJPzFmR3CM7gfH41P/Rc7P/Dzh+/vj8AwBuPj5JJOTvy+EMfb0lMv1Ic/jnXP4u1LUK+ZMC6MjfueqAJX9KACOWADry93hlQgigkr9DFRnfzp9X/JwrHnqmnyF/2oavn/xtq5WxLn4CaMqfd8NXFz9H/jaa8me88/PKn+r45ZO/1W75s9/4ebd7R6yy5a91t5Xnp8mfT7TLpOSva3/erp8Sv2CvLFP+jkr56z3ukr+z2v1e/ZKHX9fPlD8hfVq5t3vlGz9nyUOMe7WRr5C/2HOi2ydLih/v+PHi8lcefYkti73ESqLfZUtiL75dmbz4X9uSX6fe2J1E9OtT+y8hBAqf/1v59w8AYGr4NBFt6s3S9ubY/3GkNfJPJ+s72BNc/upa2RN1vAvYyc7VcPmTAnimxhHAU9UhdqqaC2BUkz8pgIcrZffvIO/+Lc+I8uv8uU+47a7iNch2iXKiXcyFD2fRQwmgFL9xtrVu3Ip1cQc6+499ndu93g1fteUrpG+FW/ycsa8QP0341Ps++42fLX5b2Z0tvLQFD/2NnyfIWUngTleYs3PGzU/6eK6fKrnk4chfXBM/fdHDkb9DhvyJ6tHlTwpgryWA5iUPLn+nXWfc5GKHOfL1yl+9UZdYXeSS3fnj8lcd5eXIX6U29hXyF5cCqEa9qkrjvPP3EiuNvcxKY99jS2KvsEXx77KlqcvfLUt983drE3uJ6Hem9o+fm/1/wPHzx+cfAHBzdf4+RUS/S0Q7WmP/9khz+A1d/pQA8neAZ2q7ZGkCeKpaCuCJ6gg7XiUFUJe/w5UpdrBSF8D+AvJnXvNQ4mdGu5hbvnqen+r6OeK3ytnurdM7f+YZN3emn98ZN6/8aW/9fOVv6w2RP3emX7EzbirTzy/Y2en46fKXf+yrpE/KniN9jvgdlxu+gZO+I1/V+fNu9haSv0uO+EUuaV0/t/ipt37Olq966ycF0JK/2HeE/MmSAlgSdwRwceoVtjD16lMliW/+Jk37b0Sf+J2p6wRCoKYWfP4BAL+qDA0Mihoc5JWj7ECKxjJZ2hQdoYcDuU8fae175WxTOzu3op2dX9EuJJC//zsrBLCTnantYKfrutjp2h52ujYg5O9EDa8QO1YTYUero+xxSwCV/B2q5NKXYo9VZtj+5TLe5dHyfra3vN8316/Qhq/flq/x1s/3fq8e78LFb4Mo55KHvOLh7vyZES/6hq/7iocZ7WJ0/bStXrXk4ZU+c8nDzPXzvvXLJ39moLMZ7eInfu7NXmfBI887P2Pce9Ilfu5xrx7qbHb9jDBna7nDHetidvz8pc955+e891MlR7/yrZ/o+nHxi7/ESuIv27U48T1RixLfYwuS32OLki8dntV3+tdqUvsomFlDqVSCUqmUqIRVAAAAwE0tgLxGcoM0PjBMG5IDtL07O+2x5thTp5s72fkVzez8ilYhgGfrHfnjdbrOEcCTdQFH/mp1ATTljxeXv8e0zh+Xv73lAz7yNyrKfutXOWYJoHW7t5D8+Sx4uN/6KQG8r3ajKFv+6u4RlTff76rkz18AJy1/Rq5ffvnjuX6O+JnyZ2z3TlL89AUPzyUPTfz0XD/vJY9rlz/9lq9b/pwxr7nZ6xY+vbj45Ze/l4X4Sfn7vqj5qe+zWalXd4w9yj7Rkn6IAsk1FE32i3zAeFIWAAAAcFPCO39KAMczw7QxMU5f61tJ+1vjx443djPR/WtqZueaWkUX8ExDO+OLIGfqu0Vx+TspqoedqAuwY7V9jvzVRtjj1VF2uEoK4KEqKYAHqqQAPlrZ74x8ywfYIxVcAL3RLoW2fM1LHqb8qbd9omrkiNcpLeLFEkCj8yfkz+eihyvfzwxzNgOdjTw/T7TLdjvTzxPrkueix1D7teT6FQ9zNiNdvN0+P+lT3b7uSd/wnWyYs3a715Xr58S6PFN0u1fv9hniFzOlT3X9nM6fFL/5ydfY3NRrbHb6NTY3/fKqpdnnqC59iEKptZRO8k6gLAAAAOCmFUDR+cuM0vr4KN3fPUR72rKbT7ZE2IXmHil+lvydW9FpyB8vLn8n6qX8nagLCvnj4icrxh6vjrND1TF2qCrBDlSnpPxV9wv5UwLIO35c/nZXDBl3fAtt+HrFz9nw1Rc79Pd97nd+Sv68I988p9x8bvj6RbsYt3t95c8JdHbEz+eO7yTlTx/5mpl+k5e/gpEu+mKHGvP2yVHvtcnfhcnJX0jm+X3U8rcon/ylXmezkv/AZiRfY7Mzb0RL0t+m5tQO6kuuoXiin1KJX4JTcQAAAMC1MDSQo7HsMK2PraItvWO0pyM+drS178rZFd3sworu/AJY18tO1fcK+TvW0MOO1QfYsfogO1obYkfqIuxIbUzU4Zo4O1AdYweqE+yx6hR7rDrDHq3pZ/uqVA2wR6p83vlV5bvoked8m3vBw53nZ7zx22CEOvt3/LyXPPT7vUags1v8Vmyzyx3mbF/ysMotfP4LHoVz/dzv/HTp45c8zGse2uk2rfPnyN9x836v+4SbK8w5/x1fJ97F95KHWvbQxrxu6asLPyeKZ/oZuX7Gcocz6pXS5xr1ig3flzX5Mzt+ixJy3OuWv7mp14UAzk79SNTtmR99ODv9/SougbWpg0ICfylOxQEAAABXyzSaRqPZUZpIjNHmwBg93JHrONra9+G55k52sblLlC5/51Y4nT9DAC35e7w+LOTvcH2EHa6LscN1CXawNu6RP16PVPezRyz5e6RqtMANX9eih+uaRz75M863KenTyhvq7Or6TeKMm+/t3oLy5wQ7y+5fvu3eyYc6+73z08Oc9conf/r5Nl0Ai8mfkr7Jy9+FScrfczdU/vyWPPS3fkr+pPjJzt9srwDy+mBW+kdzFme+TQ3ph6knNWHtywMAAAA3Eb9Gt9FEfIK+0jdOD3clFx5pD/38bGsXu9jSxr7Z3Ca+5QLI3wGebepkvCt4qsGqei6AfUL+Hm/gFWRHGsJC/g6KirGD9Ql2oDbJHquRAvhojRTAvZYA7qkeYHuqh9keIYD5b/gWW/Rwb/a6c/xkOSNeWRvYpgZ5y9e95Wte9NBjXfT3fuqdn2vcay95yDd+9qKHIX5S/njllz6V66eNejv8413c2736gkey85AoW/y0RQ9z7Ovc7lUl5S/PmFe75GGOfN2Bzq5FD9fYV77xM7t+Uvqet0rKX3XEWfZQ8qciXdybvea4t3jHT5U99k3z+pFV8vu3Z2TNyP7onduz3/+f8/ovU0X2caJP8LAkAAAA4KZgGn2SbqPfpE8J+Xuwa/BzhzpC759p62AXLPlTAni22RHA003d7GSDql52vKHPkr8AO9IoBVCXP1sAhfxJAeTyt7dmwJA/Xt53ft5bvvnf+uWRP9fdXvclD2fD1zzp5nfD13POregZN0v4NPlztnyl/PH7vdcif8WjXZw8P6PrN0n50zt/7q5f/u1ec8HDfcZNdfycaBc93sV556cLnyxz0/fq5C9/10/InzHylQsfjvDJrp8SQfX9GdkfsenZH//w7/rf/NN5/S8QffIvpjYnEAAAAPBjeHiQhoeH7RocGabRwTFanZmgr0TX0K6u7F8caQ+9e7Kjg51ta2EXWlvYxZYW9s2mDnaxuUMI4OnmdsbjYE42d7MTK3pEHW8KiHp8RZ9VIfZ4o9P9e6w+wR6rT7H9tWmt8zcg6pGaISF/36getcuRP/9A53ziN7kTbht8On5OtIstflaosy5++d/7OQKowpzVKbd80qdv+HL5k90/H+nTTriZ414pf+7tXlEdeca9Rp5fni1fW/xOi+Jdv0KdP2+Y8xOFz7j5RLrU+Zxy00+4OeVd9FDiZwc5e8a937PLlD/voocSP6fzZwqgqPSP7ZqR+TGbnn2TTc+89f0Z2df/ZG76WVqeepQ6ImPiTWAslqBoPEHRaFx8DKaYmz3I+WYHn38Apg5d/kaHRoX8reofp3tjq2hHYPS/HuoIvcM7f1z+nrBKSGAz7wZ2sNPNrexkSzs7aQng8SYpf0ebA+xoU9CQv8cbY3b3zxHArN31e6RWyt/u2hFT/moKBToXHveaAuh98+cvf/cUlT/V8fPL9rsa+csX7WLK364bKn/2yFfP9Muz5et0/PKJn7frZ4qfS/6Cl2SeXxH5U7d788mfueX7fGH5c4183fInxe97dtfPED+t61dc/t6UlX6LCyAXwZem537yH25PPkV1iYepK76W+qI5isZSQv7i8ST+6JtqICBTCz7/AEwdo0PDdt0xMEarMhN0T3wVPdyX/fPDneGfnmrvYmfb2tgTrX7lCOCJlk52okUKoJK/I81cAEOiDq+IsMMrpADa8lefYY/WZdkjtf1C/nbXDbDdtUPsG3UjbFcNFz9L/mq0jh8f9daqca+26WuFOvsHOa/zkT/vuFeNevNt+aobvu5cP1V+ES96mLOSP2PM65I+95u/fHl+nhu+bvkzpM955yeq84goKYD+uX52xIv1zs8Rv3y3ex3haw494Sx22B+7wpyNM27ePD9b+qJu+dOlzxE/feyr5K8k4Q1ztnP94t+33/s54vd9346ffN9njnl5p8+sN1Xnz6qfsi9k32LTc//4nc8lX/uDWenvUlnyBHUkvkSxeFrIXzIWxx99Uw0EZGrB5x+AqYN3/VYOjgr5W5sZp43xNbQtOPofD3UH3zzT3uZ0/izhO9vmFO8Mqu4fl78Tzb2G/B1pDtvdPy5/hxu1zl+DFMC99VIAdfnjtbN2VIifrPyZfvpFj3zyV+x+rxQ/beTrK36b7K6fyPQzcv3MhQ/9vZ9xv9f9xs/T8Sssf86Ch9+Sh2vL19Xtc4uf/dbPFj+/bD+3/DmbvV75M7d61XKHsd2rXfLQ3/l91PInxU9/73dj5U+InyZ/X8hy+fsp+7vsT9nnM2+zz2bffub/S/70383Nvkp1yUeoO7GOIvEcxeMQwCkHAjK14PMPwNTBL3yM9d9BE9kv092JL9GO0MAfHuiN/PhUVzt7omMFO8+rvZk90d7OnmjvZHwL+Ewbrw52sq2dnWh1un/HWqQAKvnjJTt/UgAPrZACqOSP176Gfra3Lsf21A+yPXXDPgI4rgngKlMAbfFb4x3z+kS8qFiXfGPewtu9m9m6Jl5btPNt/lu+dqSLIX2uca/1xk+NevPe7vUZ8/qL3z6W7Nrn2fJ1L3jEuo6Krp/q/HHpC/TqpUKd3QLoinTxO+HW96RPnIuz5WuGOV9idZFL2ns/95KH+c6v0Fs/Z+xrnnBT0qfe+Nnil3jNLn3DV494cS936G/8VMdPdf2+IIqL31u2+P1d9p/Y5/r/iX02J+tvs+889fn0j397Tuq7tDxxjHrTX6JwOIg/+qYaCMjUgs8/AFOX83fH0Bqx8LExto629t3x7w70Rn7I5e9sJ5e/BiGAT3Q4AsjFjwvgqXYugJ2G/B1r6bPkzxLApqghf4dWWJ0/SwC5/O2rH7Dlb3e9FMCH61Ya3b+Hald5g521935+8mdGvBSXP/XGb7Lyt7ZZvvErJn/OFY/tPuPeSWz3GvL3yKTlT13yUPKnFjxM+XNf8vBe9OguKH+TFUC3/JmLHvqbP1P+ns8jf9+5JvkTG74+8qdHvFyP/Enx+6kQPyV/f6vVZ/vfPfdX0Td/c2bmu1SWfphaUmuJpiEncEqBgEwt+PwDMDVMo0/R6v6v0D2pr9CWjvRvPdYXffVEV6cUPiF+ss52NrOzHa3sbEe7JYBSApUAHmu1un+tjgAe5t2/5ig71BSTtSLBDjQ5Arivwer+NQyw3Q2DQv52NQyzh+tG2I76leyh2jGrxtmDtdo7Pz3U2TXuzdfxM0e+xd/4qe1e44wbl79mKYDu822q3Jc8pABqlzyM822W/LW6pK/ogkeeG74+8ufc8D3qH+ZsZ/n53++1w5x7ZZafnunnv+ihj3+1LV9r2cMMc3a2e42xr2fc+/d2uc+4GUse2tjXlL98uX6vi2seein5U9Ln+8ZPG/fa4tcv5e9z/T91un7974pyBPBd9jcD77L/NfT+458f/+ff+KvR79OMoRNEt/0+/vibSiAgUws+/wB8/J2/afTr9Cn6DH05eS9t6lr5rx/tib58JtBlj325BArxU2UIoBwDn+TiZ8ufLoBS/pQAHmji8ucIoC5/exqHhABy+dvVMCrkj9eDdWPswTopfw/WylGvseU7xfKnb/a6r3g4I9988ueNd/GTP9X1M8XPPOV2dfJnZvpNSv6sCx6q06cueNjLHtrChzHu9ZM/d6af672fX7SLLn/ubp9/rp9X/vRMP9ntc4TPOemmyR9/61dA/gzx63+LfS73lpC/z+Z4OcIny5K/3Hvs/x14j/3V4HvsL0beO/TfVrN/9Zdj3yf6jb8m+uTvoxM4VUBAphZ8/gH46Fg5MkQjWo2NjNLY4J10Z3Yj3ZO5h7YGhz69LxB76WSgkz3Rs4Kd72pk57ua2LmuFnauq80jgHz0yzeDT7X3sJPtPex4myZ/rSF2uMXp/h1siQvxe6wpZVWGPdqYZXsbHfm7NgH0ee+Xd7tXv+G7yZK/zaLs270e8TM3e91jXyV/d7bwcotfvkgX//u9UgB18TO3e/XlDkP8PGfczPd+eq6f/t5Pv+Hrkb/ASc8ZN+9bP7+OX75cP/9FD/d7PzvaRVvy0Dt+zjk3c8zrlBPrYix5aKNe9cZP7/Txmp2n8+d0AIt0/HJvsc+K+in724GfCuH7mwG9ZOdPF8D/kXuP/c/RX3zjf01c+bW/HH2VZg6eEOPgaDxGsVhEVCIWoWQ8ij8aAQAAXJ8ADo3yb0do5dAdtGZgDd0VX0d3tWQ+s68v8uLxvnZ2rpfLX70QwHNdTexMd4soXf7OdnSa8tcRYMfauPhJ+RMC2BxmB1t4RdmBljh7rFkK4KPNGfZoUz/7/9m77yC5rutA+JeS19Luev19dnn9bdm7Lq1t2ZIVmEBQTGCCKAZRJEESAhMgEGnyTE9P55y7pyd2T845zyAMBjnnRBAgCFGkmEkQprWyP0kfRVMUeL6697zX7973Xs8MggyAfKfq1GAA/YFqoIifzrnnnKkVQQF/DIBS+zcDwKVJDoA1MPST1LT4k9/7ie/8slX9dOAnLHS+GPwN6+BvtfTWT6z8hfPxfq+IP+10r+Z+r4Q/ZchDXOp8MfjTVP5U+OMvesi7/fTOtyn4U7/5E8+56U33zhZ/wkqXaeCXed8nTfeqK33yObdpK39Z271y1U+Lv1vCNEX83RL6BG4OfwK3Rn8P34v9Hm6Kf7b+m4nffWVu7F2y0L+O5LuridnhNQBohBFGGGHExQdFH81IPEZi0SQpD6VJvbeWtOfb/mSLxfnm3lIZf8s1+OMBuL8wH/ZLAKT425tfygC4s6AMtudbYGseJsXf5lw7y425TtiQ44INqxCA61cFYHJlENYtRwCuWRGBNctjGfxNSAAcfZ4CsAKGllbB0NIaGFyqvuYhnnPrZKksc1bWujSfx+1e9TLn/sxOP7Hty611ydWf8pVbvvpn3GQAim1f9ZSv3loXNfoyQx6qQQ+LXstX2Ound8NXddFD895Pbv1x/kcWAAAgAElEQVQq59zkxc6zQ59S9ZNv+fL3e/npXvVbPzllAKrbvPxaFwV+eu/7uAEPeYGzzoqX+X5xtYs43at666fB30cMfpkMifi7OfQpfC/6GcsbQp/AdZHfb5wT+fVX54XeJo/5d5A8VxVxOByZNMIII4wwwogLClb1iyZIeSRJKoPVpDFYT8bDqT/bZLG9d8CcB4dLlsGR4p/oVv9o7i/E6h/F3/6CYgF/u/PLYGeBlQFwC808m4K/PAmAMv5yRADK+EMAIv4mlpUz/I0+XwlDzyMAKf4Gl9bNUPVT42+2q11E/Il7/c4Hf9q2b/aW72rN7d4/BP6Eip+w1097v1d90SMb/lZlwZ9+q1fnvV+m8ifiT4SfeMOXH/bgd/ppVrvIgx6qd34i/pTqn3aR8y80+FNWu/ATvnLlT5zyVePvZpZa/M0J/Q7mhj+FORGa5+CmKMBN0XObbop9+p/vibxLFnnWkHxnDTE7/MRuN1rARhhhhBFGXMSt38pYkq16aXFXkz6z+y/Wl5a+v7c0F46ZV8Ax0/Msj5iWwxHTSvYO8HDJKjhcnA+HSvKx8idX/woRgDL+pgVgrhM25rphfY5HwV9OANatDMKaFQjA1StisHpFgsGP5tiyCoa/4eerEX/P0+pfHfQvbUD8/aRBNeihXuisv8hZwJ96wEN1vm3avX5Z2r10p1/2vX7a1S56FT+9M24i/rKhT40/bcVPrvqJQx7K7V71DV9+2INHn7LahcefeqWLOODB7/XDlFa72LTDHbpDHlkHPJTbveopX/6tn9L2FZc6K9jjqn1Zhjz02748/rDVK1f8KPwwFfjRpPCbGz7H4Efzhsg5uD78e5bXhT7ZPSfw//7J3YH3yQLPXlLsqSMOl7Eo2ggjjDDCiAuILxFCKiPlJB2sIN3eWtJr8v3lprLSD/aV5cBRywp40bI8g7/DpSsxJQBS/B0qLhTwt6/AhPjjqn87Cq2wtcDG8CcDUK7+TeUpAJTxt25lWMDf6uXJDP7GllUx/NGk+Ot/PgX9z9dB7/MXAz/+fq842csDUL3YWcSfuNqFr/jNjL9JfOeniz9xvYv6vZ+y0Hl6/ClVP7HiNxv8Kfv8+HNuCv7kqV69t37i7V79lS66e/0y+FPv89NZ7aK65qGHP80N31njT1zrIrd7ZfCxnBZ/H2XB3ycwN/IJA58u/sIAN0SUpAC8NvwpXBv83d4b/L//03med8jT/kmS46oh5BpjT6ARRhhhhBHnGf+J/BFJe2pIn7uWjJe6/tdmc/Ev9tty4Yh1GRyzLYdjVoo+xN/B0hw4WJoHhxj+cuFAST7sM1H4yVkMewoVANK3fxSA2wrtsLnQBpvyMSn+pvIo/pywPs8Nk7kemJQAuHplANasCsNqCYDjKxIwviIJY8sRgCPLEYBDyxQA9j5fBz3LZrHMWafNq273yuATL3ko8FPv9xPxh+fbMvjj0Ke+4Su889PZ64cAVK92UZY5y/hzFG9UFjpnrfipTrhxAx76b/2UNq92spef7pXavDMMeGjOt2VDn2a1izjcoVfxm6nyJ1b81Gfc5AEPZakzf8ZNe8FDfOsng09J7qoHj7/MgIcWfzL65FTj73r6NQZwfRQRSPPG0O+Pzgn8+s9vj75HHgrsxBUxRhhhhBFGGDHb+DL5Evmv5I9ItyNJhopd39hSWvyvR+z5cMiyFI5YlrA8bP4JA+BBMwVgngTAXDhgyoV9pnygq2HoYmjMYthdZIKdhQr+aPWPAbDAARsLbLCxwKHgL18CoIS/NTn+DADHV0ZgfKUCwJHlFH8VMLyiiuFvYHkt9D9fA73LUtCzDAE4O/zx1T4+tfjDqV5lupdf6qxt+XLw08Gf+p0ff7/3kuAvs9Nv9vjTTvZyb/x017qIq11mhz/uggd3t1eNP366V678ydU/vUXO2ap+ekud9fEn3u9VL3Xm8adu88r4k6d75Yqfbss3lB1/8hs/PmnLl8cfD0D8tXNwU5x+f+7ojUn4izti7xPyx7cS8qW/MiqBRhhhhBFGiFFVUSllNamsqCbxeJxUJqtIQ6KOdAUqyITF+r0dZYW/OWQrgKO2lXCkbCkcK1uCaV4Kh83Pw0GzjMAcxF9pLtDpYArA3cVSFhXDzmIT7CgshR2FZbBNwt/WQidsLnAx/CkAdDP8rc/zZgC4NicEa3JDMJGDABxbFYOxlQkYW5mE4RWIv0GWNTCwMgV9y9PQuyLNANi1XBr0yOBP3uent9BZbPeqBzyEFm9mwEOp9ont3mwVP3m1iww//fNtSip7/RB/G4W3fnLbl7/hS/FnK9FW//hrHnLLV17tggDcr6n6FZj3z2Kli/atn3qJs3qZs6b6JwBQxp842au+5MHQJ+UClnoVP/GMm941D+0Zt7Mc/pTTbdkme/npXr7ap9vu5eBHBzz4IQ8efzz4GPqi55PnXpkT/fh/zQt/SB7zHySF7hTbC8hPCH8upoSNRcDG52+EEUZcPABrktWkOl5JmhJVpDdURYbtrge2WXN/e9i+HI7alrPWLwOgWUk1ACn+sPqHANxZUgg7ixF/O4vNsK0I8be1iKYKgPluhj8EoBfW5/kF/K3JjcDEqijD38iqBIysSsLIykoN/gZW1DH89S6vZ/jrWtaUBX+40Fmz20+1z49f7TLTgEe2qp8u/nTOuOlN9WrgV7BZSPWUr3LJQ6z8qYc8LhX+cmeJPx5+54O/HzvFQY+FTqz8KehT8PeYW7/ip4c/LQDFlq8y7av31u9XOqtdOACqTrmp8ScMeWjw92mmond+6NPkO9dH4B/nhc+yN4GF7hpS5gwYADTi0sU1M6QRRhhx5UZlZZJUViIC04lq0hZNkaFgORk1Fz+3y1X0ySHHSjhqfx6O2JZmAHikbFkmEX/L4UDZSjhgzhGrfxwAt5eYYLsEQBl/m4vtsLnICZsKXYi/ArnyhwBcl+eHtbkBBX95ERjPicKIBMChVUkYWlXJ4U+q/q2sY/jrXoEA7FyOAFQWOnPoW9aNqZnylXf5qfC3YvrbvTL89Cp/+jd8p1/kLKOPxx9e79gqpDDoIVX8LCVSqtu9Evj4IQ8FfrjEWTvoMf0+P3mti7jXT+d8W2aPn/qtnwg/fsIXwSfCT6n6SeiTUz3dK6BP54avm17zwHzA+wuW8n4/Za/fL3Xe/Gnxx7d7EX8fzWrQQ06+7XuJAEgrgb+cG/no5tsjZ8kjwf0k312bWRRN86oPAyDG52+EEUZcWFD81SQrSbq8krRGk6TfHyVjVmvRXmfBp4cdz8NR+0/giG0xAyB9/3fIIuHPvAIOla3IVP8o/uheQB5/u0uLM9U/ir/txRYN/jYXuRkAKf4UACL+1uUFJfyFGP4mcmMwmhsX8De0qhoGVlYx/PVJ+OtZVYf4W9nI8Ne5vEUffxIA2RUP/r0ft8hZ0/rN+s7vPPDHt31Vb/xE/IkAZK3ezPk2Hfxxlzxmwp846CFO+OpN+fLv/LLt9FPwJy5ynm6ti/aShx7+9N/5zYg/bq+fercfVv104Me995MnfRF+3HoXXfjxb/1U8BOqfh8j/OTkqn7a936XBIA0f/PdGMynCFzkW08KXLXE6vQZADTi4sMAuBFGXL1RU1lDGipqSVekigx6/WS9qySwy5l77rBzBRxzLIWjjsUSAqUKoHUFpmUVHLLmYuVPrv6VIQBl/NHcXsJV/0oQgAr+nLCh0AUbCj0sp4o8MFnghXX5UvUvPwhr88IZAI7lIQBHc8phJLcChnKrYHBVNfStqoK+VTXQsyqF+Mupg66V9dCxshHaVzRBuwRA3VNumYpfJ9StpNmt2uenmvLl8SedchNWu0hrXRT8qS95zNz2Va91ybbXj2Wh9nybAj5x2EN3tYvOGTct/hCAqyyHOfhxK1508Pe8Ran6ZVq8UptXqfidnvGSh/5kL3++TUYft9ZFqPip9/rxFb8POfjhOz+l3fsLuCfwCwY//X1+6jd+0033YptXRp8CPqndG1Vavhf+5i97Xhtj+e9zoh8vuD30AXnUv48h0HgDaMRFhwFAI4y4OuPLhJC6eDlpD8fJiDdI1piLW3e5Vnx22LUEjriWIP4cizMVQArAQ7YVmFYOgBL+9pkLJPzJADQJ+NtWbEP8cdU/Hn9TRT6YLPAzAK7NVwDI8JevAHAktxyGJAD251AA1kBPDgKQ4q97VQN0rBIBqEz76uFP2euXWoUAlAc8sr75E/A326XOqy8If8p0r/LGT7fiJ2APU4Ygfr9bF3/qKV8RfpcOfyL8TmeqftkueWjx946CP6d8wWO6di835asCoPqkm3rQQ42/O4P/Ns1KF+WSh97tXu10r4Q+PtVTvpcWf3Il8HfXRT5bMi/4AXnKSyuB6at/OtgAiPH5G2GEEecff0wI6Y2EyYTfQTbZcyf3u1cA4u85OOxYzJLi76h1qQDAAyxXwQFbLuwrWwl0MTQF4J4yBYC7zMWwSwLgthIE4JYSBYAbi52wsdgt4o9lANYVUvz5YXVBEFbnh2GiIIr4y4/BSG4chvIQgAN5CEAFfwjAzpwGxN+qRmhd2QStKxCAmT1/tOUrvPXrVeFPAiBt92bd65f9jFu2yp96vUu2N3/6FT/1gIdS8ROrfqplzpkzbnKKq130Bj3kdi9Dn5zTLnU+ifiznJLwd5ql3O7NgM+hoA/h98q0lzzkdq881cvDjz/hJq900X3jp1rorOz2m6HlG/gF3B1AAJ7vGz/1+TbljZ+6vauXEt7kVS+XBIDnMnld5LPP5oT+3U8R+JjvACHX/NUFroi/QsIAoPH5G2GEEef3n2/6//v/nBBypK32jzc7c04c9q6AY87n4JjrGTjqeBoOO5+FQ/ZnleoffQNoW5bB3377KqBLoRX88QBE/O0qpfDD3GLSByDizyPhTwHg6gIEIMXfRH6c4W80PyHgbyC3BvpyaxkAefx15jQx/LWvamb4a13RlgV/2kseMv6U1S6z2OunmvKddq8ft+ZF/d4ve7t3uune6W73cuhTtXoRfbPDH8JPwR+/109d9ZPhd774y/bWT7vWZfb4E+HHr3jR2+2HFT+s+mHeGaT5b7N753fe+JOBhjD7wwHwnBqAcF0Y4PoQtM8LfvBH5D/disuiM5XAL80AvJl+/T84DAAan78RRnxRIxlPkkRCyWQiIWWMJMpjpKqqglRUK5msqiR1FXHSG/GQQcvK/7HLn/P+Ic/zcNS9GF5wP8sAyJJi0LmEvf+jwyB0FQzN/dZlsN+6AvZZV7GU4cfwV1aUqfxR/O0otSj4M1lgs8kGGxn+EIAbaAWw2A2TxR5YV+iFNUVeWFscgDVFCMAJCYBjBRSACRiWADiQJ1X/8hCA3RIAO+XqHwNgM7SuamXZsrINWlZ0THPLV2z1zrjahXvnp7R8cbJXTmGvX4G4209s93Loywx4iKtd5IXOPPz4IQ8Bf5rpXn7AQ7/Vq17twtq8FH5WxB+r9KlOuInrXbhhD810b7ZlzvygR7YrHu/M6navMOAhTPWKK13U8FOfc5MXOzP0Bf8N5rFU8Hd76FfCez/tkId2rYv6di9f+UP4wWXLuZGPN98ZOvvfHgvsJwWeFHE6ncRh92A6XMTudBCn081+3umys69uhzvzc8atYSOMMMKIyxgy/OLlCgAr4/oArKkqZ/jrivvJkHXVd3d7V/3bEQ+F39MMfxkAMvwhAA87eACuZPhTAJirVP7KimB3WYmAP5oK/kQAbihBAK4vQQBS/FH4MQAWBmGiEAE4JgGQ4m84Pyngj2YPA6CIv46clgz+ZAA2rUQACm1fnfUus8WfeMZNxt8kS3m1C4OfhD/ldu9s8SdP9+q1fdX4E695CIMe0+JPu9dPfOMn4U91wYO/4Tsb/GnPuOnjT/3eT4s/1f1edeVPgz9tm1cXf9wNX23FLxv+fpMdf/TN3wxtX6XyB5c7j8wLn/nLp/yTDIFlzhADoN2pAqCUboeCQAOARhhhhBGXMeLliUwmMtU/TPo9BaCcdRVRMpjwkiF7zvxd/pUfHfIuhqOep5V0PwtHXM+wN4B0CISmDMBDjuVAdwIy/NkQgHtsubDbkge7LQjAnZYS2GE2wQ6zVP0zq/BXaoMNJRR/CECKv/UlXlhbggBcXeSHNcUhWF1EK39BGCsMMwCOFCIAhwoQgP35CMDefARgZy4CsCMXAdiWiwBszqHZDs2rOqFpZRc0ruzh9vtxVb8L2uu3WmetyyREcqcgnDc1DfpU+Mvs9VNN93J7/WT88YMemjNuXLt32hu+s9jrh61eij8EoIw/GXvqRc4i/qZHn3zNg5/yzTbhK075SuiTk5vuFfGHK1200716FT/tXj/+rZ843asa9BD2+n0y7V6/G65oAJ6DuZGP3pgXPvMPjwT3sj2BFH5yyujTAyBNI4wwwggjrhAAqrOqqorUVpaThooo6Y67ybAzp2R3YNWnh/zPwQvep+CoZ5GUMgCfUwDoXIrVPw6ADH+2FbDHJgJwp0UEIMUfTR5/G00ODf4mTbTt62P4o/BDAIZhrBABSPE3UlgOQwUIwP58BCDFX29+CrryEIAduQjAtlwEoIC/nG7E36q+WV3zkCd71fibbqefvM8P8Tcl4M9XOKm53av/zk8Pfluz7PTbqfvWj6/6XTj+pJbvLPGnveCh3+4VT7nNHn8/8rwj4E+e7J09/rhLHjr4097w1YPfb0T4XQD+rlQASr+ff5kXPnPrIt86stLbTn7iayfLvfXE4gpK6FMSMWgA0AgjjDDisoa64qdkkr0PpHv+mirLSX/ERlb7cur3hpZ/djj4LBwNLoJjgYVw1LtwWgAeYvhDAB6QALjHrgBwpzUPdloRgDusJbCtzATbyhCAW8sQgDL+pkppulhSANLK32SJH9aUIADHi4MwURKBcQZAij+p+scAmISBwiQMFFRCb34V9ORVM/x15aWhMz8NnXn10J7fyADYkocAbMpph6acTmjI7Yb6VT2QXtWnv8xZb5+faq2LXPkTV7pwE76Zhc4iACn+PEWTEvow3UVTwu1euc2rvtsrV/2UNq9Y8dOsdFEtc84sdS49zFJp92a55CGtdWFv/Rj+EIDqNq/+JY/p9/kp+cZ5Tfki+Pg8Aw96tWtdMvjz/JLBL4M/L55u01b8+L1+4v1e3QGPsHahc7Z2r9L2vbQrXf7QOTfy8b/fETizeF7kHXJt/AyZFztGcr11xOOwEw+HP9r6dbjsLI0wwggjjLhMobz5U/BH4VcVS5LaSIK0VyZJnb3wS5P+3F37Qs/D4eDTCL8g5hHfEwICefzxADzgRAAy/OkAcIdVBCDF39YyqfJXapPwJwHQ5MHKX4kH1pooAAMMfzwAR2gWRmG4iAKwIoO/vsJqVv3Tw197XjPDX0tuG4c/BGA6BwGou88vZ1Czz4+tdMkT3/zRyp8y2cvnWhX+pOleDn+Ivmz4UwCovt2riz+9Zc5ctU+45nEh+Mu8+btw/GW73zvdlO+CLFO+GvzpAFCp/P1SrPxlbveqqn56+JtxtYvqhq/OlO/Vij956viGCHz2rSjE/4vzt1/6Vvm/kieCG0mhO0UcTqwEGgA0wggjjLhCgg57yJlp+8aSpD5USdoDIdLtzvmzTZHlb+wPPgOH/E8w/KkBeMS7EI54F8ER79Nw2P0c2wV42LUUDruWSfhDAO5zKgDcZV8Fu+wIwB0SALdZS2CrxQRbLQjAzRYRf+vNNF2wvhQBuEYC4IQEwNGSIIyXRGC0GAE4XBRl1b/BogoJfwjAngIEoII/qfqXjwBszkMAIv46oV4CYCoHAVgtpRZ/wzr7/MQ3fwr+pAEPYdBjCgL58um2bBU/beVPWe2ifeun2enH3e6V3/mp9/nJ8OOHPPLMWdq90iJnzTJnij8bAlD9xk9O9Vs/dcVvujNufOVPHvSQ17zIS51pUvg96H1PgJ+y1kVvr5+q7SsNeCjrXZSrHpmlzoGPOPx9zBY5i5c8xCEPsd2rnvLVXvKQlzHjQuYrK/nfL82bEwDXxQC+EYXRb0U/+S+3RD8kPwrtZwh0O3ESWEGg83L/588II4ww4osb/MoX+rUmFiMN4Qjp8vvIsNc0Z6N3ya8ORZ+Bo/7H4WTwcTgeEBGI+BMBeNC9BA66l8JB1zKGv32u5ZgSABF/q2CnPVfBn00E4GYLAnDKbNPgj+baUgpAH6wu9cO4KcDwR+FHAThSEoXh4jAMFkdhsAgBKOOvt7AWevJTDH/tBWmGv7YCCX8FrQx/jXkdCL88KXO7IZWLAFTw1z8t/vCdn/jeT7PaRUr1ZC8OeFx6/GV748fv88N3fiL+sr71E+CnTPnK071LbGr86Q15zAJ/qvUu/Bs/PvmLHvJVD3XVT0Sf/jUP4aIHX/FTnXNT3vtxVT8N/KY75SZO+Opd8uDxdzUA8KYYsD2BN8YBrk3Ai9+Ow/+8NXqW0ClhikD6JlDGnwFAI4wwwog/YKTq60hdXR2pSzeQ+jT9cYol+/l0A6muriXpdJrUpWpJc0016apIkNG4j4xalzyz2//cJ0fCT8ELoSfhxaACwON+CkD6BnARHPY/BYf9z2D6noODnudgv2cJ7Pcshf3uZbDP9TzsdS2Hva6VLPc4VsEuZy7scubDDmchbLMVZPC3xVYCm60m2CwBcBOtAJbZYcpih6kyJ0xa3DBZ5oV1ZgTghMmH1T8KQFMERk0xlkMlcRgoicJAcRwGisthoBgB2CtX/wpS0FVQBx2FddBWUA8tBY3QUtAMTQWt0JjfBg35HQx+6bxuKXsZAGty+6Amd2D6ti835KE535Z558fv81OGPHRv9won3NTtXvGcm9z2lfEn7/XT3+envdmbfcBDafUy/GWqftIFjwz8xAEPBX367V5xwlce8HhDfOenPuHGtXn5nX7aG77Zr3jI4OOTr/gpbV8Rf/wpN7ntK6x0kd763czyY/omLoM+4YybCnyXG3GXOumyaBmv343B+zfEPrpxXvgMoVPCuR6cEnZ6HOwNoNVqZVlmtZMyq5XYLDTLiNVaRspsZca/DVd6XDNDGmGEEZcfgBR/PABlFKZT9aSpLk3aaitIb2WEjMddZI1nRcPe0DPnjgUXwIuhx+BkkObjcDLwJMNfBoD+pwX8HfZR+GHu8yyFfZ5lEv5kAOZI+MuFHSoAUvxtsZUK+KPJ8Gexw6SFByBW/igAGf5KQwx+w6YEy0FTHPpMUeijECyugIEiWvnD6h+Pv/bCBgF/TQXt0FCAAJThxzK3P4O/6tyhac+4ifhbOw3+lHd+WfGns8xZb9Dj/PGnt8xZvt8rAlDvnd+0+FO98VMqfso1D3Gdy8Xhj1/rwt/u1V7zUFf7+BTxNxv4nRf+uKqf9owbfK5Tmlb+zbWxc09QBC7yrWcItHh9xGwtMQB4tcc1BgCNMOKKjVQ9gq8+TVOqBkr4o5lKpUhTdZKMVHpJr2Xxlzb6ntu7P/IcHIstghfCj2UASCuALwYRgNgCXgRHAwoA6VqYQ34Jf14E4B6vAsDd7pWwWwLgDhcCcLurELbYC2CLHQG42V4Km6xm2GRFAG6wIgAnJQCus7hhncULayUAUvyNm0KZ6h/F31BpEvpN5Qx/fSXl0Eerf8WIv+7CNOKvoIGlDMCmQqn6V9jO8FdX0MUAWJvfC7V5/SwRfxIAc0d09vpp8ScPd4j4U9/u5da66F7y0O7z4+/3Zt3rx731m6nyl1vGp3K7V3e1i/qE22wveThOw1PO0zPf7xXe93HTveo3ftwyZwV9CD9lwAOHPPRPuKlWu2Tg9ythp9/53PCVW74y/uYI7d5P4YYoD0D4gmQGu5/NjXwcf64XvvyjwD6S76tjlUBWAbQolUB1GnGFxzUGAI0w4ooNpeKHCJQBSDHYmE6Rxuo46avykdWBFX+zM/TsB0fji+Bw8BE4HnsCTkSf0ABQef+nD0CGP+8S2OPVByDDnysXtrtEAG62iwCk+KOZwZ9VBOCEWXr7x+Fv2JSUAFgh4K+vGPHXXVgv4K+1qEnAX2NBJ9QVIAAF/OUPMvxV5iH+knljqvu9WfDHAXB2+NuayWzLnPXwp93rx034XgT+1Dv99E65nc8lD8SfAkB85/dz3anex9xvMfBNiz9hpx8/2StW/fTu985moTN/0UPZ63fx+PtiAhC/vyEGG+eFz/4ZrQRSBJqs3qz4MwB4FcQ1BgCNMOKKjUzFT8qmhjr23i+VqiHNtUkyUOEgA65nH90Veeq3R2IL4Fj8UTgeexROxB6FkxFsAbMMPs7eAioTwAjAQwx/CMADAQl/PgWAu90UfwjAXW4E4Ha3AsCtrmLY4ixmANxgM8EGmxk22BCA620IQBl/a6xumChzw4TZywA4Zg7DWGkURs1xGCqlrd9yGDJVMgD2lMhZDT3FFH9p6CpCALYXNrGkAGwpaoHGQgRgfSEFYBekC3ogXdAHtQUDDH9V+YMMf8n8IUjmjUB5/ljWhc567V4Bf5kpX71271ZwFm7HlPHHv+/LDHjsZplp9WYZ8pDbvQL+hJUuhxX0yZk54ybhj1vpkm2ps9j6FSd8n7W9ylIBoM4ZN6HyJw540L1+8m4/vQEPfq+fesBDRp/Y9lXDD1M94CHgTzrjNqtLHny7V4W+Lxb89AFIc27k45/fHnr/2/RNYJ6rhpSVlRGbzcaSVgNtZUoacYXHNQYAjTDiig3l7Z8CwIaaKtKeTpCBKicZDy2t3Fu++NwLyYXwYuIROB7/IZyI/QhORkUAvhBCAMrrX9QAPBBAADL86QBwlwcByPCnA8CNDhGAFH/rbQ4Bf2usXg5/QQbAUXMUhsviMGBOsNbvQKkCwG6TAsCuIgQgrfzx+Gsqasvgj2a6EAFYW4gApPijyeOPpjDhmyu/9VO3e3Xe/OnhLzPooQBQvddPvOahwl/Wdq/em78Lx9/SC8afuNxZgz/VQmf1WpfMTj9uyEOY7vWe0ax1YUEQgqgAACAASURBVPjjAKiu/KnxJ9/w1cAv9Kuslzw0E778oAfFnwFA7lKIiEL6LnBe+MzjC71ryFJ7PVnubCQ5jmpNRdCIKzyuMQBohBFXbLC3fpkKYIrUpdKkvbac7OyIfWUysvjIweQzcKJyIRyJPgQvJh6GEzERgPQdIMvQ43AsrADwcJC2ihGABwIIwP0cAHf7lsJu3zLY5aH4QwDu8CgA3OrOh61uBOAmCYDr7SZYbzfDegmAkxIAZfyttnlhrIwmAnC0TB+AfaUUf+UMgN2mauguQQB2FCMAW4saBAA2FHdg9a8IAVhbiACsLkQAVhYgAMvzEYDxAgRgJF9e7MzjD5c58+1ese2ruuErrHZRWr6aG770oodJvOohVv5k/KkWOXOpnvJVWr18atu9mrUuukudFfSJE77KsIe83DnT9qVVP9cbsICl0vbF273cDV/VcId2lx/mD3w0te1e/cofN+Qh4Y9/68efcLslTDN7uzfb+Tbu/VvWxclfvEqgcspuTvSjz+aFzwSuMx350m2+V8gD7p1klaOCTf+yNAB45cc1BgCNMOLKC2kEH9/7pUhjuoq0pcpJT22MdIUKv7MpvuQXh5NPwguxH8JL5T+Ek4mHpeofApC2gE9EEYDHWCoARPwhABF/z8D+4HQApPjjAOjKzwBwi9sEm5wm2OAUAThpRwDy+Ftt9evgTwRgv1kFwJJa6DRR/KWhrbie4a+F4a8JmopboKEYAUjxV1fUDbWFXVBd1APVhX1QVTTA8FdZMAzlEgAp/uL5Eyr86Z1y03vvJ1X9hCEP/fUu6r1+avQpN3wvBf6yv/XLhj/tihf5rd/M93v1hj1E/InTverzbQr2Zoc/ddVPgF8W/CEAtdO9ctVPbPdq9/mpwWMAUA1AXBPz7fDvKAZ3fCd87v+5LXiGPOGeICsdFaTI7ial9jJjlciVHtcYADTCiMsWTfUNLBsa6zAbGkh9YwNJN+FXCsD2xhTpTcXJeI2bjAaW5O9MPPPJ0arH4XjiQTiZeAheij/EAEgzg7/Yo/BC9FF4IbIAjkQegyORx+FI+Ek4HFoIB0OL4GDoaZb7/U/D3gDNZ2FPYDHsZvhDAO70LcvAj+Y2bw5s5ap/W9zFDIAbXSbY4CiFSYcJJh1mmLQjANfaXQyAMv7GbX4YswZgtAwBKONvUAagOckA2FNaxfDXaaqGTlMtdJjS0FaShtaSemgtaYSmYgl/JSIAUwyACv5EAI6IAMxc9VCGPfQHPbKtdpErfZvBVrJZiz6u5au71kV1vzeDPxOebtNe8lDjj5vuVZ1vm3mvH9/qnc05N2m9i+MtbqmzesBDWeSst9JFs87Fp02+2jf7ih834csNebBBD2mps1LxE694KGtdrrKzbVdUSiiMwHtzI5/cOi/4PnnYv5vkB+qJw+shTo+NuNw0HcTlchGP08O+0u/pLkEjjDDCiC9s6AFQRmBDY4p0NFSSgVSQrK21kcnwTyb2xZ/87ETFY3Cq6kE4kbgXXko8oAAw/kgGf8djCxgAj0YXZPB3JPxjCX8KABF/T8MeFQB3+kUAUvxt8+Zp8LfJbWYAXO8sVeHPwQC42oYApPgbtwVhzBLi8Bdl+BssK8/gr9dczQDI46/DVJ/BX3NJMwMgj7/64i6Gv1RRr4S/PqgoHoCKoiFIFg5DsmBUwF+sYI2AP+07P1XFT7PQWV3pmz3+1G/8Lgp/Olc8zg9/M59z0+LvnfPG34wA5AY8zg9/v8mCv48zJ91mwt/lB9TVnvgZSoj+dE4CbOYtcM1C/3qS604TmyeQwR8mAtDpxjTCCCOMIF90ANLhDjbgIQGQYrC9voKMpVxkbfmKv9mWWHTmUPkCYPhLPgwvVT4AJ8t/ACcTD7AqIAUgGwJh+MPq35HoIwyAh6OPw+HIk3A4ggA8EKb5NEuGvyACcFdwMez0U/whAHf4l8E270oJfzmw1ZsHWzz5sEUC4CYJgFNuBOBahxnWOiyw1oEAXONAAI5LABy1B2HEGoJhCYCDFgTggAUB2FuGAOwyIwA7SqXqXykCsNkkAdDUzABYX9IG9SUKAGuKRQAmi4cgUTgMicJRfPfHcgIiBWuUc26Zix4zVfzU59tk6G2VUtvuzez1K9krAFCe6hUyg7+j7G4vf7s32xm3bPv8BPxlW+2ieeuXfaGzeM5ttnv9ZrvPT3+Zs2ahs85eP36tC3/KDfMTuCWknu4Vz7gZALxECJTfQ0YA5rAp4U/W3B764P9eEDxECr0NDH0y+NRphBFGGPGFDR6AchWwuaGGdNWVk+GUm4wEFi3fW7Hw349XP8qqfhR9JxL3wYvJHzAEvlhOEwdAZADSVTBHYwhAuhqGByDiTwEgw1/wadgVFAG4IyACcKtPBOAmDwJwgwcBuM4lAnCNAwE4bkcAjtpFADL8WaIwYEEA9pYhALvLKABrOPwhAJtNCECKvyZTK9RzAEyXdEFNMQJQwZ8MwFFIFI4L+IsUrLtE+NOr+Kne+6mueainejNv/jKVv9njT1zrkr3qx7d59U65iVU/FfymWfEinHFTLXXOttPvD4G/zGoXCX8Ufjz+EH76610ufwXt84O/68V7wq/dGTr73Wf9m0iOt4vk+DoYBi2eKHG6PZk0wggjjPjCBp3sbWlpIvX19RIAU6S9LkYmakvJ2uATk0eqH//sePUD8FLlD+BUxQ/gRMV9cKLifnix4kGWx5MPYZY/DMfLH0H8JR6FI3EpYwvgYPRxOBh9Eg5GEYD7IotgX/hplgx/IQTgztBi2BGg+EMAbgssg62+lYg/Xw5s9uXBJm8+bPIgADd4TFj9Y1kG6zxWWOO0wBoJgBMOF0w4PDBqRwCOUADawzBsjSD+rAjAPisCsNuCAOyUACjjr8VcDy2ljdBslqp/pa3QYGqHutJ2SHMArC7hATgEieIRiBeNQpwBcAIihQjAUOG67PiTp3u5t37iQmf12Tadip886KHb9tUOeIj7/bToU59y4yt/Mw14KODTvvFTv/UTljrLqYFfttu9eu/9plvmPP0lD3mhs4I/8YQbX/Gj7/wwJfiFPmWZafXKK10k+E073GHkeX0G8vtJ9TtK+uO5kU8+mhf+cMXd4XfIPaF3yGP+w6TQ00QcLjfbF0hbwUYYYYQRX9ig6GtqSJHmdAXpbEiQ3oYQGa4p/ftNiac+OFr9CJyo+j6cqrobTlV+XweAP9QAkOKPB+ChuAhAhj8OgAx/oadhZ0gE4DYVADf7RQBu8CIAEX8mWOdBAK51WRkAJ5wIwHEnAnDEIQKQx1+fpSKDvy5LLXSaUxL+0gL+min8OPzVlXYy/KVKehj+qov7FfyVKACMFo0z/IUKJfwVrWP4U9/xVVf9sp1y02/1imfcsr35U1/yuDT4UwAo4g9v9/I5K/zpnHLL9tZP/eZPxF/2yp+AP9UlDy3+ppnw5RY58/DTxV/005mne408788A8cdPT0sYjABcS+8JR2Hi2ij8+bzwh+Qp/0ZS5G0mVm+MuDxGBdAII4z4Agd979daX0WG6oNkdbWJjIUXlu1LL/rkVP1j8HLN9+GlqrulRAC+XH4/vJS8H04kFQAeY/kwHEsiAA+XU/jJuQD2xx6H/bEnYb8EwL3RRbA38jRLxB8CcHtoMWwLLsEMLIUtwWWw2b8S8efPgU3+PNjgzYcNXgTglFfGHwJwDa0Aeuww4UQAjjslADp9DIBDjiAMOcIwZI/CoC0GfVap+mdFAHZZEIDtZQjAFjMCsNmMAGw0IwAz+CvthJRJAWBlCQfA4hGIlYxAtHgUIsXjECqagGDRGoY/f9E6hj9P0STDn7toSrXPT1ztIg95yG/95H1+pSZxrYt6qbNp2jNu6kEPCX9mLfrkFN78WZR272I7l+obvqoLHuJ0b7bVLiL6FPy9M6sbvjL8sg166C1z5tu9WvzxbV9lqbO8zJkf7pgbxpUumdUuFH2xTzU77OQ1Jgb4LuwzwM8Qk36mehVA/N9lEPjOTbFP77gz8s/kkcBBkuepIzaX21gTY4QRRnwx40uEkObaBBmq95Mtjeavboot3He87gl4oWo+nK65G16qvB1eqr5zFgB8OANAij8egAcTIgAZ/jgAZvAX5gDI8CcCcJMKgFMSADP48yoAXO2yw7gLATjqQgAOOUUA9tsRgL0SAGX8dUgA1MNfo1mu/LUz/KVLexj+akx9DH+VJYMC/mIlYwx/NIMSACn+/EXrZ8Bf9ule5X2fFn/qU24y/rRtXuWShzzdi1U/Dn4c/ij6xGGPS4O/2bzzmw3+9Kp+0+Iv0+6V9/pNd8pNnPDNXPOQ1ruI+FN2+ilDHtoFxgYALy0AEYFK1U8B4Dk1Aj+9IQb+xf3w5R8Hpki+t4GQL311xv9G0jTCCCOMuOIiEY1JmWAZj5eTeDxOYok4iSeipKWlhbQ2t7CvLNvbSHNbK2loaiYdzSmyuslL+r0L5u+qePTXJ+p/BC+l7oWXU3fC6do7GQJP1dwDp6rnw6nq++BU1f1s8IPmicqH4ETlw5n2L8WfXAHEKuAClnILWA3A3dGnYXf0WdgVfg52hZfAjsgS2BFeCttDz8P24HLYGqK5EjYFVir4C+TBlC8fpnwIwEkfAlDG32ovTTtMuBGAoy4E4LALATjoDMKgIwqDjjgDYK8NAdhtq2IApPjrsKSh3ZqGtrI6aJYA2FgmVf/KJPyZEYC1ZsRflWkAq3+mQagoGZYAOAax4gmIlkxApHg1hIrXZqp/FIC+ok2Ztq92vYve+TZupYtmkfP0b/34Kt/sp3u5ip/lVKbil326V7vPT9jpJ1T8xHavctFDWuqsM+Qx3ZSvBn2q822Z1S6ZAQ+pzSujT2eps1ztU691EYY8Qlmqfhr8GZW+P9RncL6V1Bti7Jbwznnhs3/9SHA/yfOmiMPlJE6XnbidduJ0OqV0E7fDTTx2N/E4nPhrLvrrbunXnCzJF30R8tX++zfCiM8fAMsRgPE4G/BQANhEmhvTpKu9nrQ3xMlIo4eMRZ/s3J967NyJuvvhVM1d8HLqDjhdS/NOeLlWC8ATVQ+wPF71EByvou/+Hr40AAwvhR3hZQx/CMCVsDUoV/5yGP42+AsQf75CmPQhANd4EYCzwp8znAFgnz0h4a+CAbDDigCk+Gu31EOLpYEBsLEMAdhQhgBU8IcArCpFADL8mQah3EQBqOCPZqiEAnCSwQ/xtwF8RVu0S52LEH78Oz/1Lj9+qjc7/vbPjD/zC1K7N9teP2m3nx7+dCd8tfjT2+uniz/dix7ngz/xiofuXj81/lStXmWp86+ENi/DX+ATttZFXu1yi/TWDwF4TgCggb//WOxeRCv9F/PCZx99yj9FVnlbSa6nlRS6U8TmDGYASDMbADENABoANMKIyxixWEJIGYByJZCiD7OFtLY0kK7WStLf5CbjqVV/u6nmibePNDwCx6rvgZdSd7PKn5AcAE/W3AcnqxGAdCpYBiDf/j3CtYAZ/soXCC3gfTEE4G4JgDtjz8KOyHNK9S+yTKr8IQC3hGT8IQDXBwpg0l+I6SuGdX4E4GofAnDcZ4cxjx1GJQAOSwAclADY7wxDvzMK/U4EYLcNAdgpAbDdigBstdZDq7URmiwNDIANEgDrJADK+KspQwBWllIA9kO5BMC4aTwDwLBpDYRM6yBQMgn+kimGP0/xJvAUbQFX8TYd/CH6lCEP7ds+hj3NJY/sb/2Eih/3xm+6AY+se/1s2nav/pSvfMNXu95FHPSQ9/rpnHObdspXNd1LL3n4P5zFahcZfr9hk71y8m/89Hb63Rr8lMFPwd+5WeDPqP5dydVPeov5zvCZkfmhN/5sfugNssC/nxS66xjuaFWQVQadWOlTKoMKDmmSL3oF7Wr//RthxOcXgOVYAWypI13NVaS/KUqG682kL77QvSv16O9ebHoITtXPh9PpefDTurvgp3X3ZOAnpxqADH/VD8AL1Q/BC9UPw5EKKTkAHko+yvDHA3BfHAGI+FsEO2MiALdHRABukQCI+MuB9UERgOv8CMDVPgTguA8BOOq2MQAOu10w5HTDoMvLANjvCkKfI5QBYI8DAdhpRwC22xCArTYEYLONArBJwF9dWaeAvxpzH1TSLB2A8lIEYNw0ygCYwV8pApDiz1+yETzFCECKP5oXhD8Ze+a954U/XfgJp9xOTr/XT3rrJ1f8sk/4ivd7Z8Kf+M7vnUy1L/uEr/aah4g/bsqXw596rct0+FOvdhGrfrNp+xoAvNzAm1VLGIdH3r4+CnfdGTpLnvVuZAgscwcFBGrTACALA4BGGHH5Qg0+OctjNGkFsIV0NlWQ8UYb6fA8/N+31Dx6+kD9g3Cy4T44nb6L4Q+T/pi2gPHtH82Xa++V8IcAPFGDAHxBBcDDlQ/D4YpHWFL8Hah4FA4kF7DcX74A9sURgHviP4Y98adgZwwBuCP2LGyPPgfbJQBujSyDLeHlmPT9XzgHNoXyYEMolwFwXSAf1jH8IQDXSAAclwA45rPDiNcOw24E4KALAdjvQgD2usLQ64pCrwTATjsCsMNeBR32Gmi1IQCbbQjARisCsM6CAExZEIAy/qrKEIBJ8wDir5RW/0YhVjouVv9K1zMAehkAKf6k6l/xDoY/BOBOCYC7WWrbvvJU70HpdJvS7hXwpxn00L7xE6d61QudFfBle+v3tOO0/oCH+nwbd8VDueSRba8fhR/i74cs9c64nZ1mmTNFn7jeRZ7u5du+/D4/frULtnzF6V5MZcULv95FQZ92B52RV9lngH9+n90c/qT27uDZr9BKYIGHvg20Z1IDQPpzLvvF/wf8agfU1f77N8KIqzlom1eLvzgpj4dJZcxP+pqTZKLRRUaijy7fVfPgvx9vvA9+2nA3/KxuHrxSexu8kr4dXkkpAGTDH9L7PwpAxN98OCEB8AUVABn+OAAy/EkA3F/+aAaAeyQA7pYAuCMuAnBrVATgpjACcGMYATipAuCaAAJwnKavDMb8IgCHPAjAfjcCsNctArDbiQDscCAA2xwIwGYJgE0SAOsszRn8pcq6EX+09VtGATjA8Jc0D0G8FAFI8Rczrc5U/wKl68BXuh68pinwmDaCq2QTOEu2gLNkG4c/vvrH4U+3+idf7xABqH7zJ+LvqM5kL4+/FzNVP3W1b3b4E+GXwZ8Ev1mfcePwp73kMRv8/WIG/Gn3+Qk7/aTE6V6c8J0ef9r1I0ZehZ8Bd0Xkhgi8fGf4zPVP+yfZ20CaFIMWl/w20ACgEAYAjTDi8gUd9sBU3v1R/CUTXpKOlZD+yFP/dWP5D48ep+3eprvhdMM8+Fnd7XA6dTPLV9K3MgTyAKRVQPom8GTqXjhROx+z5j44XqsA8GjNQ3BUAuBBlo+wpPjbx3IB7Cl/BPaWL4A9CQTg7oQEwMRTDIDb4s/C1thzsDWKANwcXQabIssxwythYwQBuD6MAFwTzIc1AYo/BOBEAAE45kcAjvjtMOyzw5AHAdjvRgD2uhGAPe4w9Lij0ONCAHY4EIBtDgmAjhQDYJMdAVhvQwCmLFL1z4IArJIAWMEAOATl5hEJf1j9i5RKADStA595HXjN68FTOgWu0o3gLNkEdtMWsJu2aQY+1Jc85Clf+a2f2Oal6ONWvAhtX53KH231WpV2r/LW70VYakMAygudlVbvKZ0Tbgr+xH1+2dEnJ8Of8z0Gvwz+XFKrl8efFwHIX/HIfslDgd/0e/3U7V7xhJu81kWu+qnXu2jf+l0BcDHyoj+DzJ8jt0JmbuTjT+4Mn7HfE37jj+4JvUUeC9C3gSlW8ZPbwnJrmHzRAXW1//6NMOLzAEBW+YtHSU3MTdKxUtIYyyFd0YUr9tU9+vHp5h/A6YZb4HT9XHil7nvws/pbMkm/P113O5yqu4ulPAByMn03vJi+l8OfDgBrHoKDVQ8JAET8PQp7k4/CnsRjGQDuTiAAKf52Jp6BbQkRgJtjIgA3RhCAUxEE4NoQD8BimAgiADP4C4gAHPAiAHslAPaoANjpTECbsxzaHBXQ6qyCVkcNNDtT0GRPQ4OjHhrsjVBnb4KUFQFYa0UAZvBnQQCWSwCk+IuYJfyZ10qt33XgLUMAUvy5SjeD3YQAlJc682/+NPv85EGP0r3aSl/Z/sw1DznlvX6aql9W/Cnv/QT8TXO/V9jnl7niod/qnVXVL/PO70Lwp13qzO/0k/f58afc+AlfLf6k+72ZSp9S8ROrfsZwx+cFn/yf5bXCr7GfP3FtDK6fFz5LaEWQVgLp20CbmwKQDoqoF0lfwNbAqx1QV/vv3wgjruSgO/totrY2s8QfK9nZ0026u7tJV0cbGemuI5OtTrK26un/trHqh0eONT8Mp1vuhdea74DXmm+D1xpvhVcbboNXGqVsuANO190qAXAeA+BLcvUvjRXA46n5GfzRPFIt54MsD1X/kAHwQNUjLDMArFwAeyuegL3lmBoAxp9luTn2HGyOIQA3xZbBxshy2BBeBhvCK2B9eBXD37pILqwL58PaSCFMBGlK1b+gmQFQxt9QgKYTBn003dDv9UC/1we93gD0ekPQ7Y1AlzsKXW4FgK3OCmh2VUGzswYanXUMf/WORpYUgHW2Fn0Alg1ARRnF3xDEyxQAhs2rIWhei61fqfrnLtvAAOhgANwCNtM2bqmz+N5Ps9LFvBeT4U97yo1f6qyGn4g+brULd8lDf7WLWPFT8CcNd0j4W+h6la11EVe6KODTH/LQtnszQx4Z/Cnt3ge8v2CprHdRr3URK378Lj9+kfO8LO1e/pSb3kJno837xc5rY/C7OdGP4vPCZ/6Y7g3MdacZ/CgC7R4XsXs8xOXxsXR7g8TrCRKfx0+8Xi/xei/BlLARRhjxxY1sAGxrodlMerrbyWB3ExnrrCSTrXayOvpQ/oH0Dz7+aet8+HnLPPh58y3wWtNceK3pe/Bqwy0Z/P208Q6WFH8iAO/OtH9Ppr4v4e/8AEjxt7vyCZZ7khSAC7n27zMcABdL+FsCm1QAXB9BAPL4WxsuFvA3HrAg/gLWDP6G/G6GvwGflwGwVwJgNwNgjOGvy10O7a6kiD9XigGwXgJg2tEMKXsLpOxtUGtFAFZbewX8JS0jDH9RywhEzKMQNo9DsGw1BMrWCvhzmzcx/DlKtzL80ZTPuTH8FSuDHgr+xLd+F9funQF/mUGPV2bGn7DPT8IfB8BLiT9+r9/01zyUil9ml18I9/llw9/NmUEPLf5kABqVvssPsMud3LWRl+aFz9y0yLeerPK0k5XednZJxOKJEofXx9Lt9asA6L3c/3wYYYQRnw8AYja3IQQpALuaG0lfezVZ3eUnvdEf/eWG5N2nTrXfB68038rA93ojhd9ceLXxJnil8WZ4pREB+FMOgKcY/hQAsspfWgvAY6n7WcoAPMTwhwA8UIUA3Ff9COytFAG4t2Ih7CmniW//KP62lyMAtyYQgJviCMAN8WUwFV3OkgJwXQQBuDaCAFwdKYbxUDGMBxGAo0EE4JAEwEFa/QtQ/CEAe30IwG4fArDLG4NOTxw6VQBsdCEAG1wIwLQTAVjjaIEaexvU2Dug2toJVdZe1vpNWgYgaRmCBAfAcNkoBMsUANLWr7tsZgDKgx6lJcqUr4w/9Vs/9Q3fbFO+uujT7PU7zeCnwZ9NvcSZH/Tgp3sp/hCA8hJnebWL3OoV3vrpnHGT0Xe+U77CGz/VCTf1gId8wo1f7yK/9ZMHPdQDHuIpt8uPECMv52egrPOZG/n403nBD+L3hN76Kn0buCB4iBR6G4iLVQE9xO3zEi/Fn5T0eyOMMMKICw51y5fhr7We9LZUkqHmAFnf4SQj5QuiR9p++LuXW26H11pvgrc65sJbrTfDzxtvZPjjAYj4uw1ebrqD5cUC8GANApDiTw3AXVUUgQjAXUkEIMUfza0JBCDDX3wJbIiLAFwXRQCujSIAV0dFAI6GEICIPysMBkUA9vkRgN0+BGCXTwRgmzsJza4KaJQA2CABMO1EAKacIgCrbAjApBUBmLAiAFn1zzIGQQsCMGBZDT7LWnBzAHSVIQDtZgSgpXSHgD9lxYtS+dNW+9QTvpcTf1LVLyv+3rnE+NOuduEHPJTbvfxkL/fOLzQ9/oy3fgYyZwNAmtdFPqNfT18fhVvvCv8zeda/gSwLN5OFFWnybEUFMQfDiD8vphFGGGHEBUdbWxtmC636NbO9ft0tlWS8qZgMRh78px21D779QsM98Gr7HfB6+83weuscKeeyfK3lZilvgZ+1yPjTAvCl+nnwEgdAOgDyYhoBeCylAPBQjZTnAcBdSQTg9nIE4LYkAnCzBMANCQTgVGIZTMaWS7kS1sVyGABXRxGAY5EiGAuXwGgIATgSQgAOBhGA/UEn9Acp/hCA3X4EYJcfAdjhi0G7Nw7tHhGADW4EYJ0bAZhyIQCrnS1Q7WiDagcCsMKGAExYEYBxKwdAVv3TAtBVtgEclk1gN28Ga9lWsJRuA7N5B5SadipTvnqVP80+P+1qlwu65JHB3ysMflr8qS94cFO+/JAHwx8CUEGfOOQhTPm69fb6zXLQQ7jkwcNPmezVm+5VljnLgx5Su5fCL/JJBn43RD8V1roYFTfjM8gOwczC789ujv625+74h39xQ+o0+ZPRXeSvBgcZAuX2r9ECNsIIIy4qKP462ppIT3stGeioIL3NITLabCKTNT8cOd55/7lX2++EN9tugbfaboI3229k+Pt5G825LGUA/qwVAYj4mz0AEX/nB8DdVQsY/ngA7qxAAFL80dxcjgBk+EssgamECMB1cQTgagmAEyoAjkgARPxZoT8kArA3gADs8iMAO/wiAFs8SWh0V0CDGwFY505B2pWGlAsBWONSAFjp7IAKeyeU23shYeuDuG0A4rYhiNoo/kYgZB0T8OexTgr4c5RtYfizmrcz/NE0lSIA1W/+9Pf5aSt+lxV//O1eAX/vZMEfwk/vjNts8JeBH9fqUWV8OwAAIABJREFUVS90Vp9wE/En7fPj1rsI+OMAaODPwF+2t4DaKy/sbeA//3Xq14u/+y5c85/HjpGHqsdIsb+BOHxRA4BGGGHExUV7eyfpbkuRoVYXWdOSQ0YSDyzc3Xj///dy973wSufN8FrHzfAmxZ+UPP5o/qyV4g8B+EqrAsBTzQjAl+op/hQAvlh3N6YKgEfT97OUAXiwhuIPAbivGgG4p+YR2F0lAnBXFcUfAnBbEgG4RQLgxnIE4JQEwMnEMlgXp/hDAK6JIwAnYvkwFimAkUghjEZKYCSMABwKIwD7QwjAvpAT+kIUfwjALgmAHRIA2/0xaPXGodUrArDOgwBMSQCscSMAK50tUOlsgwpnB5Q7OiHh6IW4rQ+i9gGI2oYgbKf4QwAGLOPg4wDosqwHhwUBaLMgAC1lCMBSCYDKfr/pKn98xW+6ix7ZBzzU7V6W1lcZ/DT4s6uWOXMrXoR9fjq3e/XWu2Tw5/6QwU/BnzLcMf2Qh/LOT5zw1X/jp+BPQd9My5zVp9uujeFKEHEtiJFf5CEQvhLIDYbADTGAbyY/hb9O/Xrn36b/zzduS35InggfYQg0poCNMMKIC4trCPkyIazqN9JkI6vTz/zpVPXdL57s+j78rOtWeLPnJni941p4veN6eL3jRg6Ac+HVdi0AX9EBIE0egCfqRQC+UIcAPJoWAXiwVgHg/loEIMWfDMBdVQtgR/UTsKNqYQaA2yUAUvzR3JhEACL+lsBkuQjANRIAJ2IIwNEoD8BiGIqYYChshv5QGQNgHwfA7iBNL3QEPNARQAC2BxQAtvjKodmThAZPBdR5EIApdy0DYI0bAVjlRgBWuBCACScFYDdEHT0MgGE7AjBoozkGPus4eKyrwWNdC27rJDisCECKP5tlG1gsCECKv5KyXVBcuptb76I32ausdZnpmsdM+JPXu2SqfgL8Zos/1U4/Hfypb/dmq/ppp3t/mf2dn1D1u1T44yt+6oqOAcDLja4rGYA8/ujflRvjmN+NfAbfCZ/77bVR8N8Z+ZevLA5tIgX+DkK+/DVCvvw/CLnmq8a/hEYY8UWLluY2lq3NLZmk7/iaWjF7e/tJb28v6e/BHBwYJH39XaS/v55MDEfJjv4iMlk5v+FQy7xPX+m+Hd6gAx4dN8AbXdexfLP9etb6ZZmpAM6BV9vnwM9abxIqgHwLWAbgycZ5Ut4FJxrvgRfq7pbyXjhW932Gv8N198Hh9P0sD6UegAPpB+BA6iGWFIB7ahCAu1k+JgBwR9Ui2F6JANxCk1b/KhCAG5KLYUPyJzBZjgBcW74M1pavgDUJBODqhAjA0WgRDEdLYCiCAByIiADsCTuhRwJgZ9AL7UEPtAd90B5AALYGYtDii0OTvxwavUmokwCY9tRA2pOCWk8dA2CVDEB3KwNguQsBGHMiAMMOBGDIMQJ++wh47WPgsY2D27Ya3La14LRNIv6smxQA0uqfZSeYy3aDybIXisv2QKFln7DQObcMlzmvsmRZ5sytdeHbvRR+Cv74ih/X5rXz8Pu50O4V8ae+5KHT9lXhL9sbP37AQ17rop7sFXf66Vf8tG/9JPQFPxaSwi+Dv5B4xUN7yUN83G/k1foZ6Ldm1cMb/5E5N/Lx6TtDZ++ZH3qD0KSXRPK89Lawk9idNmJ3Olg6HC4SDodZBsNREgyHSSREM0jC4SAJRoKX+58vI4ww4mKC4a8JAdjepAJgS1sGgDQHetvJWH8jGe9NkHWDHtKd/OEDuxrv/j+vdN8Kb/XNhXd6rod3269j+Vbnd+GtThmACgJlAP6s7cbzAuCJJhGAx+oRgAx/HAAZ/jIAfBj21f6IAVDG3+6axxn+tlcvZCkDcGslApDib3PFcxL+FsN6CYBrkyIAVyemB+AAB0Aefz0hL3SG3NAR8qrwF2EAbPIjAOt9CMC0FwFY60UAVnkQgJUeBGC5GwEYkwAYlgAYcgxBwIH489onBPw5bVNgsyrVP6tlh4C/Est+hr98ywEJfdnxx/b5cTv95Nu9+vg7lRV/fLVPjb9M1S8r/PR2+r2juuSRbcAD8XefH/Enn277g+JP2Os3Hf4MAF5+wH3+AMjl5PVR+Bq9JPKUf4oh0OwKcAB0GAA0wojPc/CVP5YUg01YFaQp44/mcG+abO63kXV1j/7VVM0dJ1/qm//Z2wO3Muy90/MdeK/7Wni74zopRQDSNjDNDP7aboRX2m7SbQGfakYAnmy5A040UfwpADxWT/GnBeChuvtZygDcn34I9qcRgLtrEYA7ax+DnTWPw86aJzMA3F69CLZWIQA306TVv0oE4PoKCYAVP2EAXJNcBmuSK1hSAI6X58BYPBfG4gjAYQmAA1EEYH/UDH1hBYBdYTd0hRUAtgZ90BoMQGsQAdgcRAA2BhCAaS8CsNaLAKz2IgArPQjApAcBGHcjAKMuBGAoA0CKvzHwOBCATrtU/bMjAK3WLWC1KgA0WTgAlh3IAJChT04GP+6ah4C+F4XzbdkGPfSXOisrXcRBj+xtXgV+OitdhEXO07R6NfhTnXHLOuShf8lDr92brfKnt9dP782fkVfzZ3BFA5C2iT+aE/3YPy989quPBA6SXE+thD8bS1YBDEUzEFSnEUYY8TkEIM32piYy3NNIRnuryXhvkkz12sjaynv7Xuy++/ev9t0C7/bfCO/3fhfe7f4mvN31DXiz85uZyp+cagBm8NeuD0DE320Mf5cCgHtSCMCdtVoAbq1RALilCgG4sRIByPBXsZjhj+aaChGA4+UiAIdjCMChGAKwP6oAsCdsh66IAsCOsBvawiIAm4MIwMYAArDOjwCs9SEAq30IwEovAjDpRQDGGQC7IOpCAIacfQyAtPrnd1L8IQCddgSgwz4JDttGsFo3IQAtO6DMukvAX5HlIMNfnuXQ9PizvjAr/M18yu388TfbZc4Xgz/tWhcefgr+hHd+wnqXmfCnveN7pQHByM83ALl8fV747JP0kshKTzPJcTeSAlc18YUrsuLPAKARRlzlIVf6MtnSwla7NDc3k67mKrK2y022dOeSkfJ7V+5uvue3r/XNg7f65sC7vTfAu73Xwdu934G3+77FklYB3+66Ft7uuoHlm11zpCEQBOBrHTfi278OKdvnwittN2O23gIvt94q4U8LwONNd8HxJgWARxruhSP1CMBD9QoA9zP8zR6AW2sWwRYJgBslAE5JAJysRACurUQATlQsg4mKFSwpAMcoAMvzYCSeDyPxQhiKIQD7YwjA3pgZeiIKADsjbuiMKABsDvmgORSAZgmATRIA6yUA1voqIOWvhlp/LQNgpTfNAJj0IgDLvRSAHRBzd0HM3QMRdx+EXf0QcA4JAHQ5EYAOCYA2OwKwzLoNyqwKAEsEAB7KABDRJ1b9+JbvUtuLAvpk8IkVPwo/xJ+IPn6Zs9LuzYo/pwp9rjOZFIc81G/9tNO9ygUPLfpm3ufHVfwybV5xn5/+oIe24pcdf1cUEIz8nAKQ7pakSZeP3xk6OzU/9MbX7wnj20BLtI0Eg0ESjUpVwFCURIJKGmGEEVdx8PhrbW4irY3VpKMxRrobfWyfX39k/o076+58+6cDd8GbQ3Ph3b5vw5nef4IzPd9m1T8KwDf7JARSDHYjAt/sFgFI8Uczgz8VAE+3IQARf7MHIMPfeQJwR+2TEv4UAG6qRgBOVSEAGf4qFzP80ZxQAXAsKQJwOIEAHIgjAHtjCgC7Inbo5ADYFnZDa0QEYFMIAVgfRACmAgjA2gACsEoCYFICYLkEwJgHARjxIACDbgSg3zkCXucEwx9NhwMBaHMgAMtsCgDN1j0C/gqtBxn+cqxHBPiJk70c/jgAXkr8yTd81Sfcsi9y1r/iwb/54/GXvd37qxnxl7nkkQV/cqVP/f354e/KAIKRn18AIv7Ufxfhd9fGoHle+Mx/f758GymN95OSWB+xxto1FUEjjDDiSohrpDyv+BJpbepgSQHY3pIifa0BMtKcR0aqHv6/tqTnHX+55/bP3uq/Gd4euB7eG/w2vNv/DXi/7xvwfu+34V0KQKn6x/BHMdjzLXiz5zvwZjci8LXO6zFp9a9TAeBPO+fATzvmwun2m1m+3Po9ONlySwaAL7bcwfJ48zxMCYBHGij+tAA8UH8/SxmAe+segr0SAHemEIA7Uo/BjloFgJtrF8LmmkWwqRoBOFWFAFxfhQBcKwFwdRUCcLxyGYzT6p8EwJFkDowk82CkvIABcDBRzADYKwGwJ2aGrqgCwPaoG9qjCgCbwj5oCgegKYQAbAghANNBBGC1HwFYHUAAJn0IwHIfAjDuQwBGPAjAsKcPwp4BCLiHBQA6JQDaHAhAiwMBaLZvAbNNAWCRVR+A/JCHMN2bQR+fp2CxXWn3TvfWT7PMWar48cMeulO90hs/5a0f5oNezAd8ZzDZ+baz0y5z5it+Mv4QgL+Z+ZJHWLzmgWfclGXO6hT3+10dQDDyYj+DK/3PV/p9xD7F5NYNzYl+/K93xc7avh996ysPVJwhz1SeJJZYC5v+ZWkA0AgjrmYA0jeATaSjOUV6WqJkqNlGVjf9hEym5g++2HvvuTeGvgfvD10LZ/r/keV7A/8I7/f9AwMgrQTSvFAAMgRyAHyp7QIA2HAvHKqfrwHg3joE4J66h2FXGgG4I6UAcFtKC8CNNQjA9dUIQMTfYoY/muOVEgAlBI5U8AAsgsFyBGBfggLQBD1xBYCdUTu0RxUAtkbc0BwVAdgQRgCmQwjAWgmA1RIAK/x1Ev4QgHEfAjDi7RDwF/QMMQB6XSPgdiH+aNqcCECLEwFotisANNn2QJEVAUjxl287DDlWGYDqKd/s+GPws2d/6ydX/H58vvhzvyVO9qrgl6n6eSX4+c7AD3x0uldZ7yKueFH2+WV2+QXE6l/2yt/s8Ke88dOv+l09QDDyiwDAa2OfslTvm/x2+Hc03/lu5LPF5m1wzbLkdlIS6yHF8T5SFmsz9gcaYcTljHRDmst6Ul9Ps5GkaTbUk+HBAZZDQ0NkaHCEDAyNkKGRMTJAvx/uIcMjTWRqPEH2jBSStRW3BV/ovuuTVwe+B++OzGEVv7ND34Sz/V+HMwNfz0CQAvCd3m/CO70Ue9+Ukv74W/B697el/C68TncBdt4gtIDpG8DMO8B2BYCn2m+BU+23aQD4Qss8zOa74IXme+Bo4z1whEKwaT7Lww3fhwMSAPc13M/wt6eeJgJwT90jDIG7Uo/CzvQCAYAMgSoATtU8B1PVS2CdlHIFUA+AQxU5MJQsgKFkEVb/ymmaoDdRCr2JMuhOlEFX3CIAsC3qhZaYlwGwMeqHhnAAGsIhrP6FE1j9C0kADFYyAFYG0gyAGfz5EYBRXztEfZ0Q9vZA0N0LflcfA6DPowDQ5VoDDvc6sDsnweaaAotjCsqcCECTfRuYbLug2I4ALLRRAB6GfOtRhr8c6zGdSV9lyEOo+NlPwbMss7d7f+xE/C100sy+zJm/6KFe7cIvdc60fLl9fnLFLwM/vbd+3GoXHoAzLXVW44+iT2/IQws+bLVd/n/sjTQ+g5mgmv3vyJzox4fmhc/cRt8Hym8ECzwp4nTZiduJ6XQ6pXSztNudxGp3sq/sxw47S7sd0wgjjLhEAET86QNweHAIETg6RAaHOsj4YB2ZHIqRbat9pLvi/hV7Wu/49esjt8F7YzfA+8PfhA8G/4HB78Ohr8PZ/r/jAPhNDoDfvCgA0ing8wUg4k8B4MFGBCDFH00Zf7vqH2apBuC21AUAsPJ5BX+Vy2C0cgUMqQAo46+v3MwASPHXnbBCV8yWAWBbzM3wR7NRAGAE6sMIQIq/VKhCwV+wlgEwGUAAZvDnb2UAjPgRgAEPAtDvRQC63SPgck+Aw40AtLkQgGVOBKDJgQAstu+CYts+CX9Y/UMAHoNV1uOq/X6XDn/sfZ+cmZ1+/Cm36fEn7/ZTw49/5zcT/vT3+s0ef3pDHtqpXgNdxmfwufo78Nn1URi8Pgp/f2f4DHnaP0lyPc0sC90pYnEFBQQaADTCiD9g1NdT+PH4E3NoiAdgH+keaiJjowmyuT+PjCVve2RH822/fG18Prw5fAOcGfk2w9+ZoX+Afx6gAPw7BsAzAwoA3xv4JnsHqAbgG73fYikD8LUeBODrXTdkbQGfbkcAnpIA+FL7bfBiq5S0/duKADzK8i442oL4O9R8Dxxqmi/lfXCg8QdY/WtEAO7iALir/hHYWfcj2JlWALgl9SS2f6UW8MYaBOB6+g6w5jmYrJHwV70EW8ASAEerpJQAOFiZA4MVBTBYgQDsSyIAu8sRgF3lVuhK2KEj7hAA2BSn6YeGmB/qIwGolwCYjiAAayQAVgYRgBVBBGDcjwCM+hGAET8CMOhDAHrdCECvCoB2DwLQ4kYAlkoALHYgAIvsCMB8GwIw1yYCUMSf3loXzKcdp3VXu8itXgF/3OUOechDd8pX/eZPNeUrVPtUb/yynXDTDnqcz16/7G/9xHavUfW7ArBi5B/uM/jd3MjHzXeGz/z1PeGfk7sjPyePBPeSAncdwx+9KsIui0iVPjmxAmgldjumEUYY8QcDYJqhb3Sog6wZSpPJoQRZN+YlnVUPz93edPv7r4/dBm+NXwfvj/4TnBn+W/iX0a/DB8OYZ4e+Dv8y/A/s64UC8LVuBYAUfzwAT7ffCC+3zZHwdzO81CECkOKP5lEVABn+OAAebEYAUvzR3NWAANzR8DBLHoDb6xbAlrQCwE2phbCpFgE4VYsAnKxFAK7lADhR9byCv6plMFy1AgYrRQD2JRGAPUkEYFe5CMC2mBNa4m4Jf15oVAEwHUEA1oQRgJUhBGBFCAGYCCIAoxIAI/5WCAXaIeTvBL+vB3zeXnB7+sDnGwK3dxhcnhFweCbA7lkDVu86sLgnweyeglLXFJhcG6HYuQmKnNugyLELChz7IN+2H3LtByGXvv+zH4VV1mOwwnY80/oVqn4q+F0K/E27149763c++BPhx+3102318nv99PGH8PsY4cfhT/3WzwCgAa8vED4/uTZ2rvm78U//8vboe+Rp3xTJ9bSTVd5WkuetIWaHX4M/A4BGGHHJAYjZ3NzIvtbVpUhDY4r0D3eQiZFKsq0/n2xouO9/b2u449VTA3fCexM3wnujX4f3x/4e3h//Wzg79jX4cPRr8MHI3zEAvj9CIfiPGQC+N/h1NgRC8ccA2P9PLBF/CgBf66H4mxmA8hQwD8CTbbfCybbbLwqAuxsfFAC4o/4R2F73I9hepwBwc/pJhr8NLBfBVC0CcF0NAnBdrYS/miUwUa0AcDiTCMD+qhzoryyAfgmAPRIAu5IIwI6kFTrK7dCeEAHYmEAA1sX9kI4GIB1BANZKAKwOIwArQgjA8hACMBpAAEYCCgD9/g7w+XvA5+8Dj38APP4hcPqGweEZAbtnAqzeNVDmXQdmzySUeqbA5J6CYvdGKHJtggLXNihw7oJ85z7Ite+HHMdByLEfhpWOo7DCdgyW2RGA8poXedBDbPNqhzx0lzlnXeuiWu+Sda+fer2Ldq2LgL9s7/w4+CH+RPDx7V69M24UfuoBD3GNhrJX7Qr4x9lI4zP4w/4dkP6eXxs795s50Y/id4bO/un84FuEVgUfC+4mea6qDPow7UIaYYQRFxEy/Ng7wMZakmqoIo2NCdLe6CddjXayfjREuqoWfG1b860/fXXke5+9NzYH/nn8O/DhxN/B2bH/CWfG/wbOjH0Nzo79DUPgByP/myGQAvD9kX9kGJwOgIi/qwOA2+oWwOY6BOAGFQAnJQCukwBI8ScDcKz6eQ5/y2CoegX0V4kA7KlAAP7/7N0HdFTl2jf87VPW+73P257nsfd2FCshIcIBqQEB6b0JAgKhCkhNL5OZTCbJ9F7Te++BFESOgIiAiooCIgc5HEQsx6NYjv6/dd/XntkzkwRQ8VCcvdZ/hQRcK+7sZH657vu67rxsAqAnKxCAjow42DISCH+qJJhVgQDUpxMAtQoCYLYIwEwRgBkiABWpBMC0VCdkMjeSUwmAiakEwIRUAmBMUjk2J1VjYzIBcH0SAXCtCMDVIgBXxRMAl8cSAKNjCYCLYwiA3jl/F8bfRU7yuAj+/Gf69Qg/P/x1N9PvkvDH9vp1iz+Cn3/FjxJ4kod/tS8iXUwPAAzBI3QPrvtnQOEX/jG+5/Wv4elYG57+4/8cKj8pzE6sFZbG23hWxuuE9XEpoSaQ0BW6LtflXe6lpg+joLdlCHZHjFBimi6UZf3x1q2WAa+/UzHsp49rI3Cm5jH8tfIhnC67n4Pvr1X34q9V7M/3+eIFoHcpmOVkiQTAExx/XQF4pPBxHi8AD4sA/CAvAu/nEgDfy+1L8BNzKIcA+JanP950/xH7XQNwwD0I+10EwH0uAuBrTpZheE0E4G5HFHbbGf4IgH+yEQB3eAFoHc/x12GdgA7LJLSbJ6LdLAGwxUQAbDKyzEaDgQBYxxCon49aA+GvSr8AlX4ALNV6QwAs1CxHoWY1CtUEwLxsAqBHBKArazNcWTFwBgHQnEkANGakQK9MhT6dAKhLJwCqFQTATDkBUCUnACpkBMA0WSAAE1MJgAmpBMDYlEAAbkgmAK5LIgC+mEgAXCUCcEU8ATBaBOBSEYAviABcEBMIwF92kkfPA529e/sodHSb/0keUpPH6R7n+XU3zJnv87tAg4f3GLdA9AUf4/YDb/Dwb/K4pDN7A14YQwndg+sbgGF0rjD/uPgL0Jl+iq+3DE49+R9RKUeEEcnHhMlJOzkC2d6/uC0xPKErdIWuX3GZLVpe8XNaUgW3dYvgsCwTXJqx97daIt95vyLypz9X9cFf6x7HpzUP4NOqe/F5zYM4V/sgzlYTAtmyrxd/pyof6AGADwUB8LFLAuDhfAmADH/+ADwkApDhj+VAEAAZ/lh8+BMBGIi/kXjVQQAk/I3By7aeAbjNMhkt5iloMU1Dk2l6AADrDQTAWgMBkOHPC8AK3Qt++OsegHlqAmCOmgDoyg4EoE0VB2tmHMyZCRyApsxAAOqUBEC1CMBMuRoqhRYquR5KhRHpaSakycxIk1khk9khkzmRInMjUUYATBABGCcCcHNyJTYmV2NDCgFwnQjAFxMJgKsSCIAr4l/Gsvg/ITruVSyN242lca9hcdzreCF2HxbG7uf4ez6G4e9N3unbdbnXf66fCL+geX6Xgj//c3u7w1/ATL8ejnELHOwsNnj44a+7M3y7O83DV/Xz4e9H3xFuwfgLU1JCALwKQBLKFUMgB6D4Mf8KeJ+0Hz+JkP24pW8q/mNIyilhdmI9rwZGx9uEVXG60BzB0PX7vtw5uYLHw+IRclncuTzsfZaqqiqeypoK/rampkaoKq8QqivLhcrqQqG60SM01iuFVypXCeVZ/e7fan3q3UOlA3/6pPEpfFLzMD6p+QM+qX0An9bcx8Pg580nlX4VwIoHeDj+/AB4suxhSukjOFH8MP5c8ig+Knkcx4uewIeFj/tytOhJniMFlA8Kw/BBQQQO50fgPQ7AcLyb11eEn1j9y/kjx9/BHJYBOJDzNN7wDMI+EYCvuwfjdddQjr89ziiKuPzLKn8swQBkFcAdQQDcZpnI8dfKMxWtluloNs9Ao3kWGs1z0GCajQbjXNQan+MArDGK+DMsQKV+ESr1i1GmW8LD8FeqWUZLwOqVFwWgIzMWjsx4HltWPAegyR+AKhl0SgKgRkkAzErPRpZCg8x0HZQKPRTpRsjlJsjSzJClWZGSZkdKmhNJaW4kpuYGADA2pYRX/7akVGFzSg0H4EspBMC1yU1Ym9SCF5O3YnXiVqxM7MDKxB1YkbgL0Qm7sCRhDxbHEwAXxu3Dgrj9mBdL8JMqf13x5z/Lj9AnzfLrOtalpyPcpL193gSc4MEGOad0Hebc7Rm+fnv9/NHX5QxfNtbFD33+I138z+7tlwaeSHlof18IWf9cYHkHMveUq/nrwSDIvmfE759P+svPbxmU9pf/GJZ2VBicdkQYl0IVwbgtm4XY2C088WK87yfE0kiZ2PgE3lXM3ufzBuNjhNj4mH/eAQs39JCr/brWP//r/SL85RL+/BIMwKrqCqGqukyoqS0Taqs8Qnu9TeioUwltjYlCoXH0Yy+7Io+eqOuH03VPcvh9Vn0fvqi5G5/V3INPeS4DAIse4fj7JQB8N88fgIQ/FsJffxwIAiDH30UAyPDH8oo9EID+FcA2KwGw9SIArDMRAGuMBEB//EkAjOb4IwAu/1kAZPizZMfDlNU9ADUiALPSCYCZ6RpkpBs4/hQKM9LkFj/82ZEklwDYtfrnBWAdx99LKY2Ev+QmvJhMAFyZtBUrkjqwInEHliXuwpJECYCL4t/g+JsfdxBz497E3Ni3fV2+vw3+Aps7Lo6/7it/wTP9GPwGpX0ZAD/fGb4i/rydvcFn9naHvxAArzwqfm+5XgDo/d4JT8fpMCU2PJH+0/95Wv6xMCepXlieYOdZHa8XNscl+/AXGxsbAuCvvUIAvLovX+UvIC4eT44rEIA1RUJlrU1obVQKe2qjhQZ1+PCdzsiPj9QMxNmGMHxR/xC+aLgfn1bfibNVt+Pz2rtF/P0CAIoI9ALwRNkjOF4sAfDD4idwtOhxvxAAPyj05vIB8HXXcOxxEQL9l4BfdYzETuco7HCMxss2tvxLS8CdtvGEP9vFAVhvmYM6MwGwRgRglQjAcsMilBsW8zAAluijUaxdxsMAWKghAOZrCIA5agKgK5sA6MzeDEfWFtiyYgMAaMhKgiGL4Y8AqFUx/CmhziAAZioDAShPJwCmyAmASXICYKLcjQRZLuJkhYiTFSNGVootqWXYmFKOzalV2JhKAFwnAvDFFALgqhQJgMuSdmBpEgFwceIeLEp4DQsTAgE4J+5tzIl7B3NiCYD+x7jxBg/fIGcCoHeenzcBo118+PMu90oNHv7DnLvD38iUQPgFzvWTmjy8VT8v/vzRF3yMm2+s0/TtAAAgAElEQVSen99ol4CRLiL8Qvi78qD4PeZaBiBLT13xYUp8GZl+Xj9E9vHtI1I/FFimJO8SViXoffiLjY33nSgiDZcOzG9+3XCNV9Cu9c//er+64s8/DqGmpkCor3EKLdVGYVu1UmhriBEK9EOe35MT9tlf6yPwSe3j+KK+Fz6ruQtfN92Nc1U342z1zfi09i6cq7sb5+ruveYB+Jp7aCAAHVEi/kbiFRGAnfYxYgiAHH89ALDFMh2NlkAA1poJgFUmAmC5MRCAJfpAANL+v5XIFwGYIwLQIwLQqSYA2rIJgAx/5ux4GLIZAFNgyJRBy6JSQJPJ8KdElkqFTGUmMpTZyFBqoFQaIE83QqY0I1VhQZLcyvGXqLAjUe5EvMKNuDQCYEwaAXCzCMCNqVVYL6vDulQCIMdfShNWpRAAVyRvxbLkDixNJgAuFgG4UATg/Pj9mBd/EHMCAHiJ+LvQQOfgJd/LgD//Dt/g5d5fhr+uAAx19155TPwec60D8GLpo/jp2z5y5PeR46Ehsr8Ks5MbhehEuxCd4BRWxRuFTfHyHvEXAuAlXCEAXt0Xq/LxiEu+brdbcLnYn3OFvDyz0NKoF9pqNwuv1SwQ6nW9E/YW9P36eH0kPqnrhW9aHsYXdfdQ6u/i+bzudnxed6cPf78WgGwUzEelD+Gj0l74qORRfFjyGKX4iQAEHil+kscLwMOFYThcGIH38iNE/IXjUH5fvJ0bibdzCYBv5hIAD+QSAN/IfRr7PIPwupsA+JpnMMffbs9Q7HINwy4Xg583lwbAbbZJaLUSAFusLBIA6y0EwFoRgFUmAmCFiQBYZlyEMuNiHgbAYkM0inTLeBgA87UEwFwtAdCjIQA61QRAu5oAaMlmAIz1AVCfnQJ9FgFQk6lAdhbDnxIqlQoZGZlQZmRDmaGBIsMAmdKI1AwzUtItSFRYOf7i0+2IVzgRl+5GjDwXMWkEwC1ppdiSVo6NsgpsSKnESym1HIBrUgmAq0QAruwBgIuSugfgrPi3MSv+Hb/j3PzGu/AGj+7h58Vf8DDnQPR17e7t6Rg3/2ofh1+Xkzyk5o6A49t8+/wk+Pkv+Ybm+l15CITy+wKgryIoNZD8GKn4rmGI/FTkcPkxgWWSTDxrOAB9CUJCrJTf/LrhGq+gXeuf//V+eeFHS8EOIcetE4pzs4TyvHSh0rNBqMuZ9W/1lv6lb5VEfP+Xht442/QQPqu/B39vvAt/r78df6u/DV803IYv6u/wAfDcVQjAQ/mBAGT4Y+H4y+2PN3IDAcjx5xnM8cfyqnsYxTmMA5Dh7+cAkPDXFYB1IgCrLQTACjMBsCwIgMWGQADmawmAuVoCoEdDAHRpCIB2EYAWEYBmdSyM6njo/QCoyZQhO4sAqMokACpVBECFSoM0lQGpGQTAJCUBkOMv3Y64dAmAW+SF2JJWjE3yUmxKK8f6tAq8lFqJdam1WCMjABL+mrAylQC4LGUrlqYQAJckM/xJAHzeD4Cz4gMBeEH8dXOax6XhL7DD95fir8u5vUHwC2j06Haoc2iu35WGQSi/DwAG/D+mA72VlDAlfgpT/tgUpvxx5CDFKWFOSgM/VYSFYTDwrOHQEvBFrxAAr+7LnePhncAs+TkGobJgs1CfP0+o0Q+6vc3S+/X3KsJ/OtfWF5+3PIwvW+/HFy334dO62/C3Joa9Wwl/PgDewfH3aT3L3fj0MgLweFkvHC+VAHi05AmeI8UMfxIADxeJuWwAJAS+6hnCAbjTNQw7nQyAUXjFRQDc7iQAtjvGoN0+Fu12AuC2SwRgtYUAWGEmAJabCYAlpkUoMS3mYQAsNESjQL+MhwEwV0cAzNERAF1aAqBdQwC0aQiAZvWWAABqs1OgzZYAmCUCMCOTAKhQBQIwWQRgfDoBME5JAIxRurFFkYtNikJskhdjo6IUG+XleElegXWySqyREQBXywiAK1MJgMtTJQAuSdmBF1IIgAuS9+D5RALgvIT9mJtAAJyZ8DZmxr8nHefmt+zb4zFufkOdg0/yCKj48fEup3to9CAABnf3BuIv8Oxe/2Ve/+YO/w7f4PN7gwc6dzvXL5TQPbgSOLrGAXgpWyfCJPz5/hv2NjL96/eHyE+tjZIf+59SRVDHu38pIQBe9AoB8Cq9/oVSkJspFOfIhfKcFKE6d41QYRo+qsMdduJYfTjOtjyGL5vuwVfNt+Pr5lvxt+Zb8Lem2/Bl8x34W8ud/K0XgH+r+/kADBgE3Q0AvaeBeCuADIEfljziqwBeHIBheK+gT/cAzOvXDQAHYF/OwEsC4CsuAuDLLgIgx58fALddAIBN1umot8xAnXUWaqwEwCorAbBcBGCJyRtCYKFxCU+BfikHYK6OAJijIwC6tARAh5YAaNMQAAl/W2DUxMKgiYdWneQDYHaWDFnZBMAMlkwVFCIA01Q6yDIlACZkEAA5/pR2xCgJgJtEAG5UEADXKwiAa9IqsTqtFqtl9ViV1sjxt1zG0oJlMoa/NixJ7cALqQTABckSAOcnvoG5CfsxO/EgZiZIAJwef4Sf6NH1DF8JgP6nelwcf357/YLQ57/Pz/8Yt8Cj3HrAn/zrLt29/h2+ARW/bvEXAuCVhkMo1zcApc8/cJ5m8L8XP/5JmBIZgxSn7qSKoF2ITqaqoPAvDwjCDXf8dvMEb7jGl1Cv9c//ar9KSgqlFJeIKRNKiyh1NbVCfX29UFdXJ9Q3NggNDU1CY0u9UN1WKDRs0wq7t24RDrUuEZoMfeVv5PX95kzrU/is9VFe7fuq9W581XIrxx97yyIhkCD4ZePtlIY7ec7Ve5eApWVgBsBPalnuw5maeynV9/P4TgERAfhxxYMUjj8CIGsC4UvA4jLw8eLHAiqBDIDvFz/J4wXgu0VhPO8U9hHxF463CvrizbxIwl9ePxzM60f4yyMAvp43AHtzB+I1DwPg0yL+BgcsAb/C4sWfmwDYKQKwzTkGbY6xaHMQAFvtLJPQYiMANtlYfh4A2TIwAfCFAADmG5Yh17CCA9CtJwA6RADatARAi5YAaNR4AZjoA6BazfBHAFRlEwDTswiAaZmaLgBMVFmRmGFHfIaDJzbDhRiVhwNwowjA9YpSvCQvw1p5BdbKq7BGXodVafVYIW/k+FuWJuJP1oElqW14IXU7B+CiVALg8yl78HzyXsxL3o85SQcwO/lNzEg6hBmJ72JG4mFMTzyKKQnHMCXheNdj3ILgJ4158R/q7Nfg0d0Rbt2hr8tJHhL6eFIDj3HzH+3STxE43qW7s3tD2LvySAgldA8u5RmITD//7RD5qZwo+bGwKPkxgZ05PCr1uDA9ebewOsHEK4KsezgmJkbYsHk9nxXI4p0bSLMDpeVjNlMwdIWu3xSAzY2NQlNDjdDSUim0NucL2xpsQmeLRmhvSxGcpqjbW+1hO98t7/2Pz7eF4+u2h/FNy534tuVmfNNK+bqZEgDA5ltEAN7WPQB9CAwG4D0+AP615n6eXwbARy4IwHeLn8Q7xWEUBsCCMLxVEAjAg2I4/vL6c/xJAByA3TleAPrvAfRW/qIIf+6R2O4mAHL8+QGQ8CcBkPBHAGy0TUed9edUABcFADDfsBS5IgDd+pUcgA4dAdCu2+DDH4uEv3gfANXqFGRrCIAqNQOgiuMvPSsLaZnZHICyzJ4BGJvhQIyKALgxnQC4Pp0AuFZBAFyjqMJqRR1WyAmAy9IIgEvT2jgAX+DVv+1YJALw+RQC4LyUvXguZT9mJx/AzJQ3MT35EKYnMfx9gKlJRzEp8RgmJR7HpASGv0AABh7pdgH8+VX8/M/vDe7o5fkV+PPv8A3e4xeq9IXQEYLnNf0M7ItQIDpSjv8YLjstzE1u8u0VZMOlN8Qn0zKx30xB/8THUEJX6PpVlxd9RSVe/JUIpT4IlggNDQ1Cc3O50NJsEF5ujRUOtiwU6g0Pv7jD88hnHzVF4vOO3vhq6wO82vd9210cf9+23ohveH4dAGkUzKUBkB0Dx+IF4MmKh8T0wgkRgN59gN69gEf99gJy/JUQ/i4OwMhLBuCunKE8fPnX48UfAXD7JQCw2TEJTSIAG+2T0egHwBobAbDKSgAstxAASy2EvyIzyyIeBsAC0xLCn5EA6DESAF0iAO06AqBFSwA0iQA0iADUBQFQpSYAKtUEQIUIQJkIwJRMA5JVEgATVIEA3CwCcH06AXBdOgFwjSIQgMtFAC4VAbg4jQC4SEYAXCACcF4PAJyafBhTkz7A5GQC4MTE45iYeEJM10aPwOPcgka7BDR4iMu9yZ9LAAxo7Oh6fJs/+iiBZ/j6j3aJvECTx1XwAhZK6B6EnoFf+QxEKPB5f/l5+1D5qcdHph0TouRHhCnyV4WVKQYhJjFWiIljiedhcwW98AsBMHRdlovBzxsv/sqLc4WqEpNQXZoptDcahO1NcqHCNel/Nbqeqnyz4tEfzm7rha/a/4Dz7ffgm223cOz9o/M2fLf1Jj/8XV0A5PjzA+BRPwB+UPoEx99vCcCdHgIg4S9KxB8BsN0VCMCtTgJgs0MCIMefCMB6+3TU2AiA1TYCYIUIwFILAZDwJwGwwEQA5PgzLoXHSAB0GQiAdj0B0KonADL8sRi0BECdlgCo1iQhW5OCTBGASg5AJRTZLCrIsjI5AFOyJAAmqsxIyCQAEv4c2JzpwsZMD9Yrc7FOWYh1ymKsVZZiTXoZVqdXYHV6FVam12G5ggC4VE4AXCwCcJGMALhARgCcx5KyB8+l7sWc1P2YmXIAM1LexNTkQ5icfBiTkz/ApOSjmJh0DOOTjmN80gmKD35il69f1e9S8eff2ftz8Bd8hu/F8Bd4lm/oxTd0D0LPwPXzDPCq/p/C5D/MGKP97N9nJFcL0TK3sCTRKUQnuIXl8W5hTaxZiIlJ9eGPVQJDV+j65dcNglBYVi4UlJYJBUWFQmlpqVBWXC5Ul9qE1vINQmfxTKHWGDHtFc+Tpz5qjsDnL4fhq44HcL79LpzvuAPftt+G79puFnMjz/lt/y3mJnzXesvPAiBrAvms4Y6ftQR8iuNPAuBJjr9LByDD34UAeKioN94SAfgmA2DBUziYH8mzP78f9uf/Ea+LANybPwCvMQDyDMLu3CE0A9APgDvdI7HDQ/jrdI1Ah2cUtrlHY6tzjJixaHWN5/hrck5Ak2MSGu0EwHrHZNTbJQBW238eAPNMS5BnivYB0G0iADoMBECrngBo0hEAjToCoE5LANRoAwGoZFErkK4hAKapVUjLzkJKdjYHYHKWAYmZEgDjMrsBoCoPazMKsVZZjBczSrE6vQwrlRVYmV6FFSIAoxUEwMVyAuALcgLggjQC4HwZAfC51K4AnJL6DialHMbE5PcxMekIxicfw9jk4xibfIKSdFKMf6OHBL+u+Os6zNn/7N7gxg7vaJfuKn4DZd8FjHYJbvLw3+sn5eJdiaGE7kHoGbg2noGuTTE/op/i69ODFKcyhiqO3T9cfpzvFXw2+YQwJ2G3sCaOnTQiVQZDV+j65dcNglBS5hAqyo282tdYohSaSxRC2to//o8GU7/qg2VPfv9JRzi+bH8I33beiW/a/hvft9/C813nzfi24yYJfu0U9m8Y/roDoBd/VzsA3yl+Em+XhOGt4t4EwMIn8WZhGN4sJARy/BUQAN8oIAAy/PkDcHfexQHY7h6B9hwCYKtrjBgCIMefHwA5/kQA1jqmo9p+6QAstCxCnlkCoMe0FG4TAdBhJABaRQBaRAAy/LHodARAjY4AmK1JQqY2BSotATBdQwBMUxMAU9UEwORsjQ+ACZlmxIkAJPw5sDHLhQ1ZHqzLJAC+mEEAXKkkAK5QEgCj0wmAixUEwBfkBMAFaQTA+WkEwOdYUvdgjmwvZsn2Y0bqAUxLDQTg+OQjGHsBAEqneZzl8Q11Dujy7b7Zo+sw52D4+ePvu0D8+Y126a7RIwTAK/9CHUroHvyWAPQfI0NdxfxjP/ZWoi1cgRn9Zfi3USlnhHlJTfykEVYZXJFg/O26h0PX9X/96w2CUFuRLDRXRAsvl04S6jWPbHot56lzJxufxhed4fhb+/34uuMufLv9Vo69HzpvxA8dN3MAsve/7fhvnG//Lx6C4M0+/PFsvXQAMvyxIdC/FIAfVz3A4wXgicqHKBW98FE5AfAYz6M8hL9AAL5bSvjzAvDNoie7BSCLPwBZegKg/xLwDk8Ux9/PAWCDcxLqHQTAWh4JgJX2Wai0z0GFjQBYaiUAllgJf4UWlkXIFwGYY16CHHM0PJZoDkCnCECbkQBoMRAAjXoCoF5PANToCIBqXSAA01k0Csi1BMBULwDVag7AxGwDEvwAGJvVPQBfVBEAV6sIgCsyCIDLlATApekEwBcUBMCFCgLgfBGA89IIgHNkXQE4WfYOJqQexvjk9zE2hQD4bMpxPJt8QsxJMad88/wIftTc0f1cv+4qf8HHuIkDnQMqflLVb0DaDzwS/sSj2/wqfX5LQ11eOEKVwBBIQii99p8BGhMjQjDg76SPs9NGIhT4qL/8O9nQtNO9WAfxcNmHwsTUPwnCv952pRkRuq766wZB+JcbBOHfbxCE/7hBEP6XmP/8F0FwKfsObnOHvfdO1aM/fdH5JN/b923HvTjffjN+fPkWfLPt/+CHzv/ib7/vYBXAm3gY/roDIKv6sQQD0B9/lw5AQmAXALIZgByAD14yAI8FAZDw1zMAGfwuCsCCSLxR0O+iAPxT7lDsyJEA+HLOSHR4/AH4DFrdo/wAOBZNznEBAKz1A2CNYzoqHYEALLMxAM5BifU5lFjno9DCsoDjL9+yGDkWAiDDn8e8HE4zAdBmYgBcDYvxRVgMa2EyvsQByPDHouEA3AK1PpYDMFObBJUuBUodA2AK5FoZB2CqhgCYoiEAJqolAMZlmRGbRQAk/DmwIcuFl7I9WJNFAFytIgCuyCAALssgAC4VAfiCogkL01uwUNGGBYoOzJd3YJ58O+al7cRcOcPfLsxK24NZsn2YKduPabIDmCKTADg2hQD4bAoBcHTKCTEnMSrllJjTfsOcpaXewKrfOQxPPddN5e9STvMIrPp58RcIv+A9fiEAXukX6VBC9+BKANBXIWTvs18Ipa0f74QpsWVQ2l9uFf59oCD8630UNlOQ5zecKxi6Lu/l8rh53O4cnhyXm4edqcvC9uWxFJcVU9ifxY+xsC5dlqb6Jp7m5mahtbVVaG3eKtTXN/K/a2wuF9rbrMKrHYnCoa0LhVZrn7u32sLa9pVGfv9JZyS+6HwYX3Xc59vX920HW+a9icB3kXzX5oc/VgHcektAvmm99YIA/KLpdkrjnTwMgJ823C4OgxYBWHtXNwB8UASg2PzRBYCEQIY/lg8rHuEJBuDFmkDeKurDwwB4oCgcBwr78uwviMAbIgBfFwG4p2AAdueJ+MsbhFfzhnD87RQB+HJOFLZ7KAyAlB4A6HoWDa5xaHBNQK1TAmCNcyqqnBIAKxxzUGYnAJbYCIBFNgJgvpUAmGddLOKPAOiyLKfqn1kCoNW0BlbjOg5Ak2GTD4A6QwzUegJglj4eWbpkAqA+BQo9w58MaSIAUzQEwCQNATBebUB8tgmx2QTALdk9ADCrCC9mlmBVVhlWqsqxPLMSy1XVWKZi+KvHYqUEwAXpWzFf2YZ5ig7MVezAHMVOzFHswkz5LsxM24vp8n2YJt+PyWkHMFn2NibIDlEFMPUDjE892gWAo1JPYmTqKYxMPU1JOSNW+s76wBdwkod3rp83PSz7Sl29gQOdu5ziEdrXFwLWVQws74DjnnKlP7+L58eLBNds+inO/2OI/FRblPzI8yPTjv1vtleQZUoKzRWMi4sT4uPj+bzA5MQkah5JoCTGU3zH0olzBuNjt1Au15iZ0CDniwOQsMfwJwHQi0AfALtJFwA21AlNjWVCa2OB0FnvFHawmX2NRmHXtkwhbWOv/1FnC889UPjgN2e3PYrPOx/D520P4HzHbZcEvZ4BeONlBeC5xgsB8D7fAOh/NgAPFAUC8I1CAuDrhQRAhr89+U9L+MsnADL8sbyce+kAbHaPRYMIwHo/ANY4J6PK1T0AS+0EwCIbATDfSgDMsy5Cjm0xx5/Liz/rco4/h3mViD8CoNlEADQYCYA6w2ZoRABmGQiAmYZEKPVJUIgATNMRAFNYNCokaQmA8RoCYJyaALglmwDI8NcdAFdlEQCXZxIAl2USABcrCYAL05uwQNmC+UoC4FxFB+YodmBW+k7MUuzBdDnLXkyT78MU+UFMlL+JiWkEwPEyAuDY1A8Jf6nHg/B3ClGy05TUM2LOBlT6fg7+vHv9vAD0n+kXPNLlSr+IhBK6ByEAXrvPgB/Ev4lQoDxcgQlD007/25yUJmFZoltYnmAXVia5hJVJHmFdklnYkpjqQyDDYTAA2czBEAD/iZdU+esKQJaykuIAAAZisFw8nYNO6GhqrBBam63CK83JwsHGpcJ7dTOEZlOfpFc9vc+ebO6Lz7Y9xit9X7ffjr9vu40v815qpe+3BuBnTXfyeAH4SYN0JNwndRIAvXv/vAD8uIot/0pLwCeq7qeIAPyw4mFfjlU8giPlj/J8UPZIlyXgYACyfYBvF0fgYHEfnv1F4dhf1JeHAfD1QgLga4UEwN0FTxP8xPwpnwC4I48A2JkbhY4cMWwJOIdFAmCzewzHnxeA9W4CYI1rIsefF4CVrumocM5AhYMAWCoCsMhOACywEwDzbBIAXdYlcFqjOf5YbJYVsFlWcfyZzSxrYDKvg8m8HnoGQOMWaIwEwGxjDAdgpoEAmGFI5gCUGwiAqToCYJKWAJioJQDGaQiAMRoLB+BmEYAbsiUAvpiVh1UiAFdmEwCXiQBcmkkAXJQRCMDnggA4I50AOE0RCMAJ8rcxPu0QxqYdxlgZAZDhbxSPBMAoGQFwOM8ZMWcxVHYuEHw+9AWOePEf5hy8108a6SKNdvE/vu1Kv4CEEroHIQBeu88AWx4OC9ob3E/x3amhaaf1UWnH+45SnhBGKj4URso/EqbKdgkvJhmEuMRYHgJgAq8QJsRtFuLiN3cZOv2rr1AF8OcB0Lv06wVgaSkDYPDSb6FQWu4RKsotQkejVehs1PNK3ytNSqE2b86/1dmeMr7mfvCzj+sfoUHNnb3wfec9NKuv7Ua+t++H9v/EPzr+61fh77cGICHw1wDwQXxY8QfCXyXlSHkvDsD3yx/B+2UX7gLmncAlBMADJYEAfL2IAPhaEQFwd2EgAP8kApDhj6UzCICEv4sDsNZ9YQCWOQmAxQ4CYIGdAJhnIwDm2BbBbVsMp00CoN22HBbrClisq0T8rYZJBKBBBKDWRADk+DPFIDMIgHJDCmRGGVL1MiTrGf6USNSpkKjLQrxOjTiNBjEaA2I0JmzRWLBZbcVGtZ3j7yW1Ay9lu7BO7cGqbALgymwC4LIsAuDSLALgoox6LFQ1YoGyCfOVLXguYyvmZrRhTnoHZqXvwAwlAXCaggA4RbEPkxQHMUFBABzrB8Axsg9F/BEAR8pOcvwNTzsl4k8C4NBuABgIvy+77PeT5vpJe/26xV8IgFf8hTOUn1dhCi0BX6XPTODeQKk5TPxYH8VP7/TJgLxPBiI3bMMNc2WNwvJkh7A82cWzItEtrI03CFvik0IAvBJX8J4/CYKEwYKifKGkvEQoLCkQ8grzCIHlHqGmOlNoqVwnvN38vLDdHvG/mk29817NDf/qk45B+KL9Cd+ePt/MvqB9fT+0U/4ZAOQIbL2dJxiAn3H8SQA823QHpfEuHi8Az9TdgzN1EgD/UvsgjxeAf66meAF4nMcLwD8EAbBXtwBkTSDvlob9KgDuLhh8VQLQZV8Kl20Zx9+lAjDbtJnjT2WOQYYxFhnGeGSwJWCjBMBkgwxJBoY/JeL1KsTrshCrVyNGq8EWrQFbtCZs0lqwUWPFeo2d428djwtrRACuzCYALhcBuDSLAPhCZp0PgPMzmvBchgTAWcoOzFASAKcrCYBT0gMBOE5BAByTdhhj0j7A6DQC4EgZywlEyU5y/A2Vn8LQtNNizlBkZzEk7RyGcPgR/galedFHGZj2VVCjhwi/gAYPP/SJ8Lte9iCFcv3fgxAAr+70NB/U+36E+DHWTBKZfv7PI5Rn7EOT3p3wbObH/z5cdlQYmXpUmJb0irA6XhtQ/QvtAbyCAHTl2AVbgVqwFSqFsiqzUFmuFWpKFEJDWZrQWK4UGku2CFWuyXc32SLa9+fc/c3ZpodoebfzUXzbfhd+aLuJV/i+7/hPX+eut2vXi78f264MAL3jYK4KAJbTMvD7ZU+I+LsyANzqeQbNfgBs9IxFvbsrAKtck1H5MwCYY1sAt30RXHYCoMNOALQGAdBkIQAaLARArUkCIMMfi9IUC6UpHkpjIhSmZMiMKUg1ypDEYmD4IwDG6gmAW3QEwE06AuB6EYCEPwfWaFxYrfFgpZoAuFxNAFyaTQBckk0AXKiqx/OqRjynIgDOVW3FbFUbZmQQAKdnEACnpBMAJ6Xvw8T0gxineBNj09/GGPkhjJYfxmj5B3hG/iHHX1QaywkMTztJ+JOfwhD5aTFnKGmBAOT48wMgw98Auff83q6dvd3iL/2H62oTeijX/z0IAfDqToRvgkBg5Y/+DgEAJATSx/pm4Fx4+o/54fJ/zBgm+/h/P5dUz/cL+md1vP7XdxOHloAvfAUv+bLKH8Nfdu0qQVv3nFBRu1Jor1wi7K6YKDTqHxnY6Xxq196Cvt9+3NoXX3Y+jvPt9+G7jrt5zrfdjh/absGPIgAJgRIA/fFHAPzPfzoAvVXAYAB+2nwnjxeAnzQRAD9puBtn6iUA/qWW4U8C4J+r7xFDADxefS9FBOCxyj/4cqTqYXxQ0Yvn/fKHfVXAYACycPyVEgAZ/lj2FYdjX3FfHgbA14oIgHuKCICvFj6NVwsH8zAAvlJAANyeTwDsyGPw82YktuWOxDY/ADZ6xnD8eQFY6z49eFsAACAASURBVCEAVrkmcvx5AVjuno4y5wyUOQmAxQ4CYIEIwPxuAOhwLIXdsYzjj8VsWwGzdRXHn8G6GgbLGuis66CzrIfGvAka8xZkiQDMsEgAVJh+PgA36AiAL2kJgGs0gQBcriYARqsJgEuyK/FCZhUWqmoDADhXFQjA6RkEwKkZBMBJ3QBwtOIQnlEcxjMKAiDD33A5iwTAISIABylOY5D8jJizGCQ/h0FpDH8EwIHyL8Wqn1T5oyYP/+5eaZ4f/8HM0KcMhJ//6Icr/QISSugehAB47T4DXuRFyiUA8n2B4qki4UGnjUQoOf4kKMr/gX5pf/9mmOzjhhGyo8+PkB39T1YZZJmcchnmDPYEwNAlCP/CKoAes5DvUQslboVQ7k4Wyt2JQmHhKsFRO1LIqYv8t0LbY+nbc8I+frf8wR8/b3ucL+/+vaMXzrfdSsu4bTfh+2034h8dN+L7tv8Sq39dl3i9AJTwd+UAyKqA3VUA/QHorQAGAvAe/KX2Xj8E3t89AP0qgBcC4Hs9APAQg5+Yg6UEwDdKAwH4mgjAPSIAX+UAlBD4SgED4CBszx/MAdiRxwA4DO25wzgAOf5EALbkPINGjwTABs9Ywp9nHKo9EgAr3ZNR7mYAnIoy1zSUuGagxDWLA7DISQDMdxAAc+zz4bYvgMvhD8ClsNqjfQA02lf44Y8AqLVuRLZlE7ItW6Ayb+b4CwZgmjkZqSYRgAZFjwDcpNNhg97AAfiSlgDI8Lday+LCKq0HyzUMgAWI1pRgqaYMS7LL8YK6EouyqjBfVYnnM2sxP6seczMbOABnq7ZiVmYbpqsIgFM5AHdhkpIAOFG5D+OV+zFWeQBjlG/jmXQJgCMVRzFcfowDcKj8BIbKT/aIv4GKsxgoP4eB8s/FfIkBclb1C6z8XRB/XZZ7/fdShQB4pV88Q7n4PQhVAK/u50Ra6v2xCwDD/GcM+gGQD5b2/vIp/4eYn3j6KH76ro/ip2290/+xflDax0/yOYO++YJBYTi8WIXwegdgUUmZUFRSIpQUU0rFtyxFpYVCQ3O9UFNfIzQ3N/IZfXUN9UJjY7PQ2twitDRUCNu25Qg72zKFQy2rhcMNs4RazWOjWqy9du2tePibD9ufwNntT/A5fV933EN7+sRZfb+0e/dy7f3zpe2/OECDTwL5hucWfNXidw5w6634W8vtYvPHrfismUHwDmoCabgN5xpZ7qA0BALwdP09YlgV8F58XMdyP07V3IuP/QD452pqBGH467IEzMbAiPmg4lGe98ofw3vlDICP41DZkxSOvydxUAQgw98bJREcgHtL+mJv8VN+1b9AAO4sepqH4W9HIcsQ7CgYhs6CoejMH462/Ci05Y3k2Zo/ClvzxqA1dxSac0ajOedZNOaMQ2POBNR5JvJ4AVjpnugDYKlnKkrc01DsnoFi9ywUOQmA+Y45KHDOQ57zeeQ6FiCH4c8HQEKgBMBlHIH+1T+tdb0PgJmWLT789QTAZJOcAzDBSACMNRAAYwzdA3CtTgLgKq0LK3QMgDmI1kgAfEFdjoWaSixUV2OBphbPZ9fh+ewGPJfViDlZrQEAnKrazgE4RUUAnKjsHoAj0w9jpOIDRKUTABn+hii8+BMBGFD58+LvHAYoPufpr/gS/RVfob/868DRLr7lXhF+4m/iofN6r/yLYyihexB6BvCL7wH7GTc07fSZkbLj5SNlx6NHyo7f6Z01yOcNpr5KXcVshAwfJ5MgxMZTvONlaF+hd29hvF+HMX38ugCgP/6CAVjXUCs0t9QKW5vzhfYmh/BKi114uUEvvNpsFna3ZAqFlqn/r9oyUL/b3evTE9UP/3Susze+6HgM5zsfxnft99LZu5cLa79FGAB9w6Bv7BGAHH9+AGT4CwYgIVACIMuFAUjVQIbACwMwEH9dAfgYDpUxAEoI9AJwf1lPAOznW/7tDoCEPxGAhUMCAZgfha35lwLAyQRA93gOwHLPZI4/luIgABZwAD7H8ceS4/QDoGNRIADt0QEAZNU/rQhAtXUjMq2boLJ2BaDCFI80cyJk5mQkmwmACUYCYKyBEmNQIcaQhU36bGzQEwDX6y1YqyMAcvzpHFihIwBGawmASzUlWKypIPxpKrFAIwFwnroBc7IbMTu7FbMyt2JGZgemZnZgSuZ2TMncgUmZuzAxYw/GZ+zF+Ix9GJexH2OUBzBK+TZGKg8hSnkYUekfYJjyKIYqjmGI4gQGpZ/EIMUpqvz1UP0boDiH/umEv37pX7FD2kX4nfd19gYDMIS/EDpC6Ag9A9fxM3AsPB328HRMGCo/9f/NlzXwruLVsjw+d5CFDaHeFC/rBoCx1x8Ag/HnD0CWxsZGoaUhX9jRKBNeb14hvNcyS2jUPrSy09b7/YNl/b//c+tTONf+OL7Z/jD+3n43vmq7A39vv73bzt1rF4A3SwBsvRVfttzyCwDoj8B7fABkVcCTtRIATzAAVj/gAyAt/4ozACulMPwdrvw1AIz82QBsLwgEYGvBKLTmj0FLHgGwMfdZnvrccRyAtTlUAaz09AzAQvcsFLgIgLlOAmCuiwDodnrxRwD0LgFbHARAWgJeSQC0rYHati4AgOnWzRRLDBTmrgBMNMs4AONFAMYYCYCbjRIA1xsMWGcgAK7R2wl/egeW611YricALtUGAnCBCMD5mlrMU9fhOXUDZqsbMVPdihlZWzEti+GvA5OytmNS5g5MyNyF8Rl7ME61F+My9uFZ1X6MyjiAZzLeRpTyEIYpD2OY8gMMzTiKIenHMCj9BAamn8TA9FMYmH6aojgj5iwGpJ8V8UcA7JdOAIxM/5p10lH8RrtQgs/wDSV0D0LPQOgZuH6fgX6Kr78ZojjZNkp5fMsz6cf7xrXhhqg0OolkZaJJiI2P6xZ9bND0ZZszeKUvH/6KynhKisuEkpJCobTEI1SUmoSd25zCq03JQrVpQPxrBU988Zfmx/G39kf4su7fOtlQ5ps5pNh5ut+0/Se+234j/rHjFnz/8k38/SsOvKsKgHd1C0COwJr7LwhAf/yxMPz1BMC3y5/EwTLK/rKwrgAs6fuzALi9cAjaCyUAbi2IQmsBAyAhkAGwMXc06vNYnkVd3jjU5o7nAKzKIQCWey4MwDwXAZDhj8XtIgAS/hbB7iQAMvyxGO0EQJ1tJbS21VDbCYDZ9vVQ2TZBaesKwDRzPGSWRKRYkpEoAjDeRACU8EcA3GDQYL1Bh3UiANfoCYCEPwJgtN6DpToC4GJtCV7QVoj4q8R8LQHwOU0d5mgaMFME4LTsrZiazfBHAJyQRQAcpyIAPqvah9GZ+/GM6gBGqN7GsAwC4NAMAuAg5TEMVJ7AAOVJDFBKAByQfkYMAZDhr5/yHPqlf45I5ZeIVEoAjFCeR0T6dzz+p3qEBjtf+RelUEL3IPQM/POegd7p//Dtb45Q4ni4AhlD5Gd6sZNIopOdvm7ijXHJQkyctxp4HQHQCz8v/kpLyoWSYrdQXZ4lNJasFiq0kdPfKOr97aftYfh754N8L9/XnXfg687b8PV2cTxLp9/IlmstlwxAb7wAvJkD0HcUnJiuALwTZ+rv6ArA+rsDAPjn2vtxokYC4IfVD/JcDIDvVjzGw/D3djmLBMD95QTAfWV9ePaWEABfK+mLPcVSA8iuYgLgziIC4CvFBMDtRYM4/vwByPDnD8DmglFoypcAWJf/LGryx6E6dzyqc7sHYEkOAbDQQwDMcxMAc1wEQI+bAOh0efFHALQ6CYAmJwHQEATAbHsgAOW2zZBbY3jSLF0BmGCWcwDGmpSINamwxZRF1T+jGpuMWmww6jkA1xosWG2wYrXejpUGJwdgtMGFJQYPlhhysVgXCMD5WgLgPG0gAGewCqB6G6apOzE5ezsmqXdgUvZOTMjejfGZezE2a18XAI7Ieg/DVO9zAA5SHukCwAEcfwTA/soz6M/xJwEwUvk5IjK+RITyK0Qov+b4C+chAHad7xd6AQ7dg9AzEHoGfi/PwI+EP+/PP9aRrPjuhyHy044o+bFbR8iOClOSXxFWJWg5ADfHexMrxMTFC9f8xSt+3pQUCgUFNqG6NENoLVsp1FkiS//c1IfDj4Hoh84bOZq86Pu28/+Kb8VcdwC8CV+13njZAfiXursvOwAJf10B+EY5A2BvEYBheK00XAJgcSR2FffjACT8DeD4Y+H4u2QAjkR93jOoyx+NmgsAsDRnMscfS6GHAFjgIQDmugmADH8sThGAhL9FsLoIgAx/LAYHAVBrXwm1fTWyRQBmOtZDad+AdPsmPwDGifiLR4o1EcnWZCRYCICxZgLgFjMBcBOLUY0NJi1eMgUCcKWhZwC+oCvBQl2FiL9KzNNVY66uFnO0dZilbcAMTSOmaVoxTbMNUzSdmKTejgmaHZig3olx6t0Ym7UXz2Yz/O3DqKz9GJF5AFGZb2N41nsYkvk+Bqs+wMCMIxiYcQwDMk6gf8ZJ9M84hf7K02IkAPZTspxDZMY5RGQEAjDcD4CEwOD5flf6B3IooXsQegZCz8A/H4FeAPqNofmkj+Kn4UNkHwuzk+uFFYla4aWEZI4/AmDs9QXA0lKXUFmWKrRWvCBsczyx72xHJL7qeMDXtfvN1v8nVvok9H3f8X/5++c7/5vHf2DzdQPA1hv9AHgzvmy56ecDsEFC4F/q7vQB8GT9/TxeAB6veYDHC8AjVTT+haHv/SopfPn3VwEw4mcDsK0wEIDNhQTAxgI/ABaMRnXBs6jMG89TkTsB5RcBYK4IQLcIQLeHAOhwe/FHADS7CIBGEYA6hx8AHauR6VgTAMA022ak2WKQZovj+AsGYJxVxgG4xUwA3GwmAG4wSQBcazTgRaMFK40EwBVGJ5YZnVhiJAAuNuZisaEwAIDzdBIAZ2nrMFPXgGnaRkzRtmKKdhsmazsxQbMd4zQ7ME6zE2M1u/Fs9l6Mzmb424eRWfsRlXUAw7LexrDs9zA4630MyvwAA1RHMCDjGPpnnEA/1Un0yziFfhmnxZyhKM8iMoPlHCJUBMBw1ZcIz/gK4RkEwLAMFgIgn/EXMOcv9OIbugehZyD0DPw+noEw34iZ7n/+9ZHj+77ybycMSvtYmJzyirAiUc/h5811BMASoarEILSULRMaHL3rP93xFG/q+K5TnNfXeSPFd0JHYBj6ugDwam8A+dUAvJmPg/k5AGT481YAT9befckA9Mcfy3sXAOCbbOm3/AIALA3nANxVcmkA7CgagrYiCYCtBVGEv8KRaCokANblMwA+IwEwf2wAAEtzJqJEBGBRLgGwIEcEoGcmR6DbPQce9zw/AC6A1cWyCGbXYpjci2F0LYHeFQ2dcxmP2rEc2Y6VyHQSADOc65Du2AC5oysAU6zxSLYmItGWjDgrAXCLCMDNFhU2Whj+svCSWY2XTFqsM+vxosmA1WYTVhrNWGG0c/xFmwiAi40EwEXGQizUl+B5fRnm6coxV1+JubpqzNbXYqYuEICTgwA4VksAHK3ei2fU+zAyex9GZO/HsCAADhQB2F8lATBSJQEwMuOMmLOIULGcQziPPwC/Qpjqax8ACYEiAEMIvOIvRqGE7kHoGfgnAzBdQmDgcjDNG+xN+aaP4qen2XDp6ES7iL8tPNf81dDQJNTX1wuNTfXCKy1WodbQbzg7peOr7Q/ivF8Xr3f590K5pip/PQDQOxCa4e/rrTfyfYBfb5Xw99VW1ghyMz5vuYXHWwnkEQEYOAj6zsDqX4P//r97eQcw7wKuFRHobQLhEPwDjlY/hKPVvXCk+lGeYAC+U/U4z6GKJ/BW5RMcf14AvuEHwL1lffBaaRj2lkVgT3kEdpf2xa6yp/BqST+8WkIAfKWYAPiyCMCO4kEcf+3FBMCtRcOxtWgEmguj0FQQhcaCqAsAcAxHYEX+eJQzBOZOQmnuFMJf3lQU5BAAC3Nm0zJwzhxeBWQA5EvA7vk+AJrdi3gYAPXuJdC5o6FxLYXmEgCYao9Bqi0OqbYEpNiTOP7ibakcgLFWOQfgZosEwJfMWVhnUWOdWYs1FgmAK0xmLDNJAFxsdGGRyYNFJgLg84YizDcQAOfoKjBLV4WZ+ppLAuAY7W48o9mDkZq9GKHei+FqLwDfxODMQxiUeZgDcGDm0QsCMELFQgBk+AvL/Bxhqi8RpvrKL14A+lcBe6oGhiqCwYNog3O1v2CHPv8r/TXoOkz9Wvr+utafn/DL9v//44ko+bH/s8QHwOukCaS5oVnY2lQvtDTkCntbU4SDpRHffrntAZzvuI139F5xoF0TABQR2HR7l5NA/tp4OQD4EI7U9LogABn+LgWADH8su8oCAUj4G8Dxx8LxVzyI449lqwjAFhGAjd0CkPYAdgfA0rxJKM6bwvHHkpc7DXk9AnBeEAAXwOTxB+ASHwCznRIAM5xroHR1D8AUewKS7EmItxMAY9nyr1WOzRYC4EaLChusDH8EwDUWAuBqswErzSYsMxMAefXP7PbDXz4Wmgox30gAnKsvxyx9BWbqJQBO1zdgiq4Rk3UEwInaTozTbsdYrQTAkVoC4HCNBMAh2W9iUNYhDMwiAP4x80P0Vx1HP9UJRGYSACNVp3kIfwTA8MyzCMu8AAD9EBgIwNCS8PX2Ahj6/K/01yAEwCv9PRD+K79+3hNJhshP62YnNworEozCxrjU6wOArPq3talQeKVBJlTq+i45szUM33Xczpd+r4kl3GsQgByBIgD/zPEnAdC7BNwtAGt64X1xOfjyA7D/RQHYUhwIwPrCKDQUjUJ9YVcAVhSMQYUIwNK8ngGYnzsbeTkEQI+HAOj2SAAk/HUFoNq9FGrXhQGYaicAptgZAOOQ5EjgAIyzpyLWloItNhkH4EZrIADXiAB8MQiA0eZAAC405WKhSQLgc0YC4GxDJQfgdH0NpuvrME3fgMn6RkzUt2Kibhsm6DoxVrcdY3Q7MEa3E6N1BMAoLQFwmGY/hmQfwGD1mxiYfQh/zD6MP2Z9gP5ZH6Jf5nFEZp5AROZJRGSeQkTmaYTznBFzFmFZBMDeWV4AftkVgAGVQGlJOEz5g1+u/grFb50QoEL3PwTA3zcAw8Wl4kjFd98OkZ+5dXLyLmFVvPH66AJuaWkROhtdwhtNy4TXCx//4sv2+/ly7z+2s71wVwHQftcAfABHax7sBoAP472qXj0C8GCFF3+XCsB+IgD74+WSAV0AuK1kCFqKJQA2FRH+ggHoXf71B2BZAQGwOP/CAMzJmQN3zlzCX848ODzzYePwkwBo8Czm+AsGYKZzJTKcq6F0EQDljg2QOQmAKY4YniRHHBKcCYhzJCLOnowtdgLgRisBcINVhZdsWVhjJQC+aCUArrQYsNxiQrQIwCVmJ14wu7HQLAHweVMhnjMRAGcbyjHLWInpBgLgNEMdphgaMFEE4AT9NozTd2KMCMDRup14RrcbUbo9GK7bi2HavRii3Y/B6gN4Wv0m/igCsH82ATAy8zgisk4gPOskwrNOifg7jbCsM2IIgL2zLgGAQcvBIQCGAHjlX3CvL4CHKoDXBwDDxXOKwxWIHS77UIhOcF4fAGyqbxJebbIL79VPEf7S9DCf8ecd6XJN7um7zE0gDH8sDH7e/BYA/Kjufh4v/I7VMvzdzwF4pIYA+H5NLxyufpiHAfCdKgLgoWoC4JtVT3D8eQH4egVLGPaWEwB3lxEAd1cQAP9U9hR2lvbjIfwRALeXMAAORHs3AGT4Y2koGimGAFhT4Lf/r/DCAMwXAZiTOwN5ebORkysBkOHPnjsPNs98WHMIf4acBTB4FkGfQwDUeAiAWe5lyHQuR4ZLAqDCtQ4yJwEwxUEATAoCYIyDALjJTgDcYAsE4ItWAuAqqwTAZVYLllodAQB83pyL580SAOeayjDXWMEBOMNYjWmGQABOCALgaL0EwOH6PRiq34uh+n0YrD+IQVqWtzgA+4sAfCo7EIBh2acQlsXwRwDsnX0GvTn+JAD2zvzSL19JUX3N020V0FcJDFUAr3WAhD7/K/01CC0BX+nvgfDL+vXDTi8A2dnA1wUAdzaYhFbDo2M+3/YHvvfvmh3qfB0C8AgH4IN4v/ahAAC+U00AZPhjYfi7EAD3lBMAGf5Y/lTel2dnaSQHIOGvP7aXDuBpLyEAMvxdLgAW5U/h+GPJyQsEoCd3Dpy5czn+WKw582HOFfGXswD6HAIgwx9LlgjADBcBUOlaDYV7DeRuAmCqiwFwI5KcmzkAE5xxiHcmIMZJANwkAnCDjQD4kk2FtbYsvMhiVWOVjQC43GrAMqsJS0UAvmBxYpHFjectEgDnmQsxVwTgbFMFZrAKoKkaU4w1mGKswyRjAyYYGjHO0Ipxhm141tCJ0frteMawA8/od2KEfjeGigAc7AfAp7Vvob/6EJ5SH8ZT6g8Qqf4QEVnHEZ59AmHZJ9FbfQq9s0+LCQTgE9nneHpEYLcA7FoJvBY2qv+WCQEqdP9DALx2fwEKvyzf/wHDor8bLjv6H8vjndfHHkC2BPxyk0loNPdxfLY9DN+234Uf227CD203/S73AF4JAH5UJwGQwc+Hv+r7AgFY+xAO1/zhtwFg6VMXBWBzSSAA64tZRqG2qCsAywrHoKyAAFic3zMAc/Jnw5MXCEBb3oUBmJ1DAMz0XBiASU4CYIKTATAG8a44DsAtzmRsciRhoyOFA/ClIACushEAV9gCAbgkCIDzLLmYZ5EAOFsE4ExTFQfgVFMtJhnrMNHUgHHGRjxrbMWzxm0YY+zEM4btGGHYgRGGnYgyEAAHGwiAg/QH8bTuIAbo3sJTmkOI1BxGpOYDRGg+RHj2cYRln0Bv9Uk8oT6FJ9SnxZyhZDP8BQEwAIFdq4CU82K+8yUEwBAAr44X4GsZIKEK4JX/GuBXP3/+X8fhsqO92BFx8THXSRNIe6NBaLQ81f7Zy0/h27b78OO2WzgAOQKvNNCuBwD6nwLCAFh/nzgEuisAA6p/FwNgdS8cqn60CwD3V3rxJwKwrI8IwHACYHlkEAAjuwdgyUBsKxmEraVD0FzCADgUTUXD0FAcJeIvEIDVhaM5/vwBWFpIACzqDoAs+TM5AF15c2DPmw1b3lwOQHMuA+B8GHLm+wCozfUCMBqZHgmASvdKKNwSAFNdG5AsAjDBRQCMd3kBGI8tzkRsdBIAX7LLOADX2lVY41BhlV2FFfYsrLCrsdyuxTKbDkttJiyxWbDEZsMiqx0LrE7Ms7owT0Tgc5ZCzDYXYaa5DDPNFZhhrsJUczWmmKsx0VyD8eYGPGsiAI4xbcMoUztGGDs4AKOMgQAcZNjPAThAfxB/1L+FSO0hRGgPI0LzAfpoPkSY+jh6q0/gCc1JPKY5hcc0pynqMzxeAD6m9gLwIgj0QbB7AP7el4GvdYCEPv8r/TUIAfBKfw+E/5rvHzH+X8vhaR8MXp5gFeJjr4M5gPVNdUJHk1FotvXf9mlbX5xvvw8/tP1+AMiHXLeL77ffJCLwv3sEoLcZ5IvWW3k+b7mN4+/TllvxabMEwE947uI53Xg3Tjfey8Px13CfbwA0Q6Dvz3UPSpXAuvsIgbW0DPx+LSHw3Zo/4N0aAuChAAA+xgG4v/JxAmDl4wTAqnDsrYjA3opIH/5erYik/X/lT2FHWSQPA+D2UgJghwjAbaX+ABzMAdhYMpwAWEIIrCnyZhSqisdw/JUXPSvijwBYVEAALCiYgoKCacjLn4q8/OnwiAB0cQDO8gHQks8A+ByMeSIAxf1/2pylPgBm5azkyfCs8gFQ7hErgO6NBED3Jj8AxnUB4HpnCtY75FjrUGCtXckBuNrB8JeF5Q41oh1aRDv0WGoz9AjA56y5mGMtxExLEWZYyjDDUoFpliqOv0kWLwDrOADHmJoDABhl2o4ow6sSAFn1z7AfAw0MfwfRT38IT+neQV/d+4jQHUEf3XH01p/AE7o/4zFtDwAUEfiYmiAo7QfsDoLe5pDuuoLF5WA+AsE/1xaAQgndg9AzEHoGwi8DAL3nBQ9P+2AQA2Ds9QDAhqZGvgTcaom0ftEZjvPt9/jw54PR7wWAHf99mQF4B/7aHAhAhj9/APrmAYrvBwLwXgJg7f1+AHyY51AAAB8VAfiYCMDHuwBwTyUBkOGPheHPH4DbRQAy/LFw/JUOxNZSBsBBQQAc1gWAVcUMgKNQXjSaA5DwNxbFIgALCgiA+SIAcwoIgO6CmXDlz4AzfxZs+bNhyWcAnAtjngRAb/WPABiNbM9yAqBnNQegwrMScg8BUOZZhxTPeiR5NnQBYKwrgeNvkyuZ8OeU4SUnAXCNQ4nVrALoZPjLQnQwAO0mvGC3YYHNjudtBMDnrB7MseVitq0QM6wMgCWYZi3DVGsFJlkrOQDHm2swzlKHMeZ6DsBR5lY8Y25HlEkC4DDjbgw2dA/Avvp3EKF/H330R9DbcAxPGo5zAD6qPYlHtT0AkP/5IggUI3UI9zAaRqwChgAYehENQSr0DPzenoEw8Rddhj9vRsiOPnz9ALChQdherxOajY+P/6LjEX7ur3Tc2+8PgN4q4KUC8IvW2zkCLw5AQuDHjfeIALw3KBIAj9f/FgCkvX+vigjcWdGX5+XySB4GwI4yAmBbGQFwaw8AZPEHYFUxAbCyhABYVswAOAbFRQTAgkICYH4hATC3cBoHoJtnJpwFgQA0FxAADfnzoc+VAKjOXcr3/3krgCox6TmrIPeshCxntQ+AyTkbkeDZhHj3Zt/ybzAAX/IC0JUeAMAVToY/NZY6tVjq1GOpw+gD4PN2O+bZnXjO5sIcmxeA+RyA06yBAJxgDQTgKHMgAIeZtmOYaacPgIOMe30A7Gc4iEjjWyIA3wsC4Ed+APRDoEbaDxhcEfTfF+i/P/CiI2KC5gIG50r/gA4ldA9Cz0DoGQj/DQHobQCJJAB+P4I1gSTYr48mkOamVmFHs1V4u2Gy8HFjL5zvuCMEwMsNwKY7fQjkAGy8p1sAnqgn/F12JfhuKAAAIABJREFUAFaGiQDsIwIwogsAO8oIgAx/LFsvAYC1JVGoYikeyfHHUlbMADgaxUUEwMIiAmB+IQPgJOQWTeEAJPxNh6uQAGgvmAVL/myOPxZDvgRAbd4CqPMWQZ23mBpAcqKhyl3O8ZeRuxKK3BWQ5RAAU3LWIDlnPRJzJQDGumMQ645DjDsBm1yJ2OBOxksuAuBalxwvutKx2qnEKqcKK1xZWOZi+JMAuNhpxAt2ExbabZgnAnCOCMDZtlzMtOdjmq2AA3CqrQyTbRWYIAJwnKUGz1rrMMpCAHzG0ooRlnYMM0sAHGrajUFGAuBA4z4MMEoAjDC8jT6G99Db8H4gAHUnOAIJgBICvU0hwRXBbhEoLgdfeFB01+HQIQCGXnBD6Ao9A7+PZ+BHHwAp+NOI1A+F66cLuKmZD4Le37xS2J3/6Bd/a78f37X9Fx8G/U3b9V8FvFgF0DsI+kJLwHwZuPU2fNZyBz5tvvMXAfBEEACP1t2HI7UEwPfrCIDv1REA36klAL5Vw/IoD8PfgWoC4L4qFoa/MA7APVUEwFcrCYB/qiQA7rgEALaUDeJhAGwsFZeASyUAVpdSBbCyZGQAAEuKn0VJ8TgOwMKiiSgonoiCoskSAAun+gBoDwKgsZAAqMufD13+Ah8As/MWIytXAiDDnz8AU3IDARiXswlxni0cgDHuOGz2JGCDOxHr3clY707FOneaD4CrXEqscKmwzJWFaDcBcLFLi8VOPRa5jFjoMGGBgwA41+HEXIcbcxw5AQCcagsE4HhbIACfsQQCcKh5O4aadmKwmQA40A+AkcaD6GsKBOCT3QCQVQEpUhWwuyXhCwGwu/EwgWNiuhsSHWoQufIvTqGE7kHoGQj/Jw6CjlAgngGQBkFfBwBsrKsX2puLhT81y4UKbcSST9vD+SzAbztu+V2MgbnaAcjxV3c/3qsjADL8sRD+JAAy/LEQ/h7H69VP8rxWHcYBuKuKAMjwx7LjZwKwsZQAyPDHUusPwJIoEYAjUVb8jB8An0VhsVgF9Adg0RQOQFfhdDiKCIDWwlkwF8zm+GPRFUgAVOctQHa+BEBVbjQy8giA6XkrkZa3Aim5BMDk3DVIzF2HhLz1PgDGeGKw2ROHTTkJWO8hAK7zEABfdMux2p2OFS4llrlViHYTABe7CICLXATABU4T5jttmOuwY47TiTkON2Y53Zjp8GC6Ix9T7QyARZhsL8FEexnG28sx3laJZ61VGG2twzNWAuAISyuGW9ox1EIAHGxmAHwVA027OAAHmPahv2k/Io37OQD7GN9Gb+N7eNL4Pp40HuEI7AmA/gh8VHOG51KWgS8OwJ4R+HufExhK6B6EnoHr9xmIUAQeBTc07TQdBZegvz4A2NDQJLQ01wutjXnC7pZk4UBJxHdftf+B9gJ23njFgXY1AJDlUgH4WctdHIESAO8gAIoI/LjxLhGAd/OcaLiX4gfAYw2/BQDDCIBVhMAdleEcgJ0VkTwMgG3lBMBt5QTAlrJLBGAZ4a+8lABYUjKap7iEAFhQTADMKyYAeoIAaC0MBKBeBKC2YD60BQugZfjLX4TM/MVQ5b0AVd4SDsB0MQTA5UjOWxkAwNjcDYjN2YLYnNgAAK7zEADXeroH4BIPAXCRmwC40C0BcI7TjlkuJ+HP5cZ0DsBcDsDJ9kAAjrUHAnCENRCAgy3bMdiyA09bCIADzHt8AOxr2o9w80ERgO8EAlD/oR8A/REoLQcHgNC3J5AaQ6QGkXMXHQ/T7XFxfhgMAfDKv0iFEroHoWcAv+k9YNtehshPGeakNHH8bYhPFWLirpMmEJaWliZhe4tZaLAOijrR0hdfdTzAq4Dfdtz0C46Fu3aWjv+pAGy6UwTgXd0C8KOGHgDIl39/DQCfFAHYmwBY1acLANvKCYAMfyyEv2AADkZDGSGQ8BfF8cfC8MdSUsIA+AyKSwmABSIA80QAMvyxuIqmwlE0HXYRgJaiWTAWzub4Y9EWSgBUFyxCphgGwIy8JUjPj+b4k+cvhyx/BZLzCICJeWuQkLcOcfkSALfkxmJTThw25MZhXU481uUkYm1OMtbmpGK1R4aVnnQscwcCcJGbALjQTQCc77RgnksCIMOfF4DTnLmY7CAATnSUYIKjDGNFAI621WCUrQ4jrI0cgMOtrRj2/7N3H9B1Vde+8BfJfe++777vJjf1QijGxk2yLVmyZbnKtixX3Hs37r3iIqt3uclWL6f33vtRtXGhQwglAWIgIQZCwiUJEEMo84211j5n732KJBdwYa8x/kMFGMh7HHF+zLXmXE3tMKGxA8Y1dcG4pnMwtukijGm4BOkNT0F6wzOQ1sACMKn+JQrAerYKOLTm95BQ/TZFYEQlMHQmMLIiGAuBPQ6KPhGrO5iPQAGAAj4EfAivgbv/NfD1nzLLLv94awHd+sX4uysAqDMYkNagQUajHpkN1ajVthu5RKme99tT4ZPOh+Czzl/C1c6fwtVOFoL4ruAwoJgbQ0JQpPj70R2FQG7wn+NqOxeAFIGftP4iHALAIEUggV+AswUceAD+4mcBiOcA4mHQH7jpFvAVL01oKzgEQIy/SACG8IebPzD+vg0AdlnSoMuSDh3mUdBhHg1t5rEkAfMYCJjGgdc0noTijwLQaZwMDsOkuADUGSgANQYKQKWeAlChpwCU6noHwCrNGqjS8AF4TLUBKlQUgBh/uPpXotwJRaqdUKDazW7/Kg/CEeUhOKIIATA7DMC9DAB39xaAkoa4AFwklsEikYoAcK6ID8CZLTYGgG4CwMnNLADHNXXA2OYuGNt0HkY3XYS0pkuQ1vgUpDU+AyMbIwBY/zIMq6cIHFr7BgFgYu1bkFjDaQZhEmtLOPZNIb0DYOzbQmhij4kRmkRubuXhzh5EfetzZw9iFl4/8C3//nBeA+WcvxaaAUh/x66mlsOEacVvo+35UtL8gUfA3BVjYAwGHdLrKQANBhGymspQ0LYFtUqSnv9LVxr841x/+PTsffB513/zqoGRFUH2ez+6CwH48wgA/uxbB+AbrmgA4iHQtwqAFH8TwEkAOBFsxmgAGoxZDP6mgoYBoFJPAajQzwWZbh7BH46IA8BG7RKo1/UMwOPq9VChpgAsU28JV/9C+CtQ7Q1X/7JVLAAPK4/A44ps2K/Mgb0KCsDdCgrAHXIMwDLYKiuHLbLjsEnWGwC2wFIGgRiAC8QqmCtWh/H3qNgMM0UWHgAnN1MATmoOQEZzK4xrbiMAHN18HtKbL8LIpkswsukpGNmEAfgcjGh4Lg4Af0cQmFhLERiqBMYCILcrODYAQ/MBewvA7hAodAkLb+C3HjwCAK8VQHd3knsFQBaBMf6ef40qvzp/csn7aHHhk2h3Xj0DQJq7AoAGnQaZDHpk0KmQySxGNnM5QaC9abjhj60j4bNzg+GLjvvY20Haf06rgl3/xVQDY+Wndy0Aca4VgKEmkBAA/+h5iIQLwLc8FH9cANKt39D2LwXgy86B8BvHAPi1YxATDMDB8IKdAvBZGwXg03YKwEs2CsALVgrAJxgAdlkoADsZALZZKACDFgpAvzk2AO0mCkCrkQLQ3AMAFQYKQKmeAlCspwBs0fEBWKONBuBJzTo4qcEAXBcGYJkaA3ATlKq3sABU74R89W4eAA8rDxH8RQJwt4ICcKeCAnC7PATASgLAjQwAH2MAuJazBbxM0gRLpRSAi6V8AM4R8wE4XWSDaS12yGqhAJwUBcAOGN18LiYAUwgAXyAAHBYHgINr34JBNZFbwfzt4Jj3BfMwSLuBaf4ekZ4h2F2HsDAnUKjg3GoACBVAAYDJvQAg+98rHgg/TKn8MnNi2btodYEX7c6rRQfzSpgtYJo7fhn1IQAakUGnRyaTARkMzchhPYZaHXuRuSZtxXO6lM//HEyGf3YNJFfFXW1/AD7p/BXZHma3fQUAXi8A3/H0IfiLBmAf+C2DQIy/V+yPEPzh/JoAkEXgC3YMwMHwrC2BAJDgzz4MnrJTAF60UQBi/OF0WSkAO60UgG0WDMBRELSMJgD0W8aQeE1jwwB0miYQ/OFYGQBi/OFg/EUCUGWcCQoDBaBUPwckutkg1s8jAGzRYQAuhCb94igAVmtXQhUPgOvguGYdVGrWQxkB4AYo1VAAFqm3QpFqexiAOao9UQA8qDoC+5XZsE+ZA7uVFIA7lRSA2xUUgFtk5bBJXgkb5cdhvbwKHpNVwVrZGVgrq4E1sjpYLa2HldJGWCptgsWyFlgsFcNCmRQWSGQwX6KCOWI1PCrWw6NiI8wSm2G62AJTxTbIarHDFJETJrW4IKPFBxktAZjQ0gpjm9tgdEsHpLecg/SW8zCy+TwPgSmNzxAEJtW/CMMaWASyAHwDBtf9HgbVXI5xHvDdCABePwIFAN7uFQwhAgCF10/KDVcAGQBWfgmjyj/7amLZFWlW6eX7skrfRAuLzxH85eTkoKO52cz5PwzAXHTHL6PeQGLWGSgCcUXQqEJGowSZTXWo09+CzrkLkbVhXPFF5ZC/vesdCh93JsLHnYPhH5394Gr7L8jgaHJ7SNuPSb7p+inJF60/ui2qetcSXP2j+QVJTxXAj4P3dVsBjBwDQ7Z/fSwA3/E8yACQIvCyuw/JG+6H4LcuFoCvuR6B15wD4GVnf5KXXANJIgH4nCORASBF4FP2YRSA9mEUgDaKwC5rMkEgAaA1DdosIzkAHA1+SzoBoMc8Fjzm8eAxZYDLnNErAGqM0QCUGWeDzDCXBaB+fkwAYvyFAHhSSwF4QssHYKmGArBYswWKNdu6BSDG3wE1C8A9qjzYqaQA3KEshh3KUtiqKIOtigoeANfKq2CN/AyskdfAKnkdrJTWw3JZIyyWNcFCWQsslIlhgUwK86UymCtVwaMSNcyS6GGWxAgzJGaYKrZAlsQGU0R2mCx2QobIBRNEPpggigRgFwPAc5Dach5Sm5+CVALApwgCkxqeZ7aB6Vbw0NrXCAITmSpgAgPAxDM4LAJDW8JDT78bA4EsBru7Jq43ZwJjdQYLcwIFAN4+MBXOAH6f/wciuRf/AzWSgeCI49+8O7z8q1MZJX9KWFHgIcOe8Y0fu3LPoIM5heFzfywAj959ACQVQYMO6Yw60iDidHtQa8CILraeQM/4dqJXgyuRq2bw1nZx6mu/NqZ/+X7bSPi4PQE+7XwEPu94ED7vvB/+de4B+FfXvfBlxy9uOehuJwCG8BcNwAcZAFL8venpA6/HAqDrkV4CMIEB4BAGgEMYAA6lALQlcQA4olcAxPjrCYB6UxbFn3EqqIxcAM6KAOA8HgDrdUugLiYAV8EJ3RoCwErtOqjQroNS7WMEgMVaFoAF6u2Qr9kJuRoKwGz1PjiiPgAH1Y/DAfUhAsB9qmzYo8qB3WoKwB2qQpJtqmLYqiiBzcoy2KiohPWK47BOeRLWKE7CGnkVrFKcIQBcLquHZXIGgPImWCBvIQCcK5PBbJkKZkkpAGdIjTBNaoYsCQXgZLEdJkqcMEGMAeghCBwnCsBoUTAMwDQRxl8IgJcIAvkAfJEFYN0rBIGJdRSBCTVvEgRSALKVQB4AbyYCuxsULQBQqADeBm/6AgCvDUB3c5K7+bOPrLj65cTS95+bXPjGsWmVb49PPfjsDyaX/B7NL7qAdubW8Zo9InPXABBjDwMQ448HQIOBBM8J9LrtqNWnQ11+Oer0NqMOdy0652tATwQqkaZp9sNW0Qjz06qBH1129P/mL51J8FHHIMA3ihAQ4oHSdzkAwwjsBoDh5g8GgH/wPkTCBeBlL8UfF4CvufoyeQRecVMAvuSi+bVrILzoHAAvOgfBC46B8JyDAvAZRyLFn4MC8KKdAvAJGwXgWTsFYCcDwHYbBWDQSgEYsFIAeuMA0GamADSbKABNpu4BKDNSAEqMFIAiAwVgk54PwGpdbAAe02EArgkDsFiLAbgBirSboEi7DQq0OyBXux1ytDshW70Hjmj2wSHNATjAAHB/JADVBQz+GACqSgkANykreABcpaAAXKmoCQNwobwBFigoAOcpxDwAzpDyAZgp5QNwnNgD48RcALZxANhFEcgAcHjTJRje9BQkNTzL2wbmAnBw3RswqJYBYDVFIHc7GFcEaZiKYPjaOM71cd0MiY55U0gEBLubESicAfxuKhhCBAAKrx/o7e/P5eRKaEmuhCUZZe//GM/1w6NdthVK0KacJrQlv4XM+TuYU8wDX252qPGDVgDvriYQAwWgxWgiGIwEoM/tQ16XG3k8HuTx+JDHF0C+QCvy+W3IG2hAT3SWoJfad6BX/EuRoy5pWkCUcP6iuf9nvw0Mhg/O4S3jgWSkDL5nmAbfNPLzuxSAv7qpAMQVwLgAdPcPA/A5BoAYfzgEf44hcMlBAXieASDGH06njQKw3UYBGLRSAAZsowgAvVYWgC4GgE5LBsEfjtmEATgJTOZMAkC9KRO0DABVJgpApWk6yIwzCAAlBICzQWScQwDYxACwQb8Y6vRLoEbPAvC0biWDv1VwTE8BWKFbA2W6dVDMALBIRwFYoNtGEgLgEc0uOKLZA4c0+wgA92soAPeos2G3Ogd2EgDmwTZ1PgHgVjUF4CZVGWxQVcA65XFYqzwJq3AUVbBSSQG4TF4LSxT1YQDOU7TAXIUYZstk8KhcBTNkGIBamCbTwzSpEbKkJsiUWmCixAoZUjtMEDtgnMQVDUBRB6SJumBkCIBMFTCFC8CG52FYw4vdAJBFIAXgtSOQnQ/4UTjdIrBXABQGRQsAvNVAFbaAv7//A/E1pFR+8cmoir+7M8qubMksu9wns+wyyix9m2ReyUW0K78WHc3NQTn5R1F29mFOh++R7wcAb3RJ5XVIIT+JtLJSpJfnI4MsH2k0O5HIMQ1JXKP+TS5JKuvQpPzht9YBX33cMRRw/tY5ED5t+yV80fUz+NfZn9IwTSTsYGb6Ne4ypiNmaPcx/eu0y/jz7wKAbT/tFoB/C9xHQodAhwB4HxkATcMA0EcTBqDvAQ4A+8BbXorANz0PhhH4phtv/9JEbwHTbWCMvxcdCUz1LwTAoT0CsMs+PAKAo1gA2kaFAeiyjAWnZTyJ3YoBOAEslolgNmeAyYwBOAkM5swwADH+lCTTQW7mANA0KwzAZuM8aDLMhQbD/CgAYvxV6Vcy+OMAULuOALBEvz5c/SvQbaEA5FQAeQDU7O8WgFvVkQA8FgbgalUVrMb4iwtAMcxVSOFRuQxmKhQEgNNk0QCcLLXBRJmDIDBD4gxXAUeL/ASA4W3g5g6CwFAzCAYg3gbmAZBUAWk3MAZgQs3rDP4oAMMJIzB+hzD31pB4I2L4zSHcBpFPaIcwD4DdXRnHnQ34fXoDEiI8A+E10Bug4yvXUpn7dkPz95LjzRUtZ/957i5D6J9PKYeXkiugJKXyy/RFRvjhet3nKF/xIjoua0PHSDpIqqRehO75PzzP/ICJsHoLQKmURCKjwZ83q6tQlX0nOuNcg0zefchn24guWeYiX33S6NaW1Cee1o68isfL/LVzEPyj8yH45zncUfwr+LzzvjDyQgOlb0sABuktIDcHgH1YAHofZAHo7nsdAKT4u1kAdFvHgNM6lsRuxQAcDxYLBuAEMBEAZoDBQgGoNWeCxpzF4G8qwR8LwBkEgGLTbGgmAJwDDUYKwHoDC8DTuuUEfycNKxn8UQBW6kP4owDE1b8CHQvAPN0OyNFth2wdBeAh7R44qN0H+7UYgI/DXs0R2N0NANnqXyWsVR0P42+VigJwubIGlihqYbGikV/9U0phpoICcJpcGQbgVJkRMiMAOFHC3QpmAMhUATECMQDTmmMAsPFpgsBhjc/zuoET616DhNrfchB4OQ4C4wOQIrD7OYHdITB8U0iPAOQiUACggCIBRcJrgAUgxV80AFMiRrTEA+DIis++nlj6/oWskrePZJa+PShU4cssex1t0f4NHVK/ik7LrEgsbkFisRi1SMSoRSxFYpE0CnwCAK+1AiiVk4QBKBMjqayJILBZU4mM1gbksNYhp/kkchvLkdd8DDn1h5FWPPd+pyzN/5yx76fvtw2ED88OhY86BpAtYgwxirz/4txCErpphIbAkHMjyd0EwDe8feANT1+SbreAbxCAXfbUiC3gkTEBaI8AoNnaOwDKLNNBYsL44wOwyUQBWG+kAKwxxAZgpWEVVOrXQLkBw28NFBvWQTGuAOo3QoF+A+TpN0Ee3v7V74Bs3XY4rN8Jh7S74KBuDxzQ7YO92v2wV8sCcKcmGoCbNcWwQVUG69UVsFZVCavVx2GVuorgb4X6DCxXVcFy5ZleAXCqXAtT5bEAaLshAA5rDAHwRRjS8DIMaYgFwO4qgZEI5I+Kib4ujr02jnseMHJMDO+quHjbwT1UAoU3QuEZCK+B7+9rgIu/cAWPU9FLZb4O/feC871/Jld+7U6p+HpLRvm7964ocpOzfFsKpCRb86Voe74YHZd7Cf4apfIwALkRAHiTKoDhyMRILhUjuYR+jc8T4tmCep2eBJ83NBplyGI/hZy2veiF4GqkqXzw/3qakiUXtWl/fycwAj7qHAqfdDwMn3U8AP/owsHnBunMwcjcTQC87MP44wMw1ASC8YfDPf938wA4IjYAbengtI4OA9BqG0/wFwlAnSUTNBYWgHLzVII/LgDFZj4A6xkA1hopAM8YlsFp/VKo0i/nAbDcEA3AQsNGyGMAmKvnA/CgLhqAe7SHYKf2MOzUUARu1+TBVk0+bNYUwgZ1EWxQl8A6VQmsUZYzADwJK9RVYQAuVZ2BxcpaWKiqh3nKBpirbILZqhaYrRTDTIUEZigVMFWBAagOIzBTZoDJMhNMlFsYANKzgPQcoAdGi7w8BKbh8AB4gTSCDGt6EoaFEIgB2PgSQWBi/Ss9A7AXCOSdBYxCYPcA7B6BPW0HCwC81W++QoRncNsBMAJ/qRwAjqy4+tHk0iuqaSWXl2SWXf7PzLI3EZ7Tt6D4PNqVX01m9B3Jw7P6csjMPhwKPQy/FtQiEQB405eEVPw4iQCh0Ui7i/nRI6NZjizmBtTmbUCdnhrU4a1Dnb5KZFIt+zeLKO3MRdWAv74bGALvdyXD/zwxhAyevtr+E/hn+4/gKzxjsO0n300TyLcMwND4l+sF4POuQfC8M4F3/u9pJwXgJScF4HkHBeBZOwVgFwPADgaAbfYR0IargPY0CNhGgo8AMI0HQIw/LgCN1okkNwxA00IGgEt4ADyOEWhcHQZgqWE9lBgx/kIA3AS5hhAAt0G2fisc1m/nAHAP7NXthT26x2GX7hBs1x6G7dps2K7NgW3aPNiszYWN2nzYiCuA6hJYry6DtapIAFbBUnUVLFGfgYWqapgfAcBZqhAAZd0DUG6BDJkZMqRWGCdxwBiJiwAwXeyHdHEQ0kUYgEEY2dIRngcYCcAhTc/CkMbnIbH+15BY/xsYXP8KDK5/DQbVvs7kTX5qLjN5m8kfaKrfDScEwLiDoiM7g2NsBfd0bVw0AoW7gm/1m64Q4RncNq+BeFU/5nup5fA/KWVfSZPLvpzymAZ+uLrQjbbntzARk+AhzUdyC1BO7mGCv6O5eSgnhyay4ocRGApGoVABvMEVgh+u+oUAyD0PGBuARvJ9vcmI3B4njduN3F4zcgcbUFuwED3l24he9CxGjoaUo13K4R9c9qfCB+2D4NNzD8M/u+5jzgzef9O7iW8VADH+3vTcf90AfMZJAYjxh0Pw5xwCF5wUgE84KAAp/pKgwzGcpM2eQgCI8Yfjs48kcdvSwGVLB7utewDqrCwAVZYsgr94AGwxzyb4iwbgIgLAKsNSOGlYDseNy+GYcSVUmCgAS43rCP6KTBSABcaNFH8kW+CoYRscNmyFQwYMwB1wQL8L9un3wB79Xtil3x8G4DZdNmzT5sAWXQ5s1DEA1BbCek0JrNOUwWp1OazSVMIKDQXgMg3GXxUs0pyB+WoKwLmqBpitaoJZDABnKEMAlIcBOEWuh8lyA8lEuQkmKLgAtBEApkvckC5mEThShAHYFh4HM7z5CRjefAGGNV0kCBzS9DQFYMMLBIGDGzACX4NBdb/99gDYLQJjALC7OYECAG/9m60Q4RncZq8BfN4vEoCjyr+4OrH0fXdWydtrM4ve/I9p5W+TSt/8AnwjRzXKy8lGObk0eUfzUN7RnPD3YgEQn/kTAPgtLKxnhUSKFBI+AEPnAnGMBnMYe0ajnlT/IgHodTMA9NiRL2BBXp8StXtFqN1dTyqD59tOoLzHE/7d3JIqfs7c/5MPzybCR2eHwEedj5CRMncbAH/n7QO/8/YlofijAHyZASDBn7s/vOC+iQB00MQCoNXGB6DR1jsASizTQWzG+OMDsMFMAVhrogA8Y4wPwFLjGigxroMi0zooNGP8hQC4AY4aN8FRwxbINm6DQ4at8LhxOxzQ74B9hl2w17AHdsUAIMZfCIAbdPmwQVcIj+lKYY22DFZrK2CFthKWaU8S/C3VVsESzUlYpKkiAJyn5gNwppoPwCkKNUxRxAKg6YYAOKSZAWDTszC48QUY3BAC4CscAMaoBMZDIJPwjSGR28Cc7eCoGYERVUB2RExsDPa0FXyr34CECM9AeA3c+tdAajl8lVoObSnlsHZi6fv/Sebz5UvJbRy4yrezCFf6qtGR3KIw/kgY6IW2fLnBMMSNHiQRFUD8uUQknAG8SQCURgFQLqHhAlBv0hME0lAE8gDodiOX14mcbhdyOp3I5XKhYDCI/EEr8rc1oc72QvR8+2PI3TL8fp8o2fusadQXH3SNJHMGcTcxrgrSGYO/vL7KYPvP4Ys2Fn/f+hgY3wOc8S/3Mw0gIQBSBFL89SX4wwnjz3P7AFBrnQQqHEsmyC1TQGaZSvAXAmCLZQa0mGdBs2U2wV+dZQ7UmuZCjXk+1JgWwmnTIjhtXAInjYvhuHEpHDMthwoTBuBKKDWughLTGh4A80zr4aiRAjDbyAfgPkM0AHfqD8GPocWdAAAgAElEQVQ2HQvAzfoc2KDLhcf0+fCYrhDW6Ythta4EVuoqYBkB4HFYqj1JALhIexIWaqtgnqYa5mlqYba6DmarGmCWuglmqltghkpEEEgAqFSGEThZrmMAaIgGoNQBo8WO7gHYcpYgcFjz+QgAPhcBwFcpAnkQ7B0CedfGxUHg0B4QyAdg9JZw/KYQ7uXrt/4NSIjwDITXwHf7GhhVfvXriWVXLmSVXt6bVXr5l1klbyOcBUVPol159QRxRw4fJTP4co4cplW+EPAiAEgrf3z8xQNgqBlEAOBNqgJ+63Nz7qH/kh/+AKH/cw9C//EDhP7vPQj95w8R0jZNzvKpkt54xZnwzYedCXTGYFcf+LSN6Rpm7ifG9xJfbePeTUzvLw7NHfyy7efwJZ5N2PYLkt4PguZfB/fX4L3w5wAXgDQsAGl4AMTn/7x0EDTe/uUC8Le+vvCqpx+87OkLL7n6wa/dNC94cPr3DoCuYRSAzmEM/igA250UgAR/9jTwO+gWsNfBAtBhHxO1BYwBaLBNJAkBUG3LBLUtCxTWLApAK0UgwZ9lBjRbZkGjlQNAyzyoti6AM+aFUGVZDKdMi+CkeQkcMy2FCgJAisBy8+rrBuBu4z7YaaAA3K4/AlsNR8MAfEyfC+sM+bBOzwVgWRiAIQRGAhBXAedoGklma5oJAnElcJpKBlkqRRiBk+UagsCJTBUwBMDxMjuMlzpJFXCMxAejJQEYLWmFNHEbpIk7IFXUQRDIBWB4C5gDwEGNv6Gpe5lB4KsxERi3GSTueJj3w+HNCIwDQXxdXPIJJsf/zgluDokcE9PTiJjbb0yMcBOH8PyF1881vAa4o1wqAIYfY1JJg3+fhh+DN4aVfZ09vvS9+9H/GovQDx+m+UE/Jr+Kms93SxZ2h7Bu3/WDHyBkt5cgj20rOmudhzzNw/ZeUKX9+Z1gBvy5cxh83NUP/tFxH6kIftn5M/iy8yfhzmGKvxsEYPAXDAD/+1sCYB8KQO/DFIDuh7sHoHMwPO2kCKT4G0Lwh4Pxh0Pxl0TwhxN0UABi/OFg/Hntowj+egNALQeAKlsWyG0YgFN4AGy2zoBGKwUgwZ91DlRbKQCrLBiAC+GkeREctyyBCvNSGtNyKDevhNIIAGL8RQLwsGkbPG5kAbjXsAt2G1kAbjccgq0GCkCMv40GPgDXGIphpZ4BoK6cVwVkAXg6CoF8AEpiAFADExUUgTwAyuwMAD0wmiAwAoCiDhje0skBYGgbmAFg4wswqPHXHADGQuCNA5AgMOaZQBaBPADyEMgB4DUhUADgrUbv7ZQ7HeB3+s9/zeHgD//5ksq/YQKfjSj7XDm+/P2M7Da4J7P8HbTk2LMI/fBedFuseyLAF/m1sG7DdQ9CJpMU2axNyGE8jpzMnMGifaP/3SUbq3valvz5u13D4aOz/cmQ6autodmB3BtHQiCkCMRbwN8GAN/zP/CtAPA59wB4zjWI4s9FAfikK5EDwCFwzj2MpNNF0+7EAEyCVgaAfgaAPicFoNtBAeiwUwA67OPC28Bm6zgKQPuEmABU2KcRBGIAiqx8ANZHAPAMrgBaF8Ep60I4ZVlMAFhpWQbllqVQbmYBWGxZywNgjpkCMNvEB+ABEx+AuyIAuMXIAnCdIRfWGPJhjSEEwCJYYSghAFyqq2RyHBZqT8J8HQXgHG01zNHUwhzNtQCQIjBDZmQASBGIt4FJN3AUANu6AeDTUQAcWP8SDKx/mcmrMLDutzCw7nWS+NvA8RpDrvDCVgHjDYrGAAyFVgMjt4OjERgPgLfnnMDv3Rv4bZY7/fnf6T9/T2HHtbBHObh/vqTyb55LKv9mb1I5/HR8yQdodWkAbS2SoG1FcrSnsOn2qPThJQDwzlzkfKGOninUarXko9UiQh7rQdRqWY6sLWlzn9CmvvOGbyh8dC4B/tb1EHzSdW/4rCAPgO0/ZQD4szsOgAR/rsEEfzgXIgB4lgFgh5sCsNVFAeh3UgBi/OG4CQBHgsORxgHgGAJAi30sGG0YgON4AFTbJoHKzgJQassCkY0CEOOPC0CMvzAAbfOgyraAAPCEFQNwEVRalsQEYKEZA3Ad5JnWEQBmmygAD5u2wEHTNjhgogDca9wBu427YJeJAnC7cT9sNT4OW4yHYIvxCGw0ZMN6IwNAI0XgKmMhrDBQAC7V41AELtYfh4W64wSAc7R8AM4mAGyEmZomFoBqGUxR0rOAkxWqaADKzHEAGIA0cZAgkAKwjQKw5SwMaz7HnAO8yADwGYLAQQwCKQC/HQT25qaQ7gEYrxIYD4C335zAu/0N/HbPnf787/Sfv6eE8EcBSBE4qvzqxxPLrrRklV5OySp7B9H8Ec0veQrtzKshd+jm5uejnLx8dNuse4QK4B25jHpDOHjINBk0bVAhs6kR2UwnUbu/Hp0NlCGdas5PbOqUjhcdCV/99Ylh8I9z/eFq10PwZccvyBnBb7p+Cl910cYR3AUcguDNBCBOCIB/9D9I0hMAMf5wXvH2I3nJ8wjJi16cAfC8ZyA87xkMz7gHwTPuBHjKPYTkkjsRLrmGcgCYTAHoSg5X//gApHE7U3kAtDvGkIQAaLKPB4OdAlBnjwYgrv5hAErs00Bim9F7ANoWhgFYYWWrgCWmVVBkXgOF5jVQYFoTBuBRko0UgOYtcMC0GfaZt8I+004GgLtgh3kPD4CbTCwA15pyYI05D1YZWQAuM1IALtaXw2J9bADO1dURAM7S1MFMVT0DwJbYAFSoegaglG4DhwEoDjIAbCcI5AGw+cloADa8GIHAEAApAnlNIWEEshjs+aaQ97sZEs0FIAeBHAjGBWBkbtMxMXf7G/jtnjv9+d/pP3+spJ0ASMU/f2kIfSTfpFRAa2o5LJ1c8v6/ry7wou35UrSzQEmyvVCJ9hS0oKP55aggLx/l59PcNuseAYB35DLqdRSAOhPpOA4hMBTSXRwwIGfrKRToOISeDKxC9oZBW58wJH94uX00fHxuGHzS1ZcMmv6s85fk2jk8cPrOBOAgeMqTEAbgBU8inHP3AoDOlNgAdKSB3UERiPHHBaCOAHACqO0ZYQAq7BR/kQBstM6AehsLwGrrHII/nFPW+STHLQug0roIKqwYgLQKWGpZDkXmFVBkXkUAmGdeAzlmDMB1BIBHLBvhoHkTPG7ZAvvMFIB7zNthl3kH7DBTAG417YUtpsdhk4kCcL0xGx4zZfMAuNJUCMuMFICLDSwAF+mPw3wc3UmYoztFEDhXV0OqgFEAVIt6CUCKwDFSphtYSquAaRI/QSABoDgIw0WtDAC7CAKHMN3Ag5ueIggc1EQRSADYDQKjOoMjENi7m0JiIfAv4ZtCYiKwWwDGQKAAwFv+xn475k4H1J3+88fKCNzUUf4N+ZhS8fU/RlZ81pJRdmUIvn8Xd/EuLLqIdufVkxl9BbmFKD+vEOXm048YfwIAhXXTAWjQm5DBZEE6gwHpDCakM+DPTcjlcSOnx4I8QRPyBRSozd+M2lvPIHdXCaoRTb/XKkvpfMGV9NWfz4+Av3b1hU/P4qaRn984AAP303wHAHzWO5DBHwXgk54EHgDx9i9OBxOy/etKgqCLAtDnogD0uCgAnU4KQDsPgKMpAB1jwegYDzrHuCgAym2ZPACK7HwA1tn4AKyyUwCesFEAVlgWEvyV2XCWhQFYaKEAzLcw+LPEBuAeCwXgbstOAsBtEQDcaGYBuMacA6ssebDSxAJwCQPARYZyWGRgAThXTwE4W3ca5uhrYLaWAnCGuhcAVFIEZsj0BIHj5UaCwPgA9HcDwItRAOzf+Dz0b3yRpuEl6N/wMvRveJWEWwmkeZOXQb1oEOn5qrjuR8T02BHcw73Bt/rN7m58A7+Tcqc//zv9548MrvyNPE4+f2PEMTiSXPn1T8aXX0GhuX246odv5jiUW0LGseAqXy4nocpf6Pu3zbpHqADesQCk9wsbkd5ojgCghQDQ7XORjx6fD/l8PuQMupC6TY2sF5pR59lc9HT7ZmRtSim4pB/+6ZVzI+EvZwfCx519SAfxp633wqdtv4weBM0DYOQYmP+GD4L39RqAeAg0xt+bPj7+egLgC74BBH84FH+DCP5wMP7CAPRQBHa4hzAAHApBNwUgwZ8rheAPx+miALTHACDBnzM+AGXWiSC1Z7IAdEyDRts0qLfNgDr7LJJq26NwxjaH4A+H4M86Dyqt0QAsti6HQgsFYL5lDeRZufhbD4etG+FxyybYb9kCeywUgLst22GnZSdss1AAbjHvhU3mx2GjmQKQVP/MNw7AmQSA+GMDB4ASmKKUEgROVij4AJRrCQLDAJRZWABKPZAm8RIE8gHYDsNaOjgIvAiJjZd4CBzY8DyLwDAAe4fA3nQJszMCYwGwp0HRzJgYXmdwbxEoAPBWv9nfDrnTAXWn//yRc/smlb/nzCx6c2puEO6ZVPwmmlx2Gc0ruYh2FNTy5vCFkluQywsXfwIAhXVrJhRi7f8QIfRvCCnVJ5FOWY7MikJkU+1GssZxU1zqIW//rj0Z/tw1CP7Sej980vYruNr23/BZ8GfwWft98I/AL0jw9zH+Pmq9j3zEGMQA/DB4LwVg8D54z4/xxzSBBCgA/+inAHwn8CC87XsI3vI/BL/3PwxvBB7mNH/QUPxRAP7G149T/esdAOkZQArATlc0AAOekeD1pILHlULx50oFh4sC0OrESQercwyv+qd3jif40zi4AJwECkcmB4BZBIBN9ukMAGdADQ+Ac+Ckg1MBxGcAbYvDACzFFUAbxt8KyLeyAMyxMvgzb4CDlg0cAG69ZgDiLWAMwBWGAgLApXqMwDKyBcwFIHcLeLaumlYAdTi4AthAqoDT1M1hBOJKYKZKDplKZRiAoXEwGIDj5BSAo2U2AsBRMgrAEVI/jJAEIUWM0wZJInoOMKmJAjA0FDqx8SneWUCKQH4FkGwDd7cVTPB3LQCMc1NILARGhL8tzL0ujkIwpRLnCyZf0oTPFt36Nz4hwjO4W18DLETp71oyU+XDSSn7BoaXf4Xzt6Tyb2rGl/6p7/ICG9qS24i25DajzbnNzAy/e2+fbl5hCetalkyhQAqFAinlCqRU1iCV4SDSGVYiTVPqvUFl0jO/cad+815HKnzUMQD+3vYAfNr+IPw9eD/83f9z+Djwc4I+CkD6MQRAsg3MASDGHw7F3/0EfzgYf90BkOLvYYo/b18O/uID8JJ7MMWfO6FbAPrdw8HnpQB0u1PC+MPh4g8H448LQIy/EABVjgxQOFgAShyZIHJkQTOuADqmQ719WhiAZ+yPksQCYKV9MVP9owAstmP8UQDmWddAjnUdZNsoACn+NsB+KwvAEP5CANxq2QObCAD3w0YGgY+ZDnMAmAMrTbmwwpgHy4wFsNRQEFUFnK/HOQ5zdCfCVUCMwNgAbIYsBoGZKilB4ESlgofA8XI9jFMYYbTcBKNlFhglc8AomQtGSCkAU6VBSJH4IVkShCQxrQJGdgOzAORWAa8NgBR/vQRgTzeF9AKB/DuEP4GhJ9i7ggUA3noICPl+PoNIAOJhzUNLvyEAHFX6z1cySv+4eUrJG/8xueT3aH7RBbQj9zTKzj6MsrOzSYQlrDt6yZRSEoxAhbIFKdRnkFp3Ahm0JUiv3IvaW/chg3yc8inrsH+93zUMPgz2h48DD9JbQAI/hf8J/hw+av0FfNTKADDwq3A+DP7qlgOQNoHE3gK+GQDE+AsBUHYdAMT4iwRgqZ0PwLwIAB628gG4z8oH4A5rLwBoyQ4DEFcBMQBxFXCxgVYBewYgRSALwMbrA6DcRhA4QupmAEgRmCylCAwBMKnliRjjYLhnAflbwOFmkJhdwSwGYyOQxWDPAIw/Iib21jADwJPMVXHdDonmdRkKFcHbAAxC7sKbO8jn9PeLGdx8YXj5V3MOtcI9qwpcaFteCwke4XIouwjlHMlGOUdySIQlrLsCgKHIVXIkVUiQUilHCm0zMnlrkC+Yj8651yB7c9KhS9aRn/6+LQ3ea0+AD9oehA/b7ocP2+6Dv7TRreAQ/j4K3n9TAYjxFw3AR+BZb38eADH+cEj1LwYA27gA9CSBz5vKAeBwcDAIpACkCDQzAMTn/zD+tC4KQLWTAlDhyACZcxKJxDEJRI5MaHZmkTQ6pkKdfRrUOGaQnLHPhCr7o3DSgQE4B07Y5sJx+3yotC+EcsdCKLUvIgAsti+DQscKyLNRAObY1kC2fQ0csa+Dg7Z18Lj1Mdhv3QD7bJtIdls3w07rVthh2w7bbDthq3UXbLbGA+DhXgKwHObrcSphju4YQeBsBoEsAOsIAm8OAL0MAP1hAKaI6VDoJAaB4XEw4XOAFIGR5wDZuYDxuoJp4lcCaRLP/KEXAOwOgbEASBFIB0V3j0ABgLcBEoTc9c8guRK+GVnxWdvY4j/OySp/C2WV44rfE2hXbg25ixfP7sPJzqbww8GfC0tYd/TClb9IBOJtYRKlGDmcBuR2KlDA2Yh8nkpkbz2ImmUTlwcNyR/9rjUJ3ulIhCvt/eAKbgLpeICg7wP/vQSE7/nvvWYAvu7rS/I7P82r/r7wsr8vrQD6+/Hw95yfAvBpHwbgAHjSOwgueQbCBQ+uAA6GJ7y4CSQh3AhCAOgZwgBwKAGgx50Mbg+N05NCAGhzjwSrawSYXWlgdqWDyTUGjM7RoHeOBa1rLGjc40HtHAdK1wQSCsAMkLq4AMyEJhcXgNOg2skF4KNwwjkHjtsZADrmhwFY7FhCUmBfSgCYY8MAXEUAeNi2hgDwgH097LdvJPjbEwOAm627YJNtD2y07IWNlu4BuNycD8tNhbDcVEy2gEMAXGDkAFBfQRAYBqCeIrAnAE5SKXsHQIJAL6TKvDwAJkvoWcAkUScMFZ0l3cCJLbgb+BIMan6KpukZ6N/4LA+BobEwvC3hcCXwtzHvDY49IibWdXGhIdHddQhzu4S5CIwEYPcIFM4E3nocCLmrn8G/kitBlVQJQ3A37+piD9pRIEHbCkVoZ2E9evxoUXi7N1aEJaw7H4BcBIa+ZuKwu5CTxIGsbgNStzUjQ0cxag9uw+cEx3k0I979Tdt4ePvscPhjWz94v60fvBcMVQbvv2kAxPjD4eHP1w+e9mEA9ocnvRiAA+ACAeBAeMKLATiYAWACA8AECkB3YhQAnQwAbW4MwFQwuykATe50Er1rNAkF4FhQujAAKQJlrvEgdVEAipyToNk1CZpcFID1zqlQ58gKA7DKMZOEC8BKx1wod8yHUscCKHZgAC6CQscSyHcshRw7zgrItq+CI/Y1cNC+Bg7Y18F+x3qSPfYNBIA7bZthh20rbLNvhy327bDJvgM22XbBRutuHgIfMx9kAWjJhpXmo7DczCJwiYl2Ay8ylnAAWM4CUE+rgLEB2AhZGorATLWYIHCSml8FHK/QwjiFHkbLDQSBo+QUgRSAbgpAmReSpTh+SBIHyFnAoeJ2GNLSBYmic5DYch4GNV+AQc0sAvs3Pc0bCROaD8hWBCPOBH5HCIxdCeRsA/eAQAGAtxwIQu6iZ4Dn9zH5dGTZP2smll15KLPscribd29+PcrPPYpy8o+inLxcUuXDOXw0O2aEJaw7eskUKhJyBpCDQYmSfm5zOpDD4UBumwM5HRZkcuuRI6BFLlcjsrtPImtnGTotmjbArEr63Yv+VHizLRnebUuE9wJ94IrvvlsOwLMejD8+AIM3EYAK9wQSDEBxBAAbegFAjL9IABY6F0GBfTHk2RcTAGbHAeBeBoC77LEBuMHeHQAP9w6AhlIGgGUEgSwAKQJnamsoADX1cQHIrQJGAVBBEThCZmMASBGYLHUTBPIAKOqIAcBLcQD4PA+A0WNhrmVQdLybQt69AQDShDuDI7qDaYdwvM5goTv4VkNCyJ35DJJLv/5LcunXBcmlX/90QvEVhG/s2JGH5/eJyfy+7NxSlJ+bi3LzjqLcXArAw9k56NDRHHQoJ1T5O4wOH6URlrDuDgDKOQjkVALDALTbSOx2O7K7nMhstSGTy4zUQRUydVSjtvb9SC/N+KVFkfbcM/4MeLM1BS4HHoE/BvrBu4GHSEIADOEv1hgYLgBfC8TfAn7e2w+e8fRltoD7M1vA8QHY6cXbvwnQ6qUA9HviANAz/IYAiPEXCcAaZxZUO6fBaQaAJ50z4YTzUTjmogAsd86FUsc8HgDzHRh/iyHbQQF4xLEKDjnWwAHHGtjvWEfwh7PLsYFkh30j7LBthm32rXErgOstj8Nay0ESHgAtLAKXmAoIAhcZi2CBsYQC0FDaAwDrYJqmliCQBWALQeAkNVsFnKBUwTilGsYptDBaoSMI5AFQ5mAA6OYA0EcAOETUBonN7ZAo6uIA8EIEANlt4JsLwJ5uCrmeOYFcAHaHwHgjYm79m6kQ4RncQa+Bv44qv1o0vuhPP5pc+AbCmZd/Du3NxTd25ISD8UcAyASDLwRAXPETACis7+WKN1Wwuv4kqq0vRY11uaihcT86LduCik9P/JlBmfLs094R8Lv2FLgcHAzv+PuQ2X94i/ht3wPwTutDcNl3P/kcI/D3AYpACsBH4Hf+R+C1wCO8LmCc2E0g3QOw0xsfgF7PcPB4h4PLm0pi96aA3TMCrJ6RYHWPumEA1rqmQrUzC067pkGVawaDv5lwzPUoVLrmEPzhlDnnQ5lzIVsBdC6BPNcyOOpcDtnOlZDtXA2HnWujALjHuZFkp2MT7HRsCQNws40CEJ8DXG/dC+utFIDrrIeiAMitArIALAgjEFcC5xrKYa7+eNQW8HTdGZiuq4FpmmrI0tZClqYepmgbIVPdBJM0LWEATlBRAI5XaQgAxyj1MEoRD4DeKADiCuBQcWcYgINFFwkAB7RcggFRAIx1OwiLQC4GY24DczB4YzeFRDaFxL4tJD4CY2wLR9wX/H0axCvkep5BrE7y3leSb/3r5+teJfSz4O1dMr+vDGjKv/loePlXRUkVX/14fOmf0IoCD9PV24R25Z5BCPVyfh+enSssYQmLXRiEDdXVJHU1teh0/WlUJqlEx+QHUJNkMaqtSv6ZQZH+zEXfZHg5mAq/b0uAP3QOIdD7fQAjEOOPhlQBAw/B6/4+TPXvxgF4zjeYwV8CtMcAoBdXAL29B6DWPZrgLxKAMs8EELtZADa5JkGDOxPq3VlQ454Kp11ZUOWmAKT4mwmV7p4BmOteBtkuCsDDrtVwyL0a9jtXwX7HGtjrXBcDgJtgm51WATfbtoURuN66O4zAddbHOQA8DCvNRzgAzIUl5jyCwGsD4BnI0lIATtFiANbDJG0DA0AxTFRJYIJKBuOVchivolXAMUotjFLoOACkCIwNwAAMJQhkACg6B4NF56MBGFEFZAF4/Qi8eTeFxEYgH4DRCIx5NvAabgq59W/gQm7tM/g+AJDzs5R9AymlBH//GFn6+bGMkvf+a0rJG2hy6RukqxePcqEdvUdIhCUsYd3AwvDDqa2tRdV11aiq4SSqqi9DdQ35qLbpEJL5ytEx6eL7NOoxv3kqOBpe6RgBb7QNJtu9b+MzgIFfwVv+BwgIcV73Pwi/C/Qh2784NwOA7T4KwFYvBaDfwwegy0cB6PRRANq8FIBmDwWgIQKAKg8FoMLNB6DI3T0AT7r5ACx3z4Ey11wa53wocbEAzHOxADzswgBcGQeAFIE7HRviAnCDfQ8PgLgKuIZBYBiAzDZwGICmPIJAHgANlXwA6k/DdF1VNwBsiglAXAXEAExXsVXAMADltAqYLHMSBPIB2A5DxGfDAMRVQAzA/i1PQb/mJ6Ff89PQr+lZ6Nf0PJN4CGQxGDknkJvobeG3eWG3hENNIe/zEr4pJN6g6NANITwIfsJLfAD2bk7grX8DFyIA8DsAbDmTUvhbSikUpZTCf2WUfIBW5bMVv515Z9Dho6UoNzuXjHbBEZawhHUDC8MvlOrqahLydU09OlFfjRrcKtTgqkJG127UUJ/ex6Ad8/qFwAT4TVsKvOp7BF4P9IM38PYvEwrAB+G1YJ9eAzCyCeQJ70CCPy4A23wUgAEGgF7vUBKPN4kAEOMPx+ZLITF7U8HsGQkGTxoBIMYfF4AUf+MI/sIA9GRAkzuDBaAnE2rcUzgAnAbH3NNZAHoehTLXbALAEhcG4HwodC6AAhcF4FHPEjjsXgqH3cvhkDsGAJ3rGACujwPAbeFmkFAVcB2DQArAg7DScoggkAdAcx4LQBOtAs41ljIApJ3AoTOAFIBVkKU7TRA4RVfLA+BEdTMB4HilFMYppDBOqYwNQDlFYKqcIjAMQImHIHCoJMAAkFYBBzMIHNByAfqLLjEAjEZg/EpgaGD0t4fA3lwXd10AvIY5gQIAv+8AvdsrgOG/95NR5Vdxxe8nWUVvIZwFhZfQrtw6Zo4frfgdPZobBiCuBApLWMK6gYWhhxOuBDJf41TX1iKVRY9UNjkyWhuQ3nESST15qLx55kiTYcyVp4Kj4MXAUHi9fQg59/d7fz+yBfxb//3wcvB+eDnwILzq73NNALzoG3SdAKSx+ZJjAlDvwRkDGvdoBoBjGABSBIrd4wkAmz2hCuAkAsBaTxaccU+FKncWAeBxzwwGgDMJAEs9c6CEAHAuFLtZAOa6FxEAHvEsIwA86FoBBxwrCAD3OikA97huAIDWA9cBwPIIAJ7qNQBxBRCfA8QADG0BYwCmK40EgGkKSwQA7QSBfAC2dgPAixEApAiMvR3MYjD2jSGRN4fEbhAJATD6thDOucCIuYBsIgAY7zxgVGPIFzTHGAD2cHfwrX8DFyIA8NsDYGo5/DO1HCpTy7/+WUbJn0jFb3uumATjD1f8QkOcaXKZUBQKS1jCuoEVqv7FAiD+vtFoDAdjUORRIKnvFDK7tqPmxvRxBs2oP51vzYBft6XBq/4EeM0/gFT+CACD9xMA4k7g3gDwom8AXOAAsMs/mG7/xgGgxzcUXD4MwKTuAehJIwDUetNB5cEAHMdflfoAACAASURBVM0AcAwBoMQ7DkQeFoANngyo90yCWm8mVHuz4LR3Cpz0sACs9EyHcg8HgO7ZUOymACxwLYA894KYANzvWgZ7XStgr2sV7HGtiQHADbDNsZEgcLN9CweAO2C9bSdB4DobRWBMAFqOwhJzDgtAUx4sMFEEzjUWUwAacCfwMZhlOBEfgLpamKSt4wBQBBPUFIHjVHKCwDEqNaSr2CpgGlMFjAagiyBwqMRHAJgoboNEUQcMFnfBANFZ6C96AvqLLjAAjEZg7KYQNrzbQuqvr0s4fFvINSEwBgC7qQRGIVAAoIDL73cF8OtR5Z+ZJpa+/3BW6WWEz/ktKHyCqfixW7wh8GXnHI3IERJhCUtY17NwV9Q9iFT5amtxEwhtBCFbwbUsAk0GM4neaEY6kxlprQakMcuQ1daEjPbjSN1agE4oZ681mcZ+8mzbWHgpMAxeDQyAV4N9wxXAawXgBV8CD4BtfgrAgI8C0OvlA9DppwC0+ykALQwAjV4KQL2XD0CllwJQ5uEDsJkBYKN3Eg+AZ3xZcMo7FY57mAqgdwYBYGkIgN45BICFHhaARz2L4IiXAvAQAeDS2ABkELjT+VgcAG6LA8B9BIEsAI9EADAnGoDG0mgA6k/GB6C2oRcApAhMY6qAqXJaBUyWWwkCeQCUBGICsJ/4AvQVnYe+LRehb8uT0Lf5aRIKwBgIvIYGEf628Ju88AHIQSAPg5HNIWwVkAIwlFhVwL93WwXszZzAW/8GLkSoAN50AAZSKr5Omlh2Ba0s9KIteeLwXb0Hc4qjKn7ZObnoME5u6HsUfwIAhSWsGwVgHT7zxw0GYG1MAOKo1WpkxRDUapHGokaSgASp2k8hZ2A3EjeOKmh1ZvzrqbYx8HzbMHgpOAh+E3gEXvbThAAYGgSNQ2YA+vvz8PeEP4Hgr7NbACYyABxKAIjxh2PxJ5MYfcPB6EsFvXcEASDGn9qXTvCHw8Wf2DsBmr0UgBh/Dd5MqPVOguoYAMT4q/DOgFIvBSDGX5FvDhR65kK+Zz6t/nkiAOhZGgbgficFYCQCYwLQviU2AG17OQB8nCCQD8CcbgBYRhA4y0ARSACoPwlZulMEgVN01REAbCQInKCmCBynkhIEjlEpIZ1TBUxT0ipgKo7cwgJQ6ogAYJAgcJCoHfq3dEB/8VnoJ36CD8CbhMDYZwM5AGS6hBPPfJsIjD0fkA/A+DeGCAD8vgP07qkAjir/7JWJZVdm44pfVumbaEHxebQzt44AL3xXL1Pho+f9Qt+jAKTfFwAoLGHdHusehFpkzUgkr0Vy2TEkV2ajRuNj6Ix8ot7jGv/Nk60j4blAIrzo70+GQL/SOhBe9PaF5/x94dnAI/B04BG4FOgHFwP94XxwIJwPDI4CYKc/MbwFHEagLwF8/gTw+oewAAzQWPzDwgA0+CkAtREAlPsoADH+JPj8HwYgwR8XgJk9ArDEywIw3zsX8rzzCf5CAGS3gCkADziXwAH3CjgQAqBjdRQAtzvpOcAtjs1hAG66iQCcYyznAXAGg8Bp+qoIANYQBE7QNMIEDgDHq2kVcLRSDqMVqp4BKHfCUCkF4BApBeBgSRsMFnfAQAl/G5jbDBJCIHsekNsdzO8QZreBr+HKuNpIAHIRyGKQf3Uc0yBy+s8kobuCk06GEg+C1zokOkZ3ZCi3HCRChGcQDVPubEvueKMRxwFSK+HdYeVfbFmjgR8+Vh5Ee0sVaG+pDB0obUToHmGOn7CEdcfOEZSLZEwkSCSrR7WGUlRt2InqRTN/bNROutjhnfDNk62j4NlgErzUlshW/gKPwJPBmwXAoTwAmgPJYPBTAGp9I0jUvjQeACVeCkCMPy4AG3zXBkCMv/gApFXAKAC6cRVwBexxrAxXAQkAnY/BdietAlIAboJNDALX27bzEBgbgEdgiTmbA8AcDgALCQJZAFIEUgAeh2kGWgWcwiCQBWA9D4HjmSrgaCWOPFwFTFPqCAJTFTgmSJabOQB0wRCpB4ZIfTBY4ofBkiAMlLTBQEkHDBB1xjgLyACwJbIpJHpEzMD66wdgQs2bkFh9mSYOAhO6QWBoTiALwG8BgQIABXDdluiONcyZD8BR5Vc/ySj5U9HMY+/8f9Mq30aLyi6iA6XNqKioCBUVFZAIS1jCuoOXTCwJRyIRoRZ5PRIpTiGJvBRJFXvRqZbpwxWmSVfaWycArgg+60ug9wCHK4D9SS4GBsJFAsBB8IR/ELsFHEgkwfgL+oeE8XfTAOhjt4D5AKRbwBh/3w0A14YBiKuAW5wUgRiAGxzbYKN1O2y0cgBo2wOrbPs4ADzEB6A5mwLQTKuALABpFTAMQCNFIAYgrgKGAag7QxAYAuB4TTOM1/ABOErVAwDlVgLAJJn7GgF4MbwdTAAY0RnMHRFDARhKBALrX71JAIwzJqYXcwL5dwd/QnPiM5KYN4VEzgkUqn+3AXaExHsGqeW4kzcKgV+mVEDNxNL3f7a2NIB2l8jRgUoVerysCeUXnUAlhSWopLCIRFjCEtYdvCQSCS9isRjJZDIkFrcgkeI0ktiLkNy1CzU2T1lt0U24ei4wDi4EkuFSMAGeDAwKA/CSfyBJPABi/OGw+IsGoDWQBOYAF4DDQetLCQNQ5U8DuW8UB4BjCABbfOOg0ccCsM43CaqZnPFlQpU/C074psIxbxZU+KaxAPTNhCLfoywAfXMh1zMvBgAXw0H34usGIK4AYgCyFcDdHADuJwjkAzCbD0BzHsw15RMEzjFRBM4ylhEExgbgaRaA2tooAI5RY/z1FoC0CjhERquAg6VegsCBUorAAeL26wZg9wikEBxU10sEXg8AT7/fPQB7QGDcm0I4t4UI+BDwdWcAECDxxJfwQN3fO/vW/mVo+rF30YKiJ9HjxSJUVlJCqn3FJYWoqKgkDEBcCRSWsIR1By9c9YsdCZJIm5HaJEJqSz0ymE4jszUbNcgyGi3eMV+3t6XDE4GhBIHnXX1oE4h/AMEfzjnfQAaB1w5AIwNAXYACUO3nA1DmpwAU+/gAbPDxAXjGzwXglAgATo8A4Gw+AL0LogBIqoBunBWwz70K9rkx/mj4ANwQBuDmCABi/K21UwDibeBvC4CT9dUwWV8LE3V1MEHXBBO0LTBBK4YxahwppKvlkK5WXgMAHQSBLAApAnsNwDhbwbEbQnoaERMaEv06AWD0dXGca+PCAIzeCuYBMM69wT1tBfduUPStf6MXIjyD7reC4cpDtZ+sHfIO3PO/jJfQ9CoLafDIKTyOCgsLw8EApKHbwMISlrDu4EUrfyz8RFIctiKo1etJ9Do90poakc5zGJ1Wzvxxgy7jeVfbNGgPpMF5fxKcDySSM4BnA4NIuvwUgN1VAN2BIQz+hhL8cQGI8Yej9mMApoDKP4IDwFEg9qUTALbwADge6vwZPABW+TPhVCATjvs5APRNiwDgoxEAnEcB6F0AR7yLWADiKiAB4FLYxyBwD9MNTAG4Fra7HoNtjvUEgJvtG8LnADfatpJzgOvsO7sB4CFYYjnMAtCcDQvMFIFzTbkEgSwASwgCZxgpAqcZ6DnAKfpTMQDYEEbgGDWOGNI1fASmqTQEgakKHAMky40EgUkMAlkAugkC+QDspN3ALeegX8t5DgA5cwHjVALjdwX3PCcQVwUTaq4XgTG2gWNUAnsNwDgIZM8ECgARnsHt+Br4+l8jKz6rySi78p/JZ15G/2HoRP+t06GVJ06ggoICVFhYTJJfVEhSUFzEpIBEWMIS1h282PN/NBh/FIAyEi4A9QYFMthESOE5jaqChShHv3RKizXzY19bBnQER8LZ4FAGgAN41b/WIAVgIDCEU/3rGYDaYC8A6KcIbPSNiQBgRhQAK3zfIgBdqyMAuJ4AcJMjHgB3wSrbHhaA1scjAHiYASBFIAtAWgXsGYAUgSEAjtM3wTgdH4CjNNcAQLmNIDAMQBlF4ABxazQAW86Hx8LwroiLUQVkx8PExmDvAchBIA+Df4hAYHQVsOcRMT0MiY7bIMI0hlzD2A8hwjP4TrZ+K0nakiu/TBhf8S5aUeRF64tb0OKTtWj5yWPoQFE+ysvJJlW//MJilFdUjPKKC8OVPwGAwhLWXbBkYhlJPACSyl8IgMzncpsWnfC1oNPtVUjRegBVSydWG92ZX3tbx0FrazJ0BBOYDuDBYQAGAgkEgCz+GAAGEuMAMCkMQIq/EaAIpBH8sQBMJwBsDoyBBj8LwNoAxl8GVPUIwOlQxCCQAnA25HrmRAPQsxAOuhf2CoDbHOsIADc7HoNNtvVxALgTVtkZAFr3EgQut+I8DkssBwkCKQAPXx8A9ac4AKwJVwCjAchWAdNUKoLAVKWGIDBZoScITFJQBLIAdBIE8gAobod+og7oJ+oKI5AFYAwEcjDInxEYjUD2XGB3ALx+BIYBGAOBoUpg9wiM3yXMdgh3f12cEOEZfFevgeGVAGmVn785sfyD2Vnlb6HJ5W+ieSXn0Y6CWnQ0N4fM6ssrzCP4y889ygMgrgAKABSWsL7vC8+P+d8IoX9HSKw5gSSGXFQpX/DjasOkV21tkyDQPhK62oZBu38AdLYmgs8zAHz+QSShyl8oYQAGKQItwSQCQH0wGbTBJFAFUsL4kwfTQB5IJ5EERoMoMJoHwDp/9wCM3gLmANA3KwKAFIFHvAsiALiYA8AVsMe9Ana5VxEAbidZC9tcj9EKoHNjGIDr7TEAaN8Fy227YbltLwHgMhsF4GIGgAssNweAE7XsFvA4nRjGaiQEgGlqMakCjtJQAI5gADhcSQGYpIgGYILcxQNgf0kr9Je0Q39xJ/STnIW+onOcodAhAEZCkAUhBWB8CMbrDg51CPcOgG/HhSAeFD20KhR8JrCbxhAOApOP08SvAn4WMSKm+xtDhNyezyByPl68eXm3LtzuXeZ75eyg6KRygGFlAKnHCf4+Sz4GORMqPvz3lcU+tK1QgtAPH0boh/f2PM8PXzwgLGEJS1jcJZVKkURdh2qN+ajesh2dlkxforFk/hNXAwOtKdDWNpxU/nAFkAIwEn80GIAYf6bW4QR/utZhcQEoDaYT/OFg/HEBiPEXBmCARSBpAvFlhquAfADOZAA4C3K9jxIEUgDOiwDgQgaAi2GfZykPgBR/q2Gbey3JZtc62OzCFUC6DbzevpkgcJ19OwEg2QIOA3A3LLPthWW2/bDYinMQFlgOcgCYDXPNRwkC55gpAmeZiggCZ5goAqcZKgkCp+hPRAOQcw4QVwHHakWQrhFzACiHNJUcRqhVkKpUwXCVBpIV2l4CMEAQ2E/SzgNgHxEDQGZLmA9BFoP9m+IhkAvA3iCwNwCMRiAfgD0jMFQJ7A0Ae4fAWw0IIXczAJMrABJOfA0P1v3zbL+6/xmYfvwDNL/kGbS7oBHl5uYKb2bCEpawrn8pFAokV8mRRN2AWpQnkExdgWT6A6hWN0OpDkz+xtk6FvxtI8DfOpTZAh4Cbv8wcAWGMef/ogFobB1OAKhrTQZVIJkB4AgCQClJOoiCo6AleA0A9E/mA9A3lQLQTxGY75sRAcA5sQHoWdgDAFfzALjBuQE2OPkAxFXANbYdDAB3dg9ABoHdAXC6iQIwy0gBONlwimSS4XSPAAw1g2AA4iogBiCuAmIA0ipgNAATZJ44AOzkAJBuA4cBGBOCPc8JjH1dHE14TmCcW0IGxYTgH3gI5F8Z19OWcLzGkDhnA7udESiMibkTcvsDMPRz8q+GCwOw9Ov/ebj+8y3J78I9/9v4LJpVZUV7CptQdn45ys3PF976hCUsYV3/kskUSCqVI7lEipRy/LkUiVRVqMG0F5XLZgxusE79kz4wBZxto8EdTCH4w8H4CwHQGkwES+tQMLUmEfxFAlARTAF5EANwBAPANArA1lHQHEiHxsAYqGNSGxgP1Rh+AS4AJ0UAMIsB4FQKQP90PgC9jzIAnANHfPPgsGc+HHTPjwagZynscS+DXZ4VsN298hoAuJ0AEGdltwA82GsAZhkpACcbMABPwCQjA0D9GXoOUM82g4zVNkO6pgXSNC29ACCtAg6RWwgCE+QUgQNltArYX+ojCOwnpQjsK+oiCOwjPhcbgdcAwJ4Q2NOg6NBVcXEBWP2H7gF4owgUAHjLYfR9BuDIiqumcSXv/iKt4XX0Y8tFdJ/BhNacOIkK8vJRfn6+AEBhCUtYN7YUMhnBn0KqoBiUy5BU0Yyk6lOo0VCEav25qEC/qFAamPWVqXUsOFtTyPavrzUJ7L6EKADi7d/QFrC6NYkHQGlrNAAbgyEApkMtD4Dj4VQwGoCV/qkk5f5pUBqYFgVAfA4QJ8c3l4QPwPndA9C9MiYA198EAM635NwUAI7VNhIAjsFVQJ2ENIJwt4DxOcAUtY6eA1QZOAA0EQSyAHQSBA6Q+fkAFHcQBBIAinE1MJTz/FzrnMAbBWCc84BhAPIQeOVbACCnCigMir7lYLpbAMj+HDRJ5d/gvJVSAdMzyq6g1cUetKG0GS2pqkMrTp1Ej5eWoML8AlSQX4TyCoRBzsISlrBuYOGKH0ZgKASAchmSySWoWd2ITjvr0GlfGSqTLf5RnS7rRUMwEyxt6eDqSANb6zAGf4lg4gAQV/40bcNA04bxFw1AcWsawV8YgMH0MACrg+NJKADxxwwOACdBZWBKfAD6WQR2C0DPQtjnWdwNAFfDZtcagsANzsdgvWsDrLdvJAhcxyCQD8CdsMxOEbgYx7ofFlgP8LaB51toFXCOmSJwlqkAZpiKYLq5BKabyiDLVE4QONlwjAWg8RRM1FcRBE7QUwSO1dUTBI7RNUO6TgSjtPgcoBRG4KjlkKJRQYpaA8n4HKBKB0lKWgVkAUirgCwAaRWwn5QisK+4jSCwj7irFwC8hjmB17kNHP9MYAwAxqoE3uA2MH8+oDAo+laD6W4DILehaFT51a/Hl77XMrnkrf8/s/RttKD4ItpdUI9y8o+i3IJcUvHDs/1CySsU5vgJS1jCukEA4qvjQpVA/Dn9WoKkChESG6RIYhEjlbkGyaz5qEQxY2ejb+qXqrbxoG9LBXP7sF4CMIUAUNw2ggHgyGsE4MQIAGYxAKTbwPm+aXwA+mfHAeD87gHoWRkTgOscG2GdgwXgWts2BoDbewDgwTAAcRUwFgCnmikAM00UgJOMGIAnIONmAlBhIAgMA1BuJwjEAMRVwNgApNvB/ERXAUman2bybDjsVvCLNI0v8RICYOQNIexNIaHGkHiDov/Q45xAktN/JolEYLgruDsMRswGTDr+RTjCTSG3Gk93AwDDeSmj7P1Ryws9aFO+GG0pkKId+fXoUH4Fysmj+CMAzC9iAJhHIixhCUtY171ItY8Bn7ilmQdAXAVUapRIo9MijUaD5MZG1OjMRcctq/+zzDz1VXHnLNC2jwdT20gwtyUTBOrJ2T+MPxpFcBjIW5P5AGwbwQBwJDQG03oEIN4KPh6YCMf8GVAZmAwVwSlQGsAAzGIAODUCgLMoAP2z4YhvDhz2zoWDnrkcAM6HfV6KwD2eJbDLswy2u5fHAOAa2OBaC+tdj8E653oeAgkA7dv4ALTvhsU2nL2wwLqPVwWkAMyGOUwVcJYpD2aYC2C6uQimWkogy1QKmaZymGysgElGFoET9SejAairhzG6RkjXN8MobQtB4AgNjhRSNBSByWoVQWCSUksQOFRu4FUBB8sYAMppFbCfjFYB+0qCBIF9JB09A5CLwBgA7AmB7KDo2Ahkr4rrBQJjApAzLDpcCfxz/BmB3SIwBgDJVvBthQghdxgAU8vhanrZ1SMTS9//N3x3L76+Dc/yO5qbR5KTl08iAFBYwhLWd77OVFfRnDmDTtecRCfqi1Gx+Ajar9uJ9htXbDrjmf0vZXAimNvTCAB1wURQB4aAtj0JlIFEULYlMQBkmkAYBLa0phIANjFVwPrgmDgApGcBjwcmQGVwIgeAmRwATofCwHTID8zkAJAi8KifVgEPeefCIe+1AxBXATe6OWcBnVtgnXMbrHVshdXO7bDKvgNWOHbBcscekiX2vbDEvh8W2vbDAvtBmG/FYbaArTg58KglFx415xMAhqqA04ylpAo4xVDBbAOHEHgqCoBjtHWQrq2DUbqGHgEYagbBABzKAHBIBAAfkVMAPiwLQB9JEPpIWACGzgKGw3QIhxK7CshikA6L7ummkO4AyE08CEYikIUgHRMTGg0TPSKGAjA+BJOPM9vAUVvBzHYw0w3MhtPByTnUL+T7+gxCY17o64G5wQOSKr6CoSVf/Cal7JvhGSXvoRUFHrQz7/+xd+fxVV3XvcA3ZGrTNrUTDxiDmMw8zwhkwMyDACGB0MAgBAjQgEDzPFzdq3lGSMwgNM93vlfCrp/rOHlpmqZpX9qXpmmaJsRpkr60cRMntfF6n7P3OfdM+5x7JRRLoP37fNYnTl7+4OkFve9n7bPWqkPJ2YUEgJnZuFhYWFjGBQCFKr5WgVLuFaErrcko+07on1S07P528+B2aBlaD11vr8NPv9wASLNrCdznAUjWwHgB4OB6qB30pwAwwAPA4kEOgG9oAHC3pwsoB+AB3wEo+wbwhHoamAOgNQaOW4YDwBQ42JeGARiIAZgJ+/qyYU9PjgeBu7oLMQK3dxoVCCTPwCIA6+UAbG/CCFzdytUtWMkjcHnLfYLA5hZtAN4bgLn3LDDnvg1m3rPDzLtOmHHHhRHod+ch+NEQSAUgHYHyRdFal0JoV0JGA4FSAGojcFmFBgJlAPQFgVIIMgCOPbzGS0n2RZrIf7a66IOPtpa8b9hf+ehz2w3/jA7nfxXjLzMzncdfJsrOIMXCwsIyrgBYWVeFiq+VoeLGItTYXIZu9uQgY0vQuRrbzo9uv7kFWv9iE7QOrSYTwA9XyDqAtx4uh5tvrsQAbHpIANg0tAEahtbD1SF/EYCDG6FycKOPANwpB6Brz6cGwHCzNgCD+1PgcH+aCoBccQDc15urDcCuYlkX8HW+C8gBkKv17XWwrv2qVwAua27RfgL2GYBva3YDZ9EQyBcGoGxRtPp2MHVJtOJcnOaQCA2BFABSp4Or39e8FiKU9pk46bk45WSwvCM49gBhNS5+Bib83AvLCz/+wRbjo4DwAhuKzmxEMbk3MP5SsoTOHw/AzHRcLCwsLOMKgLj4/7y5uRldf1CH6vqzUc6DI39W0LX3u01v7od7b27F4Lv/cJXkG8CVPACXQ9NDKQDXKQDorwFAEYEEgNugwL1dB4D7INMdKAHgQUjiSgCgIxgu2UMg3n4ULtpDMQJpT8DCMIjwDCwC8DyEmy9gBIbxCCQATITg/kRZF5AAMA0C+zN8AKBRDcBOrgtYAxs7ahUAvOYDANvEIZD7XPXCvHt93gF4R/oUTEegcipYDkD+UogmAn27FDLsPYE+AnCRFwD6gkD6ehgRgWMOD1bjBX+frDf+/sZ208//JLjgPRSfW4+ne7mun9D5kwJQ+M9ZWFhYxiwq+HmqDhfeHXj/NrrZUo9qu0tRoSMfxbWFZle5Dj6+89ZWuOteBc1DKzAAbw+uwPi7/tZyuPFwhawLqARg9VAAVA1x+OMgGABlg5tkXcCiwa1QOCgF4E45AN175AB0BmIAJjuDINkRDElOro5AouMIJDhCIdZxDGLt4SIAbZEyBKoBeI4OQDMZBAkxc5PAlzEAuS6grwAk3wF6AWBHLfh31ML6znqfAbiE6wI2d8HC5k6MwHn3ejAC594bkAFQ+A5QBkChZBB8e1QAqF4P811PyQAoQ+D3fAAgfyqOuiPwEQWAEgRKICjeDVY8BauehNmlkDGH1jgsruu3ygQ/WlkM27YUvY+O57lQQk4DSskxoMzsLBX8hH+fkcW+AWRhYRnj1FXX4NIDoLBA+lrrTVTQfxUV2k0o/daROWXte37a6NgKd9/chPf/3X1rNXn+fbhMA4DroZYrFQA3KgC4hQ7AwZ2Q49qlBqBrvxyAziB9ANojCAA9CFQC8KwGAOM9AOSegT0AHEiBg/0pHgDu70uHfX2ZsKc3y/Md4K7ufIxAbhrYA0DJRLAIwGo1ANubYHVbE0bgyjaCwOWtdzEClz1olgCwQwbAuff7YM59DoAWmHnPKusC+t0ZVAOQgkDPZPCIAPgkCPRyKcQXAKqegX/xBACkI5DdC564tc70IWwxPureUfSD53cU/QBxnT8Of1lZ3IRvlgeAYtdPxJ9QLCwsLGMW4fm3rpqAT3j6raupwjDkVsYIq2Ru3b+N6h9cR3Wt9eh6WzVq7MpCeS3779U83PPJzbe34qGPWw9Xws2hFRQArh05AN3bFQDc9akCMMwiApBbBXO0TwRgELcKZiAFDg2k+QxArgv4RhdB4NZugsDXOyswAgkAq8G/sxrWd9Z6vgPUAuCSlmZY8oAAcNEDAsAFzfoA5LqAIgClpcagbDWMB4HikujXmmgI1BgM0bgWoj0gQhsIoU0Eq6eDyfOwelH0oqr/8JRnT6DerWAv3UAGwAlbP99S9P6hiHwHOp97B13MvYUScupRepYBZWVlYQRiCGZmo+yMbPy9H3kKFvHHgZCFhYVlfAKwpkoGQPzPd2/hf7199w5qfFCL6iwZKKvl4AbTwK7/vvrmdjzwQXYAroLrg9wwiByA9YNrMQKrh/x9AOBWKHC/QQGgRgfQGQjJzoMSAAZDoiMYEpxHINZxFCPwgp18B3jOFi57BvbsA7RFSwB4DsItMRBmERF4bCAOjvbH4e8AD/ddgqB+0gU8xHcB9/elYgDu6U2D3T3pHgTu6s7FCNzBI5AA0CgCsKsMI3BjRyUFgNdgdRtXTbCyjSBweettjEACwBZY1NKGAbgAA7AT5t7nAdhMEDj7npnaBZQDUP0kLNwOHn0EKvYEUhAo3xNIQSAVgno7AuUIpF8MoVwK0UEgA+CE7Py9vcX4aCp3ySMed/w48GWhnKwMzz8LAMT4owBQ6AiysLCwPJ2ZjFDD3XJU2ZaDIjbbawAAIABJREFUEu5FfCa179BXq4d2Q+PQRrg+uBpuDoqrYLgn4AYFAKsl3wCWDwVA6dBmCQA36wNQOgRCA6ArSAOAoRiBAgDP2CPhjI0CQOsZHoBnZQg8ar4IR81xcKQ/DoIHEuAwB8GBKxiAXBcwcCAFAvvTYB9GYAbs7s2C3b0EgDt6CAC39RTBG90G2NpNALi5mwBwU5c2ANe0N8Ga9hsUAN7DCPQA8EE7BuC8B90wr7kXI5D7DpAD4Oy7Vph91453AorDIEI99EwG+91+G5ccgN7OxUmmgmUY9AWA9ClhnxdFUwFIroSQZ2D1fkDqomjdSyHKiyG+7gl87KXGGjTj/c83Nv/3F/7fc4XpY1z8fr+PVxY/Lohqhc+cLhlCycYbCE36o7H+LczCwsIyNrlxowlV365Gue35KLs/EV1u2Z9a6gp8zHUDr7rXyqaApQAUECgD4MMAKB56fRQAeJAA0BUEic4gSHAGQ6wzBCOQADAUztmPYQRiANoj4bTtOJy2nYRTNoJADEDrGR6AZyHMShBIAHgRgrkaiIPDZoLAQ2aCQAzAgRTY159KuoB9BIE7erNhR08ubOvNh209hbAVA9AAm3uMsLm7GDZ1l8CmrjLY2FmOEegBYAeZBl7TQRC4kqu2G7C89SZG4JKWOxiBi1pIF3DBg1aMwHkPCAJxJ1ALgJ5vAb0B0HcEygAoQ6AvABwGAqXdQJ8BqEag1n5AbQR+6AWBDIDPCgDxvxrJM/8K08c/Xmf6zeadZb9Ax0q+gZKKruOTbSwsLCwTGoBXb9Sjq/evopLWcpTWV4ii7h2fk2ML+WXtX+yBhocB0PhQCsD1FABulANw6HUKALdrPAHv4wG4jwDQRRCY5DpIB6DjiAKA4RoAPE0AaI2WA9ByfnQA2FMwygDkuoAtsKDlAUagzwC8q0AgBiAp7hmYuxusRqCIwRnUTqCkI6izJJoAUGdNjM56GG5H4Pw67/eCVethJCfjvK2IWVKheBLW2hNI2Q/IOoBPR2mDnfyfr+H+O4b/sawqga/sqvg5OmV0oRTTLZRjKEO5Bflj/euXhYWFZezS2NSAEdh0/RqquHkV5XQ2odTuUpTffwllth1w1QwFQt2bW6FuaBPUPfT34E8YBqnSA+DQZihwb8EIlAOQHwJx7+EBuJcH4D4CQFcgHYDOEDkA7cc0ABjFA/C0HIDWGH0Amq9A4ECSdwD25o8SAG/CktZbGIGLWgkCPQBsIV1A4VvA2ff6ZQicccchAvAJEKi8GEIHoN6lkCcBoLdvAvUB6B2B9MEQbQCqO4Hj/4l1vP/5Pm0AirXO9OHvNht+mpjuhEn7yn6Mwkr/CqUU3UCFhYUoP78QFRYWsf+vh4WFZeKmsbER3bhxA0Ow4cY1VH27CVXevYpq7pahitZMlPogJDLfHvhRxZvboYoD4Jv+UP/mBozBatd6CQA3KgAYgAEodAFHC4AXnUfhovMYxDjCcH1aANzZlwM7e/NGDYAr2m/hWtp2WwbAha0tMgDOae6COc09MPt+L8y83w8z75NhkBl3beB318EXBYHKPYE+LooWn4LJczB3K5jUt/j6tqfUT8LidDBeEaPaDUi5FKL8HlCBQb0l0aMGQM0u4OOnAFjj/c/36dYy0yewzASwwgg/3Gz42YYo01sooagVJRQ9QMmG6yi3oBQZ8guQId+ACgoMY/3rl4WFhWXs0tTUhIuDoPDPQtXdqUAV/Xko/s7hmZnm/b80vbkHyh9uhcqhDVDjXocRWDW4QQLAjVA8tEkHgNshx71jGAA8CInOg5DgCoJY52EJAI9CjCNUAsBwOG2LwAg8xSNQBkBrNIRZz4oAtJyHYDNXF+GwmSDwkDlRAsAk2NefDHv6UmB3H0Hgzj6CwG29uSIAewpgcw9B4KZuE0bgxs5SjED/zkpY31UN6zpqMALXdFyF1e1XYWX7NYzAFe03RAC23pIAkHQB57UQBM550IEBOFMBQD8MQO8IfDIAki6gFgAxAhXfBCp3BaoRSLkUooNA9Y7A4QBQ+CZQ+xlY+14wA+BYY24kEOYAuNr4u57Nhp89F5T/NZRkuI3yCjnsFXhKACBXLCwsLBM2N683oevXGtGNpiZ0o/EGLgzA69dQw806dPV+JaruNaJcZzKK7wt5x/jWYah8awfUvLUZdwM5DHIlB+AmGQC5fYD5g28oAEgQmOneQwDo2sMDkCAwiUegGoAhCgAeowPQdooHYJQCgOdGCYB5owLAZTwCF7WSLuDCtnsYgb4DUB+BstUwlEshws1g+TOwUFIAShEoYlBvR6AAQOV+QFKKRdEqCNJvBwvDIXhARGdHoGdPoHIgRLknUOdKCOsAPnUA/N0K08cxmw0/ReF5ThSfdQ1lF5Zi9OUVikUgyDqALCwsEzw3mq55AHj92nVcAgC5unvvNqq/V48Ke0tQhiWdOyN3OdcZ8rjyLw5AxcOtGH7lD0UAlgz5ewAoDIJwJQOgewcPwF08AHcTALr28ADcpwHAwwoAhvIAPAan7WEYgafsBIEYgLZTCgCe9QLARAgcuCwBYBLsxghUAjBXF4D+XeWwvosDYCWs6+CqBla318CqtlpYySNwBY9AAsCbsKiN6wLekQDwgQSAXTCzuduDwBn3zeB3z6KPQB6C3KqYkSOQB6AOApVDIdRF0boA1EOgPgC9IdCzJ1ALgbq3ggkCx/8T63j/831KP4OSj36yrviDDZsNP0FBBV9F8dlX8f4+gr08GQAJAhkAWVhYWHRTXV2NKmrLkbGhGGXeMqC4tlx0tuPislRL+K+NQ4FQ8jAAKt/yxwgsca2HskF/gkD3RjC5N3sWQmsCcHDXiAF41ukdgJG201QAhlguQoglTgLABDkAB67oAvCN3nx4o7cQAzCgVwSgf1cprJcAcE0nVzWwpqMOVndy+LsKKzoIAJd13IAlraQEAC5ouQsLWu5TATijuRdmNBMATrtvwUVHoASDihUx9EshagAKZ+O8A1BxNk4BQc8wCOVe8MI6oXxZEaMNQOVuQGl51sNorIihnoqTXgoRakKBavyUVidWPvTx+J3lJR9N2Wz6MeIue3DLnVOzDSgrO4P9dmdhYWF5EgAKZbxajdKar6KEZgOKqj32uayuY98xDO4H49AWqHhrC5S6N0DJ0HoRgJIuIAbg0BuQ496mBqB7J6S6dmkCkBsEiXf4AEB7GJyyEwQet53wAYBcB5B0ATkAHhyIh0DzJYxAOQDTYGc/QeC23mwJAPNhc28BBPQaYFNPEUagf1cxrO8WEUgAWAmru2pgdWcdrOCq4yos67wGyzqaYElrkw4AW2HOgzaMwJnNnTDjgYjAafcHKAD0jkDluThhMljoAiqvhXjrAlJvB3sQqA1AEX8aCFR1AUcBgJRuoOa9YOFSCAPgOAXgY1hT/CFsKXq/akfRDz67zfh9dLjwXfGyR3YGAyALCwvLk6SyptIDwMrqWmSsqUYljdWouMGICm8no8S2ow2ZroNgHNyJEVj80B+XaXCj7DvA/MEtCgCSemIAOo7yAAzVBGCk7Yx3AFriFABMhD19l7UB2JfrGwC7yn0EIEHgsAHIPQWrnoMVT8KqbwLFbwOFFTHCc7ByWbT4FEyDoM7JOM+eQMVaGGUpB0T49TCyPYHUM3F6p+JIiZdCFMuipRj0siR6JbULyDqBnx4CxY6f9D9bXvL4g83GR8e4jh93x/di7g0Un8vd8jWinMwclJOZhYuFhYWFZYQR8FdbVYurqqIa3x3mqqyhBBX2ZKGLzSFHc2yHPuIWPhsevg7Gh5ugaEgCwKHNCgBu0wDgLkjmEUgAGAiJXDkPQrzzkASAIRDjPCIC0HFUA4AnIJJHYBjfBSQAPAch1vMSAF6Eg+ZYONAfRwBoviQCsJ90AXf2EwRu68vECMQA7MuFzb15ENBbAJt6CjEC/buNsL5bRCAGYFc5rO4iCFzRyVUdLOskCFzSdg0j0APA1tsYgfNaCQLntLRgBM580A4zHogInHa/DyPQJwBKEKi8HYwBeEv8NlC5KFo+ECJBIF/eASjfDTg8AOo9BWvtB5QCUHopRAuB2pdCuI7gyhItBI798+jEKPXPe53pw+9vNj5aesjwHkrIqcfQE2/4ZvEAJLd8WVhYWFhGGAF+XFVXi8X9e647WHevGhW1ZKP41rAZVywHf2V65wDkuzdC4cONkO/eAIVDAboATHdvxwBMc+/G5RWArsMSAIoIjHYckwHwhP0kHYDWM5oA9HQAzZdgv5k8A2sDMJsKwI09JhkA13brA3BpeyMsbb8Oi3Hd1ATg7JYOmNnS5QHg9Af9cgBSIfjkAJR+D4jr+jc8JQfgN708BSshqMCgDgAX1XDrYPiVMNKqfgRLqh6pz8RJnoWXVUiLgkHpYAhlRQwBIO0pmEFwLAC4uhTs63P/9bnQPCu6mFuHUrONGHqkslTFwsLCwjLCqPEn7whyS6SvNtchQ08uOn7twOcuDxz++5yHhyDv4TYoeEi6fyIAt0COeysFgNshjUcgAeAeSHLvowDwkBcAhsIpB0HgCcdxCgCj5QC0nofDlvMiAM2xEGiOlwAwEXb3ky7gzn6CwG196RiBBIDZsLk3BwL68mBTTz5G4MaeIljfI3YBCQBLYTWPwBWdVRiBy3gELm1vwAgUAUgQOK+VIHBOSzNG4OyWNpjZ0uHpAk5/QLqAfvcG/oAAlCLQFwBSOoGqm8FSAEoQqNEFJAAcDwhkABzbDuDjx+tMH+amvwWTDuS/i+LyG1BmdpYHf5nZXGXxleH5ZxYWFhaWEaa2isOeOAhSXV2JarnC/3ktXhlz/U4Tqr9fi4q7StAVSyaK7j5xN3PoyCd5Q7ugYGgrAeDQ63IADpJ6cgASBEY7CQKlAOS6gL4D8IIcgBaCwD18F1AFwP5MTQBu6BW7gGt7CAK9ArCDINAbAIUuIAdArgtIAKjVCfQFgASB4lSwtDS6gHxhADbx5bULKO0ESjDo2RMorIr5Pql6HoDKgRDK2TjqpRD+WViJQXkJi6P/i68PZKXZBWRPwZ82Av97ZfHjoM3GRyi8wIHxl5qXj7JyM3GXj8Nfek4WLqHzRxDIpoBZWFhYRhwOexz6aADk/j23K/D6reuo6WYTqm1uQtk9teiKOR+dbY2ITnEee5w7tA93A3MxAF+HnMHNGIFyAHL4I5Xs3gVJbgLAy24OgPsgwRUIsa4DPAAJAmOcwRIAHpED0BEGJxwEgZF20gUMs0XxADyNERhiJQg8bDmHEUgAeAECLQSBdACmwLb+VIzAN/q5yoTNfVkQ0JcDm3pzYWNvPmzsLYQNvWIX0DcANogAbCMInNdGEDin5Z4uAMkzsN5TsMMHAIrTwXIADgOBVADqdQK9IFAKQB8QSF0UXf2+TwCUTwer9wSKANTqBI71d3LPdD1aZ/pwDYe/Q4Z3ybNvVgbGHwc8KQBJR5ABkIWFheVTSVllmadKqspQYW0JSmsyoDMPstDJztgNidZjv+OWPWcPvQG5b272dAE5/GUOck/AO6kA5PB3aTAQEtz7cMW69mMEXnQfwAiMcQbJEKgGIEFgpD0SIzDMdhIj8Kj1JEZgCI9AAYCHLBdxBVoIAvdb4qkA3DGQhhH4Bq50DwA39qkBuLbHOwAXd3D4IwBc1HEdFrbfgPntt2B++x2Y134P5koAiL8DbO4Ev/tdMK25xzMIIkwEy+qeDRf9QoiAQSkI6YuiZVPBsh2Bij2B/HSwAMF5XF37lu69YAGAsudgxbm4UQGgEn2KNTHLy38Fy8v+i68PFCVdE0NbFq08H0f208n31LHS+hmsMj3GJUB6VRl3zxdgVQmuv11p/GT6VsNPUGSeFcXl1KHk7EKUkZXpKU8msV/4LCwsLJ9qBPxVVJCqLK9AhTUVKP5mBTrZmoMOt4d/+ZQz6N/T/uIQBh8ZBOEAuBUyh+QdwJTBnZA0qATgHgkA9ysAGARnXcFwxhGCAXjacQROOUJ1AHhSBsBgy2k4bD2DEXjIel4NQMsl2GMm3wHuHEjSAGCGCoDCd4A+AbCzHgNwUWcjrvkdTTC/4wbM67glAWAzzBa6gA/awa+5A6Y1KxGoB0A9BBIAckui/TQBqI1A5WTwcAEo4o+OwCcBoGdP4BMAUD0d/HtSpR/hUiOQAXDkAHwMa8sBlpcCLCiGvqXFv/kid9YtJI+77FGHMjPTUWZmJh2ALCwsLCxjD8CyCoLAi3cMKOidXDTj7vbPhDlCv57+5jHIHtyNl0ILCEx3v4ErbXC7HICD+3CNDIChIwbgAetFrwDkijwBewOgiMDV3WQQZEVXBUbgsi6CQBGADWoAdtzhn4BFAM7QBKC0RARqnolTnIrTvhRCQaAMg+JTsPqbQK1TceJz8Pyr0pICUNIJlOwFlNePvO8J9KyH0doTqL0kWj0YogdAeieQdf+8ft+nelZfWAJ1X8z+9eTFFb9ERwrsGH8pWYUYf2JxGExnv+5ZWFhYxioC/KQA5KqiogKlNZagEHsROvhmDoqxJqGEjuPN2c6jkD24lyyD5gA4uAXSBt+AlKHtuJIGt8sQSAC4B2Lde0UAug9AjOsgBuAZ52Fcpx3BFACGQaQjHCMwzHZcAsCTEGw9pQPAC7CfR+AecwLsHrgEOwcIAncMpKgB2J8FG/uyZQhc32OQALAYVndzVQorusowApd1EQQu7qzFCCQAbID5HdcwAudhBN6BOa0EgbNbCQJntLSCX3MbTHvgGwJ1bwXfdfEA9HYpxDsC6QD8wyNQuxMo7ArURqC4J5CGwA/0EUgFoLoTyADoOwDXFX/w+9cNP4raUvKvaEX5T1BA6V+hmLyrss4fAyALCwvLUwBAY3UZyr9Xi3IeVCLj3XJkaM5D8W2n0i/bQz/JHgqE7KHt+BlYCkCuC4i/AxzcBZcH90DC4C4MwPjBfRDvDoSL7v0yAOIOoPMwRDtD5AB0hlIBGGonAAyxnVYD0HoeDljPjwiAm/pzYFN/HgWARh8BWE8B4C14re0uvNZ2H+a0PYBZba0ws5V0Aae3dMK0lm6Y+qAHpjb3KWoAl/I5eNo9h6zUz8J8J1CJQc+T8DvyUnUBFRDUWxLtWRQtLeVQiBYCpZdCaAgUMaicCpaWfFG09r1gzS5gmfxusLoLyAZEvAPYc9rtl5uNjzaH55vR2dwbKCr/FjqbfxVdyZF3/sTn32xcLCwsLCzjCIAc/oRqaGggdbURVd6oRjkduej8g+OHkiwhH2UMHYCMh7shfWiHAoB8F3BwFyS6JQAc3CcHoOsgnHUFSQAYDKd4BNIBeBwDMNQehQHI1WErQeAh6zkdAMbDToxAAkDyDWA6bO1L4wGYAZt4BApdwPU9BbC21+AFgFWwuLMaI5AAsB7md17FCJzX2cQD8DbMab8Ls9rvw6z2BzCztQWmt7bCtNZ2mNbaCVMfdI0KAqfdHcQ1LAQqdwR67QSqESgHoBqB2p1A6aUQbQSq1sNoInA4ABQRyAD4pF3Ox7DO9Jt/3Gx8NOdw4XsoPrsGd/wysrgSwScHIMFfZiYDIAsLC8u4+AawsrzMA78yvhoa6vlqQHWN9ajyZiUytRSg6Dvhi+Pt4b9JGQyC9Id7IXVolwyBwwEg1wXkAMgVAeARrwA8ao/2DYCWOAkAL6sB2J82OgDsqqUA8AbMaZcD0K9NA4DSkiBQ+U2gvMRn4Wk8AuVDIvoTwgSB7+GSdwG9dQJFDM67JikpABWdQNmOQL582xP4yIcBkf+Q7AT8lWw3oBqBGgBUTQezDqCPAPzfW4w/fiGiwIbPuqVlFqJsGQAJ9IRv/qT440DIwsLCwjIWmYTw6hdfAcjV1atXUcX1CpTVloeO3zj2Snx/6K+ShoIg9c39IgJ5AF7mnn81n4ADJQAMgmi+CygDoDMUIh3HMALD7BESAJ6EozwCg21nKACMgf1WgkACwFjYaSYI3NZ/Bbb1J8PWvhR4vTcVAmQAFL8FXN+bB2t7BQQ+AQA7bmIEzuogCPRra4bprQ9gGo/AqQ86dBGoD0Dx20ACQO0pYToCSRfQKwB1ECgD4DAR6HVKWGMwRApAYRhEjUApALURKAMg5SmYfQOojb91pt9Ytxh//MXDhe+i+NxalJWdgbIzMnEJACTQkwNQwB/332NhYWFhGauMZP/WZITQ5xFCX0Iovif2C9F9of9y2X0Qkod2Q8Zbe8Qn4Df3wKUhDn8EgLGDgZIhEB6A7oNyADrJM/AJ5xENAB5XAfAQD8ADtnMYgPutBIB7rRwAL8IuSxzssiTATksi7DBfhm3mJHhjIBk296d4AMh9BxigAKDYBRzpE7B3AL7S0gGvtHTJ60EPLhkANZ6AZeXpBIrdQPniaPmEMAdA5WqY2dfJahgBg681fZ2CQI0BEcntYFLqJdHik/D3fAKgeCWEci1ENRn8H6Qqf4VLc0m05DmYAXA4617Ifr+VJnzT9/624vc/iz63AaHPTEFo0h/9AX45sbCwsLCMz3weobSWXHSp9xKK6gh+kzv3ljy4H5JcOzAArzzc7QFgrAeA0g5goAKAhwkAncF0ANojFACMgmD7aThkOw0HbGcwAAn+YmCv7QLssZyHXdaLuHZa42CnNQG2WS7BNstl2GK+Apv7kyBgQI5AAsBsWN+bw3cByTPwaq66i2FFdwlG4LLuCt8B2HETZnXchpltd2B6212Y3nofprU9gKktLfBKa5smArlOIL0D6AsC6ZdDlJ1A5aUQAsD3FAAcBgIV+wKVl0LkAPweLKz7vu4zsHAvWO9cnBYCPQDUQaBsQTSlC8guhagBuKbod6WpgzApxPgewR8LCwsLywTLZIRKGstR3oNidLEvA0X2RHXFWkPwDWCuG3jl4U5IfLgbEh7ugdihXRA7tAcuuvdiBNI7gKMLwN3mmBEAMFMBQNIFXN3DlRFWdJswApd1EwR6fwK+7gHgjNbbOgCUFkEgASDlWgjlKZjWBRT3BA7qdgFnUFfDEAi+xpUSgapdgbS7wQICv0vpBP6jGoAyBIoYxAAUitYNpK6IIQik7wlUnIqTXQpRXwyRn4ybeE/CCgR/vKYMYreaforC86woPreedf5YWFhYJmq4bwLLbtai1I4KFNObiU52nqqNdUZ+kjh0CC4N7YJLb0oBuAsuDu5WA9B9EKJdhygAPAKRjqMYgWH2MAkAj8NRx0kKAM/AfttZDECu+zd8AGYMH4BdlRiBGIBdtTC/sw4jcF4nQaAAwJntt2QAnNraLAJQA4EiAL2fjKMCULInUBeAwlPwcBE4agDURuCimpEjUAVACgIxAKWlQOBEvxssuYzyuzXFH4ZuLXkfHTF9DSXmNqDsbDbFy8LCwjKhAVh7rQ6V3qxCmQ/KUHRPAQrpuZhzbjDyk4S3guDSw/1w6c29EMcjkABwr+QJOFABwCACQFewDIDhjnAId0RCqCNCF4CBdtIF3GsjCNxlPf8HBeDSbvIMvKirWheAXAeQ+w7Qr/0e/g6Q6wBy3wGOHgAVT8MqAFK+B5SuhcHDICIAyWCI+CSsHA4RbwfLp4LV3wISANIg6NuKmB953xOoC0CtPYHK7wHVa2I8AJQhkMeRia/iZ7xMAMuL4YNlJbAzwPQIRRQ6Mf4ysotQLgMgCwsLy8QGIKk6VHqjBiV11qEz/SZ0pD36xDn3qcdxg0cgYShQAsCdBIDufWoAug7xAAzSAGC4HICOkxBsPwmHbKfggP20CEDbWQJA6zkegOdhp40gcJslHiNwizkRNg9choABOQIJADNhPVe9ObC2jyBwdQ9XBljRXYQRuIxH4FK+C0gAWA3zO2swAud1EQTO6WjECJzFI9CvnXwHOK2NPAO/0qr9DMxNB4uXQoaJQCoAtaaCRwhAz+1gCgIpXUC9TuDIEDgKANRBIAGgEoETC4DLi+H9Nabfr+Dwd7DoXZSQRzp/uVm5uFhYWFhYJmiu1l/zIJDrBBZfr0W5rfXoTF8ZCulOPBxti/g43n2QDIEIABzcTQDo3jdsAB5zRnoFIFccALkaNgD70xUAJAhc3ZuHEbiipxAjcFkPQeBSvgu4qLvyyQAoLR6BBIA8AqkQ1B8QwQC8w5dGF9Dv9tvgd1t9IUTA4Owb71IQKGJQd1H0te/A7Ma/x6XVCaSejZNgUPlNoHpKmLYkWnkqToJA1aJo7bNx3FPwyhKulE/BYw+zTwV/JfDPy0pgJoe/8AIb/uYvNbcIZWfnYgSyJ2AWFhaWiQ5ACQLra6tRcVM9Smq/gaJ7ytDxztgNpy2Rvz/vCiETwNwT8OBuuODaI+sCRrsOqAHoCoZIZ4huFzDYfhwO2U9odgF32c7pAPASBJjlCNzYnwobBtJhfV86rO3LxABcIwCwNw9W9ORjBC7rIQhc2kO6gIu6yzEC53dVYQTO6yIInNPZgBE4q5MgcHr7TZjedhumtRMEvtLazCNQAUEMQAGBSgBKIagHQO8I9OMRSDsT5wsCvV0Lmd34He8A1EGg+rtA2pqY0UCg9pTwBEXg/11T/OGrQuePw19WVhbKyslGWTkMgCwsLCwsWnsCPzcZoT9DKKq9HAV3piyN6I/88Lz7MMQ4d8NF1w6Ide+FCy45AKPcYhfwhIsg8LjjMBx3SBDoJAMhHAKPOo5jAB62EQDibwF5BO63RcNe21lNAG61XsYlApAgcNNAGvibM2D9QDqsNWfCmv5MWNWfByv7+OotgOV9Bljea4TlvcWwtKcEFveWYQAu4AE4r4sDYA281l2HATirkwDQr+MG+HXcgmntBIBT27lhkHuegRCx2nj8SZZEK07ESa+E+N3j665NUg5KUW4HewCoWBCtHA7x7AqUno2jDYUoICjbC6h4Dm74rm8A1DkZR10RIz0V57kWQr8Y4u1pWDYUQrkXPA6gNkq3fPlhj6LHXP3dUiO8vNHwPkKf38j2/LGwsLCwDDOfm4zi7jaiU93V6IQlffYJe9Rvzg8ewc9rl9riAAAgAElEQVTB3HeAQhdQBKDQBTzIAzBIAcCjEOYI9QAwxB4GwY4IOGyLlHcB7acxALkuIP4O0HYOdtoIArdZYzECt1oviQCUIHCTOQX8zWkeAK4a4CoHVvZxlQfL+zgAighc2muCxb0lsKCnFBb0lMO87gqY110Fr3UTAM7qqodZXQ0ws6sR/DqaYHrnDZjWfhOmdtyGqRwCMQD1ECi5EqKBQA8AZQh0DAuB1DNxwwWgCoGfNgDVCFziBYG6ABSmhBWrYZ6lSyEiZgkAV5TC36wt+d0Lrxf/DAUZ/jdCk6eyX3ssLCwsLMPMZISMjfUo6X4tOtpZinZ2XJl6wnHm19zt3/ODe+H8EPct4B7ZEzDXBeTquDsIjuMn4MOeZ+BwJwFgqIMAMNh2bBQAeEmGQA8Azamw1pxOAWCejwAkCBQA6Nd5Daa3N6oA+ErbHXil7R7/FCyUOBgiIpAGQW/fA9I6gi4FAnkAqtbDCJdCaAgUBkS8LYr+FmUtjFgEgDQEag2G/JCvH+HCAKSuiBGfhD0AVN4N5st3ANIR+DTvCeTAt6z0MS4egN9cZPz4y/6Gf0NHcwfQhcwatuePhYWFhWVkqa6tQoVNNSim5RoK665EgS2xU8LMp/8rynUYzj/cB2cH98CZwX08AMkz8EkegBFuAYCHIdwVggEYigEYCiGOUDUA7SfggJ0gED8B26Nhl+2MDgA5/AklBWCKBIDpEgDm+AjACgkAa7UB2HFbH4Ctyqdg9c1gzaEQHoI+AfCOYj+g6lKILwjUACB1N+DoIFC1KJqCQBkAKQhUTwhTAKiDwGcIgO+uKf7wS+I3f+S2LwsLCwsLy4hSU1uFKuuqkPFaDbpyuxaF99Sgne2pzx+1nvyPqMFgOD20D84M7YFo91447dyHn4EJAA9CxGAQRLoOyQHoPOIBoPAEHOQ4DkGOk3DIeRIDMBADMMonAG6xXobNlkQMwE39V7wCcOUAeQJe1lsIS7sNwwKg6gnYBwAqr4MId4LFU3HKoRA5BrW/C/QNgMqhEG49jFACALV2BIp7AmlLogkG5zXw5+IUJ+Pkt4PpCPQFgFrDIcKaGPmT8H/JygNCxX5AXKU8ALX2BI7TWmH6RP7vSwFWlcH/WmKAPw0w/AyF5VvRxdwalJJViDIzM9lvPRYWFhaWkQOwroZU0dVadO5eEzrWW4P2tV/80lF71C9OuI/C6aFA0gV074Uo9344OXgAA5ArGQBdITIABjtDIcgZBkHOCDjkPI4BGOg4hWuvXQrAM7CTR+A26wWMwK3WeAoAE2GTOYkCwExY2ZclAWAeLOvNh6XdBbC0twgW95pgQW8xRuC87jIKAOvBr/Mq6QJ2NsG0juswteOmBIB/OARqD4fIu4CjA8CvawBQG4EEgNoI9NYJ1D4X5x2ABIG/UAyGCAAk//ysAXBJIfdnJTd9VxQ9hrUmcG4s/viPA/J/ig4WfA1dzK1DGVnpGH+ZmezSBwsLCwvLEwBQQGBFbTUquFaPLt2tRUe7y9Cu3tQ/DbGe+flJ1zGCwKE9EDW4F04O7ocT7kAPAMNdBIDHeAAedY4iAG2XeABeUgAwGdZaUikAzPMNgD0Egd4A+HL7LXi5/Q683H5PrLZmeLmtBZcuBPlrIbRvA4XvA/WHQ6QAVFwJ0UUgvyLGp0shGjsCeQzOa6AgUIXB7/H1fVL1P8AlAlAo2rk4JQIFAAprYpSTwcouoHRRtByB9EXRTwcEMQINj20bi+CP9hh+jsKyLSgupw4lZ+ejzMx0lJ2RiYuFhYWFhWXE3wAKCKyurkZVVVWosLEOnW9rQMEdJnSgJ+lPQ6znfnHCTRDIAZDrAnIAPOFSA/CoiwCQw58IQBGBB+wnMADJE3AU7LKdJgC0EwR6AGgjCJQCcONAIvhb5ABcM0AQuLI/gyCQA2B/DizrzYXFvXmwuK8QFvcVwYJeI0bgvJ4SjEAPALurMQL9uuowAqd3XYNpHY0wtZMgkABQgUAVALVuBqu/CZQjULImRnM6mCBQvSSaci1EgUDtHYHKSyHaCCQAHBkChUXRIgB/5GMncJgA1ECgCECdk3HjsJYaH8OKcuh7ow4+t7vwZygy/xsoPqMGw490/xgAWVhYWFj+UHsCvzAZoecmo9DeGrStI/1LwZYzv+QQyD3/nnDvIR1A5wE47hSfgGkAxOUgAOS+BeQAyH0HuN9+kgDQfgojUADgdjvpAioBuIl7AjZf9gBww0Cq5xl4jbQLOJCDAbi0LxeW9uXrAJAgcHZPDczuqYOZ3fUws6tBBUD8DNx+y/MMrAZgG1kJI5RnKIQMhkifg0n1eco3ANJWw4grYqidQM+KmHdg9g2upBCUI1A9FCI/GyfHnxqAumti+BUxi2o4BP5QpwuotSdQuShashZG926wcCpOWBDtw83gMTsdp/6zLCsB18Jy+ML60kcIfW4jQpO4VS9/xH7XsbCwsLB8SvnCZHTuQSMK7alGex8kfOmI+cz/4xDIdf64IgA8IOsCCk/Awc4jfImdwEP2cDjgiMQIxAB0nJQD0H4GttvPwTZbDGy1EQRutiaQ51/LJQUAkz0IlHUBMQCzYGlfNkbg4n6CwAW9BozAeT0mjEARgFUYgTO7azECp3ddhWkdDTC1U0SgCMA7wwQg/xysCUDJM7Cv+wH5mnZ3ENfIEUgD4DdHF4D8nsBFtRQEUgFI2ROIAfgkCHzKAFgMg6tKPvwjDn97Te+RJc8sLCwsLCyfaiYjlF9fiVLu1KHI9hq060HqlGP2878+4QonewAHAyHStR8iXQfkAHQdgWBXEAQ7gyHIdQSCeAAecBAABjo4AB7XBCDXBRQBGAcB5njYZOHqEvhbCAI3mK9gBKqGQcyZvgGwlyDQFwBKu4AiAJsVT8BaN4PF7wGV3UBxT6B6P6DydJwIP6FEAJJrIcLdYLG018QIi6JpC6KHuyKGdi7ue/qLovkl0bI9gRrfBFKXREuehb0hUG9JNLdmZayfexX1cHnJ4z/ebPoxOlZoQ7F59WzPHwsLCwvL2KS2uhIV1dWg2DtNKKK1FgV1p8845or7bbg7DCIGD0K4WwSgZwjEdQRCnEEYgUGuYAzAA85jEGgPg0BnJK69Dg6Ax2GX/QRG4E77aSoAAyykOABuNCfwALysAcB0HwFoEgHYS7qAM3uqMQKnd9XBtM56mNpJ6QJKvwXkESgH4PAQKN8TqIVAdQdQAKB0TQwNgfp7AhWXQjQ7gSNFoI+XQrx8E6h5KcTbomjhVrDmjsDxcykE7/srga+uKvnwTzn8HTa847nty8LCwsLCMibhBkPKq2uQob4OJdysR4e7atE+p3HmEdeF30YMHvMgMNx1CI65D0OoM1hEINf94zuAh1xhcMgZMWwAch1A3AXknoKtiWMIwBtyAPIIVK+GkWNQ+U2gvJSLoi2URdEEgDPuuHApvweUD4eoV8XMuqlAoBYANRdFe9sTqDUMQhC4sE6JQA0AakwHjwoAZRAcX5dCuL1/S4o/+dqCUvizdcU/RaEFdjzty/b8sbCwsLCMafBkcGUNrpyrtSiq9ToK6qlBuzsSloTYz/4+3B2KF0Ifc6sByH0LiAHoOgKHXASBgc5wHQCehu0OgsCt/HeAm60XCQBtBIH+VvIMvMGciBHoWQdjThUBOJABS/szMQIX9xMELugrwAic11skArC3BGb3EgTO7KnECJzeXQPTOmthapccgQSAN1QTwXIAqhFIGwyR1rRmfQQK3wXqA1AbgQSANARSnoG9dQI19wTSAaiLQBoA9S6FjBiA3LUQ5cWQ8XMpZIXpk2+sNP32Sxz+9hi/ivf8kR1/pFhYWFhYWMYklTXVqKK6CpephuwJjL9Rg8K6q9GOjtQVwbYzv+eeg8MHjxAAuoJI8QjknoAPuQkAD7gJAPdhAEbAHqcPALSdxwgMsHEVB/7WeIzADeYEjEA1ANN9BKBpmABsVABQsRtQ9m2g9HlY+Rwslud0nGQtjLSkAFQOhHDPwNy/YhiqECjBIHVXoLAoWugCancCycLob/H1bVnJAKhaEi0CUL0gmr8V7OuOQNWSaHFFjPpUnPpcnByFkj2BY78o+v8sK/74KwFFP0GhBdyFD67zly8BIFv0zMLCwsIyRqmsqUQV1RUYgOVVlaimpgbl1dagmPvXMQKDepL9g23nPjrmPo4RGOo6QMoZrA1AVzgPwAjY5YjECNzpIAjc7iAI3Go/ixGIAWg7rwBgvASAV0QAmlPlAOzPhMX9BIEL+vIwAuf1FmIEEgCaYDZGoAYAJQjkAPhyhwDA0UJg14gRKAOgJgL1l0ULi6IJAOkIFC6G0BCoAiAFgZ7vAT0ApN0LHhkChY6gPgJpnUHKhPCnD8B/W2f60I/DX1DBX+JnX26/HykGQBYWFhaWSQjp1lhk8mSEPv9ZhL40GYV1VqAdHck7g+znHocNhUPo4CE46t4PIa5APAiCh0CoT8ARsi4gBqDjFGzHdRq22qMxAukdwJEDcH6fAeb3GWFuvxHm9hWrAOjXQ74DfLX7Ki4BgFM6r8PLXTfhpY5bfN3BJUKQdi2EAHBqC/8ULHsOln8LSLsUIgCQfAtIvxnsDYDiE7D0GVh8DhaXRNPPxvm2KFp7STRtNYwUguJwCOX7QB6BS6q4p2DJc7DWs7AEgcvLSNG7gPzzsGdPIO1SiK+lD71VpsewysT9q2zVzM9WFsPcLUZ+zx+36mXSM7rnbzz+/hpO2J9/bPO0//xZWJ7ZvwCfn4zO3qlDEb3VKLA7MSLIfuaTI4NHeQQegGDXQd8A6IiEnY4TTwDAZFhlTpYAMA2W9qdLAJgNC/pzMALn9xMEygFYBjN7yjEC/fgu4KvddRIANsCUrkZ4ues6vNR5QweA6gERgj9vANRGoPBdoByA6uEQrWfgWbf0ESi/FKJE4JNfCpnvBYFyANIRuKTKdwQKnUBfAKi/J3B0AMj9dwQAYgQWw3+uM324isNfcMG7CE1+xvf8jeffX76E/fnHNk/7z5+F5Zn9CzAZoaKGanTlTiU61lWG9vSlZB22nfgk1B0CRwZDIMQdDEFu0gU85CZPwYHcOhgneQIWnoE5BBIAnqAA8JwPT8ASAFpS5QAcyNQAIEGgVwDyz8BqAJLSexLGANRFoBKD6rNxHgAKN4MVS6Nn3KEhUMQgBqAKgXrrYaRTwnqXQr7tZUWMEoDqHYHCpRDqmhgegd7Pxv27D8/BWhCUrIaRTQdL18Q8OQDxvxIA/naN6fHrbxT9GEUU2PCql2e28/c0/P7yJezPP7Z52n/+LCzP8l+AyspylFdXgc7fr0NhPaXoYF9czSH7CTjiDgeuG4gB6A4SAeg6ihG41xmmA8BTsNURhRHoAaCdINDfGksAaInDCFxvSYS1liuwiitzMg/AFFg6kIoRiAE4kAkL+rMwAuf3EwR6ANhHvgOc2VuKEejXWwnTu6vg1R6CQOFbwCldDfBydyO81NkoQ6C3bwKfCIEeAPLXQigIJADUQuCTAVAfgdqrYQQAYgSOZFG0pHy7HSx2AlUXQ3QBKJkK1lgW/aQA5Hb88Qun/2ed6cP9bxQ9QkcK3kUJORNkz984//3lNezPP7Z52n/+LCzP8l+AyspKVFLNTQfXooRblehIZwHa0XvJHuSMhkPOEDjsPoKLADAYAl0hGIEYgM4wNQCdJ2QA3OIgXUA5AGNhg+UCRqASgMvNSRiAy8xpsGwgAxYPpGsAkCDwtf5imNVTDLP6yjQAWEsHoFCKbwI9pVoTo1gUrZgIpi6K9nwHqLUj0KZ7L1hrN6B0MMQDQCoExZNx6mEQMhCihqC6C6i1K1AGQNVz8PAAKO0C0tfDUCCouSRarCcF4FIjvjjyyaoSOO6f+yPc+ePwl55lRFlZOeiZzzj//eU17M8/tnnaf/4sLM/yXwBuMhiviamqQblXq9GZexXoaE8R2td7/q9Dhs7AYXcYHHaHQtDgEQUAQyUAjICd/HeAMgA6omCLIxo2289AgP2cBgATYK01EVZZuLpCAGhOgmVmgkACwHRY0J+BETifR6AIQCPM6jXCrD7SBfTrLYfpPRXwag9BIAFgLUzproeXuurhpc4GOQL/gACUI1ANQOmiaBoAqQiUAVDoBI4UgLROoPpSiBYCuU6gbEcgpRM4HAAKq2HGEwBXlAKsLfldekDRT1Gw4WueCx85mTm4nvmM899fXsP+/GObp/3nz8LyLP8FKK8qx6tiOAiaaipRfkMNSrxbghK+Vjd518C5fznkPEkugeAu4BE1AF1hEgBGUgHIdQFVALTGYASqAXhZAcBUOgAHCAK9A7BaA4Dyp2AaBDEA23QQqMKg5GQcj0F5F1DRDdTqAkowqHclRGs9jLArUAZAGQI1dgM2fkdSAgClJUegCEDaU7B6IGRhzSNFvU+qmt4F9EwFa0FQshJGuh8QV+noAHBZ8cfXNxl/gsIMTrLnL8fAADiOfn897b9/vWYS+/OzsDy9Ged/gcmOwAoMQG5pdFlFFSpsqkJnHxhQhDnrCwcHzvz7AUckvgV8wMnhj9Re5xGMQN8AGE0AaD8P/rYLuDgArrdegLXWOFhrTYBVFq4SFQBM0QBgjgjAAQPM6jXArH4TzOwtBr++UpjeUwav8gjkADiluxpe4qqrdlgI5L4JxAAcKQIlU8FyAIoIVK+GkSOQuhvQRwBSEUjtBtIQ6CsAnxyBtG8BfR4KUSHww2EgUB9/60y/sZ1ohc8cLPxLFJffgDKyMlFmdhYGIPf8yzqAaPxnnP/+9ZpJ7M/PwsLyaWYyQugLCKHnEdp79+yLuwdOfxBoj4AgbhG0KwT2uQkA97h8ASBBYAD/DOxvi8EAXD8MAC40p8NCcyYsMGfz+CMAfG2AAHB2XxEGINcFVAJwSk8lBuDLPbXwYk89vNBdDy90NeASEIgXRAvVLh8MUQNQfi7O635Aym5AXCoA0i6G0J6GH4Lf7bf4kgBQBUEBgOJAiKeufwOXgEDtwRDKahjVE7C0tCCoRKAIQXIuTntFjDgU4v1snHQ9jABB5VCIMNThKX7ClzL9+40txkd/gj634dne88fCwsLCwqLKFxA6fSsDHWg+vzDIHP0/3P6/fe6jHgBKEbjTGS4C0HkCtjpOSgAYBQGO0xiB/vazGIG+AHCJJQUWmjkApsICSzosMGfCXHMWBuBr5jyY3Z8Ls/vzPQBUdwArCAB7KuHlnmp4sbcWXuiuVSHw5Q5pyRH4SpsWAhVLovX2A/oMQC0EKiEoIlDWBdQEoHo6WACgfDWMGoF6AHwyBNIAqEbgsgofEajCoHgtxBcA8jv+8H+2pvg339tifPTChNjzx8LCwsLCospnEMquNaD4m1noUEtc4B7ruU+4M3AcAPc7j+ASnoFFAEZKAHjSdwBa4zACOQAusyThwgC0JFMBOHsgGwNw1kA+zOwzwMw+I/j1EQC+2ksAOLWXA2A5HYA8AslzsOJJmH8Wlq+Hoa+I8TYYolwLI0WgbD+gVwgqAMgjUDkVTDsX9+QApD8B01fEyJdFqxCoAqD2cIjWtRCxtJ6E5Yui1V1AEYLixQ8BgI9/ttn4aLYw7cs6fywsLCwsEzJl5SUot64IRd/NQYEtsSkHbGfwLeD9jlA1AJ3hvgHQfhbW285iBK61EQRyAFxpi4NllkuwzHIZllgvwxJLEgGgJRkWWAgC55oz4LX+TAzAWX05MLM/D2b2FWAE+vEIfLW3BCNQBGA5vNxTCS/2VsML3dUyBOoBkCDwzhMhkLYbUHkqbvgAFBFIWw0jhSBtMtgDQM+OQG0Eyq+EqLuBugDU2hPoIwAXeQWg9+dgz4SwxlOw/Ju/Dz/cbHy04ZCB2/NXi3KyMsb6rx8LCwsLC8vYpLy0GJkqjCi71ohib+agg52xrftc5zAChWlgGgC3OU/h2uI8SQXgBnsMbLBfwABcbYvDtcqeAMttCRiBAgAXW5NUAOS6gK/hyiFPwP2FMKufPANzAJzeQwDI1ZSeUg0A1ioAqFgP4+kC+gpA+mAI9Vwc5VKIcj2MuCZGMSBCA6DGihjVnkDakugm5aJoxbJozUshBIPzR7IoWvItoAhACgQpQyFKCOqtiFEtiqZ0ApeaPsKrXpaaPvokoOgnERGFTpSQ14DScwtRdk4m+7XDwsLCwjIxU1pWTKq0FGXUFaOwZiPa3ZP+N/ttZzECyTeAobDTeUwCwEjY5johAtB5EgIcpzAC/e3REgByHcAYWG2/AKvsHADjYDnXBbTGwxIrQSAB4BVYYCUInGtOI11ADwBzfQBgKbzcWw4v9lbCCz2VMgSKU8F0BKqfgdXn4vQQSB0MGTYAaQikAHBYewLJvWAMQGmNGgK9XArxBYD4+0ANBFIBqO4Eau8JJABcXQGwqPIjeLX+13nLa/4eRRfdRNnZ2Rh/DIAsLCwsLBM2HPxIlaPsqnoUc70DLU5P+lxgf9rP9jhOkilgKQBd4SIAXSeGAUCCwBWOBFhqT8AAXGy7TMqapAaghSDQKwB7izUAKH8KFoZCXuhqJEW9FqJcE8NDsK2ZrxZZiQDUHhBR7QZULYrW7wJSV8RIMCiejFOfjfMZgDpn47SGQ8RLIUoE0iaCva+HERZFL6r6D0/R9wRqLYqmL4teVQIc/roX/ytM+mL32+hoRS2GX1YuKRYWFhYWlgmZkrJyXBwCC8obUHJtHzrZ1IK23896YZs57je7nFH8EzAHwGMEgBIEygF4CvztURiBG+xnYZ0jBtbaz8Jqu4jAFY44WGqPgyW2eFhsu6QBwDQFAPNhFo9A7jvA6b0m/jvAEjoARwmBsm4gBYGeNTGaCOQAqL0jUBOAEgTKAah+EpbfDfYBgXoApHQD9QHoBYE+LIkWAahGoOxiiA4CyTAIHYErTB//9Yzqn33xM+1fQy+2tqCI8lIRgDnZY/3Xj4WFhYWFZWxiMplwFRUXIUNxCcouqUOxtVfRgftVaEt3/rqd1riPd7tOwS5XBOxyhcF21zHY5giDbY4I2OY4jvH3uosAcKOTAHCDIxrXOsdZDEDSBYzBAFxpu4ifgblvAZfaEr0CcJY5G2YNkGngGQOF4NdvgFf7iuDVPhNM7SvBJQCQ+w7wpW5ScgCq18MIEJRPBMufg8mKGG9rYrQAqDUYopgSpg6GUCaCJZPB4o5AAYBKCIoI5AAoFg2BWgCUPgEL5X0qmNQPPaW1H1DaBVStiFEtitZeEbOk4gNYUk65GFL6ESwrffyjRfm/nbKq8J/QVuMDFGwoROczU1FyyhWUnJyKi2WM87QvQn7aM4n9/FlYJjgAi5CpuBAV4TKhtIoyFHm9Du1vLkPbu1LP7nDEfkIQSAAoIHCrMwK2OI9jAHL442qDgwNgFKxzSgAo6QJyAFwpANCe4OkCLrCS7wDnWlJEAFoyYJY5EwNwhpkAcNoAAeBUDECCQK4L+HIvQeBL3eU6AFQiUBuAIv70EOgjADVWxXDdQPWEsBcE6gJQgUAVACXdQC0E6gLwu16ngkUE/sArALlvAuU7AtUIlANQjUAMwArlxZDfw5Kyj369quSD5evz/hntz3wTnUurQMnJySgpJRn/a2pSKi6WMQ4DyNiG/fxZWCZuio0mXBiBpiLcCcwrNaG0yhJ07loJOthRhvy7kut3OGJwFxDjz01qiysMXncJADzhFYCrbOflHUBdAKb5BMAp/VyVYAC+2FcOL/SUe56Bv9IjIFA+GSwikLYWhrYfkPYULAGg7rUQBQglnUAPAGUIdGh8DyjfD4h3BN5+yysAxYlgsQsorodRrojRuhSitSfwe14gqPUcLA6ILKkSirIoWmc4RLUiRr4g+pMl5R+GbSz5IQrO6kbn0srQpdRMlIQ7fzwAk6/gYhnjMICMbdjPn4Vl4kZ4ApYCUKjUKhOKuFmBDnSZ0LbeuPe2O07DNlckxt/WwWOw1R0Or7siMAIJAE/ABudJHoAEgWvt0TwAz8Jy21lYbj8Py+0X8XeABIDkW8AF1kSMwLmWJIxAAsA0AkBzNswwEwROGyiAV/sKYWp/kQyAL/ZJAVgOX+mtxKUPQMVUsAyAt7wCUB+BGtPBXvcEOnxDoLAoWoVA2reAX/fhKZg+FOJ1T6CXTqD2N4FKBGqfi/O+J1AyFFL2G1hT8isTh7+Dxrcx/rgnXw5/UgDiZ+AUBsAxDwPI2Ib9/FlYJu5ffCn4uBK/CTThTmB6TRk6f7MYxbx3dXKAJfZnmx0n4I3BCNg+GMZ3AJUAPI4RKABwtSMKVjuiMQBXOWJEADoIApUAnGdNhnnWVJhrS4W51nSYZeYqE2bwCJw2kAev9ufD1H6CQCUAySAIDYCKgRBJF5B0AhXrYWQn4+g7AgUAjmhPoASA9BUxDlyep2AVBIUpYdqKGO1F0bOvS5+FhXvBQn1LVhwCCQBpEOQxqBgMmXf1+56iXgpRYFBvR6AvewK5ayH4Cbj8A1he9gGsLP3Avizlrycfy+1BcTk16FJKNnn25cHH/XNSSqrnKZhlfPweYt8AjlHYz5+FZQLGCwAFBHITwjn1ZehkcyHa1pwwbUvfmd9vdZ2C7YMRPgAwygPAVQ4KAB0XYbE9FiNwgS0BI3CejSAQA9CWCrMsqR4A+g3kKABYCFMGCAJf7CuWdQHpANRGoPJSCAagDwiU7wgcxp5AyTMwHYEUAFIQSJsMliJQtiPw5rs8AEcLgV4AqLcnkK9FWgikAvAXGgAkT8FrSn/xTzvK/+25YMNbKDGPXPogHT9u4CNZAUBSLOPj9xAD4BiF/fxZWCZuBOiJACzivwk0IZOxBJWVlaHC0mKUe7UcXbhdiHa1XQoKsMZ8wiFQBkBXJC4pANe61ABc4bgASx3nMf6W6AIwWQXA6f3ZVAC+NEAA+EJ/KbzQXw4v9HH4Iwikr4XRXg2jdTJO2A34Uvs9T8kXRSshqNwTqLcoWr4aRopA6rk4CQapK2KkCBRuBlPWw0i/CTpYj+AAACAASURBVFRDkGDQ655AynoYAYL0FTHS4gEoQ6C6C6i5J5CHIBkK+eCDgJIfLA0vHEAJefUoNTMHZaRzwx7CwIcUgASBbAp4HIQBZGzDfv4sLBM30jUwNACWlJR4lkVn1RrR8Ts5aF/Hlbo3zNGw2REJWzAAIyDASQDo7+AAeBzWOU+OHIC2KwoApoOfOQOm92fCNHMOvNqfC1MHCAKnDBTCSwNF8AJX/SICn+8rhef7JAjUAqBqKlgLgb4AUN0N9DYdLO4J1LoU8iQIHCYAKd1An/YEegWgNgIX1Si7gPSbwWoAimtiVpW//zig5AeHDxW9jWLzalF6eirKzklHeTnZPACTVQBka2DGSRhAxjbs58/CwqI/JUxgWFBahNIqi9C5pmy0t/vS3wZYo2GL/QRscYRjCGIE8s/AAgBXObmSA5B7BtZ6Ap5rvYzrNWsSrlmWZIzAGZZ0mGHhAJhFEGjOg1fNBRIAFsoQKAJQnArWXQ2j2hEoDojoDYXQASj9BtDLehjJXsCp9y2yki+K1sGgdEBEmBCm3QpWfQ8oGQhRrYfR2xMoPxUndgGV94K/JwGgBIHKpdEaOwLli6IJAD1Pwfzz8LKyX8KW0n8yHM3rQeczqlFSRi4GYHp6Oi4WFhYWFhaWEUSYDiZFOoNJNUXoQEv2H28cSPzPLbYzsJVbCI0BGO55BiYAPAmrnCdlCFzhjBl1AHL1Yj8NgKU8AIeBQMqUsN63gJoAbOkYBgBHjsBpd124lAj0fivY26UQvT2BCgBKEKgPwO97AeCPvQNQMiG8rOIXsKryP4dWpb47+Wz2NZSRkeGBH640duqNhYWFhYVlRKENhyRVl6D996vQxp6ipZss8R+/7oyCAHcELn93JPi7TsA61/GnDID0p2G97wFpU8H4TFxrGy5pJ5BUl7y0ECjBoPJJWBgO8ZQWAPVuBetcClE+B6tWxCiegEkp9wOKy6IX1glFgSD1drC6C7iwWvwW0LMuhgyE/GRl7a9f3Fz8t+hcTiNKT03z4C8jjRQLCwsLCwvLCEIGRET8ccVdCom4fhXtaqlAW3szzm+0X4QA10nwd4f7BkDHOc93gIvtFzACF9jiMALnWi9RAJgMM6wEgdMsGRiBr1oIAqcM5EsAKCLwea6eFIDd9fBS5x8WgZqdQMm5uGEDULIeRvNWsGwqWBuB1D2BFASqOoF8PRkA1Z1ACQA/WlnxaLN/6T+gvQVOdCGrCoOPAZCFhYWFhWUUUmwswSUFYEFJCUqrqEBnrlWgPe3FaMNAeleAM4bgzx0J692Rkm8AJQiUAZAgUAnAeTYyCDLXTgZBZlmvyADoZ80EP0s2BuDUgVwRgAP5GgAkCBSmgnH1VHvK25OwCEA6AlXfBQoA5Ev5TaC89JZEKxZFq07GkedgAYHKs3EeAN6SLop+R4VBcS2M+myc/GKI97Nxnk4gX/KTcYqF0V4vhYjn4qTDIAsrfwaLK7j6efKmkn9AR/M60IWsCpSUkS95/mXfALKwsLCwsIwOAHkEChPCRaYSlFpZhiJvVaK9nUUooC/uR/72KA8A17r5DqDruKwLuMJ5VgLAc7DYEYMRuMB2ESNwHo9ADED7FQJA6xWYYSUI9LMSBL5qyYKpA9kwxUwQSAAoIvD5fiNGIAGgNgJ9A6A2Aqkn4yQIVO0HVCBQ/1RcH/jdk5yLoyBQtS9QsSAaA1AHgbNv6CPQ62CIVidQE4G+XgqRAvCRDIAryv/N7F/6f9DBIjfGnxR8DIAsLCwsLCyjEE/njwLAvNISlFFVimJuFKFdrSmvbLDE/Z67B8w9Ba9zh8FadwSsckXwCJQC8AwsdZ7xAkCCwFnWRB8BmEsHYJ8OAjUXRevvCnyh8wYusRMoeRbGK2KacYkn41pkz8Ke5+EW7ytiRg5AUrNuPaQgUIrB4Q6IyJ+DZzd9G2Y3KjuB4qJo4SmYejKOtiBaeSpOtifwfVhc+dN/8S/9u+dCDd3oYm4VupyZi1Iz5ABMzRC6gGzRMwsLCwsLyxMMgYjPvx4A8t8GFhcbUWplATp+uwDtak2K2mI9T74BxAAMg9WuMFkXcIUzWgSg8wwsdpzFCFxoO69AYAJGoC4AzZkwxUwQiAFoFhH4fL8BI/ArfVxpQ1D+XaAvK2J8RaDybrAagb4uih4+ALndgIM+IPAdLwhUrIlRAVBEoLoT6AMAhUshOgiUAnB51Q9/61/6dysDjW6Mv4ysTIw9BkAWFhYWlk8/E3yRJgfAgmIDSq0woNPXstD2tgT7BnsMRuD6wXAMwNVOOQCXOk9j/C1xnYEljmhYYj+r7gTa4+A1WzzMsibIADjNkoYHQTgASruALw5kYwS+KAOgAb7CVZ82BD3DIZoQVO4HVABQdTf4lsaaGL1Tcb5cClGcjPOsiNFfEi12A+VXQmjfA8oB+HUPAGlTwfOufRuXtyXRHgB6/R6QfBNI6ke4CAbFp2D/iu/Ec50/7sZvSlYhyszMHuv/+T/9meC/v8Y8k9jPn4Xl6c0E/wuMl0QXGZGxqBhdrjKi2HfuTfa3pv/7amsUrHVy+IvApQQgxp8mAC8OC4BcvSwBIDcR/BWfAaiFQO8ApN8MHkUAyi6F0BGo3g1IR6B8QfQIASiZCqYCUOObwJEhkEBQAkD7lrJvopjcaxh+pNievyfOBP/9NeaZxH7+LCxPbyb4X2DuOdho5AFYWY7237uGlj4ofG2VJeGjtUPRIgD5Z+AVrigegKQWO6LFZ2AHAeA8+0WYa4uF2da4JwegDv5EANLWxFTrnowTzsa93NGoD8A2GgIlp+JaaAgUMUgA2EeBID8h7NOVkIeU/YA6T8EKBBIISqeClc/AkhUxCgTKhkIkewKF83HKbwLlEBSegx/9dFH1+y9sKf0WD8BMT7E8YSb4768xzyT282dheXozwf8CewBoNKLUskoU1ngd7WiuR+v7Mi+vsseRW8DcE7AuAKNhofMsLHTEwDzHeQzA1+wcAC/yAEyEGTwCp1lSMAJf5REofAdInoAJArnvAJ8fKBhGB1ALgHoIbPAJgRiAOgjEANRB4LRmfQSK3wXq3AyW7AgUnoPpAyF6nUDlVLBvCBS+BdRCIG0wRNoJXFj7o4+XV/1g28byv0cHTYMoLqeKx186LpYnzAT//TXmmcR+/iwsT28m+F9gbjqYwx/3DJxfXIxSykpRVEM5eqPdiJZ1p/7lxqErBIFushIGA9B1SgSgM0oGwPnOC6QD6CAInGWLgxm2BJhhSwQ/2xXwsyXDq9YUeNWaBq9YM2CKhQegORNeMGd7BkEwAIXiu4FkMphMB4srYsqp08Himhj9c3GqRdHUFTHSJdFi+bYihnY2TlgT431RtLIb6AEgPxQi/S6Qux2M6+a7fKmngsVvAWmlRiABoDgUosSg9lMwPxxS/a8m/7K/RWTqV/j2j3UARy0T/PfXmGcS+/mzsDy9meB/gUUAGkhxp+LKjSj0dhmaaYz67Pr+K7/aMBiHu38rnZGwwnXSOwAd5zEAZzsuwAz7RZhhjwM/ewL42RNhmv0KvGpNgldsKfCKLQ2mWNIxAjEALSICnx/Igz83PwECqQDUuhTyh0Kg3u1gcVG0dwCKCBSmg2UA1EEgbTWMekG0NgLnNegjUPwuUA3AZTXf+6sN5X/z2UCjE+MvI4t898cAOIqZ4L+/xjyT2M+fheXpzQT/Cyw+ARvwQEipqRgZik0opcyIohoNaGtb6pp1jsTHKx2n+A6gFIBnYKErChY6CQDnO3kAui5gAM5xXoSZjlgVAKfZkykATH8CANJ3BMoXRdMx+FKX8lpI46cPQJ2bwfLnYSkASdEmhNWdQOXtYMlQiGpP4Dd9uB2sGBCh7wj8f+urvul3pKgNr3xJzirCAORWvxAAZqPsDDYF/MSZ4L+/xjyT2M+fheXpzQT/CywFIC6DASOwsLAQpVQa0JHbWSigNbFqvTUGVrujeACe8HQAMQBdUTDfFQ3zXWdhnisGA5DDnxqACTCNR+ArNtIFHD0AaiyK1t0TKAUgHYGqKyEKBP5hnoGVABQROOOOgEBxT6A3BGrfDlYAcNgIFL4JlE8FL6n9Lqyv+mZ4YIkNXcyrwOgj+GMAHPVM8N9fY55J7OfPwsLyLOYzCCVV5KGTTRloS1fsvyy3RcNKxwlY7ozkEch1Ak/JADjXeQ7mOs7DHOd5mOm8oA1A+2WMwCmWVIzAlwfSJd8BZsOXLSICcQ0Y+DKSEgAoDIZQF0XTBkS0FkRT1sRgACoHQ+QQ1FsRIwBwWrNQPfK6T7qAU+9bJGXzlHpPoHw4xBcEYvTdkJTibJw2ABVn4zS6gBwCX2sQB0LmXf0+rKv+RmeosQPF5lUjNOnzY/2/YhYWFhYWFpbhptBYgOJr8tCO1oyZyy2XPl5pP8MDMBKWuAkCue8AuWdgDwCd5xQAvAh+PAIJABNFAFoJAl82p8q6gF+2ZMPz5hz4c3OeJgB9QSB9SthHAHJ7Atv1EejLnkARgF2jCkBfEOi5F0wF4HvwWtPXnxyAnk4gV99/tLHyvediChpQVlYO+wvHwsLCwsLyNKawyIDiq4rRjvuVaHmvMX25LQGWO08pEHiaCsBZrotqADoSqAB80ZIML1pS4QVLOnzZkokByHUBPQCkIXDAqHoSfr6v1FMcBLUBqL8jkKyIoS2Klj8Je90T6FkPQ98TiAEolAyCwqUQ/T2B6udg+WAI9Vyc53tA+XOw8mrI7CYJADWfgmVTwZ/Mu/r9/QEV76GzhQ0oM5sBkIWFhYWF5akF4JWKYnSk6Sra0lKO1gyk/t1yxzlY7jwh6wIKz8BznWckACRdQBGAcQSAjgR4xX4JI3CKlaskDQBmw59Lu4AUBOoBkCBQa0+gl1vBnh2BegC842VPoBKASgQK3wTSEejLougnAaA4FKIFQEUXkNoJFAG4qP4719dXfQNx3/5xz7+Z2Vlj/T9fFhYWFhYWlpHEUFSA8kwGlFJWjE41GNDmtvTnl9sSf7fSfRZWDJ30AHCR+zQsdJ8RAeg65wEg7gI6uYpXA9CeBC/ZkuAla6oMgM9Zs3GJAKQhUDoUIkGgBIKq4RB+PcxXempxeV8SrXcujjYY0uIp7wCUIlABQX5CWAQgDYJSAFKegvVOxsmmgqVFvx2s1QWc2/gPMK/pH2FB4/f+Zdv1b3/xmLEFxedVotScApSVxQDIwsLCwsLyVMZgMOAyGgpQSnkBOnq7AG1su3JynT2WrIPhAOg+AYvcp2Dh4GmY6zqNEUgAeA5mOmNIFxADMBamOeLoALQlwQvWZPiyNRW+bE2H56wEgX9uydJFoByA6k4gdUJYC4CKTqAKgNROoDYA6QikAFADgfJLIfROoHwqWN0JlF8JUXcC5c/AwwUgQeCihr/9nzXVX/XfZ+pF8XnlKCczC+OPAZCFhYWFheUpTWGRERkMRrweJt9YgNIqi1DE1XS0qePSe0vsMWQSmArAMz4A8BJMcRAEvmjjisNfKjxnSydlzZQAUL8TqBwO8QyIaAKQIFBvKlg8E0d7Cva+I1AAoNaKGLInsEt3RQwGoAqBirUweqthlGthlOthKHeDcakAqP094Jrqvyw7VtyKLhXUoPTsApSTmYMHQNgTMAsLCwsLyzMAQK6KjSZ0qaoArb+e/MfLLan/vdRxnscfqbmuUzDHdRpmuc/gmuk8ixE4g0cgAWAcvGKPFwHouAwv2i9jBH7ZlgzP2UQE/rklgyDQKwS9AZCyJ9CzKFrvVJweAPURKH4TqI1A7U7gaABQiUC9SyFqAIoI/KYmAude/bvvhvd+/7MxhbUoLzsf408EIBsCYWFhYWFheSoXieYVFuAqKDAgQz5XBSiu3Ii23q1Ei7uLDy21XYHFg2cx/mY7wiUAPA0zBykAdF4cHgCtaTwCtSBInw72bU+g/Gyc8Cwsex7mEah9Ku4WvNLGDYNIBkIkgyFTW1ok1SavB/qLomUApEJQsRbmziClHpK6/RYu6pJo2bk4SifQczruW/xkMKl51779P3Pq/n79hoq30Zm8apSVnoGy0rNQRgZXGbhYWMZ1xvnvXxYWlmc54/wXUF5hngeABIEFKKnEiIKvVaNNzeVoUceVoQWWCzDfFQVz3ZEyAGIEuqIxAme4CAIxAJ0X4RVHLEbgFMclEYD2y/Bl2xV4ToJA7wB8sj2BagRKMOh5Em6U7QckJQGgFgJVAGwZFgCpCKR2ArUROO0uKQGCMxQIVE4FqwB4g3wbKOwGFAA479q3YNHVb9aurnwP7TP1o9iccgxAAj8GQJanJOP89y8LC8uznHH+C6igIA8VFMgBmGsgCIysN6A199L+eH7/ld/iW8DukzDXdYIg0E0g6DsAL3kBoBb+Rr4n8Pk+xe1gFQRrNZdEqxdFK56CPUui1bsBlZdCVM/AEgySU3FC8XeDJfeDtRZEewegeClEjUApBBULo/lO4Lxr3/7ndTXvfCHE8ADFZlei1IwCCQCFShvr//mysDzVv39ZWFie5YzzX0AEf2JxABTqcmkBOtSUjzZ1ZYWvcCSQNTAu7jvAE3QAumJgmvO8CEBHLExxEAQSAF6CL9sS4Tm7iEDfAPhkewJ1AUhZD6NaFP0ECKTuBpQUdy1ED4HULqA3ACouhdARSPAnLozmEdj4TVjU8PWP19W+vWVfWR/p/KXl4Kdf8vwr4o8BkGXcZ5z//mVhYXmWM85/AZHv/kjnjytpNzDbYECJZQUorDELbei8/O2FDu4pOBrmuE/ArMFT6idgGQAvyAHoiKcC8EvWNPiSNYOvLFKWHE89+Z5AxVOwDIJ6ewL1BkQUi6I9S6Lpy6KlU8HSwgDkT8apISjdE6h9Km4aLvF7wP/f3pkHx3Ff+f2R1oqiCAKgAIKHKV6ieIkmzUNHnGS9kmXJum3L62zWFoiLuAjeOGZ67gEwOAiSuHiCIHESBA/cGAC0ZMdlK2t71678k5Szm4r3SLwV79pJlTe+FLJTv193T3fP9MzgHjTm+6l6FsAqAz/0dHd96v1+771NBvOCtUUhm659HAit/CntYp65+CPxYP2Hl/5dVRsVOGvojNUtb/lKIZ0DVAOABc0Cf/8CABYzC/oFtJS8zoqwAsiCnQ8srHPS5zuF1TsGTn+yw58rbpvIkARw4rC4eSyDS+CmsRyNAOYFCWBRGAE8IyYOF8sSaCyC0VrERO8TGEkAg+YGT0kCJRE0KgwJlcHpSuBkBVDNCIZtDxNBALfpBfDvX7v2/eV53npyOp2ajB8EEJiQBf3+BQAsbswggBoJDN4SZlF4toI+f7OWdtz3OnaMHhe3j7MsYDgBPDJFATwtSWAYEZxRn0CdABqIYEAAI7eJ0VUIy9XBUoGIfjvYqFegbkt4On0Co4yKCyuAwRXBOgn8niqAV78nbruiNIz+4aNtl3782r+58CHluC6Qw2YLbPUqEqhk/rAFDEzBgn7/AgAWN6bZAtYKoFIYIsXJqgp67/J5eqmzmp4bOPO328dyxe3jGXwrWC+AObIAHlEF0F+oCuBokfjUyDExeUSVwKkJYCQJnA0BDJXAtNtTlEBDAQwvgZEEUD8ubioCODkJ5JNCAgL4F+Kuix/fOVj/bXr3XB8dc9fxiR8QQGBqFvj7FwAAFizKWUAmgX/W7KUXeyw7tg8fe8jOAm6fSOcCuGlcEsCnx3PFDWPZIQKY5i8S00YKQwQwaUQjgBG2gaWtYH1RyKp+txR9bBvYG/Yc4EwFMGKVcEAAQ4tDFBlk8qdrD2M4OzjyvGBWDayP0UDotoW5AEoSqPQGjDQtRBHALZe/L26+9PH/3ndhLO19XysVOM9SseAim8Ua69sPAAAAALFAmwk8UeOkd1rs9OLt0y2fGTrCs4CKAD49zgQwx1gAxwq5ALJIHT4akMCk0VNzK4CBSSFhBPBeXdCkkGgCqJdAtU2MsQSyM4HrA70CZyCAESQwOCOoTAwJVxWsF8DvcgHcfuk/iJ+t9x/9YlUnL/ywWm2BAAAAAEAcIk0KcZLbYyehws4l8M8uWejF3qJfPOs/Igtguvi0LIEBAfTncglc68+XBHA0P7IATroYRJLBVf2RJFCVQeNRcaoMSgIYPDLOQAbDtYkxqAxWRFAvgJOYFGK4BWzcH1AJ/fawOjZOrQo2ksDv6ARwf6P/L79aeY3LH8v8cfmzOCCAAAAAQLzC5Y+dCfTYebDv88/Z6V93l35+2/DxR7wFDBPAiQwugVwAx7LFdf4cLoFr/bli2li+JICj+WLqSIH41MhRMXn0mJg0ekJMHD45KQnUC6BdFsDoEqifDhIqgal3JymBBgKobgMbC6DSJ3AmEhipSbQqgKGzgyOfCdQI4JWPf//ShaE9We5aXuihZP4sghQAAAAAiEOkghAneeVgW8H5dV76t+0V9Gy/89ubR4ukLeCAAGbyWD+ezUMVwFxDAUwYOSkmjJyWo1iK4VI5LDwCmcAQGYxUFewN2xtwck2io/UJVAVQH62BULKAxv0Bte1h5LYwHXd1EW5beH3bIA99NjD0PKD2TKCRBPIm0Ze/X//ShRHK9pwjq9UaJIA4AwgAAADEJVr5UwTwRDWrCq6lF7srknYMnP4Da//Ct4AnMjQCKEng2rEcMW2MyZ8UqSN54lOjBWLy6FExafSYmDB6fEFLYLSt4OCqYL0AavoEzpUEhpwJVKqDtQJoLIHbr3z09wcbxpe9UdNN+S792T8mfxBAAAAAIE4JjIZTJNDl1lQFu+nAnVLHptHjUhEIE8DxwzxCBTAnigBGlkB1S3gS/QE1Mhh2UohhlXBos+jwW8GSBBq1hlFEUBLA1mk3iV4X4WygIoHhsoAbgopCjCRw/8Xh99/3XQ05+6dk/yxCWaxvPwAAAADEAnVCiJT9k76X+gYWnvXSS11e2jwk/GKTv5BnAddz+ZMEcN1Eprh2LEtMG88R0/xZ4mp/jvjU6BEx2Z8nJo8WiEn+o2LCaFFkCZRFUH8uMNLsYL0Ehp4LDBbAyVYJT08AZyqBkQpEjKqElbOA2v6AoRL4Edv+/faLjYOU4z5LNos286du/0IAAQAAmBc0Ap07nnycPnejgbbcP/uFjcNneMZv3cRhcd2DD8Q1Dw6Lax5kimvHD6sSOJYrpozlSgLozxOT/AXiSn/kLGCgOCRco+hJCaBBm5igrWApasVV9+oCEdomJngrWCOAurYwwRG5T+CkBDDMdnBUAdQGOxfIt3+/+/utV/5i17+qHyNaljqHNwigeH9/mX39AAATgxfQ3PHE4/T2xSY60HmBtvVZ/+MGfwHP+q2JKoCaLGCUbWCpQjh8lbCaBZymAIYIoSqB+jYxxlvBugkhYQUwjAROVQADEjgzAdx+5aPmA43fojdre4n+KHkObxBA8f7+Mvv6AQAmBi+gueNTS+mYr4r+tKmS9t+2pWwcPvUJzwJyAZQkMFgAU8fzxaeULKC8DbzSfyKMBCryF6VNjNwsOnHQqYto4+ICzaJZq5hAuxj9VrC+TUz4tjAhItgjx2QFMOKsYM3M4Eh9AjV9AbWNoje1jmr6An70v/ZfHH7ya1UtVOiuJlr62BzeIIDi/f1l9vUDAEwMXkBzisvloWPVLnrzmoP295bUbxnJ02wDfyCuHWdxWEwbzxJTJ3LElIncgADyLeAxJoByFtBAAiclgDOUwKgCaCSBIWcB9RI4KQGU+wRGnxUcXgKD+wQqfQFVARzmAsjO/227NibuvziY+UZdOxW6fSQIwtzeHGDmmP39Zfb1AwBMDF5Ac4rT6SSr20lFPje93yzQvrvH/plPApElMG3iAzEtSACTx3PFpLEjYtJYnkYAiwwkcDLtYYwkUJVB4xYxsgT2G7WIqQ1EoFF0uCygQTZQFUGjApHWkD6BLAu4prtTiq5uXRhlBCO1iDGeFCI3h74+Ie6/2P+jr1Vf4pm/Erub7FYI4ILH7O8vs68fAGBi8AKaU1wOJw+nw005Z530/K2ydzaMnJAKQjQCmDqhEcCJHI0ASllASQCNJHAyAhheAsP3CTQQwCAJDC+A4SVQL4Cxk8D1beqkEJYB3NLyrU9ebLq/P9dby8XPbrXzAAscs7+/zL5+AICJwQtoXgSQRW6tm17sqKSNg46frOcFIYenIICF05BAvQwmDAm6CNkWHnDL4eUhCSAbFyePjNONjVMEMFgC9QLIpoWkGLSISbvdPEUB1EigRgYDW8PBDaMN+wSq28FKj8CNNwdlAfzozouN/aQVQEGAAC54zP7+Mvv6AQAmBi+gOd8CVgSQbQO/cbWK9vV4Nm8ZOvFo3Xi2vP3LBPCwmPIgS0yZyNEI4BFxpSyBkgBOVwLDCGAUCVQaRUsCaCyBkgCGk8B6SQC1I+N0AhhdArUFIUYSuC6KBAa3iDESwG3XB3+z/+Lg+jfqOqnI5ZMFUMAZQDNg9veX2dcPAADAGI+nnDweD5V7XGSvcNGxGi99/bKHdnaf8K8bLeSTQCT5k2MiR3xqnAlgdkAAE8YLxBVj+eIKf6EcRXJEl0C1ICTcFrA2QreD1TYxoa1imASqAmi0HayXQaNtYVUCg8fGBc0LjtQkOkQAVQlk8rehjYmfKn/aePrGgLj3Us/Zr1Q3Ub67ks4IdhLKLIEAAAAAAJgybq+HC6DH6+LBJoYcqXPR9osnE54esfxhrT+fZwBTHnwgS2CW+NR4lpg0nsklcOX4ETFhPE8SQAMJjJYJjFwRHCyAoRKoF8ApSGCYjGCwBOozgVoJNBDAyUhgRAG8r5M/XhF8feSfDjX1LM8sryKrtYwsFkn8bGWlPJbingcAAADAVFHETyuARReq6aWOOtrQV3Fl3chxqQL4wQdSTGSJT01kiEnjh7kErhzPlgUwN6wEskwgj9GTcpzmEZgUEq41jDIz2HBknCSBq/rlCBFASQKDzwSGtIkxzATWT0IA9ePijKaEqH0Cw7WJUbeAN7TLEcgE9ksC2PLh0Rca+ijbpioVgAAAIABJREFUc5asVitZLKUkMPkrtfCAAAIAAABgynDpk0ORwBPVFfR2SwN99Yf3lm4eKP7NWn+udA4wSABXTmSKCRPZYsLEEVkAZ1MCo80MliImAqiRwJkJoNInkMlfrxyqBG69PvhfP9s8RK+d7aR8V5VGALEFDAAAAIAZbgHrBNDjIVtFOR2vraKvX6qkvbctp1kWkJ0F5FvB4xl8Czh5IktMnMjh8sdjPC/iVnAkATRqD6O0iAkIoE4C7aECqJNAr4EAGolg8HnAMNvB2qkht6/KESyAkSaFdEbcCtY2ilYEkBV/7Lt89813qy5RrrOaTgt2Ln/KFrBQJpDFgj6AAAAAAJi2AHp0AihFOeWfL6dDHRX06UH7P631F/Kt4NkXwMg9ApMGw0mggQAaZAL1VcGhmcDIRSGRJLBFlsAIAqibFBJtK1gVwI032fbv6PdfaO6lDE8tlVoEKrWWagRQkj8IIAAAAABmLIAsyt2eQBTU1dALNxppw/26t9cNF4ur/TmSAE5kaAQwWyeBwdvAy8dYFEnhPy7HSR5MBCO1iGFbwpIAGm0FSxK4ql+J8FlAtUG0NsI1ig7TMDpCFtCoP2CaTgANtoKDsoGBrWCW/bsx/HDT9W8dfKHpPmW5q2XxUwVQkT8mhgAAAAAAsyqAJ2tq6PWLzbS3s5429wl/vXo4TxbAdDF5IkNMfJAlFYFoJDD4LKAkgMYSGFYAg9rERJLAyAIYWQKNG0UHS6CBACoRqUm0bhs4igB2dYvrO3oC2b9t1/vH9l3qp9fPtVOuq8JQAHlWEAIIAAAAgFnnU0upyFdB7zd56blbtgNpw8fFlDFWBPLNgASyQhBJAvUCuHw8n0e07WBVAI2nhKjFIaFVwkZVwcEj44KLQrQx+RYxoZNC1NnBsgTKIrjmlkFhSLhJId2qFCoC+PSNvk/2XurZ+eUaqe8fLX0MN3YsQSNkAAAA8YjTaafcWic931ZO6/ttP1g9ms/lb0oCGEECo00J0QvgFCTQUACnKIHBAmgggbrK4NtXZQFsEdd1t/KIPikkSABbh+4cauom1vfPIpTF+uMHEEAAAADxiMthp3xfOX3uWhNt7j23ee3Q6UcpYzmBQhBVAJV2MDmyAEoRrTVMxEkhSouYsG1ihClMCjEWwYhtYu4anAUMsyWsiOCaHlUCjaqCg0VQuwW8vr3/d59uffDpg019lOmt4Y2fQYyBAAIAAIhXATxeXk7vNDTRgZsNtPme7XurR4v4OLhABjDQDzBbFsCcIAHMncakECkiC6B8LtBQAuVG0TMRwECbmMkK4CVJAJWIKIHBAtgrbrlxv3XPpQF6tU7p+wcBjDkQQAAAAPGIy+Eki8tFx8or6SsNlbS7x7ExZeT0Iy6AD9LFlROHZySA4drDhLSICTkfGK1PoCKD6nawFBWBmHyfwDCj4gy3gxURlGXQqEWMRgI/fatbXNfRKT7dcefXOxtuJH+l+iIVOGuoWHDxxs8gxkAAAQAAxCNOu4McDgc57C7KrvHQgfYqShtwfSfFnx9FAHMmKYDTlUADATTMBoYXQGMJnIIARpBAVQBbIkogE8BNPXfFp9sHGg42dVC2h2392rj8QQAXABBAAAAA8QiXP1kAj1RV0UvXLtPTvQ0b04ZKeBaQzwPmAihL4FiWuGI8S1w+kcUlUDkTaCyB0bKB0QpElPYwBg2jAzKoLwoJFsHIfQKjj4pLkUORQXV0nCSD+vOAodvBPAPYdufXW7s+SjzQeIcyvWcDAmjDFnDsgQACAACIawF0OOhYeRW91XCZDtxooo33bR+l+AvFpLFsngWUBDCTC6BWApWMYIgERssGhrSJMW4UHVECtVnAEBEMEsAQCYw2KcRAAHWzg2UBDMkCBp0HbO8QN97oadh3tY++cLaNct3SzF8pcAYw5kAAAQAAxCM2m42HYLdRidNBR73l9NUL5bTzlnVN6vCJh8n+I5oMoFYAM6QsoJwJVLaE9aFIYJD4abKATAATh5VgRSHBhSEGRSERRscFS6A0Lk4JX8jouJD2MFPYEtYLoMFWcHe7uL7r9r985npH4pfPNVN+eTWVOF2Ba84CAAAAACB2Auiw8mBfZ1U76LNt5bS63/EgefSY3AZGFUAp+8cEMJoETlUAo0tgiAAaiqC+T6AqgKESmKqEVgSNRsUZngkM1xpGEkDWA3BD572mQ1e6KMtXLV1juyrcLAAAAAAA5h1HsADarZTtK6cD1y/RmjuNacnDZQ9XjhXIRSCZXP4CZwCDIyCBOQYCaLwNHLlNjHY7eCqZwEh9AjVNonXZQH1/QCmiZwJ17WE0Eriumwlg97883TaS9PylO5RVWSdJn0YCbTYH7ngAAAAAzD/a7UgmfywKyz30atMl2tneTGvvu/xJoyfEhPE88ckHUQTQIBMY7Szg3AigKoGRBNC4T2CdTgKjC2DoVjCfEtLVLm5p67647+odev1CG9/+1QugAwIIAAAAgNgcfhfskohoBfCMy0Z5Faw5tI923HKlPTWkZgFV2csQlz3IiLAVrLSJiVwUEhBAnQRq5geHzA4OFkGNDEYUQOO5waFZwHACGF4EdRLYc5UL4PrO7v+7p6U96at1jVz+zrhcAQFUsn/IAAIAAAAgRgKoyQDKEqhkqTKqPfTZG3W0+r7vw+SRU3wUnCJ6y1hEFUClOji8BOoEMNzYuKgCaCSBRgIYmgkMLQypnbIAqgUhl8R1t5gA3hTXt9+/duByJ2VXymf/5GuqCiCKQAAAAAAQI3Typ8kCsq+ZvDx/pY3W91zfkjpge8SygLwJtCKAciYwRAI1Iqi2h5lqs2i5YfRIMY9wmcDwAhi5PYxSIRzaIqZWXHWvjockgNH6BKpbwQEB7Or83fq20dRDF+/SkYpqstnLdBKoXGt2/hIAAAAAYN7RCl+wABZ6q+lLF27QZ1qv0/p7rh8njR4zEMAwEmgogNOXwKkJoIEERpgUEiKAcvBG0bo+gaESyHsE6gSwRdzU3n5n75W79Nq5Tjrq9XEB1GZWlevssGEUHAAAgHjF7I1Yzb7+SCx9jJ9fe6+enQV0HEoePiMm+HMNBHCyVcFqexgeY9EnhkSaF8xaxBg2iTaqCA4zMi58o2hpOzjQHzCkYbQkhHoB5Nu/n+y53rL1K2frqdDt49dwUbOY738zYPbrj/UDEMfgBbCg4WcBaxy0r72cUvtdf8PO6XGhC5wBnKwEhjaJVtvEhJHAKQvgVCTQQACnKYHKWUBWAby+s/PBocutlFNRQYLNQosesz+/Zsfs1x/rByCOwQtgwQtgVhXrC9hMq+82vsW2Xbm88e3e9NCzfxGzgAaNoqNsCYe0hdEEF0AlIo6KC78dHK49jFYAddXBmirhUAFsfbih/e7+Fy52U1ZFNQmCQIsesz+/Zsfs1x/rByCOwQtgwQtgfkU5fbGxmXa3N1Jqn/CPy8eKZMGbqQBGPxNo2BvQSAKNBDCSBAYaRU9fANUqYUkAN3a2/HDv1W56/XwrFXh8EEAzCIjZwfsztpj9+gMQU8z+AJl9/VFgxQolLhtvDv1Oo4u29lqzV46dFld8K1f8o/H06FvAUUTQuEVM6FZwoCBEE4oAqqFtESPwULeCg0VQOzJOUxjS5wuEXgANRJAJ4L16cfXdZnH1nWvisy1Nr7G+f4XeWipzuPi1W/Qs8vt/wWP264/1AxDH4AWwoJGqglkVaxkdrhZoV6ebEoeE/5MwdlR88kH27AqgYSYwuDJYK4DyzGBDCTQSQPuUBNBYAkMzgev6LrPt358ear3OZ/6yBs+sxUtcVPma/fk1O2a//lg/AHEMXgALGql/ndTHjjWG3nPjPK26X+t5cuik+MTYkUBByPREMFJ7mEgSKEVAAHUSqM8CGo+L08hgmPYwWgEMbg+j9ArkbWLunxfX3r0sruvozDp0tYOyfLVSq5d4afNi9ufX7Jj9+mP9AMQxeAEsaAINjB1Wyq/w0MtN9fTOD0eWpg1af8uEbWYCmBNFACNLYHQBjDQzWFMhPAMBXNVzVlzf2fjLr3/8g6Wv11+jvAofBNBMAmJ28P6MLWa//gAAEA5BsMshULHDTnleL73Z4KYtvcVtTMyWTeQGegIq4+F4KH0CFdkLFkDDFjFyf0Bdn8BJCmDYreAwGcEQATTuEaiMiNOKoG5cXO8FceeNC7Xv1tVQrqecztgdZLVayWot4wEAAAAAYDqY/NmtLAQugSwOV9tpV6f9qYSR4kdM1KYtgJOQQDULOIlt4AiZwJCMoGEWUC+BrDpYmROsVgWrZwJZBfDqnou/29vSkJhR6ZKlj8kfBBAAAAAAJkaRPm1k+ty092Y1rerz/oBnARXp04qf0h5m0gJoPC3EcBs4ZFJIUIuYoLFx2tFxgeKQ4CygQbNoSQAlCdQLYLWYerdWTOttFNO6bvbtv3yVMsvLA1k/i6BIYBycAQQAAADA4sNqEwKhCGCB102vNtXSjg7fS6kDJ9X5wCECqJHASQlgaCYw4szgaH0CJy2A0SVQ6Q2oZASZAG64Vf9wV8vVnV+4cJHy3R6NAKqZQAAAAAAA0xEsf2xLuMTupAKvl96td9LW28U/TxgtlCVQzQROWgAjjoyLXhgiCeBJAxGUZVCXCQzqEzg4OQEMbhQtCWCduKut7kdvnzM++8ckkGUCAQAAAABMXQSiCKB0LtBJWT477ekQihOHT/NKXr0Aps+CAEavDmaziacigcZ9AicjgGpwAbxTL+5rPf92RiXL/Nk0Z/+sGgFEEQgAAAAATIhUAKIXQPa9w2KnnEon7W3zUtKA/bdMylQBlORvxfgUBDDMeUBdixjDZtH6M4H6OC2uGCnmoc0CqplAo1FxwTODlYpgFkwIvVwA0243/3zf9UZ+9s9msZJNzvwxAWSZPyUAAAAAABaXAFZ4aV/reUq5V9vDsm1M3LRbwCvGJ1EEMtVG0VOSQEkAE8IKoFwVHFUClWyglBFk279rbrXUHLjKij8qDQTQBgEEAAAAFjRo5DktlrL/WZ5A+y+3Ulp3S2piv+PR8tGj4rIJSQInXQUcpWk0O1uoSqDR7GDj4hBFAPm8YMM+gdJ2cNgJIWG2hXn2r7fxDxs6OhNfuHSTXwMQQ8z+/Jp9/WZnCa4/APELXgDTZ1kCvXquhXa1XKXVdz0/WT5ygmftptQGJkpIAmgwMSSaBE6qWXSpmDQ4OQlM5ALIzv/Vihu7Gz/cd62V3jh/lejxJ2fxZgRx9/yaff1mZwmuPwDxC14A02fpY5TvLqe3z3toc4/15eUjp6T2LUZbutMUwMn1CQzTK1DXJ1DTHkbeEtYJoOG4OP2WsFQAwqp/z//JV+pqqdBdwa8BiCFmf37Nvn6zswTXH4D4BS+AGcHOvaVXWWlnu4tWDFp/IRWDzJUA5syqACpVwZOTQCaAPjH1TuM/7LteT1mVXj4dBcQYsz+/Zl+/2VmC6w9A/IIXwIwotVoo3eeiva3nadX92rOsFYt6di9n5gIYrU+gYX/AojCTQkIbRQe3hQnEoCqAq/pZuPn27+rO6+79V1spq8LHi2JAjDH782v29ZudJbj+AMQveAHMCMFuo9wKN/1J/XnadqMqIbW/+KF0Vm8+BFA+EximSXTUSSGsQCQwNzhUABUJ5ALY5xXX9db+/mB3+/LXmq5SrstLFotltu5CEK/Pr9nXb3aW4PoDEL/gBTCja1dsLaHjDgvllbvpnUYXbekt/ismYAHJm6EALtNFjibCNYoOzQIGWsJoI0QAg6aEaIJLYF+FuL3T53+nzsunoBQ7nFRShj5/Mcfsz6/Z1292luD6AxC/4AUwo2tXZrdQqU3qf/eBz0K7uoQ3mVip1cBZsyiAegmMngWMLIGBFjFRJJBvA9+vFvfcrH4hu8ZFgs0i9US0O2bxRgRxKVBmX7/ZWYLrDwAA08JqswQaIKdX2Om5m+WU2G/79fLRAvGJ8cypb/VOeVtYLQgJxFihHMatYUJaxAT1BtRKYMKQICYPlIur+xp+tu9mPWX63Jqm2DgDCAAAAIA4hGXDmPzZLDZKL3fTc63nKPleVceK4RPicn/2PAlgeAk0rA426hMYRgBXDtjExL5ycVVXfdnB1ouU6fNCAAEAAAAQ39gFizQKjQmg10fPXWuh5N6L6xIHysQVo3lSIci8CKCBCOoEMFKbmOBxcdLIOL79O+QSU/tqf7v5fuvjh6428/YvVpsghz3Wlx8AAAAAIHYZQKvVRkdcFfTHDZfpmbYmWn3P9jcrh4/y6R3zlwUMzQRGHBenqxIOnRksnf9zi+vv1I4913qBvtRYTwVet7TtLUsgAAAAAEDcYRGsgTjDWsJ4PPTWBQ89011WuHLoxDwJYPhMoHFhSLg2McFNoiUB3N5Z8YX3zldw+St2ClIRiFwIAgAAAAAQ1wLIgmUDM3xWeq7NQYkDZb8LmQyyIAXQWAJZH8BVfb5f7b1ZTZk+p+7sH5sCgkkgAAAAAIhLlApgZRuYRUalh/Zc58Ugowmjx+dJACczKSRSixhNm5iRYh6Jg042+q1zf0szL/5gW76CYOdht0oBAAAAABB3GAkg2wZ+ufEcPdte89mUwdOyjOXEQACn0iNQL4AsA5h2z/1o183GHa82NPJG1wEBtDrJzgMCCAAAAEwPNOJcfNf/U0uJlj9OtOYx2nSn+FesHx+b3MEbOT/I4DF3AqiXwcCkEEMRDG0SvXyUZf+k7d+t3d5/oNVPEi17QvqbArCvtd/HMXh+4xt8/gCAaYMXyOK9/olEO7pL25lgcQGU5U8SwIx5EEA2jzicBEaYFDJiERMH3OLudm8drYToxez+AQsffP4AgGmDF8iiFsBdXZZNrLiCj4YLiJ825vZ8oCSARjODpUgYLZJCLgbhvQGHS1n178Pd7d4UCGAM7x+w8MHnDwCYNniBLN7rv3Ip7W73UuKg/R+ZbEmzgRXxS18gAqhIoFQRzDKCbCLIqj7ff957o5Yo4fFZutCLFDy/8Q0+fwDAtMELZPFe/xVP0N7Wekq5V9coZQGVQpAMccW4FHNfIRxpSogkf4kjsgCOHhfZCLukAbuYcqv+1P5rl4iefHKWLvQiBc9vfIPPHwAwbfACWbzX/4kn6JXGetreUZea2l/6iGXgFAGcly3gSBKoEUA1jovJoyXi6jv2Tw72tj7+yoV6qQAExOb+AQsffP4AgGmDF8jivf6fWkp5Xi+93eCmLb2lP+M9AcdzxGUP0mexGtjoXKFGLkPaw4SbFcxk8LiYNFQqbmoXPn6nzk0FXm9Q9S+Y1/sHLHzw+QMApg1eIIv6+rPeeek1AisG8bAzdpIAZkgtYWYlyzdVAdRLoFoRLAlg8pBD/EyH5/3sGhdGvS2A+wcscPD5AwAAMMLhcFBGjY02XzuVsKz/+CNlNvCyiRzeGmbOGkTrtoAjNIseKxRZn0L2XyaoyYOe3+6+4aWMahdfOwAAAAAAmCIWi4UOVzlpV1s5JQ+6/gvLtuklLBYCqBVBaStYEsBicdX96u/uu3me0n0uskEAAQAAAACmjiAI9IHXQ5+52kxJPedOJg4Xa1qzzIMATqpARNoKThyyiKm9zd/Ye+0iZVWVU6m1FB85AAAAAMB0MoBHK6ro1fpLlFQlPJbab3nIz9v5c8WEsRxxxXiM5E8ngfm8CjjtvvDJez8YX/pKYzMvXsEWMAAAAADANLBZrFRsc1C+u5zeuuBh1cA/5T33uABmxVwA2VlELoAjp8WtPcJP3m4sp7wKH5U4XWSz4QwgAAAAAMCUsVqtctgovcpKu7pKeTUwE8BYy19AAMcKRbY1vbtTOHW41kaC3cblzyFAAAEAAAAApozVWkYWwcpDEkBLYuLw6UcJ/vx5EsDIbWICAjhU+nB3p/2JrGoH2Ww2ctisPAAAAAAAwBSxCEwAJQlMr7LRnnY3JQ0K/4PN4F0IAsjnBfuLxKQB51/vaaugLNb+BQIIAAAAgAXNAm/EyjKAUlgpo9JD+66z2cC1V/hUkPkYBRctxnP4+b+Uu+cr97U08zXy9Qol/L8AmPn5W/Trnynx/vcDAEyMiQQw3+2hVxvraUd77TOpA6dj2wJGyf6N5Yup/aXijrb6VFb9m+uRBVAOAMz8/C369c+UeP/7AQAmZoG/wNQikDI6Y7dRgddN79Y7aUtv8a+kptDSZJBYBOtDyDKRW3ss//Pdemn2L1sjW6+ydQ2AmZ+/Rb/+mRLvfz8AwMSYSABZCDYLHa620I7u0vsrRk/GWACl9i+7uiyX2ZpY02plvUrhCgBmfv4W/fpnSrz//QAAE7PAX2Cs/YtWANnX36y20rPdJZ97YvRETAWQj4EbOSVu7yrbwtakSJ82ADDz87fo1z9T4v3vBwCYGJNlAJlUfbPKRts7XLRiqOw3bCpIzDKA/kJxxaD1lzvbXfTNKgdZBJtG/tjXtlhfPrDQWeDP36Jf/0yJ978fAGBiFvgLjE0CUeVPinSfi55rPUfJ96q+I1UDx0YAWUPq5Hs1I3uuX6D0Sk9Q9g8CCMz//C369c+UeP/7AQAmZoG/wGyailpFADMqKmnvlZuU0nP1g4Th0vmvBubzf3PE5f7j4uNDnj99pqOKvlHNMoBK8QcEECyO52/Rr3+mxPvfDwAAc0Vm5mE5Mnkczsyk1wvP0BpbC1HN5ccSB9wP2Vk8PpFDI2ns++B/m04Efo4sfSvGWOTyApAlH+Y/XPerxqWH/vYSucbbqKuri7q6O6T/dt3iAQAAAAAAZiKAGdlcAN/JO0O7TzdRkqeBUu97/46NYlOygMp0kDkXQH+RuGy88L/v+Xkdfemn58k3egMCCAAAAAAwGxzOOiyFnAFkEvjn2XlcAg+UnKCtPZbWhFHWD5DJXoZGAKWYuQDK836VbV+5/98K/3Fx492TVwu+f43LX0uvnPlDBhAAAAAAYGYw8dMGE0AemZn02vFM2tVlOZg4fJJLmVYAl8+iAOrO/en7/+2vGWLbveECW8AAAAAAAFMmIHxyaDOBrx87Qnva3ZQ0KPxWbQeTMcszgqWfJW39ygLoLxTZ72S/++zgLSnrF8j86QMAAAAAAEwRSfyO6ARQkcA3ivJo741aWtVX8VdqO5i5EEAps6gK4HGR/U72u88O3A4RwFudtwIBAAAAAACmSNbhbB6KBHIBzJIKQ944WkD7Wpop5W69kDhcLAuaLICaLdtZE0C2vcwKQUZPi6vunbez313X10e3OtWMH/u6p+MW9bbf5rGUluIzBwAAAACYngBmhwjgOwV59EpjPe1oP5+c2l/Kz+YFpG0uBJAJ5ni+mDJQLG7vqEtjv7vp3j2e6YMAAgAAAPOJ2Rtxmn39seRTSynH5aB3mzy0rbfsn1f62WzgHHHZg9kTQP6zAgKYz7d/t96z/vLNC3bKr/DwNQTD/oVl/pD9i4P73+zrj3eW4PMDwLyY/QE2+/pjjGCzUEatlXZ2lgytGGYCmKuv3J0VAcwKCODKsRLx2c5i/5/7SqjEUhLrP9/8mP3+N/v6450l+PwAMC9mf4DNvv4YY7Va6QNfKe3sOvNVlp1bNiEJ4Gz2AdQK4IrhU+LOW2X//hs1ZVQilOIzivf73+zrj3eW4PMDwLyY/QE2+/pjjCAIlFFjoy//ZcfSFUNnPpHGws2eAGojwZ8vJvSd+X8pZ4889o0qCwRwNjD7/W/29cc7S/D5AWBezP4Am339McYuWCjT56S9N6tpVZ/3h6xHH9u2DUzwmMV2MGziyKp7nh/vaa2ijEoHWYSyWP/55sfs97/Z1x/vLMHnB4B5MfsDbPb1L4AzgAVeJ73SXEvbOyveSx08rhaAzMIZQKX6l00aSRk8KT7bUf61lxtrKNfrIKsVAkjxfv+bff3xzhJ8fgCYF7M/wGZf/wLYAi522KnA66Z365209Xbxf2NNoXlLmFlpA6PO/t3SW/qzNxoclOt10SmHjSyCNdZ/vvkx+/1v9vXHO0vw+QFgXsz+AJt9/QtAAFnYrXa+Fbyn3f180oD9oSSBuTOXQNb42V8kJg7aH+1u976U7mOZPxsvPmEB4vz+N/v6450l+PwAAMCUMAmzWVjYKLu8nPa2NFBK77nilYMl4nJ/Hm8Lw3sDTighF4fIW8ThikW0W79sykjK3fMONvkjs7ySbGUO/vvY7wUAAAAAAPOMJH9WspfZqMBVTl+ob6KdNxoo7Y6neeXQGV64wSqDtbKnFT7tv2n7BzLxY/9fJn9r7rrbdt1spFcbmqnAWUX2Uhf/ffYyKwa9AQAAAADMNzZrWUACi20OyvV46O1zVbT95jladbfGlTQo8O1gZUKITvjY93I8/iCLB/takr/jYtKg8CjlXl35jrZ6evd8NeV5K6hYcPEMoCSANgggAAAAAMB8wypxtRLICjNyvC56ufEc7bl+jnZ3uHdvvV38M1YdzFrESH0C2bawPngD6XE26q2IV/tu6S39u90d7j17W+v5vOE8r5efNVS2m7EFDAAAAAAQQwHkEiiLGTsTeMZu45nAjEoPLwxh1cHbOyteXtXn/UnCSPHvWUVvwshJMXH4pMjGx/ERciPHxOXDZ/6wst/zn57prPziW/UOYgUf7Gewn8V+plY2UQQCAAAAABAjWDPmYAGUgn1tI0GQWsSwPoGsWfTuToF2dRcf3NVVWri7q7R6Z2dJ7c7OkqPbu0qe395po103q+iPm2t4FlH5GcrP5PInhyKeAAAAAABgnlHkzCKwvny20O9tSp9AJ2X5nJRZJdDhaksg0qvKKL3KKoeN0n0uLn+n7I7Az1O2l4MDbWAAAAAAAGKAkqWThE/dmmVfKwLIewXaLHxsnN3KegZK37MIzhjqBVLO/AWkT5MNlP8NAAAAAPEIGomCeAb3v7kx++dn9vUDAEwMXkAgnsH9b27M/vmZff0AABODFxCIZ3D/mxuzf35mXz8AwMTgBQTiGdz/5sbsn5/Z1w8AMDF4AYF4Bve/uTHrZvNHAAAA/0lEQVT752f29QMATAxeQCCewf1vbsz++Zl9/QAAE4MXEIhncP+bG7N/fmZfPwDAxOAFBOIZ3P/mxuyfn9nXDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgClAI1BgZnD/4vrj/gHTBe8PENfgAQBmBvcvrj/uHzBd8P4AcQ0eAGBmcP/i+uP+AdMF7w8Q1+ABAGYG9y+uP+4fMF3w/gBxDR4AYGZw/+L64/4B0wXvDxDX4AEAZgb3L64/7h8wXfD+AHENHgBgZnD/4vrj/gHTBe8PENfgAQBmBvcvrj/uH0CxeX/8f+wk8m3bw/DVAAAAAElFTkSuQmCC",Vqr="data:image/png;base64,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",Wue={deepSeek:Rqr,volcengine:Iqr,kling:Mqr,zhipu:Pqr,qwen:Kpt,wan:Kpt,openai:Fqr,vidu:Nqr,anthropic:Uqr,runninghub:jqr,gemini:Wqr,grsai:Vqr},zqr={class:"optionItem"},Hqr={class:"optionMain"},$qr={class:"optionLabel"},Xqr={class:"optionType"},Gqr={class:"emptyActionWrap"},Yqr=Je({__name:"modelSelect",props:Fc({type:{type:String,default:"all"},size:{type:String,default:"medium"},placeholder:{type:String},changeConfig:{type:Boolean,default:!1}},{modelValue:{type:String,default:""},modelModifiers:{}}),emits:Fc(["change"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=t;async function s(f){if(n.value=f,r.changeConfig){const{data:k}=await mn.post("/modelSelect/getModelDetail",{modelId:f});o("change",f,k)}else o("change",f)}const a=fe([]);An(()=>{u()});function l(f){f&&u()}const d={image:$t("components.modelSelect.type.image"),text:$t("components.modelSelect.type.text"),video:$t("components.modelSelect.type.video")};function u(){mn.post("/modelSelect/getModelList",{type:r.type}).then(f=>{const k=new Map;f.data.forEach(A=>{const p=A.id;k.has(p)||k.set(p,{group:A.name,id:A.id,children:[]}),k.get(p).children.push({id:A.id,label:A.label,value:A.value,vendorId:A.vendorId,type:d[A.type]})}),a.value=Array.from(k.values()),a.value.map(A=>A.children).flat().every(A=>`${A.id}:${A.value}`!==n.value)&&(n.value="")}).catch(f=>{console.error($t("components.modelSelect.msg.fetchModelFailed"),f)})}const h=[{pattern:/gpt|o1|o3|o4|openai/i,provider:"openai"},{pattern:/claude|anthropic/i,provider:"anthropic"},{pattern:/deepseek/i,provider:"deepSeek"},{pattern:/gemini|veo/i,provider:"gemini"},{pattern:/qwen|qwq|tongyi|通义|wanx|万相|wan/i,provider:"qwen"},{pattern:/glm|zhipu|智谱/i,provider:"zhipu"},{pattern:/doubao|seedream|seedance|volc/i,provider:"volcengine"},{pattern:/kling|可灵/i,provider:"kling"},{pattern:/vidu/i,provider:"vidu"},{pattern:/runninghub/i,provider:"runninghub"},{pattern:/grok|xai|grsai/i,provider:"grsai"}];function g(f,k){const A=`${f||""} ${k||""}`.trim();if(!A)return null;const p=h.find(b=>b.pattern.test(A));return p?Wue[p.provider]:null}function m(f){var k;return((k=f==null?void 0:f.slice(0,1))==null?void 0:k.toUpperCase())||"M"}function v(){const f=ku();f.activeMenu="vendorConfig",f.showSetting=!0}return(f,k)=>{const A=yZe,p=uL,b=Rvi,w=Si,O=pA;return xe(),Ut(O,{size:r.size,modelValue:n.value,"onUpdate:modelValue":k[0]||(k[0]=y=>n.value=y),placeholder:r.placeholder??f.$t("components.modelSelect.placeholder"),onChange:s,onPopupVisibleChange:l},{empty:Oe(()=>[ge("div",Gqr,[c(w,{class:"emptyActionButton",size:"small",variant:"text",theme:"primary",onClick:Mr(v,["stop"])},{default:Oe(()=>[Bt(Pe(f.$t("components.modelSelect.goSetting")),1)]),_:1})])]),default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(a),(y,C)=>(xe(),Ut(b,{key:C,label:y.group},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(y.children,_=>(xe(),Ut(p,{key:_.id,value:`${_.id}:${_.value}`,label:_.label},{default:Oe(()=>[ge("div",zqr,[ge("div",Hqr,[g(_.label,_.value)?(xe(),Ut(A,{key:0,size:"24px",shape:"round",image:g(_.label,_.value)},null,8,["image"])):(xe(),Ut(A,{key:1,size:"24px",shape:"round",class:"fallbackAvatar"},{default:Oe(()=>[Bt(Pe(m(_.label)),1)]),_:2},1024)),ge("div",$qr,Pe(_.label),1)]),ge("span",Xqr,Pe(_.type),1)])]),_:2},1032,["value","label"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["size","modelValue","placeholder"])}}}),T8=oo(Yqr,[["__scopeId","data-v-a402fa9b"]]),Zqr={class:"aiConfog"},qqr={class:"banner"},Kqr={class:"content f ac jb"},Jqr={class:"textContent ac"},eKr={class:"btnList f w"},tKr={class:"rightBtnList f nw"},nKr={class:"cardGrid"},iKr={class:"skillCardHeader"},rKr={class:"headerLeft"},oKr={class:"skillName"},sKr={class:"skillCardBody"},aKr={class:"dialogContent"},lKr=Je({__name:"agentConfog",setup(e){const{isElectron:t}=xs(ku()),n=fe([]),r=fe(!1),o=fe(null),s=fe(""),a=[{pattern:/gpt|o1|o3|o4|openai/i,provider:"openai"},{pattern:/claude|anthropic/i,provider:"anthropic"},{pattern:/deepseek/i,provider:"deepSeek"},{pattern:/gemini|veo/i,provider:"gemini"},{pattern:/qwen|qwq|tongyi|通义|wanx|万相|wan/i,provider:"qwen"},{pattern:/glm|zhipu|智谱/i,provider:"zhipu"},{pattern:/doubao|seedream|seedance|volc/i,provider:"volcengine"},{pattern:/kling|可灵/i,provider:"kling"},{pattern:/vidu/i,provider:"vidu"},{pattern:/runninghub/i,provider:"runninghub"},{pattern:/grok|xai|grsai/i,provider:"grsai"}];function l(y){if(!y)return null;const C=Object.keys(Wue).find(_=>_.toLowerCase()===y.toLowerCase());return C?Wue[C]:null}function d(y,C){const _=`${y||""} ${C||""}`.trim();if(!_)return null;const S=a.find(L=>L.pattern.test(_));return S?Wue[S.provider]:null}function u(y){return l(y.icon)||d(y.modelName,y.model)}function h(y){return(y==null?void 0:y.slice(0,1))||"A"}function g(y){if(y.disabled)return window.$message.warning($t("settings.agent.msg.notAvailable"));o.value=y,s.value=y.modelName,r.value=!0}const m=fe(null);function v(){var C,_,S,L,E;o.value&&(o.value.modelName=s.value,o.value.vendorId=m.value);const y={id:(C=o.value)==null?void 0:C.id,name:(_=o.value)==null?void 0:_.name,model:s.value.split(":")[1]||((S=o.value)==null?void 0:S.model),modelName:(L=o.value)==null?void 0:L.modelName,vendorId:s.value.split(":")[0],desc:(E=o.value)==null?void 0:E.desc};mn.post("/setting/agentDeploy/deployAgentModel",y).then(()=>{window.$message.success($t("settings.agent.msg.configSuccess")),A()}).catch(T=>{window.$message.error(`${$t("settings.agent.msg.updateConfigFailed")}${T.message}`)}).finally(()=>{r.value=!1})}async function f(){t.value?await fetch("toonflow://openurlwithbrowser?url=https://api.toonflow.net"):window.open("https://api.toonflow.net","_blank")}const k=fe(!1);function A(){mn.post("/setting/agentDeploy/getAgentDeploy").then(y=>{n.value=y.data.map(C=>({id:C.id,model:C.model,modelName:C.modelName,vendorId:C.vendorId,name:C.name,icon:C.icon,desc:C.desc,disabled:C.disabled}))}).catch(y=>{window.$message.error(`${$t("settings.agent.msg.getAgentListFailed")}${y.message}`)}).finally(()=>{})}An(()=>{A()});async function p(){k.value=!0,await O();const y=w.value.find(C=>C.id==="toonflow");if(!y){window.$message.error($t("settings.agent.msg.toonflowNotFound")),k.value=!1;return}if(!y.inputValues.apiKey){k.value=!1;const C=fe(""),_=co({theme:"warning",header:$t("settings.agent.fillKeyHeader"),body:()=>xn("div",{style:"padding: 8px 0"},[xn(Wu,{modelValue:C.value,"onUpdate:modelValue":S=>C.value=S,placeholder:$t("settings.agent.keyPlaceholder"),type:"password"})]),confirmBtn:$t("settings.agent.confirm"),cancelBtn:$t("settings.agent.cancel"),onConfirm:()=>{if(!C.value){window.$message.warning($t("settings.agent.msg.enterKey"));return}_.hide(),b(C.value)},onClose:()=>{_.hide()}});return}b(y.inputValues.apiKey)}function b(y){k.value=!0,mn.post("/setting/agentDeploy/agentSetKey",{key:y}).then(()=>{window.$message.success($t("settings.agent.msg.configSuccess")),A()}).catch(C=>{window.$message.error(`${$t("settings.agent.msg.updateConfigFailed")}${C.message}`)}).finally(()=>{r.value=!1,k.value=!1})}const w=fe([]);async function O(){try{const y=await mn.post("/setting/vendorConfig/getVendorList");w.value=y.data.map(C=>({...C,enable:C.enable==1}))}catch(y){window.$message.error(`${$t("settings.vendor.msg.getVendorListFailed")}${y.message}`)}}return(y,C)=>{var R;const _=_n("i-good-two"),S=_n("i-share"),L=Si,E=yZe,T=Sg,D=km,P=p2,Q=A2,M=gc,B=f4e("loading");return uu((xe(),Ge("div",Zqr,[ge("div",qqr,[ge("div",Kqr,[ge("div",Jqr,[c(_,{class:"icon",theme:"filled",size:"24",fill:"currentColor"}),ge("span",null,Pe(y.$t("settings.agent.bannerDesc")),1)]),ge("div",eKr,[c(L,{onClick:f},{suffix:Oe(()=>[c(S,{theme:"outline"})]),default:Oe(()=>[Bt(Pe(y.$t("settings.agent.visitWebsite"))+" ",1)]),_:1}),ge("div",tKr,[c(L,{onClick:p},{default:Oe(()=>[Bt(Pe(y.$t("settings.agent.oneClickFill")),1)]),_:1})])])])]),ge("div",nKr,[(xe(!0),Ge(sn,null,Bi(Ae(n),(I,F)=>(xe(),Ut(D,{hoverShadow:"",key:F,class:"skillCard",onClick:j=>g(I)},{default:Oe(()=>[ge("div",iKr,[ge("div",rKr,[u(I)?(xe(),Ut(E,{key:0,image:u(I),shape:"round"},null,8,["image"])):(xe(),Ut(E,{key:1,shape:"round",class:"fallbackAvatar"},{default:Oe(()=>[Bt(Pe(h(I.name)),1)]),_:2},1024)),ge("span",oKr,Pe(I.name),1)]),I.model&&!I.disabled?(xe(),Ut(T,{key:0,theme:"primary",variant:"light",size:"small"},{default:Oe(()=>[Bt(Pe(I.model),1)]),_:2},1024)):I.disabled?(xe(),Ut(T,{key:1,variant:"light",size:"small"},{default:Oe(()=>[Bt(Pe(y.$t("settings.agent.notOpen")),1)]),_:1})):!I.disabled&&!I.model?(xe(),Ut(T,{key:2,theme:"warning",variant:"light",size:"small"},{default:Oe(()=>[Bt(Pe(y.$t("settings.agent.notConfigured")),1)]),_:1})):nn("",!0)]),ge("div",sKr,Pe(I.desc),1)]),_:2},1032,["onClick"]))),128))]),c(M,{visible:Ae(r),"onUpdate:visible":C[1]||(C[1]=I=>Fn(r)?r.value=I:null),header:((R=Ae(o))==null?void 0:R.name)+" "+y.$t("settings.agent.modelConfig"),width:"480px","on-confirm":v,"confirm-btn":y.$t("settings.agent.confirm"),"cancel-btn":y.$t("settings.agent.cancel")},{default:Oe(()=>[ge("div",aKr,[c(Q,{"label-align":"left","label-width":70},{default:Oe(()=>[c(P,{label:y.$t("settings.agent.selectModel")},{default:Oe(()=>[c(T8,{modelValue:Ae(s),"onUpdate:modelValue":C[0]||(C[0]=I=>Fn(s)?s.value=I:null),type:"text"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])])),[[B,Ae(k)]])}}}),cKr=oo(lKr,[["__scopeId","data-v-cbb834b1"]]),dKr={class:"dbConfig"},uKr={class:"actionInfo"},hKr={class:"confirmContent"},fKr={class:"confirmContent"},gKr=Je({__name:"dbConfig",setup(e){const t=fe(!1),n=fe(!1),r=fe(""),o=fe(null),s={deleteAll:{title:()=>$t("settings.db.msg.clearDbTitle"),firstMessage:()=>$t("settings.db.msg.firstConfirm"),secondMessage:()=>$t("settings.db.msg.secondConfirm"),keyword:()=>$t("settings.db.msg.keyword")}},a=X(()=>{const v=s[o.value||"deleteAll"];return{title:v.title(),firstMessage:v.firstMessage(),secondMessage:v.secondMessage(),keyword:v.keyword()}}),l=X(()=>r.value===a.value.keyword),d=X(()=>l.value?$t("settings.db.msg.confirm"):`${$t("settings.db.msg.pleaseInput")}"${a.value.keyword}"`);function u(){o.value="deleteAll",r.value="",t.value=!0}function h(){t.value=!1,n.value=!0}async function g(){if(l.value){n.value=!1,Wh(!0);try{await mn.get("/setting/dbConfig/clearData"),window.$message.success($t("settings.db.msg.cleared")),tie.push("/login")}catch{window.$message.error($t("settings.db.msg.operationFailed"))}finally{Wh(!1),o.value=null,r.value=""}}}function m(){t.value=!1,n.value=!1,o.value=null,r.value="",window.$message.info($t("settings.db.msg.cancelled"))}return(v,f)=>{const k=_n("i-clear"),A=Si,p=km,b=_n("i-attention"),w=gc,O=Wu;return xe(),Ge("div",dKr,[c(p,{class:"actionItem"},{default:Oe(()=>[ge("div",uKr,[ge("h4",null,Pe(v.$t("settings.db.clearDb")),1),ge("p",null,Pe(v.$t("settings.db.clearDbDesc")),1)]),c(A,{theme:"danger",variant:"outline",onClick:u},{icon:Oe(()=>[c(k,{theme:"outline",size:"14",fill:"currentColor"})]),default:Oe(()=>[Bt(" "+Pe(v.$t("settings.db.clearData")),1)]),_:1})]),_:1}),c(w,{visible:t.value,"onUpdate:visible":f[0]||(f[0]=y=>t.value=y),header:a.value.title,"confirm-btn":{content:v.$t("settings.db.msg.confirm"),theme:"danger"},onConfirm:h,onCancel:m},{default:Oe(()=>[ge("div",hKr,[c(b,{theme:"filled",size:"48",fill:"#e34d59"}),ge("p",null,Pe(a.value.firstMessage),1)])]),_:1},8,["visible","header","confirm-btn"]),c(w,{visible:n.value,"onUpdate:visible":f[2]||(f[2]=y=>n.value=y),header:a.value.title,"confirm-btn":{content:d.value,theme:"danger",disabled:!l.value},onConfirm:g,onCancel:m},{default:Oe(()=>[ge("div",fKr,[c(b,{theme:"filled",size:"48",fill:"#e34d59"}),ge("p",null,Pe(a.value.secondMessage),1),c(O,{modelValue:r.value,"onUpdate:modelValue":f[1]||(f[1]=y=>r.value=y),placeholder:`${v.$t("settings.db.msg.pleaseInput")} ${a.value.keyword} ${v.$t("settings.db.confirmAction")}`,class:"confirmInput"},null,8,["modelValue","placeholder"])])]),_:1},8,["visible","header","confirm-btn"])])}}}),mKr=oo(gKr,[["__scopeId","data-v-0f49f50e"]]),kKr={class:"otherConfig"},vKr=Je({__name:"otherConfig",setup(e){const{otherSetting:t,canvasWheelEvent:n}=xs(ku()),r=X({get:()=>{const s=t.value.axiosTimeOut;return s==null||isNaN(s)?600:Math.floor(s/1e3)},set:s=>{s==null||isNaN(s)||(t.value.axiosTimeOut=s*1e3)}});function o(){t.value.chapterReg="/第\\s*([0-90-9零一二三四五六七八九十百千万]+)\\s*[章回节]\\s*([^\\n\\r]*)/g"}return(s,a)=>{const l=Si,d=c2,u=p2,h=Lz,g=x3n,m=OZe,v=A2;return xe(),Ge("div",kKr,[c(v,{"label-align":"top"},{default:Oe(()=>[c(u,{name:"chapterReg"},{label:Oe(()=>[ge("span",null,Pe(s.$t("settings.other.chapterRegex")),1),c(l,{style:{"margin-left":"15px"},onClick:o,size:"small"},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.restoreDefault")),1)]),_:1})]),default:Oe(()=>[c(d,{modelValue:Ae(t).chapterReg,"onUpdate:modelValue":a[0]||(a[0]=f=>Ae(t).chapterReg=f),placeholder:s.$t("settings.other.regexPlaceholder"),style:{width:"400px"}},null,8,["modelValue","placeholder"])]),_:1}),c(u,{label:s.$t("settings.other.requestTimeout"),name:"axiosTimeOut"},{default:Oe(()=>[c(h,{"auto-width":"",suffix:s.$t("settings.other.seconds"),min:10,modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=f=>r.value=f),allowInputOverLimit:!1,placeholder:s.$t("settings.other.inputSeconds")},null,8,["suffix","modelValue","placeholder"])]),_:1},8,["label"]),c(u,{label:s.$t("settings.other.agentCanvasScalingMethod")},{default:Oe(()=>[c(m,{variant:"default-filled",modelValue:Ae(n),"onUpdate:modelValue":a[2]||(a[2]=f=>Fn(n)?n.value=f:null)},{default:Oe(()=>[c(g,{value:"zoom"},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.zoom")),1)]),_:1}),c(g,{value:"scroll"},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.scroll")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"]),c(u,{label:s.$t("settings.other.isInteracting")},{default:Oe(()=>[c(m,{variant:"default-filled",modelValue:Ae(t).interacting,"onUpdate:modelValue":a[3]||(a[3]=f=>Ae(t).interacting=f)},{default:Oe(()=>[c(g,{value:!1},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.closeIsInteracting")),1)]),_:1}),c(g,{value:!0},{default:Oe(()=>[Bt(Pe(s.$t("settings.other.openIsInteracting")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"]),c(u,{label:s.$t("settings.other.assetConcurrency"),name:"assetsBatchGenereateSize"},{default:Oe(()=>[c(h,{"auto-width":"",suffix:s.$t("settings.other.count"),min:1,modelValue:Ae(t).assetsBatchGenereateSize,"onUpdate:modelValue":a[4]||(a[4]=f=>Ae(t).assetsBatchGenereateSize=f),allowInputOverLimit:!1,placeholder:s.$t("settings.other.inputCount")},null,8,["suffix","modelValue","placeholder"])]),_:1},8,["label"])]),_:1})])}}}),AKr=oo(vKr,[["__scopeId","data-v-a6ec5f61"]]),pKr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='96'%20height='96'%3e%3cpath%20d='M0%200%20C2.60491411%203.39771405%202.43893626%206.83010556%202%2011%20C0.20437595%2013.75329021%20-1.05254922%2015.52627461%20-4%2017%20C-9.16062661%2017.49941548%20-9.16062661%2017.49941548%20-12%2017%20C-14.90799783%2014.4555019%20-15.90702057%2013.04601863%20-16.25%209.1875%20C-16.1675%208.465625%20-16.085%207.74375%20-16%207%20C-17.0725%207.639375%20-18.145%208.27875%20-19.25%208.9375%20C-27.64061736%2013.11803647%20-42.1161507%2013.9612831%20-51%2011%20C-51.09796875%2011.67804687%20-51.1959375%2012.35609375%20-51.296875%2013.0546875%20C-52.09650113%2018.03167082%20-53.07549372%2022.54151804%20-55.0625%2027.1875%20C-58.18113878%2034.59280707%20-58.84191514%2041.34103871%20-56%2049%20C-51.69477815%2055.71108112%20-45.90514151%2058.44542058%20-38.375%2060.3125%20C-28.59646317%2061.98237321%20-17.61397475%2061.2378015%20-9%2056%20C-6.49898905%2053.93089054%20-4.42615578%2051.9334749%20-3%2049%20C-2.8015185%2045.84858524%20-2.8015185%2045.84858524%20-3%2043%20C-3.63502441%2042.9498877%20-4.27004883%2042.89977539%20-4.92431641%2042.84814453%20C-7.82522523%2042.61482321%20-10.72505632%2042.37001416%20-13.625%2042.125%20C-14.62402344%2042.04636719%20-15.62304688%2041.96773437%20-16.65234375%2041.88671875%20C-29.19293478%2040.80706522%20-29.19293478%2040.80706522%20-33%2037%20C-32.79953373%2033.85936171%20-32.54877905%2031.72339057%20-30.625%2029.1875%20C-24.50435236%2024.71471903%20-13.19717736%2026.55890184%20-6%2027%20C-2.41396623%2027.60321914%200.69870236%2028.49303823%204%2030%20C4.94875%2030.4125%205.8975%2030.825%206.875%2031.25%20C11.08743551%2034.71906454%2012.65632177%2038.68972676%2014%2043.8125%20C14.64326159%2052.37282738%209.41850308%2059.51339193%204.13671875%2065.7421875%20C-2.45750281%2072.7101218%20-11.41635656%2078.38746195%20-21.19140625%2079.17700195%20C-37.70773611%2079.60385521%20-50.14814106%2078.46993862%20-63%2067%20C-73.50321308%2056.03782298%20-76.52428161%2045.45597262%20-76.2734375%2030.625%20C-75.77333104%2018.46399527%20-69.95822491%208.40894719%20-61.1875%200.1875%20C-43.74979764%20-14.14115465%20-17.3489938%20-15.03579462%200%200%20Z%20'%20fill='%23DA203E'%20transform='translate(80,13)'/%3e%3c/svg%3e";var C6n={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Ho,function(){var n=1e3,r=6e4,o=36e5,s="millisecond",a="second",l="minute",d="hour",u="day",h="week",g="month",m="quarter",v="year",f="date",k="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(Q){var M=["th","st","nd","rd"],B=Q%100;return"["+Q+(M[(B-20)%10]||M[B]||M[0])+"]"}},w=function(Q,M,B){var R=String(Q);return!R||R.length>=M?Q:""+Array(M+1-R.length).join(B)+Q},O={s:w,z:function(Q){var M=-Q.utcOffset(),B=Math.abs(M),R=Math.floor(B/60),I=B%60;return(M<=0?"+":"-")+w(R,2,"0")+":"+w(I,2,"0")},m:function Q(M,B){if(M.date()1)return Q(j[0])}else{var W=M.name;C[W]=M,I=W}return!R&&I&&(y=I),I||!R&&y},E=function(Q,M){if(S(Q))return Q.clone();var B=typeof M=="object"?M:{};return B.date=Q,B.args=arguments,new D(B)},T=O;T.l=L,T.i=S,T.w=function(Q,M){return E(Q,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var D=function(){function Q(B){this.$L=L(B.locale,null,!0),this.parse(B),this.$x=this.$x||B.x||{},this[_]=!0}var M=Q.prototype;return M.parse=function(B){this.$d=function(R){var I=R.date,F=R.utc;if(I===null)return new Date(NaN);if(T.u(I))return new Date;if(I instanceof Date)return new Date(I);if(typeof I=="string"&&!/Z$/i.test(I)){var j=I.match(A);if(j){var W=j[2]-1||0,H=(j[7]||"0").substring(0,3);return F?new Date(Date.UTC(j[1],W,j[3]||1,j[4]||0,j[5]||0,j[6]||0,H)):new Date(j[1],W,j[3]||1,j[4]||0,j[5]||0,j[6]||0,H)}}return new Date(I)}(B),this.init()},M.init=function(){var B=this.$d;this.$y=B.getFullYear(),this.$M=B.getMonth(),this.$D=B.getDate(),this.$W=B.getDay(),this.$H=B.getHours(),this.$m=B.getMinutes(),this.$s=B.getSeconds(),this.$ms=B.getMilliseconds()},M.$utils=function(){return T},M.isValid=function(){return this.$d.toString()!==k},M.isSame=function(B,R){var I=E(B);return this.startOf(R)<=I&&I<=this.endOf(R)},M.isAfter=function(B,R){return E(B){const e=fe("v1.0.7"),t=fe(""),n=fe(null),r=X(()=>n.value?Number(n.value.id):-1),o=fe(null);async function s(a){var u;const l=await mn.post("/project/getSingleProject",{id:a});n.value=l.data[0];const d=await mn.post("/script/getScrptApi",{projectId:a});o.value=((u=d.data)==null?void 0:u.id)||null}return{version:e,activeMenu:t,project:n,projectId:r,currentScriptId:o,setProjectById:s}},{persist:!1}),yKr={class:"about"},CKr={class:"f"},_Kr={class:"appName"},SKr={class:"data"},LKr={class:"version"},xKr={class:"renew ac"},EKr={style:{"margin-left":"5px"}},TKr={class:"codeRepository"},QKr={class:"f"},DKr={class:"github"},BKr={style:{"margin-left":"15px"}},RKr={style:{"font-size":"15px","font-weight":"900"}},IKr={class:"f"},MKr={class:"gitee"},PKr={style:{"margin-left":"15px"}},FKr={style:{"font-size":"15px","font-weight":"900"}},NKr={class:"license"},UKr={class:"ac jb",style:{cursor:"pointer"}},jKr={class:"f"},WKr={class:"data"},VKr={style:{"margin-left":"15px"}},zKr={style:{"font-size":"12px",color:"#666"}},HKr={class:"updateDialog"},$Kr={class:"updateHeader"},XKr={class:"updateIcon"},GKr={class:"updateTitle"},YKr={key:0,class:"versionCompare"},ZKr={class:"versionCard current"},qKr={class:"versionLabel"},KKr={class:"arrow"},JKr={class:"versionCard latest"},eJr={class:"versionLabel"},tJr={key:1,class:"versionTime"},nJr={class:"versionTimeValue"},iJr={key:2,class:"customUrl"},rJr={class:"sourceSelect"},oJr={class:"sourceTitle"},sJr={class:"sourceCards"},aJr=["onClick"],lJr=["src","alt"],cJr={class:"sourceName"},dJr={key:0,class:"checkMark"},uJr={style:{display:"flex","justify-content":"flex-end",gap:"8px","padding-top":"4px"}},hJr=Je({__name:"about",setup(e){const{t}=aI(),{version:n}=xs(OKr()),{isElectron:r,needUpdate:o}=xs(ku()),s=fe(!1),a=fe(""),l=fe(0);let d=null;function u(){if(l.value++,l.value===1&&(d=setTimeout(()=>{l.value=0},3e3)),l.value>=3){if(l.value=0,d&&clearTimeout(d),s.value)return;s.value=!0,i1.info("已开启自定义更新地址")}}const h=fe(!1),g=fe("toonflow"),m=fe([{value:"toonflow",label:"ToonFlow",iconType:"image",iconSrc:wKr,iconClass:"toonflow",iconBg:"#ececec",disabled:!1},{value:"github",label:t("settings.about.github"),iconType:"component",iconName:"github",iconClass:"github",disabled:!0},{value:"atomgit",label:"AtomGit",iconType:"image",iconSrc:pKr,iconClass:"atomgit",iconBg:"#f9f9fb",disabled:!0},{value:"gitee",label:t("settings.about.gitee"),iconType:"component",iconName:"code",iconClass:"gitee",disabled:!0}]),v=fe(!1),f=fe({needUpdate:!1,latestVersion:"",reinstall:!1,time:0,url:"",version:""}),k=X(()=>f.value.time?JB(f.value.time).format("YYYY-MM-DD HH:mm:ss"):"");pt(g,()=>{f.value={needUpdate:!1,latestVersion:"",reinstall:!1,time:0,url:"",version:""}});async function A(_){r.value?await fetch(`toonflow://openurlwithbrowser?url=${_}`):window.open(_,"_blank")}An(async()=>{const{data:_}=await mn.get("/other/getVersion");n.value=_});function p(){f.value={needUpdate:!1,latestVersion:"",reinstall:!1,time:0,url:"",version:""},g.value="toonflow",h.value=!0}function b(_){return{toonflow:"ToonFlow",github:"GitHub",atomgit:"AtomGit",gitee:"Gitee"}[_]}async function w(){v.value=!0;try{const{data:_}=await mn.post("/setting/about/checkUpdate",{source:g.value,url:a.value||null});a.value&&(_.needUpdate=!0),f.value=_,_.needUpdate?window.$message.success(t("settings.about.updateAvailable")):i1.success(t("settings.about.noUpdate"))}catch(_){i1.error(_.message??t("settings.about.updateFailed"))}finally{v.value=!1}}async function O(_){try{return await(await fetch(`toonflow://${_}`)).json()}catch{}}async function y(){v.value=!0;try{if(f.value.reinstall){const _=co.alert({header:t("settings.about.reinstallRequired"),body:f.value.url,onConfirm:()=>{_.destroy()},onClose:()=>{_.destroy()}});try{await fetch(`toonflow://openurlwithbrowser?url=${f.value.url}`)}catch{}return}await mn.post("/setting/about/downloadApp",{url:f.value.url,reinstall:f.value.reinstall,version:f.value.version}),O("apprestart"),i1.success(t("settings.about.updateSuccess")),h.value=!1}catch(_){i1.error(_.message??t("settings.about.updateFailed"))}finally{v.value=!1}}function C(){const _=f.value.reinstall?` -检测到该版本需要重新安装更新,安装过程中可能会替换现有安装,请先保存当前工作。`:"",S=fo.confirm({header:"确认更新",body:`将通过 ${b(g.value)} 更新到 v${f.value.latestVersion},确认继续吗?${_}`,confirmBtn:{content:t("settings.about.confirmUpdate"),theme:"primary"},cancelBtn:t("settings.about.cancel"),onConfirm:async()=>{S.destroy(),await y()},onClose:()=>S.destroy()})}return(_,S)=>{const L=Sg,E=_n("i-refresh"),T=Si,D=CZe,P=km,Q=_n("i-github"),M=_n("i-right"),B=fW,R=_n("i-code"),I=_n("i-notes"),F=Wu,j=_n("i-check-one"),W=gc;return xe(),Ge("div",yKr,[c(P,{bordered:"",style:{width:"100%"},class:"logoCard"},{default:Oe(()=>[ge("div",CKr,[ge("img",{src:lbe,alt:"ToonFlow Logo",class:"logo",onClick:u}),ge("div",_Kr,[S[6]||(S[6]=ge("div",{class:"name"},"ToonFlow",-1)),ge("div",SKr,Pe(_.$t("settings.about.slogan")),1),ge("div",LKr,[c(L,{theme:"primary",shape:"round",size:"small",style:{padding:"10px"}},{default:Oe(()=>[Bt("v"+Pe(Ae(n)),1)]),_:1})])]),ge("div",xKr,[c(D,{count:Ae(o)?1:0,dot:"",offset:[-4,-4]},{default:Oe(()=>[c(T,{theme:"primary",onClick:p},{icon:Oe(()=>[c(E,{theme:"outline",size:"18"})]),default:Oe(()=>[ge("span",EKr,Pe(Ae(o)?_.$t("settings.about.upToDate"):_.$t("settings.about.checkUpdate")),1)]),_:1})]),_:1},8,["count"])])])]),_:1}),ge("div",TKr,[ge("span",null,Pe(_.$t("settings.about.codeRepository")),1),c(P,{bordered:"",style:{width:"100%"},class:"logoCard"},{default:Oe(()=>[ge("div",{class:"ac jb",style:{cursor:"pointer"},onClick:S[0]||(S[0]=H=>A("https://github.com/HBAI-Ltd/Toonflow-app"))},[ge("div",QKr,[ge("div",DKr,[c(Q,{theme:"outline",size:"22",class:"c",style:{width:"100%",height:"100%"}})]),ge("div",BKr,[ge("div",null,[ge("span",RKr,Pe(_.$t("settings.about.githubRepo")),1)]),S[7]||(S[7]=ge("div",null,[ge("span",{style:{"font-size":"12px",color:"#666"}},"https://github.com/HBAI-Ltd/Toonflow-app")],-1))])]),c(M,{theme:"outline",size:"18"})]),c(B),ge("div",{class:"ac jb",style:{cursor:"pointer"},onClick:S[1]||(S[1]=H=>A("https://gitee.com/HBAI-Ltd/Toonflow-app"))},[ge("div",IKr,[ge("div",MKr,[c(R,{theme:"outline",size:"20",class:"c",style:{width:"100%",height:"100%"}})]),ge("div",PKr,[ge("div",null,[ge("span",FKr,Pe(_.$t("settings.about.giteeRepo")),1)]),S[8]||(S[8]=ge("div",null,[ge("span",{style:{"font-size":"12px",color:"#666"}},"https://gitee.com/HBAI-Ltd/Toonflow-app")],-1))])]),c(M,{theme:"outline",size:"18"})])]),_:1})]),ge("div",NKr,[ge("span",null,Pe(_.$t("settings.about.license")),1),c(P,{bordered:"",style:{width:"100%"},class:"logoCard"},{default:Oe(()=>[ge("div",UKr,[ge("div",jKr,[ge("div",WKr,[c(I,{theme:"outline",size:"20",class:"c",style:{width:"100%",height:"100%"}})]),ge("div",VKr,[S[9]||(S[9]=ge("div",null,[ge("span",{style:{"font-size":"15px","font-weight":"900"}},"Apache-2.0 License")],-1)),ge("div",null,[ge("span",zKr,Pe(_.$t("settings.about.licenseDesc")),1)])])]),c(M,{theme:"outline",size:"18"})])]),_:1})]),c(W,{visible:Ae(h),"onUpdate:visible":S[5]||(S[5]=H=>Fn(h)?h.value=H:null),header:!1,"confirm-btn":null,"cancel-btn":null,"close-on-overlay-click":!1,width:"600px"},{footer:Oe(()=>[ge("div",uJr,[c(T,{variant:"outline",onClick:S[3]||(S[3]=H=>h.value=!1),disabled:Ae(v)},{default:Oe(()=>[Bt(Pe(_.$t("settings.about.cancel")),1)]),_:1},8,["disabled"]),c(T,{theme:"primary",onClick:S[4]||(S[4]=H=>Ae(f).needUpdate?C():w()),loading:Ae(v)},{icon:Oe(()=>[c(E,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(Ae(f).needUpdate?_.$t("settings.about.confirmUpdate"):_.$t("settings.about.checkUpdate")),1)]),_:1},8,["loading"])])]),default:Oe(()=>[ge("div",HKr,[ge("div",$Kr,[ge("div",XKr,[c(E,{theme:"outline",size:"28",style:{color:"var(--td-brand-color)"}})]),ge("div",GKr,Pe(Ae(f).needUpdate?_.$t("settings.about.updateAvailable"):Ae(f).latestVersion?_.$t("settings.about.noUpdate"):_.$t("settings.about.selectUpdateSource")),1)]),Ae(f).latestVersion?(xe(),Ge("div",YKr,[ge("div",ZKr,[ge("span",qKr,Pe(_.$t("settings.about.currentVersion")),1),c(L,{theme:"default",shape:"round",size:"medium"},{default:Oe(()=>[Bt("v"+Pe(Ae(n)),1)]),_:1})]),ge("div",KKr,[c(M,{theme:"outline",size:"20",style:{color:"var(--td-brand-color)"}})]),ge("div",JKr,[ge("span",eJr,Pe(_.$t("settings.about.latestVersionLabel")),1),c(L,{theme:"success",shape:"round",size:"medium"},{default:Oe(()=>[Bt("v"+Pe(Ae(f).latestVersion),1)]),_:1})])])):nn("",!0),Ae(k)?(xe(),Ge("div",tJr,[S[10]||(S[10]=ge("span",{class:"versionTimeLabel"},"更新时间",-1)),ge("span",nJr,Pe(Ae(k)),1)])):nn("",!0),Ae(s)?(xe(),Ge("div",iJr,[c(F,{modelValue:Ae(a),"onUpdate:modelValue":S[2]||(S[2]=H=>Fn(a)?a.value=H:null),placeholder:"输入自定义更新地址",clearable:"",style:{"margin-bottom":"12px"}},null,8,["modelValue"])])):nn("",!0),ge("div",rJr,[ge("span",oJr,Pe(_.$t("settings.about.selectUpdateSource")),1),ge("div",sJr,[(xe(!0),Ge(sn,null,Bi(Ae(m),H=>(xe(),Ge("div",{class:Eo(["sourceCard",{active:Ae(g)===H.value,disabled:H.disabled}]),key:H.value,onClick:$=>!H.disabled&&(g.value=H.value)},[ge("div",{class:Eo(["sourceIcon",H.iconClass]),style:no(H.iconBg?{background:H.iconBg}:void 0)},[H.iconType==="image"?(xe(),Ge("img",{key:0,src:H.iconSrc,alt:H.label,style:{width:"22px",height:"22px"}},null,8,lJr)):H.iconName==="github"?(xe(),Ut(Q,{key:1,theme:"outline",size:"22"})):H.iconName==="code"?(xe(),Ut(R,{key:2,theme:"outline",size:"22"})):nn("",!0)],6),ge("span",cJr,Pe(H.label),1),Ae(g)===H.value?(xe(),Ge("div",dJr,[c(j,{theme:"filled",size:"18",style:{color:"var(--td-brand-color)"}})])):nn("",!0)],10,aJr))),128))])])])]),_:1},8,["visible"])])}}}),fJr=oo(hJr,[["__scopeId","data-v-cc71b619"]]),gJr={class:"logout-config"},mJr=Je({__name:"logoutConfig",setup(e){const t=_pe(),n=fe(!1);function r(){const s=fo.confirm({header:$t("settings.logout.logout"),body:$t("settings.logout.confirmLogout"),confirmBtn:{content:$t("settings.logout.logout"),theme:"danger"},cancelBtn:$t("common.cancel"),onConfirm:async()=>{s.destroy(),await o()},onClose:()=>s.destroy()})}async function o(){n.value=!0;try{localStorage.removeItem("token"),localStorage.removeItem("user"),window.$message.success($t("settings.logout.msg.logoutSuccess")),t.push("/login")}catch{window.$message.error($t("settings.logout.msg.logoutFailed"))}finally{n.value=!1}}return(s,a)=>{const l=Ez,d=dL,u=Si,h=Ev;return xe(),Ge("div",gJr,[c(h,{direction:"vertical",size:"medium"},{default:Oe(()=>[c(l,{theme:"warning",message:s.$t("settings.logout.warning")},null,8,["message"]),c(u,{theme:"danger",loading:n.value,onClick:r},{icon:Oe(()=>[c(d,{name:"logout"})]),default:Oe(()=>[Bt(" "+Pe(s.$t("settings.logout.logout")),1)]),_:1},8,["loading"])]),_:1})])}}}),kJr=oo(mJr,[["__scopeId","data-v-e0f76e54"]]);function _6n(){return globalThis._VSCODE_NLS_MESSAGES}function bJe(){return globalThis._VSCODE_NLS_LANGUAGE}const vJr=bJe()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function hme(e,t){let n;return t.length===0?n=e:n=e.replace(/\{(\d+)\}/g,(r,o)=>{const s=o[0],a=t[s];let l=r;return typeof a=="string"?l=a:(typeof a=="number"||typeof a=="boolean"||a===void 0||a===null)&&(l=String(a)),l}),vJr&&(n="["+n.replace(/[aouei]/g,"$&$&")+"]"),n}function U(e,t,...n){return hme(typeof e=="number"?S6n(e,t):t,n)}function S6n(e,t){var r;const n=(r=_6n())==null?void 0:r[e];if(typeof n!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${e} !!!`)}return n}function _t(e,t,...n){let r;typeof e=="number"?r=S6n(e,t):r=t;const o=hme(r,n);return{value:o,original:t===r?o:hme(t,n)}}function AJr(e,t){const n=e;typeof n.vscodeWindowId!="number"&&Object.defineProperty(n,"vscodeWindowId",{get:()=>t})}const Ls=window,kve=class kve{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(t){return this.mapWindowIdToZoomFactor.get(this.getWindowId(t))??1}getWindowId(t){return t.vscodeWindowId}};kve.INSTANCE=new kve;let UFe=kve;function L6n(e,t,n){typeof t=="string"&&(t=e.matchMedia(t)),t.addEventListener("change",n)}function jFe(e){return UFe.INSTANCE.getZoomFactor(e)}const jz=navigator.userAgent,k1=jz.indexOf("Firefox")>=0,gbe=jz.indexOf("AppleWebKit")>=0,pie=jz.indexOf("Chrome")>=0,eR=!pie&&jz.indexOf("Safari")>=0,x6n=!pie&&!eR&&gbe;jz.indexOf("Electron/")>=0;const Jpt=jz.indexOf("Android")>=0;let W8e=!1;if(typeof Ls.matchMedia=="function"){const e=Ls.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),t=Ls.matchMedia("(display-mode: fullscreen)");W8e=e.matches,L6n(Ls,e,({matches:n})=>{W8e&&t.matches||(W8e=n)})}function wJe(){return globalThis.MonacoEnvironment}class pJr{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?GW.isErrorNoTelemetry(t)?new GW(t.message+` +检测到该版本需要重新安装更新,安装过程中可能会替换现有安装,请先保存当前工作。`:"",S=co.confirm({header:"确认更新",body:`将通过 ${b(g.value)} 更新到 v${f.value.latestVersion},确认继续吗?${_}`,confirmBtn:{content:t("settings.about.confirmUpdate"),theme:"primary"},cancelBtn:t("settings.about.cancel"),onConfirm:async()=>{S.destroy(),await y()},onClose:()=>S.destroy()})}return(_,S)=>{const L=Sg,E=_n("i-refresh"),T=Si,D=CZe,P=km,Q=_n("i-github"),M=_n("i-right"),B=fW,R=_n("i-code"),I=_n("i-notes"),F=Wu,j=_n("i-check-one"),W=gc;return xe(),Ge("div",yKr,[c(P,{bordered:"",style:{width:"100%"},class:"logoCard"},{default:Oe(()=>[ge("div",CKr,[ge("img",{src:lbe,alt:"ToonFlow Logo",class:"logo",onClick:u}),ge("div",_Kr,[S[6]||(S[6]=ge("div",{class:"name"},"ToonFlow",-1)),ge("div",SKr,Pe(_.$t("settings.about.slogan")),1),ge("div",LKr,[c(L,{theme:"primary",shape:"round",size:"small",style:{padding:"10px"}},{default:Oe(()=>[Bt("v"+Pe(Ae(n)),1)]),_:1})])]),ge("div",xKr,[c(D,{count:Ae(o)?1:0,dot:"",offset:[-4,-4]},{default:Oe(()=>[c(T,{theme:"primary",onClick:p},{icon:Oe(()=>[c(E,{theme:"outline",size:"18"})]),default:Oe(()=>[ge("span",EKr,Pe(Ae(o)?_.$t("settings.about.upToDate"):_.$t("settings.about.checkUpdate")),1)]),_:1})]),_:1},8,["count"])])])]),_:1}),ge("div",TKr,[ge("span",null,Pe(_.$t("settings.about.codeRepository")),1),c(P,{bordered:"",style:{width:"100%"},class:"logoCard"},{default:Oe(()=>[ge("div",{class:"ac jb",style:{cursor:"pointer"},onClick:S[0]||(S[0]=H=>A("https://github.com/HBAI-Ltd/Toonflow-app"))},[ge("div",QKr,[ge("div",DKr,[c(Q,{theme:"outline",size:"22",class:"c",style:{width:"100%",height:"100%"}})]),ge("div",BKr,[ge("div",null,[ge("span",RKr,Pe(_.$t("settings.about.githubRepo")),1)]),S[7]||(S[7]=ge("div",null,[ge("span",{style:{"font-size":"12px",color:"#666"}},"https://github.com/HBAI-Ltd/Toonflow-app")],-1))])]),c(M,{theme:"outline",size:"18"})]),c(B),ge("div",{class:"ac jb",style:{cursor:"pointer"},onClick:S[1]||(S[1]=H=>A("https://gitee.com/HBAI-Ltd/Toonflow-app"))},[ge("div",IKr,[ge("div",MKr,[c(R,{theme:"outline",size:"20",class:"c",style:{width:"100%",height:"100%"}})]),ge("div",PKr,[ge("div",null,[ge("span",FKr,Pe(_.$t("settings.about.giteeRepo")),1)]),S[8]||(S[8]=ge("div",null,[ge("span",{style:{"font-size":"12px",color:"#666"}},"https://gitee.com/HBAI-Ltd/Toonflow-app")],-1))])]),c(M,{theme:"outline",size:"18"})])]),_:1})]),ge("div",NKr,[ge("span",null,Pe(_.$t("settings.about.license")),1),c(P,{bordered:"",style:{width:"100%"},class:"logoCard"},{default:Oe(()=>[ge("div",UKr,[ge("div",jKr,[ge("div",WKr,[c(I,{theme:"outline",size:"20",class:"c",style:{width:"100%",height:"100%"}})]),ge("div",VKr,[S[9]||(S[9]=ge("div",null,[ge("span",{style:{"font-size":"15px","font-weight":"900"}},"Apache-2.0 License")],-1)),ge("div",null,[ge("span",zKr,Pe(_.$t("settings.about.licenseDesc")),1)])])]),c(M,{theme:"outline",size:"18"})])]),_:1})]),c(W,{visible:Ae(h),"onUpdate:visible":S[5]||(S[5]=H=>Fn(h)?h.value=H:null),header:!1,"confirm-btn":null,"cancel-btn":null,"close-on-overlay-click":!1,width:"600px"},{footer:Oe(()=>[ge("div",uJr,[c(T,{variant:"outline",onClick:S[3]||(S[3]=H=>h.value=!1),disabled:Ae(v)},{default:Oe(()=>[Bt(Pe(_.$t("settings.about.cancel")),1)]),_:1},8,["disabled"]),c(T,{theme:"primary",onClick:S[4]||(S[4]=H=>Ae(f).needUpdate?C():w()),loading:Ae(v)},{icon:Oe(()=>[c(E,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(Ae(f).needUpdate?_.$t("settings.about.confirmUpdate"):_.$t("settings.about.checkUpdate")),1)]),_:1},8,["loading"])])]),default:Oe(()=>[ge("div",HKr,[ge("div",$Kr,[ge("div",XKr,[c(E,{theme:"outline",size:"28",style:{color:"var(--td-brand-color)"}})]),ge("div",GKr,Pe(Ae(f).needUpdate?_.$t("settings.about.updateAvailable"):Ae(f).latestVersion?_.$t("settings.about.noUpdate"):_.$t("settings.about.selectUpdateSource")),1)]),Ae(f).latestVersion?(xe(),Ge("div",YKr,[ge("div",ZKr,[ge("span",qKr,Pe(_.$t("settings.about.currentVersion")),1),c(L,{theme:"default",shape:"round",size:"medium"},{default:Oe(()=>[Bt("v"+Pe(Ae(n)),1)]),_:1})]),ge("div",KKr,[c(M,{theme:"outline",size:"20",style:{color:"var(--td-brand-color)"}})]),ge("div",JKr,[ge("span",eJr,Pe(_.$t("settings.about.latestVersionLabel")),1),c(L,{theme:"success",shape:"round",size:"medium"},{default:Oe(()=>[Bt("v"+Pe(Ae(f).latestVersion),1)]),_:1})])])):nn("",!0),Ae(k)?(xe(),Ge("div",tJr,[S[10]||(S[10]=ge("span",{class:"versionTimeLabel"},"更新时间",-1)),ge("span",nJr,Pe(Ae(k)),1)])):nn("",!0),Ae(s)?(xe(),Ge("div",iJr,[c(F,{modelValue:Ae(a),"onUpdate:modelValue":S[2]||(S[2]=H=>Fn(a)?a.value=H:null),placeholder:"输入自定义更新地址",clearable:"",style:{"margin-bottom":"12px"}},null,8,["modelValue"])])):nn("",!0),ge("div",rJr,[ge("span",oJr,Pe(_.$t("settings.about.selectUpdateSource")),1),ge("div",sJr,[(xe(!0),Ge(sn,null,Bi(Ae(m),H=>(xe(),Ge("div",{class:Eo(["sourceCard",{active:Ae(g)===H.value,disabled:H.disabled}]),key:H.value,onClick:$=>!H.disabled&&(g.value=H.value)},[ge("div",{class:Eo(["sourceIcon",H.iconClass]),style:no(H.iconBg?{background:H.iconBg}:void 0)},[H.iconType==="image"?(xe(),Ge("img",{key:0,src:H.iconSrc,alt:H.label,style:{width:"22px",height:"22px"}},null,8,lJr)):H.iconName==="github"?(xe(),Ut(Q,{key:1,theme:"outline",size:"22"})):H.iconName==="code"?(xe(),Ut(R,{key:2,theme:"outline",size:"22"})):nn("",!0)],6),ge("span",cJr,Pe(H.label),1),Ae(g)===H.value?(xe(),Ge("div",dJr,[c(j,{theme:"filled",size:"18",style:{color:"var(--td-brand-color)"}})])):nn("",!0)],10,aJr))),128))])])])]),_:1},8,["visible"])])}}}),fJr=oo(hJr,[["__scopeId","data-v-471012aa"]]),gJr={class:"logout-config"},mJr=Je({__name:"logoutConfig",setup(e){const t=_pe(),n=fe(!1);function r(){const s=co.confirm({header:$t("settings.logout.logout"),body:$t("settings.logout.confirmLogout"),confirmBtn:{content:$t("settings.logout.logout"),theme:"danger"},cancelBtn:$t("common.cancel"),onConfirm:async()=>{s.destroy(),await o()},onClose:()=>s.destroy()})}async function o(){n.value=!0;try{localStorage.removeItem("token"),localStorage.removeItem("user"),window.$message.success($t("settings.logout.msg.logoutSuccess")),t.push("/login")}catch{window.$message.error($t("settings.logout.msg.logoutFailed"))}finally{n.value=!1}}return(s,a)=>{const l=Ez,d=dL,u=Si,h=Ev;return xe(),Ge("div",gJr,[c(h,{direction:"vertical",size:"medium"},{default:Oe(()=>[c(l,{theme:"warning",message:s.$t("settings.logout.warning")},null,8,["message"]),c(u,{theme:"danger",loading:n.value,onClick:r},{icon:Oe(()=>[c(d,{name:"logout"})]),default:Oe(()=>[Bt(" "+Pe(s.$t("settings.logout.logout")),1)]),_:1},8,["loading"])]),_:1})])}}}),kJr=oo(mJr,[["__scopeId","data-v-e0f76e54"]]);function _6n(){return globalThis._VSCODE_NLS_MESSAGES}function bJe(){return globalThis._VSCODE_NLS_LANGUAGE}const vJr=bJe()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function hme(e,t){let n;return t.length===0?n=e:n=e.replace(/\{(\d+)\}/g,(r,o)=>{const s=o[0],a=t[s];let l=r;return typeof a=="string"?l=a:(typeof a=="number"||typeof a=="boolean"||a===void 0||a===null)&&(l=String(a)),l}),vJr&&(n="["+n.replace(/[aouei]/g,"$&$&")+"]"),n}function U(e,t,...n){return hme(typeof e=="number"?S6n(e,t):t,n)}function S6n(e,t){var r;const n=(r=_6n())==null?void 0:r[e];if(typeof n!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${e} !!!`)}return n}function _t(e,t,...n){let r;typeof e=="number"?r=S6n(e,t):r=t;const o=hme(r,n);return{value:o,original:t===r?o:hme(t,n)}}function AJr(e,t){const n=e;typeof n.vscodeWindowId!="number"&&Object.defineProperty(n,"vscodeWindowId",{get:()=>t})}const Ls=window,kve=class kve{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(t){return this.mapWindowIdToZoomFactor.get(this.getWindowId(t))??1}getWindowId(t){return t.vscodeWindowId}};kve.INSTANCE=new kve;let UFe=kve;function L6n(e,t,n){typeof t=="string"&&(t=e.matchMedia(t)),t.addEventListener("change",n)}function jFe(e){return UFe.INSTANCE.getZoomFactor(e)}const jz=navigator.userAgent,k1=jz.indexOf("Firefox")>=0,gbe=jz.indexOf("AppleWebKit")>=0,pie=jz.indexOf("Chrome")>=0,eR=!pie&&jz.indexOf("Safari")>=0,x6n=!pie&&!eR&&gbe;jz.indexOf("Electron/")>=0;const Jpt=jz.indexOf("Android")>=0;let W8e=!1;if(typeof Ls.matchMedia=="function"){const e=Ls.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),t=Ls.matchMedia("(display-mode: fullscreen)");W8e=e.matches,L6n(Ls,e,({matches:n})=>{W8e&&t.matches||(W8e=n)})}function wJe(){return globalThis.MonacoEnvironment}class pJr{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?GW.isErrorNoTelemetry(t)?new GW(t.message+` `+t.stack):new Error(t.message+` `+t.stack):t},0)}}emit(t){this.listeners.forEach(n=>{n(t)})}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}}const OJe=new pJr;function fme(e){OJe.onUnexpectedError(e)}function zi(e){C2(e)||OJe.onUnexpectedError(e)}function Nc(e){C2(e)||OJe.onUnexpectedExternalError(e)}function WFe(e){if(e instanceof Error){const{name:t,message:n,cause:r}=e,o=e.stacktrace||e.stack;return{$isError:!0,name:t,message:n,stack:o,noTelemetry:GW.isErrorNoTelemetry(e),cause:r?WFe(r):void 0,code:e.code}}return e}const gme="Canceled";function C2(e){return e instanceof lA?!0:e instanceof Error&&e.name===gme&&e.message===gme}class lA extends Error{constructor(){super(gme),this.name=this.message}}function bJr(){const e=new Error(gme);return e.name=e.message,e}function Gv(e){return e?new Error(`Illegal argument: ${e}`):new Error("Illegal argument")}function mme(e){return e?new Error(`Illegal state: ${e}`):new Error("Illegal state")}class wJr extends Error{constructor(t){super("NotSupported"),t&&(this.message=t)}}class GW extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof GW)return t;const n=new GW;return n.message=t.message,n.stack=t.stack,n}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}}class ui extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,ui.prototype)}}function V8e(e,t){if(!e)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function bie(e,t="Unreachable"){throw new Error(t)}function PK(e,t="unexpected state"){if(!e)throw typeof t=="string"?new ui(`Assertion Failed: ${t}`):t}function ebt(e,t="Soft Assertion Failed"){e||zi(new ui(t))}function b6(e){if(!e()){debugger;e(),zi(new ui("Assertion Failed"))}}function wie(e,t){let n=0;for(;n"u"}function Ru(e){return!Qv(e)}function Qv(e){return Sf(e)||e===null}function Oo(e,t){if(!e)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function a9(e){return PK(e!=null,"Argument is `undefined` or `null`."),e}function tR(e){return typeof e=="function"}function CJr(e,t){const n=Math.min(e.length,t.length);for(let r=0;r=0,NK=eb.indexOf("Macintosh")>=0,CJe=(eb.indexOf("Macintosh")>=0||eb.indexOf("iPad")>=0||eb.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,aZ=eb.indexOf("Linux")>=0,T6n=(eb==null?void 0:eb.indexOf("Mobi"))>=0,yJe=!0,Vue=bJe()||iQ,ole=navigator.language.toLowerCase(),tbt=ole):console.error("Unable to resolve platform.");let zue=0;NK?zue=1:FK?zue=3:aZ&&(zue=2);const mh=FK,Tr=NK,v1=aZ,v3=E6n,qy=yJe,EJr=yJe&&typeof KS.importScripts=="function",TJr=EJr?KS.origin:void 0,cA=CJe,Q6n=T6n,z8e=zue,yy=eb,QJr=Vue,DJr=typeof KS.postMessage=="function"&&!KS.importScripts,Oie=(()=>{if(DJr){const e=[];KS.addEventListener("message",n=>{if(n.data&&n.data.vscodeScheduleAsyncWork)for(let r=0,o=e.length;r{const r=++t;e.push({id:r,callback:n}),KS.postMessage({vscodeScheduleAsyncWork:r},"*")}}return e=>setTimeout(e)})(),b0=NK||CJe?2:FK?1:3;let nbt=!0,ibt=!1;function D6n(){if(!ibt){ibt=!0;const e=new Uint8Array(2);e[0]=1,e[1]=2,nbt=new Uint16Array(e.buffer)[0]===513}return nbt}const _Je=!!(yy&&yy.indexOf("Chrome")>=0),BJr=!!(yy&&yy.indexOf("Firefox")>=0),RJr=!!(!_Je&&yy&&yy.indexOf("Safari")>=0),B6n=!!(yy&&yy.indexOf("Edg/")>=0),IJr=!!(yy&&yy.indexOf("Android")>=0),yie={clipboard:{writeText:v3||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:v3||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},pointerEvents:Ls.PointerEvent&&("ontouchstart"in Ls||navigator.maxTouchPoints>0)};class SJe{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,n){this._keyCodeToStr[t]=n,this._strToKeyCode[n.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}}const Hue=new SJe,HFe=new SJe,$Fe=new SJe,R6n=new Array(230),MJr=Object.create(null),PJr=Object.create(null),LJe=[];for(let e=0;e<=193;e++)LJe[e]=-1;(function(){const e="",t=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",e,e],[1,1,"Hyper",0,e,0,e,e,e],[1,2,"Super",0,e,0,e,e,e],[1,3,"Fn",0,e,0,e,e,e],[1,4,"FnLock",0,e,0,e,e,e],[1,5,"Suspend",0,e,0,e,e,e],[1,6,"Resume",0,e,0,e,e,e],[1,7,"Turbo",0,e,0,e,e,e],[1,8,"Sleep",0,e,0,"VK_SLEEP",e,e],[1,9,"WakeUp",0,e,0,e,e,e],[0,10,"KeyA",31,"A",65,"VK_A",e,e],[0,11,"KeyB",32,"B",66,"VK_B",e,e],[0,12,"KeyC",33,"C",67,"VK_C",e,e],[0,13,"KeyD",34,"D",68,"VK_D",e,e],[0,14,"KeyE",35,"E",69,"VK_E",e,e],[0,15,"KeyF",36,"F",70,"VK_F",e,e],[0,16,"KeyG",37,"G",71,"VK_G",e,e],[0,17,"KeyH",38,"H",72,"VK_H",e,e],[0,18,"KeyI",39,"I",73,"VK_I",e,e],[0,19,"KeyJ",40,"J",74,"VK_J",e,e],[0,20,"KeyK",41,"K",75,"VK_K",e,e],[0,21,"KeyL",42,"L",76,"VK_L",e,e],[0,22,"KeyM",43,"M",77,"VK_M",e,e],[0,23,"KeyN",44,"N",78,"VK_N",e,e],[0,24,"KeyO",45,"O",79,"VK_O",e,e],[0,25,"KeyP",46,"P",80,"VK_P",e,e],[0,26,"KeyQ",47,"Q",81,"VK_Q",e,e],[0,27,"KeyR",48,"R",82,"VK_R",e,e],[0,28,"KeyS",49,"S",83,"VK_S",e,e],[0,29,"KeyT",50,"T",84,"VK_T",e,e],[0,30,"KeyU",51,"U",85,"VK_U",e,e],[0,31,"KeyV",52,"V",86,"VK_V",e,e],[0,32,"KeyW",53,"W",87,"VK_W",e,e],[0,33,"KeyX",54,"X",88,"VK_X",e,e],[0,34,"KeyY",55,"Y",89,"VK_Y",e,e],[0,35,"KeyZ",56,"Z",90,"VK_Z",e,e],[0,36,"Digit1",22,"1",49,"VK_1",e,e],[0,37,"Digit2",23,"2",50,"VK_2",e,e],[0,38,"Digit3",24,"3",51,"VK_3",e,e],[0,39,"Digit4",25,"4",52,"VK_4",e,e],[0,40,"Digit5",26,"5",53,"VK_5",e,e],[0,41,"Digit6",27,"6",54,"VK_6",e,e],[0,42,"Digit7",28,"7",55,"VK_7",e,e],[0,43,"Digit8",29,"8",56,"VK_8",e,e],[0,44,"Digit9",30,"9",57,"VK_9",e,e],[0,45,"Digit0",21,"0",48,"VK_0",e,e],[1,46,"Enter",3,"Enter",13,"VK_RETURN",e,e],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",e,e],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",e,e],[1,49,"Tab",2,"Tab",9,"VK_TAB",e,e],[1,50,"Space",10,"Space",32,"VK_SPACE",e,e],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,e,0,e,e,e],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",e,e],[1,64,"F1",59,"F1",112,"VK_F1",e,e],[1,65,"F2",60,"F2",113,"VK_F2",e,e],[1,66,"F3",61,"F3",114,"VK_F3",e,e],[1,67,"F4",62,"F4",115,"VK_F4",e,e],[1,68,"F5",63,"F5",116,"VK_F5",e,e],[1,69,"F6",64,"F6",117,"VK_F6",e,e],[1,70,"F7",65,"F7",118,"VK_F7",e,e],[1,71,"F8",66,"F8",119,"VK_F8",e,e],[1,72,"F9",67,"F9",120,"VK_F9",e,e],[1,73,"F10",68,"F10",121,"VK_F10",e,e],[1,74,"F11",69,"F11",122,"VK_F11",e,e],[1,75,"F12",70,"F12",123,"VK_F12",e,e],[1,76,"PrintScreen",0,e,0,e,e,e],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",e,e],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",e,e],[1,79,"Insert",19,"Insert",45,"VK_INSERT",e,e],[1,80,"Home",14,"Home",36,"VK_HOME",e,e],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",e,e],[1,82,"Delete",20,"Delete",46,"VK_DELETE",e,e],[1,83,"End",13,"End",35,"VK_END",e,e],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",e,e],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",e],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",e],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",e],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",e],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",e,e],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",e,e],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",e,e],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",e,e],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",e,e],[1,94,"NumpadEnter",3,e,0,e,e,e],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",e,e],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",e,e],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",e,e],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",e,e],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",e,e],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",e,e],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",e,e],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",e,e],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",e,e],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",e,e],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",e,e],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",e,e],[1,107,"ContextMenu",58,"ContextMenu",93,e,e,e],[1,108,"Power",0,e,0,e,e,e],[1,109,"NumpadEqual",0,e,0,e,e,e],[1,110,"F13",71,"F13",124,"VK_F13",e,e],[1,111,"F14",72,"F14",125,"VK_F14",e,e],[1,112,"F15",73,"F15",126,"VK_F15",e,e],[1,113,"F16",74,"F16",127,"VK_F16",e,e],[1,114,"F17",75,"F17",128,"VK_F17",e,e],[1,115,"F18",76,"F18",129,"VK_F18",e,e],[1,116,"F19",77,"F19",130,"VK_F19",e,e],[1,117,"F20",78,"F20",131,"VK_F20",e,e],[1,118,"F21",79,"F21",132,"VK_F21",e,e],[1,119,"F22",80,"F22",133,"VK_F22",e,e],[1,120,"F23",81,"F23",134,"VK_F23",e,e],[1,121,"F24",82,"F24",135,"VK_F24",e,e],[1,122,"Open",0,e,0,e,e,e],[1,123,"Help",0,e,0,e,e,e],[1,124,"Select",0,e,0,e,e,e],[1,125,"Again",0,e,0,e,e,e],[1,126,"Undo",0,e,0,e,e,e],[1,127,"Cut",0,e,0,e,e,e],[1,128,"Copy",0,e,0,e,e,e],[1,129,"Paste",0,e,0,e,e,e],[1,130,"Find",0,e,0,e,e,e],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",e,e],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",e,e],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",e,e],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",e,e],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",e,e],[1,136,"KanaMode",0,e,0,e,e,e],[0,137,"IntlYen",0,e,0,e,e,e],[1,138,"Convert",0,e,0,e,e,e],[1,139,"NonConvert",0,e,0,e,e,e],[1,140,"Lang1",0,e,0,e,e,e],[1,141,"Lang2",0,e,0,e,e,e],[1,142,"Lang3",0,e,0,e,e,e],[1,143,"Lang4",0,e,0,e,e,e],[1,144,"Lang5",0,e,0,e,e,e],[1,145,"Abort",0,e,0,e,e,e],[1,146,"Props",0,e,0,e,e,e],[1,147,"NumpadParenLeft",0,e,0,e,e,e],[1,148,"NumpadParenRight",0,e,0,e,e,e],[1,149,"NumpadBackspace",0,e,0,e,e,e],[1,150,"NumpadMemoryStore",0,e,0,e,e,e],[1,151,"NumpadMemoryRecall",0,e,0,e,e,e],[1,152,"NumpadMemoryClear",0,e,0,e,e,e],[1,153,"NumpadMemoryAdd",0,e,0,e,e,e],[1,154,"NumpadMemorySubtract",0,e,0,e,e,e],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",e,e],[1,156,"NumpadClearEntry",0,e,0,e,e,e],[1,0,e,5,"Ctrl",17,"VK_CONTROL",e,e],[1,0,e,4,"Shift",16,"VK_SHIFT",e,e],[1,0,e,6,"Alt",18,"VK_MENU",e,e],[1,0,e,57,"Meta",91,"VK_COMMAND",e,e],[1,157,"ControlLeft",5,e,0,"VK_LCONTROL",e,e],[1,158,"ShiftLeft",4,e,0,"VK_LSHIFT",e,e],[1,159,"AltLeft",6,e,0,"VK_LMENU",e,e],[1,160,"MetaLeft",57,e,0,"VK_LWIN",e,e],[1,161,"ControlRight",5,e,0,"VK_RCONTROL",e,e],[1,162,"ShiftRight",4,e,0,"VK_RSHIFT",e,e],[1,163,"AltRight",6,e,0,"VK_RMENU",e,e],[1,164,"MetaRight",57,e,0,"VK_RWIN",e,e],[1,165,"BrightnessUp",0,e,0,e,e,e],[1,166,"BrightnessDown",0,e,0,e,e,e],[1,167,"MediaPlay",0,e,0,e,e,e],[1,168,"MediaRecord",0,e,0,e,e,e],[1,169,"MediaFastForward",0,e,0,e,e,e],[1,170,"MediaRewind",0,e,0,e,e,e],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",e,e],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",e,e],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",e,e],[1,174,"Eject",0,e,0,e,e,e],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",e,e],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",e,e],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",e,e],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",e,e],[1,179,"LaunchApp1",0,e,0,"VK_MEDIA_LAUNCH_APP1",e,e],[1,180,"SelectTask",0,e,0,e,e,e],[1,181,"LaunchScreenSaver",0,e,0,e,e,e],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",e,e],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",e,e],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",e,e],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",e,e],[1,186,"BrowserStop",0,e,0,"VK_BROWSER_STOP",e,e],[1,187,"BrowserRefresh",0,e,0,"VK_BROWSER_REFRESH",e,e],[1,188,"BrowserFavorites",0,e,0,"VK_BROWSER_FAVORITES",e,e],[1,189,"ZoomToggle",0,e,0,e,e,e],[1,190,"MailReply",0,e,0,e,e,e],[1,191,"MailForward",0,e,0,e,e,e],[1,192,"MailSend",0,e,0,e,e,e],[1,0,e,114,"KeyInComposition",229,e,e,e],[1,0,e,116,"ABNT_C2",194,"VK_ABNT_C2",e,e],[1,0,e,96,"OEM_8",223,"VK_OEM_8",e,e],[1,0,e,0,e,0,"VK_KANA",e,e],[1,0,e,0,e,0,"VK_HANGUL",e,e],[1,0,e,0,e,0,"VK_JUNJA",e,e],[1,0,e,0,e,0,"VK_FINAL",e,e],[1,0,e,0,e,0,"VK_HANJA",e,e],[1,0,e,0,e,0,"VK_KANJI",e,e],[1,0,e,0,e,0,"VK_CONVERT",e,e],[1,0,e,0,e,0,"VK_NONCONVERT",e,e],[1,0,e,0,e,0,"VK_ACCEPT",e,e],[1,0,e,0,e,0,"VK_MODECHANGE",e,e],[1,0,e,0,e,0,"VK_SELECT",e,e],[1,0,e,0,e,0,"VK_PRINT",e,e],[1,0,e,0,e,0,"VK_EXECUTE",e,e],[1,0,e,0,e,0,"VK_SNAPSHOT",e,e],[1,0,e,0,e,0,"VK_HELP",e,e],[1,0,e,0,e,0,"VK_APPS",e,e],[1,0,e,0,e,0,"VK_PROCESSKEY",e,e],[1,0,e,0,e,0,"VK_PACKET",e,e],[1,0,e,0,e,0,"VK_DBE_SBCSCHAR",e,e],[1,0,e,0,e,0,"VK_DBE_DBCSCHAR",e,e],[1,0,e,0,e,0,"VK_ATTN",e,e],[1,0,e,0,e,0,"VK_CRSEL",e,e],[1,0,e,0,e,0,"VK_EXSEL",e,e],[1,0,e,0,e,0,"VK_EREOF",e,e],[1,0,e,0,e,0,"VK_PLAY",e,e],[1,0,e,0,e,0,"VK_ZOOM",e,e],[1,0,e,0,e,0,"VK_NONAME",e,e],[1,0,e,0,e,0,"VK_PA1",e,e],[1,0,e,0,e,0,"VK_OEM_CLEAR",e,e]],n=[],r=[];for(const o of t){const[s,a,l,d,u,h,g,m,v]=o;if(r[a]||(r[a]=!0,MJr[l]=a,PJr[l.toLowerCase()]=a,s&&(LJe[a]=d)),!n[d]){if(n[d]=!0,!u)throw new Error(`String representation missing for key code ${d} around scan code ${l}`);Hue.define(d,u),HFe.define(d,m||u),$Fe.define(d,v||m||u)}h&&(R6n[h]=d)}})();var kS;(function(e){function t(l){return Hue.keyCodeToStr(l)}e.toString=t;function n(l){return Hue.strToKeyCode(l)}e.fromString=n;function r(l){return HFe.keyCodeToStr(l)}e.toUserSettingsUS=r;function o(l){return $Fe.keyCodeToStr(l)}e.toUserSettingsGeneral=o;function s(l){return HFe.strToKeyCode(l)||$Fe.strToKeyCode(l)}e.fromUserSettings=s;function a(l){if(l>=98&&l<=113)return null;switch(l){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return Hue.keyCodeToStr(l)}e.toElectronAccelerator=a})(kS||(kS={}));function Uc(e,t){const n=(t&65535)<<16>>>0;return(e|n)>>>0}function XFe(e,t){if(typeof e=="number"){if(e===0)return null;const n=(e&65535)>>>0,r=(e&4294901760)>>>16;return r!==0?new H8e([sle(n,t),sle(r,t)]):new H8e([sle(n,t)])}else{const n=[];for(let r=0;r=0;S--)yield _[S]}e.reverse=l;function d(_){return!_||_[Symbol.iterator]().next().done===!0}e.isEmpty=d;function u(_){return _[Symbol.iterator]().next().value}e.first=u;function h(_,S){let L=0;for(const E of _)if(S(E,L++))return!0;return!1}e.some=h;function g(_,S){let L=0;for(const E of _)if(!S(E,L++))return!1;return!0}e.every=g;function m(_,S){for(const L of _)if(S(L))return L}e.find=m;function*v(_,S){for(const L of _)S(L)&&(yield L)}e.filter=v;function*f(_,S){let L=0;for(const E of _)yield S(E,L++)}e.map=f;function*k(_,S){let L=0;for(const E of _)yield*S(E,L++)}e.flatMap=k;function*A(..._){for(const S of _)VFe(S)?yield*S:yield S}e.concat=A;function p(_,S,L){let E=L;for(const T of _)E=S(E,T);return E}e.reduce=p;function b(_){let S=0;for(const L of _)S++;return S}e.length=b;function*w(_,S,L=_.length){for(S<-_.length&&(S=0),S<0&&(S+=_.length),L<0?L+=_.length:L>_.length&&(L=_.length);S1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function G4(...e){return Hn(()=>us(e))}class XJr{constructor(t){this._isDisposed=!1,this._fn=t}dispose(){if(!this._isDisposed){if(!this._fn)throw new Error("Unbound disposable context: Need to use an arrow function to preserve the value of this");this._isDisposed=!0,this._fn()}}}function Hn(e){return new XJr(e)}var ED;let xt=(ED=class{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{us(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t||t===ft.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?ED.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}},ED.DISABLE_DISPOSED_WARNING=!1,ED);const uat=class uat{constructor(){this._store=new xt,this._store}dispose(){this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}};uat.None=Object.freeze({dispose(){}});let ft=uat;class ts{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(t){var n;this._isDisposed||t===this._value||((n=this._value)==null||n.dispose(),this._value=t)}clear(){this.value=void 0}dispose(){var t;this._isDisposed=!0,(t=this._value)==null||t.dispose(),this._value=void 0}}class GJr{constructor(t){this._disposable=t,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}class YJr{constructor(t){this.object=t}dispose(){}}class mbe{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{us(this._store.values())}finally{this._store.clear()}}get(t){return this._store.get(t)}set(t,n,r=!1){var o;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),r||(o=this._store.get(t))==null||o.dispose(),this._store.set(t,n)}deleteAndDispose(t){var n;(n=this._store.get(t))==null||n.dispose(),this._store.delete(t)}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}}var US;let Kd=(US=class{constructor(t){this.element=t,this.next=US.Undefined,this.prev=US.Undefined}},US.Undefined=new US(void 0),US);class bg{constructor(){this._first=Kd.Undefined,this._last=Kd.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Kd.Undefined}clear(){let t=this._first;for(;t!==Kd.Undefined;){const n=t.next;t.prev=Kd.Undefined,t.next=Kd.Undefined,t=n}this._first=Kd.Undefined,this._last=Kd.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,n){const r=new Kd(t);if(this._first===Kd.Undefined)this._first=r,this._last=r;else if(n){const s=this._last;this._last=r,r.prev=s,s.next=r}else{const s=this._first;this._first=r,r.next=s,s.prev=r}this._size+=1;let o=!1;return()=>{o||(o=!0,this._remove(r))}}shift(){if(this._first!==Kd.Undefined){const t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==Kd.Undefined){const t=this._last.element;return this._remove(this._last),t}}_remove(t){if(t.prev!==Kd.Undefined&&t.next!==Kd.Undefined){const n=t.prev;n.next=t.next,t.next.prev=n}else t.prev===Kd.Undefined&&t.next===Kd.Undefined?(this._first=Kd.Undefined,this._last=Kd.Undefined):t.next===Kd.Undefined?(this._last=this._last.prev,this._last.next=Kd.Undefined):t.prev===Kd.Undefined&&(this._first=this._first.next,this._first.prev=Kd.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==Kd.Undefined;)yield t.element,t=t.next}}const ZJr=globalThis.performance.now.bind(globalThis.performance);class vu{static create(t){return new vu(t)}constructor(t){this._now=t===!1?Date.now:ZJr,this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var an;(function(e){e.None=()=>ft.None;function t(D,P){return m(D,()=>{},0,void 0,!0,void 0,P)}e.defer=t;function n(D){return(P,Q=null,M)=>{let B=!1,R;return R=D(I=>{if(!B)return R?R.dispose():B=!0,P.call(Q,I)},null,M),B&&R.dispose(),R}}e.once=n;function r(D,P){return e.once(e.filter(D,P))}e.onceIf=r;function o(D,P,Q){return h((M,B=null,R)=>D(I=>M.call(B,P(I)),null,R),Q)}e.map=o;function s(D,P,Q){return h((M,B=null,R)=>D(I=>{P(I),M.call(B,I)},null,R),Q)}e.forEach=s;function a(D,P,Q){return h((M,B=null,R)=>D(I=>P(I)&&M.call(B,I),null,R),Q)}e.filter=a;function l(D){return D}e.signal=l;function d(...D){return(P,Q=null,M)=>{const B=G4(...D.map(R=>R(I=>P.call(Q,I))));return g(B,M)}}e.any=d;function u(D,P,Q,M){let B=Q;return o(D,R=>(B=P(B,R),B),M)}e.reduce=u;function h(D,P){let Q;const M={onWillAddFirstListener(){Q=D(B.fire,B)},onDidRemoveLastListener(){Q==null||Q.dispose()}},B=new at(M);return P==null||P.add(B),B.event}function g(D,P){return P instanceof Array?P.push(D):P&&P.add(D),D}function m(D,P,Q=100,M=!1,B=!1,R,I){let F,j,W,H=0,$;const G={leakWarningThreshold:R,onWillAddFirstListener(){F=D(re=>{H++,j=P(j,re),M&&!W&&(q.fire(j),j=void 0),$=()=>{const J=j;j=void 0,W=void 0,(!M||H>1)&&q.fire(J),H=0},typeof Q=="number"?(W&&clearTimeout(W),W=setTimeout($,Q)):W===void 0&&(W=null,queueMicrotask($))})},onWillRemoveListener(){B&&H>0&&($==null||$())},onDidRemoveLastListener(){$=void 0,F.dispose()}},q=new at(G);return I==null||I.add(q),q.event}e.debounce=m;function v(D,P=0,Q){return e.debounce(D,(M,B)=>M?(M.push(B),M):[B],P,void 0,!0,void 0,Q)}e.accumulate=v;function f(D,P=(M,B)=>M===B,Q){let M=!0,B;return a(D,R=>{const I=M||!P(R,B);return M=!1,B=R,I},Q)}e.latch=f;function k(D,P,Q){return[e.filter(D,P,Q),e.filter(D,M=>!P(M),Q)]}e.split=k;function A(D,P=!1,Q=[],M){let B=Q.slice(),R=D(j=>{B?B.push(j):F.fire(j)});M&&M.add(R);const I=()=>{B==null||B.forEach(j=>F.fire(j)),B=null},F=new at({onWillAddFirstListener(){R||(R=D(j=>F.fire(j)),M&&M.add(R))},onDidAddFirstListener(){B&&(P?setTimeout(I):I())},onDidRemoveLastListener(){R&&R.dispose(),R=null}});return M&&M.add(F),F.event}e.buffer=A;function p(D,P){return(M,B,R)=>{const I=P(new w);return D(function(F){const j=I.evaluate(F);j!==b&&M.call(B,j)},void 0,R)}}e.chain=p;const b=Symbol("HaltChainable");class w{constructor(){this.steps=[]}map(P){return this.steps.push(P),this}forEach(P){return this.steps.push(Q=>(P(Q),Q)),this}filter(P){return this.steps.push(Q=>P(Q)?Q:b),this}reduce(P,Q){let M=Q;return this.steps.push(B=>(M=P(M,B),M)),this}latch(P=(Q,M)=>Q===M){let Q=!0,M;return this.steps.push(B=>{const R=Q||!P(B,M);return Q=!1,M=B,R?B:b}),this}evaluate(P){for(const Q of this.steps)if(P=Q(P),P===b)break;return P}}function O(D,P,Q=M=>M){const M=(...F)=>I.fire(Q(...F)),B=()=>D.on(P,M),R=()=>D.removeListener(P,M),I=new at({onWillAddFirstListener:B,onDidRemoveLastListener:R});return I.event}e.fromNodeEventEmitter=O;function y(D,P,Q=M=>M){const M=(...F)=>I.fire(Q(...F)),B=()=>D.addEventListener(P,M),R=()=>D.removeEventListener(P,M),I=new at({onWillAddFirstListener:B,onDidRemoveLastListener:R});return I.event}e.fromDOMEventEmitter=y;function C(D,P){let Q;const M=new Promise((B,R)=>{const I=n(D)(B,null,P);Q=()=>I.dispose()});return M.cancel=Q,M}e.toPromise=C;function _(D,P){return D(Q=>P.fire(Q))}e.forward=_;function S(D,P,Q){return P(Q),D(M=>P(M))}e.runAndSubscribe=S;class L{constructor(P,Q){this._observable=P,this._counter=0,this._hasChanged=!1;const M={onWillAddFirstListener:()=>{P.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{P.removeObserver(this)}};this.emitter=new at(M),Q&&Q.add(this.emitter)}beginUpdate(P){this._counter++}handlePossibleChange(P){}handleChange(P,Q){this._hasChanged=!0}endUpdate(P){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function E(D,P){return new L(D,P).emitter.event}e.fromObservable=E;function T(D){return(P,Q,M)=>{let B=0,R=!1;const I={beginUpdate(){B++},endUpdate(){B--,B===0&&(D.reportChanges(),R&&(R=!1,P.call(Q)))},handlePossibleChange(){},handleChange(){R=!0}};D.addObserver(I),D.reportChanges();const F={dispose(){D.removeObserver(I)}};return M instanceof xt?M.add(F):Array.isArray(M)&&M.push(F),F}}e.fromObservableLight=T})(an||(an={}));const $N=class $N{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${$N._idPool++}`,$N.all.add(this)}start(t){this._stopWatch=new vu,this.listenerCount=t}stop(){if(this._stopWatch){const t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};$N.all=new Set,$N._idPool=0;let GFe=$N,qJr=-1;const vve=class vve{constructor(t,n,r=(vve._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=n,this.name=r,this._warnCountdown=0}dispose(){var t;(t=this._stacks)==null||t.clear()}check(t,n){const r=this.threshold;if(r<=0||n{const s=this._stacks.get(t.value)||0;this._stacks.set(t.value,s-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,n=0;for(const[r,o]of this._stacks)(!t||n{var l,d,u,h,g,m,v;if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const f=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(f);const k=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],A=new JJr(`${f}. HINT: Stack shows most frequent listener (${k[1]}-times)`,k[0]);return(((l=this._options)==null?void 0:l.onListenerError)||zi)(A),ft.None}if(this._disposed)return ft.None;n&&(t=t.bind(n));const o=new $8e(t);let s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(o.stack=xJe.create(),s=this._leakageMon.check(o.stack,this._size+1)),this._listeners?this._listeners instanceof $8e?(this._deliveryQueue??(this._deliveryQueue=new I6n),this._listeners=[this._listeners,o]):this._listeners.push(o):((u=(d=this._options)==null?void 0:d.onWillAddFirstListener)==null||u.call(d,this),this._listeners=o,(g=(h=this._options)==null?void 0:h.onDidAddFirstListener)==null||g.call(h,this)),(v=(m=this._options)==null?void 0:m.onDidAddListener)==null||v.call(m,this),this._size++;const a=Hn(()=>{s==null||s(),this._removeListener(o)});return r instanceof xt?r.add(a):Array.isArray(r)&&r.push(a),a}),this._event}_removeListener(t){var s,a,l,d;if((a=(s=this._options)==null?void 0:s.onWillRemoveListener)==null||a.call(s,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(d=(l=this._options)==null?void 0:l.onDidRemoveLastListener)==null||d.call(l,this),this._size=0;return}const n=this._listeners,r=n.indexOf(t);if(r===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,n[r]=void 0;const o=this._deliveryQueue.current===this;if(this._size*eeo<=n.length){let u=0;for(let h=0;h0}};const teo=()=>new I6n;class I6n{constructor(){this.i=-1,this.end=0}enqueue(t,n,r){this.i=0,this.end=r,this.current=t,this.value=n}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class rR extends at{constructor(t){super(t),this._isPaused=0,this._eventQueue=new bg,this._mergeFn=t==null?void 0:t.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const t=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(t))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(t){this._size&&(this._isPaused!==0?this._eventQueue.push(t):super.fire(t))}}class M6n extends rR{constructor(t){super(t),this._delay=t.delay??100}fire(t){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(t)}}class neo extends at{constructor(t){super(t),this._queuedEvents=[],this._mergeFn=t==null?void 0:t.merge}fire(t){this.hasListeners()&&(this._queuedEvents.push(t),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(n=>super.fire(n)),this._queuedEvents=[]}))}}class ieo{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new at({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(t){const n={event:t,listener:null};return this.events.push(n),this.hasListeners&&this.hook(n),Hn(iR(()=>{this.hasListeners&&this.unhook(n);const o=this.events.indexOf(n);this.events.splice(o,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(t=>this.hook(t))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(t=>this.unhook(t))}hook(t){t.listener=t.event(n=>this.emitter.fire(n))}unhook(t){var n;(n=t.listener)==null||n.dispose(),t.listener=null}dispose(){var t;this.emitter.dispose();for(const n of this.events)(t=n.listener)==null||t.dispose();this.events=[]}}class Cie{constructor(){this.data=[]}wrapEvent(t,n,r){return(o,s,a)=>t(l=>{const d=this.data[this.data.length-1];if(!n){d?d.buffers.push(()=>o.call(s,l)):o.call(s,l);return}const u=d;if(!u){o.call(s,n(r,l));return}u.items??(u.items=[]),u.items.push(l),u.buffers.length===0&&d.buffers.push(()=>{u.reducedResult??(u.reducedResult=r?u.items.reduce(n,r):u.items.reduce(n)),o.call(s,u.reducedResult)})},void 0,a)}bufferEvents(t){const n={buffers:new Array};this.data.push(n);const r=t();return this.data.pop(),n.buffers.forEach(o=>o()),r}}class oX{constructor(){this.listening=!1,this.inputEvent=an.None,this.inputEventListener=ft.None,this.emitter=new at({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const P6n=Object.freeze(function(e,t){const n=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(n)}}});var Er;(function(e){function t(n){return n===e.None||n===e.Cancelled||n instanceof $ue?!0:!n||typeof n!="object"?!1:typeof n.isCancellationRequested=="boolean"&&typeof n.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:an.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:P6n})})(Er||(Er={}));class $ue{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?P6n:(this._emitter||(this._emitter=new at),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}let ja=class{constructor(t){this._token=void 0,this._parentListener=void 0,this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new $ue),this._token}cancel(){this._token?this._token instanceof $ue&&this._token.cancel():this._token=Er.Cancelled}dispose(t=!1){var n;t&&this.cancel(),(n=this._parentListener)==null||n.dispose(),this._token?this._token instanceof $ue&&this._token.dispose():this._token=Er.None}};function ZFe(e){const t=new ja;return e.add({dispose(){t.cancel()}}),t.token}const F6n=Symbol("MicrotaskDelay");function qFe(e){return!!e&&typeof e.then=="function"}function Fd(e){const t=new ja,n=e(t.token);let r=!1;const o=new Promise((s,a)=>{const l=t.token.onCancellationRequested(()=>{r=!0,l.dispose(),a(new lA)});Promise.resolve(n).then(d=>{l.dispose(),t.dispose(),r?AI(d)&&d.dispose():s(d)},d=>{l.dispose(),t.dispose(),a(d)})});return new class{cancel(){t.cancel(),t.dispose()}then(s,a){return o.then(s,a)}catch(s){return this.then(void 0,s)}finally(s){return o.finally(s)}}}function YW(e,t,n){return new Promise((r,o)=>{const s=t.onCancellationRequested(()=>{s.dispose(),r(n)});e.then(r,o).finally(()=>s.dispose())})}function reo(e,t){return new Promise((n,r)=>{const o=t.onCancellationRequested(()=>{o.dispose(),r(new lA)});e.then(n,r).finally(()=>o.dispose())})}let oeo=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new ja}queue(t){if(this.cancellationTokenSource.token.isCancellationRequested)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=t,!this.queuedPromise){const n=()=>{if(this.queuedPromise=null,this.cancellationTokenSource.token.isCancellationRequested)return;const r=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,r};this.queuedPromise=new Promise(r=>{this.activePromise.then(n,n).then(r)})}return new Promise((n,r)=>{this.queuedPromise.then(n,r)})}return this.activePromise=t(this.cancellationTokenSource.token),new Promise((n,r)=>{this.activePromise.then(o=>{this.activePromise=null,n(o)},o=>{this.activePromise=null,r(o)})})}dispose(){this.cancellationTokenSource.cancel()}};const seo=(e,t)=>{let n=!0;const r=setTimeout(()=>{n=!1,t()},e);return{isTriggered:()=>n,dispose:()=>{clearTimeout(r),n=!1}}},aeo=e=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,e())}),{isTriggered:()=>t,dispose:()=>{t=!1}}};class dA{constructor(t){this.defaultDelay=t,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(t,n=this.defaultDelay){this.task=t,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((o,s)=>{this.doResolve=o,this.doReject=s}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const o=this.task;return this.task=null,o()}}));const r=()=>{var o;this.deferred=null,(o=this.doResolve)==null||o.call(this,null)};return this.deferred=n===F6n?aeo(r):seo(n,r),this.completionPromise}isTriggered(){var t;return!!((t=this.deferred)!=null&&t.isTriggered())}cancel(){var t;this.cancelTimeout(),this.completionPromise&&((t=this.doReject)==null||t.call(this,new lA),this.completionPromise=null)}cancelTimeout(){var t;(t=this.deferred)==null||t.dispose(),this.deferred=null}dispose(){this.cancel()}}class N6n{constructor(t){this.delayer=new dA(t),this.throttler=new oeo}trigger(t,n){return this.delayer.trigger(()=>this.throttler.queue(t),n)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function Cy(e,t){return t?new Promise((n,r)=>{const o=setTimeout(()=>{s.dispose(),n()},e),s=t.onCancellationRequested(()=>{clearTimeout(o),s.dispose(),r(new lA)})}):Fd(n=>Cy(e,n))}function B8(e,t=0,n){const r=setTimeout(()=>{e(),n&&o.dispose()},t),o=Hn(()=>{clearTimeout(r),n==null||n.delete(o)});return n==null||n.add(o),o}function EJe(e,t=r=>!!r,n=null){let r=0;const o=e.length,s=()=>{if(r>=o)return Promise.resolve(n);const a=e[r++];return Promise.resolve(a()).then(d=>t(d)?Promise.resolve(d):s())};return s()}let leo=class{constructor(){this._runningTask=void 0,this._pendingTasks=[]}schedule(t){const n=new pI;return this._pendingTasks.push({task:t,deferred:n,setUndefinedWhenCleared:!1}),this._runIfNotRunning(),n.p}_runIfNotRunning(){this._runningTask===void 0&&this._processQueue()}async _processQueue(){if(this._pendingTasks.length===0)return;const t=this._pendingTasks.shift();if(t){if(this._runningTask)throw new ui;this._runningTask=t.task;try{const n=await t.task();t.deferred.complete(n)}catch(n){t.deferred.error(n)}finally{this._runningTask=void 0,this._processQueue()}}}clearPending(){const t=this._pendingTasks;this._pendingTasks=[];for(const n of t)n.setUndefinedWhenCleared?n.deferred.complete(void 0):n.deferred.error(new lA)}};class I0{constructor(t,n){this._isDisposed=!1,this._token=void 0,typeof t=="function"&&typeof n=="number"&&this.setIfNotSet(t,n)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==void 0&&(clearTimeout(this._token),this._token=void 0)}cancelAndSet(t,n){if(this._isDisposed)throw new ui("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=void 0,t()},n)}setIfNotSet(t,n){if(this._isDisposed)throw new ui("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===void 0&&(this._token=setTimeout(()=>{this._token=void 0,t()},n))}}class TJe{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){var t;(t=this.disposable)==null||t.dispose(),this.disposable=void 0}cancelAndSet(t,n,r=globalThis){if(this.isDisposed)throw new ui("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const o=r.setInterval(()=>{t()},n);this.disposable=Hn(()=>{r.clearInterval(o),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}class Es{constructor(t,n){this.timeoutToken=void 0,this.runner=t,this.timeout=n,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=void 0)}schedule(t=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,t)}get delay(){return this.timeout}set delay(t){this.timeout=t}isScheduled(){return this.timeoutToken!==void 0}onTimeout(){this.timeoutToken=void 0,this.runner&&this.doRun()}doRun(){var t;(t=this.runner)==null||t.call(this)}}let QJe,lZ;(function(){const e=globalThis;typeof e.requestIdleCallback!="function"||typeof e.cancelIdleCallback!="function"?lZ=(t,n,r)=>{Oie(()=>{if(o)return;const s=Date.now()+15;n(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,s-Date.now())}}))});let o=!1;return{dispose(){o||(o=!0)}}}:lZ=(t,n,r)=>{const o=t.requestIdleCallback(n,typeof r=="number"?{timeout:r}:void 0);let s=!1;return{dispose(){s||(s=!0,t.cancelIdleCallback(o))}}},QJe=(t,n)=>lZ(globalThis,t,n)})();class U6n{constructor(t,n){this._didRun=!1,this._executor=()=>{try{this._value=n()}catch(r){this._error=r}finally{this._didRun=!0}},this._handle=lZ(t,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class ceo extends U6n{constructor(t){super(globalThis,t)}}class pI{get isRejected(){var t;return((t=this.outcome)==null?void 0:t.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((t,n)=>{this.completeCallback=t,this.errorCallback=n})}complete(t){return this.isSettled?Promise.resolve():new Promise(n=>{this.completeCallback(t),this.outcome={outcome:0,value:t},n()})}error(t){return this.isSettled?Promise.resolve():new Promise(n=>{this.errorCallback(t),this.outcome={outcome:1,value:t},n()})}cancel(){return this.error(new lA)}}var UK;(function(e){async function t(r){let o;const s=await Promise.all(r.map(a=>a.then(l=>l,l=>{o||(o=l)})));if(typeof o<"u")throw o;return s}e.settled=t;function n(r){return new Promise(async(o,s)=>{try{await r(o,s)}catch(a){s(a)}})}e.withAsyncBody=n})(UK||(UK={}));function deo(e){const t=new ja,n=e(t.token);return new heo(t,async r=>{const o=t.token.onCancellationRequested(()=>{o.dispose(),t.dispose(),r.reject(new lA)});try{for await(const s of n){if(t.token.isCancellationRequested)return;r.emitOne(s)}o.dispose(),t.dispose()}catch(s){o.dispose(),t.dispose(),r.reject(s)}})}class ueo{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(t){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){const n=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(n,t)}else this._unconsumedValues.push(t)}produceFinal(t){this._ensureNoFinalValue(),this._finalValue=t;for(const n of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(n,t);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new ui("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(t,n){n.ok?t.complete(n.value):t.error(n.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){const t=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;return t.ok?Promise.resolve(t.value):Promise.reject(t.error)}else{const t=new pI;return this._unsatisfiedConsumers.push(t),t.p}}}const _k=class _k{constructor(t,n){this._onReturn=n,this._producerConsumer=new ueo,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>{var r;return(r=this._onReturn)==null||r.call(this),Promise.resolve({done:!0,value:void 0})},throw:async r=>(this._finishError(r),{done:!0,value:void 0})},queueMicrotask(async()=>{const r=t({emitOne:o=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}}),emitMany:o=>{for(const s of o)this._producerConsumer.produce({ok:!0,value:{done:!1,value:s}})},reject:o=>this._finishError(o)});if(!this._producerConsumer.hasFinalValue)try{await r,this._finishOk()}catch(o){this._finishError(o)}})}static fromArray(t){return new _k(n=>{n.emitMany(t)})}static fromPromise(t){return new _k(async n=>{n.emitMany(await t)})}static fromPromisesResolveOrder(t){return new _k(async n=>{await Promise.all(t.map(async r=>n.emitOne(await r)))})}static merge(t){return new _k(async n=>{await Promise.all(t.map(async r=>{for await(const o of r)n.emitOne(o)}))})}static map(t,n){return new _k(async r=>{for await(const o of t)r.emitOne(n(o))})}map(t){return _k.map(this,t)}static coalesce(t){return _k.filter(t,n=>!!n)}coalesce(){return _k.coalesce(this)}static filter(t,n){return new _k(async r=>{for await(const o of t)n(o)&&r.emitOne(o)})}filter(t){return _k.filter(this,t)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(t){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:t})}[Symbol.asyncIterator](){return this._iterator}};_k.EMPTY=_k.fromArray([]);let Yv=_k;class heo extends Yv{constructor(t,n){super(n),this._source=t}cancel(){this._source.cancel()}}function j6n(e){return e}class feo{constructor(t,n){this.lastCache=void 0,this.lastArgKey=void 0,typeof t=="function"?(this._fn=t,this._computeKey=j6n):(this._fn=n,this._computeKey=t.getCacheKey)}get(t){const n=this._computeKey(t);return this.lastArgKey!==n&&(this.lastArgKey=n,this.lastCache=this._fn(t)),this.lastCache}}class KFe{get cachedValues(){return this._map}constructor(t,n){this._map=new Map,this._map2=new Map,typeof t=="function"?(this._fn=t,this._computeKey=j6n):(this._fn=n,this._computeKey=t.getCacheKey)}get(t){const n=this._computeKey(t);if(this._map2.has(n))return this._map2.get(n);const r=this._fn(t);return this._map.set(t,r),this._map2.set(n,r),r}}var pT;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Running=1]="Running",e[e.Completed=2]="Completed"})(pT||(pT={}));class zh{constructor(t){this.executor=t,this._state=pT.Uninitialized}get value(){if(this._state===pT.Uninitialized){this._state=pT.Running;try{this._value=this.executor()}catch(t){this._error=t}finally{this._state=pT.Completed}}else if(this._state===pT.Running)throw new Error("Cannot read the value of a lazy that is being initialized");if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}function W6n(e){return!e||typeof e!="string"?!0:e.trim().length===0}const geo=/{(\d+)}/g;function oR(e,...t){return t.length===0?e:e.replace(geo,function(n,r){const o=parseInt(r,10);return isNaN(o)||o<0||o>=t.length?n:t[o]})}function meo(e){return e.replace(/[<>"'&]/g,t=>{switch(t){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return t})}function Y4(e){return e.replace(/[<>&]/g,function(t){switch(t){case"<":return"<";case">":return">";case"&":return"&";default:return t}})}function M0(e){return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function keo(e,t=" "){const n=_ie(e,t);return V6n(n,t)}function _ie(e,t){if(!e||!t)return e;const n=t.length;if(n===0||e.length===0)return e;let r=0;for(;e.indexOf(t,r)===r;)r=r+n;return e.substring(r)}function V6n(e,t){if(!e||!t)return e;const n=t.length,r=e.length;if(n===0||r===0)return e;let o=r,s=-1;for(;s=e.lastIndexOf(t,o-1),!(s===-1||s+n!==o);){if(s===0)return"";o=s}return e.substring(0,o)}function veo(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function z6n(e,t,n={}){if(!e)throw new Error("Cannot create regex from empty string");t||(e=M0(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e=e+"\\b"));let r="";return n.global&&(r+="g"),n.matchCase||(r+="i"),n.multiline&&(r+="m"),n.unicode&&(r+="u"),new RegExp(e,r)}function H6n(e){return e.source==="^"||e.source==="^$"||e.source==="$"||e.source==="^\\s*$"?!1:!!(e.exec("")&&e.lastIndex===0)}function P0(e){return e.split(/\r\n|\r|\n/)}function Og(e){for(let t=0,n=e.length;t=0;n--){const r=e.charCodeAt(n);if(r!==32&&r!==9)return n}return-1}function jK(e,t){return et?1:0}function DJe(e,t,n=0,r=e.length,o=0,s=t.length){for(;nu)return 1}const a=r-n,l=s-o;return al?1:0}function JFe(e,t){return Wz(e,t,0,e.length,0,t.length)}function Wz(e,t,n=0,r=e.length,o=0,s=t.length){for(;n=128||u>=128)return DJe(e.toLowerCase(),t.toLowerCase(),n,r,o,s);l9(d)&&(d-=32),l9(u)&&(u-=32);const h=d-u;if(h!==0)return h}const a=r-n,l=s-o;return al?1:0}function ale(e){return e>=48&&e<=57}function l9(e){return e>=97&&e<=122}function dO(e){return e>=65&&e<=90}function rQ(e,t){return e.length===t.length&&Wz(e,t)===0}function BJe(e,t){const n=t.length;return n<=e.length&&Wz(e,t,0,n)===0}function Aeo(e,t){const n=e.length,r=n-t.length;return r>=0&&Wz(e,t,r,n)===0}function dp(e,t){const n=Math.min(e.length,t.length);let r;for(r=0;r1){const r=e.charCodeAt(t-2);if(Id(r))return RJe(r,n)}return n}class IJe{get offset(){return this._offset}constructor(t,n=0){this._str=t,this._len=t.length,this._offset=n}setOffset(t){this._offset=t}prevCodePoint(){const t=peo(this._str,this._offset);return this._offset-=t>=65536?2:1,t}nextCodePoint(){const t=kme(this._str,this._len,this._offset);return this._offset+=t>=65536?2:1,t}eol(){return this._offset>=this._len}}class vme{get offset(){return this._iterator.offset}constructor(t,n=0){this._iterator=new IJe(t,n)}nextGraphemeLength(){const t=Ame.getInstance(),n=this._iterator,r=n.offset;let o=t.getGraphemeBreakType(n.nextCodePoint());for(;!n.eol();){const s=n.offset,a=t.getGraphemeBreakType(n.nextCodePoint());if(obt(o,a)){n.setOffset(s);break}o=a}return n.offset-r}prevGraphemeLength(){const t=Ame.getInstance(),n=this._iterator,r=n.offset;let o=t.getGraphemeBreakType(n.prevCodePoint());for(;n.offset>0;){const s=n.offset,a=t.getGraphemeBreakType(n.prevCodePoint());if(obt(a,o)){n.setOffset(s);break}o=a}return r-n.offset}eol(){return this._iterator.eol()}}function MJe(e,t){return new vme(e,t).nextGraphemeLength()}function $6n(e,t){return new vme(e,t).prevGraphemeLength()}function beo(e,t){t>0&&w6(e.charCodeAt(t))&&t--;const n=t+MJe(e,t);return[n-$6n(e,n),n]}let X8e;function weo(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function ZW(e){return X8e||(X8e=weo()),X8e.test(e)}const Oeo=/^[\t\n\r\x20-\x7E]*$/;function Sie(e){return Oeo.test(e)}const X6n=/[\u2028\u2029]/;function G6n(e){return X6n.test(e)}function I8(e){return e>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function PJe(e){return e>=127462&&e<=127487||e===8986||e===8987||e===9200||e===9203||e>=9728&&e<=10175||e===11088||e===11093||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129008||e>=129280&&e<=129535||e>=129648&&e<=129782}const yeo="\uFEFF";function FJe(e){return!!(e&&e.length>0&&e.charCodeAt(0)===65279)}function Ceo(e,t=!1){return e?(t&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e):!1}function Y6n(e){return e=e%(2*26),e<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)}function obt(e,t){return e===0?t!==5&&t!==7:e===2&&t===3?!1:e===4||e===2||e===3||t===4||t===2||t===3?!0:!(e===8&&(t===8||t===9||t===11||t===12)||(e===11||e===9)&&(t===9||t===10)||(e===12||e===10)&&t===10||t===5||t===13||t===7||e===1||e===13&&t===14||e===6&&t===6)}const UT=class UT{static getInstance(){return UT._INSTANCE||(UT._INSTANCE=new UT),UT._INSTANCE}constructor(){this._data=_eo()}getGraphemeBreakType(t){if(t<32)return t===10?3:t===13?2:4;if(t<127)return 0;const n=this._data,r=n.length/3;let o=1;for(;o<=r;)if(tn[3*o+1])o=2*o+1;else return n[3*o+2];return 0}};UT._INSTANCE=null;let Ame=UT;function _eo(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function Seo(e,t){if(e===0)return 0;const n=Leo(e,t);if(n!==void 0)return n;const r=new IJe(t,e);return r.prevCodePoint(),r.offset}function Leo(e,t){const n=new IJe(t,e);let r=n.prevCodePoint();for(;xeo(r)||r===65039||r===8419;){if(n.offset===0)return;r=n.prevCodePoint()}if(!PJe(r))return;let o=n.offset;return o>0&&n.prevCodePoint()===8205&&(o=n.offset),o}function xeo(e){return 127995<=e&&e<=127999}const Z6n=" ",Ww=class Ww{static getInstance(t){return Ww.cache.get(Array.from(t))}static getLocales(){return Ww._locales.value}constructor(t){this.confusableDictionary=t}isAmbiguous(t){return this.confusableDictionary.has(t)}getPrimaryConfusable(t){return this.confusableDictionary.get(t)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}};Ww.ambiguousCharacterData=new zh(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,1523,96,8242,96,1370,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,118002,50,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,118003,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,118008,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,118009,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,117974,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,117975,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,117977,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,117978,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,117979,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,117980,71,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,117981,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,117983,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,117984,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,117985,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,117986,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,117987,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,117989,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,117990,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,117991,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,117992,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,117993,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,117994,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,117995,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71910,87,71919,87,117996,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,117997,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,117998,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,71909,90,66293,90,65338,90,8484,90,8488,90,117999,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"cs":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"es":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"fr":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"it":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ja":[8211,45,8218,44,65281,33,8216,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65292,44,65297,49,65307,59],"ko":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pt-BR":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ru":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"zh-hans":[160,32,65374,126,8218,44,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65297,49],"zh-hant":[8211,45,65374,126,8218,44,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89]}')),Ww.cache=new feo({getCacheKey:JSON.stringify},t=>{function n(h){const g=new Map;for(let m=0;m!h.startsWith("_")&&Object.hasOwn(s,h));a.length===0&&(a=["_default"]);let l;for(const h of a){const g=n(s[h]);l=o(l,g)}const d=n(s._common),u=r(d,l);return new Ww(u)}),Ww._locales=new zh(()=>Object.keys(Ww.ambiguousCharacterData.value).filter(t=>!t.startsWith("_")));let WK=Ww;const XN=class XN{static getRawData(){return JSON.parse('{"_common":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999],"cs":[173,8203,12288],"de":[173,8203,12288],"es":[8203,12288],"fr":[173,8203,12288],"it":[160,173,12288],"ja":[173],"ko":[173,12288],"pl":[173,8203,12288],"pt-BR":[173,8203,12288],"qps-ploc":[160,173,8203,12288],"ru":[173,12288],"tr":[160,173,8203,12288],"zh-hans":[160,173,8203,12288],"zh-hant":[173,12288]}')}static getData(){return this._data||(this._data=new Set([...Object.values(XN.getRawData())].flat())),this._data}static isInvisibleCharacter(t){return XN.getData().has(t)}static get codePoints(){return XN.getData()}};XN._data=void 0;let aD=XN;var sbt={};let SU;const G8e=globalThis.vscode;var Mvn;if(typeof G8e<"u"&&typeof G8e.process<"u"){const e=G8e.process;SU={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd(){return e.cwd()}}}else typeof process<"u"&&typeof((Mvn=process==null?void 0:process.versions)==null?void 0:Mvn.node)=="string"?SU={get platform(){return process.platform},get arch(){return process.arch},get env(){return sbt},cwd(){return sbt.VSCODE_CWD||process.cwd()}}:SU={get platform(){return mh?"win32":Tr?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};const pme=SU.cwd,bme=SU.env,Eeo=SU.platform,Teo=65,Qeo=97,Deo=90,Beo=122,lD=46,tg=47,vk=92,VC=58,Reo=63;class q6n extends Error{constructor(t,n,r){let o;typeof n=="string"&&n.indexOf("not ")===0?(o="must not be",n=n.replace(/^not /,"")):o="must be";const s=t.indexOf(".")!==-1?"property":"argument";let a=`The "${t}" ${s} ${o} of type ${n}`;a+=`. Received type ${typeof r}`,super(a),this.code="ERR_INVALID_ARG_TYPE"}}function Ieo(e,t){if(e===null||typeof e!="object")throw new q6n(t,"Object",e)}function Qu(e,t){if(typeof e!="string")throw new q6n(t,"string",e)}const oE=Eeo==="win32";function Cs(e){return e===tg||e===vk}function eNe(e){return e===tg}function zC(e){return e>=Teo&&e<=Deo||e>=Qeo&&e<=Beo}function wme(e,t,n,r){let o="",s=0,a=-1,l=0,d=0;for(let u=0;u<=e.length;++u){if(u2){const h=o.lastIndexOf(n);h===-1?(o="",s=0):(o=o.slice(0,h),s=o.length-1-o.lastIndexOf(n)),a=u,l=0;continue}else if(o.length!==0){o="",s=0,a=u,l=0;continue}}t&&(o+=o.length>0?`${n}..`:"..",s=2)}else o.length>0?o+=`${n}${e.slice(a+1,u)}`:o=e.slice(a+1,u),s=u-a-1;a=u,l=0}else d===lD&&l!==-1?++l:l=-1}return o}function Meo(e){return e?`${e[0]==="."?"":"."}${e}`:""}function K6n(e,t){Ieo(t,"pathObject");const n=t.dir||t.root,r=t.base||`${t.name||""}${Meo(t.ext)}`;return n?n===t.root?`${n}${r}`:`${n}${e}${r}`:r}const w0={resolve(...e){let t="",n="",r=!1;for(let o=e.length-1;o>=-1;o--){let s;if(o>=0){if(s=e[o],Qu(s,`paths[${o}]`),s.length===0)continue}else t.length===0?s=pme():(s=bme[`=${t}`]||pme(),(s===void 0||s.slice(0,2).toLowerCase()!==t.toLowerCase()&&s.charCodeAt(2)===vk)&&(s=`${t}\\`));const a=s.length;let l=0,d="",u=!1;const h=s.charCodeAt(0);if(a===1)Cs(h)&&(l=1,u=!0);else if(Cs(h))if(u=!0,Cs(s.charCodeAt(1))){let g=2,m=g;for(;g2&&Cs(s.charCodeAt(2))&&(u=!0,l=3));if(d.length>0)if(t.length>0){if(d.toLowerCase()!==t.toLowerCase())continue}else t=d;if(r){if(t.length>0)break}else if(n=`${s.slice(l)}\\${n}`,r=u,u&&t.length>0)break}return n=wme(n,!r,"\\",Cs),r?`${t}\\${n}`:`${t}${n}`||"."},normalize(e){Qu(e,"path");const t=e.length;if(t===0)return".";let n=0,r,o=!1;const s=e.charCodeAt(0);if(t===1)return eNe(s)?"\\":e;if(Cs(s))if(o=!0,Cs(e.charCodeAt(1))){let l=2,d=l;for(;l2&&Cs(e.charCodeAt(2))&&(o=!0,n=3));let a=n0&&Cs(e.charCodeAt(t-1))&&(a+="\\"),!o&&r===void 0&&e.includes(":")){if(a.length>=2&&zC(a.charCodeAt(0))&&a.charCodeAt(1)===VC)return`.\\${a}`;let l=e.indexOf(":");do if(l===t-1||Cs(e.charCodeAt(l+1)))return`.\\${a}`;while((l=e.indexOf(":",l+1))!==-1)}return r===void 0?o?`\\${a}`:a:o?`${r}\\${a}`:`${r}${a}`},isAbsolute(e){Qu(e,"path");const t=e.length;if(t===0)return!1;const n=e.charCodeAt(0);return Cs(n)||t>2&&zC(n)&&e.charCodeAt(1)===VC&&Cs(e.charCodeAt(2))},join(...e){if(e.length===0)return".";let t,n;for(let s=0;s0&&(t===void 0?t=n=a:t+=`\\${a}`)}if(t===void 0)return".";let r=!0,o=0;if(typeof n=="string"&&Cs(n.charCodeAt(0))){++o;const s=n.length;s>1&&Cs(n.charCodeAt(1))&&(++o,s>2&&(Cs(n.charCodeAt(2))?++o:r=!1))}if(r){for(;o=2&&(t=`\\${t.slice(o)}`)}return w0.normalize(t)},relative(e,t){if(Qu(e,"from"),Qu(t,"to"),e===t)return"";const n=w0.resolve(e),r=w0.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return"";if(n.length!==e.length||r.length!==t.length){const f=n.split("\\"),k=r.split("\\");f[f.length-1]===""&&f.pop(),k[k.length-1]===""&&k.pop();const A=f.length,p=k.length,b=Ab?k.slice(w).join("\\"):A>b?"..\\".repeat(A-1-w)+"..":"":"..\\".repeat(A-w)+k.slice(w).join("\\")}let o=0;for(;oo&&e.charCodeAt(s-1)===vk;)s--;const a=s-o;let l=0;for(;ll&&t.charCodeAt(d-1)===vk;)d--;const u=d-l,h=ah){if(t.charCodeAt(l+m)===vk)return r.slice(l+m+1);if(m===2)return r.slice(l+m)}a>h&&(e.charCodeAt(o+m)===vk?g=m:m===2&&(g=3)),g===-1&&(g=0)}let v="";for(m=o+g+1;m<=s;++m)(m===s||e.charCodeAt(m)===vk)&&(v+=v.length===0?"..":"\\..");return l+=g,v.length>0?`${v}${r.slice(l,d)}`:(r.charCodeAt(l)===vk&&++l,r.slice(l,d))},toNamespacedPath(e){if(typeof e!="string"||e.length===0)return e;const t=w0.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===vk){if(t.charCodeAt(1)===vk){const n=t.charCodeAt(2);if(n!==Reo&&n!==lD)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(zC(t.charCodeAt(0))&&t.charCodeAt(1)===VC&&t.charCodeAt(2)===vk)return`\\\\?\\${t}`;return t},dirname(e){Qu(e,"path");const t=e.length;if(t===0)return".";let n=-1,r=0;const o=e.charCodeAt(0);if(t===1)return Cs(o)?e:".";if(Cs(o)){if(n=r=1,Cs(e.charCodeAt(1))){let l=2,d=l;for(;l2&&Cs(e.charCodeAt(2))?3:2,r=n);let s=-1,a=!0;for(let l=t-1;l>=r;--l)if(Cs(e.charCodeAt(l))){if(!a){s=l;break}}else a=!1;if(s===-1){if(n===-1)return".";s=n}return e.slice(0,s)},basename(e,t){t!==void 0&&Qu(t,"suffix"),Qu(e,"path");let n=0,r=-1,o=!0,s;if(e.length>=2&&zC(e.charCodeAt(0))&&e.charCodeAt(1)===VC&&(n=2),t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return"";let a=t.length-1,l=-1;for(s=e.length-1;s>=n;--s){const d=e.charCodeAt(s);if(Cs(d)){if(!o){n=s+1;break}}else l===-1&&(o=!1,l=s+1),a>=0&&(d===t.charCodeAt(a)?--a===-1&&(r=s):(a=-1,r=l))}return n===r?r=l:r===-1&&(r=e.length),e.slice(n,r)}for(s=e.length-1;s>=n;--s)if(Cs(e.charCodeAt(s))){if(!o){n=s+1;break}}else r===-1&&(o=!1,r=s+1);return r===-1?"":e.slice(n,r)},extname(e){Qu(e,"path");let t=0,n=-1,r=0,o=-1,s=!0,a=0;e.length>=2&&e.charCodeAt(1)===VC&&zC(e.charCodeAt(0))&&(t=r=2);for(let l=e.length-1;l>=t;--l){const d=e.charCodeAt(l);if(Cs(d)){if(!s){r=l+1;break}continue}o===-1&&(s=!1,o=l+1),d===lD?n===-1?n=l:a!==1&&(a=1):n!==-1&&(a=-1)}return n===-1||o===-1||a===0||a===1&&n===o-1&&n===r+1?"":e.slice(n,o)},format:K6n.bind(null,"\\"),parse(e){Qu(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;const n=e.length;let r=0,o=e.charCodeAt(0);if(n===1)return Cs(o)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(Cs(o)){if(r=1,Cs(e.charCodeAt(1))){let g=2,m=g;for(;g0&&(t.root=e.slice(0,r));let s=-1,a=r,l=-1,d=!0,u=e.length-1,h=0;for(;u>=r;--u){if(o=e.charCodeAt(u),Cs(o)){if(!d){a=u+1;break}continue}l===-1&&(d=!1,l=u+1),o===lD?s===-1?s=u:h!==1&&(h=1):s!==-1&&(h=-1)}return l!==-1&&(s===-1||h===0||h===1&&s===l-1&&s===a+1?t.base=t.name=e.slice(a,l):(t.name=e.slice(a,s),t.base=e.slice(a,l),t.ext=e.slice(s,l))),a>0&&a!==r?t.dir=e.slice(0,a-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},Peo=(()=>{if(oE){const e=/\\/g;return()=>{const t=pme().replace(e,"/");return t.slice(t.indexOf("/"))}}return()=>pme()})(),Jc={resolve(...e){let t="",n=!1;for(let r=e.length-1;r>=0&&!n;r--){const o=e[r];Qu(o,`paths[${r}]`),o.length!==0&&(t=`${o}/${t}`,n=o.charCodeAt(0)===tg)}if(!n){const r=Peo();t=`${r}/${t}`,n=r.charCodeAt(0)===tg}return t=wme(t,!n,"/",eNe),n?`/${t}`:t.length>0?t:"."},normalize(e){if(Qu(e,"path"),e.length===0)return".";const t=e.charCodeAt(0)===tg,n=e.charCodeAt(e.length-1)===tg;return e=wme(e,!t,"/",eNe),e.length===0?t?"/":n?"./":".":(n&&(e+="/"),t?`/${e}`:e)},isAbsolute(e){return Qu(e,"path"),e.length>0&&e.charCodeAt(0)===tg},join(...e){if(e.length===0)return".";const t=[];for(let n=0;n0&&t.push(r)}return t.length===0?".":Jc.normalize(t.join("/"))},relative(e,t){if(Qu(e,"from"),Qu(t,"to"),e===t||(e=Jc.resolve(e),t=Jc.resolve(t),e===t))return"";const n=1,r=e.length,o=r-n,s=1,a=t.length-s,l=ol){if(t.charCodeAt(s+u)===tg)return t.slice(s+u+1);if(u===0)return t.slice(s+u)}else o>l&&(e.charCodeAt(n+u)===tg?d=u:u===0&&(d=0));let h="";for(u=n+d+1;u<=r;++u)(u===r||e.charCodeAt(u)===tg)&&(h+=h.length===0?"..":"/..");return`${h}${t.slice(s+d)}`},toNamespacedPath(e){return e},dirname(e){if(Qu(e,"path"),e.length===0)return".";const t=e.charCodeAt(0)===tg;let n=-1,r=!0;for(let o=e.length-1;o>=1;--o)if(e.charCodeAt(o)===tg){if(!r){n=o;break}}else r=!1;return n===-1?t?"/":".":t&&n===1?"//":e.slice(0,n)},basename(e,t){t!==void 0&&Qu(t,"suffix"),Qu(e,"path");let n=0,r=-1,o=!0,s;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return"";let a=t.length-1,l=-1;for(s=e.length-1;s>=0;--s){const d=e.charCodeAt(s);if(d===tg){if(!o){n=s+1;break}}else l===-1&&(o=!1,l=s+1),a>=0&&(d===t.charCodeAt(a)?--a===-1&&(r=s):(a=-1,r=l))}return n===r?r=l:r===-1&&(r=e.length),e.slice(n,r)}for(s=e.length-1;s>=0;--s)if(e.charCodeAt(s)===tg){if(!o){n=s+1;break}}else r===-1&&(o=!1,r=s+1);return r===-1?"":e.slice(n,r)},extname(e){Qu(e,"path");let t=-1,n=0,r=-1,o=!0,s=0;for(let a=e.length-1;a>=0;--a){const l=e[a];if(l==="/"){if(!o){n=a+1;break}continue}r===-1&&(o=!1,r=a+1),l==="."?t===-1?t=a:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||r===-1||s===0||s===1&&t===r-1&&t===n+1?"":e.slice(t,r)},format:K6n.bind(null,"/"),parse(e){Qu(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;const n=e.charCodeAt(0)===tg;let r;n?(t.root="/",r=1):r=0;let o=-1,s=0,a=-1,l=!0,d=e.length-1,u=0;for(;d>=r;--d){const h=e.charCodeAt(d);if(h===tg){if(!l){s=d+1;break}continue}a===-1&&(l=!1,a=d+1),h===lD?o===-1?o=d:u!==1&&(u=1):o!==-1&&(u=-1)}if(a!==-1){const h=s===0&&n?1:s;o===-1||u===0||u===1&&o===a-1&&o===s+1?t.base=t.name=e.slice(h,a):(t.name=e.slice(h,o),t.base=e.slice(h,a),t.ext=e.slice(o,a))}return s>0?t.dir=e.slice(0,s-1):n&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};Jc.win32=w0.win32=w0;Jc.posix=w0.posix=Jc;const J6n=oE?w0.normalize:Jc.normalize,Feo=oE?w0.resolve:Jc.resolve,Neo=oE?w0.relative:Jc.relative,Xue=oE?w0.dirname:Jc.dirname,JS=oE?w0.basename:Jc.basename,Ueo=oE?w0.extname:Jc.extname,o3=oE?w0.sep:Jc.sep,jeo=/^\w[\w\d+.-]*$/,Weo=/^\//,Veo=/^\/\//;function zeo(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!jeo.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!Weo.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(Veo.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function Heo(e,t){return!e&&!t?"file":e}function $eo(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==Mb&&(t=Mb+t):t=Mb;break}return t}const Tc="",Mb="/",Xeo=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;let vi=class Gue{static isUri(t){return t instanceof Gue?!0:!t||typeof t!="object"?!1:typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function"}constructor(t,n,r,o,s,a=!1){typeof t=="object"?(this.scheme=t.scheme||Tc,this.authority=t.authority||Tc,this.path=t.path||Tc,this.query=t.query||Tc,this.fragment=t.fragment||Tc):(this.scheme=Heo(t,a),this.authority=n||Tc,this.path=$eo(this.scheme,r||Tc),this.query=o||Tc,this.fragment=s||Tc,zeo(this,a))}get fsPath(){return Ome(this,!1)}with(t){if(!t)return this;let{scheme:n,authority:r,path:o,query:s,fragment:a}=t;return n===void 0?n=this.scheme:n===null&&(n=Tc),r===void 0?r=this.authority:r===null&&(r=Tc),o===void 0?o=this.path:o===null&&(o=Tc),s===void 0?s=this.query:s===null&&(s=Tc),a===void 0?a=this.fragment:a===null&&(a=Tc),n===this.scheme&&r===this.authority&&o===this.path&&s===this.query&&a===this.fragment?this:new AP(n,r,o,s,a)}static parse(t,n=!1){const r=Xeo.exec(t);return r?new AP(r[2]||Tc,lle(r[4]||Tc),lle(r[5]||Tc),lle(r[7]||Tc),lle(r[9]||Tc),n):new AP(Tc,Tc,Tc,Tc,Tc)}static file(t){let n=Tc;if(mh&&(t=t.replace(/\\/g,Mb)),t[0]===Mb&&t[1]===Mb){const r=t.indexOf(Mb,2);r===-1?(n=t.substring(2),t=Mb):(n=t.substring(2,r),t=t.substring(r)||Mb)}return new AP("file",n,t,Tc,Tc)}static from(t,n){return new AP(t.scheme,t.authority,t.path,t.query,t.fragment,n)}static joinPath(t,...n){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let r;return mh&&t.scheme==="file"?r=Gue.file(w0.join(Ome(t,!0),...n)).path:r=Jc.join(t.path,...n),t.with({path:r})}toString(t=!1){return tNe(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof Gue)return t;{const n=new AP(t);return n._formatted=t.external??null,n._fsPath=t._sep===eEn?t.fsPath??null:null,n}}else return t}};const eEn=mh?1:void 0;let AP=class extends vi{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=Ome(this,!1)),this._fsPath}toString(t=!1){return t?tNe(this,!0):(this._formatted||(this._formatted=tNe(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=eEn),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}};const tEn={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function abt(e,t,n){let r,o=-1;for(let s=0;s=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||a===45||a===46||a===95||a===126||t&&a===47||n&&a===91||n&&a===93||n&&a===58)o!==-1&&(r+=encodeURIComponent(e.substring(o,s)),o=-1),r!==void 0&&(r+=e.charAt(s));else{r===void 0&&(r=e.substr(0,s));const l=tEn[a];l!==void 0?(o!==-1&&(r+=encodeURIComponent(e.substring(o,s)),o=-1),r+=l):o===-1&&(o=s)}}return o!==-1&&(r+=encodeURIComponent(e.substring(o))),r!==void 0?r:e}function Geo(e){let t;for(let n=0;n1&&e.scheme==="file"?n=`//${e.authority}${e.path}`:e.path.charCodeAt(0)===47&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&e.path.charCodeAt(2)===58?t?n=e.path.substr(1):n=e.path[1].toLowerCase()+e.path.substr(2):n=e.path,mh&&(n=n.replace(/\//g,"\\")),n}function tNe(e,t){const n=t?Geo:abt;let r="",{scheme:o,authority:s,path:a,query:l,fragment:d}=e;if(o&&(r+=o,r+=":"),(s||o==="file")&&(r+=Mb,r+=Mb),s){let u=s.indexOf("@");if(u!==-1){const h=s.substr(0,u);s=s.substr(u+1),u=h.lastIndexOf(":"),u===-1?r+=n(h,!1,!1):(r+=n(h.substr(0,u),!1,!1),r+=":",r+=n(h.substr(u+1),!1,!0)),r+="@"}s=s.toLowerCase(),u=s.lastIndexOf(":"),u===-1?r+=n(s,!1,!0):(r+=n(s.substr(0,u),!1,!0),r+=s.substr(u))}if(a){if(a.length>=3&&a.charCodeAt(0)===47&&a.charCodeAt(2)===58){const u=a.charCodeAt(1);u>=65&&u<=90&&(a=`/${String.fromCharCode(u+32)}:${a.substr(3)}`)}else if(a.length>=2&&a.charCodeAt(1)===58){const u=a.charCodeAt(0);u>=65&&u<=90&&(a=`${String.fromCharCode(u+32)}:${a.substr(2)}`)}r+=n(a,!0,!1)}return l&&(r+="?",r+=n(l,!1,!1)),d&&(r+="#",r+=t?d:abt(d,!1,!1)),r}function nEn(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+nEn(e.substr(3)):e}}const lbt=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function lle(e){return e.match(lbt)?e.replace(lbt,t=>nEn(t)):e}var Ci;(function(e){e.inMemory="inmemory",e.vscode="vscode",e.internal="private",e.walkThrough="walkThrough",e.walkThroughSnippet="walkThroughSnippet",e.http="http",e.https="https",e.file="file",e.mailto="mailto",e.untitled="untitled",e.data="data",e.command="command",e.vscodeRemote="vscode-remote",e.vscodeRemoteResource="vscode-remote-resource",e.vscodeManagedRemoteResource="vscode-managed-remote-resource",e.vscodeUserData="vscode-userdata",e.vscodeCustomEditor="vscode-custom-editor",e.vscodeNotebookCell="vscode-notebook-cell",e.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",e.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",e.vscodeNotebookCellOutput="vscode-notebook-cell-output",e.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",e.vscodeNotebookMetadata="vscode-notebook-metadata",e.vscodeInteractiveInput="vscode-interactive-input",e.vscodeSettings="vscode-settings",e.vscodeWorkspaceTrust="vscode-workspace-trust",e.vscodeTerminal="vscode-terminal",e.vscodeChatCodeBlock="vscode-chat-code-block",e.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",e.vscodeChatEditor="vscode-chat-editor",e.vscodeChatInput="chatSessionInput",e.vscodeLocalChatSession="vscode-chat-session",e.webviewPanel="webview-panel",e.vscodeWebview="vscode-webview",e.extension="extension",e.vscodeFileResource="vscode-file",e.tmp="tmp",e.vsls="vsls",e.vscodeSourceControl="vscode-scm",e.commentsInput="comment",e.codeSetting="code-setting",e.outputChannel="output",e.accessibleView="accessible-view",e.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",e.chatEditingModel="chat-editing-text-model",e.copilotPr="copilot-pr"})(Ci||(Ci={}));function kbe(e,t){return vi.isUri(e)?rQ(e.scheme,t):BJe(e,t+":")}function nNe(e,...t){return t.some(n=>kbe(e,n))}const Yeo="tkn";class Zeo{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(t){this._preferredWebSchema=t}get _remoteResourcesPath(){return Jc.join(this._serverRootPath,Ci.vscodeRemoteResource)}rewrite(t){if(this._delegate)try{return this._delegate(t)}catch(l){return zi(l),t}const n=t.authority;let r=this._hosts[n];r&&r.indexOf(":")!==-1&&r.indexOf("[")===-1&&(r=`[${r}]`);const o=this._ports[n],s=this._connectionTokens[n];let a=`path=${encodeURIComponent(t.path)}`;return typeof s=="string"&&(a+=`&${Yeo}=${encodeURIComponent(s)}`),vi.from({scheme:qy?this._preferredWebSchema:Ci.vscodeRemoteResource,authority:`${r}:${o}`,path:this._remoteResourcesPath,query:a})}}const iEn=new Zeo,qeo="vscode-app",vq=class vq{uriToBrowserUri(t){return t.scheme===Ci.vscodeRemote?iEn.rewrite(t):t.scheme===Ci.file&&(v3||TJr===`${Ci.vscodeFileResource}://${vq.FALLBACK_AUTHORITY}`)?t.with({scheme:Ci.vscodeFileResource,authority:t.authority||vq.FALLBACK_AUTHORITY,query:null,fragment:null}):t}};vq.FALLBACK_AUTHORITY=qeo;let iNe=vq;const rEn=new iNe;var rNe;(function(e){const t=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);e.CoopAndCoep=Object.freeze(t.get("3"));const n="vscode-coi";function r(s){let a;typeof s=="string"?a=new URL(s).searchParams:s instanceof URL?a=s.searchParams:vi.isUri(s)&&(a=new URL(s.toString(!0)).searchParams);const l=a==null?void 0:a.get(n);if(l)return t.get(l)}e.getHeadersFromQuery=r;function o(s,a,l){if(!globalThis.crossOriginIsolated)return;const d=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(n,d):s[n]=d}e.addSearchParam=o})(rNe||(rNe={}));const cbt=typeof Buffer<"u";new zh(()=>new Uint8Array(256));let Y8e;class B9{static wrap(t){return cbt&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new B9(t)}constructor(t){this.buffer=t,this.byteLength=this.buffer.byteLength}toString(){return cbt?this.buffer.toString():(Y8e||(Y8e=new TextDecoder),Y8e.decode(this.buffer))}}function Keo(e,t){return e[t+0]<<0>>>0|e[t+1]<<8>>>0}function Jeo(e,t,n){e[n+0]=t&255,t=t>>>8,e[n+1]=t&255}function kb(e,t){return e[t]*2**24+e[t+1]*2**16+e[t+2]*2**8+e[t+3]}function vb(e,t,n){e[n+3]=t,t=t>>>8,e[n+2]=t,t=t>>>8,e[n+1]=t,t=t>>>8,e[n]=t}function dbt(e,t){return e[t]}function ubt(e,t,n){e[n]=t}const hbt="0123456789abcdef";function eto({buffer:e}){let t="";for(let n=0;n>>4],t+=hbt[r&15]}return t}function Lie(e){return vbe(e,0)}function vbe(e,t){switch(typeof e){case"object":return e===null?LS(349,t):Array.isArray(e)?nto(e,t):ito(e,t);case"string":return NJe(e,t);case"boolean":return tto(e,t);case"number":return LS(e,t);case"undefined":return LS(937,t);default:return LS(617,t)}}function LS(e,t){return(t<<5)-t+e|0}function tto(e,t){return LS(e?433:863,t)}function NJe(e,t){t=LS(149417,t);for(let n=0,r=e.length;nvbe(r,n),t)}function ito(e,t){return t=LS(181387,t),Object.keys(e).sort().reduce((n,r)=>(n=NJe(r,n),vbe(e[r],n)),t)}function Z8e(e,t,n=32){const r=n-t,o=~((1<>>r)>>>0}function sX(e,t=32){return e instanceof ArrayBuffer?eto(B9.wrap(new Uint8Array(e))):(e>>>0).toString(16).padStart(t/4,"0")}const Ave=class Ave{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(t){const n=t.length;if(n===0)return;const r=this._buff;let o=this._buffLen,s=this._leftoverHighSurrogate,a,l;for(s!==0?(a=s,l=-1,s=0):(a=t.charCodeAt(0),l=0);;){let d=a;if(Id(a))if(l+1>>6,t[n++]=128|(r&63)>>>0):r<65536?(t[n++]=224|(r&61440)>>>12,t[n++]=128|(r&4032)>>>6,t[n++]=128|(r&63)>>>0):(t[n++]=240|(r&1835008)>>>18,t[n++]=128|(r&258048)>>>12,t[n++]=128|(r&4032)>>>6,t[n++]=128|(r&63)>>>0),n>=64&&(this._step(),n-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),n}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),sX(this._h0)+sX(this._h1)+sX(this._h2)+sX(this._h3)+sX(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,this._buff.subarray(this._buffLen).fill(0),this._buffLen>56&&(this._step(),this._buff.fill(0));const t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){const t=Ave._bigBlock32,n=this._buffDV;for(let g=0;g<64;g+=4)t.setUint32(g,n.getUint32(g,!1),!1);for(let g=64;g<320;g+=4)t.setUint32(g,Z8e(t.getUint32(g-12,!1)^t.getUint32(g-32,!1)^t.getUint32(g-56,!1)^t.getUint32(g-64,!1),1),!1);let r=this._h0,o=this._h1,s=this._h2,a=this._h3,l=this._h4,d,u,h;for(let g=0;g<80;g++)g<20?(d=o&s|~o&a,u=1518500249):g<40?(d=o^s^a,u=1859775393):g<60?(d=o&s|o&a|s&a,u=2400959708):(d=o^s^a,u=3395469782),h=Z8e(r,5)+d+l+u+t.getUint32(g*4,!1)&4294967295,l=a,a=s,s=Z8e(o,30),o=r,r=h;this._h0=this._h0+r&4294967295,this._h1=this._h1+o&4294967295,this._h2=this._h2+s&4294967295,this._h3=this._h3+a&4294967295,this._h4=this._h4+l&4294967295}};Ave._bigBlock32=new DataView(new ArrayBuffer(320));let oNe=Ave;function rto(e){if(e.length===0)throw new Error("Invalid tail call");return[e.slice(0,e.length-1),e[e.length-1]]}function Na(e,t,n=(r,o)=>r===o){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let r=0,o=e.length;rn(e[r],t))}function UJe(e,t){let n=0,r=e-1;for(;n<=r;){const o=(n+r)/2|0,s=t(o);if(s<0)n=o+1;else if(s>0)r=o-1;else return o}return-(n+1)}function sNe(e,t,n){if(e=e|0,e>=t.length)throw new TypeError("invalid index");const r=t[Math.floor(t.length*Math.random())],o=[],s=[],a=[];for(const l of t){const d=n(l,r);d<0?o.push(l):d>0?s.push(l):a.push(l)}return e!!t)}function gbt(e){let t=0;for(let n=0;n0}function M8(e,t=n=>n){const n=new Set;return e.filter(r=>{const o=t(r);return n.has(o)?!1:(n.add(o),!0)})}function Xg(e,t){let n=typeof t=="number"?e:0;typeof t=="number"?n=e:(n=0,t=e);const r=[];if(n<=t)for(let o=n;ot;o--)r.push(o);return r}function Abe(e,t,n){const r=e.slice(0,t),o=e.slice(t);return r.concat(n,o)}function q8e(e,t){const n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))}function cle(e,t){const n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))}function aNe(e,t){for(const n of t)e.push(n)}function ato(e,t){const n=[];for(const r of e){const o=t(r);o!==void 0&&n.push(o)}return n}function WJe(e){return Array.isArray(e)?e:[e]}function lto(e,t,n){const r=aEn(e,t),o=e.length,s=n.length;e.length=o+s;for(let a=o-1;a>=r;a--)e[a+s]=e[a];for(let a=0;a0}e.isGreaterThan=r;function o(s){return s===0}e.isNeitherLessOrGreaterThan=o,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(R9||(R9={}));function qh(e,t){return(n,r)=>t(e(n),e(r))}function cto(...e){return(t,n)=>{for(const r of e){const o=r(t,n);if(!R9.isNeitherLessOrGreaterThan(o))return o}return R9.neitherLessOrGreaterThan}}const T0=(e,t)=>e-t,lEn=(e,t)=>T0(e?1:0,t?1:0);function cEn(e){return(t,n)=>-e(t,n)}function dto(e){return(t,n)=>t===void 0?n===void 0?R9.neitherLessOrGreaterThan:R9.lessThan:n===void 0?R9.greaterThan:e(t,n)}class P8{constructor(t){this.firstIdx=0,this.items=t,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(t){let n=this.firstIdx;for(;n=0&&t(this.items[n]);)n--;const r=n===this.lastIdx?null:this.items.slice(n+1,this.lastIdx+1);return this.lastIdx=n,r}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const t=this.items[this.firstIdx];return this.firstIdx++,t}takeCount(t){const n=this.items.slice(this.firstIdx,this.firstIdx+t);return this.firstIdx+=t,n}}const GN=class GN{constructor(t){this.iterate=t}toArray(){const t=[];return this.iterate(n=>(t.push(n),!0)),t}filter(t){return new GN(n=>this.iterate(r=>t(r)?n(r):!0))}map(t){return new GN(n=>this.iterate(r=>n(t(r))))}findLast(t){let n;return this.iterate(r=>(t(r)&&(n=r),!0)),n}findLastMaxBy(t){let n,r=!0;return this.iterate(o=>((r||R9.isGreaterThan(t(o,n)))&&(r=!1,n=o),!0)),n}};GN.empty=new GN(t=>{});let cD=GN;class _me{constructor(t){this._indexMap=t}static createSortPermutation(t,n){const r=Array.from(t.keys()).sort((o,s)=>n(t[o],t[s]));return new _me(r)}apply(t){return t.map((n,r)=>t[this._indexMap[r]])}inverse(){const t=this._indexMap.slice();for(let n=0;nt+n,0)}let z7;function uto(e){z7?z7 instanceof mbt?z7.loggers.push(e):z7=new mbt([z7,e]):z7=e}function Of(){return z7}class mbt{constructor(t){this.loggers=t}handleObservableCreated(t,n){for(const r of this.loggers)r.handleObservableCreated(t,n)}handleOnListenerCountChanged(t,n){for(const r of this.loggers)r.handleOnListenerCountChanged(t,n)}handleObservableUpdated(t,n){for(const r of this.loggers)r.handleObservableUpdated(t,n)}handleAutorunCreated(t,n){for(const r of this.loggers)r.handleAutorunCreated(t,n)}handleAutorunDisposed(t){for(const n of this.loggers)n.handleAutorunDisposed(t)}handleAutorunDependencyChanged(t,n,r){for(const o of this.loggers)o.handleAutorunDependencyChanged(t,n,r)}handleAutorunStarted(t){for(const n of this.loggers)n.handleAutorunStarted(t)}handleAutorunFinished(t){for(const n of this.loggers)n.handleAutorunFinished(t)}handleDerivedDependencyChanged(t,n,r){for(const o of this.loggers)o.handleDerivedDependencyChanged(t,n,r)}handleDerivedCleared(t){for(const n of this.loggers)n.handleDerivedCleared(t)}handleBeginTransaction(t){for(const n of this.loggers)n.handleBeginTransaction(t)}handleEndTransaction(t){for(const n of this.loggers)n.handleEndTransaction(t)}}var Hd;(function(e){let t=!1;function n(){t=!0}e.enable=n;function r(){if(!t)return;const o=Error,s=o.stackTraceLimit;o.stackTraceLimit=3;const a=new Error().stack;return o.stackTraceLimit=s,VJe.fromStack(a,2)}e.ofCaller=r})(Hd||(Hd={}));class VJe{static fromStack(t,n){const r=t.split(` -`),o=hto(r[n+1]);if(o)return new VJe(o.fileName,o.line,o.column,o.id)}constructor(t,n,r,o){this.fileName=t,this.line=n,this.column=r,this.id=o}}function hto(e){const t=e.match(/\((.*):(\d+):(\d+)\)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:e};const n=e.match(/at ([^\(\)]*):(\d+):(\d+)/);if(n)return{fileName:n[1],line:parseInt(n[2]),column:parseInt(n[3]),id:e}}const f2=(e,t)=>e===t;function VK(e=f2){return(t,n)=>Na(t,n,e)}function zJe(){return(e,t)=>e.equals(t)}function oQ(e,t,n){if(n!==void 0){const r=e;return r==null||t===void 0||t===null?t===r:n(r,t)}else{const r=e;return(o,s)=>o==null||s===void 0||s===null?s===o:r(o,s)}}function lNe(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n{const a=HJe(s);if(a!==void 0)return a;const d=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(s.toString());if(d)return`${this.debugName}.${d[2]}`;if(!o)return`${this.debugName} (mapped)`},debugReferenceFn:s},a=>s(this.read(a),a),r)}flatten(){return dNe({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,n){return t.add(uEn(this,n)),this}}class Vz extends hEn{constructor(t){var n;super(),this._observers=new Set,(n=Of())==null||n.handleObservableCreated(this,t)}addObserver(t){var r;const n=this._observers.size;this._observers.add(t),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&((r=Of())==null||r.handleOnListenerCountChanged(this,this._observers.size))}removeObserver(t){var r;const n=this._observers.delete(t);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&((r=Of())==null||r.handleOnListenerCountChanged(this,this._observers.size))}onFirstObserverAdded(){}onLastObserverRemoved(){}debugGetObservers(){return this._observers}}function pto(e){switch(e){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return""}}class pv extends Vz{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(t,n,r,o=void 0,s,a){var l;super(a),this._debugNameData=t,this._computeFn=n,this._changeTracker=r,this._handleLastObserverRemoved=o,this._equalityComparator=s,this._state=0,this._value=void 0,this._updateCount=0,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._changeSummary=void 0,this._isUpdating=!1,this._isComputing=!1,this._didReportChange=!1,this._isInBeforeUpdate=!1,this._isReaderValid=!1,this._store=void 0,this._delayedStore=void 0,this._removedObserverToCallEndUpdateOn=null,this._changeSummary=(l=this._changeTracker)==null?void 0:l.createChangeSummary(void 0)}onLastObserverRemoved(){var t,n;this._state=0,this._value=void 0,(t=Of())==null||t.handleDerivedCleared(this);for(const r of this._dependencies)r.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),(n=this._handleLastObserverRemoved)==null||n.call(this)}get(){var n,r;if(this._isComputing,this._observers.size===0){let o;try{this._isReaderValid=!0;let s;this._changeTracker&&(s=this._changeTracker.createChangeSummary(void 0),(r=(n=this._changeTracker).beforeUpdate)==null||r.call(n,this,s)),o=this._computeFn(this,s)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),o}else{do{if(this._state===1){for(const o of this._dependencies)if(o.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){var r,o,s,a;let t=!1;this._isComputing=!0,this._didReportChange=!1;const n=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=n;try{const l=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,(o=(r=this._changeTracker).beforeUpdate)==null||o.call(r,this,l),this._isInBeforeUpdate=!1,this._changeSummary=(s=this._changeTracker)==null?void 0:s.createChangeSummary(l));const d=this._state!==0,u=this._value;this._state=3;const h=this._delayedStore;h!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,l)}finally{this._isReaderValid=!1;for(const g of this._dependenciesToBeRemoved)g.removeObserver(this);this._dependenciesToBeRemoved.clear(),h!==void 0&&h.dispose()}t=this._didReportChange||d&&!this._equalityComparator(u,this._value),(a=Of())==null||a.handleObservableUpdated(this,{oldValue:u,newValue:this._value,change:void 0,didChange:t,hadValue:d})}catch(l){fme(l)}if(this._isComputing=!1,!this._didReportChange&&t)for(const l of this._observers)l.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(t){if(this._isUpdating)throw new ui("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{const n=this._updateCount===1;if(this._state===3&&(this._state=1,!n))for(const r of this._observers)r.handlePossibleChange(this);if(n)for(const r of this._observers)r.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(t){if(this._updateCount--,this._updateCount===0){const n=[...this._observers];for(const r of n)r.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){const r=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(const o of r)o.endUpdate(this)}}b6(()=>this._updateCount>=0)}handlePossibleChange(t){if(this._state===3&&this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)){this._state=1;for(const n of this._observers)n.handlePossibleChange(this)}}handleChange(t,n){var r;if(this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)||this._isInBeforeUpdate){(r=Of())==null||r.handleDerivedDependencyChanged(this,t,n);let o=!1;try{o=this._changeTracker?this._changeTracker.handleChange({changedObservable:t,change:n,didChange:a=>a===t},this._changeSummary):!0}catch(a){fme(a)}const s=this._state===3;if(o&&(this._state===1||s)&&(this._state=2,s))for(const a of this._observers)a.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new ui("The reader object cannot be used outside its compute function!")}readObservable(t){this._ensureReaderValid(),t.addObserver(this);const n=t.get();return this._dependencies.add(t),this._dependenciesToBeRemoved.delete(t),n}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new xt),this._store}addObserver(t){const n=!this._observers.has(t)&&this._updateCount>0;super.addObserver(t),n&&(this._removedObserverToCallEndUpdateOn&&this._removedObserverToCallEndUpdateOn.has(t)?this._removedObserverToCallEndUpdateOn.delete(t):t.beginUpdate(this))}removeObserver(t){this._observers.has(t)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(t)),super.removeObserver(t)}debugGetState(){return{state:this._state,stateStr:pto(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(t){this._value=t}debugRecompute(){this._isComputing?this._state=2:this._recompute()}setValue(t,n,r){this._value=t;const o=this._observers;n.updateObserver(this,this);for(const s of o)s.handleChange(this,r)}}class fEn extends pv{constructor(t,n,r,o=void 0,s,a,l){super(t,n,r,o,s,l),this.set=a}}function Rt(e,t,n=Hd.ofCaller()){return t!==void 0?new pv(new tf(e,void 0,t),t,void 0,void 0,f2,n):new pv(new tf(void 0,void 0,e),e,void 0,void 0,f2,n)}function $Je(e,t,n,r=Hd.ofCaller()){return new fEn(new tf(e,void 0,t),t,void 0,void 0,f2,n,r)}function Vh(e,t,n=Hd.ofCaller()){return new pv(new tf(e.owner,e.debugName,e.debugReferenceFn),t,void 0,e.onLastObserverRemoved,e.equalsFn??f2,n)}vto(Vh);function pbt(e,t,n=Hd.ofCaller()){return new pv(new tf(e.owner,e.debugName,void 0),t,e.changeTracker,void 0,e.equalityComparer??f2,n)}function vv(e,t,n=Hd.ofCaller()){let r,o;t===void 0?(r=e,o=void 0):(o=e,r=t);let s;return new pv(new tf(o,void 0,r),a=>{s?s.clear():s=new xt;const l=r(a);return l&&s.add(l),l},void 0,()=>{s&&(s.dispose(),s=void 0)},f2,n)}function bto(e){switch(e){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return""}}class zK{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(t,n,r,o){var s,a;this._debugNameData=t,this._runFn=n,this._changeTracker=r,this._state=2,this._updateCount=0,this._disposed=!1,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._isRunning=!1,this._store=void 0,this._delayedStore=void 0,this._changeSummary=(s=this._changeTracker)==null?void 0:s.createChangeSummary(void 0),(a=Of())==null||a.handleAutorunCreated(this,o),this._run()}dispose(){var t;if(!this._disposed){this._disposed=!0;for(const n of this._dependencies)n.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&this._store.dispose(),this._delayedStore!==void 0&&this._delayedStore.dispose(),(t=Of())==null||t.handleAutorunDisposed(this)}}_run(){var n,r,o,s;const t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){(n=Of())==null||n.handleAutorunStarted(this);const a=this._changeSummary,l=this._delayedStore;l!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&((o=(r=this._changeTracker).beforeUpdate)==null||o.call(r,this,a),this._changeSummary=this._changeTracker.createChangeSummary(a)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,a)}catch(d){fme(d)}finally{this._isRunning=!1,l!==void 0&&l.dispose()}}}finally{this._disposed||(s=Of())==null||s.handleAutorunFinished(this);for(const a of this._dependenciesToBeRemoved)a.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(t){this._state===3&&(this._state=1),this._updateCount++}endUpdate(t){try{if(this._updateCount===1)do{if(this._state===1){this._state=3;for(const n of this._dependencies)if(n.reportChanges(),this._state===2)break}this._state!==3&&this._run()}while(this._state!==3)}finally{this._updateCount--}b6(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._state=1)}handleChange(t,n){var r;if(this._isDependency(t)){(r=Of())==null||r.handleAutorunDependencyChanged(this,t,n);try{(this._changeTracker?this._changeTracker.handleChange({changedObservable:t,change:n,didChange:s=>s===t},this._changeSummary):!0)&&(this._state=2)}catch(o){fme(o)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new ui("The reader object cannot be used outside its compute function!")}readObservable(t){if(this._ensureNoRunning(),this._disposed)return t.get();t.addObserver(this);const n=t.get();return this._dependencies.add(t),this._dependenciesToBeRemoved.delete(t),n}get store(){if(this._ensureNoRunning(),this._disposed)throw new ui("Cannot access store after dispose");return this._store===void 0&&(this._store=new xt),this._store}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:bto(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}}function Oi(e,t=Hd.ofCaller()){return new zK(new tf(void 0,void 0,e),e,void 0,t)}function pbe(e,t,n=Hd.ofCaller()){return new zK(new tf(e.owner,e.debugName,e.debugReferenceFn??t),t,void 0,n)}function zz(e,t,n=Hd.ofCaller()){return new zK(new tf(e.owner,e.debugName,e.debugReferenceFn??t),t,e.changeTracker,n)}function wto(e,t){const n=new xt,r=zz({owner:e.owner,debugName:e.debugName,debugReferenceFn:e.debugReferenceFn??t,changeTracker:e.changeTracker},(o,s)=>{n.clear(),t(o,s,n)});return Hn(()=>{r.dispose(),n.dispose()})}function Ef(e){const t=new xt,n=pbe({owner:void 0,debugName:void 0,debugReferenceFn:e},r=>{t.clear(),e(r,t)});return Hn(()=>{n.dispose(),t.dispose()})}function Oto(e,t){let n;return pbe({debugReferenceFn:t},r=>{const o=e.read(r),s=n;n=o,t({lastValue:s,newValue:o})})}function bbt(e){const t=new Error("BugIndicatingErrorRecovery: "+e);zi(t),console.error("recovered from an error that indicates a bug",t)}function la(e,t){const n=new Hz(e,t);try{e(n)}finally{n.finish()}}let dle;function BG(e){if(dle)e(dle);else{const t=new Hz(e,void 0);dle=t;try{e(t)}finally{t.finish(),dle=void 0}}}async function yto(e,t){const n=new Hz(e,t);try{await e(n)}finally{n.finish()}}function qW(e,t,n){e?t(e):la(t,n)}class Hz{constructor(t,n){var r;this._fn=t,this._getDebugName=n,this._updatingObservers=[],(r=Of())==null||r.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():HJe(this._fn)}updateObserver(t,n){if(!this._updatingObservers){bbt("Transaction already finished!"),la(r=>{r.updateObserver(t,n)});return}this._updatingObservers.push({observer:t,observable:n}),t.beginUpdate(n)}finish(){var n;const t=this._updatingObservers;if(!t){bbt("transaction.finish() has already been called!");return}for(let r=0;rxS.globalTransaction,f2,o??Hd.ofCaller())}function gEn(e,t,n,r=Hd.ofCaller()){return new xS(new tf(e.owner,e.debugName,e.debugReferenceFn??n),t,n,()=>xS.globalTransaction,e.equalsFn??f2,r)}class xS extends Vz{constructor(t,n,r,o,s,a){super(a),this._debugNameData=t,this.event=n,this._getValue=r,this._getTransaction=o,this._equalityComparator=s,this._hasValue=!1,this.handleEvent=l=>{var m;const d=this._getValue(l),u=this._value,h=!this._hasValue||!this._equalityComparator(u,d);let g=!1;h&&(this._value=d,this._hasValue&&(g=!0,qW(this._getTransaction(),v=>{var f;(f=Of())==null||f.handleObservableUpdated(this,{oldValue:u,newValue:d,change:void 0,didChange:h,hadValue:this._hasValue});for(const k of this._observers)v.updateObserver(k,this),k.handleChange(this,void 0)},()=>{const v=this.getDebugName();return"Event fired"+(v?`: ${v}`:"")})),this._hasValue=!0),g||(m=Of())==null||m.handleObservableUpdated(this,{oldValue:u,newValue:d,change:void 0,didChange:h,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const t=this.getDebugName();return"From Event"+(t?`: ${t}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){return this._subscription?(this._hasValue||this.handleEvent(void 0),this._value):this._getValue(void 0)}debugSetValue(t){this._value=t}debugGetState(){return{value:this._value,hasValue:this._hasValue}}}(function(e){e.Observer=xS;function t(n,r){let o=!1;xS.globalTransaction===void 0&&(xS.globalTransaction=n,o=!0);try{r()}finally{o&&(xS.globalTransaction=void 0)}}e.batchEventsGlobally=t})(Ko||(Ko={}));function wbt(e,t){let n=!1,r,o;return Ko(s=>{const a=Oi(l=>{const d=e.read(l);n?(o&&clearTimeout(o),o=setTimeout(()=>{r=d,s()},t)):(n=!0,r=d)});return{dispose(){a.dispose(),n=!1,r=void 0}}},()=>n?r:e.get())}function KW(e,t){const n=new Cto(!0,t);e.addObserver(n);try{n.beginUpdate(e)}finally{n.endUpdate(e)}return Hn(()=>{e.removeObserver(n)})}Ato(KW);class Cto{constructor(t,n){this._forceRecompute=t,this._handleValue=n,this._counter=0}beginUpdate(t){this._counter++}endUpdate(t){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(t.get()):t.reportChanges()),this._counter--}handlePossibleChange(t){}handleChange(t,n){}}function vL(e,t){let n;return Vh({owner:e,debugReferenceFn:t},o=>(n=t(o,n),n))}function XJe(e,t,n,r){let o=new Obt(n,r);return Vh({debugReferenceFn:n,owner:e,onLastObserverRemoved:()=>{o.dispose(),o=new Obt(n)}},a=>(o.setItems(t.read(a)),o.getItems()))}let Obt=class{constructor(t,n){this._map=t,this._keySelector=n,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(t=>t.store.dispose()),this._cache.clear()}setItems(t){const n=[],r=new Set(this._cache.keys());for(const o of t){const s=this._keySelector?this._keySelector(o):o;let a=this._cache.get(s);if(a)r.delete(s);else{const l=new xt;a={out:this._map(o,l),store:l},this._cache.set(s,a)}n.push(a.out)}for(const o of r)this._cache.get(o).store.dispose(),this._cache.delete(o);this._items=n}getItems(){return this._items}};function dN(e,t){switch(typeof e){case"number":return""+e;case"string":return e.length+2<=t?`"${e}"`:`"${e.substr(0,t-7)}"+...`;case"boolean":return e?"true":"false";case"undefined":return"undefined";case"object":return e===null?"null":Array.isArray(e)?_to(e,t):Sto(e,t);case"symbol":return e.toString();case"function":return`[[Function${e.name?" "+e.name:""}]]`;default:return""+e}}function _to(e,t){let n="[ ",r=!0;for(const o of e){if(r||(n+=", "),n.length-5>t){n+="...";break}r=!1,n+=`${dN(o,t-n.length)}`}return n+=" ]",n}function Sto(e,t){if(typeof e.toString=="function"&&e.toString!==Object.prototype.toString){const s=e.toString();return s.length<=t?s:s.substring(0,t-3)+"..."}const n=dEn(e);let r=n?n+"(":"{ ",o=!0;for(const[s,a]of Object.entries(e)){if(o||(r+=", "),r.length-5>t){r+="...";break}o=!1,r+=`${s}: ${dN(a,t-r.length)}`}return r+=n?")":" }",r}class GJe{static createClient(t,n){return new GJe(t,n)}constructor(t,n){this._channelFactory=t,this._getHandler=n,this._channel=this._channelFactory({handleNotification:s=>{const a=s,l=this._getHandler().notifications[a[0]];if(!l)throw new Error(`Unknown notification "${a[0]}"!`);l(...a[1])},handleRequest:s=>{const a=s;try{return{type:"result",value:this._getHandler().requests[a[0]](...a[1])}}catch(l){return{type:"error",value:l}}}});const r=new Proxy({},{get:(s,a)=>async(...l)=>{const d=await this._channel.sendRequest([a,l]);if(d.type==="error")throw d.value;return d.value}}),o=new Proxy({},{get:(s,a)=>(...l)=>{this._channel.sendNotification([a,l])}});this.api={notifications:o,requests:r}}}function Lto(e,t){const n=globalThis;let r=[],o;const{channel:s,handler:a}=xto({sendNotification:d=>{o?o.sendNotification(d):r.push(d)}});let l;return(n.$$debugValueEditor_debugChannels??(n.$$debugValueEditor_debugChannels={}))[e]=d=>{l=t(),o=d;for(const u of r)d.sendNotification(u);return r=[],a},GJe.createClient(s,()=>{if(!l)throw new Error("Not supported");return l})}function xto(e){let t;return{channel:r=>(t=r,{sendNotification:o=>{e.sendNotification(o)},sendRequest:o=>{throw new Error("not supported")}}),handler:{handleRequest:r=>r.type==="notification"?t==null?void 0:t.handleNotification(r.data):t==null?void 0:t.handleRequest(r.data)}}}class Eto{constructor(){this._timeout=void 0}throttle(t,n){this._timeout===void 0&&(this._timeout=setTimeout(()=>{this._timeout=void 0,t()},n))}dispose(){this._timeout!==void 0&&clearTimeout(this._timeout)}}function mEn(e,t){for(const n in t)e[n]&&typeof e[n]=="object"&&t[n]&&typeof t[n]=="object"?mEn(e[n],t[n]):e[n]=t[n]}function kEn(e,t){for(const n in t)t[n]===null?delete e[n]:e[n]&&typeof e[n]=="object"&&t[n]&&typeof t[n]=="object"?kEn(e[n],t[n]):e[n]=t[n]}function Ti(e,t,n=Hd.ofCaller()){let r;return typeof e=="string"?r=new tf(void 0,e,void 0):r=new tf(e,void 0,void 0),new HK(r,t,f2,n)}class HK extends Vz{get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}constructor(t,n,r,o){var s;super(o),this._debugNameData=t,this._equalityComparator=r,this._value=n,(s=Of())==null||s.handleObservableUpdated(this,{hadValue:!1,newValue:n,change:void 0,didChange:!0,oldValue:void 0})}get(){return this._value}set(t,n,r){var s;if(r===void 0&&this._equalityComparator(this._value,t))return;let o;n||(n=o=new Hz(()=>{},()=>`Setting ${this.debugName}`));try{const a=this._value;this._setValue(t),(s=Of())==null||s.handleObservableUpdated(this,{oldValue:a,newValue:t,change:r,didChange:!0,hadValue:!0});for(const l of this._observers)n.updateObserver(l,this),l.handleChange(this,r)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(t){this._value=t}debugGetState(){return{value:this._value}}debugSetValue(t){this._value=t}}function YJe(e,t,n=Hd.ofCaller()){let r;return typeof e=="string"?r=new tf(void 0,e,void 0):r=new tf(e,void 0,void 0),new Tto(r,t,f2,n)}class Tto extends HK{_setValue(t){this._value!==t&&(this._value&&this._value.dispose(),this._value=t)}dispose(){var t;(t=this._value)==null||t.dispose()}}const jT=class jT{static getInstance(){return jT._instance===void 0&&(jT._instance=new jT),jT._instance}getTransactionState(){const t=[],n=[...this._activeTransactions];if(n.length===0)return;const r=n.flatMap(s=>s.debugGetUpdatingObservers()??[]).map(s=>s.observer),o=new Set;for(;r.length>0;){const s=r.shift();if(o.has(s))continue;o.add(s);const a=this._getInfo(s,l=>{o.has(l)||r.push(l)});a&&t.push(a)}return{names:n.map(s=>s.getDebugName()??"tx"),affected:t}}_getObservableInfo(t){const n=this._instanceInfos.get(t);if(!n){zi(new ui("No info found"));return}return n}_getAutorunInfo(t){const n=this._instanceInfos.get(t);if(!n){zi(new ui("No info found"));return}return n}_getInfo(t,n){if(t instanceof pv){const r=[...t.debugGetObservers()];for(const d of r)n(d);const o=this._getObservableInfo(t);if(!o)return;const s=t.debugGetState(),a={name:t.debugName,instanceId:o.instanceId,updateCount:s.updateCount},l=[...o.changedObservables].map(d=>{var u;return(u=this._instanceInfos.get(d))==null?void 0:u.instanceId}).filter(Ru);if(s.isComputing)return{...a,type:"observable/derived",state:"updating",changedDependencies:l,initialComputation:!1};switch(s.state){case 0:return{...a,type:"observable/derived",state:"noValue"};case 3:return{...a,type:"observable/derived",state:"upToDate"};case 2:return{...a,type:"observable/derived",state:"stale",changedDependencies:l};case 1:return{...a,type:"observable/derived",state:"possiblyStale"}}}else if(t instanceof zK){const r=this._getAutorunInfo(t);if(!r)return;const o={name:t.debugName,instanceId:r.instanceId,updateCount:r.updateCount},s=[...r.changedObservables].map(a=>this._instanceInfos.get(a).instanceId);if(t.debugGetState().isRunning)return{...o,type:"autorun",state:"updating",changedDependencies:s};switch(t.debugGetState().state){case 3:return{...o,type:"autorun",state:"upToDate"};case 2:return{...o,type:"autorun",state:"stale",changedDependencies:s};case 1:return{...o,type:"autorun",state:"possiblyStale"}}}}_formatObservable(t){const n=this._getObservableInfo(t);if(n)return{name:t.debugName,instanceId:n.instanceId}}_formatObserver(t){var r;if(t instanceof pv)return{name:t.toString(),instanceId:(r=this._getObservableInfo(t))==null?void 0:r.instanceId};const n=this._getAutorunInfo(t);if(n)return{name:t.toString(),instanceId:n.instanceId}}constructor(){this._declarationId=0,this._instanceId=0,this._declarations=new Map,this._instanceInfos=new WeakMap,this._aliveInstances=new Map,this._activeTransactions=new Set,this._channel=Lto("observableDevTools",()=>({notifications:{setDeclarationIdFilter:t=>{},logObservableValue:t=>{console.log("logObservableValue",t)},flushUpdates:()=>{this._flushUpdates()},resetUpdates:()=>{this._pendingChanges=null,this._channel.api.notifications.handleChange(this._fullState,!0)}},requests:{getDeclarations:()=>{const t={};for(const n of this._declarations.values())t[n.id]=n;return{decls:t}},getSummarizedInstances:()=>null,getObservableValueInfo:t=>({observers:[...this._aliveInstances.get(t).debugGetObservers()].map(r=>this._formatObserver(r)).filter(Ru)}),getDerivedInfo:t=>{const n=this._aliveInstances.get(t);return{dependencies:[...n.debugGetState().dependencies].map(r=>this._formatObservable(r)).filter(Ru),observers:[...n.debugGetObservers()].map(r=>this._formatObserver(r)).filter(Ru)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(r=>this._formatObservable(r)).filter(Ru)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,n)=>{const r=this._aliveInstances.get(t);if(r instanceof pv)r.debugSetValue(n);else if(r instanceof HK)r.debugSetValue(n);else if(r instanceof xS)r.debugSetValue(n);else throw new ui("Observable is not supported");const o=[...r.debugGetObservers()];for(const s of o)s.beginUpdate(r);for(const s of o)s.handleChange(r,void 0);for(const s of o)s.endUpdate(r)},getValue:t=>{const n=this._aliveInstances.get(t);if(n instanceof pv)return dN(n.debugGetState().value,200);if(n instanceof HK)return dN(n.debugGetState().value,200)},logValue:t=>{const n=this._aliveInstances.get(t);if(n&&"get"in n)console.log("Logged Value:",n.get());else throw new ui("Observable is not supported")},rerun:t=>{const n=this._aliveInstances.get(t);if(n instanceof pv)n.debugRecompute();else if(n instanceof zK)n.debugRerun();else throw new ui("Observable is not supported")}}})),this._pendingChanges=null,this._changeThrottler=new Eto,this._fullState={},this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)},Hd.enable()}_handleChange(t){kEn(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:mEn(this._pendingChanges,t),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(t,n){if(!n)return-1;let r=this._declarations.get(n.id);return r===void 0&&(r={id:this._declarationId++,type:t,url:n.fileName,line:n.line,column:n.column},this._declarations.set(n.id,r),this._handleChange({decls:{[r.id]:r}})),r.id}handleObservableCreated(t,n){const o={declarationId:this._getDeclarationId("observable/value",n),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o)}handleOnListenerCountChanged(t,n){const r=this._getObservableInfo(t);if(r){if(r.listenerCount===0&&n>0){const o=t instanceof pv?"observable/derived":"observable/value";this._aliveInstances.set(r.instanceId,t),this._handleChange({instances:{[r.instanceId]:{instanceId:r.instanceId,declarationId:r.declarationId,formattedValue:r.lastValue,type:o,name:t.debugName}}})}else r.listenerCount>0&&n===0&&(this._handleChange({instances:{[r.instanceId]:null}}),this._aliveInstances.delete(r.instanceId));r.listenerCount=n}}handleObservableUpdated(t,n){if(t instanceof pv){this._handleDerivedRecomputed(t,n);return}const r=this._getObservableInfo(t);r&&n.didChange&&(r.lastValue=dN(n.newValue,30),r.listenerCount>0&&this._handleChange({instances:{[r.instanceId]:{formattedValue:r.lastValue}}}))}handleAutorunCreated(t,n){const o={declarationId:this._getDeclarationId("autorun",n),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o),this._aliveInstances.set(o.instanceId,t),o&&this._handleChange({instances:{[o.instanceId]:{instanceId:o.instanceId,declarationId:o.declarationId,runCount:0,type:"autorun",name:t.debugName}}})}handleAutorunDisposed(t){const n=this._getAutorunInfo(t);n&&(this._handleChange({instances:{[n.instanceId]:null}}),this._instanceInfos.delete(t),this._aliveInstances.delete(n.instanceId))}handleAutorunDependencyChanged(t,n,r){const o=this._getAutorunInfo(t);o&&o.changedObservables.add(n)}handleAutorunStarted(t){}handleAutorunFinished(t){const n=this._getAutorunInfo(t);n&&(n.changedObservables.clear(),n.updateCount++,this._handleChange({instances:{[n.instanceId]:{runCount:n.updateCount}}}))}handleDerivedDependencyChanged(t,n,r){const o=this._getObservableInfo(t);o&&o.changedObservables.add(n)}_handleDerivedRecomputed(t,n){const r=this._getObservableInfo(t);if(!r)return;const o=dN(n.newValue,30);r.updateCount++,r.changedObservables.clear(),r.lastValue=o,r.listenerCount>0&&this._handleChange({instances:{[r.instanceId]:{formattedValue:o,recomputationCount:r.updateCount}}})}handleDerivedCleared(t){const n=this._getObservableInfo(t);n&&(n.lastValue=void 0,n.changedObservables.clear(),n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(t){this._activeTransactions.add(t)}handleEndTransaction(t){this._activeTransactions.delete(t)}};jT._instance=void 0;let uNe=jT;bme&&bme.VSCODE_DEV_DEBUG_OBSERVABLES&&uto(uNe.getInstance());const{getWindow:ii,getDocument:Qto,getWindows:vEn,getWindowsCount:Dto,getWindowId:$K,getWindowById:ybt,onDidRegisterWindow:xie,onWillUnregisterWindow:Bto,onDidUnregisterWindow:Rto}=function(){const e=new Map;AJr(Ls,1);const t={window:Ls,disposables:new xt};e.set(Ls.vscodeWindowId,t);const n=new at,r=new at,o=new at;function s(a,l){return(typeof a=="number"?e.get(a):void 0)??(l?t:void 0)}return{onDidRegisterWindow:n.event,onWillUnregisterWindow:o.event,onDidUnregisterWindow:r.event,registerWindow(a){if(e.has(a.vscodeWindowId))return ft.None;const l=new xt,d={window:a,disposables:l.add(new xt)};return e.set(a.vscodeWindowId,d),l.add(Hn(()=>{e.delete(a.vscodeWindowId),r.fire(a)})),l.add(wt(a,rn.BEFORE_UNLOAD,()=>{o.fire(a)})),n.fire(d),l},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(a){return a.vscodeWindowId},hasWindow(a){return e.has(a)},getWindowById:s,getWindow(a){var u;const l=a;if((u=l==null?void 0:l.ownerDocument)!=null&&u.defaultView)return l.ownerDocument.defaultView.window;const d=a;return d!=null&&d.view?d.view.window:Ls},getDocument(a){return ii(a).document}}}();function uh(e){for(;e.firstChild;)e.firstChild.remove()}class Ito{constructor(t,n,r,o){this._node=t,this._type=n,this._handler=r,this._options=o||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function wt(e,t,n,r){return new Ito(e,t,n,r)}function AEn(e,t){return function(n){return t(new Xh(e,n))}}function Mto(e){return function(t){return e(new Us(t))}}const wc=function(t,n,r,o){let s=r;return n==="click"||n==="mousedown"||n==="contextmenu"?s=AEn(ii(t),r):(n==="keydown"||n==="keypress"||n==="keyup")&&(s=Mto(r)),wt(t,n,s,o)},Pto=function(t,n,r){const o=AEn(ii(t),n);return pEn(t,o,r)};function pEn(e,t,n){return wt(e,cA&&yie.pointerEvents?rn.POINTER_DOWN:rn.MOUSE_DOWN,t,n)}function Fto(e,t,n){return wt(e,cA&&yie.pointerEvents?rn.POINTER_MOVE:rn.MOUSE_MOVE,t,n)}function Cbt(e,t,n){return wt(e,cA&&yie.pointerEvents?rn.POINTER_UP:rn.MOUSE_UP,t,n)}function RG(e,t,n){return lZ(e,t,n)}class K8e extends U6n{constructor(t,n){super(t,n)}}let Lme,A1;class ZJe extends TJe{constructor(t){super(),this.defaultTarget=t&&ii(t)}cancelAndSet(t,n,r){return super.cancelAndSet(t,n,r??this.defaultTarget)}}class J8e{constructor(t,n=0){this._runner=t,this.priority=n,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(t){zi(t)}}static sort(t,n){return n.priority-t.priority}}(function(){const e=new Map,t=new Map,n=new Map,r=new Map,o=s=>{n.set(s,!1);const a=e.get(s)??[];for(t.set(s,a),e.set(s,[]),r.set(s,!0);a.length>0;)a.sort(J8e.sort),a.shift().execute();r.set(s,!1)};A1=(s,a,l=0)=>{const d=$K(s),u=new J8e(a,l);let h=e.get(d);return h||(h=[],e.set(d,h)),h.push(u),n.get(d)||(n.set(d,!0),s.requestAnimationFrame(()=>o(d))),u},Lme=(s,a,l)=>{const d=$K(s);if(r.get(d)){const u=new J8e(a,l);let h=t.get(d);return h||(h=[],t.set(d,h)),h.push(u),u}else return A1(s,a,l)}})();function bbe(e){return ii(e).getComputedStyle(e,null)}function O6(e,t,n){const r=ii(e),o=r.document;if(e!==o.body)return new cs(e.clientWidth,e.clientHeight);if(cA&&(r!=null&&r.visualViewport))return new cs(r.visualViewport.width,r.visualViewport.height);if(r!=null&&r.innerWidth&&r.innerHeight)return new cs(r.innerWidth,r.innerHeight);if(o.body&&o.body.clientWidth&&o.body.clientHeight)return new cs(o.body.clientWidth,o.body.clientHeight);if(o.documentElement&&o.documentElement.clientWidth&&o.documentElement.clientHeight)return new cs(o.documentElement.clientWidth,o.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}class bc{static convertToPixels(t,n){return parseFloat(n)||0}static getDimension(t,n){const r=bbe(t),o=r?r.getPropertyValue(n):"0";return bc.convertToPixels(t,o)}static getBorderLeftWidth(t){return bc.getDimension(t,"border-left-width")}static getBorderRightWidth(t){return bc.getDimension(t,"border-right-width")}static getBorderTopWidth(t){return bc.getDimension(t,"border-top-width")}static getBorderBottomWidth(t){return bc.getDimension(t,"border-bottom-width")}static getPaddingLeft(t){return bc.getDimension(t,"padding-left")}static getPaddingRight(t){return bc.getDimension(t,"padding-right")}static getPaddingTop(t){return bc.getDimension(t,"padding-top")}static getPaddingBottom(t){return bc.getDimension(t,"padding-bottom")}static getMarginLeft(t){return bc.getDimension(t,"margin-left")}static getMarginTop(t){return bc.getDimension(t,"margin-top")}static getMarginRight(t){return bc.getDimension(t,"margin-right")}static getMarginBottom(t){return bc.getDimension(t,"margin-bottom")}}const WT=class WT{constructor(t,n){this.width=t,this.height=n}with(t=this.width,n=this.height){return t!==this.width||n!==this.height?new WT(t,n):this}static is(t){return typeof t=="object"&&typeof t.height=="number"&&typeof t.width=="number"}static lift(t){return t instanceof WT?t:new WT(t.width,t.height)}static equals(t,n){return t===n?!0:!t||!n?!1:t.width===n.width&&t.height===n.height}};WT.None=new WT(0,0);let cs=WT;function bEn(e){let t=e.offsetParent,n=e.offsetTop,r=e.offsetLeft;for(;(e=e.parentNode)!==null&&e!==e.ownerDocument.body&&e!==e.ownerDocument.documentElement;){n-=e.scrollTop;const o=OEn(e)?null:bbe(e);o&&(r-=o.direction!=="rtl"?e.scrollLeft:-e.scrollLeft),e===t&&(r+=bc.getBorderLeftWidth(e),n+=bc.getBorderTopWidth(e),n+=e.offsetTop,r+=e.offsetLeft,t=e.offsetParent)}return{left:r,top:n}}function Nto(e,t,n){typeof t=="number"&&(e.style.width=`${t}px`),typeof n=="number"&&(e.style.height=`${n}px`)}function Kl(e){const t=e.getBoundingClientRect(),n=ii(e);return{left:t.left+n.scrollX,top:t.top+n.scrollY,width:t.width,height:t.height}}function wEn(e){let t=e,n=1;do{const r=bbe(t).zoom;r!=null&&r!=="1"&&(n*=r),t=t.parentElement}while(t!==null&&t!==t.ownerDocument.documentElement);return n}function s0(e){const t=bc.getMarginLeft(e)+bc.getMarginRight(e);return e.offsetWidth+t}function eLe(e){const t=bc.getBorderLeftWidth(e)+bc.getBorderRightWidth(e),n=bc.getPaddingLeft(e)+bc.getPaddingRight(e);return e.offsetWidth-t-n}function Uto(e){const t=bc.getBorderTopWidth(e)+bc.getBorderBottomWidth(e),n=bc.getPaddingTop(e)+bc.getPaddingBottom(e);return e.offsetHeight-t-n}function ES(e){const t=bc.getMarginTop(e)+bc.getMarginBottom(e);return e.offsetHeight+t}function gu(e,t){return!!(t!=null&&t.contains(e))}function jto(e,t,n){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(e.classList.contains(t))return e;if(n){if(typeof n=="string"){if(e.classList.contains(n))return null}else if(e===n)return null}e=e.parentNode}return null}function tLe(e,t,n){return!!jto(e,t,n)}function OEn(e){return e&&!!e.host&&!!e.mode}function xme(e){return!!y6(e)}function y6(e){var t;for(;e.parentNode;){if(e===((t=e.ownerDocument)==null?void 0:t.body))return null;e=e.parentNode}return OEn(e)?e:null}function Nd(){let e=Eie().activeElement;for(;e!=null&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function wbe(e){return Nd()===e}function yEn(e){return gu(Nd(),e)}function Eie(){return Dto()<=1?Ls.document:Array.from(vEn()).map(({window:t})=>t.document).find(t=>t.hasFocus())??Ls.document}function vs(){var t;return((t=Eie().defaultView)==null?void 0:t.window)??Ls}const Wto=new class{constructor(){this.mutationObservers=new Map}observe(e,t,n){let r=this.mutationObservers.get(e);r||(r=new Map,this.mutationObservers.set(e,r));const o=Lie(n);let s=r.get(o);if(s)s.users+=1;else{const a=new at,l=new MutationObserver(u=>a.fire(u));l.observe(e,n);const d=s={users:1,observer:l,onDidMutate:a.event};t.add(Hn(()=>{d.users-=1,d.users===0&&(a.dispose(),l.disconnect(),r==null||r.delete(o),(r==null?void 0:r.size)===0&&this.mutationObservers.delete(e))})),r.set(o,s)}return s.onDidMutate}};function ec(e){return e instanceof HTMLElement||e instanceof ii(e).HTMLElement}function _bt(e){return e instanceof HTMLAnchorElement||e instanceof ii(e).HTMLAnchorElement}function CEn(e){return e instanceof SVGElement||e instanceof ii(e).SVGElement}function qJe(e){return e instanceof MouseEvent||e instanceof ii(e).MouseEvent}function eS(e){return e instanceof KeyboardEvent||e instanceof ii(e).KeyboardEvent}const rn={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",KEY_DOWN:"keydown",KEY_UP:"keyup",BEFORE_UNLOAD:"beforeunload",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend"};function Vto(e){const t=e;return!!(t&&typeof t.preventDefault=="function"&&typeof t.stopPropagation=="function")}const Qo={stop:(e,t)=>(e.preventDefault(),t&&e.stopPropagation(),e)};function zto(e){const t=[];for(let n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t}function Hto(e,t){for(let n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode}let $to=class hNe extends ft{get onDidFocus(){return this._onDidFocus.event}get onDidBlur(){return this._onDidBlur.event}static hasFocusWithin(t){if(ec(t)){const n=y6(t),r=n?n.activeElement:t.ownerDocument.activeElement;return gu(r,t)}else{const n=t;return gu(n.document.activeElement,n.document)}}constructor(t){super(),this._onDidFocus=this._register(new at),this._onDidBlur=this._register(new at);let n=hNe.hasFocusWithin(t),r=!1;const o=()=>{r=!1,n||(n=!0,this._onDidFocus.fire())},s=()=>{n&&(r=!0,(ec(t)?ii(t):t).setTimeout(()=>{r&&(r=!1,n=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{hNe.hasFocusWithin(t)!==n&&(n?s():o())},this._register(wt(t,rn.FOCUS,o,!0)),this._register(wt(t,rn.BLUR,s,!0)),ec(t)&&(this._register(wt(t,rn.FOCUS_IN,()=>this._refreshStateHandler())),this._register(wt(t,rn.FOCUS_OUT,()=>this._refreshStateHandler())))}};function uA(e){return new $to(e)}function Xto(e,t){return e.after(t),t}function Xt(e,...t){if(e.append(...t),t.length===1&&typeof t[0]!="string")return t[0]}function Obe(e,t){return e.insertBefore(t,e.firstChild),t}function mu(e,...t){e.textContent="",Xt(e,...t)}const Gto=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var XK;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.SVG="http://www.w3.org/2000/svg"})(XK||(XK={}));function _En(e,t,n,...r){const o=Gto.exec(t);if(!o)throw new Error("Bad use of emmet");const s=o[1]||"div";let a;return e!==XK.HTML?a=document.createElementNS(e,s):a=document.createElement(s),o[3]&&(a.id=o[3]),o[4]&&(a.className=o[4].replace(/\./g," ").trim()),n&&Object.entries(n).forEach(([l,d])=>{typeof d>"u"||(/^on\w+$/.test(l)?a[l]=d:l==="selected"?d&&a.setAttribute(l,"true"):a.setAttribute(l,d))}),a.append(...r),a}function tn(e,t,...n){return _En(XK.HTML,e,t,...n)}tn.SVG=function(e,t,...n){return _En(XK.SVG,e,t,...n)};function Yto(e,...t){e?k0(...t):tm(...t)}function k0(...e){for(const t of e)t.style.display="",t.removeAttribute("aria-hidden")}function tm(...e){for(const t of e)t.style.display="none",t.setAttribute("aria-hidden","true")}function Sbt(e,t){const n=e.devicePixelRatio*t;return Math.max(1,Math.floor(n))/e.devicePixelRatio}function SEn(e){Ls.open(e,"_blank","noopener")}function Zto(e,t){const n=()=>{t(),r=A1(e,n)};let r=A1(e,n);return Hn(()=>r.dispose())}iEn.setPreferredWebSchema(/^https:/.test(Ls.location.href)?"https":"http");class TS extends at{constructor(){super(),this._subscriptions=new xt,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(an.runAndSubscribe(xie,({window:t,disposables:n})=>this.registerListeners(t,n),{window:Ls,disposables:this._subscriptions}))}registerListeners(t,n){n.add(wt(t,"keydown",r=>{if(r.defaultPrevented)return;const o=new Us(r);if(!(o.keyCode===6&&r.repeat)){if(r.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(r.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(r.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(r.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(o.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=r.altKey,this._keyStatus.ctrlKey=r.ctrlKey,this._keyStatus.metaKey=r.metaKey,this._keyStatus.shiftKey=r.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=r,this.fire(this._keyStatus))}},!0)),n.add(wt(t,"keyup",r=>{r.defaultPrevented||(!r.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!r.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!r.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!r.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=r.altKey,this._keyStatus.ctrlKey=r.ctrlKey,this._keyStatus.metaKey=r.metaKey,this._keyStatus.shiftKey=r.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=r,this.fire(this._keyStatus)))},!0)),n.add(wt(t.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),n.add(wt(t.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),n.add(wt(t.document.body,"mousemove",r=>{r.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),n.add(wt(t,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return TS.instance||(TS.instance=new TS),TS.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class qto extends ft{constructor(t,n){super(),this.element=t,this.callbacks=n,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(wt(this.element,rn.DRAG_START,t=>{var n,r;(r=(n=this.callbacks).onDragStart)==null||r.call(n,t)})),this.callbacks.onDrag&&this._register(wt(this.element,rn.DRAG,t=>{var n,r;(r=(n=this.callbacks).onDrag)==null||r.call(n,t)})),this._register(wt(this.element,rn.DRAG_ENTER,t=>{var n,r;this.counter++,this.dragStartTime=t.timeStamp,(r=(n=this.callbacks).onDragEnter)==null||r.call(n,t)})),this._register(wt(this.element,rn.DRAG_OVER,t=>{var n,r;t.preventDefault(),(r=(n=this.callbacks).onDragOver)==null||r.call(n,t,t.timeStamp-this.dragStartTime)})),this._register(wt(this.element,rn.DRAG_LEAVE,t=>{var n,r;this.counter--,this.counter===0&&(this.dragStartTime=0,(r=(n=this.callbacks).onDragLeave)==null||r.call(n,t))})),this._register(wt(this.element,rn.DRAG_END,t=>{var n,r;this.counter=0,this.dragStartTime=0,(r=(n=this.callbacks).onDragEnd)==null||r.call(n,t)})),this._register(wt(this.element,rn.DROP,t=>{var n,r;this.counter=0,this.dragStartTime=0,(r=(n=this.callbacks).onDrop)==null||r.call(n,t)}))}}const Kto=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function wo(e,...t){let n,r;Array.isArray(t[0])?(n={},r=t[0]):(n=t[0]||{},r=t[1]);const o=Kto.exec(e);if(!o||!o.groups)throw new Error("Bad use of h");const s=o.groups.tag||"div",a=document.createElement(s);o.groups.id&&(a.id=o.groups.id);const l=[];if(o.groups.class)for(const u of o.groups.class.split("."))u!==""&&l.push(u);if(n.className!==void 0)for(const u of n.className.split("."))u!==""&&l.push(u);l.length>0&&(a.className=l.join(" "));const d={};if(o.groups.name&&(d[o.groups.name]=a),r)for(const u of r)ec(u)?a.appendChild(u):typeof u=="string"?a.append(u):"root"in u&&(Object.assign(d,u),a.appendChild(u.root));for(const[u,h]of Object.entries(n))if(u!=="className")if(u==="style")for(const[g,m]of Object.entries(h))a.style.setProperty(GK(g),typeof m=="number"?m+"px":""+m);else u==="tabIndex"?a.tabIndex=h:a.setAttribute(GK(u),h.toString());return d.root=a,d}function GK(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function s3(e){return e.tagName.toLowerCase()==="input"||e.tagName.toLowerCase()==="textarea"||ec(e)&&!!e.editContext}var cr;(function(e){function t(o=void 0){return(s,a,l)=>{const d=a.class;delete a.class;const u=a.ref;delete a.ref;const h=a.obsRef;return delete a.obsRef,new eno(s,u,h,o,d,a,l)}}function n(o,s=void 0){const a=t(s);return(l,d)=>a(o,l,d)}e.div=n("div"),e.elem=t(void 0),e.svg=n("svg","http://www.w3.org/2000/svg"),e.svgElem=t("http://www.w3.org/2000/svg");function r(){let o;const s=function(a){o=a};return Object.defineProperty(s,"element",{get(){if(!o)throw new ui("Make sure the ref is set before accessing the element. Maybe wrong initialization order?");return o}}),s}e.ref=r})(cr||(cr={}));class KJe{constructor(t,n,r,o,s,a,l){this._deriveds=[],this._element=o?document.createElementNS(o,t):document.createElement(t),n&&n(this._element),r&&this._deriveds.push(Rt(d=>{r(this),d.store.add({dispose:()=>{r(null)}})})),s&&(xEn(s)?this._deriveds.push(Rt(this,d=>{Lbt(this._element,xbt(s,d))})):Lbt(this._element,xbt(s,void 0)));for(const[d,u]of Object.entries(a))if(d==="style")for(const[h,g]of Object.entries(u)){const m=GK(h);sQ(g)?this._deriveds.push(Vh({owner:this,debugName:()=>`set.style.${m}`},v=>{this._element.style.setProperty(m,Ebt(g.read(v)))})):this._element.style.setProperty(m,Ebt(g))}else d==="tabIndex"?sQ(u)?this._deriveds.push(Rt(this,h=>{this._element.tabIndex=u.read(h)})):this._element.tabIndex=u:d.startsWith("on")?this._element[d]=u:sQ(u)?this._deriveds.push(Vh({owner:this,debugName:()=>`set.${d}`},h=>{Tbt(this._element,d,u.read(h))})):Tbt(this._element,d,u);if(l){let d=function(h,g){return sQ(g)?d(h,g.read(h)):Array.isArray(g)?g.flatMap(m=>d(h,m)):g instanceof KJe?(h&&g.readEffect(h),[g._element]):g?[g]:[]};const u=Rt(this,h=>{this._element.replaceChildren(...d(h,l))});this._deriveds.push(u),EEn(l)||u.get()}}readEffect(t){for(const n of this._deriveds)n.read(t)}keepUpdated(t){return Rt(n=>{this.readEffect(n)}).recomputeInitiallyAndOnChange(t),this}toDisposableLiveElement(){const t=new xt;return this.keepUpdated(t),new Jto(this._element,t)}}function Lbt(e,t){CEn(e)?e.setAttribute("class",t):e.className=t}function LEn(e,t,n){if(sQ(e)){n(e.read(t));return}if(Array.isArray(e)){for(const r of e)LEn(r,t,n);return}n(e)}function xbt(e,t){let n="";return LEn(e,t,r=>{r&&(n.length===0?n=r:n+=" "+r)}),n}function xEn(e){return sQ(e)?!0:Array.isArray(e)?e.some(t=>xEn(t)):!1}function Ebt(e){return typeof e=="number"?e+"px":e}function EEn(e){return sQ(e)?!0:Array.isArray(e)?e.some(t=>EEn(t)):!1}class Jto{constructor(t,n){this.element=t,this._disposable=n}dispose(){this._disposable.dispose()}}class eno extends KJe{constructor(){super(...arguments),this._isHovered=void 0,this._didMouseMoveDuringHover=void 0}get element(){return this._element}get isHovered(){if(!this._isHovered){const t=Ti("hovered",!1);this._element.addEventListener("mouseenter",n=>t.set(!0,void 0)),this._element.addEventListener("mouseleave",n=>t.set(!1,void 0)),this._isHovered=t}return this._isHovered}get didMouseMoveDuringHover(){if(!this._didMouseMoveDuringHover){let t=!1;const n=Ti("didMouseMoveDuringHover",!1);this._element.addEventListener("mouseenter",r=>{t=!0}),this._element.addEventListener("mousemove",r=>{t&&n.set(!0,void 0)}),this._element.addEventListener("mouseleave",r=>{t=!1,n.set(!1,void 0)}),this._didMouseMoveDuringHover=n}return this._didMouseMoveDuringHover}}function Tbt(e,t,n){n==null?e.removeAttribute(GK(t)):e.setAttribute(GK(t),String(n))}function sQ(e){return!!e&&e.read!==void 0&&e.reportChanges!==void 0}const Qbt=2e4;let bT,Yue,fNe,Zue,gNe;function tno(e){bT=document.createElement("div"),bT.className="monaco-aria-container";const t=()=>{const r=document.createElement("div");return r.className="monaco-alert",r.setAttribute("role","alert"),r.setAttribute("aria-atomic","true"),bT.appendChild(r),r};Yue=t(),fNe=t();const n=()=>{const r=document.createElement("div");return r.className="monaco-status",r.setAttribute("aria-live","polite"),r.setAttribute("aria-atomic","true"),bT.appendChild(r),r};Zue=n(),gNe=n(),e.appendChild(bT)}function um(e){bT&&(Yue.textContent!==e?(uh(fNe),Eme(Yue,e)):(uh(Yue),Eme(fNe,e)))}function A3(e){bT&&(Zue.textContent!==e?(uh(gNe),Eme(Zue,e)):(uh(Zue),Eme(gNe,e)))}function Eme(e,t){uh(e),t.length>Qbt&&(t=t.substr(0,Qbt)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}var Zb;(function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies";function t(n){return n[e.DI_DEPENDENCIES]||[]}e.getServiceDependencies=t})(Zb||(Zb={}));const Yn=Cr("instantiationService");function nno(e,t,n){t[Zb.DI_TARGET]===t?t[Zb.DI_DEPENDENCIES].push({id:e,index:n}):(t[Zb.DI_DEPENDENCIES]=[{id:e,index:n}],t[Zb.DI_TARGET]=t)}function Cr(e){if(Zb.serviceIds.has(e))return Zb.serviceIds.get(e);const t=function(n,r,o){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");nno(t,n,o)};return t.toString=()=>e,Zb.serviceIds.set(e,t),t}const yo=Cr("codeEditorService");let it=class H7{constructor(t,n){this.lineNumber=t,this.column=n}with(t=this.lineNumber,n=this.column){return t===this.lineNumber&&n===this.column?this:new H7(t,n)}delta(t=0,n=0){return this.with(Math.max(1,this.lineNumber+t),Math.max(1,this.column+n))}equals(t){return H7.equals(this,t)}static equals(t,n){return!t&&!n?!0:!!t&&!!n&&t.lineNumber===n.lineNumber&&t.column===n.column}isBefore(t){return H7.isBefore(this,t)}static isBefore(t,n){return t.lineNumbere.run(...t)}}const kNe=Object.create(null);function ye(e,t){if(fu(t)){const n=kNe[t];if(n===void 0)throw new Error(`${e} references an unknown codicon: ${t}`);t=n}return kNe[e]=t,{id:e}}function TEn(){return kNe}const ino={add:ye("add",6e4),plus:ye("plus",6e4),gistNew:ye("gist-new",6e4),repoCreate:ye("repo-create",6e4),lightbulb:ye("lightbulb",60001),lightBulb:ye("light-bulb",60001),repo:ye("repo",60002),repoDelete:ye("repo-delete",60002),gistFork:ye("gist-fork",60003),repoForked:ye("repo-forked",60003),gitPullRequest:ye("git-pull-request",60004),gitPullRequestAbandoned:ye("git-pull-request-abandoned",60004),recordKeys:ye("record-keys",60005),keyboard:ye("keyboard",60005),tag:ye("tag",60006),gitPullRequestLabel:ye("git-pull-request-label",60006),tagAdd:ye("tag-add",60006),tagRemove:ye("tag-remove",60006),person:ye("person",60007),personFollow:ye("person-follow",60007),personOutline:ye("person-outline",60007),personFilled:ye("person-filled",60007),sourceControl:ye("source-control",60008),mirror:ye("mirror",60009),mirrorPublic:ye("mirror-public",60009),star:ye("star",60010),starAdd:ye("star-add",60010),starDelete:ye("star-delete",60010),starEmpty:ye("star-empty",60010),comment:ye("comment",60011),commentAdd:ye("comment-add",60011),alert:ye("alert",60012),warning:ye("warning",60012),search:ye("search",60013),searchSave:ye("search-save",60013),logOut:ye("log-out",60014),signOut:ye("sign-out",60014),logIn:ye("log-in",60015),signIn:ye("sign-in",60015),eye:ye("eye",60016),eyeUnwatch:ye("eye-unwatch",60016),eyeWatch:ye("eye-watch",60016),circleFilled:ye("circle-filled",60017),primitiveDot:ye("primitive-dot",60017),closeDirty:ye("close-dirty",60017),debugBreakpoint:ye("debug-breakpoint",60017),debugBreakpointDisabled:ye("debug-breakpoint-disabled",60017),debugHint:ye("debug-hint",60017),terminalDecorationSuccess:ye("terminal-decoration-success",60017),primitiveSquare:ye("primitive-square",60018),edit:ye("edit",60019),pencil:ye("pencil",60019),info:ye("info",60020),issueOpened:ye("issue-opened",60020),gistPrivate:ye("gist-private",60021),gitForkPrivate:ye("git-fork-private",60021),lock:ye("lock",60021),mirrorPrivate:ye("mirror-private",60021),close:ye("close",60022),removeClose:ye("remove-close",60022),x:ye("x",60022),repoSync:ye("repo-sync",60023),sync:ye("sync",60023),clone:ye("clone",60024),desktopDownload:ye("desktop-download",60024),beaker:ye("beaker",60025),microscope:ye("microscope",60025),vm:ye("vm",60026),deviceDesktop:ye("device-desktop",60026),file:ye("file",60027),more:ye("more",60028),ellipsis:ye("ellipsis",60028),kebabHorizontal:ye("kebab-horizontal",60028),mailReply:ye("mail-reply",60029),reply:ye("reply",60029),organization:ye("organization",60030),organizationFilled:ye("organization-filled",60030),organizationOutline:ye("organization-outline",60030),newFile:ye("new-file",60031),fileAdd:ye("file-add",60031),newFolder:ye("new-folder",60032),fileDirectoryCreate:ye("file-directory-create",60032),trash:ye("trash",60033),trashcan:ye("trashcan",60033),history:ye("history",60034),clock:ye("clock",60034),folder:ye("folder",60035),fileDirectory:ye("file-directory",60035),symbolFolder:ye("symbol-folder",60035),logoGithub:ye("logo-github",60036),markGithub:ye("mark-github",60036),github:ye("github",60036),terminal:ye("terminal",60037),console:ye("console",60037),repl:ye("repl",60037),zap:ye("zap",60038),symbolEvent:ye("symbol-event",60038),error:ye("error",60039),stop:ye("stop",60039),variable:ye("variable",60040),symbolVariable:ye("symbol-variable",60040),array:ye("array",60042),symbolArray:ye("symbol-array",60042),symbolModule:ye("symbol-module",60043),symbolPackage:ye("symbol-package",60043),symbolNamespace:ye("symbol-namespace",60043),symbolObject:ye("symbol-object",60043),symbolMethod:ye("symbol-method",60044),symbolFunction:ye("symbol-function",60044),symbolConstructor:ye("symbol-constructor",60044),symbolBoolean:ye("symbol-boolean",60047),symbolNull:ye("symbol-null",60047),symbolNumeric:ye("symbol-numeric",60048),symbolNumber:ye("symbol-number",60048),symbolStructure:ye("symbol-structure",60049),symbolStruct:ye("symbol-struct",60049),symbolParameter:ye("symbol-parameter",60050),symbolTypeParameter:ye("symbol-type-parameter",60050),symbolKey:ye("symbol-key",60051),symbolText:ye("symbol-text",60051),symbolReference:ye("symbol-reference",60052),goToFile:ye("go-to-file",60052),symbolEnum:ye("symbol-enum",60053),symbolValue:ye("symbol-value",60053),symbolRuler:ye("symbol-ruler",60054),symbolUnit:ye("symbol-unit",60054),activateBreakpoints:ye("activate-breakpoints",60055),archive:ye("archive",60056),arrowBoth:ye("arrow-both",60057),arrowDown:ye("arrow-down",60058),arrowLeft:ye("arrow-left",60059),arrowRight:ye("arrow-right",60060),arrowSmallDown:ye("arrow-small-down",60061),arrowSmallLeft:ye("arrow-small-left",60062),arrowSmallRight:ye("arrow-small-right",60063),arrowSmallUp:ye("arrow-small-up",60064),arrowUp:ye("arrow-up",60065),bell:ye("bell",60066),bold:ye("bold",60067),book:ye("book",60068),bookmark:ye("bookmark",60069),debugBreakpointConditionalUnverified:ye("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:ye("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:ye("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:ye("debug-breakpoint-data-unverified",60072),debugBreakpointData:ye("debug-breakpoint-data",60073),debugBreakpointDataDisabled:ye("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:ye("debug-breakpoint-log-unverified",60074),debugBreakpointLog:ye("debug-breakpoint-log",60075),debugBreakpointLogDisabled:ye("debug-breakpoint-log-disabled",60075),briefcase:ye("briefcase",60076),broadcast:ye("broadcast",60077),browser:ye("browser",60078),bug:ye("bug",60079),calendar:ye("calendar",60080),caseSensitive:ye("case-sensitive",60081),check:ye("check",60082),checklist:ye("checklist",60083),chevronDown:ye("chevron-down",60084),chevronLeft:ye("chevron-left",60085),chevronRight:ye("chevron-right",60086),chevronUp:ye("chevron-up",60087),chromeClose:ye("chrome-close",60088),chromeMaximize:ye("chrome-maximize",60089),chromeMinimize:ye("chrome-minimize",60090),chromeRestore:ye("chrome-restore",60091),circleOutline:ye("circle-outline",60092),circle:ye("circle",60092),debugBreakpointUnverified:ye("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:ye("terminal-decoration-incomplete",60092),circleSlash:ye("circle-slash",60093),circuitBoard:ye("circuit-board",60094),clearAll:ye("clear-all",60095),clippy:ye("clippy",60096),closeAll:ye("close-all",60097),cloudDownload:ye("cloud-download",60098),cloudUpload:ye("cloud-upload",60099),code:ye("code",60100),collapseAll:ye("collapse-all",60101),colorMode:ye("color-mode",60102),commentDiscussion:ye("comment-discussion",60103),creditCard:ye("credit-card",60105),dash:ye("dash",60108),dashboard:ye("dashboard",60109),database:ye("database",60110),debugContinue:ye("debug-continue",60111),debugDisconnect:ye("debug-disconnect",60112),debugPause:ye("debug-pause",60113),debugRestart:ye("debug-restart",60114),debugStart:ye("debug-start",60115),debugStepInto:ye("debug-step-into",60116),debugStepOut:ye("debug-step-out",60117),debugStepOver:ye("debug-step-over",60118),debugStop:ye("debug-stop",60119),debug:ye("debug",60120),deviceCameraVideo:ye("device-camera-video",60121),deviceCamera:ye("device-camera",60122),deviceMobile:ye("device-mobile",60123),diffAdded:ye("diff-added",60124),diffIgnored:ye("diff-ignored",60125),diffModified:ye("diff-modified",60126),diffRemoved:ye("diff-removed",60127),diffRenamed:ye("diff-renamed",60128),diff:ye("diff",60129),diffSidebyside:ye("diff-sidebyside",60129),discard:ye("discard",60130),editorLayout:ye("editor-layout",60131),emptyWindow:ye("empty-window",60132),exclude:ye("exclude",60133),extensions:ye("extensions",60134),eyeClosed:ye("eye-closed",60135),fileBinary:ye("file-binary",60136),fileCode:ye("file-code",60137),fileMedia:ye("file-media",60138),filePdf:ye("file-pdf",60139),fileSubmodule:ye("file-submodule",60140),fileSymlinkDirectory:ye("file-symlink-directory",60141),fileSymlinkFile:ye("file-symlink-file",60142),fileZip:ye("file-zip",60143),files:ye("files",60144),filter:ye("filter",60145),flame:ye("flame",60146),foldDown:ye("fold-down",60147),foldUp:ye("fold-up",60148),fold:ye("fold",60149),folderActive:ye("folder-active",60150),folderOpened:ye("folder-opened",60151),gear:ye("gear",60152),gift:ye("gift",60153),gistSecret:ye("gist-secret",60154),gist:ye("gist",60155),gitCommit:ye("git-commit",60156),gitCompare:ye("git-compare",60157),compareChanges:ye("compare-changes",60157),gitMerge:ye("git-merge",60158),githubAction:ye("github-action",60159),githubAlt:ye("github-alt",60160),globe:ye("globe",60161),grabber:ye("grabber",60162),graph:ye("graph",60163),gripper:ye("gripper",60164),heart:ye("heart",60165),home:ye("home",60166),horizontalRule:ye("horizontal-rule",60167),hubot:ye("hubot",60168),inbox:ye("inbox",60169),issueReopened:ye("issue-reopened",60171),issues:ye("issues",60172),italic:ye("italic",60173),jersey:ye("jersey",60174),json:ye("json",60175),kebabVertical:ye("kebab-vertical",60176),key:ye("key",60177),law:ye("law",60178),lightbulbAutofix:ye("lightbulb-autofix",60179),linkExternal:ye("link-external",60180),link:ye("link",60181),listOrdered:ye("list-ordered",60182),listUnordered:ye("list-unordered",60183),liveShare:ye("live-share",60184),loading:ye("loading",60185),location:ye("location",60186),mailRead:ye("mail-read",60187),mail:ye("mail",60188),markdown:ye("markdown",60189),megaphone:ye("megaphone",60190),mention:ye("mention",60191),milestone:ye("milestone",60192),gitPullRequestMilestone:ye("git-pull-request-milestone",60192),mortarBoard:ye("mortar-board",60193),move:ye("move",60194),multipleWindows:ye("multiple-windows",60195),mute:ye("mute",60196),noNewline:ye("no-newline",60197),note:ye("note",60198),octoface:ye("octoface",60199),openPreview:ye("open-preview",60200),package:ye("package",60201),paintcan:ye("paintcan",60202),pin:ye("pin",60203),play:ye("play",60204),run:ye("run",60204),plug:ye("plug",60205),preserveCase:ye("preserve-case",60206),preview:ye("preview",60207),project:ye("project",60208),pulse:ye("pulse",60209),question:ye("question",60210),quote:ye("quote",60211),radioTower:ye("radio-tower",60212),reactions:ye("reactions",60213),references:ye("references",60214),refresh:ye("refresh",60215),regex:ye("regex",60216),remoteExplorer:ye("remote-explorer",60217),remote:ye("remote",60218),remove:ye("remove",60219),replaceAll:ye("replace-all",60220),replace:ye("replace",60221),repoClone:ye("repo-clone",60222),repoForcePush:ye("repo-force-push",60223),repoPull:ye("repo-pull",60224),repoPush:ye("repo-push",60225),report:ye("report",60226),requestChanges:ye("request-changes",60227),rocket:ye("rocket",60228),rootFolderOpened:ye("root-folder-opened",60229),rootFolder:ye("root-folder",60230),rss:ye("rss",60231),ruby:ye("ruby",60232),saveAll:ye("save-all",60233),saveAs:ye("save-as",60234),save:ye("save",60235),screenFull:ye("screen-full",60236),screenNormal:ye("screen-normal",60237),searchStop:ye("search-stop",60238),server:ye("server",60240),settingsGear:ye("settings-gear",60241),settings:ye("settings",60242),shield:ye("shield",60243),smiley:ye("smiley",60244),sortPrecedence:ye("sort-precedence",60245),splitHorizontal:ye("split-horizontal",60246),splitVertical:ye("split-vertical",60247),squirrel:ye("squirrel",60248),starFull:ye("star-full",60249),starHalf:ye("star-half",60250),symbolClass:ye("symbol-class",60251),symbolColor:ye("symbol-color",60252),symbolConstant:ye("symbol-constant",60253),symbolEnumMember:ye("symbol-enum-member",60254),symbolField:ye("symbol-field",60255),symbolFile:ye("symbol-file",60256),symbolInterface:ye("symbol-interface",60257),symbolKeyword:ye("symbol-keyword",60258),symbolMisc:ye("symbol-misc",60259),symbolOperator:ye("symbol-operator",60260),symbolProperty:ye("symbol-property",60261),wrench:ye("wrench",60261),wrenchSubaction:ye("wrench-subaction",60261),symbolSnippet:ye("symbol-snippet",60262),tasklist:ye("tasklist",60263),telescope:ye("telescope",60264),textSize:ye("text-size",60265),threeBars:ye("three-bars",60266),thumbsdown:ye("thumbsdown",60267),thumbsup:ye("thumbsup",60268),tools:ye("tools",60269),triangleDown:ye("triangle-down",60270),triangleLeft:ye("triangle-left",60271),triangleRight:ye("triangle-right",60272),triangleUp:ye("triangle-up",60273),twitter:ye("twitter",60274),unfold:ye("unfold",60275),unlock:ye("unlock",60276),unmute:ye("unmute",60277),unverified:ye("unverified",60278),verified:ye("verified",60279),versions:ye("versions",60280),vmActive:ye("vm-active",60281),vmOutline:ye("vm-outline",60282),vmRunning:ye("vm-running",60283),watch:ye("watch",60284),whitespace:ye("whitespace",60285),wholeWord:ye("whole-word",60286),window:ye("window",60287),wordWrap:ye("word-wrap",60288),zoomIn:ye("zoom-in",60289),zoomOut:ye("zoom-out",60290),listFilter:ye("list-filter",60291),listFlat:ye("list-flat",60292),listSelection:ye("list-selection",60293),selection:ye("selection",60293),listTree:ye("list-tree",60294),debugBreakpointFunctionUnverified:ye("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:ye("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:ye("debug-breakpoint-function-disabled",60296),debugStackframeActive:ye("debug-stackframe-active",60297),circleSmallFilled:ye("circle-small-filled",60298),debugStackframeDot:ye("debug-stackframe-dot",60298),terminalDecorationMark:ye("terminal-decoration-mark",60298),debugStackframe:ye("debug-stackframe",60299),debugStackframeFocused:ye("debug-stackframe-focused",60299),debugBreakpointUnsupported:ye("debug-breakpoint-unsupported",60300),symbolString:ye("symbol-string",60301),debugReverseContinue:ye("debug-reverse-continue",60302),debugStepBack:ye("debug-step-back",60303),debugRestartFrame:ye("debug-restart-frame",60304),debugAlt:ye("debug-alt",60305),callIncoming:ye("call-incoming",60306),callOutgoing:ye("call-outgoing",60307),menu:ye("menu",60308),expandAll:ye("expand-all",60309),feedback:ye("feedback",60310),gitPullRequestReviewer:ye("git-pull-request-reviewer",60310),groupByRefType:ye("group-by-ref-type",60311),ungroupByRefType:ye("ungroup-by-ref-type",60312),account:ye("account",60313),gitPullRequestAssignee:ye("git-pull-request-assignee",60313),bellDot:ye("bell-dot",60314),debugConsole:ye("debug-console",60315),library:ye("library",60316),output:ye("output",60317),runAll:ye("run-all",60318),syncIgnored:ye("sync-ignored",60319),pinned:ye("pinned",60320),githubInverted:ye("github-inverted",60321),serverProcess:ye("server-process",60322),serverEnvironment:ye("server-environment",60323),pass:ye("pass",60324),issueClosed:ye("issue-closed",60324),stopCircle:ye("stop-circle",60325),playCircle:ye("play-circle",60326),record:ye("record",60327),debugAltSmall:ye("debug-alt-small",60328),vmConnect:ye("vm-connect",60329),cloud:ye("cloud",60330),merge:ye("merge",60331),export:ye("export",60332),graphLeft:ye("graph-left",60333),magnet:ye("magnet",60334),notebook:ye("notebook",60335),redo:ye("redo",60336),checkAll:ye("check-all",60337),pinnedDirty:ye("pinned-dirty",60338),passFilled:ye("pass-filled",60339),circleLargeFilled:ye("circle-large-filled",60340),circleLarge:ye("circle-large",60341),circleLargeOutline:ye("circle-large-outline",60341),combine:ye("combine",60342),gather:ye("gather",60342),table:ye("table",60343),variableGroup:ye("variable-group",60344),typeHierarchy:ye("type-hierarchy",60345),typeHierarchySub:ye("type-hierarchy-sub",60346),typeHierarchySuper:ye("type-hierarchy-super",60347),gitPullRequestCreate:ye("git-pull-request-create",60348),runAbove:ye("run-above",60349),runBelow:ye("run-below",60350),notebookTemplate:ye("notebook-template",60351),debugRerun:ye("debug-rerun",60352),workspaceTrusted:ye("workspace-trusted",60353),workspaceUntrusted:ye("workspace-untrusted",60354),workspaceUnknown:ye("workspace-unknown",60355),terminalCmd:ye("terminal-cmd",60356),terminalDebian:ye("terminal-debian",60357),terminalLinux:ye("terminal-linux",60358),terminalPowershell:ye("terminal-powershell",60359),terminalTmux:ye("terminal-tmux",60360),terminalUbuntu:ye("terminal-ubuntu",60361),terminalBash:ye("terminal-bash",60362),arrowSwap:ye("arrow-swap",60363),copy:ye("copy",60364),personAdd:ye("person-add",60365),filterFilled:ye("filter-filled",60366),wand:ye("wand",60367),debugLineByLine:ye("debug-line-by-line",60368),inspect:ye("inspect",60369),layers:ye("layers",60370),layersDot:ye("layers-dot",60371),layersActive:ye("layers-active",60372),compass:ye("compass",60373),compassDot:ye("compass-dot",60374),compassActive:ye("compass-active",60375),azure:ye("azure",60376),issueDraft:ye("issue-draft",60377),gitPullRequestClosed:ye("git-pull-request-closed",60378),gitPullRequestDraft:ye("git-pull-request-draft",60379),debugAll:ye("debug-all",60380),debugCoverage:ye("debug-coverage",60381),runErrors:ye("run-errors",60382),folderLibrary:ye("folder-library",60383),debugContinueSmall:ye("debug-continue-small",60384),beakerStop:ye("beaker-stop",60385),graphLine:ye("graph-line",60386),graphScatter:ye("graph-scatter",60387),pieChart:ye("pie-chart",60388),bracket:ye("bracket",60175),bracketDot:ye("bracket-dot",60389),bracketError:ye("bracket-error",60390),lockSmall:ye("lock-small",60391),azureDevops:ye("azure-devops",60392),verifiedFilled:ye("verified-filled",60393),newline:ye("newline",60394),layout:ye("layout",60395),layoutActivitybarLeft:ye("layout-activitybar-left",60396),layoutActivitybarRight:ye("layout-activitybar-right",60397),layoutPanelLeft:ye("layout-panel-left",60398),layoutPanelCenter:ye("layout-panel-center",60399),layoutPanelJustify:ye("layout-panel-justify",60400),layoutPanelRight:ye("layout-panel-right",60401),layoutPanel:ye("layout-panel",60402),layoutSidebarLeft:ye("layout-sidebar-left",60403),layoutSidebarRight:ye("layout-sidebar-right",60404),layoutStatusbar:ye("layout-statusbar",60405),layoutMenubar:ye("layout-menubar",60406),layoutCentered:ye("layout-centered",60407),target:ye("target",60408),indent:ye("indent",60409),recordSmall:ye("record-small",60410),errorSmall:ye("error-small",60411),terminalDecorationError:ye("terminal-decoration-error",60411),arrowCircleDown:ye("arrow-circle-down",60412),arrowCircleLeft:ye("arrow-circle-left",60413),arrowCircleRight:ye("arrow-circle-right",60414),arrowCircleUp:ye("arrow-circle-up",60415),layoutSidebarRightOff:ye("layout-sidebar-right-off",60416),layoutPanelOff:ye("layout-panel-off",60417),layoutSidebarLeftOff:ye("layout-sidebar-left-off",60418),blank:ye("blank",60419),heartFilled:ye("heart-filled",60420),map:ye("map",60421),mapHorizontal:ye("map-horizontal",60421),foldHorizontal:ye("fold-horizontal",60421),mapFilled:ye("map-filled",60422),mapHorizontalFilled:ye("map-horizontal-filled",60422),foldHorizontalFilled:ye("fold-horizontal-filled",60422),circleSmall:ye("circle-small",60423),bellSlash:ye("bell-slash",60424),bellSlashDot:ye("bell-slash-dot",60425),commentUnresolved:ye("comment-unresolved",60426),gitPullRequestGoToChanges:ye("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:ye("git-pull-request-new-changes",60428),searchFuzzy:ye("search-fuzzy",60429),commentDraft:ye("comment-draft",60430),send:ye("send",60431),sparkle:ye("sparkle",60432),insert:ye("insert",60433),mic:ye("mic",60434),thumbsdownFilled:ye("thumbsdown-filled",60435),thumbsupFilled:ye("thumbsup-filled",60436),coffee:ye("coffee",60437),snake:ye("snake",60438),game:ye("game",60439),vr:ye("vr",60440),chip:ye("chip",60441),piano:ye("piano",60442),music:ye("music",60443),micFilled:ye("mic-filled",60444),repoFetch:ye("repo-fetch",60445),copilot:ye("copilot",60446),lightbulbSparkle:ye("lightbulb-sparkle",60447),robot:ye("robot",60448),sparkleFilled:ye("sparkle-filled",60449),diffSingle:ye("diff-single",60450),diffMultiple:ye("diff-multiple",60451),surroundWith:ye("surround-with",60452),share:ye("share",60453),gitStash:ye("git-stash",60454),gitStashApply:ye("git-stash-apply",60455),gitStashPop:ye("git-stash-pop",60456),vscode:ye("vscode",60457),vscodeInsiders:ye("vscode-insiders",60458),codeOss:ye("code-oss",60459),runCoverage:ye("run-coverage",60460),runAllCoverage:ye("run-all-coverage",60461),coverage:ye("coverage",60462),githubProject:ye("github-project",60463),mapVertical:ye("map-vertical",60464),foldVertical:ye("fold-vertical",60464),mapVerticalFilled:ye("map-vertical-filled",60465),foldVerticalFilled:ye("fold-vertical-filled",60465),goToSearch:ye("go-to-search",60466),percentage:ye("percentage",60467),sortPercentage:ye("sort-percentage",60467),attach:ye("attach",60468),goToEditingSession:ye("go-to-editing-session",60469),editSession:ye("edit-session",60470),codeReview:ye("code-review",60471),copilotWarning:ye("copilot-warning",60472),python:ye("python",60473),copilotLarge:ye("copilot-large",60474),copilotWarningLarge:ye("copilot-warning-large",60475),keyboardTab:ye("keyboard-tab",60476),copilotBlocked:ye("copilot-blocked",60477),copilotNotConnected:ye("copilot-not-connected",60478),flag:ye("flag",60479),lightbulbEmpty:ye("lightbulb-empty",60480),symbolMethodArrow:ye("symbol-method-arrow",60481),copilotUnavailable:ye("copilot-unavailable",60482),repoPinned:ye("repo-pinned",60483),keyboardTabAbove:ye("keyboard-tab-above",60484),keyboardTabBelow:ye("keyboard-tab-below",60485),gitPullRequestDone:ye("git-pull-request-done",60486),mcp:ye("mcp",60487),extensionsLarge:ye("extensions-large",60488),layoutPanelDock:ye("layout-panel-dock",60489),layoutSidebarLeftDock:ye("layout-sidebar-left-dock",60490),layoutSidebarRightDock:ye("layout-sidebar-right-dock",60491),copilotInProgress:ye("copilot-in-progress",60492),copilotError:ye("copilot-error",60493),copilotSuccess:ye("copilot-success",60494),chatSparkle:ye("chat-sparkle",60495),searchSparkle:ye("search-sparkle",60496),editSparkle:ye("edit-sparkle",60497),copilotSnooze:ye("copilot-snooze",60498),sendToRemoteAgent:ye("send-to-remote-agent",60499),commentDiscussionSparkle:ye("comment-discussion-sparkle",60500),chatSparkleWarning:ye("chat-sparkle-warning",60501),chatSparkleError:ye("chat-sparkle-error",60502),collection:ye("collection",60503),newCollection:ye("new-collection",60504),thinking:ye("thinking",60505),build:ye("build",60506),commentDiscussionQuote:ye("comment-discussion-quote",60507),cursor:ye("cursor",60508),eraser:ye("eraser",60509),fileText:ye("file-text",60510),gitLens:ye("git-lens",60511),quotes:ye("quotes",60512),rename:ye("rename",60513),runWithDeps:ye("run-with-deps",60514),debugConnected:ye("debug-connected",60515),strikethrough:ye("strikethrough",60516),openInProduct:ye("open-in-product",60517),indexZero:ye("index-zero",60518),agent:ye("agent",60519),editCode:ye("edit-code",60520),repoSelected:ye("repo-selected",60521),skip:ye("skip",60522),mergeInto:ye("merge-into",60523),gitBranchChanges:ye("git-branch-changes",60524),gitBranchStagedChanges:ye("git-branch-staged-changes",60525),gitBranchConflicts:ye("git-branch-conflicts",60526),gitBranch:ye("git-branch",60527),gitBranchCreate:ye("git-branch-create",60527),gitBranchDelete:ye("git-branch-delete",60527),searchLarge:ye("search-large",60528),terminalGitBash:ye("terminal-git-bash",60529)},rno={dialogError:ye("dialog-error","error"),dialogWarning:ye("dialog-warning","warning"),dialogInfo:ye("dialog-info","info"),dialogClose:ye("dialog-close","close"),treeItemExpanded:ye("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:ye("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:ye("tree-filter-on-type-off","list-selection"),treeFilterClear:ye("tree-filter-clear","close"),treeItemLoading:ye("tree-item-loading","loading"),menuSelection:ye("menu-selection","check"),menuSubmenu:ye("menu-submenu","chevron-right"),menuBarMore:ye("menubar-more","more"),scrollbarButtonLeft:ye("scrollbar-button-left","triangle-left"),scrollbarButtonRight:ye("scrollbar-button-right","triangle-right"),scrollbarButtonUp:ye("scrollbar-button-up","triangle-up"),scrollbarButtonDown:ye("scrollbar-button-down","triangle-down"),toolBarMore:ye("toolbar-more","more"),quickInputBack:ye("quick-input-back","arrow-left"),dropDownButton:ye("drop-down-button",60084),symbolCustomColor:ye("symbol-customcolor",60252),exportIcon:ye("export",60332),workspaceUnspecified:ye("workspace-unspecified",60355),newLine:ye("newline",60394),thumbsDownFilled:ye("thumbsdown-filled",60435),thumbsUpFilled:ye("thumbsup-filled",60436),gitFetch:ye("git-fetch",60445),lightbulbSparkleAutofix:ye("lightbulb-sparkle-autofix",60447),debugBreakpointPending:ye("debug-breakpoint-pending",60377)},zt={...ino,...rno};var vNe;(function(e){function t(n){return!!n&&typeof n=="object"&&typeof n.id=="string"}e.isThemeColor=t})(vNe||(vNe={}));var fi;(function(e){e.iconNameSegment="[A-Za-z0-9]+",e.iconNameExpression="[A-Za-z0-9-]+",e.iconModifierExpression="~[A-Za-z]+",e.iconNameCharacter="[A-Za-z0-9~-]";const t=new RegExp(`^(${e.iconNameExpression})(${e.iconModifierExpression})?$`);function n(f){const k=t.exec(f.id);if(!k)return n(zt.error);const[,A,p]=k,b=["codicon","codicon-"+A];return p&&b.push("codicon-modifier-"+p.substring(1)),b}e.asClassNameArray=n;function r(f){return n(f).join(" ")}e.asClassName=r;function o(f){return"."+n(f).join(".")}e.asCSSSelector=o;function s(f){return!!f&&typeof f=="object"&&typeof f.id=="string"&&(typeof f.color>"u"||vNe.isThemeColor(f.color))}e.isThemeIcon=s;const a=new RegExp(`^\\$\\((${e.iconNameExpression}(?:${e.iconModifierExpression})?)\\)$`);function l(f){const k=a.exec(f);if(!k)return;const[,A]=k;return{id:A}}e.fromString=l;function d(f){return{id:f}}e.fromId=d;function u(f,k){let A=f.id;const p=A.lastIndexOf("~");return p!==-1&&(A=A.substring(0,p)),k&&(A=`${A}~${k}`),{id:A}}e.modify=u;function h(f){const k=f.id.lastIndexOf("~");if(k!==-1)return f.id.substring(k+1)}e.getModifier=h;function g(f,k){var A,p;return f.id===k.id&&((A=f.color)==null?void 0:A.id)===((p=k.color)==null?void 0:p.id)}e.isEqual=g;function m(f){return(f==null?void 0:f.id)===zt.file.id}e.isFile=m;function v(f){return(f==null?void 0:f.id)===zt.folder.id}e.isFolder=v})(fi||(fi={}));const ba=Cr("commandService"),co=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new at,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(e,t){if(!e)throw new Error("invalid command");if(typeof e=="string"){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.metadata&&Array.isArray(e.metadata.args)){const a=[];for(const d of e.metadata.args)a.push(d.constraint);const l=e.handler;e.handler=function(d,...u){return CJr(u,a),l(d,...u)}}const{id:n}=e;let r=this._commands.get(n);r||(r=new bg,this._commands.set(n,r));const o=r.unshift(e),s=Hn(()=>{o();const a=this._commands.get(n);a!=null&&a.isEmpty()&&this._commands.delete(n)});return this._onDidRegisterCommand.fire(n),s}registerCommandAlias(e,t){return co.registerCommand(e,(n,...r)=>n.get(ba).executeCommand(t,...r))}getCommand(e){const t=this._commands.get(e);if(!(!t||t.isEmpty()))return to.first(t)}getCommands(){const e=new Map;for(const t of this._commands.keys()){const n=this.getCommand(t);n&&e.set(t,n)}return e}};co.registerCommand("noop",()=>{});function nLe(...e){switch(e.length){case 1:return U(1693,"Did you mean {0}?",e[0]);case 2:return U(1694,"Did you mean {0} or {1}?",e[0],e[1]);case 3:return U(1695,"Did you mean {0}, {1} or {2}?",e[0],e[1],e[2]);default:return}}const ono=U(1696,"Did you forget to open or close the quote?"),sno=U(1697,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");var jS;let aX=(jS=class{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(t){switch(t.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return t.isTripleEq?"===":"==";case 4:return t.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return t.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return t.lexeme;case 18:return t.lexeme;case 19:return t.lexeme;case 20:return"EOF";default:throw mme(`unhandled token type: ${JSON.stringify(t)}; have you forgotten to add a case?`)}}reset(t){return this._input=t,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const n=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:n})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const n=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:n})}else this._match(126)?this._addToken(9):this._error(nLe("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(nLe("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(nLe("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return this._isAtEnd()||this._input.charCodeAt(this._current)!==t?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){const n=this._start,r=this._input.substring(this._start,this._current),o={type:19,offset:this._start,lexeme:r};this._errors.push({offset:n,lexeme:r,additionalInfo:t}),this._tokens.push(o)}_string(){this.stringRe.lastIndex=this._start;const t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;const n=this._input.substring(this._start,this._current),r=jS._keywords.get(n);r?this._addToken(r):this._tokens.push({type:17,lexeme:n,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(ono);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let t=this._current,n=!1,r=!1;for(;;){if(t>=this._input.length){this._current=t,this._error(sno);return}const s=this._input.charCodeAt(t);if(n)n=!1;else if(s===47&&!r){t++;break}else s===91?r=!0:s===92?n=!0:s===93&&(r=!1);t++}for(;t=this._input.length}},jS._regexFlags=new Set(["i","g","s","m","y","u"].map(t=>t.charCodeAt(0))),jS._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]),jS);const Df=new Map;Df.set("false",!1);Df.set("true",!0);Df.set("isMac",Tr);Df.set("isLinux",v1);Df.set("isWindows",mh);Df.set("isWeb",qy);Df.set("isMacNative",Tr&&!qy);Df.set("isEdge",B6n);Df.set("isFirefox",BJr);Df.set("isChrome",_Je);Df.set("isSafari",RJr);const ano=Object.prototype.hasOwnProperty,lno={regexParsingWithErrorRecovery:!0},cno=U(1675,"Empty context key expression"),dno=U(1676,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),uno=U(1677,"'in' after 'not'."),Dbt=U(1678,"closing parenthesis ')'"),hno=U(1679,"Unexpected token"),fno=U(1680,"Did you forget to put && or || before the token?"),gno=U(1681,"Unexpected end of expression"),mno=U(1682,"Did you forget to put a context key?");var RO;let kno=(RO=class{constructor(t=lno){this._config=t,this._scanner=new aX,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(t){if(t===""){this._parsingErrors.push({message:cno,offset:0,lexeme:"",additionalInfo:dno});return}this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{const n=this._expr();if(!this._isAtEnd()){const r=this._peek(),o=r.type===17?fno:void 0;throw this._parsingErrors.push({message:hno,offset:r.offset,lexeme:aX.getLexeme(r),additionalInfo:o}),RO._parseError}return n}catch(n){if(n!==RO._parseError)throw n;return}}_expr(){return this._or()}_or(){const t=[this._and()];for(;this._matchOne(16);){const n=this._and();t.push(n)}return t.length===1?t[0]:Ft.or(...t)}_and(){const t=[this._term()];for(;this._matchOne(15);){const n=this._term();t.push(n)}return t.length===1?t[0]:Ft.and(...t)}_term(){if(this._matchOne(2)){const t=this._peek();switch(t.type){case 11:return this._advance(),hm.INSTANCE;case 12:return this._advance(),p1.INSTANCE;case 0:{this._advance();const n=this._expr();return this._consume(1,Dbt),n==null?void 0:n.negate()}case 17:return this._advance(),wI.create(t.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",t)}}return this._primary()}_primary(){const t=this._peek();switch(t.type){case 11:return this._advance(),Ft.true();case 12:return this._advance(),Ft.false();case 0:{this._advance();const n=this._expr();return this._consume(1,Dbt),n}case 17:{const n=t.lexeme;if(this._advance(),this._matchOne(9)){const o=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),o.type!==10)throw this._errExpectedButGot("REGEX",o);const s=o.lexeme,a=s.lastIndexOf("/"),l=a===s.length-1?void 0:this._removeFlagsGY(s.substring(a+1));let d;try{d=new RegExp(s.substring(1,a),l)}catch{throw this._errExpectedButGot("REGEX",o)}return YK.create(n,d)}switch(o.type){case 10:case 19:{const s=[o.lexeme];this._advance();let a=this._peek(),l=0;for(let m=0;m=0){const u=s.slice(l+1,d),h=s[d+1]==="i"?"i":"";try{a=new RegExp(u,h)}catch{throw this._errExpectedButGot("REGEX",o)}}}if(a===null)throw this._errExpectedButGot("REGEX",o);return YK.create(n,a)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,uno);const o=this._value();return Ft.notIn(n,o)}switch(this._peek().type){case 3:{this._advance();const o=this._value();if(this._previous().type===18)return Ft.equals(n,o);switch(o){case"true":return Ft.has(n);case"false":return Ft.not(n);default:return Ft.equals(n,o)}}case 4:{this._advance();const o=this._value();if(this._previous().type===18)return Ft.notEquals(n,o);switch(o){case"true":return Ft.not(n);case"false":return Ft.has(n);default:return Ft.notEquals(n,o)}}case 5:return this._advance(),Ebe.create(n,this._value());case 6:return this._advance(),Tbe.create(n,this._value());case 7:return this._advance(),Lbe.create(n,this._value());case 8:return this._advance(),xbe.create(n,this._value());case 13:return this._advance(),Ft.in(n,this._value());default:return Ft.has(n)}}case 20:throw this._parsingErrors.push({message:gno,offset:t.offset,lexeme:"",additionalInfo:mno}),RO._parseError;default:throw this._errExpectedButGot(`true | false | KEY +`),o=hto(r[n+1]);if(o)return new VJe(o.fileName,o.line,o.column,o.id)}constructor(t,n,r,o){this.fileName=t,this.line=n,this.column=r,this.id=o}}function hto(e){const t=e.match(/\((.*):(\d+):(\d+)\)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:e};const n=e.match(/at ([^\(\)]*):(\d+):(\d+)/);if(n)return{fileName:n[1],line:parseInt(n[2]),column:parseInt(n[3]),id:e}}const f2=(e,t)=>e===t;function VK(e=f2){return(t,n)=>Na(t,n,e)}function zJe(){return(e,t)=>e.equals(t)}function oQ(e,t,n){if(n!==void 0){const r=e;return r==null||t===void 0||t===null?t===r:n(r,t)}else{const r=e;return(o,s)=>o==null||s===void 0||s===null?s===o:r(o,s)}}function lNe(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n{const a=HJe(s);if(a!==void 0)return a;const d=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(s.toString());if(d)return`${this.debugName}.${d[2]}`;if(!o)return`${this.debugName} (mapped)`},debugReferenceFn:s},a=>s(this.read(a),a),r)}flatten(){return dNe({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,n){return t.add(uEn(this,n)),this}}class Vz extends hEn{constructor(t){var n;super(),this._observers=new Set,(n=Of())==null||n.handleObservableCreated(this,t)}addObserver(t){var r;const n=this._observers.size;this._observers.add(t),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&((r=Of())==null||r.handleOnListenerCountChanged(this,this._observers.size))}removeObserver(t){var r;const n=this._observers.delete(t);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&((r=Of())==null||r.handleOnListenerCountChanged(this,this._observers.size))}onFirstObserverAdded(){}onLastObserverRemoved(){}debugGetObservers(){return this._observers}}function pto(e){switch(e){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return""}}class pv extends Vz{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(t,n,r,o=void 0,s,a){var l;super(a),this._debugNameData=t,this._computeFn=n,this._changeTracker=r,this._handleLastObserverRemoved=o,this._equalityComparator=s,this._state=0,this._value=void 0,this._updateCount=0,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._changeSummary=void 0,this._isUpdating=!1,this._isComputing=!1,this._didReportChange=!1,this._isInBeforeUpdate=!1,this._isReaderValid=!1,this._store=void 0,this._delayedStore=void 0,this._removedObserverToCallEndUpdateOn=null,this._changeSummary=(l=this._changeTracker)==null?void 0:l.createChangeSummary(void 0)}onLastObserverRemoved(){var t,n;this._state=0,this._value=void 0,(t=Of())==null||t.handleDerivedCleared(this);for(const r of this._dependencies)r.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),(n=this._handleLastObserverRemoved)==null||n.call(this)}get(){var n,r;if(this._isComputing,this._observers.size===0){let o;try{this._isReaderValid=!0;let s;this._changeTracker&&(s=this._changeTracker.createChangeSummary(void 0),(r=(n=this._changeTracker).beforeUpdate)==null||r.call(n,this,s)),o=this._computeFn(this,s)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),o}else{do{if(this._state===1){for(const o of this._dependencies)if(o.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){var r,o,s,a;let t=!1;this._isComputing=!0,this._didReportChange=!1;const n=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=n;try{const l=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,(o=(r=this._changeTracker).beforeUpdate)==null||o.call(r,this,l),this._isInBeforeUpdate=!1,this._changeSummary=(s=this._changeTracker)==null?void 0:s.createChangeSummary(l));const d=this._state!==0,u=this._value;this._state=3;const h=this._delayedStore;h!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,l)}finally{this._isReaderValid=!1;for(const g of this._dependenciesToBeRemoved)g.removeObserver(this);this._dependenciesToBeRemoved.clear(),h!==void 0&&h.dispose()}t=this._didReportChange||d&&!this._equalityComparator(u,this._value),(a=Of())==null||a.handleObservableUpdated(this,{oldValue:u,newValue:this._value,change:void 0,didChange:t,hadValue:d})}catch(l){fme(l)}if(this._isComputing=!1,!this._didReportChange&&t)for(const l of this._observers)l.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(t){if(this._isUpdating)throw new ui("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{const n=this._updateCount===1;if(this._state===3&&(this._state=1,!n))for(const r of this._observers)r.handlePossibleChange(this);if(n)for(const r of this._observers)r.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(t){if(this._updateCount--,this._updateCount===0){const n=[...this._observers];for(const r of n)r.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){const r=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(const o of r)o.endUpdate(this)}}b6(()=>this._updateCount>=0)}handlePossibleChange(t){if(this._state===3&&this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)){this._state=1;for(const n of this._observers)n.handlePossibleChange(this)}}handleChange(t,n){var r;if(this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)||this._isInBeforeUpdate){(r=Of())==null||r.handleDerivedDependencyChanged(this,t,n);let o=!1;try{o=this._changeTracker?this._changeTracker.handleChange({changedObservable:t,change:n,didChange:a=>a===t},this._changeSummary):!0}catch(a){fme(a)}const s=this._state===3;if(o&&(this._state===1||s)&&(this._state=2,s))for(const a of this._observers)a.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new ui("The reader object cannot be used outside its compute function!")}readObservable(t){this._ensureReaderValid(),t.addObserver(this);const n=t.get();return this._dependencies.add(t),this._dependenciesToBeRemoved.delete(t),n}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new xt),this._store}addObserver(t){const n=!this._observers.has(t)&&this._updateCount>0;super.addObserver(t),n&&(this._removedObserverToCallEndUpdateOn&&this._removedObserverToCallEndUpdateOn.has(t)?this._removedObserverToCallEndUpdateOn.delete(t):t.beginUpdate(this))}removeObserver(t){this._observers.has(t)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(t)),super.removeObserver(t)}debugGetState(){return{state:this._state,stateStr:pto(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(t){this._value=t}debugRecompute(){this._isComputing?this._state=2:this._recompute()}setValue(t,n,r){this._value=t;const o=this._observers;n.updateObserver(this,this);for(const s of o)s.handleChange(this,r)}}class fEn extends pv{constructor(t,n,r,o=void 0,s,a,l){super(t,n,r,o,s,l),this.set=a}}function Rt(e,t,n=Hd.ofCaller()){return t!==void 0?new pv(new tf(e,void 0,t),t,void 0,void 0,f2,n):new pv(new tf(void 0,void 0,e),e,void 0,void 0,f2,n)}function $Je(e,t,n,r=Hd.ofCaller()){return new fEn(new tf(e,void 0,t),t,void 0,void 0,f2,n,r)}function Vh(e,t,n=Hd.ofCaller()){return new pv(new tf(e.owner,e.debugName,e.debugReferenceFn),t,void 0,e.onLastObserverRemoved,e.equalsFn??f2,n)}vto(Vh);function pbt(e,t,n=Hd.ofCaller()){return new pv(new tf(e.owner,e.debugName,void 0),t,e.changeTracker,void 0,e.equalityComparer??f2,n)}function vv(e,t,n=Hd.ofCaller()){let r,o;t===void 0?(r=e,o=void 0):(o=e,r=t);let s;return new pv(new tf(o,void 0,r),a=>{s?s.clear():s=new xt;const l=r(a);return l&&s.add(l),l},void 0,()=>{s&&(s.dispose(),s=void 0)},f2,n)}function bto(e){switch(e){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return""}}class zK{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(t,n,r,o){var s,a;this._debugNameData=t,this._runFn=n,this._changeTracker=r,this._state=2,this._updateCount=0,this._disposed=!1,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._isRunning=!1,this._store=void 0,this._delayedStore=void 0,this._changeSummary=(s=this._changeTracker)==null?void 0:s.createChangeSummary(void 0),(a=Of())==null||a.handleAutorunCreated(this,o),this._run()}dispose(){var t;if(!this._disposed){this._disposed=!0;for(const n of this._dependencies)n.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&this._store.dispose(),this._delayedStore!==void 0&&this._delayedStore.dispose(),(t=Of())==null||t.handleAutorunDisposed(this)}}_run(){var n,r,o,s;const t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){(n=Of())==null||n.handleAutorunStarted(this);const a=this._changeSummary,l=this._delayedStore;l!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&((o=(r=this._changeTracker).beforeUpdate)==null||o.call(r,this,a),this._changeSummary=this._changeTracker.createChangeSummary(a)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,a)}catch(d){fme(d)}finally{this._isRunning=!1,l!==void 0&&l.dispose()}}}finally{this._disposed||(s=Of())==null||s.handleAutorunFinished(this);for(const a of this._dependenciesToBeRemoved)a.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(t){this._state===3&&(this._state=1),this._updateCount++}endUpdate(t){try{if(this._updateCount===1)do{if(this._state===1){this._state=3;for(const n of this._dependencies)if(n.reportChanges(),this._state===2)break}this._state!==3&&this._run()}while(this._state!==3)}finally{this._updateCount--}b6(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._state=1)}handleChange(t,n){var r;if(this._isDependency(t)){(r=Of())==null||r.handleAutorunDependencyChanged(this,t,n);try{(this._changeTracker?this._changeTracker.handleChange({changedObservable:t,change:n,didChange:s=>s===t},this._changeSummary):!0)&&(this._state=2)}catch(o){fme(o)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new ui("The reader object cannot be used outside its compute function!")}readObservable(t){if(this._ensureNoRunning(),this._disposed)return t.get();t.addObserver(this);const n=t.get();return this._dependencies.add(t),this._dependenciesToBeRemoved.delete(t),n}get store(){if(this._ensureNoRunning(),this._disposed)throw new ui("Cannot access store after dispose");return this._store===void 0&&(this._store=new xt),this._store}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:bto(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}}function Oi(e,t=Hd.ofCaller()){return new zK(new tf(void 0,void 0,e),e,void 0,t)}function pbe(e,t,n=Hd.ofCaller()){return new zK(new tf(e.owner,e.debugName,e.debugReferenceFn??t),t,void 0,n)}function zz(e,t,n=Hd.ofCaller()){return new zK(new tf(e.owner,e.debugName,e.debugReferenceFn??t),t,e.changeTracker,n)}function wto(e,t){const n=new xt,r=zz({owner:e.owner,debugName:e.debugName,debugReferenceFn:e.debugReferenceFn??t,changeTracker:e.changeTracker},(o,s)=>{n.clear(),t(o,s,n)});return Hn(()=>{r.dispose(),n.dispose()})}function Ef(e){const t=new xt,n=pbe({owner:void 0,debugName:void 0,debugReferenceFn:e},r=>{t.clear(),e(r,t)});return Hn(()=>{n.dispose(),t.dispose()})}function Oto(e,t){let n;return pbe({debugReferenceFn:t},r=>{const o=e.read(r),s=n;n=o,t({lastValue:s,newValue:o})})}function bbt(e){const t=new Error("BugIndicatingErrorRecovery: "+e);zi(t),console.error("recovered from an error that indicates a bug",t)}function la(e,t){const n=new Hz(e,t);try{e(n)}finally{n.finish()}}let dle;function BG(e){if(dle)e(dle);else{const t=new Hz(e,void 0);dle=t;try{e(t)}finally{t.finish(),dle=void 0}}}async function yto(e,t){const n=new Hz(e,t);try{await e(n)}finally{n.finish()}}function qW(e,t,n){e?t(e):la(t,n)}class Hz{constructor(t,n){var r;this._fn=t,this._getDebugName=n,this._updatingObservers=[],(r=Of())==null||r.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():HJe(this._fn)}updateObserver(t,n){if(!this._updatingObservers){bbt("Transaction already finished!"),la(r=>{r.updateObserver(t,n)});return}this._updatingObservers.push({observer:t,observable:n}),t.beginUpdate(n)}finish(){var n;const t=this._updatingObservers;if(!t){bbt("transaction.finish() has already been called!");return}for(let r=0;rxS.globalTransaction,f2,o??Hd.ofCaller())}function gEn(e,t,n,r=Hd.ofCaller()){return new xS(new tf(e.owner,e.debugName,e.debugReferenceFn??n),t,n,()=>xS.globalTransaction,e.equalsFn??f2,r)}class xS extends Vz{constructor(t,n,r,o,s,a){super(a),this._debugNameData=t,this.event=n,this._getValue=r,this._getTransaction=o,this._equalityComparator=s,this._hasValue=!1,this.handleEvent=l=>{var m;const d=this._getValue(l),u=this._value,h=!this._hasValue||!this._equalityComparator(u,d);let g=!1;h&&(this._value=d,this._hasValue&&(g=!0,qW(this._getTransaction(),v=>{var f;(f=Of())==null||f.handleObservableUpdated(this,{oldValue:u,newValue:d,change:void 0,didChange:h,hadValue:this._hasValue});for(const k of this._observers)v.updateObserver(k,this),k.handleChange(this,void 0)},()=>{const v=this.getDebugName();return"Event fired"+(v?`: ${v}`:"")})),this._hasValue=!0),g||(m=Of())==null||m.handleObservableUpdated(this,{oldValue:u,newValue:d,change:void 0,didChange:h,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const t=this.getDebugName();return"From Event"+(t?`: ${t}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){return this._subscription?(this._hasValue||this.handleEvent(void 0),this._value):this._getValue(void 0)}debugSetValue(t){this._value=t}debugGetState(){return{value:this._value,hasValue:this._hasValue}}}(function(e){e.Observer=xS;function t(n,r){let o=!1;xS.globalTransaction===void 0&&(xS.globalTransaction=n,o=!0);try{r()}finally{o&&(xS.globalTransaction=void 0)}}e.batchEventsGlobally=t})(Ko||(Ko={}));function wbt(e,t){let n=!1,r,o;return Ko(s=>{const a=Oi(l=>{const d=e.read(l);n?(o&&clearTimeout(o),o=setTimeout(()=>{r=d,s()},t)):(n=!0,r=d)});return{dispose(){a.dispose(),n=!1,r=void 0}}},()=>n?r:e.get())}function KW(e,t){const n=new Cto(!0,t);e.addObserver(n);try{n.beginUpdate(e)}finally{n.endUpdate(e)}return Hn(()=>{e.removeObserver(n)})}Ato(KW);class Cto{constructor(t,n){this._forceRecompute=t,this._handleValue=n,this._counter=0}beginUpdate(t){this._counter++}endUpdate(t){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(t.get()):t.reportChanges()),this._counter--}handlePossibleChange(t){}handleChange(t,n){}}function vL(e,t){let n;return Vh({owner:e,debugReferenceFn:t},o=>(n=t(o,n),n))}function XJe(e,t,n,r){let o=new Obt(n,r);return Vh({debugReferenceFn:n,owner:e,onLastObserverRemoved:()=>{o.dispose(),o=new Obt(n)}},a=>(o.setItems(t.read(a)),o.getItems()))}let Obt=class{constructor(t,n){this._map=t,this._keySelector=n,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(t=>t.store.dispose()),this._cache.clear()}setItems(t){const n=[],r=new Set(this._cache.keys());for(const o of t){const s=this._keySelector?this._keySelector(o):o;let a=this._cache.get(s);if(a)r.delete(s);else{const l=new xt;a={out:this._map(o,l),store:l},this._cache.set(s,a)}n.push(a.out)}for(const o of r)this._cache.get(o).store.dispose(),this._cache.delete(o);this._items=n}getItems(){return this._items}};function dN(e,t){switch(typeof e){case"number":return""+e;case"string":return e.length+2<=t?`"${e}"`:`"${e.substr(0,t-7)}"+...`;case"boolean":return e?"true":"false";case"undefined":return"undefined";case"object":return e===null?"null":Array.isArray(e)?_to(e,t):Sto(e,t);case"symbol":return e.toString();case"function":return`[[Function${e.name?" "+e.name:""}]]`;default:return""+e}}function _to(e,t){let n="[ ",r=!0;for(const o of e){if(r||(n+=", "),n.length-5>t){n+="...";break}r=!1,n+=`${dN(o,t-n.length)}`}return n+=" ]",n}function Sto(e,t){if(typeof e.toString=="function"&&e.toString!==Object.prototype.toString){const s=e.toString();return s.length<=t?s:s.substring(0,t-3)+"..."}const n=dEn(e);let r=n?n+"(":"{ ",o=!0;for(const[s,a]of Object.entries(e)){if(o||(r+=", "),r.length-5>t){r+="...";break}o=!1,r+=`${s}: ${dN(a,t-r.length)}`}return r+=n?")":" }",r}class GJe{static createClient(t,n){return new GJe(t,n)}constructor(t,n){this._channelFactory=t,this._getHandler=n,this._channel=this._channelFactory({handleNotification:s=>{const a=s,l=this._getHandler().notifications[a[0]];if(!l)throw new Error(`Unknown notification "${a[0]}"!`);l(...a[1])},handleRequest:s=>{const a=s;try{return{type:"result",value:this._getHandler().requests[a[0]](...a[1])}}catch(l){return{type:"error",value:l}}}});const r=new Proxy({},{get:(s,a)=>async(...l)=>{const d=await this._channel.sendRequest([a,l]);if(d.type==="error")throw d.value;return d.value}}),o=new Proxy({},{get:(s,a)=>(...l)=>{this._channel.sendNotification([a,l])}});this.api={notifications:o,requests:r}}}function Lto(e,t){const n=globalThis;let r=[],o;const{channel:s,handler:a}=xto({sendNotification:d=>{o?o.sendNotification(d):r.push(d)}});let l;return(n.$$debugValueEditor_debugChannels??(n.$$debugValueEditor_debugChannels={}))[e]=d=>{l=t(),o=d;for(const u of r)d.sendNotification(u);return r=[],a},GJe.createClient(s,()=>{if(!l)throw new Error("Not supported");return l})}function xto(e){let t;return{channel:r=>(t=r,{sendNotification:o=>{e.sendNotification(o)},sendRequest:o=>{throw new Error("not supported")}}),handler:{handleRequest:r=>r.type==="notification"?t==null?void 0:t.handleNotification(r.data):t==null?void 0:t.handleRequest(r.data)}}}class Eto{constructor(){this._timeout=void 0}throttle(t,n){this._timeout===void 0&&(this._timeout=setTimeout(()=>{this._timeout=void 0,t()},n))}dispose(){this._timeout!==void 0&&clearTimeout(this._timeout)}}function mEn(e,t){for(const n in t)e[n]&&typeof e[n]=="object"&&t[n]&&typeof t[n]=="object"?mEn(e[n],t[n]):e[n]=t[n]}function kEn(e,t){for(const n in t)t[n]===null?delete e[n]:e[n]&&typeof e[n]=="object"&&t[n]&&typeof t[n]=="object"?kEn(e[n],t[n]):e[n]=t[n]}function Ti(e,t,n=Hd.ofCaller()){let r;return typeof e=="string"?r=new tf(void 0,e,void 0):r=new tf(e,void 0,void 0),new HK(r,t,f2,n)}class HK extends Vz{get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}constructor(t,n,r,o){var s;super(o),this._debugNameData=t,this._equalityComparator=r,this._value=n,(s=Of())==null||s.handleObservableUpdated(this,{hadValue:!1,newValue:n,change:void 0,didChange:!0,oldValue:void 0})}get(){return this._value}set(t,n,r){var s;if(r===void 0&&this._equalityComparator(this._value,t))return;let o;n||(n=o=new Hz(()=>{},()=>`Setting ${this.debugName}`));try{const a=this._value;this._setValue(t),(s=Of())==null||s.handleObservableUpdated(this,{oldValue:a,newValue:t,change:r,didChange:!0,hadValue:!0});for(const l of this._observers)n.updateObserver(l,this),l.handleChange(this,r)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(t){this._value=t}debugGetState(){return{value:this._value}}debugSetValue(t){this._value=t}}function YJe(e,t,n=Hd.ofCaller()){let r;return typeof e=="string"?r=new tf(void 0,e,void 0):r=new tf(e,void 0,void 0),new Tto(r,t,f2,n)}class Tto extends HK{_setValue(t){this._value!==t&&(this._value&&this._value.dispose(),this._value=t)}dispose(){var t;(t=this._value)==null||t.dispose()}}const jT=class jT{static getInstance(){return jT._instance===void 0&&(jT._instance=new jT),jT._instance}getTransactionState(){const t=[],n=[...this._activeTransactions];if(n.length===0)return;const r=n.flatMap(s=>s.debugGetUpdatingObservers()??[]).map(s=>s.observer),o=new Set;for(;r.length>0;){const s=r.shift();if(o.has(s))continue;o.add(s);const a=this._getInfo(s,l=>{o.has(l)||r.push(l)});a&&t.push(a)}return{names:n.map(s=>s.getDebugName()??"tx"),affected:t}}_getObservableInfo(t){const n=this._instanceInfos.get(t);if(!n){zi(new ui("No info found"));return}return n}_getAutorunInfo(t){const n=this._instanceInfos.get(t);if(!n){zi(new ui("No info found"));return}return n}_getInfo(t,n){if(t instanceof pv){const r=[...t.debugGetObservers()];for(const d of r)n(d);const o=this._getObservableInfo(t);if(!o)return;const s=t.debugGetState(),a={name:t.debugName,instanceId:o.instanceId,updateCount:s.updateCount},l=[...o.changedObservables].map(d=>{var u;return(u=this._instanceInfos.get(d))==null?void 0:u.instanceId}).filter(Ru);if(s.isComputing)return{...a,type:"observable/derived",state:"updating",changedDependencies:l,initialComputation:!1};switch(s.state){case 0:return{...a,type:"observable/derived",state:"noValue"};case 3:return{...a,type:"observable/derived",state:"upToDate"};case 2:return{...a,type:"observable/derived",state:"stale",changedDependencies:l};case 1:return{...a,type:"observable/derived",state:"possiblyStale"}}}else if(t instanceof zK){const r=this._getAutorunInfo(t);if(!r)return;const o={name:t.debugName,instanceId:r.instanceId,updateCount:r.updateCount},s=[...r.changedObservables].map(a=>this._instanceInfos.get(a).instanceId);if(t.debugGetState().isRunning)return{...o,type:"autorun",state:"updating",changedDependencies:s};switch(t.debugGetState().state){case 3:return{...o,type:"autorun",state:"upToDate"};case 2:return{...o,type:"autorun",state:"stale",changedDependencies:s};case 1:return{...o,type:"autorun",state:"possiblyStale"}}}}_formatObservable(t){const n=this._getObservableInfo(t);if(n)return{name:t.debugName,instanceId:n.instanceId}}_formatObserver(t){var r;if(t instanceof pv)return{name:t.toString(),instanceId:(r=this._getObservableInfo(t))==null?void 0:r.instanceId};const n=this._getAutorunInfo(t);if(n)return{name:t.toString(),instanceId:n.instanceId}}constructor(){this._declarationId=0,this._instanceId=0,this._declarations=new Map,this._instanceInfos=new WeakMap,this._aliveInstances=new Map,this._activeTransactions=new Set,this._channel=Lto("observableDevTools",()=>({notifications:{setDeclarationIdFilter:t=>{},logObservableValue:t=>{console.log("logObservableValue",t)},flushUpdates:()=>{this._flushUpdates()},resetUpdates:()=>{this._pendingChanges=null,this._channel.api.notifications.handleChange(this._fullState,!0)}},requests:{getDeclarations:()=>{const t={};for(const n of this._declarations.values())t[n.id]=n;return{decls:t}},getSummarizedInstances:()=>null,getObservableValueInfo:t=>({observers:[...this._aliveInstances.get(t).debugGetObservers()].map(r=>this._formatObserver(r)).filter(Ru)}),getDerivedInfo:t=>{const n=this._aliveInstances.get(t);return{dependencies:[...n.debugGetState().dependencies].map(r=>this._formatObservable(r)).filter(Ru),observers:[...n.debugGetObservers()].map(r=>this._formatObserver(r)).filter(Ru)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(r=>this._formatObservable(r)).filter(Ru)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,n)=>{const r=this._aliveInstances.get(t);if(r instanceof pv)r.debugSetValue(n);else if(r instanceof HK)r.debugSetValue(n);else if(r instanceof xS)r.debugSetValue(n);else throw new ui("Observable is not supported");const o=[...r.debugGetObservers()];for(const s of o)s.beginUpdate(r);for(const s of o)s.handleChange(r,void 0);for(const s of o)s.endUpdate(r)},getValue:t=>{const n=this._aliveInstances.get(t);if(n instanceof pv)return dN(n.debugGetState().value,200);if(n instanceof HK)return dN(n.debugGetState().value,200)},logValue:t=>{const n=this._aliveInstances.get(t);if(n&&"get"in n)console.log("Logged Value:",n.get());else throw new ui("Observable is not supported")},rerun:t=>{const n=this._aliveInstances.get(t);if(n instanceof pv)n.debugRecompute();else if(n instanceof zK)n.debugRerun();else throw new ui("Observable is not supported")}}})),this._pendingChanges=null,this._changeThrottler=new Eto,this._fullState={},this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)},Hd.enable()}_handleChange(t){kEn(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:mEn(this._pendingChanges,t),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(t,n){if(!n)return-1;let r=this._declarations.get(n.id);return r===void 0&&(r={id:this._declarationId++,type:t,url:n.fileName,line:n.line,column:n.column},this._declarations.set(n.id,r),this._handleChange({decls:{[r.id]:r}})),r.id}handleObservableCreated(t,n){const o={declarationId:this._getDeclarationId("observable/value",n),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o)}handleOnListenerCountChanged(t,n){const r=this._getObservableInfo(t);if(r){if(r.listenerCount===0&&n>0){const o=t instanceof pv?"observable/derived":"observable/value";this._aliveInstances.set(r.instanceId,t),this._handleChange({instances:{[r.instanceId]:{instanceId:r.instanceId,declarationId:r.declarationId,formattedValue:r.lastValue,type:o,name:t.debugName}}})}else r.listenerCount>0&&n===0&&(this._handleChange({instances:{[r.instanceId]:null}}),this._aliveInstances.delete(r.instanceId));r.listenerCount=n}}handleObservableUpdated(t,n){if(t instanceof pv){this._handleDerivedRecomputed(t,n);return}const r=this._getObservableInfo(t);r&&n.didChange&&(r.lastValue=dN(n.newValue,30),r.listenerCount>0&&this._handleChange({instances:{[r.instanceId]:{formattedValue:r.lastValue}}}))}handleAutorunCreated(t,n){const o={declarationId:this._getDeclarationId("autorun",n),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o),this._aliveInstances.set(o.instanceId,t),o&&this._handleChange({instances:{[o.instanceId]:{instanceId:o.instanceId,declarationId:o.declarationId,runCount:0,type:"autorun",name:t.debugName}}})}handleAutorunDisposed(t){const n=this._getAutorunInfo(t);n&&(this._handleChange({instances:{[n.instanceId]:null}}),this._instanceInfos.delete(t),this._aliveInstances.delete(n.instanceId))}handleAutorunDependencyChanged(t,n,r){const o=this._getAutorunInfo(t);o&&o.changedObservables.add(n)}handleAutorunStarted(t){}handleAutorunFinished(t){const n=this._getAutorunInfo(t);n&&(n.changedObservables.clear(),n.updateCount++,this._handleChange({instances:{[n.instanceId]:{runCount:n.updateCount}}}))}handleDerivedDependencyChanged(t,n,r){const o=this._getObservableInfo(t);o&&o.changedObservables.add(n)}_handleDerivedRecomputed(t,n){const r=this._getObservableInfo(t);if(!r)return;const o=dN(n.newValue,30);r.updateCount++,r.changedObservables.clear(),r.lastValue=o,r.listenerCount>0&&this._handleChange({instances:{[r.instanceId]:{formattedValue:o,recomputationCount:r.updateCount}}})}handleDerivedCleared(t){const n=this._getObservableInfo(t);n&&(n.lastValue=void 0,n.changedObservables.clear(),n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(t){this._activeTransactions.add(t)}handleEndTransaction(t){this._activeTransactions.delete(t)}};jT._instance=void 0;let uNe=jT;bme&&bme.VSCODE_DEV_DEBUG_OBSERVABLES&&uto(uNe.getInstance());const{getWindow:ii,getDocument:Qto,getWindows:vEn,getWindowsCount:Dto,getWindowId:$K,getWindowById:ybt,onDidRegisterWindow:xie,onWillUnregisterWindow:Bto,onDidUnregisterWindow:Rto}=function(){const e=new Map;AJr(Ls,1);const t={window:Ls,disposables:new xt};e.set(Ls.vscodeWindowId,t);const n=new at,r=new at,o=new at;function s(a,l){return(typeof a=="number"?e.get(a):void 0)??(l?t:void 0)}return{onDidRegisterWindow:n.event,onWillUnregisterWindow:o.event,onDidUnregisterWindow:r.event,registerWindow(a){if(e.has(a.vscodeWindowId))return ft.None;const l=new xt,d={window:a,disposables:l.add(new xt)};return e.set(a.vscodeWindowId,d),l.add(Hn(()=>{e.delete(a.vscodeWindowId),r.fire(a)})),l.add(wt(a,rn.BEFORE_UNLOAD,()=>{o.fire(a)})),n.fire(d),l},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(a){return a.vscodeWindowId},hasWindow(a){return e.has(a)},getWindowById:s,getWindow(a){var u;const l=a;if((u=l==null?void 0:l.ownerDocument)!=null&&u.defaultView)return l.ownerDocument.defaultView.window;const d=a;return d!=null&&d.view?d.view.window:Ls},getDocument(a){return ii(a).document}}}();function uh(e){for(;e.firstChild;)e.firstChild.remove()}class Ito{constructor(t,n,r,o){this._node=t,this._type=n,this._handler=r,this._options=o||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function wt(e,t,n,r){return new Ito(e,t,n,r)}function AEn(e,t){return function(n){return t(new Xh(e,n))}}function Mto(e){return function(t){return e(new Us(t))}}const wc=function(t,n,r,o){let s=r;return n==="click"||n==="mousedown"||n==="contextmenu"?s=AEn(ii(t),r):(n==="keydown"||n==="keypress"||n==="keyup")&&(s=Mto(r)),wt(t,n,s,o)},Pto=function(t,n,r){const o=AEn(ii(t),n);return pEn(t,o,r)};function pEn(e,t,n){return wt(e,cA&&yie.pointerEvents?rn.POINTER_DOWN:rn.MOUSE_DOWN,t,n)}function Fto(e,t,n){return wt(e,cA&&yie.pointerEvents?rn.POINTER_MOVE:rn.MOUSE_MOVE,t,n)}function Cbt(e,t,n){return wt(e,cA&&yie.pointerEvents?rn.POINTER_UP:rn.MOUSE_UP,t,n)}function RG(e,t,n){return lZ(e,t,n)}class K8e extends U6n{constructor(t,n){super(t,n)}}let Lme,A1;class ZJe extends TJe{constructor(t){super(),this.defaultTarget=t&&ii(t)}cancelAndSet(t,n,r){return super.cancelAndSet(t,n,r??this.defaultTarget)}}class J8e{constructor(t,n=0){this._runner=t,this.priority=n,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(t){zi(t)}}static sort(t,n){return n.priority-t.priority}}(function(){const e=new Map,t=new Map,n=new Map,r=new Map,o=s=>{n.set(s,!1);const a=e.get(s)??[];for(t.set(s,a),e.set(s,[]),r.set(s,!0);a.length>0;)a.sort(J8e.sort),a.shift().execute();r.set(s,!1)};A1=(s,a,l=0)=>{const d=$K(s),u=new J8e(a,l);let h=e.get(d);return h||(h=[],e.set(d,h)),h.push(u),n.get(d)||(n.set(d,!0),s.requestAnimationFrame(()=>o(d))),u},Lme=(s,a,l)=>{const d=$K(s);if(r.get(d)){const u=new J8e(a,l);let h=t.get(d);return h||(h=[],t.set(d,h)),h.push(u),u}else return A1(s,a,l)}})();function bbe(e){return ii(e).getComputedStyle(e,null)}function O6(e,t,n){const r=ii(e),o=r.document;if(e!==o.body)return new cs(e.clientWidth,e.clientHeight);if(cA&&(r!=null&&r.visualViewport))return new cs(r.visualViewport.width,r.visualViewport.height);if(r!=null&&r.innerWidth&&r.innerHeight)return new cs(r.innerWidth,r.innerHeight);if(o.body&&o.body.clientWidth&&o.body.clientHeight)return new cs(o.body.clientWidth,o.body.clientHeight);if(o.documentElement&&o.documentElement.clientWidth&&o.documentElement.clientHeight)return new cs(o.documentElement.clientWidth,o.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}class bc{static convertToPixels(t,n){return parseFloat(n)||0}static getDimension(t,n){const r=bbe(t),o=r?r.getPropertyValue(n):"0";return bc.convertToPixels(t,o)}static getBorderLeftWidth(t){return bc.getDimension(t,"border-left-width")}static getBorderRightWidth(t){return bc.getDimension(t,"border-right-width")}static getBorderTopWidth(t){return bc.getDimension(t,"border-top-width")}static getBorderBottomWidth(t){return bc.getDimension(t,"border-bottom-width")}static getPaddingLeft(t){return bc.getDimension(t,"padding-left")}static getPaddingRight(t){return bc.getDimension(t,"padding-right")}static getPaddingTop(t){return bc.getDimension(t,"padding-top")}static getPaddingBottom(t){return bc.getDimension(t,"padding-bottom")}static getMarginLeft(t){return bc.getDimension(t,"margin-left")}static getMarginTop(t){return bc.getDimension(t,"margin-top")}static getMarginRight(t){return bc.getDimension(t,"margin-right")}static getMarginBottom(t){return bc.getDimension(t,"margin-bottom")}}const WT=class WT{constructor(t,n){this.width=t,this.height=n}with(t=this.width,n=this.height){return t!==this.width||n!==this.height?new WT(t,n):this}static is(t){return typeof t=="object"&&typeof t.height=="number"&&typeof t.width=="number"}static lift(t){return t instanceof WT?t:new WT(t.width,t.height)}static equals(t,n){return t===n?!0:!t||!n?!1:t.width===n.width&&t.height===n.height}};WT.None=new WT(0,0);let cs=WT;function bEn(e){let t=e.offsetParent,n=e.offsetTop,r=e.offsetLeft;for(;(e=e.parentNode)!==null&&e!==e.ownerDocument.body&&e!==e.ownerDocument.documentElement;){n-=e.scrollTop;const o=OEn(e)?null:bbe(e);o&&(r-=o.direction!=="rtl"?e.scrollLeft:-e.scrollLeft),e===t&&(r+=bc.getBorderLeftWidth(e),n+=bc.getBorderTopWidth(e),n+=e.offsetTop,r+=e.offsetLeft,t=e.offsetParent)}return{left:r,top:n}}function Nto(e,t,n){typeof t=="number"&&(e.style.width=`${t}px`),typeof n=="number"&&(e.style.height=`${n}px`)}function Kl(e){const t=e.getBoundingClientRect(),n=ii(e);return{left:t.left+n.scrollX,top:t.top+n.scrollY,width:t.width,height:t.height}}function wEn(e){let t=e,n=1;do{const r=bbe(t).zoom;r!=null&&r!=="1"&&(n*=r),t=t.parentElement}while(t!==null&&t!==t.ownerDocument.documentElement);return n}function s0(e){const t=bc.getMarginLeft(e)+bc.getMarginRight(e);return e.offsetWidth+t}function eLe(e){const t=bc.getBorderLeftWidth(e)+bc.getBorderRightWidth(e),n=bc.getPaddingLeft(e)+bc.getPaddingRight(e);return e.offsetWidth-t-n}function Uto(e){const t=bc.getBorderTopWidth(e)+bc.getBorderBottomWidth(e),n=bc.getPaddingTop(e)+bc.getPaddingBottom(e);return e.offsetHeight-t-n}function ES(e){const t=bc.getMarginTop(e)+bc.getMarginBottom(e);return e.offsetHeight+t}function gu(e,t){return!!(t!=null&&t.contains(e))}function jto(e,t,n){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(e.classList.contains(t))return e;if(n){if(typeof n=="string"){if(e.classList.contains(n))return null}else if(e===n)return null}e=e.parentNode}return null}function tLe(e,t,n){return!!jto(e,t,n)}function OEn(e){return e&&!!e.host&&!!e.mode}function xme(e){return!!y6(e)}function y6(e){var t;for(;e.parentNode;){if(e===((t=e.ownerDocument)==null?void 0:t.body))return null;e=e.parentNode}return OEn(e)?e:null}function Nd(){let e=Eie().activeElement;for(;e!=null&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function wbe(e){return Nd()===e}function yEn(e){return gu(Nd(),e)}function Eie(){return Dto()<=1?Ls.document:Array.from(vEn()).map(({window:t})=>t.document).find(t=>t.hasFocus())??Ls.document}function vs(){var t;return((t=Eie().defaultView)==null?void 0:t.window)??Ls}const Wto=new class{constructor(){this.mutationObservers=new Map}observe(e,t,n){let r=this.mutationObservers.get(e);r||(r=new Map,this.mutationObservers.set(e,r));const o=Lie(n);let s=r.get(o);if(s)s.users+=1;else{const a=new at,l=new MutationObserver(u=>a.fire(u));l.observe(e,n);const d=s={users:1,observer:l,onDidMutate:a.event};t.add(Hn(()=>{d.users-=1,d.users===0&&(a.dispose(),l.disconnect(),r==null||r.delete(o),(r==null?void 0:r.size)===0&&this.mutationObservers.delete(e))})),r.set(o,s)}return s.onDidMutate}};function ec(e){return e instanceof HTMLElement||e instanceof ii(e).HTMLElement}function _bt(e){return e instanceof HTMLAnchorElement||e instanceof ii(e).HTMLAnchorElement}function CEn(e){return e instanceof SVGElement||e instanceof ii(e).SVGElement}function qJe(e){return e instanceof MouseEvent||e instanceof ii(e).MouseEvent}function eS(e){return e instanceof KeyboardEvent||e instanceof ii(e).KeyboardEvent}const rn={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",KEY_DOWN:"keydown",KEY_UP:"keyup",BEFORE_UNLOAD:"beforeunload",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend"};function Vto(e){const t=e;return!!(t&&typeof t.preventDefault=="function"&&typeof t.stopPropagation=="function")}const Qo={stop:(e,t)=>(e.preventDefault(),t&&e.stopPropagation(),e)};function zto(e){const t=[];for(let n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t}function Hto(e,t){for(let n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode}let $to=class hNe extends ft{get onDidFocus(){return this._onDidFocus.event}get onDidBlur(){return this._onDidBlur.event}static hasFocusWithin(t){if(ec(t)){const n=y6(t),r=n?n.activeElement:t.ownerDocument.activeElement;return gu(r,t)}else{const n=t;return gu(n.document.activeElement,n.document)}}constructor(t){super(),this._onDidFocus=this._register(new at),this._onDidBlur=this._register(new at);let n=hNe.hasFocusWithin(t),r=!1;const o=()=>{r=!1,n||(n=!0,this._onDidFocus.fire())},s=()=>{n&&(r=!0,(ec(t)?ii(t):t).setTimeout(()=>{r&&(r=!1,n=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{hNe.hasFocusWithin(t)!==n&&(n?s():o())},this._register(wt(t,rn.FOCUS,o,!0)),this._register(wt(t,rn.BLUR,s,!0)),ec(t)&&(this._register(wt(t,rn.FOCUS_IN,()=>this._refreshStateHandler())),this._register(wt(t,rn.FOCUS_OUT,()=>this._refreshStateHandler())))}};function uA(e){return new $to(e)}function Xto(e,t){return e.after(t),t}function Xt(e,...t){if(e.append(...t),t.length===1&&typeof t[0]!="string")return t[0]}function Obe(e,t){return e.insertBefore(t,e.firstChild),t}function mu(e,...t){e.textContent="",Xt(e,...t)}const Gto=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var XK;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.SVG="http://www.w3.org/2000/svg"})(XK||(XK={}));function _En(e,t,n,...r){const o=Gto.exec(t);if(!o)throw new Error("Bad use of emmet");const s=o[1]||"div";let a;return e!==XK.HTML?a=document.createElementNS(e,s):a=document.createElement(s),o[3]&&(a.id=o[3]),o[4]&&(a.className=o[4].replace(/\./g," ").trim()),n&&Object.entries(n).forEach(([l,d])=>{typeof d>"u"||(/^on\w+$/.test(l)?a[l]=d:l==="selected"?d&&a.setAttribute(l,"true"):a.setAttribute(l,d))}),a.append(...r),a}function tn(e,t,...n){return _En(XK.HTML,e,t,...n)}tn.SVG=function(e,t,...n){return _En(XK.SVG,e,t,...n)};function Yto(e,...t){e?k0(...t):tm(...t)}function k0(...e){for(const t of e)t.style.display="",t.removeAttribute("aria-hidden")}function tm(...e){for(const t of e)t.style.display="none",t.setAttribute("aria-hidden","true")}function Sbt(e,t){const n=e.devicePixelRatio*t;return Math.max(1,Math.floor(n))/e.devicePixelRatio}function SEn(e){Ls.open(e,"_blank","noopener")}function Zto(e,t){const n=()=>{t(),r=A1(e,n)};let r=A1(e,n);return Hn(()=>r.dispose())}iEn.setPreferredWebSchema(/^https:/.test(Ls.location.href)?"https":"http");class TS extends at{constructor(){super(),this._subscriptions=new xt,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(an.runAndSubscribe(xie,({window:t,disposables:n})=>this.registerListeners(t,n),{window:Ls,disposables:this._subscriptions}))}registerListeners(t,n){n.add(wt(t,"keydown",r=>{if(r.defaultPrevented)return;const o=new Us(r);if(!(o.keyCode===6&&r.repeat)){if(r.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(r.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(r.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(r.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(o.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=r.altKey,this._keyStatus.ctrlKey=r.ctrlKey,this._keyStatus.metaKey=r.metaKey,this._keyStatus.shiftKey=r.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=r,this.fire(this._keyStatus))}},!0)),n.add(wt(t,"keyup",r=>{r.defaultPrevented||(!r.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!r.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!r.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!r.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=r.altKey,this._keyStatus.ctrlKey=r.ctrlKey,this._keyStatus.metaKey=r.metaKey,this._keyStatus.shiftKey=r.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=r,this.fire(this._keyStatus)))},!0)),n.add(wt(t.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),n.add(wt(t.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),n.add(wt(t.document.body,"mousemove",r=>{r.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),n.add(wt(t,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return TS.instance||(TS.instance=new TS),TS.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class qto extends ft{constructor(t,n){super(),this.element=t,this.callbacks=n,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(wt(this.element,rn.DRAG_START,t=>{var n,r;(r=(n=this.callbacks).onDragStart)==null||r.call(n,t)})),this.callbacks.onDrag&&this._register(wt(this.element,rn.DRAG,t=>{var n,r;(r=(n=this.callbacks).onDrag)==null||r.call(n,t)})),this._register(wt(this.element,rn.DRAG_ENTER,t=>{var n,r;this.counter++,this.dragStartTime=t.timeStamp,(r=(n=this.callbacks).onDragEnter)==null||r.call(n,t)})),this._register(wt(this.element,rn.DRAG_OVER,t=>{var n,r;t.preventDefault(),(r=(n=this.callbacks).onDragOver)==null||r.call(n,t,t.timeStamp-this.dragStartTime)})),this._register(wt(this.element,rn.DRAG_LEAVE,t=>{var n,r;this.counter--,this.counter===0&&(this.dragStartTime=0,(r=(n=this.callbacks).onDragLeave)==null||r.call(n,t))})),this._register(wt(this.element,rn.DRAG_END,t=>{var n,r;this.counter=0,this.dragStartTime=0,(r=(n=this.callbacks).onDragEnd)==null||r.call(n,t)})),this._register(wt(this.element,rn.DROP,t=>{var n,r;this.counter=0,this.dragStartTime=0,(r=(n=this.callbacks).onDrop)==null||r.call(n,t)}))}}const Kto=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function wo(e,...t){let n,r;Array.isArray(t[0])?(n={},r=t[0]):(n=t[0]||{},r=t[1]);const o=Kto.exec(e);if(!o||!o.groups)throw new Error("Bad use of h");const s=o.groups.tag||"div",a=document.createElement(s);o.groups.id&&(a.id=o.groups.id);const l=[];if(o.groups.class)for(const u of o.groups.class.split("."))u!==""&&l.push(u);if(n.className!==void 0)for(const u of n.className.split("."))u!==""&&l.push(u);l.length>0&&(a.className=l.join(" "));const d={};if(o.groups.name&&(d[o.groups.name]=a),r)for(const u of r)ec(u)?a.appendChild(u):typeof u=="string"?a.append(u):"root"in u&&(Object.assign(d,u),a.appendChild(u.root));for(const[u,h]of Object.entries(n))if(u!=="className")if(u==="style")for(const[g,m]of Object.entries(h))a.style.setProperty(GK(g),typeof m=="number"?m+"px":""+m);else u==="tabIndex"?a.tabIndex=h:a.setAttribute(GK(u),h.toString());return d.root=a,d}function GK(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function s3(e){return e.tagName.toLowerCase()==="input"||e.tagName.toLowerCase()==="textarea"||ec(e)&&!!e.editContext}var cr;(function(e){function t(o=void 0){return(s,a,l)=>{const d=a.class;delete a.class;const u=a.ref;delete a.ref;const h=a.obsRef;return delete a.obsRef,new eno(s,u,h,o,d,a,l)}}function n(o,s=void 0){const a=t(s);return(l,d)=>a(o,l,d)}e.div=n("div"),e.elem=t(void 0),e.svg=n("svg","http://www.w3.org/2000/svg"),e.svgElem=t("http://www.w3.org/2000/svg");function r(){let o;const s=function(a){o=a};return Object.defineProperty(s,"element",{get(){if(!o)throw new ui("Make sure the ref is set before accessing the element. Maybe wrong initialization order?");return o}}),s}e.ref=r})(cr||(cr={}));class KJe{constructor(t,n,r,o,s,a,l){this._deriveds=[],this._element=o?document.createElementNS(o,t):document.createElement(t),n&&n(this._element),r&&this._deriveds.push(Rt(d=>{r(this),d.store.add({dispose:()=>{r(null)}})})),s&&(xEn(s)?this._deriveds.push(Rt(this,d=>{Lbt(this._element,xbt(s,d))})):Lbt(this._element,xbt(s,void 0)));for(const[d,u]of Object.entries(a))if(d==="style")for(const[h,g]of Object.entries(u)){const m=GK(h);sQ(g)?this._deriveds.push(Vh({owner:this,debugName:()=>`set.style.${m}`},v=>{this._element.style.setProperty(m,Ebt(g.read(v)))})):this._element.style.setProperty(m,Ebt(g))}else d==="tabIndex"?sQ(u)?this._deriveds.push(Rt(this,h=>{this._element.tabIndex=u.read(h)})):this._element.tabIndex=u:d.startsWith("on")?this._element[d]=u:sQ(u)?this._deriveds.push(Vh({owner:this,debugName:()=>`set.${d}`},h=>{Tbt(this._element,d,u.read(h))})):Tbt(this._element,d,u);if(l){let d=function(h,g){return sQ(g)?d(h,g.read(h)):Array.isArray(g)?g.flatMap(m=>d(h,m)):g instanceof KJe?(h&&g.readEffect(h),[g._element]):g?[g]:[]};const u=Rt(this,h=>{this._element.replaceChildren(...d(h,l))});this._deriveds.push(u),EEn(l)||u.get()}}readEffect(t){for(const n of this._deriveds)n.read(t)}keepUpdated(t){return Rt(n=>{this.readEffect(n)}).recomputeInitiallyAndOnChange(t),this}toDisposableLiveElement(){const t=new xt;return this.keepUpdated(t),new Jto(this._element,t)}}function Lbt(e,t){CEn(e)?e.setAttribute("class",t):e.className=t}function LEn(e,t,n){if(sQ(e)){n(e.read(t));return}if(Array.isArray(e)){for(const r of e)LEn(r,t,n);return}n(e)}function xbt(e,t){let n="";return LEn(e,t,r=>{r&&(n.length===0?n=r:n+=" "+r)}),n}function xEn(e){return sQ(e)?!0:Array.isArray(e)?e.some(t=>xEn(t)):!1}function Ebt(e){return typeof e=="number"?e+"px":e}function EEn(e){return sQ(e)?!0:Array.isArray(e)?e.some(t=>EEn(t)):!1}class Jto{constructor(t,n){this.element=t,this._disposable=n}dispose(){this._disposable.dispose()}}class eno extends KJe{constructor(){super(...arguments),this._isHovered=void 0,this._didMouseMoveDuringHover=void 0}get element(){return this._element}get isHovered(){if(!this._isHovered){const t=Ti("hovered",!1);this._element.addEventListener("mouseenter",n=>t.set(!0,void 0)),this._element.addEventListener("mouseleave",n=>t.set(!1,void 0)),this._isHovered=t}return this._isHovered}get didMouseMoveDuringHover(){if(!this._didMouseMoveDuringHover){let t=!1;const n=Ti("didMouseMoveDuringHover",!1);this._element.addEventListener("mouseenter",r=>{t=!0}),this._element.addEventListener("mousemove",r=>{t&&n.set(!0,void 0)}),this._element.addEventListener("mouseleave",r=>{t=!1,n.set(!1,void 0)}),this._didMouseMoveDuringHover=n}return this._didMouseMoveDuringHover}}function Tbt(e,t,n){n==null?e.removeAttribute(GK(t)):e.setAttribute(GK(t),String(n))}function sQ(e){return!!e&&e.read!==void 0&&e.reportChanges!==void 0}const Qbt=2e4;let bT,Yue,fNe,Zue,gNe;function tno(e){bT=document.createElement("div"),bT.className="monaco-aria-container";const t=()=>{const r=document.createElement("div");return r.className="monaco-alert",r.setAttribute("role","alert"),r.setAttribute("aria-atomic","true"),bT.appendChild(r),r};Yue=t(),fNe=t();const n=()=>{const r=document.createElement("div");return r.className="monaco-status",r.setAttribute("aria-live","polite"),r.setAttribute("aria-atomic","true"),bT.appendChild(r),r};Zue=n(),gNe=n(),e.appendChild(bT)}function um(e){bT&&(Yue.textContent!==e?(uh(fNe),Eme(Yue,e)):(uh(Yue),Eme(fNe,e)))}function A3(e){bT&&(Zue.textContent!==e?(uh(gNe),Eme(Zue,e)):(uh(Zue),Eme(gNe,e)))}function Eme(e,t){uh(e),t.length>Qbt&&(t=t.substr(0,Qbt)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}var Zb;(function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies";function t(n){return n[e.DI_DEPENDENCIES]||[]}e.getServiceDependencies=t})(Zb||(Zb={}));const Yn=Cr("instantiationService");function nno(e,t,n){t[Zb.DI_TARGET]===t?t[Zb.DI_DEPENDENCIES].push({id:e,index:n}):(t[Zb.DI_DEPENDENCIES]=[{id:e,index:n}],t[Zb.DI_TARGET]=t)}function Cr(e){if(Zb.serviceIds.has(e))return Zb.serviceIds.get(e);const t=function(n,r,o){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");nno(t,n,o)};return t.toString=()=>e,Zb.serviceIds.set(e,t),t}const yo=Cr("codeEditorService");let it=class H7{constructor(t,n){this.lineNumber=t,this.column=n}with(t=this.lineNumber,n=this.column){return t===this.lineNumber&&n===this.column?this:new H7(t,n)}delta(t=0,n=0){return this.with(Math.max(1,this.lineNumber+t),Math.max(1,this.column+n))}equals(t){return H7.equals(this,t)}static equals(t,n){return!t&&!n?!0:!!t&&!!n&&t.lineNumber===n.lineNumber&&t.column===n.column}isBefore(t){return H7.isBefore(this,t)}static isBefore(t,n){return t.lineNumbere.run(...t)}}const kNe=Object.create(null);function ye(e,t){if(fu(t)){const n=kNe[t];if(n===void 0)throw new Error(`${e} references an unknown codicon: ${t}`);t=n}return kNe[e]=t,{id:e}}function TEn(){return kNe}const ino={add:ye("add",6e4),plus:ye("plus",6e4),gistNew:ye("gist-new",6e4),repoCreate:ye("repo-create",6e4),lightbulb:ye("lightbulb",60001),lightBulb:ye("light-bulb",60001),repo:ye("repo",60002),repoDelete:ye("repo-delete",60002),gistFork:ye("gist-fork",60003),repoForked:ye("repo-forked",60003),gitPullRequest:ye("git-pull-request",60004),gitPullRequestAbandoned:ye("git-pull-request-abandoned",60004),recordKeys:ye("record-keys",60005),keyboard:ye("keyboard",60005),tag:ye("tag",60006),gitPullRequestLabel:ye("git-pull-request-label",60006),tagAdd:ye("tag-add",60006),tagRemove:ye("tag-remove",60006),person:ye("person",60007),personFollow:ye("person-follow",60007),personOutline:ye("person-outline",60007),personFilled:ye("person-filled",60007),sourceControl:ye("source-control",60008),mirror:ye("mirror",60009),mirrorPublic:ye("mirror-public",60009),star:ye("star",60010),starAdd:ye("star-add",60010),starDelete:ye("star-delete",60010),starEmpty:ye("star-empty",60010),comment:ye("comment",60011),commentAdd:ye("comment-add",60011),alert:ye("alert",60012),warning:ye("warning",60012),search:ye("search",60013),searchSave:ye("search-save",60013),logOut:ye("log-out",60014),signOut:ye("sign-out",60014),logIn:ye("log-in",60015),signIn:ye("sign-in",60015),eye:ye("eye",60016),eyeUnwatch:ye("eye-unwatch",60016),eyeWatch:ye("eye-watch",60016),circleFilled:ye("circle-filled",60017),primitiveDot:ye("primitive-dot",60017),closeDirty:ye("close-dirty",60017),debugBreakpoint:ye("debug-breakpoint",60017),debugBreakpointDisabled:ye("debug-breakpoint-disabled",60017),debugHint:ye("debug-hint",60017),terminalDecorationSuccess:ye("terminal-decoration-success",60017),primitiveSquare:ye("primitive-square",60018),edit:ye("edit",60019),pencil:ye("pencil",60019),info:ye("info",60020),issueOpened:ye("issue-opened",60020),gistPrivate:ye("gist-private",60021),gitForkPrivate:ye("git-fork-private",60021),lock:ye("lock",60021),mirrorPrivate:ye("mirror-private",60021),close:ye("close",60022),removeClose:ye("remove-close",60022),x:ye("x",60022),repoSync:ye("repo-sync",60023),sync:ye("sync",60023),clone:ye("clone",60024),desktopDownload:ye("desktop-download",60024),beaker:ye("beaker",60025),microscope:ye("microscope",60025),vm:ye("vm",60026),deviceDesktop:ye("device-desktop",60026),file:ye("file",60027),more:ye("more",60028),ellipsis:ye("ellipsis",60028),kebabHorizontal:ye("kebab-horizontal",60028),mailReply:ye("mail-reply",60029),reply:ye("reply",60029),organization:ye("organization",60030),organizationFilled:ye("organization-filled",60030),organizationOutline:ye("organization-outline",60030),newFile:ye("new-file",60031),fileAdd:ye("file-add",60031),newFolder:ye("new-folder",60032),fileDirectoryCreate:ye("file-directory-create",60032),trash:ye("trash",60033),trashcan:ye("trashcan",60033),history:ye("history",60034),clock:ye("clock",60034),folder:ye("folder",60035),fileDirectory:ye("file-directory",60035),symbolFolder:ye("symbol-folder",60035),logoGithub:ye("logo-github",60036),markGithub:ye("mark-github",60036),github:ye("github",60036),terminal:ye("terminal",60037),console:ye("console",60037),repl:ye("repl",60037),zap:ye("zap",60038),symbolEvent:ye("symbol-event",60038),error:ye("error",60039),stop:ye("stop",60039),variable:ye("variable",60040),symbolVariable:ye("symbol-variable",60040),array:ye("array",60042),symbolArray:ye("symbol-array",60042),symbolModule:ye("symbol-module",60043),symbolPackage:ye("symbol-package",60043),symbolNamespace:ye("symbol-namespace",60043),symbolObject:ye("symbol-object",60043),symbolMethod:ye("symbol-method",60044),symbolFunction:ye("symbol-function",60044),symbolConstructor:ye("symbol-constructor",60044),symbolBoolean:ye("symbol-boolean",60047),symbolNull:ye("symbol-null",60047),symbolNumeric:ye("symbol-numeric",60048),symbolNumber:ye("symbol-number",60048),symbolStructure:ye("symbol-structure",60049),symbolStruct:ye("symbol-struct",60049),symbolParameter:ye("symbol-parameter",60050),symbolTypeParameter:ye("symbol-type-parameter",60050),symbolKey:ye("symbol-key",60051),symbolText:ye("symbol-text",60051),symbolReference:ye("symbol-reference",60052),goToFile:ye("go-to-file",60052),symbolEnum:ye("symbol-enum",60053),symbolValue:ye("symbol-value",60053),symbolRuler:ye("symbol-ruler",60054),symbolUnit:ye("symbol-unit",60054),activateBreakpoints:ye("activate-breakpoints",60055),archive:ye("archive",60056),arrowBoth:ye("arrow-both",60057),arrowDown:ye("arrow-down",60058),arrowLeft:ye("arrow-left",60059),arrowRight:ye("arrow-right",60060),arrowSmallDown:ye("arrow-small-down",60061),arrowSmallLeft:ye("arrow-small-left",60062),arrowSmallRight:ye("arrow-small-right",60063),arrowSmallUp:ye("arrow-small-up",60064),arrowUp:ye("arrow-up",60065),bell:ye("bell",60066),bold:ye("bold",60067),book:ye("book",60068),bookmark:ye("bookmark",60069),debugBreakpointConditionalUnverified:ye("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:ye("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:ye("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:ye("debug-breakpoint-data-unverified",60072),debugBreakpointData:ye("debug-breakpoint-data",60073),debugBreakpointDataDisabled:ye("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:ye("debug-breakpoint-log-unverified",60074),debugBreakpointLog:ye("debug-breakpoint-log",60075),debugBreakpointLogDisabled:ye("debug-breakpoint-log-disabled",60075),briefcase:ye("briefcase",60076),broadcast:ye("broadcast",60077),browser:ye("browser",60078),bug:ye("bug",60079),calendar:ye("calendar",60080),caseSensitive:ye("case-sensitive",60081),check:ye("check",60082),checklist:ye("checklist",60083),chevronDown:ye("chevron-down",60084),chevronLeft:ye("chevron-left",60085),chevronRight:ye("chevron-right",60086),chevronUp:ye("chevron-up",60087),chromeClose:ye("chrome-close",60088),chromeMaximize:ye("chrome-maximize",60089),chromeMinimize:ye("chrome-minimize",60090),chromeRestore:ye("chrome-restore",60091),circleOutline:ye("circle-outline",60092),circle:ye("circle",60092),debugBreakpointUnverified:ye("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:ye("terminal-decoration-incomplete",60092),circleSlash:ye("circle-slash",60093),circuitBoard:ye("circuit-board",60094),clearAll:ye("clear-all",60095),clippy:ye("clippy",60096),closeAll:ye("close-all",60097),cloudDownload:ye("cloud-download",60098),cloudUpload:ye("cloud-upload",60099),code:ye("code",60100),collapseAll:ye("collapse-all",60101),colorMode:ye("color-mode",60102),commentDiscussion:ye("comment-discussion",60103),creditCard:ye("credit-card",60105),dash:ye("dash",60108),dashboard:ye("dashboard",60109),database:ye("database",60110),debugContinue:ye("debug-continue",60111),debugDisconnect:ye("debug-disconnect",60112),debugPause:ye("debug-pause",60113),debugRestart:ye("debug-restart",60114),debugStart:ye("debug-start",60115),debugStepInto:ye("debug-step-into",60116),debugStepOut:ye("debug-step-out",60117),debugStepOver:ye("debug-step-over",60118),debugStop:ye("debug-stop",60119),debug:ye("debug",60120),deviceCameraVideo:ye("device-camera-video",60121),deviceCamera:ye("device-camera",60122),deviceMobile:ye("device-mobile",60123),diffAdded:ye("diff-added",60124),diffIgnored:ye("diff-ignored",60125),diffModified:ye("diff-modified",60126),diffRemoved:ye("diff-removed",60127),diffRenamed:ye("diff-renamed",60128),diff:ye("diff",60129),diffSidebyside:ye("diff-sidebyside",60129),discard:ye("discard",60130),editorLayout:ye("editor-layout",60131),emptyWindow:ye("empty-window",60132),exclude:ye("exclude",60133),extensions:ye("extensions",60134),eyeClosed:ye("eye-closed",60135),fileBinary:ye("file-binary",60136),fileCode:ye("file-code",60137),fileMedia:ye("file-media",60138),filePdf:ye("file-pdf",60139),fileSubmodule:ye("file-submodule",60140),fileSymlinkDirectory:ye("file-symlink-directory",60141),fileSymlinkFile:ye("file-symlink-file",60142),fileZip:ye("file-zip",60143),files:ye("files",60144),filter:ye("filter",60145),flame:ye("flame",60146),foldDown:ye("fold-down",60147),foldUp:ye("fold-up",60148),fold:ye("fold",60149),folderActive:ye("folder-active",60150),folderOpened:ye("folder-opened",60151),gear:ye("gear",60152),gift:ye("gift",60153),gistSecret:ye("gist-secret",60154),gist:ye("gist",60155),gitCommit:ye("git-commit",60156),gitCompare:ye("git-compare",60157),compareChanges:ye("compare-changes",60157),gitMerge:ye("git-merge",60158),githubAction:ye("github-action",60159),githubAlt:ye("github-alt",60160),globe:ye("globe",60161),grabber:ye("grabber",60162),graph:ye("graph",60163),gripper:ye("gripper",60164),heart:ye("heart",60165),home:ye("home",60166),horizontalRule:ye("horizontal-rule",60167),hubot:ye("hubot",60168),inbox:ye("inbox",60169),issueReopened:ye("issue-reopened",60171),issues:ye("issues",60172),italic:ye("italic",60173),jersey:ye("jersey",60174),json:ye("json",60175),kebabVertical:ye("kebab-vertical",60176),key:ye("key",60177),law:ye("law",60178),lightbulbAutofix:ye("lightbulb-autofix",60179),linkExternal:ye("link-external",60180),link:ye("link",60181),listOrdered:ye("list-ordered",60182),listUnordered:ye("list-unordered",60183),liveShare:ye("live-share",60184),loading:ye("loading",60185),location:ye("location",60186),mailRead:ye("mail-read",60187),mail:ye("mail",60188),markdown:ye("markdown",60189),megaphone:ye("megaphone",60190),mention:ye("mention",60191),milestone:ye("milestone",60192),gitPullRequestMilestone:ye("git-pull-request-milestone",60192),mortarBoard:ye("mortar-board",60193),move:ye("move",60194),multipleWindows:ye("multiple-windows",60195),mute:ye("mute",60196),noNewline:ye("no-newline",60197),note:ye("note",60198),octoface:ye("octoface",60199),openPreview:ye("open-preview",60200),package:ye("package",60201),paintcan:ye("paintcan",60202),pin:ye("pin",60203),play:ye("play",60204),run:ye("run",60204),plug:ye("plug",60205),preserveCase:ye("preserve-case",60206),preview:ye("preview",60207),project:ye("project",60208),pulse:ye("pulse",60209),question:ye("question",60210),quote:ye("quote",60211),radioTower:ye("radio-tower",60212),reactions:ye("reactions",60213),references:ye("references",60214),refresh:ye("refresh",60215),regex:ye("regex",60216),remoteExplorer:ye("remote-explorer",60217),remote:ye("remote",60218),remove:ye("remove",60219),replaceAll:ye("replace-all",60220),replace:ye("replace",60221),repoClone:ye("repo-clone",60222),repoForcePush:ye("repo-force-push",60223),repoPull:ye("repo-pull",60224),repoPush:ye("repo-push",60225),report:ye("report",60226),requestChanges:ye("request-changes",60227),rocket:ye("rocket",60228),rootFolderOpened:ye("root-folder-opened",60229),rootFolder:ye("root-folder",60230),rss:ye("rss",60231),ruby:ye("ruby",60232),saveAll:ye("save-all",60233),saveAs:ye("save-as",60234),save:ye("save",60235),screenFull:ye("screen-full",60236),screenNormal:ye("screen-normal",60237),searchStop:ye("search-stop",60238),server:ye("server",60240),settingsGear:ye("settings-gear",60241),settings:ye("settings",60242),shield:ye("shield",60243),smiley:ye("smiley",60244),sortPrecedence:ye("sort-precedence",60245),splitHorizontal:ye("split-horizontal",60246),splitVertical:ye("split-vertical",60247),squirrel:ye("squirrel",60248),starFull:ye("star-full",60249),starHalf:ye("star-half",60250),symbolClass:ye("symbol-class",60251),symbolColor:ye("symbol-color",60252),symbolConstant:ye("symbol-constant",60253),symbolEnumMember:ye("symbol-enum-member",60254),symbolField:ye("symbol-field",60255),symbolFile:ye("symbol-file",60256),symbolInterface:ye("symbol-interface",60257),symbolKeyword:ye("symbol-keyword",60258),symbolMisc:ye("symbol-misc",60259),symbolOperator:ye("symbol-operator",60260),symbolProperty:ye("symbol-property",60261),wrench:ye("wrench",60261),wrenchSubaction:ye("wrench-subaction",60261),symbolSnippet:ye("symbol-snippet",60262),tasklist:ye("tasklist",60263),telescope:ye("telescope",60264),textSize:ye("text-size",60265),threeBars:ye("three-bars",60266),thumbsdown:ye("thumbsdown",60267),thumbsup:ye("thumbsup",60268),tools:ye("tools",60269),triangleDown:ye("triangle-down",60270),triangleLeft:ye("triangle-left",60271),triangleRight:ye("triangle-right",60272),triangleUp:ye("triangle-up",60273),twitter:ye("twitter",60274),unfold:ye("unfold",60275),unlock:ye("unlock",60276),unmute:ye("unmute",60277),unverified:ye("unverified",60278),verified:ye("verified",60279),versions:ye("versions",60280),vmActive:ye("vm-active",60281),vmOutline:ye("vm-outline",60282),vmRunning:ye("vm-running",60283),watch:ye("watch",60284),whitespace:ye("whitespace",60285),wholeWord:ye("whole-word",60286),window:ye("window",60287),wordWrap:ye("word-wrap",60288),zoomIn:ye("zoom-in",60289),zoomOut:ye("zoom-out",60290),listFilter:ye("list-filter",60291),listFlat:ye("list-flat",60292),listSelection:ye("list-selection",60293),selection:ye("selection",60293),listTree:ye("list-tree",60294),debugBreakpointFunctionUnverified:ye("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:ye("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:ye("debug-breakpoint-function-disabled",60296),debugStackframeActive:ye("debug-stackframe-active",60297),circleSmallFilled:ye("circle-small-filled",60298),debugStackframeDot:ye("debug-stackframe-dot",60298),terminalDecorationMark:ye("terminal-decoration-mark",60298),debugStackframe:ye("debug-stackframe",60299),debugStackframeFocused:ye("debug-stackframe-focused",60299),debugBreakpointUnsupported:ye("debug-breakpoint-unsupported",60300),symbolString:ye("symbol-string",60301),debugReverseContinue:ye("debug-reverse-continue",60302),debugStepBack:ye("debug-step-back",60303),debugRestartFrame:ye("debug-restart-frame",60304),debugAlt:ye("debug-alt",60305),callIncoming:ye("call-incoming",60306),callOutgoing:ye("call-outgoing",60307),menu:ye("menu",60308),expandAll:ye("expand-all",60309),feedback:ye("feedback",60310),gitPullRequestReviewer:ye("git-pull-request-reviewer",60310),groupByRefType:ye("group-by-ref-type",60311),ungroupByRefType:ye("ungroup-by-ref-type",60312),account:ye("account",60313),gitPullRequestAssignee:ye("git-pull-request-assignee",60313),bellDot:ye("bell-dot",60314),debugConsole:ye("debug-console",60315),library:ye("library",60316),output:ye("output",60317),runAll:ye("run-all",60318),syncIgnored:ye("sync-ignored",60319),pinned:ye("pinned",60320),githubInverted:ye("github-inverted",60321),serverProcess:ye("server-process",60322),serverEnvironment:ye("server-environment",60323),pass:ye("pass",60324),issueClosed:ye("issue-closed",60324),stopCircle:ye("stop-circle",60325),playCircle:ye("play-circle",60326),record:ye("record",60327),debugAltSmall:ye("debug-alt-small",60328),vmConnect:ye("vm-connect",60329),cloud:ye("cloud",60330),merge:ye("merge",60331),export:ye("export",60332),graphLeft:ye("graph-left",60333),magnet:ye("magnet",60334),notebook:ye("notebook",60335),redo:ye("redo",60336),checkAll:ye("check-all",60337),pinnedDirty:ye("pinned-dirty",60338),passFilled:ye("pass-filled",60339),circleLargeFilled:ye("circle-large-filled",60340),circleLarge:ye("circle-large",60341),circleLargeOutline:ye("circle-large-outline",60341),combine:ye("combine",60342),gather:ye("gather",60342),table:ye("table",60343),variableGroup:ye("variable-group",60344),typeHierarchy:ye("type-hierarchy",60345),typeHierarchySub:ye("type-hierarchy-sub",60346),typeHierarchySuper:ye("type-hierarchy-super",60347),gitPullRequestCreate:ye("git-pull-request-create",60348),runAbove:ye("run-above",60349),runBelow:ye("run-below",60350),notebookTemplate:ye("notebook-template",60351),debugRerun:ye("debug-rerun",60352),workspaceTrusted:ye("workspace-trusted",60353),workspaceUntrusted:ye("workspace-untrusted",60354),workspaceUnknown:ye("workspace-unknown",60355),terminalCmd:ye("terminal-cmd",60356),terminalDebian:ye("terminal-debian",60357),terminalLinux:ye("terminal-linux",60358),terminalPowershell:ye("terminal-powershell",60359),terminalTmux:ye("terminal-tmux",60360),terminalUbuntu:ye("terminal-ubuntu",60361),terminalBash:ye("terminal-bash",60362),arrowSwap:ye("arrow-swap",60363),copy:ye("copy",60364),personAdd:ye("person-add",60365),filterFilled:ye("filter-filled",60366),wand:ye("wand",60367),debugLineByLine:ye("debug-line-by-line",60368),inspect:ye("inspect",60369),layers:ye("layers",60370),layersDot:ye("layers-dot",60371),layersActive:ye("layers-active",60372),compass:ye("compass",60373),compassDot:ye("compass-dot",60374),compassActive:ye("compass-active",60375),azure:ye("azure",60376),issueDraft:ye("issue-draft",60377),gitPullRequestClosed:ye("git-pull-request-closed",60378),gitPullRequestDraft:ye("git-pull-request-draft",60379),debugAll:ye("debug-all",60380),debugCoverage:ye("debug-coverage",60381),runErrors:ye("run-errors",60382),folderLibrary:ye("folder-library",60383),debugContinueSmall:ye("debug-continue-small",60384),beakerStop:ye("beaker-stop",60385),graphLine:ye("graph-line",60386),graphScatter:ye("graph-scatter",60387),pieChart:ye("pie-chart",60388),bracket:ye("bracket",60175),bracketDot:ye("bracket-dot",60389),bracketError:ye("bracket-error",60390),lockSmall:ye("lock-small",60391),azureDevops:ye("azure-devops",60392),verifiedFilled:ye("verified-filled",60393),newline:ye("newline",60394),layout:ye("layout",60395),layoutActivitybarLeft:ye("layout-activitybar-left",60396),layoutActivitybarRight:ye("layout-activitybar-right",60397),layoutPanelLeft:ye("layout-panel-left",60398),layoutPanelCenter:ye("layout-panel-center",60399),layoutPanelJustify:ye("layout-panel-justify",60400),layoutPanelRight:ye("layout-panel-right",60401),layoutPanel:ye("layout-panel",60402),layoutSidebarLeft:ye("layout-sidebar-left",60403),layoutSidebarRight:ye("layout-sidebar-right",60404),layoutStatusbar:ye("layout-statusbar",60405),layoutMenubar:ye("layout-menubar",60406),layoutCentered:ye("layout-centered",60407),target:ye("target",60408),indent:ye("indent",60409),recordSmall:ye("record-small",60410),errorSmall:ye("error-small",60411),terminalDecorationError:ye("terminal-decoration-error",60411),arrowCircleDown:ye("arrow-circle-down",60412),arrowCircleLeft:ye("arrow-circle-left",60413),arrowCircleRight:ye("arrow-circle-right",60414),arrowCircleUp:ye("arrow-circle-up",60415),layoutSidebarRightOff:ye("layout-sidebar-right-off",60416),layoutPanelOff:ye("layout-panel-off",60417),layoutSidebarLeftOff:ye("layout-sidebar-left-off",60418),blank:ye("blank",60419),heartFilled:ye("heart-filled",60420),map:ye("map",60421),mapHorizontal:ye("map-horizontal",60421),foldHorizontal:ye("fold-horizontal",60421),mapFilled:ye("map-filled",60422),mapHorizontalFilled:ye("map-horizontal-filled",60422),foldHorizontalFilled:ye("fold-horizontal-filled",60422),circleSmall:ye("circle-small",60423),bellSlash:ye("bell-slash",60424),bellSlashDot:ye("bell-slash-dot",60425),commentUnresolved:ye("comment-unresolved",60426),gitPullRequestGoToChanges:ye("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:ye("git-pull-request-new-changes",60428),searchFuzzy:ye("search-fuzzy",60429),commentDraft:ye("comment-draft",60430),send:ye("send",60431),sparkle:ye("sparkle",60432),insert:ye("insert",60433),mic:ye("mic",60434),thumbsdownFilled:ye("thumbsdown-filled",60435),thumbsupFilled:ye("thumbsup-filled",60436),coffee:ye("coffee",60437),snake:ye("snake",60438),game:ye("game",60439),vr:ye("vr",60440),chip:ye("chip",60441),piano:ye("piano",60442),music:ye("music",60443),micFilled:ye("mic-filled",60444),repoFetch:ye("repo-fetch",60445),copilot:ye("copilot",60446),lightbulbSparkle:ye("lightbulb-sparkle",60447),robot:ye("robot",60448),sparkleFilled:ye("sparkle-filled",60449),diffSingle:ye("diff-single",60450),diffMultiple:ye("diff-multiple",60451),surroundWith:ye("surround-with",60452),share:ye("share",60453),gitStash:ye("git-stash",60454),gitStashApply:ye("git-stash-apply",60455),gitStashPop:ye("git-stash-pop",60456),vscode:ye("vscode",60457),vscodeInsiders:ye("vscode-insiders",60458),codeOss:ye("code-oss",60459),runCoverage:ye("run-coverage",60460),runAllCoverage:ye("run-all-coverage",60461),coverage:ye("coverage",60462),githubProject:ye("github-project",60463),mapVertical:ye("map-vertical",60464),foldVertical:ye("fold-vertical",60464),mapVerticalFilled:ye("map-vertical-filled",60465),foldVerticalFilled:ye("fold-vertical-filled",60465),goToSearch:ye("go-to-search",60466),percentage:ye("percentage",60467),sortPercentage:ye("sort-percentage",60467),attach:ye("attach",60468),goToEditingSession:ye("go-to-editing-session",60469),editSession:ye("edit-session",60470),codeReview:ye("code-review",60471),copilotWarning:ye("copilot-warning",60472),python:ye("python",60473),copilotLarge:ye("copilot-large",60474),copilotWarningLarge:ye("copilot-warning-large",60475),keyboardTab:ye("keyboard-tab",60476),copilotBlocked:ye("copilot-blocked",60477),copilotNotConnected:ye("copilot-not-connected",60478),flag:ye("flag",60479),lightbulbEmpty:ye("lightbulb-empty",60480),symbolMethodArrow:ye("symbol-method-arrow",60481),copilotUnavailable:ye("copilot-unavailable",60482),repoPinned:ye("repo-pinned",60483),keyboardTabAbove:ye("keyboard-tab-above",60484),keyboardTabBelow:ye("keyboard-tab-below",60485),gitPullRequestDone:ye("git-pull-request-done",60486),mcp:ye("mcp",60487),extensionsLarge:ye("extensions-large",60488),layoutPanelDock:ye("layout-panel-dock",60489),layoutSidebarLeftDock:ye("layout-sidebar-left-dock",60490),layoutSidebarRightDock:ye("layout-sidebar-right-dock",60491),copilotInProgress:ye("copilot-in-progress",60492),copilotError:ye("copilot-error",60493),copilotSuccess:ye("copilot-success",60494),chatSparkle:ye("chat-sparkle",60495),searchSparkle:ye("search-sparkle",60496),editSparkle:ye("edit-sparkle",60497),copilotSnooze:ye("copilot-snooze",60498),sendToRemoteAgent:ye("send-to-remote-agent",60499),commentDiscussionSparkle:ye("comment-discussion-sparkle",60500),chatSparkleWarning:ye("chat-sparkle-warning",60501),chatSparkleError:ye("chat-sparkle-error",60502),collection:ye("collection",60503),newCollection:ye("new-collection",60504),thinking:ye("thinking",60505),build:ye("build",60506),commentDiscussionQuote:ye("comment-discussion-quote",60507),cursor:ye("cursor",60508),eraser:ye("eraser",60509),fileText:ye("file-text",60510),gitLens:ye("git-lens",60511),quotes:ye("quotes",60512),rename:ye("rename",60513),runWithDeps:ye("run-with-deps",60514),debugConnected:ye("debug-connected",60515),strikethrough:ye("strikethrough",60516),openInProduct:ye("open-in-product",60517),indexZero:ye("index-zero",60518),agent:ye("agent",60519),editCode:ye("edit-code",60520),repoSelected:ye("repo-selected",60521),skip:ye("skip",60522),mergeInto:ye("merge-into",60523),gitBranchChanges:ye("git-branch-changes",60524),gitBranchStagedChanges:ye("git-branch-staged-changes",60525),gitBranchConflicts:ye("git-branch-conflicts",60526),gitBranch:ye("git-branch",60527),gitBranchCreate:ye("git-branch-create",60527),gitBranchDelete:ye("git-branch-delete",60527),searchLarge:ye("search-large",60528),terminalGitBash:ye("terminal-git-bash",60529)},rno={dialogError:ye("dialog-error","error"),dialogWarning:ye("dialog-warning","warning"),dialogInfo:ye("dialog-info","info"),dialogClose:ye("dialog-close","close"),treeItemExpanded:ye("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:ye("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:ye("tree-filter-on-type-off","list-selection"),treeFilterClear:ye("tree-filter-clear","close"),treeItemLoading:ye("tree-item-loading","loading"),menuSelection:ye("menu-selection","check"),menuSubmenu:ye("menu-submenu","chevron-right"),menuBarMore:ye("menubar-more","more"),scrollbarButtonLeft:ye("scrollbar-button-left","triangle-left"),scrollbarButtonRight:ye("scrollbar-button-right","triangle-right"),scrollbarButtonUp:ye("scrollbar-button-up","triangle-up"),scrollbarButtonDown:ye("scrollbar-button-down","triangle-down"),toolBarMore:ye("toolbar-more","more"),quickInputBack:ye("quick-input-back","arrow-left"),dropDownButton:ye("drop-down-button",60084),symbolCustomColor:ye("symbol-customcolor",60252),exportIcon:ye("export",60332),workspaceUnspecified:ye("workspace-unspecified",60355),newLine:ye("newline",60394),thumbsDownFilled:ye("thumbsdown-filled",60435),thumbsUpFilled:ye("thumbsup-filled",60436),gitFetch:ye("git-fetch",60445),lightbulbSparkleAutofix:ye("lightbulb-sparkle-autofix",60447),debugBreakpointPending:ye("debug-breakpoint-pending",60377)},zt={...ino,...rno};var vNe;(function(e){function t(n){return!!n&&typeof n=="object"&&typeof n.id=="string"}e.isThemeColor=t})(vNe||(vNe={}));var fi;(function(e){e.iconNameSegment="[A-Za-z0-9]+",e.iconNameExpression="[A-Za-z0-9-]+",e.iconModifierExpression="~[A-Za-z]+",e.iconNameCharacter="[A-Za-z0-9~-]";const t=new RegExp(`^(${e.iconNameExpression})(${e.iconModifierExpression})?$`);function n(f){const k=t.exec(f.id);if(!k)return n(zt.error);const[,A,p]=k,b=["codicon","codicon-"+A];return p&&b.push("codicon-modifier-"+p.substring(1)),b}e.asClassNameArray=n;function r(f){return n(f).join(" ")}e.asClassName=r;function o(f){return"."+n(f).join(".")}e.asCSSSelector=o;function s(f){return!!f&&typeof f=="object"&&typeof f.id=="string"&&(typeof f.color>"u"||vNe.isThemeColor(f.color))}e.isThemeIcon=s;const a=new RegExp(`^\\$\\((${e.iconNameExpression}(?:${e.iconModifierExpression})?)\\)$`);function l(f){const k=a.exec(f);if(!k)return;const[,A]=k;return{id:A}}e.fromString=l;function d(f){return{id:f}}e.fromId=d;function u(f,k){let A=f.id;const p=A.lastIndexOf("~");return p!==-1&&(A=A.substring(0,p)),k&&(A=`${A}~${k}`),{id:A}}e.modify=u;function h(f){const k=f.id.lastIndexOf("~");if(k!==-1)return f.id.substring(k+1)}e.getModifier=h;function g(f,k){var A,p;return f.id===k.id&&((A=f.color)==null?void 0:A.id)===((p=k.color)==null?void 0:p.id)}e.isEqual=g;function m(f){return(f==null?void 0:f.id)===zt.file.id}e.isFile=m;function v(f){return(f==null?void 0:f.id)===zt.folder.id}e.isFolder=v})(fi||(fi={}));const ba=Cr("commandService"),uo=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new at,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(e,t){if(!e)throw new Error("invalid command");if(typeof e=="string"){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.metadata&&Array.isArray(e.metadata.args)){const a=[];for(const d of e.metadata.args)a.push(d.constraint);const l=e.handler;e.handler=function(d,...u){return CJr(u,a),l(d,...u)}}const{id:n}=e;let r=this._commands.get(n);r||(r=new bg,this._commands.set(n,r));const o=r.unshift(e),s=Hn(()=>{o();const a=this._commands.get(n);a!=null&&a.isEmpty()&&this._commands.delete(n)});return this._onDidRegisterCommand.fire(n),s}registerCommandAlias(e,t){return uo.registerCommand(e,(n,...r)=>n.get(ba).executeCommand(t,...r))}getCommand(e){const t=this._commands.get(e);if(!(!t||t.isEmpty()))return to.first(t)}getCommands(){const e=new Map;for(const t of this._commands.keys()){const n=this.getCommand(t);n&&e.set(t,n)}return e}};uo.registerCommand("noop",()=>{});function nLe(...e){switch(e.length){case 1:return U(1693,"Did you mean {0}?",e[0]);case 2:return U(1694,"Did you mean {0} or {1}?",e[0],e[1]);case 3:return U(1695,"Did you mean {0}, {1} or {2}?",e[0],e[1],e[2]);default:return}}const ono=U(1696,"Did you forget to open or close the quote?"),sno=U(1697,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");var jS;let aX=(jS=class{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(t){switch(t.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return t.isTripleEq?"===":"==";case 4:return t.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return t.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return t.lexeme;case 18:return t.lexeme;case 19:return t.lexeme;case 20:return"EOF";default:throw mme(`unhandled token type: ${JSON.stringify(t)}; have you forgotten to add a case?`)}}reset(t){return this._input=t,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const n=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:n})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const n=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:n})}else this._match(126)?this._addToken(9):this._error(nLe("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(nLe("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(nLe("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return this._isAtEnd()||this._input.charCodeAt(this._current)!==t?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){const n=this._start,r=this._input.substring(this._start,this._current),o={type:19,offset:this._start,lexeme:r};this._errors.push({offset:n,lexeme:r,additionalInfo:t}),this._tokens.push(o)}_string(){this.stringRe.lastIndex=this._start;const t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;const n=this._input.substring(this._start,this._current),r=jS._keywords.get(n);r?this._addToken(r):this._tokens.push({type:17,lexeme:n,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(ono);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let t=this._current,n=!1,r=!1;for(;;){if(t>=this._input.length){this._current=t,this._error(sno);return}const s=this._input.charCodeAt(t);if(n)n=!1;else if(s===47&&!r){t++;break}else s===91?r=!0:s===92?n=!0:s===93&&(r=!1);t++}for(;t=this._input.length}},jS._regexFlags=new Set(["i","g","s","m","y","u"].map(t=>t.charCodeAt(0))),jS._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]),jS);const Df=new Map;Df.set("false",!1);Df.set("true",!0);Df.set("isMac",Tr);Df.set("isLinux",v1);Df.set("isWindows",mh);Df.set("isWeb",qy);Df.set("isMacNative",Tr&&!qy);Df.set("isEdge",B6n);Df.set("isFirefox",BJr);Df.set("isChrome",_Je);Df.set("isSafari",RJr);const ano=Object.prototype.hasOwnProperty,lno={regexParsingWithErrorRecovery:!0},cno=U(1675,"Empty context key expression"),dno=U(1676,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),uno=U(1677,"'in' after 'not'."),Dbt=U(1678,"closing parenthesis ')'"),hno=U(1679,"Unexpected token"),fno=U(1680,"Did you forget to put && or || before the token?"),gno=U(1681,"Unexpected end of expression"),mno=U(1682,"Did you forget to put a context key?");var RO;let kno=(RO=class{constructor(t=lno){this._config=t,this._scanner=new aX,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(t){if(t===""){this._parsingErrors.push({message:cno,offset:0,lexeme:"",additionalInfo:dno});return}this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{const n=this._expr();if(!this._isAtEnd()){const r=this._peek(),o=r.type===17?fno:void 0;throw this._parsingErrors.push({message:hno,offset:r.offset,lexeme:aX.getLexeme(r),additionalInfo:o}),RO._parseError}return n}catch(n){if(n!==RO._parseError)throw n;return}}_expr(){return this._or()}_or(){const t=[this._and()];for(;this._matchOne(16);){const n=this._and();t.push(n)}return t.length===1?t[0]:Ft.or(...t)}_and(){const t=[this._term()];for(;this._matchOne(15);){const n=this._term();t.push(n)}return t.length===1?t[0]:Ft.and(...t)}_term(){if(this._matchOne(2)){const t=this._peek();switch(t.type){case 11:return this._advance(),hm.INSTANCE;case 12:return this._advance(),p1.INSTANCE;case 0:{this._advance();const n=this._expr();return this._consume(1,Dbt),n==null?void 0:n.negate()}case 17:return this._advance(),wI.create(t.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",t)}}return this._primary()}_primary(){const t=this._peek();switch(t.type){case 11:return this._advance(),Ft.true();case 12:return this._advance(),Ft.false();case 0:{this._advance();const n=this._expr();return this._consume(1,Dbt),n}case 17:{const n=t.lexeme;if(this._advance(),this._matchOne(9)){const o=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),o.type!==10)throw this._errExpectedButGot("REGEX",o);const s=o.lexeme,a=s.lastIndexOf("/"),l=a===s.length-1?void 0:this._removeFlagsGY(s.substring(a+1));let d;try{d=new RegExp(s.substring(1,a),l)}catch{throw this._errExpectedButGot("REGEX",o)}return YK.create(n,d)}switch(o.type){case 10:case 19:{const s=[o.lexeme];this._advance();let a=this._peek(),l=0;for(let m=0;m=0){const u=s.slice(l+1,d),h=s[d+1]==="i"?"i":"";try{a=new RegExp(u,h)}catch{throw this._errExpectedButGot("REGEX",o)}}}if(a===null)throw this._errExpectedButGot("REGEX",o);return YK.create(n,a)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,uno);const o=this._value();return Ft.notIn(n,o)}switch(this._peek().type){case 3:{this._advance();const o=this._value();if(this._previous().type===18)return Ft.equals(n,o);switch(o){case"true":return Ft.has(n);case"false":return Ft.not(n);default:return Ft.equals(n,o)}}case 4:{this._advance();const o=this._value();if(this._previous().type===18)return Ft.notEquals(n,o);switch(o){case"true":return Ft.not(n);case"false":return Ft.has(n);default:return Ft.notEquals(n,o)}}case 5:return this._advance(),Ebe.create(n,this._value());case 6:return this._advance(),Tbe.create(n,this._value());case 7:return this._advance(),Lbe.create(n,this._value());case 8:return this._advance(),xbe.create(n,this._value());case 13:return this._advance(),Ft.in(n,this._value());default:return Ft.has(n)}}case 20:throw this._parsingErrors.push({message:gno,offset:t.offset,lexeme:"",additionalInfo:mno}),RO._parseError;default:throw this._errExpectedButGot(`true | false | KEY | KEY '=~' REGEX | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const t=this._peek();switch(t.type){case 17:case 18:return this._advance(),t.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(t){return t.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(t){return this._check(t)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(t,n){if(this._check(t))return this._advance();throw this._errExpectedButGot(n,this._peek())}_errExpectedButGot(t,n,r){const o=U(1683,`Expected: {0} -Received: '{1}'.`,t,aX.getLexeme(n)),s=n.offset,a=aX.getLexeme(n);return this._parsingErrors.push({message:o,offset:s,lexeme:a,additionalInfo:r}),RO._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},RO._parseError=new Error,RO);const hat=class hat{static false(){return hm.INSTANCE}static true(){return p1.INSTANCE}static has(t){return bI.create(t)}static equals(t,n){return $z.create(t,n)}static notEquals(t,n){return _be.create(t,n)}static regex(t,n){return YK.create(t,n)}static in(t,n){return ybe.create(t,n)}static notIn(t,n){return Cbe.create(t,n)}static not(t){return wI.create(t)}static and(...t){return aQ.create(t,null,!0)}static or(...t){return vS.create(t,null,!0)}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};hat._parser=new kno({regexParsingWithErrorRecovery:!1});let Ft=hat;function vno(e,t){const n=e?e.substituteConstants():void 0,r=t?t.substituteConstants():void 0;return!n&&!r?!0:!n||!r?!1:n.equals(r)}function cZ(e,t){return e.cmp(t)}const bve=class bve{constructor(){this.type=0}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!1}serialize(){return"false"}keys(){return[]}negate(){return p1.INSTANCE}};bve.INSTANCE=new bve;let hm=bve;const wve=class wve{constructor(){this.type=1}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!0}serialize(){return"true"}keys(){return[]}negate(){return hm.INSTANCE}};wve.INSTANCE=new wve;let p1=wve;class bI{static create(t,n=null){const r=Df.get(t);return typeof r=="boolean"?r?p1.INSTANCE:hm.INSTANCE:new bI(t,n)}constructor(t,n){this.key=t,this.negated=n,this.type=2}cmp(t){return t.type!==this.type?this.type-t.type:DEn(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){const t=Df.get(this.key);return typeof t=="boolean"?t?p1.INSTANCE:hm.INSTANCE:this}evaluate(t){return!!t.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=wI.create(this.key,this)),this.negated}}class $z{static create(t,n,r=null){if(typeof n=="boolean")return n?bI.create(t,r):wI.create(t,r);const o=Df.get(t);return typeof o=="boolean"?n===(o?"true":"false")?p1.INSTANCE:hm.INSTANCE:new $z(t,n,r)}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=4}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){const t=Df.get(this.key);if(typeof t=="boolean"){const n=t?"true":"false";return this.value===n?p1.INSTANCE:hm.INSTANCE}return this}evaluate(t){return t.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=_be.create(this.key,this.value,this)),this.negated}}class ybe{static create(t,n){return new ybe(t,n)}constructor(t,n){this.key=t,this.valueKey=n,this.type=10,this.negated=null}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.valueKey,t.key,t.valueKey)}equals(t){return t.type===this.type?this.key===t.key&&this.valueKey===t.valueKey:!1}substituteConstants(){return this}evaluate(t){const n=t.getValue(this.valueKey),r=t.getValue(this.key);return Array.isArray(n)?n.includes(r):typeof r=="string"&&typeof n=="object"&&n!==null?ano.call(n,r):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=Cbe.create(this.key,this.valueKey)),this.negated}}class Cbe{static create(t,n){return new Cbe(t,n)}constructor(t,n){this.key=t,this.valueKey=n,this.type=11,this._negated=ybe.create(t,n)}cmp(t){return t.type!==this.type?this.type-t.type:this._negated.cmp(t._negated)}equals(t){return t.type===this.type?this._negated.equals(t._negated):!1}substituteConstants(){return this}evaluate(t){return!this._negated.evaluate(t)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class _be{static create(t,n,r=null){if(typeof n=="boolean")return n?wI.create(t,r):bI.create(t,r);const o=Df.get(t);return typeof o=="boolean"?n===(o?"true":"false")?hm.INSTANCE:p1.INSTANCE:new _be(t,n,r)}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=5}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){const t=Df.get(this.key);if(typeof t=="boolean"){const n=t?"true":"false";return this.value===n?hm.INSTANCE:p1.INSTANCE}return this}evaluate(t){return t.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=$z.create(this.key,this.value,this)),this.negated}}class wI{static create(t,n=null){const r=Df.get(t);return typeof r=="boolean"?r?hm.INSTANCE:p1.INSTANCE:new wI(t,n)}constructor(t,n){this.key=t,this.negated=n,this.type=3}cmp(t){return t.type!==this.type?this.type-t.type:DEn(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){const t=Df.get(this.key);return typeof t=="boolean"?t?hm.INSTANCE:p1.INSTANCE:this}evaluate(t){return!t.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=bI.create(this.key,this)),this.negated}}function Sbe(e,t){if(typeof e=="string"){const n=parseFloat(e);isNaN(n)||(e=n)}return typeof e=="string"||typeof e=="number"?t(e):hm.INSTANCE}class Lbe{static create(t,n,r=null){return Sbe(n,o=>new Lbe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=12}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Tbe.create(this.key,this.value,this)),this.negated}}class xbe{static create(t,n,r=null){return Sbe(n,o=>new xbe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=13}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Ebe.create(this.key,this.value,this)),this.negated}}class Ebe{static create(t,n,r=null){return Sbe(n,o=>new Ebe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=14}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))new Tbe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=15}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Lbe.create(this.key,this.value,this)),this.negated}}class YK{static create(t,n){return new YK(t,n)}constructor(t,n){this.key=t,this.regexp=n,this.type=7,this.negated=null}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.keyt.key)return 1;const n=this.regexp?this.regexp.source:"",r=t.regexp?t.regexp.source:"";return nr?1:0}equals(t){if(t.type===this.type){const n=this.regexp?this.regexp.source:"",r=t.regexp?t.regexp.source:"";return this.key===t.key&&n===r}return!1}substituteConstants(){return this}evaluate(t){const n=t.getValue(this.key);return this.regexp?this.regexp.test(n):!1}serialize(){const t=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${t}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=JJe.create(this)),this.negated}}class JJe{static create(t){return new JJe(t)}constructor(t){this._actual=t,this.type=8}cmp(t){return t.type!==this.type?this.type-t.type:this._actual.cmp(t._actual)}equals(t){return t.type===this.type?this._actual.equals(t._actual):!1}substituteConstants(){return this}evaluate(t){return!this._actual.evaluate(t)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function QEn(e){let t=null;for(let n=0,r=e.length;nt.expr.length)return 1;for(let n=0,r=this.expr.length;n1;){const a=o[o.length-1];if(a.type!==9)break;o.pop();const l=o.pop(),d=o.length===0,u=vS.create(a.expr.map(h=>aQ.create([h,l],null,r)),null,d);u&&(o.push(u),o.sort(cZ))}if(o.length===1)return o[0];if(r){for(let a=0;at.serialize()).join(" && ")}keys(){const t=[];for(const n of this.expr)t.push(...n.keys());return t}negate(){if(!this.negated){const t=[];for(const n of this.expr)t.push(n.negate());this.negated=vS.create(t,this,!0)}return this.negated}}class vS{static create(t,n,r){return vS._normalizeArr(t,n,r)}constructor(t,n){this.expr=t,this.negated=n,this.type=9}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.lengtht.expr.length)return 1;for(let n=0,r=this.expr.length;nt.serialize()).join(" || ")}keys(){const t=[];for(const n of this.expr)t.push(...n.keys());return t}negate(){if(!this.negated){const t=[];for(const n of this.expr)t.push(n.negate());for(;t.length>1;){const n=t.shift(),r=t.shift(),o=[];for(const s of Rbt(n))for(const a of Rbt(r))o.push(aQ.create([s,a],null,!1));t.unshift(vS.create(o,null,!1))}this.negated=vS.create(t,this,!0)}return this.negated}}const YN=class YN extends bI{static all(){return YN._info.values()}constructor(t,n,r){super(t,null),this._defaultValue=n,typeof r=="object"?YN._info.push({...r,key:t}):r!==!0&&YN._info.push({key:t,description:r,type:n!=null?typeof n:void 0})}bindTo(t){return t.createKey(this.key,this._defaultValue)}getValue(t){return t.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(t){return $z.create(this.key,t)}};YN._info=[];let yn=YN;const Qi=Cr("contextKeyService");function DEn(e,t){return et?1:0}function OI(e,t,n,r){return en?1:tr?1:0}function ANe(e,t){if(e.type===0||t.type===1)return!0;if(e.type===9)return t.type===9?Bbt(e.expr,t.expr):!1;if(t.type===9){for(const n of t.expr)if(ANe(e,n))return!0;return!1}if(e.type===6){if(t.type===6)return Bbt(t.expr,e.expr);for(const n of e.expr)if(ANe(n,t))return!0;return!1}return e.equals(t)}function Bbt(e,t){let n=0,r=0;for(;n{tR(t.dispose)&&t.dispose()}),this.data.clear()}}const Ql=new Ano;class eet{constructor(){this._coreKeybindings=new bg,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(t){if(b0===1){if(t&&t.win)return t.win}else if(b0===2){if(t&&t.mac)return t.mac}else if(t&&t.linux)return t.linux;return t}registerKeybindingRule(t){const n=eet.bindToCurrentPlatform(t),r=new xt;if(n&&n.primary){const o=XFe(n.primary,b0);o&&r.add(this._registerDefaultKeybinding(o,t.id,t.args,t.weight,0,t.when))}if(n&&Array.isArray(n.secondary))for(let o=0,s=n.secondary.length;o{l(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(bno)),this._cachedMergedKeybindings.slice(0)}}const Nu=new eet,pno={EditorModes:"platform.keybindingsRegistry"};Ql.add(pno.EditorModes,Nu);function bno(e,t){if(e.weight1!==t.weight1)return e.weight1-t.weight1;if(e.command&&t.command){if(e.commandt.command)return 1}return e.weight2-t.weight2}var wno=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Ibt=function(e,t){return function(n,r){t(n,r,e)}},que;function LU(e){return e.command!==void 0}function Ono(e){return e.submenu!==void 0}const je=class je{constructor(t){if(je._instances.has(t))throw new TypeError(`MenuId with identifier '${t}' already exists. Use MenuId.for(ident) or a unique identifier`);je._instances.set(t,this),this.id=t}};je._instances=new Map,je.CommandPalette=new je("CommandPalette"),je.DebugBreakpointsContext=new je("DebugBreakpointsContext"),je.DebugCallStackContext=new je("DebugCallStackContext"),je.DebugConsoleContext=new je("DebugConsoleContext"),je.DebugVariablesContext=new je("DebugVariablesContext"),je.NotebookVariablesContext=new je("NotebookVariablesContext"),je.DebugHoverContext=new je("DebugHoverContext"),je.DebugWatchContext=new je("DebugWatchContext"),je.DebugToolBar=new je("DebugToolBar"),je.DebugToolBarStop=new je("DebugToolBarStop"),je.DebugDisassemblyContext=new je("DebugDisassemblyContext"),je.DebugCallStackToolbar=new je("DebugCallStackToolbar"),je.DebugCreateConfiguration=new je("DebugCreateConfiguration"),je.EditorContext=new je("EditorContext"),je.SimpleEditorContext=new je("SimpleEditorContext"),je.EditorContent=new je("EditorContent"),je.EditorLineNumberContext=new je("EditorLineNumberContext"),je.EditorContextCopy=new je("EditorContextCopy"),je.EditorContextPeek=new je("EditorContextPeek"),je.EditorContextShare=new je("EditorContextShare"),je.EditorTitle=new je("EditorTitle"),je.CompactWindowEditorTitle=new je("CompactWindowEditorTitle"),je.EditorTitleRun=new je("EditorTitleRun"),je.EditorTitleContext=new je("EditorTitleContext"),je.EditorTitleContextShare=new je("EditorTitleContextShare"),je.EmptyEditorGroup=new je("EmptyEditorGroup"),je.EmptyEditorGroupContext=new je("EmptyEditorGroupContext"),je.EditorTabsBarContext=new je("EditorTabsBarContext"),je.EditorTabsBarShowTabsSubmenu=new je("EditorTabsBarShowTabsSubmenu"),je.EditorTabsBarShowTabsZenModeSubmenu=new je("EditorTabsBarShowTabsZenModeSubmenu"),je.EditorActionsPositionSubmenu=new je("EditorActionsPositionSubmenu"),je.EditorSplitMoveSubmenu=new je("EditorSplitMoveSubmenu"),je.ExplorerContext=new je("ExplorerContext"),je.ExplorerContextShare=new je("ExplorerContextShare"),je.ExtensionContext=new je("ExtensionContext"),je.ExtensionEditorContextMenu=new je("ExtensionEditorContextMenu"),je.GlobalActivity=new je("GlobalActivity"),je.CommandCenter=new je("CommandCenter"),je.CommandCenterCenter=new je("CommandCenterCenter"),je.LayoutControlMenuSubmenu=new je("LayoutControlMenuSubmenu"),je.LayoutControlMenu=new je("LayoutControlMenu"),je.MenubarMainMenu=new je("MenubarMainMenu"),je.MenubarAppearanceMenu=new je("MenubarAppearanceMenu"),je.MenubarDebugMenu=new je("MenubarDebugMenu"),je.MenubarEditMenu=new je("MenubarEditMenu"),je.MenubarCopy=new je("MenubarCopy"),je.MenubarFileMenu=new je("MenubarFileMenu"),je.MenubarGoMenu=new je("MenubarGoMenu"),je.MenubarHelpMenu=new je("MenubarHelpMenu"),je.MenubarLayoutMenu=new je("MenubarLayoutMenu"),je.MenubarNewBreakpointMenu=new je("MenubarNewBreakpointMenu"),je.PanelAlignmentMenu=new je("PanelAlignmentMenu"),je.PanelPositionMenu=new je("PanelPositionMenu"),je.ActivityBarPositionMenu=new je("ActivityBarPositionMenu"),je.MenubarPreferencesMenu=new je("MenubarPreferencesMenu"),je.MenubarRecentMenu=new je("MenubarRecentMenu"),je.MenubarSelectionMenu=new je("MenubarSelectionMenu"),je.MenubarShare=new je("MenubarShare"),je.MenubarSwitchEditorMenu=new je("MenubarSwitchEditorMenu"),je.MenubarSwitchGroupMenu=new je("MenubarSwitchGroupMenu"),je.MenubarTerminalMenu=new je("MenubarTerminalMenu"),je.MenubarTerminalSuggestStatusMenu=new je("MenubarTerminalSuggestStatusMenu"),je.MenubarViewMenu=new je("MenubarViewMenu"),je.MenubarHomeMenu=new je("MenubarHomeMenu"),je.OpenEditorsContext=new je("OpenEditorsContext"),je.OpenEditorsContextShare=new je("OpenEditorsContextShare"),je.ProblemsPanelContext=new je("ProblemsPanelContext"),je.SCMInputBox=new je("SCMInputBox"),je.SCMChangeContext=new je("SCMChangeContext"),je.SCMResourceContext=new je("SCMResourceContext"),je.SCMResourceContextShare=new je("SCMResourceContextShare"),je.SCMResourceFolderContext=new je("SCMResourceFolderContext"),je.SCMResourceGroupContext=new je("SCMResourceGroupContext"),je.SCMSourceControl=new je("SCMSourceControl"),je.SCMSourceControlInline=new je("SCMSourceControlInline"),je.SCMSourceControlTitle=new je("SCMSourceControlTitle"),je.SCMHistoryTitle=new je("SCMHistoryTitle"),je.SCMHistoryItemContext=new je("SCMHistoryItemContext"),je.SCMHistoryItemChangeContext=new je("SCMHistoryItemChangeContext"),je.SCMHistoryItemRefContext=new je("SCMHistoryItemRefContext"),je.SCMArtifactGroupContext=new je("SCMArtifactGroupContext"),je.SCMArtifactContext=new je("SCMArtifactContext"),je.SCMQuickDiffDecorations=new je("SCMQuickDiffDecorations"),je.SCMTitle=new je("SCMTitle"),je.SearchContext=new je("SearchContext"),je.SearchActionMenu=new je("SearchActionContext"),je.StatusBarWindowIndicatorMenu=new je("StatusBarWindowIndicatorMenu"),je.StatusBarRemoteIndicatorMenu=new je("StatusBarRemoteIndicatorMenu"),je.StickyScrollContext=new je("StickyScrollContext"),je.TestItem=new je("TestItem"),je.TestItemGutter=new je("TestItemGutter"),je.TestProfilesContext=new je("TestProfilesContext"),je.TestMessageContext=new je("TestMessageContext"),je.TestMessageContent=new je("TestMessageContent"),je.TestPeekElement=new je("TestPeekElement"),je.TestPeekTitle=new je("TestPeekTitle"),je.TestCallStack=new je("TestCallStack"),je.TestCoverageFilterItem=new je("TestCoverageFilterItem"),je.TouchBarContext=new je("TouchBarContext"),je.TitleBar=new je("TitleBar"),je.TitleBarContext=new je("TitleBarContext"),je.TitleBarTitleContext=new je("TitleBarTitleContext"),je.TunnelContext=new je("TunnelContext"),je.TunnelPrivacy=new je("TunnelPrivacy"),je.TunnelProtocol=new je("TunnelProtocol"),je.TunnelPortInline=new je("TunnelInline"),je.TunnelTitle=new je("TunnelTitle"),je.TunnelLocalAddressInline=new je("TunnelLocalAddressInline"),je.TunnelOriginInline=new je("TunnelOriginInline"),je.ViewItemContext=new je("ViewItemContext"),je.ViewContainerTitle=new je("ViewContainerTitle"),je.ViewContainerTitleContext=new je("ViewContainerTitleContext"),je.ViewTitle=new je("ViewTitle"),je.ViewTitleContext=new je("ViewTitleContext"),je.CommentEditorActions=new je("CommentEditorActions"),je.CommentThreadTitle=new je("CommentThreadTitle"),je.CommentThreadActions=new je("CommentThreadActions"),je.CommentThreadAdditionalActions=new je("CommentThreadAdditionalActions"),je.CommentThreadTitleContext=new je("CommentThreadTitleContext"),je.CommentThreadCommentContext=new je("CommentThreadCommentContext"),je.CommentTitle=new je("CommentTitle"),je.CommentActions=new je("CommentActions"),je.CommentsViewThreadActions=new je("CommentsViewThreadActions"),je.InteractiveToolbar=new je("InteractiveToolbar"),je.InteractiveCellTitle=new je("InteractiveCellTitle"),je.InteractiveCellDelete=new je("InteractiveCellDelete"),je.InteractiveCellExecute=new je("InteractiveCellExecute"),je.InteractiveInputExecute=new je("InteractiveInputExecute"),je.InteractiveInputConfig=new je("InteractiveInputConfig"),je.ReplInputExecute=new je("ReplInputExecute"),je.IssueReporter=new je("IssueReporter"),je.NotebookToolbar=new je("NotebookToolbar"),je.NotebookToolbarContext=new je("NotebookToolbarContext"),je.NotebookStickyScrollContext=new je("NotebookStickyScrollContext"),je.NotebookCellTitle=new je("NotebookCellTitle"),je.NotebookCellDelete=new je("NotebookCellDelete"),je.NotebookCellInsert=new je("NotebookCellInsert"),je.NotebookCellBetween=new je("NotebookCellBetween"),je.NotebookCellListTop=new je("NotebookCellTop"),je.NotebookCellExecute=new je("NotebookCellExecute"),je.NotebookCellExecuteGoTo=new je("NotebookCellExecuteGoTo"),je.NotebookCellExecutePrimary=new je("NotebookCellExecutePrimary"),je.NotebookDiffCellInputTitle=new je("NotebookDiffCellInputTitle"),je.NotebookDiffDocumentMetadata=new je("NotebookDiffDocumentMetadata"),je.NotebookDiffCellMetadataTitle=new je("NotebookDiffCellMetadataTitle"),je.NotebookDiffCellOutputsTitle=new je("NotebookDiffCellOutputsTitle"),je.NotebookOutputToolbar=new je("NotebookOutputToolbar"),je.NotebookOutlineFilter=new je("NotebookOutlineFilter"),je.NotebookOutlineActionMenu=new je("NotebookOutlineActionMenu"),je.NotebookEditorLayoutConfigure=new je("NotebookEditorLayoutConfigure"),je.NotebookKernelSource=new je("NotebookKernelSource"),je.BulkEditTitle=new je("BulkEditTitle"),je.BulkEditContext=new je("BulkEditContext"),je.TimelineItemContext=new je("TimelineItemContext"),je.TimelineTitle=new je("TimelineTitle"),je.TimelineTitleContext=new je("TimelineTitleContext"),je.TimelineFilterSubMenu=new je("TimelineFilterSubMenu"),je.AccountsContext=new je("AccountsContext"),je.SidebarTitle=new je("SidebarTitle"),je.PanelTitle=new je("PanelTitle"),je.AuxiliaryBarTitle=new je("AuxiliaryBarTitle"),je.TerminalInstanceContext=new je("TerminalInstanceContext"),je.TerminalEditorInstanceContext=new je("TerminalEditorInstanceContext"),je.TerminalNewDropdownContext=new je("TerminalNewDropdownContext"),je.TerminalTabContext=new je("TerminalTabContext"),je.TerminalTabEmptyAreaContext=new je("TerminalTabEmptyAreaContext"),je.TerminalStickyScrollContext=new je("TerminalStickyScrollContext"),je.WebviewContext=new je("WebviewContext"),je.InlineCompletionsActions=new je("InlineCompletionsActions"),je.InlineEditsActions=new je("InlineEditsActions"),je.NewFile=new je("NewFile"),je.MergeInput1Toolbar=new je("MergeToolbar1Toolbar"),je.MergeInput2Toolbar=new je("MergeToolbar2Toolbar"),je.MergeBaseToolbar=new je("MergeBaseToolbar"),je.MergeInputResultToolbar=new je("MergeToolbarResultToolbar"),je.InlineSuggestionToolbar=new je("InlineSuggestionToolbar"),je.InlineEditToolbar=new je("InlineEditToolbar"),je.ChatContext=new je("ChatContext"),je.ChatCodeBlock=new je("ChatCodeblock"),je.ChatCompareBlock=new je("ChatCompareBlock"),je.ChatMessageTitle=new je("ChatMessageTitle"),je.ChatHistory=new je("ChatHistory"),je.ChatWelcomeContext=new je("ChatWelcomeContext"),je.ChatMessageFooter=new je("ChatMessageFooter"),je.ChatExecute=new je("ChatExecute"),je.ChatInput=new je("ChatInput"),je.ChatInputSide=new je("ChatInputSide"),je.ChatModePicker=new je("ChatModePicker"),je.ChatEditingWidgetToolbar=new je("ChatEditingWidgetToolbar"),je.ChatEditingEditorContent=new je("ChatEditingEditorContent"),je.ChatEditingEditorHunk=new je("ChatEditingEditorHunk"),je.ChatEditingDeletedNotebookCell=new je("ChatEditingDeletedNotebookCell"),je.ChatInputAttachmentToolbar=new je("ChatInputAttachmentToolbar"),je.ChatEditingWidgetModifiedFilesToolbar=new je("ChatEditingWidgetModifiedFilesToolbar"),je.ChatInputResourceAttachmentContext=new je("ChatInputResourceAttachmentContext"),je.ChatInputSymbolAttachmentContext=new je("ChatInputSymbolAttachmentContext"),je.ChatInlineResourceAnchorContext=new je("ChatInlineResourceAnchorContext"),je.ChatInlineSymbolAnchorContext=new je("ChatInlineSymbolAnchorContext"),je.ChatMessageCheckpoint=new je("ChatMessageCheckpoint"),je.ChatMessageRestoreCheckpoint=new je("ChatMessageRestoreCheckpoint"),je.ChatNewMenu=new je("ChatNewMenu"),je.ChatEditingCodeBlockContext=new je("ChatEditingCodeBlockContext"),je.ChatTitleBarMenu=new je("ChatTitleBarMenu"),je.ChatAttachmentsContext=new je("ChatAttachmentsContext"),je.ChatToolOutputResourceToolbar=new je("ChatToolOutputResourceToolbar"),je.ChatTextEditorMenu=new je("ChatTextEditorMenu"),je.ChatToolOutputResourceContext=new je("ChatToolOutputResourceContext"),je.ChatMultiDiffContext=new je("ChatMultiDiffContext"),je.ChatSessionsMenu=new je("ChatSessionsMenu"),je.ChatSessionsCreateSubMenu=new je("ChatSessionsCreateSubMenu"),je.ChatConfirmationMenu=new je("ChatConfirmationMenu"),je.ChatEditorInlineExecute=new je("ChatEditorInputExecute"),je.ChatEditorInlineInputSide=new je("ChatEditorInputSide"),je.AccessibleView=new je("AccessibleView"),je.MultiDiffEditorFileToolbar=new je("MultiDiffEditorFileToolbar"),je.DiffEditorHunkToolbar=new je("DiffEditorHunkToolbar"),je.DiffEditorSelectionToolbar=new je("DiffEditorSelectionToolbar");let Wn=je;const wA=Cr("menuService"),pq=class pq{static for(t){let n=this._all.get(t);return n||(n=new pq(t),this._all.set(t,n)),n}static merge(t){const n=new Set;for(const r of t)r instanceof pq&&n.add(r.id);return n}constructor(t){this.id=t,this.has=n=>n===t}};pq._all=new Map;let wT=pq;const Iu=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new neo({merge:wT.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(e){return this._commands.set(e.id,e),this._onDidChangeMenu.fire(wT.for(Wn.CommandPalette)),Hn(()=>{this._commands.delete(e.id)&&this._onDidChangeMenu.fire(wT.for(Wn.CommandPalette))})}getCommand(e){return this._commands.get(e)}getCommands(){const e=new Map;return this._commands.forEach((t,n)=>e.set(n,t)),e}appendMenuItem(e,t){let n=this._menuItems.get(e);n||(n=new bg,this._menuItems.set(e,n));const r=n.push(t);return this._onDidChangeMenu.fire(wT.for(e)),Hn(()=>{r(),this._onDidChangeMenu.fire(wT.for(e))})}appendMenuItems(e){const t=new xt;for(const{id:n,item:r}of e)t.add(this.appendMenuItem(n,r));return t}getMenuItems(e){let t;return this._menuItems.has(e)?t=[...this._menuItems.get(e)]:t=[],e===Wn.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(e){const t=new Set;for(const n of e)LU(n)&&(t.add(n.command.id),n.alt&&t.add(n.alt.id));this._commands.forEach((n,r)=>{t.has(r)||e.push({command:n})})}};class uD extends JW{constructor(t,n,r){super(`submenuitem.${t.submenu.id}`,typeof t.title=="string"?t.title:t.title.value,r,"submenu"),this.item=t,this.hideActions=n}}let i2=que=class{static label(t,n){return n!=null&&n.renderShortTitle&&t.shortTitle?typeof t.shortTitle=="string"?t.shortTitle:t.shortTitle.value:typeof t.title=="string"?t.title:t.title.value}constructor(t,n,r,o,s,a,l){var u;this.hideActions=o,this.menuKeybinding=s,this._commandService=l,this.id=t.id,this.label=que.label(t,r),this.tooltip=(typeof t.tooltip=="string"?t.tooltip:(u=t.tooltip)==null?void 0:u.value)??"",this.enabled=!t.precondition||a.contextMatchesRules(t.precondition),this.checked=void 0;let d;if(t.toggled){const h=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=a.contextMatchesRules(h.condition),this.checked&&h.tooltip&&(this.tooltip=typeof h.tooltip=="string"?h.tooltip:h.tooltip.value),this.checked&&fi.isThemeIcon(h.icon)&&(d=h.icon),this.checked&&h.title&&(this.label=typeof h.title=="string"?h.title:h.title.value)}d||(d=fi.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=n?new que(n,void 0,r,o,void 0,a,l):void 0,this._options=r,this.class=d&&fi.asClassName(d)}run(...t){var r,o;let n=[];return(r=this._options)!=null&&r.arg&&(n=[...n,this._options.arg]),(o=this._options)!=null&&o.shouldForwardArgs&&(n=[...n,...t]),this._commandService.executeCommand(this.id,...n)}};i2=que=wno([Ibt(5,Qi),Ibt(6,ba)],i2);class zu{constructor(t){this.desc=t}}function ys(e){const t=[],n=new e,{f1:r,menu:o,keybinding:s,...a}=n.desc;if(co.getCommand(a.id))throw new Error(`Cannot register two commands with the same id: ${a.id}`);if(t.push(co.registerCommand({id:a.id,handler:(l,...d)=>n.run(l,...d),metadata:a.metadata??{description:n.desc.title}})),Array.isArray(o))for(const l of o)t.push(Iu.appendMenuItem(l.id,{command:{...a,precondition:l.precondition===null?void 0:a.precondition},...l}));else o&&t.push(Iu.appendMenuItem(o.id,{command:{...a,precondition:o.precondition===null?void 0:a.precondition},...o}));if(r&&(t.push(Iu.appendMenuItem(Wn.CommandPalette,{command:a,when:a.precondition})),t.push(Iu.addCommand(a))),Array.isArray(s))for(const l of s)t.push(Nu.registerKeybindingRule({...l,id:a.id,when:a.precondition?Ft.and(a.precondition,l.when):l.when}));else s&&t.push(Nu.registerKeybindingRule({...s,id:a.id,when:a.precondition?Ft.and(a.precondition,s.when):s.when}));return{dispose(){us(t)}}}const Nf=Cr("telemetryService");var Mbt,Pbt,Fbt;class yno{constructor(t,n){this.uri=t,this.value=n}}function Cno(e){return Array.isArray(e)}const VT=class VT{constructor(t,n){if(this[Mbt]="ResourceMap",t instanceof VT)this.map=new Map(t.map),this.toKey=n??VT.defaultToKey;else if(Cno(t)){this.map=new Map,this.toKey=n??VT.defaultToKey;for(const[r,o]of t)this.set(r,o)}else this.map=new Map,this.toKey=t??VT.defaultToKey}set(t,n){return this.map.set(this.toKey(t),new yno(t,n)),this}get(t){var n;return(n=this.map.get(this.toKey(t)))==null?void 0:n.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,n){typeof n<"u"&&(t=t.bind(n));for(const[r,o]of this.map)t(o.value,o.uri,this)}*values(){for(const t of this.map.values())yield t.value}*keys(){for(const t of this.map.values())yield t.uri}*entries(){for(const t of this.map.values())yield[t.uri,t.value]}*[(Mbt=Symbol.toStringTag,Symbol.iterator)](){for(const[,t]of this.map)yield[t.uri,t.value]}};VT.defaultToKey=t=>t.toString();let _c=VT;class _no{constructor(t,n){this[Pbt]="ResourceSet",!t||typeof t=="function"?this._map=new _c(t):(this._map=new _c(n),t.forEach(this.add,this))}get size(){return this._map.size}add(t){return this._map.set(t,t),this}clear(){this._map.clear()}delete(t){return this._map.delete(t)}forEach(t,n){this._map.forEach((r,o)=>t.call(n,o,o,this))}has(t){return this._map.has(t)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(Pbt=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}}class Sno{constructor(){this[Fbt]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var t;return(t=this._head)==null?void 0:t.value}get last(){var t;return(t=this._tail)==null?void 0:t.value}has(t){return this._map.has(t)}get(t,n=0){const r=this._map.get(t);if(r)return n!==0&&this.touch(r,n),r.value}set(t,n,r=0){let o=this._map.get(t);if(o)o.value=n,r!==0&&this.touch(o,r);else{switch(o={key:t,value:n,next:void 0,previous:void 0},r){case 0:this.addItemLast(o);break;case 1:this.addItemFirst(o);break;case 2:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(t,o),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){const n=this._map.get(t);if(n)return this._map.delete(t),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,n){const r=this._state;let o=this._head;for(;o;){if(n?t.bind(n)(o.value,o.key,this):t(o.value,o.key,this),this._state!==r)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){const t=this,n=this._state;let r=this._head;const o={[Symbol.iterator](){return o},next(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(r){const s={value:r.key,done:!1};return r=r.next,s}else return{value:void 0,done:!0}}};return o}values(){const t=this,n=this._state;let r=this._head;const o={[Symbol.iterator](){return o},next(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(r){const s={value:r.value,done:!1};return r=r.next,s}else return{value:void 0,done:!0}}};return o}entries(){const t=this,n=this._state;let r=this._head;const o={[Symbol.iterator](){return o},next(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(r){const s={value:[r.key,r.value],done:!1};return r=r.next,s}else return{value:void 0,done:!0}}};return o}[(Fbt=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._head,r=this.size;for(;n&&r>t;)this._map.delete(n.key),n=n.next,r--;this._head=n,this._size=r,n&&(n.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._tail,r=this.size;for(;n&&r>t;)this._map.delete(n.key),n=n.previous,r--;this._tail=n,this._size=r,n&&(n.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{const n=t.next,r=t.previous;if(!n||!r)throw new Error("Invalid list");n.previous=r,r.next=n}t.next=void 0,t.previous=void 0,this._state++}touch(t,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==1&&n!==2)){if(n===1){if(t===this._head)return;const r=t.next,o=t.previous;t===this._tail?(o.next=void 0,this._tail=o):(r.previous=o,o.next=r),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(n===2){if(t===this._tail)return;const r=t.next,o=t.previous;t===this._head?(r.previous=void 0,this._head=r):(r.previous=o,o.next=r),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){const t=[];return this.forEach((n,r)=>{t.push([r,n])}),t}fromJSON(t){this.clear();for(const[n,r]of t)this.set(n,r)}}class Lno extends Sno{constructor(t,n=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get(t,n=2){return super.get(t,n)}peek(t){return super.get(t,0)}set(t,n){return super.set(t,n,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class wp extends Lno{constructor(t,n=1){super(t,n)}trim(t){this.trimOld(t)}set(t,n){return super.set(t,n),this.checkTrim(),this}}class xno{constructor(t){if(this._m1=new Map,this._m2=new Map,t)for(const[n,r]of t)this.set(n,r)}clear(){this._m1.clear(),this._m2.clear()}set(t,n){this._m1.set(t,n),this._m2.set(n,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){const n=this._m1.get(t);return n===void 0?!1:(this._m1.delete(t),this._m2.delete(n),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class BEn{constructor(){this.map=new Map}add(t,n){let r=this.map.get(t);r||(r=new Set,this.map.set(t,r)),r.add(n)}delete(t,n){const r=this.map.get(t);r&&(r.delete(n),r.size===0&&this.map.delete(t))}forEach(t,n){const r=this.map.get(t);r&&r.forEach(n)}}class Qbe{constructor(){this._data=new Map}set(t,...n){let r=this._data;for(let o=0;o{let o="";for(const[s,a]of n)o+=`${" ".repeat(r)}${s}: `,a instanceof Map?o+=` +Received: '{1}'.`,t,aX.getLexeme(n)),s=n.offset,a=aX.getLexeme(n);return this._parsingErrors.push({message:o,offset:s,lexeme:a,additionalInfo:r}),RO._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},RO._parseError=new Error,RO);const hat=class hat{static false(){return hm.INSTANCE}static true(){return p1.INSTANCE}static has(t){return bI.create(t)}static equals(t,n){return $z.create(t,n)}static notEquals(t,n){return _be.create(t,n)}static regex(t,n){return YK.create(t,n)}static in(t,n){return ybe.create(t,n)}static notIn(t,n){return Cbe.create(t,n)}static not(t){return wI.create(t)}static and(...t){return aQ.create(t,null,!0)}static or(...t){return vS.create(t,null,!0)}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};hat._parser=new kno({regexParsingWithErrorRecovery:!1});let Ft=hat;function vno(e,t){const n=e?e.substituteConstants():void 0,r=t?t.substituteConstants():void 0;return!n&&!r?!0:!n||!r?!1:n.equals(r)}function cZ(e,t){return e.cmp(t)}const bve=class bve{constructor(){this.type=0}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!1}serialize(){return"false"}keys(){return[]}negate(){return p1.INSTANCE}};bve.INSTANCE=new bve;let hm=bve;const wve=class wve{constructor(){this.type=1}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!0}serialize(){return"true"}keys(){return[]}negate(){return hm.INSTANCE}};wve.INSTANCE=new wve;let p1=wve;class bI{static create(t,n=null){const r=Df.get(t);return typeof r=="boolean"?r?p1.INSTANCE:hm.INSTANCE:new bI(t,n)}constructor(t,n){this.key=t,this.negated=n,this.type=2}cmp(t){return t.type!==this.type?this.type-t.type:DEn(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){const t=Df.get(this.key);return typeof t=="boolean"?t?p1.INSTANCE:hm.INSTANCE:this}evaluate(t){return!!t.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=wI.create(this.key,this)),this.negated}}class $z{static create(t,n,r=null){if(typeof n=="boolean")return n?bI.create(t,r):wI.create(t,r);const o=Df.get(t);return typeof o=="boolean"?n===(o?"true":"false")?p1.INSTANCE:hm.INSTANCE:new $z(t,n,r)}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=4}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){const t=Df.get(this.key);if(typeof t=="boolean"){const n=t?"true":"false";return this.value===n?p1.INSTANCE:hm.INSTANCE}return this}evaluate(t){return t.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=_be.create(this.key,this.value,this)),this.negated}}class ybe{static create(t,n){return new ybe(t,n)}constructor(t,n){this.key=t,this.valueKey=n,this.type=10,this.negated=null}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.valueKey,t.key,t.valueKey)}equals(t){return t.type===this.type?this.key===t.key&&this.valueKey===t.valueKey:!1}substituteConstants(){return this}evaluate(t){const n=t.getValue(this.valueKey),r=t.getValue(this.key);return Array.isArray(n)?n.includes(r):typeof r=="string"&&typeof n=="object"&&n!==null?ano.call(n,r):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=Cbe.create(this.key,this.valueKey)),this.negated}}class Cbe{static create(t,n){return new Cbe(t,n)}constructor(t,n){this.key=t,this.valueKey=n,this.type=11,this._negated=ybe.create(t,n)}cmp(t){return t.type!==this.type?this.type-t.type:this._negated.cmp(t._negated)}equals(t){return t.type===this.type?this._negated.equals(t._negated):!1}substituteConstants(){return this}evaluate(t){return!this._negated.evaluate(t)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class _be{static create(t,n,r=null){if(typeof n=="boolean")return n?wI.create(t,r):bI.create(t,r);const o=Df.get(t);return typeof o=="boolean"?n===(o?"true":"false")?hm.INSTANCE:p1.INSTANCE:new _be(t,n,r)}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=5}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){const t=Df.get(this.key);if(typeof t=="boolean"){const n=t?"true":"false";return this.value===n?hm.INSTANCE:p1.INSTANCE}return this}evaluate(t){return t.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=$z.create(this.key,this.value,this)),this.negated}}class wI{static create(t,n=null){const r=Df.get(t);return typeof r=="boolean"?r?hm.INSTANCE:p1.INSTANCE:new wI(t,n)}constructor(t,n){this.key=t,this.negated=n,this.type=3}cmp(t){return t.type!==this.type?this.type-t.type:DEn(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){const t=Df.get(this.key);return typeof t=="boolean"?t?hm.INSTANCE:p1.INSTANCE:this}evaluate(t){return!t.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=bI.create(this.key,this)),this.negated}}function Sbe(e,t){if(typeof e=="string"){const n=parseFloat(e);isNaN(n)||(e=n)}return typeof e=="string"||typeof e=="number"?t(e):hm.INSTANCE}class Lbe{static create(t,n,r=null){return Sbe(n,o=>new Lbe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=12}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Tbe.create(this.key,this.value,this)),this.negated}}class xbe{static create(t,n,r=null){return Sbe(n,o=>new xbe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=13}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Ebe.create(this.key,this.value,this)),this.negated}}class Ebe{static create(t,n,r=null){return Sbe(n,o=>new Ebe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=14}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))new Tbe(t,o,r))}constructor(t,n,r){this.key=t,this.value=n,this.negated=r,this.type=15}cmp(t){return t.type!==this.type?this.type-t.type:OI(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Lbe.create(this.key,this.value,this)),this.negated}}class YK{static create(t,n){return new YK(t,n)}constructor(t,n){this.key=t,this.regexp=n,this.type=7,this.negated=null}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.keyt.key)return 1;const n=this.regexp?this.regexp.source:"",r=t.regexp?t.regexp.source:"";return nr?1:0}equals(t){if(t.type===this.type){const n=this.regexp?this.regexp.source:"",r=t.regexp?t.regexp.source:"";return this.key===t.key&&n===r}return!1}substituteConstants(){return this}evaluate(t){const n=t.getValue(this.key);return this.regexp?this.regexp.test(n):!1}serialize(){const t=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${t}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=JJe.create(this)),this.negated}}class JJe{static create(t){return new JJe(t)}constructor(t){this._actual=t,this.type=8}cmp(t){return t.type!==this.type?this.type-t.type:this._actual.cmp(t._actual)}equals(t){return t.type===this.type?this._actual.equals(t._actual):!1}substituteConstants(){return this}evaluate(t){return!this._actual.evaluate(t)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function QEn(e){let t=null;for(let n=0,r=e.length;nt.expr.length)return 1;for(let n=0,r=this.expr.length;n1;){const a=o[o.length-1];if(a.type!==9)break;o.pop();const l=o.pop(),d=o.length===0,u=vS.create(a.expr.map(h=>aQ.create([h,l],null,r)),null,d);u&&(o.push(u),o.sort(cZ))}if(o.length===1)return o[0];if(r){for(let a=0;at.serialize()).join(" && ")}keys(){const t=[];for(const n of this.expr)t.push(...n.keys());return t}negate(){if(!this.negated){const t=[];for(const n of this.expr)t.push(n.negate());this.negated=vS.create(t,this,!0)}return this.negated}}class vS{static create(t,n,r){return vS._normalizeArr(t,n,r)}constructor(t,n){this.expr=t,this.negated=n,this.type=9}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.lengtht.expr.length)return 1;for(let n=0,r=this.expr.length;nt.serialize()).join(" || ")}keys(){const t=[];for(const n of this.expr)t.push(...n.keys());return t}negate(){if(!this.negated){const t=[];for(const n of this.expr)t.push(n.negate());for(;t.length>1;){const n=t.shift(),r=t.shift(),o=[];for(const s of Rbt(n))for(const a of Rbt(r))o.push(aQ.create([s,a],null,!1));t.unshift(vS.create(o,null,!1))}this.negated=vS.create(t,this,!0)}return this.negated}}const YN=class YN extends bI{static all(){return YN._info.values()}constructor(t,n,r){super(t,null),this._defaultValue=n,typeof r=="object"?YN._info.push({...r,key:t}):r!==!0&&YN._info.push({key:t,description:r,type:n!=null?typeof n:void 0})}bindTo(t){return t.createKey(this.key,this._defaultValue)}getValue(t){return t.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(t){return $z.create(this.key,t)}};YN._info=[];let yn=YN;const Qi=Cr("contextKeyService");function DEn(e,t){return et?1:0}function OI(e,t,n,r){return en?1:tr?1:0}function ANe(e,t){if(e.type===0||t.type===1)return!0;if(e.type===9)return t.type===9?Bbt(e.expr,t.expr):!1;if(t.type===9){for(const n of t.expr)if(ANe(e,n))return!0;return!1}if(e.type===6){if(t.type===6)return Bbt(t.expr,e.expr);for(const n of e.expr)if(ANe(n,t))return!0;return!1}return e.equals(t)}function Bbt(e,t){let n=0,r=0;for(;n{tR(t.dispose)&&t.dispose()}),this.data.clear()}}const Ql=new Ano;class eet{constructor(){this._coreKeybindings=new bg,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(t){if(b0===1){if(t&&t.win)return t.win}else if(b0===2){if(t&&t.mac)return t.mac}else if(t&&t.linux)return t.linux;return t}registerKeybindingRule(t){const n=eet.bindToCurrentPlatform(t),r=new xt;if(n&&n.primary){const o=XFe(n.primary,b0);o&&r.add(this._registerDefaultKeybinding(o,t.id,t.args,t.weight,0,t.when))}if(n&&Array.isArray(n.secondary))for(let o=0,s=n.secondary.length;o{l(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(bno)),this._cachedMergedKeybindings.slice(0)}}const Nu=new eet,pno={EditorModes:"platform.keybindingsRegistry"};Ql.add(pno.EditorModes,Nu);function bno(e,t){if(e.weight1!==t.weight1)return e.weight1-t.weight1;if(e.command&&t.command){if(e.commandt.command)return 1}return e.weight2-t.weight2}var wno=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Ibt=function(e,t){return function(n,r){t(n,r,e)}},que;function LU(e){return e.command!==void 0}function Ono(e){return e.submenu!==void 0}const je=class je{constructor(t){if(je._instances.has(t))throw new TypeError(`MenuId with identifier '${t}' already exists. Use MenuId.for(ident) or a unique identifier`);je._instances.set(t,this),this.id=t}};je._instances=new Map,je.CommandPalette=new je("CommandPalette"),je.DebugBreakpointsContext=new je("DebugBreakpointsContext"),je.DebugCallStackContext=new je("DebugCallStackContext"),je.DebugConsoleContext=new je("DebugConsoleContext"),je.DebugVariablesContext=new je("DebugVariablesContext"),je.NotebookVariablesContext=new je("NotebookVariablesContext"),je.DebugHoverContext=new je("DebugHoverContext"),je.DebugWatchContext=new je("DebugWatchContext"),je.DebugToolBar=new je("DebugToolBar"),je.DebugToolBarStop=new je("DebugToolBarStop"),je.DebugDisassemblyContext=new je("DebugDisassemblyContext"),je.DebugCallStackToolbar=new je("DebugCallStackToolbar"),je.DebugCreateConfiguration=new je("DebugCreateConfiguration"),je.EditorContext=new je("EditorContext"),je.SimpleEditorContext=new je("SimpleEditorContext"),je.EditorContent=new je("EditorContent"),je.EditorLineNumberContext=new je("EditorLineNumberContext"),je.EditorContextCopy=new je("EditorContextCopy"),je.EditorContextPeek=new je("EditorContextPeek"),je.EditorContextShare=new je("EditorContextShare"),je.EditorTitle=new je("EditorTitle"),je.CompactWindowEditorTitle=new je("CompactWindowEditorTitle"),je.EditorTitleRun=new je("EditorTitleRun"),je.EditorTitleContext=new je("EditorTitleContext"),je.EditorTitleContextShare=new je("EditorTitleContextShare"),je.EmptyEditorGroup=new je("EmptyEditorGroup"),je.EmptyEditorGroupContext=new je("EmptyEditorGroupContext"),je.EditorTabsBarContext=new je("EditorTabsBarContext"),je.EditorTabsBarShowTabsSubmenu=new je("EditorTabsBarShowTabsSubmenu"),je.EditorTabsBarShowTabsZenModeSubmenu=new je("EditorTabsBarShowTabsZenModeSubmenu"),je.EditorActionsPositionSubmenu=new je("EditorActionsPositionSubmenu"),je.EditorSplitMoveSubmenu=new je("EditorSplitMoveSubmenu"),je.ExplorerContext=new je("ExplorerContext"),je.ExplorerContextShare=new je("ExplorerContextShare"),je.ExtensionContext=new je("ExtensionContext"),je.ExtensionEditorContextMenu=new je("ExtensionEditorContextMenu"),je.GlobalActivity=new je("GlobalActivity"),je.CommandCenter=new je("CommandCenter"),je.CommandCenterCenter=new je("CommandCenterCenter"),je.LayoutControlMenuSubmenu=new je("LayoutControlMenuSubmenu"),je.LayoutControlMenu=new je("LayoutControlMenu"),je.MenubarMainMenu=new je("MenubarMainMenu"),je.MenubarAppearanceMenu=new je("MenubarAppearanceMenu"),je.MenubarDebugMenu=new je("MenubarDebugMenu"),je.MenubarEditMenu=new je("MenubarEditMenu"),je.MenubarCopy=new je("MenubarCopy"),je.MenubarFileMenu=new je("MenubarFileMenu"),je.MenubarGoMenu=new je("MenubarGoMenu"),je.MenubarHelpMenu=new je("MenubarHelpMenu"),je.MenubarLayoutMenu=new je("MenubarLayoutMenu"),je.MenubarNewBreakpointMenu=new je("MenubarNewBreakpointMenu"),je.PanelAlignmentMenu=new je("PanelAlignmentMenu"),je.PanelPositionMenu=new je("PanelPositionMenu"),je.ActivityBarPositionMenu=new je("ActivityBarPositionMenu"),je.MenubarPreferencesMenu=new je("MenubarPreferencesMenu"),je.MenubarRecentMenu=new je("MenubarRecentMenu"),je.MenubarSelectionMenu=new je("MenubarSelectionMenu"),je.MenubarShare=new je("MenubarShare"),je.MenubarSwitchEditorMenu=new je("MenubarSwitchEditorMenu"),je.MenubarSwitchGroupMenu=new je("MenubarSwitchGroupMenu"),je.MenubarTerminalMenu=new je("MenubarTerminalMenu"),je.MenubarTerminalSuggestStatusMenu=new je("MenubarTerminalSuggestStatusMenu"),je.MenubarViewMenu=new je("MenubarViewMenu"),je.MenubarHomeMenu=new je("MenubarHomeMenu"),je.OpenEditorsContext=new je("OpenEditorsContext"),je.OpenEditorsContextShare=new je("OpenEditorsContextShare"),je.ProblemsPanelContext=new je("ProblemsPanelContext"),je.SCMInputBox=new je("SCMInputBox"),je.SCMChangeContext=new je("SCMChangeContext"),je.SCMResourceContext=new je("SCMResourceContext"),je.SCMResourceContextShare=new je("SCMResourceContextShare"),je.SCMResourceFolderContext=new je("SCMResourceFolderContext"),je.SCMResourceGroupContext=new je("SCMResourceGroupContext"),je.SCMSourceControl=new je("SCMSourceControl"),je.SCMSourceControlInline=new je("SCMSourceControlInline"),je.SCMSourceControlTitle=new je("SCMSourceControlTitle"),je.SCMHistoryTitle=new je("SCMHistoryTitle"),je.SCMHistoryItemContext=new je("SCMHistoryItemContext"),je.SCMHistoryItemChangeContext=new je("SCMHistoryItemChangeContext"),je.SCMHistoryItemRefContext=new je("SCMHistoryItemRefContext"),je.SCMArtifactGroupContext=new je("SCMArtifactGroupContext"),je.SCMArtifactContext=new je("SCMArtifactContext"),je.SCMQuickDiffDecorations=new je("SCMQuickDiffDecorations"),je.SCMTitle=new je("SCMTitle"),je.SearchContext=new je("SearchContext"),je.SearchActionMenu=new je("SearchActionContext"),je.StatusBarWindowIndicatorMenu=new je("StatusBarWindowIndicatorMenu"),je.StatusBarRemoteIndicatorMenu=new je("StatusBarRemoteIndicatorMenu"),je.StickyScrollContext=new je("StickyScrollContext"),je.TestItem=new je("TestItem"),je.TestItemGutter=new je("TestItemGutter"),je.TestProfilesContext=new je("TestProfilesContext"),je.TestMessageContext=new je("TestMessageContext"),je.TestMessageContent=new je("TestMessageContent"),je.TestPeekElement=new je("TestPeekElement"),je.TestPeekTitle=new je("TestPeekTitle"),je.TestCallStack=new je("TestCallStack"),je.TestCoverageFilterItem=new je("TestCoverageFilterItem"),je.TouchBarContext=new je("TouchBarContext"),je.TitleBar=new je("TitleBar"),je.TitleBarContext=new je("TitleBarContext"),je.TitleBarTitleContext=new je("TitleBarTitleContext"),je.TunnelContext=new je("TunnelContext"),je.TunnelPrivacy=new je("TunnelPrivacy"),je.TunnelProtocol=new je("TunnelProtocol"),je.TunnelPortInline=new je("TunnelInline"),je.TunnelTitle=new je("TunnelTitle"),je.TunnelLocalAddressInline=new je("TunnelLocalAddressInline"),je.TunnelOriginInline=new je("TunnelOriginInline"),je.ViewItemContext=new je("ViewItemContext"),je.ViewContainerTitle=new je("ViewContainerTitle"),je.ViewContainerTitleContext=new je("ViewContainerTitleContext"),je.ViewTitle=new je("ViewTitle"),je.ViewTitleContext=new je("ViewTitleContext"),je.CommentEditorActions=new je("CommentEditorActions"),je.CommentThreadTitle=new je("CommentThreadTitle"),je.CommentThreadActions=new je("CommentThreadActions"),je.CommentThreadAdditionalActions=new je("CommentThreadAdditionalActions"),je.CommentThreadTitleContext=new je("CommentThreadTitleContext"),je.CommentThreadCommentContext=new je("CommentThreadCommentContext"),je.CommentTitle=new je("CommentTitle"),je.CommentActions=new je("CommentActions"),je.CommentsViewThreadActions=new je("CommentsViewThreadActions"),je.InteractiveToolbar=new je("InteractiveToolbar"),je.InteractiveCellTitle=new je("InteractiveCellTitle"),je.InteractiveCellDelete=new je("InteractiveCellDelete"),je.InteractiveCellExecute=new je("InteractiveCellExecute"),je.InteractiveInputExecute=new je("InteractiveInputExecute"),je.InteractiveInputConfig=new je("InteractiveInputConfig"),je.ReplInputExecute=new je("ReplInputExecute"),je.IssueReporter=new je("IssueReporter"),je.NotebookToolbar=new je("NotebookToolbar"),je.NotebookToolbarContext=new je("NotebookToolbarContext"),je.NotebookStickyScrollContext=new je("NotebookStickyScrollContext"),je.NotebookCellTitle=new je("NotebookCellTitle"),je.NotebookCellDelete=new je("NotebookCellDelete"),je.NotebookCellInsert=new je("NotebookCellInsert"),je.NotebookCellBetween=new je("NotebookCellBetween"),je.NotebookCellListTop=new je("NotebookCellTop"),je.NotebookCellExecute=new je("NotebookCellExecute"),je.NotebookCellExecuteGoTo=new je("NotebookCellExecuteGoTo"),je.NotebookCellExecutePrimary=new je("NotebookCellExecutePrimary"),je.NotebookDiffCellInputTitle=new je("NotebookDiffCellInputTitle"),je.NotebookDiffDocumentMetadata=new je("NotebookDiffDocumentMetadata"),je.NotebookDiffCellMetadataTitle=new je("NotebookDiffCellMetadataTitle"),je.NotebookDiffCellOutputsTitle=new je("NotebookDiffCellOutputsTitle"),je.NotebookOutputToolbar=new je("NotebookOutputToolbar"),je.NotebookOutlineFilter=new je("NotebookOutlineFilter"),je.NotebookOutlineActionMenu=new je("NotebookOutlineActionMenu"),je.NotebookEditorLayoutConfigure=new je("NotebookEditorLayoutConfigure"),je.NotebookKernelSource=new je("NotebookKernelSource"),je.BulkEditTitle=new je("BulkEditTitle"),je.BulkEditContext=new je("BulkEditContext"),je.TimelineItemContext=new je("TimelineItemContext"),je.TimelineTitle=new je("TimelineTitle"),je.TimelineTitleContext=new je("TimelineTitleContext"),je.TimelineFilterSubMenu=new je("TimelineFilterSubMenu"),je.AccountsContext=new je("AccountsContext"),je.SidebarTitle=new je("SidebarTitle"),je.PanelTitle=new je("PanelTitle"),je.AuxiliaryBarTitle=new je("AuxiliaryBarTitle"),je.TerminalInstanceContext=new je("TerminalInstanceContext"),je.TerminalEditorInstanceContext=new je("TerminalEditorInstanceContext"),je.TerminalNewDropdownContext=new je("TerminalNewDropdownContext"),je.TerminalTabContext=new je("TerminalTabContext"),je.TerminalTabEmptyAreaContext=new je("TerminalTabEmptyAreaContext"),je.TerminalStickyScrollContext=new je("TerminalStickyScrollContext"),je.WebviewContext=new je("WebviewContext"),je.InlineCompletionsActions=new je("InlineCompletionsActions"),je.InlineEditsActions=new je("InlineEditsActions"),je.NewFile=new je("NewFile"),je.MergeInput1Toolbar=new je("MergeToolbar1Toolbar"),je.MergeInput2Toolbar=new je("MergeToolbar2Toolbar"),je.MergeBaseToolbar=new je("MergeBaseToolbar"),je.MergeInputResultToolbar=new je("MergeToolbarResultToolbar"),je.InlineSuggestionToolbar=new je("InlineSuggestionToolbar"),je.InlineEditToolbar=new je("InlineEditToolbar"),je.ChatContext=new je("ChatContext"),je.ChatCodeBlock=new je("ChatCodeblock"),je.ChatCompareBlock=new je("ChatCompareBlock"),je.ChatMessageTitle=new je("ChatMessageTitle"),je.ChatHistory=new je("ChatHistory"),je.ChatWelcomeContext=new je("ChatWelcomeContext"),je.ChatMessageFooter=new je("ChatMessageFooter"),je.ChatExecute=new je("ChatExecute"),je.ChatInput=new je("ChatInput"),je.ChatInputSide=new je("ChatInputSide"),je.ChatModePicker=new je("ChatModePicker"),je.ChatEditingWidgetToolbar=new je("ChatEditingWidgetToolbar"),je.ChatEditingEditorContent=new je("ChatEditingEditorContent"),je.ChatEditingEditorHunk=new je("ChatEditingEditorHunk"),je.ChatEditingDeletedNotebookCell=new je("ChatEditingDeletedNotebookCell"),je.ChatInputAttachmentToolbar=new je("ChatInputAttachmentToolbar"),je.ChatEditingWidgetModifiedFilesToolbar=new je("ChatEditingWidgetModifiedFilesToolbar"),je.ChatInputResourceAttachmentContext=new je("ChatInputResourceAttachmentContext"),je.ChatInputSymbolAttachmentContext=new je("ChatInputSymbolAttachmentContext"),je.ChatInlineResourceAnchorContext=new je("ChatInlineResourceAnchorContext"),je.ChatInlineSymbolAnchorContext=new je("ChatInlineSymbolAnchorContext"),je.ChatMessageCheckpoint=new je("ChatMessageCheckpoint"),je.ChatMessageRestoreCheckpoint=new je("ChatMessageRestoreCheckpoint"),je.ChatNewMenu=new je("ChatNewMenu"),je.ChatEditingCodeBlockContext=new je("ChatEditingCodeBlockContext"),je.ChatTitleBarMenu=new je("ChatTitleBarMenu"),je.ChatAttachmentsContext=new je("ChatAttachmentsContext"),je.ChatToolOutputResourceToolbar=new je("ChatToolOutputResourceToolbar"),je.ChatTextEditorMenu=new je("ChatTextEditorMenu"),je.ChatToolOutputResourceContext=new je("ChatToolOutputResourceContext"),je.ChatMultiDiffContext=new je("ChatMultiDiffContext"),je.ChatSessionsMenu=new je("ChatSessionsMenu"),je.ChatSessionsCreateSubMenu=new je("ChatSessionsCreateSubMenu"),je.ChatConfirmationMenu=new je("ChatConfirmationMenu"),je.ChatEditorInlineExecute=new je("ChatEditorInputExecute"),je.ChatEditorInlineInputSide=new je("ChatEditorInputSide"),je.AccessibleView=new je("AccessibleView"),je.MultiDiffEditorFileToolbar=new je("MultiDiffEditorFileToolbar"),je.DiffEditorHunkToolbar=new je("DiffEditorHunkToolbar"),je.DiffEditorSelectionToolbar=new je("DiffEditorSelectionToolbar");let Wn=je;const wA=Cr("menuService"),pq=class pq{static for(t){let n=this._all.get(t);return n||(n=new pq(t),this._all.set(t,n)),n}static merge(t){const n=new Set;for(const r of t)r instanceof pq&&n.add(r.id);return n}constructor(t){this.id=t,this.has=n=>n===t}};pq._all=new Map;let wT=pq;const Iu=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new neo({merge:wT.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(e){return this._commands.set(e.id,e),this._onDidChangeMenu.fire(wT.for(Wn.CommandPalette)),Hn(()=>{this._commands.delete(e.id)&&this._onDidChangeMenu.fire(wT.for(Wn.CommandPalette))})}getCommand(e){return this._commands.get(e)}getCommands(){const e=new Map;return this._commands.forEach((t,n)=>e.set(n,t)),e}appendMenuItem(e,t){let n=this._menuItems.get(e);n||(n=new bg,this._menuItems.set(e,n));const r=n.push(t);return this._onDidChangeMenu.fire(wT.for(e)),Hn(()=>{r(),this._onDidChangeMenu.fire(wT.for(e))})}appendMenuItems(e){const t=new xt;for(const{id:n,item:r}of e)t.add(this.appendMenuItem(n,r));return t}getMenuItems(e){let t;return this._menuItems.has(e)?t=[...this._menuItems.get(e)]:t=[],e===Wn.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(e){const t=new Set;for(const n of e)LU(n)&&(t.add(n.command.id),n.alt&&t.add(n.alt.id));this._commands.forEach((n,r)=>{t.has(r)||e.push({command:n})})}};class uD extends JW{constructor(t,n,r){super(`submenuitem.${t.submenu.id}`,typeof t.title=="string"?t.title:t.title.value,r,"submenu"),this.item=t,this.hideActions=n}}let i2=que=class{static label(t,n){return n!=null&&n.renderShortTitle&&t.shortTitle?typeof t.shortTitle=="string"?t.shortTitle:t.shortTitle.value:typeof t.title=="string"?t.title:t.title.value}constructor(t,n,r,o,s,a,l){var u;this.hideActions=o,this.menuKeybinding=s,this._commandService=l,this.id=t.id,this.label=que.label(t,r),this.tooltip=(typeof t.tooltip=="string"?t.tooltip:(u=t.tooltip)==null?void 0:u.value)??"",this.enabled=!t.precondition||a.contextMatchesRules(t.precondition),this.checked=void 0;let d;if(t.toggled){const h=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=a.contextMatchesRules(h.condition),this.checked&&h.tooltip&&(this.tooltip=typeof h.tooltip=="string"?h.tooltip:h.tooltip.value),this.checked&&fi.isThemeIcon(h.icon)&&(d=h.icon),this.checked&&h.title&&(this.label=typeof h.title=="string"?h.title:h.title.value)}d||(d=fi.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=n?new que(n,void 0,r,o,void 0,a,l):void 0,this._options=r,this.class=d&&fi.asClassName(d)}run(...t){var r,o;let n=[];return(r=this._options)!=null&&r.arg&&(n=[...n,this._options.arg]),(o=this._options)!=null&&o.shouldForwardArgs&&(n=[...n,...t]),this._commandService.executeCommand(this.id,...n)}};i2=que=wno([Ibt(5,Qi),Ibt(6,ba)],i2);class zu{constructor(t){this.desc=t}}function ys(e){const t=[],n=new e,{f1:r,menu:o,keybinding:s,...a}=n.desc;if(uo.getCommand(a.id))throw new Error(`Cannot register two commands with the same id: ${a.id}`);if(t.push(uo.registerCommand({id:a.id,handler:(l,...d)=>n.run(l,...d),metadata:a.metadata??{description:n.desc.title}})),Array.isArray(o))for(const l of o)t.push(Iu.appendMenuItem(l.id,{command:{...a,precondition:l.precondition===null?void 0:a.precondition},...l}));else o&&t.push(Iu.appendMenuItem(o.id,{command:{...a,precondition:o.precondition===null?void 0:a.precondition},...o}));if(r&&(t.push(Iu.appendMenuItem(Wn.CommandPalette,{command:a,when:a.precondition})),t.push(Iu.addCommand(a))),Array.isArray(s))for(const l of s)t.push(Nu.registerKeybindingRule({...l,id:a.id,when:a.precondition?Ft.and(a.precondition,l.when):l.when}));else s&&t.push(Nu.registerKeybindingRule({...s,id:a.id,when:a.precondition?Ft.and(a.precondition,s.when):s.when}));return{dispose(){us(t)}}}const Nf=Cr("telemetryService");var Mbt,Pbt,Fbt;class yno{constructor(t,n){this.uri=t,this.value=n}}function Cno(e){return Array.isArray(e)}const VT=class VT{constructor(t,n){if(this[Mbt]="ResourceMap",t instanceof VT)this.map=new Map(t.map),this.toKey=n??VT.defaultToKey;else if(Cno(t)){this.map=new Map,this.toKey=n??VT.defaultToKey;for(const[r,o]of t)this.set(r,o)}else this.map=new Map,this.toKey=t??VT.defaultToKey}set(t,n){return this.map.set(this.toKey(t),new yno(t,n)),this}get(t){var n;return(n=this.map.get(this.toKey(t)))==null?void 0:n.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,n){typeof n<"u"&&(t=t.bind(n));for(const[r,o]of this.map)t(o.value,o.uri,this)}*values(){for(const t of this.map.values())yield t.value}*keys(){for(const t of this.map.values())yield t.uri}*entries(){for(const t of this.map.values())yield[t.uri,t.value]}*[(Mbt=Symbol.toStringTag,Symbol.iterator)](){for(const[,t]of this.map)yield[t.uri,t.value]}};VT.defaultToKey=t=>t.toString();let _c=VT;class _no{constructor(t,n){this[Pbt]="ResourceSet",!t||typeof t=="function"?this._map=new _c(t):(this._map=new _c(n),t.forEach(this.add,this))}get size(){return this._map.size}add(t){return this._map.set(t,t),this}clear(){this._map.clear()}delete(t){return this._map.delete(t)}forEach(t,n){this._map.forEach((r,o)=>t.call(n,o,o,this))}has(t){return this._map.has(t)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(Pbt=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}}class Sno{constructor(){this[Fbt]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var t;return(t=this._head)==null?void 0:t.value}get last(){var t;return(t=this._tail)==null?void 0:t.value}has(t){return this._map.has(t)}get(t,n=0){const r=this._map.get(t);if(r)return n!==0&&this.touch(r,n),r.value}set(t,n,r=0){let o=this._map.get(t);if(o)o.value=n,r!==0&&this.touch(o,r);else{switch(o={key:t,value:n,next:void 0,previous:void 0},r){case 0:this.addItemLast(o);break;case 1:this.addItemFirst(o);break;case 2:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(t,o),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){const n=this._map.get(t);if(n)return this._map.delete(t),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,n){const r=this._state;let o=this._head;for(;o;){if(n?t.bind(n)(o.value,o.key,this):t(o.value,o.key,this),this._state!==r)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){const t=this,n=this._state;let r=this._head;const o={[Symbol.iterator](){return o},next(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(r){const s={value:r.key,done:!1};return r=r.next,s}else return{value:void 0,done:!0}}};return o}values(){const t=this,n=this._state;let r=this._head;const o={[Symbol.iterator](){return o},next(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(r){const s={value:r.value,done:!1};return r=r.next,s}else return{value:void 0,done:!0}}};return o}entries(){const t=this,n=this._state;let r=this._head;const o={[Symbol.iterator](){return o},next(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(r){const s={value:[r.key,r.value],done:!1};return r=r.next,s}else return{value:void 0,done:!0}}};return o}[(Fbt=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._head,r=this.size;for(;n&&r>t;)this._map.delete(n.key),n=n.next,r--;this._head=n,this._size=r,n&&(n.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._tail,r=this.size;for(;n&&r>t;)this._map.delete(n.key),n=n.previous,r--;this._tail=n,this._size=r,n&&(n.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{const n=t.next,r=t.previous;if(!n||!r)throw new Error("Invalid list");n.previous=r,r.next=n}t.next=void 0,t.previous=void 0,this._state++}touch(t,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==1&&n!==2)){if(n===1){if(t===this._head)return;const r=t.next,o=t.previous;t===this._tail?(o.next=void 0,this._tail=o):(r.previous=o,o.next=r),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(n===2){if(t===this._tail)return;const r=t.next,o=t.previous;t===this._head?(r.previous=void 0,this._head=r):(r.previous=o,o.next=r),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){const t=[];return this.forEach((n,r)=>{t.push([r,n])}),t}fromJSON(t){this.clear();for(const[n,r]of t)this.set(n,r)}}class Lno extends Sno{constructor(t,n=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get(t,n=2){return super.get(t,n)}peek(t){return super.get(t,0)}set(t,n){return super.set(t,n,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class wp extends Lno{constructor(t,n=1){super(t,n)}trim(t){this.trimOld(t)}set(t,n){return super.set(t,n),this.checkTrim(),this}}class xno{constructor(t){if(this._m1=new Map,this._m2=new Map,t)for(const[n,r]of t)this.set(n,r)}clear(){this._m1.clear(),this._m2.clear()}set(t,n){this._m1.set(t,n),this._m2.set(n,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){const n=this._m1.get(t);return n===void 0?!1:(this._m1.delete(t),this._m2.delete(n),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class BEn{constructor(){this.map=new Map}add(t,n){let r=this.map.get(t);r||(r=new Set,this.map.set(t,r)),r.add(n)}delete(t,n){const r=this.map.get(t);r&&(r.delete(n),r.size===0&&this.map.delete(t))}forEach(t,n){const r=this.map.get(t);r&&r.forEach(n)}}class Qbe{constructor(){this._data=new Map}set(t,...n){let r=this._data;for(let o=0;o{let o="";for(const[s,a]of n)o+=`${" ".repeat(r)}${s}: `,a instanceof Map?o+=` `+t(a,r+1):o+=`${a} -`;return o};return t(this._data,0)}}function gx(e){return e===47||e===92}function REn(e){return e.replace(/[\\/]/g,Jc.sep)}function Eno(e){return e.indexOf("/")===-1&&(e=REn(e)),/^[a-zA-Z]:(\/|$)/.test(e)&&(e="/"+e),e}function Nbt(e,t=Jc.sep){if(!e)return"";const n=e.length,r=e.charCodeAt(0);if(gx(r)){if(gx(e.charCodeAt(1))&&!gx(e.charCodeAt(2))){let s=3;const a=s;for(;se.length)return!1;if(n){if(!BJe(e,t))return!1;if(t.length===e.length)return!0;let s=t.length;return t.charAt(t.length-1)===r&&s--,e.charAt(s)===r}return t.charAt(t.length-1)!==r&&(t+=r),e.indexOf(t)===0}function IEn(e){return e>=65&&e<=90||e>=97&&e<=122}function Tno(e,t=mh){return t?IEn(e.charCodeAt(0))&&e.charCodeAt(1)===58:!1}function Ew(e){return Ome(e,!0)}class Qno{constructor(t){this._ignorePathCasing=t}compare(t,n,r=!1){return t===n?0:jK(this.getComparisonKey(t,r),this.getComparisonKey(n,r))}isEqual(t,n,r=!1){return t===n?!0:!t||!n?!1:this.getComparisonKey(t,r)===this.getComparisonKey(n,r)}getComparisonKey(t,n=!1){return t.with({path:this._ignorePathCasing(t)?t.path.toLowerCase():void 0,fragment:n?null:void 0}).toString()}isEqualOrParent(t,n,r=!1){if(t.scheme===n.scheme){if(t.scheme===Ci.file)return pNe(Ew(t),Ew(n),this._ignorePathCasing(t))&&t.query===n.query&&(r||t.fragment===n.fragment);if(jbt(t.authority,n.authority))return pNe(t.path,n.path,this._ignorePathCasing(t),"/")&&t.query===n.query&&(r||t.fragment===n.fragment)}return!1}joinPath(t,...n){return vi.joinPath(t,...n)}basenameOrAuthority(t){return hA(t)||t.authority}basename(t){return Jc.basename(t.path)}extname(t){return Jc.extname(t.path)}dirname(t){if(t.path.length===0)return t;let n;return t.scheme===Ci.file?n=vi.file(Xue(Ew(t))).path:(n=Jc.dirname(t.path),t.authority&&n.length&&n.charCodeAt(0)!==47&&(console.error(`dirname("${t.toString})) resulted in a relative path`),n="/")),t.with({path:n})}normalizePath(t){if(!t.path.length)return t;let n;return t.scheme===Ci.file?n=vi.file(J6n(Ew(t))).path:n=Jc.normalize(t.path),t.with({path:n})}relativePath(t,n){if(t.scheme!==n.scheme||!jbt(t.authority,n.authority))return;if(t.scheme===Ci.file){const s=Neo(Ew(t),Ew(n));return mh?REn(s):s}let r=t.path||"/";const o=n.path||"/";if(this._ignorePathCasing(t)){let s=0;for(const a=Math.min(r.length,o.length);sNbt(r).length&&r[r.length-1]===n}else{const r=t.path;return r.length>1&&r.charCodeAt(r.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(t.fsPath)}}removeTrailingPathSeparator(t,n=o3){return Wbt(t,n)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,n=o3){let r=!1;if(t.scheme===Ci.file){const o=Ew(t);r=o!==void 0&&o.length===Nbt(o).length&&o[o.length-1]===n}else{n="/";const o=t.path;r=o.length===1&&o.charCodeAt(o.length-1)===47}return!r&&!Wbt(t,n)?t.with({path:t.path+"/"}):t}}const Wa=new Qno(()=>!1),C6=Wa.isEqual.bind(Wa);Wa.isEqualOrParent.bind(Wa);Wa.getComparisonKey.bind(Wa);const Dno=Wa.basenameOrAuthority.bind(Wa),hA=Wa.basename.bind(Wa),Bno=Wa.extname.bind(Wa),Dbe=Wa.dirname.bind(Wa),MEn=Wa.joinPath.bind(Wa),Rno=Wa.normalizePath.bind(Wa),Ino=Wa.relativePath.bind(Wa),Ubt=Wa.resolvePath.bind(Wa);Wa.isAbsolutePath.bind(Wa);const jbt=Wa.isEqualAuthority.bind(Wa),Wbt=Wa.hasTrailingPathSeparator.bind(Wa);Wa.removeTrailingPathSeparator.bind(Wa);Wa.addTrailingPathSeparator.bind(Wa);var _6;(function(e){e.META_DATA_LABEL="label",e.META_DATA_DESCRIPTION="description",e.META_DATA_SIZE="size",e.META_DATA_MIME="mime";function t(n){const r=new Map;n.path.substring(n.path.indexOf(";")+1,n.path.lastIndexOf(";")).split(";").forEach(a=>{const[l,d]=a.split(":");l&&d&&r.set(l,d)});const s=n.path.substring(0,n.path.indexOf(";"));return s&&r.set(e.META_DATA_MIME,s),r}e.parseMetaData=t})(_6||(_6={}));const va=Cr("logService"),PEn=Cr("loggerService");var au;(function(e){e[e.Off=0]="Off",e[e.Trace=1]="Trace",e[e.Debug=2]="Debug",e[e.Info=3]="Info",e[e.Warning=4]="Warning",e[e.Error=5]="Error"})(au||(au={}));const FEn=au.Info;function NEn(e,t){return e!==au.Off&&e<=t}class UEn extends ft{constructor(){super(...arguments),this.level=FEn,this._onDidChangeLogLevel=this._register(new at)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(t){this.level!==t&&(this.level=t,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(t){return NEn(this.level,t)}canLog(t){return this._store.isDisposed?!1:this.checkLogLevel(t)}}let Mno=class extends UEn{constructor(t=FEn,n=!0){super(),this.useColors=n,this.setLevel(t)}trace(t,...n){this.canLog(au.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",t,...n):console.log(t,...n))}debug(t,...n){this.canLog(au.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",t,...n):console.log(t,...n))}info(t,...n){this.canLog(au.Info)&&(this.useColors?console.log("%c INFO","color: #33f",t,...n):console.log(t,...n))}warn(t,...n){this.canLog(au.Warning)&&(this.useColors?console.warn("%c WARN","color: #993",t,...n):console.log(t,...n))}error(t,...n){this.canLog(au.Error)&&(this.useColors?console.error("%c ERR","color: #f33",t,...n):console.error(t,...n))}};class Pno extends UEn{constructor(t){super(),this.loggers=t,t.length&&this.setLevel(t[0].getLevel())}setLevel(t){for(const n of this.loggers)n.setLevel(t);super.setLevel(t)}trace(t,...n){for(const r of this.loggers)r.trace(t,...n)}debug(t,...n){for(const r of this.loggers)r.debug(t,...n)}info(t,...n){for(const r of this.loggers)r.info(t,...n)}warn(t,...n){for(const r of this.loggers)r.warn(t,...n)}error(t,...n){for(const r of this.loggers)r.error(t,...n)}dispose(){for(const t of this.loggers)t.dispose();super.dispose()}}class Fno extends ft{constructor(t,n,r){if(super(),this.logLevel=t,this.logsHome=n,this._loggers=new _c,this._onDidChangeLoggers=this._register(new at),this._onDidChangeVisibility=this._register(new at),r)for(const o of r)this._loggers.set(o.resource,{logger:void 0,info:o})}getLoggerEntry(t){return fu(t)?[...this._loggers.values()].find(n=>n.info.id===t):this._loggers.get(t)}createLogger(t,n){var d;const r=this.toResource(t),o=fu(t)?t:(n==null?void 0:n.id)??Lie(r.toString()).toString(16);let s=(d=this._loggers.get(r))==null?void 0:d.logger;const a=(n==null?void 0:n.logLevel)==="always"?au.Trace:n==null?void 0:n.logLevel;s||(s=this.doCreateLogger(r,a??this.getLogLevel(r)??this.logLevel,{...n,id:o}));const l={logger:s,info:{resource:r,id:o,logLevel:a,name:n==null?void 0:n.name,hidden:n==null?void 0:n.hidden,group:n==null?void 0:n.group,extensionId:n==null?void 0:n.extensionId,when:n==null?void 0:n.when}};return this.registerLogger(l.info),this._loggers.set(r,l),s}toResource(t){return fu(t)?MEn(this.logsHome,`${t}.log`):t}setVisibility(t,n){const r=this.getLoggerEntry(t);r&&n!==!r.info.hidden&&(r.info.hidden=!n,this._loggers.set(r.info.resource,r),this._onDidChangeVisibility.fire([r.info.resource,n]))}getLogLevel(t){var r;let n;return t&&(n=(r=this._loggers.get(t))==null?void 0:r.info.logLevel),n??this.logLevel}registerLogger(t){const n=this._loggers.get(t.resource);n?n.info.hidden!==t.hidden&&this.setVisibility(t.resource,!t.hidden):(this._loggers.set(t.resource,{info:t,logger:void 0}),this._onDidChangeLoggers.fire({added:[t],removed:[]}))}dispose(){this._loggers.forEach(t=>{var n;return(n=t.logger)==null?void 0:n.dispose()}),this._loggers.clear(),super.dispose()}}class Nno{constructor(){this.onDidChangeLogLevel=new at().event}setLevel(t){}getLevel(){return au.Info}trace(t,...n){}debug(t,...n){}info(t,...n){}warn(t,...n){}error(t,...n){}dispose(){}}class Uno extends Fno{constructor(){super(au.Off,vi.parse("log:///log"))}doCreateLogger(t,n,r){return new Nno}}function jno(e){switch(e){case au.Trace:return"trace";case au.Debug:return"debug";case au.Info:return"info";case au.Warning:return"warn";case au.Error:return"error";case au.Off:return"off"}}new yn("logLevel",jno(au.Info));const bq=class bq{static getRegisteredCommands(){return[...bq.REGISTERED_COMMANDS]}static registerCommand(t){bq.REGISTERED_COMMANDS.add(t)}};bq.REGISTERED_COMMANDS=new Set;let Tme=bq,Bbe=class{constructor(t){this.id=t.id,this.precondition=t.precondition,this._kbOpts=t.kbOpts,this._menuOpts=t.menuOpts,this.metadata=t.metadata,this.canTriggerInlineEdits=t.canTriggerInlineEdits}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const t=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const n of t){let r=n.kbExpr;this.precondition&&(r?r=Ft.and(r,this.precondition):r=this.precondition);const o={id:this.id,weight:n.weight,args:n.args,when:r,primary:n.primary,secondary:n.secondary,win:n.win,linux:n.linux,mac:n.mac};Nu.registerKeybindingRule(o)}}co.registerCommand({id:this.id,handler:(t,n)=>this.runCommand(t,n),metadata:this.metadata}),this.canTriggerInlineEdits&&Tme.registerCommand(this.id)}_registerMenuItem(t){Iu.appendMenuItem(t.menuId,{group:t.group,command:{id:this.id,title:t.title,icon:t.icon,precondition:this.precondition},when:t.when,order:t.order})}};class Xz extends Bbe{constructor(){super(...arguments),this._implementations=[]}addImplementation(t,n,r,o){return this._implementations.push({priority:t,name:n,implementation:r,when:o}),this._implementations.sort((s,a)=>a.priority-s.priority),{dispose:()=>{for(let s=0;s{if(l.get(Qi).contextMatchesRules(r??void 0))return o(l,a,n)})}runCommand(t,n){return $d.runEditorCommand(t,n,this.precondition,(r,o,s)=>this.runEditorCommand(r,o,s))}}class Bn extends $d{static convertOptions(t){let n;Array.isArray(t.menuOpts)?n=t.menuOpts:t.menuOpts?n=[t.menuOpts]:n=[];function r(o){return o.menuId||(o.menuId=Wn.EditorContext),o.title||(o.title=typeof t.label=="string"?t.label:t.label.value),o.when=Ft.and(t.precondition,o.when),o}return Array.isArray(t.contextMenuOpts)?n.push(...t.contextMenuOpts.map(r)):t.contextMenuOpts&&n.push(r(t.contextMenuOpts)),t.menuOpts=n,t}constructor(t){super(Bn.convertOptions(t)),typeof t.label=="string"?(this.label=t.label,this.alias=t.alias??t.label):(this.label=t.label.value,this.alias=t.alias??t.label.original)}runEditorCommand(t,n,r){return this.reportTelemetry(t,n),this.run(t,n,r||{})}reportTelemetry(t,n){t.get(Nf).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class Rbe extends Bn{constructor(){super(...arguments),this._implementations=[]}addImplementation(t,n){return this._implementations.push([t,n]),this._implementations.sort((r,o)=>o[0]-r[0]),{dispose:()=>{for(let r=0;r{var u;const a=s.get(Qi),l=s.get(va);if(!a.contextMatchesRules(this.desc.precondition??void 0)){l.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(u=this.desc.precondition)==null?void 0:u.serialize());return}return this.runEditorCommand(s,o,...n)})}}function _1(e,t){co.registerCommand(e,function(n,...r){const o=n.get(Yn),[s,a]=r;Oo(vi.isUri(s)),Oo(it.isIPosition(a));const l=n.get(ml).getModel(s);if(l){const d=it.lift(a);return o.invokeFunction(t,l,d,...r.slice(2))}return n.get(Dg).createModelReference(s).then(d=>new Promise((u,h)=>{try{const g=o.invokeFunction(t,d.object.textEditorModel,it.lift(a),r.slice(2));u(g)}catch(g){h(g)}}).finally(()=>{d.dispose()}))})}function On(e){return Dv.INSTANCE.registerEditorCommand(e),e}function un(e){const t=new e;return Dv.INSTANCE.registerEditorAction(t),t}function Ibe(e){return Dv.INSTANCE.registerEditorAction(e),e}function Wno(e){Dv.INSTANCE.registerEditorAction(e)}function mo(e,t,n){Dv.INSTANCE.registerEditorContribution(e,t,n)}var xU;(function(e){function t(a){return Dv.INSTANCE.getEditorCommand(a)}e.getEditorCommand=t;function n(){return Dv.INSTANCE.getEditorActions()}e.getEditorActions=n;function r(){return Dv.INSTANCE.getEditorContributions()}e.getEditorContributions=r;function o(a){return Dv.INSTANCE.getEditorContributions().filter(l=>a.indexOf(l.id)>=0)}e.getSomeEditorContributions=o;function s(){return Dv.INSTANCE.getDiffEditorContributions()}e.getDiffEditorContributions=s})(xU||(xU={}));const Vno={EditorCommonContributions:"editor.contributions"},Ove=class Ove{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(t,n,r){this.editorContributions.push({id:t,ctor:n,instantiation:r})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(t){t.register(),this.editorActions.push(t)}getEditorActions(){return this.editorActions}registerEditorCommand(t){t.register(),this.editorCommands[t.id]=t}getEditorCommand(t){return this.editorCommands[t]||null}};Ove.INSTANCE=new Ove;let Dv=Ove;Ql.add(Vno.EditorCommonContributions,Dv.INSTANCE);function Tie(e){return e.register(),e}const WEn=Tie(new Xz({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:Wn.MenubarEditMenu,group:"1_do",title:U(69,"&&Undo"),order:1},{menuId:Wn.CommandPalette,group:"",title:U(70,"Undo"),order:1},{menuId:Wn.SimpleEditorContext,group:"1_do",title:U(71,"Undo"),order:1}]}));Tie(new jEn(WEn,{id:"default:undo",precondition:void 0}));const VEn=Tie(new Xz({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:Wn.MenubarEditMenu,group:"1_do",title:U(72,"&&Redo"),order:2},{menuId:Wn.CommandPalette,group:"",title:U(73,"Redo"),order:1},{menuId:Wn.SimpleEditorContext,group:"1_do",title:U(74,"Redo"),order:2}]}));Tie(new jEn(VEn,{id:"default:redo",precondition:void 0}));const zno=Tie(new Xz({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:Wn.MenubarSelectionMenu,group:"1_basic",title:U(75,"&&Select All"),order:1},{menuId:Wn.CommandPalette,group:"",title:U(76,"Select All"),order:1},{menuId:Wn.SimpleEditorContext,group:"9_select",title:U(77,"Select All"),order:1}]}));let Ee=class eh{constructor(t,n,r,o){t>r||t===r&&n>o?(this.startLineNumber=r,this.startColumn=o,this.endLineNumber=t,this.endColumn=n):(this.startLineNumber=t,this.startColumn=n,this.endLineNumber=r,this.endColumn=o)}isEmpty(){return eh.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return eh.containsPosition(this,t)}static containsPosition(t,n){return!(n.lineNumbert.endLineNumber||n.lineNumber===t.startLineNumber&&n.columnt.endColumn)}static strictContainsPosition(t,n){return!(n.lineNumbert.endLineNumber||n.lineNumber===t.startLineNumber&&n.column<=t.startColumn||n.lineNumber===t.endLineNumber&&n.column>=t.endColumn)}containsRange(t){return eh.containsRange(this,t)}static containsRange(t,n){return!(n.startLineNumbert.endLineNumber||n.endLineNumber>t.endLineNumber||n.startLineNumber===t.startLineNumber&&n.startColumnt.endColumn)}strictContainsRange(t){return eh.strictContainsRange(this,t)}static strictContainsRange(t,n){return!(n.startLineNumbert.endLineNumber||n.endLineNumber>t.endLineNumber||n.startLineNumber===t.startLineNumber&&n.startColumn<=t.startColumn||n.endLineNumber===t.endLineNumber&&n.endColumn>=t.endColumn)}plusRange(t){return eh.plusRange(this,t)}static plusRange(t,n){let r,o,s,a;return n.startLineNumbert.endLineNumber?(s=n.endLineNumber,a=n.endColumn):n.endLineNumber===t.endLineNumber?(s=n.endLineNumber,a=Math.max(n.endColumn,t.endColumn)):(s=t.endLineNumber,a=t.endColumn),new eh(r,o,s,a)}intersectRanges(t){return eh.intersectRanges(this,t)}static intersectRanges(t,n){let r=t.startLineNumber,o=t.startColumn,s=t.endLineNumber,a=t.endColumn;const l=n.startLineNumber,d=n.startColumn,u=n.endLineNumber,h=n.endColumn;return ru?(s=u,a=h):s===u&&(a=Math.min(a,h)),r>s||r===s&&o>a?null:new eh(r,o,s,a)}equalsRange(t){return eh.equalsRange(this,t)}static equalsRange(t,n){return!t&&!n?!0:!!t&&!!n&&t.startLineNumber===n.startLineNumber&&t.startColumn===n.startColumn&&t.endLineNumber===n.endLineNumber&&t.endColumn===n.endColumn}getEndPosition(){return eh.getEndPosition(this)}static getEndPosition(t){return new it(t.endLineNumber,t.endColumn)}getStartPosition(){return eh.getStartPosition(this)}static getStartPosition(t){return new it(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,n){return new eh(this.startLineNumber,this.startColumn,t,n)}setStartPosition(t,n){return new eh(t,n,this.endLineNumber,this.endColumn)}collapseToStart(){return eh.collapseToStart(this)}static collapseToStart(t){return new eh(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}collapseToEnd(){return eh.collapseToEnd(this)}static collapseToEnd(t){return new eh(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn)}delta(t){return new eh(this.startLineNumber+t,this.startColumn,this.endLineNumber+t,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(t,n=t){return new eh(t.lineNumber,t.column,n.lineNumber,n.column)}static lift(t){return t?new eh(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return!!t&&typeof t.startLineNumber=="number"&&typeof t.startColumn=="number"&&typeof t.endLineNumber=="number"&&typeof t.endColumn=="number"}static areIntersectingOrTouching(t,n){return!(t.endLineNumbert.startLineNumber}toJSON(){return this}},Qn=class e4 extends Ee{constructor(t,n,r,o){super(t,n,r,o),this.selectionStartLineNumber=t,this.selectionStartColumn=n,this.positionLineNumber=r,this.positionColumn=o}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return e4.selectionsEqual(this,t)}static selectionsEqual(t,n){return t.selectionStartLineNumber===n.selectionStartLineNumber&&t.selectionStartColumn===n.selectionStartColumn&&t.positionLineNumber===n.positionLineNumber&&t.positionColumn===n.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,n){return this.getDirection()===0?new e4(this.startLineNumber,this.startColumn,t,n):new e4(t,n,this.startLineNumber,this.startColumn)}getPosition(){return new it(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new it(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(t,n){return this.getDirection()===0?new e4(t,n,this.endLineNumber,this.endColumn):new e4(this.endLineNumber,this.endColumn,t,n)}static fromPositions(t,n=t){return new e4(t.lineNumber,t.column,n.lineNumber,n.column)}static fromRange(t,n){return n===0?new e4(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new e4(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}static liftSelection(t){return new e4(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,n){if(t&&!n||!t&&n)return!1;if(!t&&!n)return!0;if(t.length!==n.length)return!1;for(let r=0,o=t.length;r0&&e.getLanguageId(a-1)===o;)a--;return new Hno(e,o,a,s+1,e.getStartOffset(a),e.getEndOffset(s))}class Hno{constructor(t,n,r,o,s,a){this._scopedLineTokensBrand=void 0,this._actual=t,this.languageId=n,this._firstTokenIndex=r,this._lastTokenIndex=o,this.firstCharOffset=s,this._lastCharOffset=a,this.languageIdCodec=t.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(t){return this._actual.getLineContent().substring(0,this.firstCharOffset+t)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(t){return this._actual.findTokenIndexAtOffset(t+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(t){return this._actual.getStandardTokenType(t+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function Tw(e){return(e&3)!==0}class Ll{static _nextVisibleColumn(t,n,r){return t===9?Ll.nextRenderTabStop(n,r):I8(t)||PJe(t)?n+2:n+1}static visibleColumnFromColumn(t,n,r){const o=Math.min(n-1,t.length),s=t.substring(0,o),a=new vme(s);let l=0;for(;!a.eol();){const d=kme(s,o,a.offset);a.nextGraphemeLength(),l=this._nextVisibleColumn(d,l,r)}return l}static columnFromVisibleColumn(t,n,r){if(n<=0)return 1;const o=t.length,s=new vme(t);let a=0,l=1;for(;!s.eol();){const d=kme(t,o,s.offset);s.nextGraphemeLength();const u=this._nextVisibleColumn(d,a,r),h=s.offset+1;if(u>=n){const g=n-a;return u-n!0,Yno=()=>!1,Zno=e=>e===" "||e===" ";class pP{static shouldRecreate(t){return t.hasChanged(165)||t.hasChanged(148)||t.hasChanged(45)||t.hasChanged(85)||t.hasChanged(88)||t.hasChanged(89)||t.hasChanged(10)||t.hasChanged(11)||t.hasChanged(15)||t.hasChanged(13)||t.hasChanged(14)||t.hasChanged(20)||t.hasChanged(145)||t.hasChanged(141)||t.hasChanged(59)||t.hasChanged(104)||t.hasChanged(147)||t.hasChanged(93)}constructor(t,n,r,o){this.languageConfigurationService=o,this._cursorMoveConfigurationBrand=void 0,this._languageId=t;const s=r.options,a=s.get(165),l=s.get(59);this.readOnly=s.get(104),this.tabSize=n.tabSize,this.indentSize=n.indentSize,this.insertSpaces=n.insertSpaces,this.stickyTabStops=s.get(132),this.lineHeight=l.lineHeight,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=s.get(145),this.trimWhitespaceOnDelete=s.get(141),this.wordSeparators=s.get(148),this.emptySelectionClipboard=s.get(45),this.copyWithSyntaxHighlighting=s.get(31),this.multiCursorMergeOverlapping=s.get(85),this.multiCursorPaste=s.get(88),this.multiCursorLimit=s.get(89),this.autoClosingBrackets=s.get(10),this.autoClosingComments=s.get(11),this.autoClosingQuotes=s.get(15),this.autoClosingDelete=s.get(13),this.autoClosingOvertype=s.get(14),this.autoSurround=s.get(20),this.autoIndent=s.get(16),this.wordSegmenterLocales=s.get(147),this.overtypeOnPaste=s.get(93),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(t,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(t,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(t,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(t).getAutoClosingPairs();const d=this.languageConfigurationService.getLanguageConfiguration(t).getSurroundingPairs();if(d)for(const h of d)this.surroundingPairs[h.open]=h.close;const u=this.languageConfigurationService.getLanguageConfiguration(t).comments;this.blockCommentStartToken=(u==null?void 0:u.blockCommentStartToken)??null}get electricChars(){var t;if(!this._electricChars){this._electricChars={};const n=(t=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)==null?void 0:t.getElectricCharacters();if(n)for(const r of n)this._electricChars[r]=!0}return this._electricChars}get inputMode(){return bNe.getInputMode()}onElectricCharacter(t,n,r){const o=lQ(n,r-1),s=this.languageConfigurationService.getLanguageConfiguration(o.languageId).electricCharacter;return s?s.onElectricCharacter(t,o,r-o.firstCharOffset):null}normalizeIndentation(t){return tet(t,this.indentSize,this.insertSpaces)}_getShouldAutoClose(t,n,r){switch(n){case"beforeWhitespace":return Zno;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(t,r);case"always":return Gno;case"never":return Yno}}_getLanguageDefinedShouldAutoClose(t,n){const r=this.languageConfigurationService.getLanguageConfiguration(t).getAutoCloseBeforeSet(n);return o=>r.indexOf(o)!==-1}visibleColumnFromColumn(t,n){return Ll.visibleColumnFromColumn(t.getLineContent(n.lineNumber),n.column,this.tabSize)}columnFromVisibleColumn(t,n,r){const o=Ll.columnFromVisibleColumn(t.getLineContent(n),r,this.tabSize),s=t.getLineMinColumn(n);if(oa?a:o}}let So=class zEn{static fromModelState(t){return new qno(t)}static fromViewState(t){return new Kno(t)}static fromModelSelection(t){const n=Qn.liftSelection(t),r=new rh(Ee.fromPositions(n.getSelectionStart()),0,0,n.getPosition(),0);return zEn.fromModelState(r)}static fromModelSelections(t){const n=[];for(let r=0,o=t.length;rs,u=o>a,h=oa||po||A0&&o--,OT.columnSelect(t,n,r.fromViewLineNumber,r.fromViewVisualColumn,r.toViewLineNumber,o)}static columnSelectRight(t,n,r){let o=0;const s=Math.min(r.fromViewLineNumber,r.toViewLineNumber),a=Math.max(r.fromViewLineNumber,r.toViewLineNumber);for(let d=s;d<=a;d++){const u=n.getLineMaxColumn(d),h=t.visibleColumnFromColumn(n,new it(d,u));o=Math.max(o,h)}let l=r.toViewVisualColumn;return ls&&(l=new it(s,t.getLineMaxColumn(s)));const d=Ee.fromPositions(r,l);n.addTrackedEditOperation(d,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getEndPosition())}}class Jno{constructor(t,n){this._range=t,this._text=n}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromRange(o,0)}}class Kue{constructor(t,n,r=!1){this._range=t,this._text=n,this.insertsAutoWhitespace=r}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getStartPosition())}}class Qme{constructor(t,n,r,o,s=!1){this._range=t,this._text=n,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=r,this.insertsAutoWhitespace=s}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class eio{constructor(t){this._range=t}getEditOperations(t,n){const r=t.getValueInRange(this._range),o=this._range.getEndPosition(),s=o.lineNumber;let a=HEn(t,o,r.length);a.lineNumber>s&&(a=new it(s,t.getLineMaxColumn(s)));const l=Ee.fromPositions(o,a);n.addTrackedEditOperation(l,"")}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getEndPosition())}}class net{constructor(t,n,r,o=!1){this._range=t,this._text=n,this._initialSelection=r,this._forceMoveMarkers=o,this._selectionId=null}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=n.trackSelection(this._initialSelection)}computeCursorState(t,n){return n.getTrackedSelection(this._selectionId)}}function HEn(e,t,n){if(n<0)throw new Error("Unexpected negative delta");const r=e.getLineCount();let o=new it(r,e.getLineMaxColumn(r));for(let s=t.lineNumber;s<=r;s++)if(s===t.lineNumber){const a=n-e.getLineMaxColumn(t.lineNumber)+t.column;if(a<=0){o=new it(t.lineNumber,t.column+n);break}n=a}else{const a=n-e.getLineMaxColumn(s);if(a<=0){o=new it(s,n);break}n=a}return o}class ZK{static whitespaceVisibleColumn(t,n,r){const o=t.length;let s=0,a=-1,l=-1;for(let d=0;dt.getLineMinColumn(n.lineNumber))return n.delta(void 0,-$6n(t.getLineContent(n.lineNumber),n.column-1));if(n.lineNumber>1){const r=n.lineNumber-1;return new it(r,t.getLineMaxColumn(r))}else return n}static leftPositionAtomicSoftTabs(t,n,r){if(n.column<=t.getLineIndentColumn(n.lineNumber)){const o=t.getLineMinColumn(n.lineNumber),s=t.getLineContent(n.lineNumber),a=ZK.atomicPosition(s,n.column-1,r,0);if(a!==-1&&a+1>=o)return new it(n.lineNumber,a+1)}return this.leftPosition(t,n)}static left(t,n,r){const o=t.stickyTabStops?ss.leftPositionAtomicSoftTabs(n,r,t.tabSize):ss.leftPosition(n,r);return new iLe(o.lineNumber,o.column,0)}static moveLeft(t,n,r,o,s){let a,l;if(r.hasSelection()&&!o)a=r.selection.startLineNumber,l=r.selection.startColumn;else{const d=r.position.delta(void 0,-(s-1)),u=n.normalizePosition(ss.clipPositionColumn(d,n),0),h=ss.left(t,n,u);a=h.lineNumber,l=h.column}return r.move(o,a,l,0)}static clipPositionColumn(t,n){return new it(t.lineNumber,ss.clipRange(t.column,n.getLineMinColumn(t.lineNumber),n.getLineMaxColumn(t.lineNumber)))}static clipRange(t,n,r){return tr?r:t}static rightPosition(t,n,r){return rh?(r=h,l?o=n.getLineMaxColumn(r):o=Math.min(n.getLineMaxColumn(r),o)):o=t.columnFromVisibleColumn(n,r,u),v?s=0:s=u-Ll.visibleColumnFromColumn(n.getLineContent(r),o,t.tabSize),d!==void 0){const f=new it(r,o),k=n.normalizePosition(f,d);s=s+(o-k.column),r=k.lineNumber,o=k.column}return new iLe(r,o,s)}static down(t,n,r,o,s,a,l){return this.vertical(t,n,r,o,s,r+a,l,4)}static moveDown(t,n,r,o,s){let a,l;r.hasSelection()&&!o?(a=r.selection.endLineNumber,l=r.selection.endColumn):(a=r.position.lineNumber,l=r.position.column);let d=0,u;do if(u=ss.down(t,n,a+d,l,r.leftoverVisibleColumns,s,!0),n.normalizePosition(new it(u.lineNumber,u.column),2).lineNumber>a)break;while(d++<10&&a+d1&&this._isBlankLine(n,s);)s--;for(;s>1&&!this._isBlankLine(n,s);)s--;return r.move(o,s,n.getLineMinColumn(s),0)}static moveToNextBlankLine(t,n,r,o){const s=n.getLineCount();let a=r.position.lineNumber;for(;a0,l=n.getLineFirstNonWhitespaceColumn(s.lineNumber);if(a&&l>0)return new Ee(s.lineNumber,l,o.lineNumber,o.column)}return new Ee(s.lineNumber,s.column,o.lineNumber,o.column)}static isAutoClosingPairDelete(t,n,r,o,s,a,l){if(n==="never"&&r==="never"||t==="never")return!1;for(let d=0,u=a.length;d=m.length+1)return!1;const v=m.charAt(g.column-2),f=o.get(v);if(!f)return!1;if(S6(v)){if(r==="never")return!1}else if(n==="never")return!1;const k=m.charAt(g.column-1);let A=!1;for(const p of f)p.open===v&&p.close===k&&(A=!0);if(!A)return!1;if(t==="auto"){let p=!1;for(let b=0,w=l.length;b1){const s=n.getLineContent(o.lineNumber),a=Og(s),l=a===-1?s.length+1:a+1;if(o.column<=l){const d=r.visibleColumnFromColumn(n,o),u=Ll.prevIndentTabStop(d,r.indentSize),h=r.columnFromVisibleColumn(n,o.lineNumber,u);return new Ee(o.lineNumber,h,o.lineNumber,o.column)}}return Ee.fromPositions(aR.getPositionAfterDeleteLeft(o,n),o)}static getPositionAfterDeleteLeft(t,n){if(t.column>1){const r=Seo(t.column-1,n.getLineContent(t.lineNumber));return t.with(void 0,r+1)}else if(t.lineNumber>1){const r=t.lineNumber-1;return new it(r,n.getLineMaxColumn(r))}else return t}static cut(t,n,r){const o=[];let s=null;r.sort((a,l)=>it.compare(a.getStartPosition(),l.getEndPosition()));for(let a=0,l=r.length;a1&&(s==null?void 0:s.endLineNumber)!==u.lineNumber?(h=u.lineNumber-1,g=n.getLineMaxColumn(u.lineNumber-1),m=u.lineNumber,v=n.getLineMaxColumn(u.lineNumber)):(h=u.lineNumber,g=1,m=u.lineNumber,v=n.getLineMaxColumn(u.lineNumber));const f=new Ee(h,g,m,v);s=f,f.isEmpty()?o[a]=null:o[a]=new Hh(f,"")}else o[a]=null;else o[a]=new Hh(d,"")}return new fm(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}const yI={DateTimeFormat(e,t){return new zh(()=>{try{return new Intl.DateTimeFormat(e,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(e,t){return new zh(()=>{try{return new Intl.Collator(e,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(e,t){return new zh(()=>{try{return new Intl.Segmenter(e,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(e,t){return new zh(()=>{try{return new Intl.Locale(e,t)}catch{return new Intl.Locale(iQ,t)}})},NumberFormat(e,t){return new zh(()=>{try{return new Intl.NumberFormat(e,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};function Dme(e){return e<0?0:e>255?255:e|0}function bP(e){return e<0?0:e>4294967295?4294967295:e|0}class Gz{constructor(t){const n=Dme(t);this._defaultValue=n,this._asciiMap=Gz._createAsciiMap(n),this._map=new Map}static _createAsciiMap(t){const n=new Uint8Array(256);return n.fill(t),n}set(t,n){const r=Dme(n);t>=0&&t<256?this._asciiMap[t]=r:this._map.set(t,r)}get(t){return t>=0&&t<256?this._asciiMap[t]:this._map.get(t)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class Bme{constructor(){this._actual=new Gz(0)}add(t){this._actual.set(t,1)}has(t){return this._actual.get(t)===1}clear(){return this._actual.clear()}}class tio extends Gz{constructor(t,n){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=n,this.intlSegmenterLocales.length>0?this._segmenter=yI.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let r=0,o=t.length;rn)break;r=o}return r}findNextIntlWordAtOrAfterOffset(t,n){for(const r of this._getIntlSegmenterWordsOnLine(t))if(!(r.index=0;a--){const l=t.charCodeAt(a),d=n.get(l);if(s&&a===s.index)return this._createIntlWord(s,d);if(d===0){if(o===2)return this._createWord(t,o,d,a+1,this._findEndOfWord(t,n,o,a+1));o=1}else if(d===2){if(o===1)return this._createWord(t,o,d,a+1,this._findEndOfWord(t,n,o,a+1));o=2}else if(d===1&&o!==0)return this._createWord(t,o,d,a+1,this._findEndOfWord(t,n,o,a+1))}return o!==0?this._createWord(t,o,1,0,this._findEndOfWord(t,n,o,0)):null}static _findEndOfWord(t,n,r,o){const s=n.findNextIntlWordAtOrAfterOffset(t,o),a=t.length;for(let l=o;l=0;a--){const l=t.charCodeAt(a),d=n.get(l);if(s&&a===s.index)return a;if(d===1||r===1&&d===2||r===2&&d===0)return a+1}return 0}static moveWordLeft(t,n,r,o,s){let a=r.lineNumber,l=r.column;l===1&&a>1&&(a=a-1,l=n.getLineMaxColumn(a));let d=as._findPreviousWordOnLine(t,n,new it(a,l));if(o===0)return new it(a,d?d.start+1:1);if(o===1)return!s&&d&&d.wordType===2&&d.end-d.start===1&&d.nextCharClass===0&&(d=as._findPreviousWordOnLine(t,n,new it(a,d.start+1))),new it(a,d?d.start+1:1);if(o===3){for(;d&&d.wordType===2;)d=as._findPreviousWordOnLine(t,n,new it(a,d.start+1));return new it(a,d?d.start+1:1)}return d&&l<=d.end+1&&(d=as._findPreviousWordOnLine(t,n,new it(a,d.start+1))),new it(a,d?d.end+1:1)}static _moveWordPartLeft(t,n){const r=n.lineNumber,o=t.getLineMaxColumn(r);if(n.column===1)return r>1?new it(r-1,t.getLineMaxColumn(r-1)):n;const s=t.getLineContent(r);for(let a=n.column-1;a>1;a--){const l=s.charCodeAt(a-2),d=s.charCodeAt(a-1);if(l===95&&d!==95)return new it(r,a);if(l===45&&d!==45)return new it(r,a);if((l9(l)||ale(l))&&dO(d))return new it(r,a);if(dO(l)&&dO(d)&&a+1=d.start+1&&(d=as._findNextWordOnLine(t,n,new it(s,d.end+1))),d?a=d.start+1:a=n.getLineMaxColumn(s);return new it(s,a)}static _moveWordPartRight(t,n){const r=n.lineNumber,o=t.getLineMaxColumn(r);if(n.column===o)return r1?u=1:(d--,u=o.getLineMaxColumn(d)):(h&&u<=h.end+1&&(h=as._findPreviousWordOnLine(r,o,new it(d,h.start+1))),h?u=h.end+1:u>1?u=1:(d--,u=o.getLineMaxColumn(d))),new Ee(d,u,l.lineNumber,l.column)}static deleteInsideWord(t,n,r){if(!r.isEmpty())return r;const o=new it(r.positionLineNumber,r.positionColumn),s=this._deleteInsideWordWhitespace(n,o);return s||this._deleteInsideWordDetermineDeleteRange(t,n,o)}static _charAtIsWhitespace(t,n){const r=t.charCodeAt(n);return r===32||r===9}static _deleteInsideWordWhitespace(t,n){const r=t.getLineContent(n.lineNumber),o=r.length;if(o===0)return null;let s=Math.max(n.column-2,0);if(!this._charAtIsWhitespace(r,s))return null;let a=Math.min(n.column-1,o-1);if(!this._charAtIsWhitespace(r,a))return null;for(;s>0&&this._charAtIsWhitespace(r,s-1);)s--;for(;a+11?new Ee(r.lineNumber-1,n.getLineMaxColumn(r.lineNumber-1),r.lineNumber,1):r.lineNumberg.start+1<=r.column&&r.column<=g.end+1,l=(g,m)=>(g=Math.min(g,r.column),m=Math.max(m,r.column),new Ee(r.lineNumber,g,r.lineNumber,m)),d=g=>{let m=g.start+1,v=g.end+1,f=!1;for(;v-11&&this._charAtIsWhitespace(o,m-2);)m--;return l(m,v)},u=as._findPreviousWordOnLine(t,n,r);if(u&&a(u))return d(u);const h=as._findNextWordOnLine(t,n,r);return h&&a(h)?d(h):u&&h?l(u.end+1,h.start+1):u?l(u.start+1,u.end+1):h?l(h.start+1,h.end+1):l(1,s+1)}static _deleteWordPartLeft(t,n){if(!n.isEmpty())return n;const r=n.getPosition(),o=as._moveWordPartLeft(t,r);return new Ee(r.lineNumber,r.column,o.lineNumber,o.column)}static _findFirstNonWhitespaceChar(t,n){const r=t.length;for(let o=n;o=m.start+1&&(m=as._findNextWordOnLine(r,o,new it(d,m.end+1))),m?u=m.start+1:u!!t)}function uO(e){if(!e||typeof e!="object"||e instanceof RegExp)return e;const t=Array.isArray(e)?[]:{};return Object.entries(e).forEach(([n,r])=>{t[n]=r&&typeof r=="object"?uO(r):r}),t}function nio(e){if(!e||typeof e!="object")return e;const t=[e];for(;t.length>0;){const n=t.shift();Object.freeze(n);for(const r in n)if($En.call(n,r)){const o=n[r];typeof o=="object"&&!Object.isFrozen(o)&&!yJr(o)&&t.push(o)}}return e}const $En=Object.prototype.hasOwnProperty;function XEn(e,t){return ONe(e,t,new Set)}function ONe(e,t,n){if(Qv(e))return e;const r=t(e);if(typeof r<"u")return r;if(Array.isArray(e)){const o=[];for(const s of e)o.push(ONe(s,t,n));return o}if(Pd(e)){if(n.has(e))throw new Error("Cannot clone recursive data-structure");n.add(e);const o={};for(const s in e)$En.call(e,s)&&(o[s]=ONe(e[s],t,n));return n.delete(e),o}return e}function Pbe(e,t,n=!0){return Pd(e)?(Pd(t)&&Object.keys(t).forEach(r=>{r in e?n&&(Pd(e[r])&&Pd(t[r])?Pbe(e[r],t[r],n):e[r]=t[r]):e[r]=t[r]}),e):t}function Q0(e,t){if(e===t)return!0;if(e==null||t===null||t===void 0||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;let n,r;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(n=0;nu&&(h=u,g=t.model.getLineMaxColumn(h)),So.fromModelState(new rh(new Ee(a.lineNumber,1,h,g),2,0,new it(h,g),0))}const d=n.modelState.selectionStart.getStartPosition().lineNumber;if(a.lineNumberd){const u=t.getLineCount();let h=l.lineNumber+1,g=1;return h>u&&(h=u,g=t.getLineMaxColumn(h)),So.fromViewState(n.viewState.move(!0,h,g,0))}else{const u=n.modelState.selectionStart.getEndPosition();return So.fromModelState(n.modelState.move(!0,u.lineNumber,u.column,0))}}static word(t,n,r,o){const s=t.model.validatePosition(o);return So.fromModelState(as.word(t.cursorConfig,t.model,n.modelState,r,s))}static cancelSelection(t,n){if(!n.modelState.hasSelection())return new So(n.modelState,n.viewState);const r=n.viewState.position.lineNumber,o=n.viewState.position.column;return So.fromViewState(new rh(new Ee(r,o,r,o),0,0,new it(r,o),0))}static moveTo(t,n,r,o,s){if(r){if(n.modelState.selectionStartKind===1)return this.word(t,n,r,o);if(n.modelState.selectionStartKind===2)return this.line(t,n,r,o,s)}const a=t.model.validatePosition(o),l=s?t.coordinatesConverter.validateViewPosition(new it(s.lineNumber,s.column),a):t.coordinatesConverter.convertModelPositionToViewPosition(a);return So.fromViewState(n.viewState.move(r,l.lineNumber,l.column,0))}static simpleMove(t,n,r,o,s,a){switch(r){case 0:return a===4?this._moveHalfLineLeft(t,n,o):this._moveLeft(t,n,o,s);case 1:return a===4?this._moveHalfLineRight(t,n,o):this._moveRight(t,n,o,s);case 2:return a===2?this._moveUpByViewLines(t,n,o,s):this._moveUpByModelLines(t,n,o,s);case 3:return a===2?this._moveDownByViewLines(t,n,o,s):this._moveDownByModelLines(t,n,o,s);case 4:return a===2?n.map(l=>So.fromViewState(ss.moveToPrevBlankLine(t.cursorConfig,t,l.viewState,o))):n.map(l=>So.fromModelState(ss.moveToPrevBlankLine(t.cursorConfig,t.model,l.modelState,o)));case 5:return a===2?n.map(l=>So.fromViewState(ss.moveToNextBlankLine(t.cursorConfig,t,l.viewState,o))):n.map(l=>So.fromModelState(ss.moveToNextBlankLine(t.cursorConfig,t.model,l.modelState,o)));case 6:return this._moveToViewMinColumn(t,n,o);case 7:return this._moveToViewFirstNonWhitespaceColumn(t,n,o);case 8:return this._moveToViewCenterColumn(t,n,o);case 9:return this._moveToViewMaxColumn(t,n,o);case 10:return this._moveToViewLastNonWhitespaceColumn(t,n,o);default:return null}}static viewportMove(t,n,r,o,s){const a=t.getCompletelyVisibleViewRange(),l=t.coordinatesConverter.convertViewRangeToModelRange(a);switch(r){case 11:{const d=this._firstLineNumberInRange(t.model,l,s),u=t.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(t,n[0],o,d,u)]}case 13:{const d=this._lastLineNumberInRange(t.model,l,s),u=t.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(t,n[0],o,d,u)]}case 12:{const d=Math.round((l.startLineNumber+l.endLineNumber)/2),u=t.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(t,n[0],o,d,u)]}case 14:{const d=[];for(let u=0,h=n.length;ur.endLineNumber-1?a=r.endLineNumber-1:s{const l=t.getTextDirection(s.viewState.position.lineNumber)===Xk.RTL;return So.fromViewState(l?ss.moveRight(t.cursorConfig,t,s.viewState,r,o):ss.moveLeft(t.cursorConfig,t,s.viewState,r,o))})}static _moveHalfLineLeft(t,n,r){const o=[];for(let s=0,a=n.length;s{const l=t.getTextDirection(s.viewState.position.lineNumber)===Xk.RTL;return So.fromViewState(l?ss.moveLeft(t.cursorConfig,t,s.viewState,r,o):ss.moveRight(t.cursorConfig,t,s.viewState,r,o))})}static _moveHalfLineRight(t,n,r){const o=[];for(let s=0,a=n.length;se.length)return!1;if(n){if(!BJe(e,t))return!1;if(t.length===e.length)return!0;let s=t.length;return t.charAt(t.length-1)===r&&s--,e.charAt(s)===r}return t.charAt(t.length-1)!==r&&(t+=r),e.indexOf(t)===0}function IEn(e){return e>=65&&e<=90||e>=97&&e<=122}function Tno(e,t=mh){return t?IEn(e.charCodeAt(0))&&e.charCodeAt(1)===58:!1}function Ew(e){return Ome(e,!0)}class Qno{constructor(t){this._ignorePathCasing=t}compare(t,n,r=!1){return t===n?0:jK(this.getComparisonKey(t,r),this.getComparisonKey(n,r))}isEqual(t,n,r=!1){return t===n?!0:!t||!n?!1:this.getComparisonKey(t,r)===this.getComparisonKey(n,r)}getComparisonKey(t,n=!1){return t.with({path:this._ignorePathCasing(t)?t.path.toLowerCase():void 0,fragment:n?null:void 0}).toString()}isEqualOrParent(t,n,r=!1){if(t.scheme===n.scheme){if(t.scheme===Ci.file)return pNe(Ew(t),Ew(n),this._ignorePathCasing(t))&&t.query===n.query&&(r||t.fragment===n.fragment);if(jbt(t.authority,n.authority))return pNe(t.path,n.path,this._ignorePathCasing(t),"/")&&t.query===n.query&&(r||t.fragment===n.fragment)}return!1}joinPath(t,...n){return vi.joinPath(t,...n)}basenameOrAuthority(t){return hA(t)||t.authority}basename(t){return Jc.basename(t.path)}extname(t){return Jc.extname(t.path)}dirname(t){if(t.path.length===0)return t;let n;return t.scheme===Ci.file?n=vi.file(Xue(Ew(t))).path:(n=Jc.dirname(t.path),t.authority&&n.length&&n.charCodeAt(0)!==47&&(console.error(`dirname("${t.toString})) resulted in a relative path`),n="/")),t.with({path:n})}normalizePath(t){if(!t.path.length)return t;let n;return t.scheme===Ci.file?n=vi.file(J6n(Ew(t))).path:n=Jc.normalize(t.path),t.with({path:n})}relativePath(t,n){if(t.scheme!==n.scheme||!jbt(t.authority,n.authority))return;if(t.scheme===Ci.file){const s=Neo(Ew(t),Ew(n));return mh?REn(s):s}let r=t.path||"/";const o=n.path||"/";if(this._ignorePathCasing(t)){let s=0;for(const a=Math.min(r.length,o.length);sNbt(r).length&&r[r.length-1]===n}else{const r=t.path;return r.length>1&&r.charCodeAt(r.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(t.fsPath)}}removeTrailingPathSeparator(t,n=o3){return Wbt(t,n)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,n=o3){let r=!1;if(t.scheme===Ci.file){const o=Ew(t);r=o!==void 0&&o.length===Nbt(o).length&&o[o.length-1]===n}else{n="/";const o=t.path;r=o.length===1&&o.charCodeAt(o.length-1)===47}return!r&&!Wbt(t,n)?t.with({path:t.path+"/"}):t}}const Wa=new Qno(()=>!1),C6=Wa.isEqual.bind(Wa);Wa.isEqualOrParent.bind(Wa);Wa.getComparisonKey.bind(Wa);const Dno=Wa.basenameOrAuthority.bind(Wa),hA=Wa.basename.bind(Wa),Bno=Wa.extname.bind(Wa),Dbe=Wa.dirname.bind(Wa),MEn=Wa.joinPath.bind(Wa),Rno=Wa.normalizePath.bind(Wa),Ino=Wa.relativePath.bind(Wa),Ubt=Wa.resolvePath.bind(Wa);Wa.isAbsolutePath.bind(Wa);const jbt=Wa.isEqualAuthority.bind(Wa),Wbt=Wa.hasTrailingPathSeparator.bind(Wa);Wa.removeTrailingPathSeparator.bind(Wa);Wa.addTrailingPathSeparator.bind(Wa);var _6;(function(e){e.META_DATA_LABEL="label",e.META_DATA_DESCRIPTION="description",e.META_DATA_SIZE="size",e.META_DATA_MIME="mime";function t(n){const r=new Map;n.path.substring(n.path.indexOf(";")+1,n.path.lastIndexOf(";")).split(";").forEach(a=>{const[l,d]=a.split(":");l&&d&&r.set(l,d)});const s=n.path.substring(0,n.path.indexOf(";"));return s&&r.set(e.META_DATA_MIME,s),r}e.parseMetaData=t})(_6||(_6={}));const va=Cr("logService"),PEn=Cr("loggerService");var au;(function(e){e[e.Off=0]="Off",e[e.Trace=1]="Trace",e[e.Debug=2]="Debug",e[e.Info=3]="Info",e[e.Warning=4]="Warning",e[e.Error=5]="Error"})(au||(au={}));const FEn=au.Info;function NEn(e,t){return e!==au.Off&&e<=t}class UEn extends ft{constructor(){super(...arguments),this.level=FEn,this._onDidChangeLogLevel=this._register(new at)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(t){this.level!==t&&(this.level=t,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(t){return NEn(this.level,t)}canLog(t){return this._store.isDisposed?!1:this.checkLogLevel(t)}}let Mno=class extends UEn{constructor(t=FEn,n=!0){super(),this.useColors=n,this.setLevel(t)}trace(t,...n){this.canLog(au.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",t,...n):console.log(t,...n))}debug(t,...n){this.canLog(au.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",t,...n):console.log(t,...n))}info(t,...n){this.canLog(au.Info)&&(this.useColors?console.log("%c INFO","color: #33f",t,...n):console.log(t,...n))}warn(t,...n){this.canLog(au.Warning)&&(this.useColors?console.warn("%c WARN","color: #993",t,...n):console.log(t,...n))}error(t,...n){this.canLog(au.Error)&&(this.useColors?console.error("%c ERR","color: #f33",t,...n):console.error(t,...n))}};class Pno extends UEn{constructor(t){super(),this.loggers=t,t.length&&this.setLevel(t[0].getLevel())}setLevel(t){for(const n of this.loggers)n.setLevel(t);super.setLevel(t)}trace(t,...n){for(const r of this.loggers)r.trace(t,...n)}debug(t,...n){for(const r of this.loggers)r.debug(t,...n)}info(t,...n){for(const r of this.loggers)r.info(t,...n)}warn(t,...n){for(const r of this.loggers)r.warn(t,...n)}error(t,...n){for(const r of this.loggers)r.error(t,...n)}dispose(){for(const t of this.loggers)t.dispose();super.dispose()}}class Fno extends ft{constructor(t,n,r){if(super(),this.logLevel=t,this.logsHome=n,this._loggers=new _c,this._onDidChangeLoggers=this._register(new at),this._onDidChangeVisibility=this._register(new at),r)for(const o of r)this._loggers.set(o.resource,{logger:void 0,info:o})}getLoggerEntry(t){return fu(t)?[...this._loggers.values()].find(n=>n.info.id===t):this._loggers.get(t)}createLogger(t,n){var d;const r=this.toResource(t),o=fu(t)?t:(n==null?void 0:n.id)??Lie(r.toString()).toString(16);let s=(d=this._loggers.get(r))==null?void 0:d.logger;const a=(n==null?void 0:n.logLevel)==="always"?au.Trace:n==null?void 0:n.logLevel;s||(s=this.doCreateLogger(r,a??this.getLogLevel(r)??this.logLevel,{...n,id:o}));const l={logger:s,info:{resource:r,id:o,logLevel:a,name:n==null?void 0:n.name,hidden:n==null?void 0:n.hidden,group:n==null?void 0:n.group,extensionId:n==null?void 0:n.extensionId,when:n==null?void 0:n.when}};return this.registerLogger(l.info),this._loggers.set(r,l),s}toResource(t){return fu(t)?MEn(this.logsHome,`${t}.log`):t}setVisibility(t,n){const r=this.getLoggerEntry(t);r&&n!==!r.info.hidden&&(r.info.hidden=!n,this._loggers.set(r.info.resource,r),this._onDidChangeVisibility.fire([r.info.resource,n]))}getLogLevel(t){var r;let n;return t&&(n=(r=this._loggers.get(t))==null?void 0:r.info.logLevel),n??this.logLevel}registerLogger(t){const n=this._loggers.get(t.resource);n?n.info.hidden!==t.hidden&&this.setVisibility(t.resource,!t.hidden):(this._loggers.set(t.resource,{info:t,logger:void 0}),this._onDidChangeLoggers.fire({added:[t],removed:[]}))}dispose(){this._loggers.forEach(t=>{var n;return(n=t.logger)==null?void 0:n.dispose()}),this._loggers.clear(),super.dispose()}}class Nno{constructor(){this.onDidChangeLogLevel=new at().event}setLevel(t){}getLevel(){return au.Info}trace(t,...n){}debug(t,...n){}info(t,...n){}warn(t,...n){}error(t,...n){}dispose(){}}class Uno extends Fno{constructor(){super(au.Off,vi.parse("log:///log"))}doCreateLogger(t,n,r){return new Nno}}function jno(e){switch(e){case au.Trace:return"trace";case au.Debug:return"debug";case au.Info:return"info";case au.Warning:return"warn";case au.Error:return"error";case au.Off:return"off"}}new yn("logLevel",jno(au.Info));const bq=class bq{static getRegisteredCommands(){return[...bq.REGISTERED_COMMANDS]}static registerCommand(t){bq.REGISTERED_COMMANDS.add(t)}};bq.REGISTERED_COMMANDS=new Set;let Tme=bq,Bbe=class{constructor(t){this.id=t.id,this.precondition=t.precondition,this._kbOpts=t.kbOpts,this._menuOpts=t.menuOpts,this.metadata=t.metadata,this.canTriggerInlineEdits=t.canTriggerInlineEdits}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const t=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const n of t){let r=n.kbExpr;this.precondition&&(r?r=Ft.and(r,this.precondition):r=this.precondition);const o={id:this.id,weight:n.weight,args:n.args,when:r,primary:n.primary,secondary:n.secondary,win:n.win,linux:n.linux,mac:n.mac};Nu.registerKeybindingRule(o)}}uo.registerCommand({id:this.id,handler:(t,n)=>this.runCommand(t,n),metadata:this.metadata}),this.canTriggerInlineEdits&&Tme.registerCommand(this.id)}_registerMenuItem(t){Iu.appendMenuItem(t.menuId,{group:t.group,command:{id:this.id,title:t.title,icon:t.icon,precondition:this.precondition},when:t.when,order:t.order})}};class Xz extends Bbe{constructor(){super(...arguments),this._implementations=[]}addImplementation(t,n,r,o){return this._implementations.push({priority:t,name:n,implementation:r,when:o}),this._implementations.sort((s,a)=>a.priority-s.priority),{dispose:()=>{for(let s=0;s{if(l.get(Qi).contextMatchesRules(r??void 0))return o(l,a,n)})}runCommand(t,n){return $d.runEditorCommand(t,n,this.precondition,(r,o,s)=>this.runEditorCommand(r,o,s))}}class Bn extends $d{static convertOptions(t){let n;Array.isArray(t.menuOpts)?n=t.menuOpts:t.menuOpts?n=[t.menuOpts]:n=[];function r(o){return o.menuId||(o.menuId=Wn.EditorContext),o.title||(o.title=typeof t.label=="string"?t.label:t.label.value),o.when=Ft.and(t.precondition,o.when),o}return Array.isArray(t.contextMenuOpts)?n.push(...t.contextMenuOpts.map(r)):t.contextMenuOpts&&n.push(r(t.contextMenuOpts)),t.menuOpts=n,t}constructor(t){super(Bn.convertOptions(t)),typeof t.label=="string"?(this.label=t.label,this.alias=t.alias??t.label):(this.label=t.label.value,this.alias=t.alias??t.label.original)}runEditorCommand(t,n,r){return this.reportTelemetry(t,n),this.run(t,n,r||{})}reportTelemetry(t,n){t.get(Nf).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class Rbe extends Bn{constructor(){super(...arguments),this._implementations=[]}addImplementation(t,n){return this._implementations.push([t,n]),this._implementations.sort((r,o)=>o[0]-r[0]),{dispose:()=>{for(let r=0;r{var u;const a=s.get(Qi),l=s.get(va);if(!a.contextMatchesRules(this.desc.precondition??void 0)){l.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(u=this.desc.precondition)==null?void 0:u.serialize());return}return this.runEditorCommand(s,o,...n)})}}function _1(e,t){uo.registerCommand(e,function(n,...r){const o=n.get(Yn),[s,a]=r;Oo(vi.isUri(s)),Oo(it.isIPosition(a));const l=n.get(ml).getModel(s);if(l){const d=it.lift(a);return o.invokeFunction(t,l,d,...r.slice(2))}return n.get(Dg).createModelReference(s).then(d=>new Promise((u,h)=>{try{const g=o.invokeFunction(t,d.object.textEditorModel,it.lift(a),r.slice(2));u(g)}catch(g){h(g)}}).finally(()=>{d.dispose()}))})}function On(e){return Dv.INSTANCE.registerEditorCommand(e),e}function un(e){const t=new e;return Dv.INSTANCE.registerEditorAction(t),t}function Ibe(e){return Dv.INSTANCE.registerEditorAction(e),e}function Wno(e){Dv.INSTANCE.registerEditorAction(e)}function mo(e,t,n){Dv.INSTANCE.registerEditorContribution(e,t,n)}var xU;(function(e){function t(a){return Dv.INSTANCE.getEditorCommand(a)}e.getEditorCommand=t;function n(){return Dv.INSTANCE.getEditorActions()}e.getEditorActions=n;function r(){return Dv.INSTANCE.getEditorContributions()}e.getEditorContributions=r;function o(a){return Dv.INSTANCE.getEditorContributions().filter(l=>a.indexOf(l.id)>=0)}e.getSomeEditorContributions=o;function s(){return Dv.INSTANCE.getDiffEditorContributions()}e.getDiffEditorContributions=s})(xU||(xU={}));const Vno={EditorCommonContributions:"editor.contributions"},Ove=class Ove{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(t,n,r){this.editorContributions.push({id:t,ctor:n,instantiation:r})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(t){t.register(),this.editorActions.push(t)}getEditorActions(){return this.editorActions}registerEditorCommand(t){t.register(),this.editorCommands[t.id]=t}getEditorCommand(t){return this.editorCommands[t]||null}};Ove.INSTANCE=new Ove;let Dv=Ove;Ql.add(Vno.EditorCommonContributions,Dv.INSTANCE);function Tie(e){return e.register(),e}const WEn=Tie(new Xz({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:Wn.MenubarEditMenu,group:"1_do",title:U(69,"&&Undo"),order:1},{menuId:Wn.CommandPalette,group:"",title:U(70,"Undo"),order:1},{menuId:Wn.SimpleEditorContext,group:"1_do",title:U(71,"Undo"),order:1}]}));Tie(new jEn(WEn,{id:"default:undo",precondition:void 0}));const VEn=Tie(new Xz({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:Wn.MenubarEditMenu,group:"1_do",title:U(72,"&&Redo"),order:2},{menuId:Wn.CommandPalette,group:"",title:U(73,"Redo"),order:1},{menuId:Wn.SimpleEditorContext,group:"1_do",title:U(74,"Redo"),order:2}]}));Tie(new jEn(VEn,{id:"default:redo",precondition:void 0}));const zno=Tie(new Xz({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:Wn.MenubarSelectionMenu,group:"1_basic",title:U(75,"&&Select All"),order:1},{menuId:Wn.CommandPalette,group:"",title:U(76,"Select All"),order:1},{menuId:Wn.SimpleEditorContext,group:"9_select",title:U(77,"Select All"),order:1}]}));let Ee=class eh{constructor(t,n,r,o){t>r||t===r&&n>o?(this.startLineNumber=r,this.startColumn=o,this.endLineNumber=t,this.endColumn=n):(this.startLineNumber=t,this.startColumn=n,this.endLineNumber=r,this.endColumn=o)}isEmpty(){return eh.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return eh.containsPosition(this,t)}static containsPosition(t,n){return!(n.lineNumbert.endLineNumber||n.lineNumber===t.startLineNumber&&n.columnt.endColumn)}static strictContainsPosition(t,n){return!(n.lineNumbert.endLineNumber||n.lineNumber===t.startLineNumber&&n.column<=t.startColumn||n.lineNumber===t.endLineNumber&&n.column>=t.endColumn)}containsRange(t){return eh.containsRange(this,t)}static containsRange(t,n){return!(n.startLineNumbert.endLineNumber||n.endLineNumber>t.endLineNumber||n.startLineNumber===t.startLineNumber&&n.startColumnt.endColumn)}strictContainsRange(t){return eh.strictContainsRange(this,t)}static strictContainsRange(t,n){return!(n.startLineNumbert.endLineNumber||n.endLineNumber>t.endLineNumber||n.startLineNumber===t.startLineNumber&&n.startColumn<=t.startColumn||n.endLineNumber===t.endLineNumber&&n.endColumn>=t.endColumn)}plusRange(t){return eh.plusRange(this,t)}static plusRange(t,n){let r,o,s,a;return n.startLineNumbert.endLineNumber?(s=n.endLineNumber,a=n.endColumn):n.endLineNumber===t.endLineNumber?(s=n.endLineNumber,a=Math.max(n.endColumn,t.endColumn)):(s=t.endLineNumber,a=t.endColumn),new eh(r,o,s,a)}intersectRanges(t){return eh.intersectRanges(this,t)}static intersectRanges(t,n){let r=t.startLineNumber,o=t.startColumn,s=t.endLineNumber,a=t.endColumn;const l=n.startLineNumber,d=n.startColumn,u=n.endLineNumber,h=n.endColumn;return ru?(s=u,a=h):s===u&&(a=Math.min(a,h)),r>s||r===s&&o>a?null:new eh(r,o,s,a)}equalsRange(t){return eh.equalsRange(this,t)}static equalsRange(t,n){return!t&&!n?!0:!!t&&!!n&&t.startLineNumber===n.startLineNumber&&t.startColumn===n.startColumn&&t.endLineNumber===n.endLineNumber&&t.endColumn===n.endColumn}getEndPosition(){return eh.getEndPosition(this)}static getEndPosition(t){return new it(t.endLineNumber,t.endColumn)}getStartPosition(){return eh.getStartPosition(this)}static getStartPosition(t){return new it(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,n){return new eh(this.startLineNumber,this.startColumn,t,n)}setStartPosition(t,n){return new eh(t,n,this.endLineNumber,this.endColumn)}collapseToStart(){return eh.collapseToStart(this)}static collapseToStart(t){return new eh(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}collapseToEnd(){return eh.collapseToEnd(this)}static collapseToEnd(t){return new eh(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn)}delta(t){return new eh(this.startLineNumber+t,this.startColumn,this.endLineNumber+t,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(t,n=t){return new eh(t.lineNumber,t.column,n.lineNumber,n.column)}static lift(t){return t?new eh(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return!!t&&typeof t.startLineNumber=="number"&&typeof t.startColumn=="number"&&typeof t.endLineNumber=="number"&&typeof t.endColumn=="number"}static areIntersectingOrTouching(t,n){return!(t.endLineNumbert.startLineNumber}toJSON(){return this}},Qn=class e4 extends Ee{constructor(t,n,r,o){super(t,n,r,o),this.selectionStartLineNumber=t,this.selectionStartColumn=n,this.positionLineNumber=r,this.positionColumn=o}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return e4.selectionsEqual(this,t)}static selectionsEqual(t,n){return t.selectionStartLineNumber===n.selectionStartLineNumber&&t.selectionStartColumn===n.selectionStartColumn&&t.positionLineNumber===n.positionLineNumber&&t.positionColumn===n.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,n){return this.getDirection()===0?new e4(this.startLineNumber,this.startColumn,t,n):new e4(t,n,this.startLineNumber,this.startColumn)}getPosition(){return new it(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new it(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(t,n){return this.getDirection()===0?new e4(t,n,this.endLineNumber,this.endColumn):new e4(this.endLineNumber,this.endColumn,t,n)}static fromPositions(t,n=t){return new e4(t.lineNumber,t.column,n.lineNumber,n.column)}static fromRange(t,n){return n===0?new e4(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new e4(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}static liftSelection(t){return new e4(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,n){if(t&&!n||!t&&n)return!1;if(!t&&!n)return!0;if(t.length!==n.length)return!1;for(let r=0,o=t.length;r0&&e.getLanguageId(a-1)===o;)a--;return new Hno(e,o,a,s+1,e.getStartOffset(a),e.getEndOffset(s))}class Hno{constructor(t,n,r,o,s,a){this._scopedLineTokensBrand=void 0,this._actual=t,this.languageId=n,this._firstTokenIndex=r,this._lastTokenIndex=o,this.firstCharOffset=s,this._lastCharOffset=a,this.languageIdCodec=t.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(t){return this._actual.getLineContent().substring(0,this.firstCharOffset+t)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(t){return this._actual.findTokenIndexAtOffset(t+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(t){return this._actual.getStandardTokenType(t+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function Tw(e){return(e&3)!==0}class Ll{static _nextVisibleColumn(t,n,r){return t===9?Ll.nextRenderTabStop(n,r):I8(t)||PJe(t)?n+2:n+1}static visibleColumnFromColumn(t,n,r){const o=Math.min(n-1,t.length),s=t.substring(0,o),a=new vme(s);let l=0;for(;!a.eol();){const d=kme(s,o,a.offset);a.nextGraphemeLength(),l=this._nextVisibleColumn(d,l,r)}return l}static columnFromVisibleColumn(t,n,r){if(n<=0)return 1;const o=t.length,s=new vme(t);let a=0,l=1;for(;!s.eol();){const d=kme(t,o,s.offset);s.nextGraphemeLength();const u=this._nextVisibleColumn(d,a,r),h=s.offset+1;if(u>=n){const g=n-a;return u-n!0,Yno=()=>!1,Zno=e=>e===" "||e===" ";class pP{static shouldRecreate(t){return t.hasChanged(165)||t.hasChanged(148)||t.hasChanged(45)||t.hasChanged(85)||t.hasChanged(88)||t.hasChanged(89)||t.hasChanged(10)||t.hasChanged(11)||t.hasChanged(15)||t.hasChanged(13)||t.hasChanged(14)||t.hasChanged(20)||t.hasChanged(145)||t.hasChanged(141)||t.hasChanged(59)||t.hasChanged(104)||t.hasChanged(147)||t.hasChanged(93)}constructor(t,n,r,o){this.languageConfigurationService=o,this._cursorMoveConfigurationBrand=void 0,this._languageId=t;const s=r.options,a=s.get(165),l=s.get(59);this.readOnly=s.get(104),this.tabSize=n.tabSize,this.indentSize=n.indentSize,this.insertSpaces=n.insertSpaces,this.stickyTabStops=s.get(132),this.lineHeight=l.lineHeight,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=s.get(145),this.trimWhitespaceOnDelete=s.get(141),this.wordSeparators=s.get(148),this.emptySelectionClipboard=s.get(45),this.copyWithSyntaxHighlighting=s.get(31),this.multiCursorMergeOverlapping=s.get(85),this.multiCursorPaste=s.get(88),this.multiCursorLimit=s.get(89),this.autoClosingBrackets=s.get(10),this.autoClosingComments=s.get(11),this.autoClosingQuotes=s.get(15),this.autoClosingDelete=s.get(13),this.autoClosingOvertype=s.get(14),this.autoSurround=s.get(20),this.autoIndent=s.get(16),this.wordSegmenterLocales=s.get(147),this.overtypeOnPaste=s.get(93),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(t,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(t,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(t,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(t).getAutoClosingPairs();const d=this.languageConfigurationService.getLanguageConfiguration(t).getSurroundingPairs();if(d)for(const h of d)this.surroundingPairs[h.open]=h.close;const u=this.languageConfigurationService.getLanguageConfiguration(t).comments;this.blockCommentStartToken=(u==null?void 0:u.blockCommentStartToken)??null}get electricChars(){var t;if(!this._electricChars){this._electricChars={};const n=(t=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)==null?void 0:t.getElectricCharacters();if(n)for(const r of n)this._electricChars[r]=!0}return this._electricChars}get inputMode(){return bNe.getInputMode()}onElectricCharacter(t,n,r){const o=lQ(n,r-1),s=this.languageConfigurationService.getLanguageConfiguration(o.languageId).electricCharacter;return s?s.onElectricCharacter(t,o,r-o.firstCharOffset):null}normalizeIndentation(t){return tet(t,this.indentSize,this.insertSpaces)}_getShouldAutoClose(t,n,r){switch(n){case"beforeWhitespace":return Zno;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(t,r);case"always":return Gno;case"never":return Yno}}_getLanguageDefinedShouldAutoClose(t,n){const r=this.languageConfigurationService.getLanguageConfiguration(t).getAutoCloseBeforeSet(n);return o=>r.indexOf(o)!==-1}visibleColumnFromColumn(t,n){return Ll.visibleColumnFromColumn(t.getLineContent(n.lineNumber),n.column,this.tabSize)}columnFromVisibleColumn(t,n,r){const o=Ll.columnFromVisibleColumn(t.getLineContent(n),r,this.tabSize),s=t.getLineMinColumn(n);if(oa?a:o}}let So=class zEn{static fromModelState(t){return new qno(t)}static fromViewState(t){return new Kno(t)}static fromModelSelection(t){const n=Qn.liftSelection(t),r=new rh(Ee.fromPositions(n.getSelectionStart()),0,0,n.getPosition(),0);return zEn.fromModelState(r)}static fromModelSelections(t){const n=[];for(let r=0,o=t.length;rs,u=o>a,h=oa||po||A0&&o--,OT.columnSelect(t,n,r.fromViewLineNumber,r.fromViewVisualColumn,r.toViewLineNumber,o)}static columnSelectRight(t,n,r){let o=0;const s=Math.min(r.fromViewLineNumber,r.toViewLineNumber),a=Math.max(r.fromViewLineNumber,r.toViewLineNumber);for(let d=s;d<=a;d++){const u=n.getLineMaxColumn(d),h=t.visibleColumnFromColumn(n,new it(d,u));o=Math.max(o,h)}let l=r.toViewVisualColumn;return ls&&(l=new it(s,t.getLineMaxColumn(s)));const d=Ee.fromPositions(r,l);n.addTrackedEditOperation(d,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getEndPosition())}}class Jno{constructor(t,n){this._range=t,this._text=n}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromRange(o,0)}}class Kue{constructor(t,n,r=!1){this._range=t,this._text=n,this.insertsAutoWhitespace=r}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getStartPosition())}}class Qme{constructor(t,n,r,o,s=!1){this._range=t,this._text=n,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=r,this.insertsAutoWhitespace=s}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text)}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class eio{constructor(t){this._range=t}getEditOperations(t,n){const r=t.getValueInRange(this._range),o=this._range.getEndPosition(),s=o.lineNumber;let a=HEn(t,o,r.length);a.lineNumber>s&&(a=new it(s,t.getLineMaxColumn(s)));const l=Ee.fromPositions(o,a);n.addTrackedEditOperation(l,"")}computeCursorState(t,n){const o=n.getInverseEditOperations()[0].range;return Qn.fromPositions(o.getEndPosition())}}class net{constructor(t,n,r,o=!1){this._range=t,this._text=n,this._initialSelection=r,this._forceMoveMarkers=o,this._selectionId=null}getEditOperations(t,n){n.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=n.trackSelection(this._initialSelection)}computeCursorState(t,n){return n.getTrackedSelection(this._selectionId)}}function HEn(e,t,n){if(n<0)throw new Error("Unexpected negative delta");const r=e.getLineCount();let o=new it(r,e.getLineMaxColumn(r));for(let s=t.lineNumber;s<=r;s++)if(s===t.lineNumber){const a=n-e.getLineMaxColumn(t.lineNumber)+t.column;if(a<=0){o=new it(t.lineNumber,t.column+n);break}n=a}else{const a=n-e.getLineMaxColumn(s);if(a<=0){o=new it(s,n);break}n=a}return o}class ZK{static whitespaceVisibleColumn(t,n,r){const o=t.length;let s=0,a=-1,l=-1;for(let d=0;dt.getLineMinColumn(n.lineNumber))return n.delta(void 0,-$6n(t.getLineContent(n.lineNumber),n.column-1));if(n.lineNumber>1){const r=n.lineNumber-1;return new it(r,t.getLineMaxColumn(r))}else return n}static leftPositionAtomicSoftTabs(t,n,r){if(n.column<=t.getLineIndentColumn(n.lineNumber)){const o=t.getLineMinColumn(n.lineNumber),s=t.getLineContent(n.lineNumber),a=ZK.atomicPosition(s,n.column-1,r,0);if(a!==-1&&a+1>=o)return new it(n.lineNumber,a+1)}return this.leftPosition(t,n)}static left(t,n,r){const o=t.stickyTabStops?ss.leftPositionAtomicSoftTabs(n,r,t.tabSize):ss.leftPosition(n,r);return new iLe(o.lineNumber,o.column,0)}static moveLeft(t,n,r,o,s){let a,l;if(r.hasSelection()&&!o)a=r.selection.startLineNumber,l=r.selection.startColumn;else{const d=r.position.delta(void 0,-(s-1)),u=n.normalizePosition(ss.clipPositionColumn(d,n),0),h=ss.left(t,n,u);a=h.lineNumber,l=h.column}return r.move(o,a,l,0)}static clipPositionColumn(t,n){return new it(t.lineNumber,ss.clipRange(t.column,n.getLineMinColumn(t.lineNumber),n.getLineMaxColumn(t.lineNumber)))}static clipRange(t,n,r){return tr?r:t}static rightPosition(t,n,r){return rh?(r=h,l?o=n.getLineMaxColumn(r):o=Math.min(n.getLineMaxColumn(r),o)):o=t.columnFromVisibleColumn(n,r,u),v?s=0:s=u-Ll.visibleColumnFromColumn(n.getLineContent(r),o,t.tabSize),d!==void 0){const f=new it(r,o),k=n.normalizePosition(f,d);s=s+(o-k.column),r=k.lineNumber,o=k.column}return new iLe(r,o,s)}static down(t,n,r,o,s,a,l){return this.vertical(t,n,r,o,s,r+a,l,4)}static moveDown(t,n,r,o,s){let a,l;r.hasSelection()&&!o?(a=r.selection.endLineNumber,l=r.selection.endColumn):(a=r.position.lineNumber,l=r.position.column);let d=0,u;do if(u=ss.down(t,n,a+d,l,r.leftoverVisibleColumns,s,!0),n.normalizePosition(new it(u.lineNumber,u.column),2).lineNumber>a)break;while(d++<10&&a+d1&&this._isBlankLine(n,s);)s--;for(;s>1&&!this._isBlankLine(n,s);)s--;return r.move(o,s,n.getLineMinColumn(s),0)}static moveToNextBlankLine(t,n,r,o){const s=n.getLineCount();let a=r.position.lineNumber;for(;a0,l=n.getLineFirstNonWhitespaceColumn(s.lineNumber);if(a&&l>0)return new Ee(s.lineNumber,l,o.lineNumber,o.column)}return new Ee(s.lineNumber,s.column,o.lineNumber,o.column)}static isAutoClosingPairDelete(t,n,r,o,s,a,l){if(n==="never"&&r==="never"||t==="never")return!1;for(let d=0,u=a.length;d=m.length+1)return!1;const v=m.charAt(g.column-2),f=o.get(v);if(!f)return!1;if(S6(v)){if(r==="never")return!1}else if(n==="never")return!1;const k=m.charAt(g.column-1);let A=!1;for(const p of f)p.open===v&&p.close===k&&(A=!0);if(!A)return!1;if(t==="auto"){let p=!1;for(let b=0,w=l.length;b1){const s=n.getLineContent(o.lineNumber),a=Og(s),l=a===-1?s.length+1:a+1;if(o.column<=l){const d=r.visibleColumnFromColumn(n,o),u=Ll.prevIndentTabStop(d,r.indentSize),h=r.columnFromVisibleColumn(n,o.lineNumber,u);return new Ee(o.lineNumber,h,o.lineNumber,o.column)}}return Ee.fromPositions(aR.getPositionAfterDeleteLeft(o,n),o)}static getPositionAfterDeleteLeft(t,n){if(t.column>1){const r=Seo(t.column-1,n.getLineContent(t.lineNumber));return t.with(void 0,r+1)}else if(t.lineNumber>1){const r=t.lineNumber-1;return new it(r,n.getLineMaxColumn(r))}else return t}static cut(t,n,r){const o=[];let s=null;r.sort((a,l)=>it.compare(a.getStartPosition(),l.getEndPosition()));for(let a=0,l=r.length;a1&&(s==null?void 0:s.endLineNumber)!==u.lineNumber?(h=u.lineNumber-1,g=n.getLineMaxColumn(u.lineNumber-1),m=u.lineNumber,v=n.getLineMaxColumn(u.lineNumber)):(h=u.lineNumber,g=1,m=u.lineNumber,v=n.getLineMaxColumn(u.lineNumber));const f=new Ee(h,g,m,v);s=f,f.isEmpty()?o[a]=null:o[a]=new Hh(f,"")}else o[a]=null;else o[a]=new Hh(d,"")}return new fm(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}const yI={DateTimeFormat(e,t){return new zh(()=>{try{return new Intl.DateTimeFormat(e,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(e,t){return new zh(()=>{try{return new Intl.Collator(e,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(e,t){return new zh(()=>{try{return new Intl.Segmenter(e,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(e,t){return new zh(()=>{try{return new Intl.Locale(e,t)}catch{return new Intl.Locale(iQ,t)}})},NumberFormat(e,t){return new zh(()=>{try{return new Intl.NumberFormat(e,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};function Dme(e){return e<0?0:e>255?255:e|0}function bP(e){return e<0?0:e>4294967295?4294967295:e|0}class Gz{constructor(t){const n=Dme(t);this._defaultValue=n,this._asciiMap=Gz._createAsciiMap(n),this._map=new Map}static _createAsciiMap(t){const n=new Uint8Array(256);return n.fill(t),n}set(t,n){const r=Dme(n);t>=0&&t<256?this._asciiMap[t]=r:this._map.set(t,r)}get(t){return t>=0&&t<256?this._asciiMap[t]:this._map.get(t)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class Bme{constructor(){this._actual=new Gz(0)}add(t){this._actual.set(t,1)}has(t){return this._actual.get(t)===1}clear(){return this._actual.clear()}}class tio extends Gz{constructor(t,n){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=n,this.intlSegmenterLocales.length>0?this._segmenter=yI.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let r=0,o=t.length;rn)break;r=o}return r}findNextIntlWordAtOrAfterOffset(t,n){for(const r of this._getIntlSegmenterWordsOnLine(t))if(!(r.index=0;a--){const l=t.charCodeAt(a),d=n.get(l);if(s&&a===s.index)return this._createIntlWord(s,d);if(d===0){if(o===2)return this._createWord(t,o,d,a+1,this._findEndOfWord(t,n,o,a+1));o=1}else if(d===2){if(o===1)return this._createWord(t,o,d,a+1,this._findEndOfWord(t,n,o,a+1));o=2}else if(d===1&&o!==0)return this._createWord(t,o,d,a+1,this._findEndOfWord(t,n,o,a+1))}return o!==0?this._createWord(t,o,1,0,this._findEndOfWord(t,n,o,0)):null}static _findEndOfWord(t,n,r,o){const s=n.findNextIntlWordAtOrAfterOffset(t,o),a=t.length;for(let l=o;l=0;a--){const l=t.charCodeAt(a),d=n.get(l);if(s&&a===s.index)return a;if(d===1||r===1&&d===2||r===2&&d===0)return a+1}return 0}static moveWordLeft(t,n,r,o,s){let a=r.lineNumber,l=r.column;l===1&&a>1&&(a=a-1,l=n.getLineMaxColumn(a));let d=as._findPreviousWordOnLine(t,n,new it(a,l));if(o===0)return new it(a,d?d.start+1:1);if(o===1)return!s&&d&&d.wordType===2&&d.end-d.start===1&&d.nextCharClass===0&&(d=as._findPreviousWordOnLine(t,n,new it(a,d.start+1))),new it(a,d?d.start+1:1);if(o===3){for(;d&&d.wordType===2;)d=as._findPreviousWordOnLine(t,n,new it(a,d.start+1));return new it(a,d?d.start+1:1)}return d&&l<=d.end+1&&(d=as._findPreviousWordOnLine(t,n,new it(a,d.start+1))),new it(a,d?d.end+1:1)}static _moveWordPartLeft(t,n){const r=n.lineNumber,o=t.getLineMaxColumn(r);if(n.column===1)return r>1?new it(r-1,t.getLineMaxColumn(r-1)):n;const s=t.getLineContent(r);for(let a=n.column-1;a>1;a--){const l=s.charCodeAt(a-2),d=s.charCodeAt(a-1);if(l===95&&d!==95)return new it(r,a);if(l===45&&d!==45)return new it(r,a);if((l9(l)||ale(l))&&dO(d))return new it(r,a);if(dO(l)&&dO(d)&&a+1=d.start+1&&(d=as._findNextWordOnLine(t,n,new it(s,d.end+1))),d?a=d.start+1:a=n.getLineMaxColumn(s);return new it(s,a)}static _moveWordPartRight(t,n){const r=n.lineNumber,o=t.getLineMaxColumn(r);if(n.column===o)return r1?u=1:(d--,u=o.getLineMaxColumn(d)):(h&&u<=h.end+1&&(h=as._findPreviousWordOnLine(r,o,new it(d,h.start+1))),h?u=h.end+1:u>1?u=1:(d--,u=o.getLineMaxColumn(d))),new Ee(d,u,l.lineNumber,l.column)}static deleteInsideWord(t,n,r){if(!r.isEmpty())return r;const o=new it(r.positionLineNumber,r.positionColumn),s=this._deleteInsideWordWhitespace(n,o);return s||this._deleteInsideWordDetermineDeleteRange(t,n,o)}static _charAtIsWhitespace(t,n){const r=t.charCodeAt(n);return r===32||r===9}static _deleteInsideWordWhitespace(t,n){const r=t.getLineContent(n.lineNumber),o=r.length;if(o===0)return null;let s=Math.max(n.column-2,0);if(!this._charAtIsWhitespace(r,s))return null;let a=Math.min(n.column-1,o-1);if(!this._charAtIsWhitespace(r,a))return null;for(;s>0&&this._charAtIsWhitespace(r,s-1);)s--;for(;a+11?new Ee(r.lineNumber-1,n.getLineMaxColumn(r.lineNumber-1),r.lineNumber,1):r.lineNumberg.start+1<=r.column&&r.column<=g.end+1,l=(g,m)=>(g=Math.min(g,r.column),m=Math.max(m,r.column),new Ee(r.lineNumber,g,r.lineNumber,m)),d=g=>{let m=g.start+1,v=g.end+1,f=!1;for(;v-11&&this._charAtIsWhitespace(o,m-2);)m--;return l(m,v)},u=as._findPreviousWordOnLine(t,n,r);if(u&&a(u))return d(u);const h=as._findNextWordOnLine(t,n,r);return h&&a(h)?d(h):u&&h?l(u.end+1,h.start+1):u?l(u.start+1,u.end+1):h?l(h.start+1,h.end+1):l(1,s+1)}static _deleteWordPartLeft(t,n){if(!n.isEmpty())return n;const r=n.getPosition(),o=as._moveWordPartLeft(t,r);return new Ee(r.lineNumber,r.column,o.lineNumber,o.column)}static _findFirstNonWhitespaceChar(t,n){const r=t.length;for(let o=n;o=m.start+1&&(m=as._findNextWordOnLine(r,o,new it(d,m.end+1))),m?u=m.start+1:u!!t)}function uO(e){if(!e||typeof e!="object"||e instanceof RegExp)return e;const t=Array.isArray(e)?[]:{};return Object.entries(e).forEach(([n,r])=>{t[n]=r&&typeof r=="object"?uO(r):r}),t}function nio(e){if(!e||typeof e!="object")return e;const t=[e];for(;t.length>0;){const n=t.shift();Object.freeze(n);for(const r in n)if($En.call(n,r)){const o=n[r];typeof o=="object"&&!Object.isFrozen(o)&&!yJr(o)&&t.push(o)}}return e}const $En=Object.prototype.hasOwnProperty;function XEn(e,t){return ONe(e,t,new Set)}function ONe(e,t,n){if(Qv(e))return e;const r=t(e);if(typeof r<"u")return r;if(Array.isArray(e)){const o=[];for(const s of e)o.push(ONe(s,t,n));return o}if(Pd(e)){if(n.has(e))throw new Error("Cannot clone recursive data-structure");n.add(e);const o={};for(const s in e)$En.call(e,s)&&(o[s]=ONe(e[s],t,n));return n.delete(e),o}return e}function Pbe(e,t,n=!0){return Pd(e)?(Pd(t)&&Object.keys(t).forEach(r=>{r in e?n&&(Pd(e[r])&&Pd(t[r])?Pbe(e[r],t[r],n):e[r]=t[r]):e[r]=t[r]}),e):t}function Q0(e,t){if(e===t)return!0;if(e==null||t===null||t===void 0||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;let n,r;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(n=0;nu&&(h=u,g=t.model.getLineMaxColumn(h)),So.fromModelState(new rh(new Ee(a.lineNumber,1,h,g),2,0,new it(h,g),0))}const d=n.modelState.selectionStart.getStartPosition().lineNumber;if(a.lineNumberd){const u=t.getLineCount();let h=l.lineNumber+1,g=1;return h>u&&(h=u,g=t.getLineMaxColumn(h)),So.fromViewState(n.viewState.move(!0,h,g,0))}else{const u=n.modelState.selectionStart.getEndPosition();return So.fromModelState(n.modelState.move(!0,u.lineNumber,u.column,0))}}static word(t,n,r,o){const s=t.model.validatePosition(o);return So.fromModelState(as.word(t.cursorConfig,t.model,n.modelState,r,s))}static cancelSelection(t,n){if(!n.modelState.hasSelection())return new So(n.modelState,n.viewState);const r=n.viewState.position.lineNumber,o=n.viewState.position.column;return So.fromViewState(new rh(new Ee(r,o,r,o),0,0,new it(r,o),0))}static moveTo(t,n,r,o,s){if(r){if(n.modelState.selectionStartKind===1)return this.word(t,n,r,o);if(n.modelState.selectionStartKind===2)return this.line(t,n,r,o,s)}const a=t.model.validatePosition(o),l=s?t.coordinatesConverter.validateViewPosition(new it(s.lineNumber,s.column),a):t.coordinatesConverter.convertModelPositionToViewPosition(a);return So.fromViewState(n.viewState.move(r,l.lineNumber,l.column,0))}static simpleMove(t,n,r,o,s,a){switch(r){case 0:return a===4?this._moveHalfLineLeft(t,n,o):this._moveLeft(t,n,o,s);case 1:return a===4?this._moveHalfLineRight(t,n,o):this._moveRight(t,n,o,s);case 2:return a===2?this._moveUpByViewLines(t,n,o,s):this._moveUpByModelLines(t,n,o,s);case 3:return a===2?this._moveDownByViewLines(t,n,o,s):this._moveDownByModelLines(t,n,o,s);case 4:return a===2?n.map(l=>So.fromViewState(ss.moveToPrevBlankLine(t.cursorConfig,t,l.viewState,o))):n.map(l=>So.fromModelState(ss.moveToPrevBlankLine(t.cursorConfig,t.model,l.modelState,o)));case 5:return a===2?n.map(l=>So.fromViewState(ss.moveToNextBlankLine(t.cursorConfig,t,l.viewState,o))):n.map(l=>So.fromModelState(ss.moveToNextBlankLine(t.cursorConfig,t.model,l.modelState,o)));case 6:return this._moveToViewMinColumn(t,n,o);case 7:return this._moveToViewFirstNonWhitespaceColumn(t,n,o);case 8:return this._moveToViewCenterColumn(t,n,o);case 9:return this._moveToViewMaxColumn(t,n,o);case 10:return this._moveToViewLastNonWhitespaceColumn(t,n,o);default:return null}}static viewportMove(t,n,r,o,s){const a=t.getCompletelyVisibleViewRange(),l=t.coordinatesConverter.convertViewRangeToModelRange(a);switch(r){case 11:{const d=this._firstLineNumberInRange(t.model,l,s),u=t.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(t,n[0],o,d,u)]}case 13:{const d=this._lastLineNumberInRange(t.model,l,s),u=t.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(t,n[0],o,d,u)]}case 12:{const d=Math.round((l.startLineNumber+l.endLineNumber)/2),u=t.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(t,n[0],o,d,u)]}case 14:{const d=[];for(let u=0,h=n.length;ur.endLineNumber-1?a=r.endLineNumber-1:s{const l=t.getTextDirection(s.viewState.position.lineNumber)===Xk.RTL;return So.fromViewState(l?ss.moveRight(t.cursorConfig,t,s.viewState,r,o):ss.moveLeft(t.cursorConfig,t,s.viewState,r,o))})}static _moveHalfLineLeft(t,n,r){const o=[];for(let s=0,a=n.length;s{const l=t.getTextDirection(s.viewState.position.lineNumber)===Xk.RTL;return So.fromViewState(l?ss.moveLeft(t.cursorConfig,t,s.viewState,r,o):ss.moveRight(t.cursorConfig,t,s.viewState,r,o))})}static _moveHalfLineRight(t,n,r){const o=[];for(let s=0,a=n.length;so!=null),new Promise((o,s)=>{let a=!0,l=!1;const d=e.map(h=>({isFinished:t(h),error:n?n(h):!1,state:h})),u=Oi(h=>{const{isFinished:g,error:m,state:v}=d.read(h);(g||m)&&(a?l=!0:u.dispose(),m?s(m===!0?v:m):o(v))});if(r){const h=r.onCancellationRequested(()=>{u.dispose(),h.dispose(),s(new lA)});if(r.isCancellationRequested){u.dispose(),h.dispose(),s(new lA);return}}a=!1,l&&u.dispose()})}function A0(e,t,n=Hd.ofCaller()){return new z0o(typeof e=="string"?e:new tf(e,void 0,void 0),t,n)}class z0o extends Vz{constructor(t,n,r){super(r),this.event=n,this.handleEvent=()=>{la(o=>{for(const s of this._observers)o.updateObserver(s,this),s.handleChange(this,void 0)},()=>this.debugName)},this.debugName=typeof t=="string"?t:t.getDebugName(this)??"Observable Signal From Event"}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}var H0o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},$0o=function(e,t){return function(n,r){t(n,r,e)}};let oje=class extends ft{setActiveMovedText(t){this._activeMovedText.set(t,void 0)}constructor(t,n,r){super(),this.model=t,this._options=n,this._diffProviderFactoryService=r,this._isDiffUpToDate=Ti(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=Ti(this,void 0),this.diff=this._diff,this._unchangedRegions=Ti(this,void 0),this.unchangedRegions=Rt(this,l=>{var d;return this._options.hideUnchangedRegions.read(l)?((d=this._unchangedRegions.read(l))==null?void 0:d.regions)??[]:(la(u=>{var h;for(const g of((h=this._unchangedRegions.read(void 0))==null?void 0:h.regions)||[])g.collapseAll(u)}),[])}),this.movedTextToCompare=Ti(this,void 0),this._activeMovedText=Ti(this,void 0),this._hoveredMovedText=Ti(this,void 0),this.activeMovedText=Rt(this,l=>this.movedTextToCompare.read(l)??this._hoveredMovedText.read(l)??this._activeMovedText.read(l)),this._cancellationTokenSource=new ja,this._diffProvider=Rt(this,l=>{const d=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(l)}),u=A0("onDidChange",d.onDidChange);return{diffProvider:d,onChangeSignal:u}}),this._register(Hn(()=>this._cancellationTokenSource.cancel()));const o=Mv("contentChangedSignal"),s=this._register(new Es(()=>o.trigger(void 0),200));this._register(Oi(l=>{const d=this._unchangedRegions.read(l);if(!d||d.regions.some(f=>f.isDragged.read(l)))return;const u=d.originalDecorationIds.map(f=>t.original.getDecorationRange(f)).map(f=>f?Ei.fromRangeInclusive(f):void 0),h=d.modifiedDecorationIds.map(f=>t.modified.getDecorationRange(f)).map(f=>f?Ei.fromRangeInclusive(f):void 0),g=d.regions.map((f,k)=>!u[k]||!h[k]?void 0:new A9(u[k].startLineNumber,h[k].startLineNumber,u[k].length,f.visibleLineCountTop.read(l),f.visibleLineCountBottom.read(l))).filter(Ru),m=[];let v=!1;for(const f of jJe(g,(k,A)=>k.getHiddenModifiedRange(l).endLineNumberExclusive===A.getHiddenModifiedRange(l).startLineNumber))if(f.length>1){v=!0;const k=f.reduce((p,b)=>p+b.lineCount,0),A=new A9(f[0].originalLineNumber,f[0].modifiedLineNumber,k,f[0].visibleLineCountTop.read(void 0),f[f.length-1].visibleLineCountBottom.read(void 0));m.push(A)}else m.push(f[0]);if(v){const f=t.original.deltaDecorations(d.originalDecorationIds,m.map(A=>({range:A.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),k=t.modified.deltaDecorations(d.modifiedDecorationIds,m.map(A=>({range:A.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));la(A=>{this._unchangedRegions.set({regions:m,originalDecorationIds:f,modifiedDecorationIds:k},A)})}}));const a=(l,d,u)=>{const h=A9.fromDiffs(l.changes,t.original.getLineCount(),t.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(u),this._options.hideUnchangedRegionsContextLineCount.read(u));let g;const m=this._unchangedRegions.get();if(m){const A=m.originalDecorationIds.map(O=>t.original.getDecorationRange(O)).map(O=>O?Ei.fromRangeInclusive(O):void 0),p=m.modifiedDecorationIds.map(O=>t.modified.getDecorationRange(O)).map(O=>O?Ei.fromRangeInclusive(O):void 0);let w=b0o(m.regions.map((O,y)=>{if(!A[y]||!p[y])return;const C=A[y].length;return new A9(A[y].startLineNumber,p[y].startLineNumber,C,Math.min(O.visibleLineCountTop.get(),C),Math.min(O.visibleLineCountBottom.get(),C-O.visibleLineCountTop.get()))}).filter(Ru),(O,y)=>!y||O.modifiedLineNumber>=y.modifiedLineNumber+y.lineCount&&O.originalLineNumber>=y.originalLineNumber+y.lineCount).map(O=>new Ag(O.getHiddenOriginalRange(u),O.getHiddenModifiedRange(u)));w=Ag.clip(w,Ei.ofLength(1,t.original.getLineCount()),Ei.ofLength(1,t.modified.getLineCount())),g=Ag.inverse(w,t.original.getLineCount(),t.modified.getLineCount())}const v=[];if(g)for(const A of h){const p=g.filter(b=>b.original.intersectsStrict(A.originalUnchangedRange)&&b.modified.intersectsStrict(A.modifiedUnchangedRange));v.push(...A.setVisibleRanges(p,d))}else v.push(...h);const f=t.original.deltaDecorations((m==null?void 0:m.originalDecorationIds)||[],v.map(A=>({range:A.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),k=t.modified.deltaDecorations((m==null?void 0:m.modifiedDecorationIds)||[],v.map(A=>({range:A.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:v,originalDecorationIds:f,modifiedDecorationIds:k},d)};this._register(t.modified.onDidChangeContent(l=>{if(this._diff.get()){const u=BS.fromModelContentChanges(l.changes);this._lastDiff,t.original,t.modified}this._isDiffUpToDate.set(!1,void 0),s.schedule()})),this._register(t.original.onDidChangeContent(l=>{if(this._diff.get()){const u=BS.fromModelContentChanges(l.changes);this._lastDiff,t.original,t.modified}this._isDiffUpToDate.set(!1,void 0),s.schedule()})),this._register(Ef(async(l,d)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(l),this._options.hideUnchangedRegionsContextLineCount.read(l),s.cancel(),o.read(l);const u=this._diffProvider.read(l);u.onChangeSignal.read(l),this._isDiffUpToDate.set(!1,void 0);let h=[];d.add(t.original.onDidChangeContent(v=>{const f=BS.fromModelContentChanges(v.changes);h=m1e(h,f)}));let g=[];d.add(t.modified.onDidChangeContent(v=>{const f=BS.fromModelContentChanges(v.changes);g=m1e(g,f)}));let m=await u.diffProvider.computeDiff(t.original,t.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(l),maxComputationTimeMs:this._options.maxComputationTimeMs.read(l),computeMoves:this._options.showMoves.read(l)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||t.original.isDisposed()||t.modified.isDisposed()||(m=X0o(m,t.original,t.modified),m=(t.original,t.modified,void 0)??m,m=(t.original,t.modified,void 0)??m,la(v=>{a(m,v),this._lastDiff=m;const f=Ltt.fromDiffResult(m);this._diff.set(f,v),this._isDiffUpToDate.set(!0,v);const k=this.movedTextToCompare.read(void 0);this.movedTextToCompare.set(k?this._lastDiff.moves.find(A=>A.lineRangeMapping.modified.intersect(k.lineRangeMapping.modified)):void 0,v)}))}))}ensureModifiedLineIsVisible(t,n,r){var s,a;if(((s=this.diff.get())==null?void 0:s.mappings.length)===0)return;const o=((a=this._unchangedRegions.get())==null?void 0:a.regions)||[];for(const l of o)if(l.getHiddenModifiedRange(void 0).contains(t)){l.showModifiedLine(t,n,r);return}}ensureOriginalLineIsVisible(t,n,r){var s,a;if(((s=this.diff.get())==null?void 0:s.mappings.length)===0)return;const o=((a=this._unchangedRegions.get())==null?void 0:a.regions)||[];for(const l of o)if(l.getHiddenOriginalRange(void 0).contains(t)){l.showOriginalLine(t,n,r);return}}async waitForDiff(){await dDn(this.isDiffUpToDate,t=>t)}serializeState(){const t=this._unchangedRegions.get();return{collapsedRegions:t==null?void 0:t.regions.map(n=>({range:n.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(t){var o;const n=(o=t.collapsedRegions)==null?void 0:o.map(s=>Ei.deserialize(s.range)),r=this._unchangedRegions.get();!r||!n||la(s=>{for(const a of r.regions)for(const l of n)if(a.modifiedUnchangedRange.intersect(l)){a.setHiddenModifiedRange(l,s);break}})}};oje=H0o([$0o(2,cDn)],oje);function X0o(e,t,n){return{changes:e.changes.map(r=>new s2(r.original,r.modified,r.innerChanges?r.innerChanges.map(o=>G0o(o,t,n)):void 0)),moves:e.moves,identical:e.identical,quitEarly:e.quitEarly}}function G0o(e,t,n){let r=e.originalRange,o=e.modifiedRange;return r.startColumn===1&&o.startColumn===1&&(r.endColumn!==1||o.endColumn!==1)&&r.endColumn===t.getLineMaxColumn(r.endLineNumber)&&o.endColumn===n.getLineMaxColumn(o.endLineNumber)&&r.endLineNumbernew uDn(n)),t.moves||[],t.identical,t.quitEarly)}constructor(t,n,r,o){this.mappings=t,this.movedTexts=n,this.identical=r,this.quitEarly=o}}class uDn{constructor(t){this.lineRangeMapping=t}}class A9{static fromDiffs(t,n,r,o,s){const a=s2.inverse(t,n,r),l=[];for(const d of a){let u=d.original.startLineNumber,h=d.modified.startLineNumber,g=d.original.length;const m=u===1&&h===1,v=u+g===n+1&&h+g===r+1;(m||v)&&g>=s+o?(m&&!v&&(g-=s),v&&!m&&(u+=s,h+=s,g-=s),l.push(new A9(u,h,g,0,0))):g>=s*2+o&&(u+=s,h+=s,g-=s*2,l.push(new A9(u,h,g,0,0)))}return l}get originalUnchangedRange(){return Ei.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return Ei.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(t,n,r,o,s){this.originalLineNumber=t,this.modifiedLineNumber=n,this.lineCount=r,this._visibleLineCountTop=Ti(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=Ti(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=Rt(this,d=>this.visibleLineCountTop.read(d)+this.visibleLineCountBottom.read(d)===this.lineCount&&!this.isDragged.read(d)),this.isDragged=Ti(this,void 0);const a=Math.max(Math.min(o,this.lineCount),0),l=Math.max(Math.min(s,this.lineCount-o),0);ebt(o===a),ebt(s===l),this._visibleLineCountTop.set(a,void 0),this._visibleLineCountBottom.set(l,void 0)}setVisibleRanges(t,n){const r=[],o=new Iv(t.map(d=>d.modified)).subtractFrom(this.modifiedUnchangedRange);let s=this.originalLineNumber,a=this.modifiedLineNumber;const l=this.modifiedLineNumber+this.lineCount;if(o.ranges.length===0)this.showAll(n),r.push(this);else{let d=0;for(const u of o.ranges){const h=d===o.ranges.length-1;d++;const g=(h?l:u.endLineNumberExclusive)-a,m=new A9(s,a,g,0,0);m.setHiddenModifiedRange(u,n),r.push(m),s=m.originalUnchangedRange.endLineNumberExclusive,a=m.modifiedUnchangedRange.endLineNumberExclusive}}return r}shouldHideControls(t){return this._shouldHideControls.read(t)}getHiddenOriginalRange(t){return Ei.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(t),this.lineCount-this._visibleLineCountTop.read(t)-this._visibleLineCountBottom.read(t))}getHiddenModifiedRange(t){return Ei.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(t),this.lineCount-this._visibleLineCountTop.read(t)-this._visibleLineCountBottom.read(t))}setHiddenModifiedRange(t,n){const r=t.startLineNumber-this.modifiedLineNumber,o=this.modifiedLineNumber+this.lineCount-t.endLineNumberExclusive;this.setState(r,o,n)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(t=10,n){const r=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+t,r),n)}showMoreBelow(t=10,n){const r=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+t,r),n)}showAll(t){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),t)}showModifiedLine(t,n,r){const o=t+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),s=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-t;n===0&&o{l.preventDefault();const d=t.ownerDocument.getSelection();if(!d||d.rangeCount===0)return;const u=d.getRangeAt(0);if(!u||u.collapsed)return;const h=u.startContainer.nodeType===Node.TEXT_NODE?u.startContainer.parentElement:u.startContainer,g=u.endContainer.nodeType===Node.TEXT_NODE?u.endContainer.parentElement:u.endContainer;if(!h||!g)return;const m=n.getModelPositionAt(h,u.startOffset),v=n.getModelPositionAt(g,u.endOffset);if(!m||!v)return;const f=m.delta(r.original.startLineNumber-1),k=v.delta(r.original.startLineNumber-1),A=k.isBefore(f)?Ee.fromPositions(k,f):Ee.fromPositions(f,k),p=o.getValueInRange(A);s.writeText(p)})),a}class Z0o extends ft{get visibility(){return this._visibility}set visibility(t){this._visibility!==t&&(this._visibility=t,this._diffActions.style.visibility=t?"visible":"hidden")}constructor(t,n,r,o,s,a,l,d,u,h){super(),this._getViewZoneId=t,this._marginDomNode=n,this._deletedCodeDomNode=r,this._modifiedEditor=o,this._diff=s,this._editor=a,this._renderLinesResult=l,this._originalTextModel=d,this._contextMenuService=u,this._clipboardService=h,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=fi.asClassName(zt.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";const g=this._modifiedEditor.getOption(75);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${g}px`,this._diffActions.style.lineHeight=`${g}px`,this._marginDomNode.appendChild(this._diffActions);let m=0;const v=o.getOption(144)&&!cA,f=(k,A,p)=>{this._contextMenuService.showContextMenu({domForShadowRoot:v?o.getDomNode()??void 0:void 0,getAnchor:()=>k,onHide:p,getActions:()=>{const b=[],w=s.modified.isEmpty;return b.push(new n2("diff.clipboard.copyDeletedContent",w?s.original.length>1?U(112,"Copy deleted lines"):U(113,"Copy deleted line"):s.original.length>1?U(114,"Copy changed lines"):U(115,"Copy changed line"),void 0,!0,async()=>{const y=this._originalTextModel.getValueInRange(s.original.toExclusiveRange());await this._clipboardService.writeText(y)})),s.original.length>1&&b.push(new n2("diff.clipboard.copyDeletedLineContent",w?U(116,"Copy deleted line ({0})",s.original.startLineNumber+m):U(117,"Copy changed line ({0})",s.original.startLineNumber+m),void 0,!0,async()=>{let y=this._originalTextModel.getLineContent(s.original.startLineNumber+m);y===""&&(y=this._originalTextModel.getEndOfLineSequence()===0?` `:`\r `),await this._clipboardService.writeText(y)})),o.getOption(104)||b.push(new n2("diff.inline.revertChange",U(118,"Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),b},autoSelectFirstItem:!0})};this._register(wc(this._diffActions,"mousedown",k=>{if(!k.leftButton)return;const{top:A,height:p}=Kl(this._diffActions),b=Math.floor(g/3);k.preventDefault(),f({x:k.posx,y:A+p+b})})),this._register(o.onMouseMove(k=>{(k.target.type===8||k.target.type===5)&&k.target.detail.viewZoneId===this._getViewZoneId()?(m=this._updateLightBulbPosition(this._marginDomNode,k.event.browserEvent.y,g),this.visibility=!0):this.visibility=!1})),this._register(Y0o({domNode:this._deletedCodeDomNode,diffEntry:s,originalModel:this._originalTextModel,renderLinesResult:this._renderLinesResult,clipboardService:h}))}_updateLightBulbPosition(t,n,r){const{top:o}=Kl(t),s=n-o,a=Math.floor(s/r),l=a*r;if(this._diffActions.style.top=`${l}px`,this._renderLinesResult.viewLineCounts){let d=0;for(let u=0;ue});function $ie(e,t,n,r,o=!1){Fu(r,t.fontInfo);const s=n.length>0,a=new sE(1e4);let l=0,d=0;const u=[],h=[];for(let f=0;fnull),r=!0,o=!0){this.lineTokens=t,this.lineBreakData=n,this.mightContainNonBasicASCII=r,this.mightContainRTL=o}}class o8{static fromEditor(t){var s;const n=t.getOptions(),r=n.get(59),o=n.get(165);return new o8(((s=t.getModel())==null?void 0:s.getOptions().tabSize)||0,r,n.get(40),r.typicalHalfwidthCharacterWidth,n.get(118),n.get(75),o.decorationsWidth,n.get(133),n.get(113),n.get(108),n.get(60),n.get(117).verticalScrollbarSize)}constructor(t,n,r,o,s,a,l,d,u,h,g,m,v=!0){this.tabSize=t,this.fontInfo=n,this.disableMonospaceOptimizations=r,this.typicalHalfwidthCharacterWidth=o,this.scrollBeyondLastColumn=s,this.lineHeight=a,this.lineDecorationsWidth=l,this.stopRenderingLineAfter=d,this.renderWhitespace=u,this.renderControlCharacters=h,this.fontLigatures=g,this.verticalScrollbarSize=m,this.setWidth=v}withSetWidth(t){return new o8(this.tabSize,this.fontInfo,this.disableMonospaceOptimizations,this.typicalHalfwidthCharacterWidth,this.scrollBeyondLastColumn,this.lineHeight,this.lineDecorationsWidth,this.stopRenderingLineAfter,this.renderWhitespace,this.renderControlCharacters,this.fontLigatures,this.verticalScrollbarSize,t)}withScrollBeyondLastColumn(t){return new o8(this.tabSize,this.fontInfo,this.disableMonospaceOptimizations,this.typicalHalfwidthCharacterWidth,t,this.lineHeight,this.lineDecorationsWidth,this.stopRenderingLineAfter,this.renderWhitespace,this.renderControlCharacters,this.fontLigatures,this.verticalScrollbarSize,this.setWidth)}}class q0o{constructor(t,n,r,o,s){this.heightInLines=t,this.minWidthInPx=n,this.viewLineCounts=r,this._renderOutputs=o,this._source=s}getModelPositionAt(t,n){let r=t;for(;r&&!r.classList.contains("view-line");)r=r.parentElement;if(!r)return;const o=r.parentElement;if(!o)return;const s=o.querySelectorAll(".view-line");let a=-1;for(let g=0;g=this._renderOutputs.length)return;let l=1,d=a;for(let g=0;gthis._source.lineTokens.length)return;const u=this._renderOutputs[a];if(!u)return;const h=rV(u.characterMapping,t,n)+u.offset;return new it(l,h)}}class yOt extends qme{constructor(t,n,r){super(t,n),this.offset=r}}function COt(e,t,n,r,o,s,a,l,d){l.appendString('
'):l.appendString('px;">');const u=t.getLineContent(),h=g2.isBasicASCII(u,o),g=g2.containsRTL(u,h,s),m=tH(new AL(a.fontInfo.isMonospace&&!a.disableMonospaceOptimizations,a.fontInfo.canUseHalfwidthRightwardsArrow,u,!1,h,g,0,t,n,a.tabSize,0,a.fontInfo.spaceWidth,a.fontInfo.middotWidth,a.fontInfo.wsmiddotWidth,a.stopRenderingLineAfter,a.renderWhitespace,a.renderControlCharacters,a.fontLigatures!==F8.OFF,null,null,a.verticalScrollbarSize),l);l.appendString("
");const v=m.characterMapping.getHorizontalOffset(m.characterMapping.length);return{output:m,maxCharWidth:v}}const U0=Cr("clipboardService"),wL=Cr("contextViewService"),S2=Cr("contextMenuService");var K0o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_Ot=function(e,t){return function(n,r){t(n,r,e)}};let sje=class extends ft{constructor(t,n,r,o,s,a,l,d,u,h){super(),this._targetWindow=t,this._editors=n,this._diffModel=r,this._options=o,this._diffEditorWidget=s,this._canIgnoreViewZoneUpdateEvent=a,this._origViewZonesToIgnore=l,this._modViewZonesToIgnore=d,this._clipboardService=u,this._contextMenuService=h,this._originalTopPadding=Ti(this,0),this._originalScrollOffset=Ti(this,0),this._originalScrollOffsetAnimated=dOt(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=Ti(this,0),this._modifiedScrollOffset=Ti(this,0),this._modifiedScrollOffsetAnimated=dOt(this._targetWindow,this._modifiedScrollOffset,this._store);const g=Ti("invalidateAlignmentsState",0),m=this._register(new Es(()=>{g.set(g.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||m.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||m.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(w=>{(w.hasChanged(166)||w.hasChanged(75))&&m.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(w=>{(w.hasChanged(166)||w.hasChanged(75))&&m.schedule()}));const v=this._diffModel.map(w=>w?Ko(this,w.model.original.onDidChangeTokens,()=>w.model.original.tokenization.backgroundTokenizationState===2):void 0).map((w,O)=>w==null?void 0:w.read(O)),f=Rt(w=>{const O=this._diffModel.read(w),y=O==null?void 0:O.diff.read(w);if(!O||!y)return null;g.read(w);const _=this._options.renderSideBySide.read(w);return SOt(this._editors.original,this._editors.modified,y.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,_)}),k=Rt(w=>{var C;const O=(C=this._diffModel.read(w))==null?void 0:C.movedTextToCompare.read(w);if(!O)return null;g.read(w);const y=O.changes.map(_=>new uDn(_));return SOt(this._editors.original,this._editors.modified,y,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function A(){const w=document.createElement("div");return w.className="diagonal-fill",w}const p=this._register(new xt);this.viewZones=Rt(this,w=>{var I,F,j,W;p.clear();const O=f.read(w)||[],y=[],C=[],_=this._modifiedTopPadding.read(w);_>0&&C.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:_,showInHiddenAreas:!0,suppressMouseDown:!0});const S=this._originalTopPadding.read(w);S>0&&y.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:S,showInHiddenAreas:!0,suppressMouseDown:!0});const L=this._options.renderSideBySide.read(w),E=L||(I=this._editors.modified._getViewModel())==null?void 0:I.createLineBreaksComputer();if(E){const H=this._editors.original.getModel();for(const $ of O)if($.diff)for(let G=$.originalRange.startLineNumber;G<$.originalRange.endLineNumberExclusive;G++){if(G>H.getLineCount())return{orig:y,mod:C};E==null||E.addRequest(H.getLineContent(G),null,null)}}const T=(E==null?void 0:E.finalize())??[];let D=0;const P=this._editors.modified.getOption(75),Q=(F=this._diffModel.read(w))==null?void 0:F.movedTextToCompare.read(w),M=((j=this._editors.original.getModel())==null?void 0:j.mightContainNonBasicASCII())??!1,B=((W=this._editors.original.getModel())==null?void 0:W.mightContainRTL())??!1,R=o8.fromEditor(this._editors.modified);for(const H of O)if(H.diff&&!L&&(!this._options.useTrueInlineDiffRendering.read(w)||!xtt(H.diff))){if(!H.originalRange.isEmpty){v.read(w);const G=document.createElement("div");G.classList.add("view-lines","line-delete","line-delete-selectable","monaco-mouse-cursor-text");const q=this._editors.original.getModel();if(H.originalRange.endLineNumberExclusive-1>q.getLineCount())return{orig:y,mod:C};const re=new Xie(H.originalRange.mapToLineArray(ue=>q.tokenization.getLineTokens(ue)),H.originalRange.mapToLineArray(ue=>T[D++]),M,B),J=[];for(const ue of H.diff.innerChanges||[])J.push(new AD(ue.originalRange.delta(-(H.diff.original.startLineNumber-1)),eje.className,0));const oe=$ie(re,R,J,G),se=document.createElement("div");if(se.className="inline-deleted-margin-view-zone",Fu(se,R.fontInfo),this._options.renderIndicators.read(w))for(let ue=0;uea9(le),se,G,this._editors.modified,H.diff,this._diffEditorWidget,oe,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ue=0;ue1&&y.push({afterLineNumber:H.originalRange.startLineNumber+ue,domNode:A(),heightInPx:(ee-1)*P,showInHiddenAreas:!0,suppressMouseDown:!0})}C.push({afterLineNumber:H.modifiedRange.startLineNumber-1,domNode:G,heightInPx:oe.heightInLines*P,minWidthInPx:oe.minWidthInPx,marginDomNode:se,setZoneId(ue){le=ue},showInHiddenAreas:!0,suppressMouseDown:!1})}const $=document.createElement("div");$.className="gutter-delete",y.push({afterLineNumber:H.originalRange.endLineNumberExclusive-1,domNode:A(),heightInPx:H.modifiedHeightInPx,marginDomNode:$,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const $=H.modifiedHeightInPx-H.originalHeightInPx;if($>0){if(Q!=null&&Q.lineRangeMapping.original.delta(-1).deltaLength(2).contains(H.originalRange.endLineNumberExclusive-1))continue;y.push({afterLineNumber:H.originalRange.endLineNumberExclusive-1,domNode:A(),heightInPx:$,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let G=function(){const re=document.createElement("div");return re.className="arrow-revert-change "+fi.asClassName(zt.arrowRight),w.store.add(wt(re,"mousedown",J=>J.stopPropagation())),w.store.add(wt(re,"click",J=>{J.stopPropagation(),s.revert(H.diff)})),tn("div",{},re)};if(Q!=null&&Q.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(H.modifiedRange.endLineNumberExclusive-1))continue;let q;H.diff&&H.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(w)&&(q=G()),C.push({afterLineNumber:H.modifiedRange.endLineNumberExclusive-1,domNode:A(),heightInPx:-$,marginDomNode:q,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const H of k.read(w)??[]){if(!(Q!=null&&Q.lineRangeMapping.original.intersect(H.originalRange))||!(Q!=null&&Q.lineRangeMapping.modified.intersect(H.modifiedRange)))continue;const $=H.modifiedHeightInPx-H.originalHeightInPx;$>0?y.push({afterLineNumber:H.originalRange.endLineNumberExclusive-1,domNode:A(),heightInPx:$,showInHiddenAreas:!0,suppressMouseDown:!0}):C.push({afterLineNumber:H.modifiedRange.endLineNumberExclusive-1,domNode:A(),heightInPx:-$,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:y,mod:C}});let b=!1;this._register(this._editors.original.onDidScrollChange(w=>{w.scrollLeftChanged&&!b&&(b=!0,this._editors.modified.setScrollLeft(w.scrollLeft),b=!1)})),this._register(this._editors.modified.onDidScrollChange(w=>{w.scrollLeftChanged&&!b&&(b=!0,this._editors.original.setScrollLeft(w.scrollLeft),b=!1)})),this._originalScrollTop=Ko(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=Ko(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(Oi(w=>{const O=this._originalScrollTop.read(w)-(this._originalScrollOffsetAnimated.read(void 0)-this._modifiedScrollOffsetAnimated.read(w))-(this._originalTopPadding.read(void 0)-this._modifiedTopPadding.read(w));O!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(O,1)})),this._register(Oi(w=>{const O=this._modifiedScrollTop.read(w)-(this._modifiedScrollOffsetAnimated.read(void 0)-this._originalScrollOffsetAnimated.read(w))-(this._modifiedTopPadding.read(void 0)-this._originalTopPadding.read(w));O!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(O,1)})),this._register(Oi(w=>{var C;const O=(C=this._diffModel.read(w))==null?void 0:C.movedTextToCompare.read(w);let y=0;if(O){const _=this._editors.original.getTopForLineNumber(O.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.read(void 0);y=this._editors.modified.getTopForLineNumber(O.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.read(void 0)-_}y>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(y,void 0)):y<0?(this._modifiedTopPadding.set(-y,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.read(void 0)-y,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.read(void 0)+y,void 0,!0)}))}};sje=K0o([_Ot(8,U0),_Ot(9,S2)],sje);function SOt(e,t,n,r,o,s){const a=new P8(LOt(e,r)),l=new P8(LOt(t,o)),d=e.getOption(75),u=t.getOption(75),h=[];let g=0,m=0;function v(f,k){for(;;){let A=a.peek(),p=l.peek();if(A&&A.lineNumber>=f&&(A=void 0),p&&p.lineNumber>=k&&(p=void 0),!A&&!p)break;const b=A?A.lineNumber-g:Number.MAX_VALUE,w=p?p.lineNumber-m:Number.MAX_VALUE;bw?(l.dequeue(),A={lineNumber:p.lineNumber-m+g,heightInPx:0}):(a.dequeue(),l.dequeue()),h.push({originalRange:Ei.ofLength(A.lineNumber,1),modifiedRange:Ei.ofLength(p.lineNumber,1),originalHeightInPx:d+A.heightInPx,modifiedHeightInPx:u+p.heightInPx,diff:void 0})}}for(const f of n){let w=function(O,y,C=!1){var T,D;if(OP.lineNumberP+Q.heightInPx,0))??0,E=((D=l.takeWhile(P=>P.lineNumberP+Q.heightInPx,0))??0;h.push({originalRange:_,modifiedRange:S,originalHeightInPx:_.length*d+L,modifiedHeightInPx:S.length*u+E,diff:f.lineRangeMapping}),b=O,p=y};const k=f.lineRangeMapping;v(k.original.startLineNumber,k.modified.startLineNumber);let A=!0,p=k.modified.startLineNumber,b=k.original.startLineNumber;if(s)for(const O of k.innerChanges||[]){O.originalRange.startColumn>1&&O.modifiedRange.startColumn>1&&w(O.originalRange.startLineNumber,O.modifiedRange.startLineNumber);const y=e.getModel(),C=O.originalRange.endLineNumber<=y.getLineCount()?y.getLineMaxColumn(O.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;O.originalRange.endColumn1&&r.push({lineNumber:d,heightInPx:a*(u-1)})}for(const d of e.getWhitespaces()){if(t.has(d.id))continue;const u=d.afterLineNumber===0?0:s.convertViewPositionToModelPosition(new it(d.afterLineNumber,1)).lineNumber;n.push({lineNumber:u,heightInPx:d.height})}return m0o(n,r,d=>d.lineNumber,(d,u)=>({lineNumber:d.lineNumber,heightInPx:d.heightInPx+u.heightInPx}))}function xtt(e){return e.innerChanges?e.innerChanges.every(t=>E1e(t.modifiedRange)&&E1e(t.originalRange)||t.originalRange.equalsRange(new Ee(1,1,1,1))):!1}function E1e(e){return e.startLineNumber===e.endLineNumber}const yq=class yq extends ft{constructor(t,n,r,o,s){super(),this._rootElement=t,this._diffModel=n,this._originalEditorLayoutInfo=r,this._modifiedEditorLayoutInfo=o,this._editors=s,this._originalScrollTop=Ko(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=Ko(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=A0("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=Ti(this,0),this._modifiedViewZonesChangedSignal=A0("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=A0("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=Rt(this,h=>{var C;this._element.replaceChildren();const g=this._diffModel.read(h),m=(C=g==null?void 0:g.diff.read(h))==null?void 0:C.movedTexts;if(!m||m.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(h);const v=this._originalEditorLayoutInfo.read(h),f=this._modifiedEditorLayoutInfo.read(h);if(!v||!f){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(h),this._originalViewZonesChangedSignal.read(h);const k=m.map(_=>{function S(R,I){const F=I.getTopForLineNumber(R.startLineNumber,!0),j=I.getTopForLineNumber(R.endLineNumberExclusive,!0);return(F+j)/2}const L=S(_.lineRangeMapping.original,this._editors.original),E=this._originalScrollTop.read(h),T=S(_.lineRangeMapping.modified,this._editors.modified),D=this._modifiedScrollTop.read(h),P=L-E,Q=T-D,M=Math.min(L,T),B=Math.max(L,T);return{range:new Xn(M,B),from:P,to:Q,fromWithoutScroll:L,toWithoutScroll:T,move:_}});k.sort(cto(qh(_=>_.fromWithoutScroll>_.toWithoutScroll,lEn),qh(_=>_.fromWithoutScroll>_.toWithoutScroll?_.fromWithoutScroll:-_.toWithoutScroll,T0)));const A=Ett.compute(k.map(_=>_.range)),p=10,b=v.verticalScrollbarWidth,w=(A.getTrackCount()-1)*10+p*2,O=b+w+(f.contentLeft-yq.movedCodeBlockPadding);let y=0;for(const _ of k){const S=A.getTrack(y),L=b+p+S*10,E=15,T=15,D=O,P=f.glyphMarginWidth+f.lineNumbersWidth,Q=18,M=document.createElementNS("http://www.w3.org/2000/svg","rect");M.classList.add("arrow-rectangle"),M.setAttribute("x",`${D-P}`),M.setAttribute("y",`${_.to-Q/2}`),M.setAttribute("width",`${P}`),M.setAttribute("height",`${Q}`),this._element.appendChild(M);const B=document.createElementNS("http://www.w3.org/2000/svg","g"),R=document.createElementNS("http://www.w3.org/2000/svg","path");R.setAttribute("d",`M 0 ${_.from} L ${L} ${_.from} L ${L} ${_.to} L ${D-T} ${_.to}`),R.setAttribute("fill","none"),B.appendChild(R);const I=document.createElementNS("http://www.w3.org/2000/svg","polygon");I.classList.add("arrow"),h.store.add(Oi(F=>{R.classList.toggle("currentMove",_.move===g.activeMovedText.read(F)),I.classList.toggle("currentMove",_.move===g.activeMovedText.read(F))})),I.setAttribute("points",`${D-T},${_.to-E/2} ${D},${_.to} ${D-T},${_.to+E/2}`),B.appendChild(I),this._element.appendChild(B),y++}this.width.set(w,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(Hn(()=>this._element.remove())),this._register(Oi(h=>{const g=this._originalEditorLayoutInfo.read(h),m=this._modifiedEditorLayoutInfo.read(h);!g||!m||(this._element.style.left=`${g.width-g.verticalScrollbarWidth}px`,this._element.style.height=`${g.height}px`,this._element.style.width=`${g.verticalScrollbarWidth+g.contentLeft-yq.movedCodeBlockPadding+this.width.read(h)}px`)})),this._register(KW(this._state));const a=Rt(h=>{const g=this._diffModel.read(h),m=g==null?void 0:g.diff.read(h);return m?m.movedTexts.map(v=>({move:v,original:new wN(ca(v.lineRangeMapping.original.startLineNumber-1),18),modified:new wN(ca(v.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(_1e(this._editors.original,a.map(h=>h.map(g=>g.original)))),this._register(_1e(this._editors.modified,a.map(h=>h.map(g=>g.modified)))),this._register(Ef((h,g)=>{const m=a.read(h);for(const v of m)g.add(new xOt(this._editors.original,v.original,v.move,"original",this._diffModel.get())),g.add(new xOt(this._editors.modified,v.modified,v.move,"modified",this._diffModel.get()))}));const l=A0("original.onDidFocusEditorWidget",h=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>h(void 0),0))),d=A0("modified.onDidFocusEditorWidget",h=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>h(void 0),0)));let u="modified";this._register(zz({changeTracker:{createChangeSummary:()=>{},handleChange:(h,g)=>(h.didChange(l)&&(u="original"),h.didChange(d)&&(u="modified"),!0)}},h=>{l.read(h),d.read(h);const g=this._diffModel.read(h);if(!g)return;const m=g.diff.read(h);let v;if(m&&u==="original"){const f=this._editors.originalCursor.read(h);f&&(v=m.movedTexts.find(k=>k.lineRangeMapping.original.contains(f.lineNumber)))}if(m&&u==="modified"){const f=this._editors.modifiedCursor.read(h);f&&(v=m.movedTexts.find(k=>k.lineRangeMapping.modified.contains(f.lineNumber)))}v!==g.movedTextToCompare.read(void 0)&&g.movedTextToCompare.set(void 0,void 0),g.setActiveMovedText(v)}))}};yq.movedCodeBlockPadding=4;let jU=yq;class Ett{static compute(t){const n=[],r=[];for(const o of t){let s=n.findIndex(a=>!a.intersectsStrict(o));s===-1&&(n.length>=6?s=wco(n,qh(l=>l.intersectWithRangeLength(o),T0)):(s=n.length,n.push(new aet))),n[s].addRange(o),r.push(s)}return new Ett(n.length,r)}constructor(t,n){this._trackCount=t,this.trackPerLineIdx=n}getTrack(t){return this.trackPerLineIdx[t]}getTrackCount(){return this._trackCount}}class xOt extends Ctt{constructor(t,n,r,o,s){const a=wo("div.diff-hidden-lines-widget");super(t,n,a.root),this._editor=t,this._move=r,this._kind=o,this._diffModel=s,this._nodes=wo("div.diff-moved-code-block",{style:{marginRight:"4px"}},[wo("div.text-content@textContent"),wo("div.action-bar@actionBar")]),a.root.appendChild(this._nodes.root);const l=Ko(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(Q6(this._nodes.root,{paddingRight:l.map(m=>m.verticalScrollbarWidth)}));let d;r.changes.length>0?d=this._kind==="original"?U(131,"Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):U(132,"Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):d=this._kind==="original"?U(133,"Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):U(134,"Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const u=this._register(new g1(this._nodes.actionBar,{highlightToggledItems:!0})),h=new n2("",d,"",!1);u.push(h,{icon:!1,label:!0});const g=new n2("","Compare",fi.asClassName(zt.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===r?void 0:this._move,void 0)});this._register(Oi(m=>{const v=this._diffModel.movedTextToCompare.read(m)===r;g.checked=v})),u.push(g,{icon:!1,label:!0})}}class J0o extends ft{constructor(t,n,r,o){super(),this._editors=t,this._diffModel=n,this._options=r,this._decorations=Rt(this,s=>{const a=this._diffModel.read(s),l=a==null?void 0:a.diff.read(s);if(!l)return null;const d=this._diffModel.read(s).movedTextToCompare.read(s),u=this._options.renderIndicators.read(s),h=this._options.showEmptyDecorations.read(s),g=[],m=[];if(!d)for(const f of l.mappings)if(f.lineRangeMapping.original.isEmpty||g.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:u?AOt:bOt}),f.lineRangeMapping.modified.isEmpty||m.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:u?vOt:pOt}),f.lineRangeMapping.modified.isEmpty||f.lineRangeMapping.original.isEmpty)f.lineRangeMapping.original.isEmpty||g.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:j0o}),f.lineRangeMapping.modified.isEmpty||m.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:N0o});else{const k=this._options.useTrueInlineDiffRendering.read(s)&&xtt(f.lineRangeMapping);for(const A of f.lineRangeMapping.innerChanges||[])if(f.lineRangeMapping.original.contains(A.originalRange.startLineNumber)&&g.push({range:A.originalRange,options:A.originalRange.isEmpty()&&h?W0o:eje}),f.lineRangeMapping.modified.contains(A.modifiedRange.startLineNumber)&&m.push({range:A.modifiedRange,options:A.modifiedRange.isEmpty()&&h&&!k?U0o:wOt}),k){const p=a.model.original.getValueInRange(A.originalRange);m.push({range:A.modifiedRange,options:{description:"deleted-text",before:{content:p,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(d)for(const f of d.changes){const k=f.original.toInclusiveRange();k&&g.push({range:k,options:u?AOt:bOt});const A=f.modified.toInclusiveRange();A&&m.push({range:A,options:u?vOt:pOt});for(const p of f.innerChanges||[])g.push({range:p.originalRange,options:eje}),m.push({range:p.modifiedRange,options:wOt})}const v=this._diffModel.read(s).activeMovedText.read(s);for(const f of l.movedTexts)g.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(f===v?" currentMove":""),blockPadding:[jU.movedCodeBlockPadding,0,jU.movedCodeBlockPadding,jU.movedCodeBlockPadding]}}),m.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(f===v?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:g,modifiedDecorations:m}}),this._register(C1e(this._editors.original,this._decorations.map(s=>(s==null?void 0:s.originalDecorations)||[]))),this._register(C1e(this._editors.modified,this._decorations.map(s=>(s==null?void 0:s.modifiedDecorations)||[])))}}class cu{static equals(t,n){return t.x===n.x&&t.y===n.y}constructor(t,n){this.x=t,this.y=n}add(t){return new cu(this.x+t.x,this.y+t.y)}deltaX(t){return new cu(this.x+t,this.y)}deltaY(t){return new cu(this.x,this.y+t)}toString(){return`(${this.x},${this.y})`}subtract(t){return new cu(this.x-t.x,this.y-t.y)}scale(t){return new cu(this.x*t,this.y*t)}mapComponents(t){return new cu(t(this.x),t(this.y))}isZero(){return this.x===0&&this.y===0}withThreshold(t){return this.mapComponents(n=>n>t?n-t:n<-t?n+t:0)}}function hl(e){return aje.get(e)}const A5=class A5 extends ft{static get(t){let n=A5._map.get(t);if(!n){n=new A5(t),A5._map.set(t,n);const r=t.onDidDispose(()=>{const o=A5._map.get(t);o&&(A5._map.delete(t),o.dispose(),r.dispose())})}return n}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&(this._currentTransaction=new Hz(()=>{}))}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){const t=this._currentTransaction;this._currentTransaction=void 0,t.finish()}}constructor(t){var n;super(),this.editor=t,this._updateCounter=0,this._currentTransaction=void 0,this._model=Ti(this,this.editor.getModel()),this.model=this._model,this.isReadonly=Ko(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(104)),this._versionId=wZ({owner:this,lazy:!0},((n=this.editor.getModel())==null?void 0:n.getVersionId())??null),this.versionId=this._versionId,this._selections=wZ({owner:this,equalsFn:oQ(VK(Qn.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.positions=Vh({owner:this,equalsFn:oQ(VK(it.equals))},r=>{var o;return((o=this.selections.read(r))==null?void 0:o.map(s=>s.getStartPosition()))??null}),this.isFocused=Ko(this,r=>{const o=this.editor.onDidFocusEditorWidget(r),s=this.editor.onDidBlurEditorWidget(r);return{dispose(){o.dispose(),s.dispose()}}},()=>this.editor.hasWidgetFocus()),this.isTextFocused=Ko(this,r=>{const o=this.editor.onDidFocusEditorText(r),s=this.editor.onDidBlurEditorText(r);return{dispose(){o.dispose(),s.dispose()}}},()=>this.editor.hasTextFocus()),this.inComposition=Ko(this,r=>{const o=this.editor.onDidCompositionStart(()=>{r(void 0)}),s=this.editor.onDidCompositionEnd(()=>{r(void 0)});return{dispose(){o.dispose(),s.dispose()}}},()=>this.editor.inComposition),this.value=$Je(this,r=>{var o;return this.versionId.read(r),((o=this.model.read(r))==null?void 0:o.getValue())??""},(r,o)=>{const s=this.model.get();s!==null&&r!==s.getValue()&&s.setValue(r)}),this.valueIsEmpty=Rt(this,r=>{var o;return this.versionId.read(r),((o=this.editor.getModel())==null?void 0:o.getValueLength())===0}),this.cursorSelection=Vh({owner:this,equalsFn:oQ(Qn.selectionsEqual)},r=>{var o;return((o=this.selections.read(r))==null?void 0:o[0])??null}),this.cursorPosition=Vh({owner:this,equalsFn:it.equals},r=>{var o,s;return((s=(o=this.selections.read(r))==null?void 0:o[0])==null?void 0:s.getPosition())??null}),this.cursorLineNumber=Rt(this,r=>{var o;return((o=this.cursorPosition.read(r))==null?void 0:o.lineNumber)??null}),this.onDidType=Mv(this),this.onDidPaste=Mv(this),this.scrollTop=Ko(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=Ko(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=Ko(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(r=>r.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(r=>r.decorationsLeft),this.layoutInfoWidth=this.layoutInfo.map(r=>r.width),this.layoutInfoHeight=this.layoutInfo.map(r=>r.height),this.layoutInfoMinimap=this.layoutInfo.map(r=>r.minimap),this.layoutInfoVerticalScrollbarWidth=this.layoutInfo.map(r=>r.verticalScrollbarWidth),this.contentWidth=Ko(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this.contentHeight=Ko(this.editor.onDidContentSizeChange,()=>this.editor.getContentHeight()),this._widgetCounter=0,this.openedPeekWidgets=Ti(this,0),this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(r=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,r)}finally{this._endUpdate()}})),this._register(this.editor.onDidPaste(r=>{this._beginUpdate();try{this._forceUpdate(),this.onDidPaste.trigger(this._currentTransaction,r)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(r=>{var o;this._beginUpdate();try{this._versionId.set(((o=this.editor.getModel())==null?void 0:o.getVersionId())??null,this._currentTransaction,r),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(r=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,r),this._forceUpdate()}finally{this._endUpdate()}})),this.domNode=Rt(r=>(this.model.read(r),this.editor.getDomNode()))}forceUpdate(t){this._beginUpdate();try{return this._forceUpdate(),t?t(this._currentTransaction):void 0}finally{this._endUpdate()}}_forceUpdate(){var t;this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(((t=this.editor.getModel())==null?void 0:t.getVersionId())??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(t,n=Hd.ofCaller()){return Ko(this,r=>this.editor.onDidChangeConfiguration(o=>{o.hasChanged(t)&&r(void 0)}),()=>this.editor.getOption(t),n)}setDecorations(t){const n=new xt,r=this.editor.createDecorationsCollection();return n.add(pbe({owner:this,debugName:()=>`Apply decorations from ${t.debugName}`},o=>{const s=t.read(o);r.set(s)})),n.add({dispose:()=>{r.clear()}}),n}createOverlayWidget(t){const n="observableOverlayWidget"+this._widgetCounter++,r={getDomNode:()=>t.domNode,getPosition:()=>t.position.get(),getId:()=>n,allowEditorOverflow:t.allowEditorOverflow,getMinContentWidthInPx:()=>t.minContentWidthInPx.get()};this.editor.addOverlayWidget(r);const o=Oi(s=>{t.position.read(s),t.minContentWidthInPx.read(s),this.editor.layoutOverlayWidget(r)});return Hn(()=>{o.dispose(),this.editor.removeOverlayWidget(r)})}createContentWidget(t){const n="observableContentWidget"+this._widgetCounter++,r={getDomNode:()=>t.domNode,getPosition:()=>t.position.get(),getId:()=>n,allowEditorOverflow:t.allowEditorOverflow};this.editor.addContentWidget(r);const o=Oi(s=>{t.position.read(s),this.editor.layoutContentWidget(r)});return Hn(()=>{o.dispose(),this.editor.removeContentWidget(r)})}observeLineOffsetRange(t,n){const r=this.observePosition(t.map(s=>new it(s.startLineNumber,1)),n),o=this.observePosition(t.map(s=>new it(s.endLineNumberExclusive+1,1)),n);return Rt(s=>{var h;r.read(s),o.read(s);const a=t.read(s),l=(h=this.model.read(s))==null?void 0:h.getLineCount(),d=(typeof l<"u"&&a.startLineNumber>l?this.editor.getBottomForLineNumber(l):this.editor.getTopForLineNumber(a.startLineNumber))-this.scrollTop.read(s),u=a.isEmpty?d:this.editor.getBottomForLineNumber(a.endLineNumberExclusive-1)-this.scrollTop.read(s);return new Xn(d,u)})}observePosition(t,n){let r=t.get();const o=wZ({owner:this,debugName:()=>`topLeftOfPosition${r==null?void 0:r.toString()}`,equalsFn:oQ(cu.equals)},new cu(0,0)),s="observablePositionWidget"+this._widgetCounter++,a=document.createElement("div"),l={getDomNode:()=>a,getPosition:()=>r?{preference:[0],position:t.get()}:null,getId:()=>s,allowEditorOverflow:!1,afterRender:(d,u)=>{const h=this._model.get();h&&r&&r.lineNumber>h.getLineCount()?o.set(new cu(0,this.editor.getBottomForLineNumber(h.getLineCount())-this.scrollTop.get()),void 0):o.set(u?new cu(u.left,u.top):null,void 0)}};return this.editor.addContentWidget(l),n.add(Oi(d=>{r=t.read(d),this.editor.layoutContentWidget(l)})),n.add(Hn(()=>{this.editor.removeContentWidget(l)})),o}isTargetHovered(t,n){const r=Ti("isInjectedTextHovered",!1);return n.add(this.editor.onMouseMove(o=>{const s=t(o);r.set(s,void 0)})),n.add(this.editor.onMouseLeave(o=>{r.set(!1,void 0)})),r}observeLineHeightForPosition(t){return Rt(n=>{const r=t instanceof it?t:t.read(n);return r===null?null:(this.getOption(75).read(n),this.editor.getLineHeightForPosition(r))})}observeLineHeightForLine(t){return typeof t=="number"?this.observeLineHeightForPosition(new it(t,1)):Rt(n=>{const r=t.read(n);return r===null?null:this.observeLineHeightForPosition(new it(r,1)).read(n)})}observeLineHeightsForLineRange(t){return Rt(n=>{const r=t instanceof Ei?t:t.read(n),o=[];for(let s=r.startLineNumber;s=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},tko=function(e,t){return function(n,r){t(n,r,e)}},tb,WS;let DJ=(WS=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._editors=t,this._rootElement=n,this._diffModel=r,this._rootWidth=o,this._rootHeight=s,this._modifiedEditorLayoutInfo=a,this._themeService=l,this.width=tb.ENTIRE_DIFF_OVERVIEW_WIDTH;const d=Ko(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),u=Rt(m=>{const v=d.read(m),f=v.getColor(Koo)||(v.getColor(cQ)||INe).transparent(2),k=v.getColor(Joo)||(v.getColor(h9)||MNe).transparent(2);return{insertColor:f,removeColor:k}}),h=es(document.createElement("div"));h.setClassName("diffViewport"),h.setPosition("absolute");const g=wo("div.diffOverview",{style:{position:"absolute",top:"0px",width:tb.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(bN(g,h.domNode)),this._register(wc(g,rn.POINTER_DOWN,m=>{this._editors.modified.delegateVerticalScrollbarPointerDown(m)})),this._register(wt(g,rn.MOUSE_WHEEL,m=>{this._editors.modified.delegateScrollFromMouseWheelEvent(m)},{passive:!1})),this._register(bN(this._rootElement,g)),this._register(Ef((m,v)=>{const f=this._diffModel.read(m),k=this._editors.original.createOverviewRuler("original diffOverviewRuler");k&&(v.add(k),v.add(bN(g,k.getDomNode())));const A=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(A&&(v.add(A),v.add(bN(g,A.getDomNode()))),!k||!A)return;const p=A0("viewZoneChanged",this._editors.original.onDidChangeViewZones),b=A0("viewZoneChanged",this._editors.modified.onDidChangeViewZones),w=A0("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),O=A0("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);v.add(Oi(y=>{var T;p.read(y),b.read(y),w.read(y),O.read(y);const C=u.read(y),_=(T=f==null?void 0:f.diff.read(y))==null?void 0:T.mappings;function S(D,P,Q){const M=Q._getViewModel();return M?D.filter(B=>B.length>0).map(B=>{const R=M.coordinatesConverter.convertModelPositionToViewPosition(new it(B.startLineNumber,1)),I=M.coordinatesConverter.convertModelPositionToViewPosition(new it(B.endLineNumberExclusive,1)),F=I.lineNumber-R.lineNumber;return new wTn(R.lineNumber,I.lineNumber,F,P.toString())}):[]}const L=S((_||[]).map(D=>D.lineRangeMapping.original),C.removeColor,this._editors.original),E=S((_||[]).map(D=>D.lineRangeMapping.modified),C.insertColor,this._editors.modified);k==null||k.setZones(L),A==null||A.setZones(E)})),v.add(Oi(y=>{const C=this._rootHeight.read(y),_=this._rootWidth.read(y),S=this._modifiedEditorLayoutInfo.read(y);if(S){const L=tb.ENTIRE_DIFF_OVERVIEW_WIDTH-2*tb.ONE_OVERVIEW_WIDTH;k.setLayout({top:0,height:C,right:L+tb.ONE_OVERVIEW_WIDTH,width:tb.ONE_OVERVIEW_WIDTH}),A.setLayout({top:0,height:C,right:0,width:tb.ONE_OVERVIEW_WIDTH});const E=this._editors.modifiedScrollTop.read(y),T=this._editors.modifiedScrollHeight.read(y),D=this._editors.modified.getOption(117),P=new aV(D.verticalHasArrows?D.arrowSize:0,D.verticalScrollbarSize,0,S.height,T,E);h.setTop(P.getSliderPosition()),h.setHeight(P.getSliderSize())}else h.setTop(0),h.setHeight(0);g.style.height=C+"px",g.style.left=_-tb.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",h.setWidth(tb.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}},tb=WS,WS.ONE_OVERVIEW_WIDTH=15,WS.ENTIRE_DIFF_OVERVIEW_WIDTH=WS.ONE_OVERVIEW_WIDTH*2,WS);DJ=tb=eko([tko(6,Dl)],DJ);var nko=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},exe=function(e,t){return function(n,r){t(n,r,e)}};let lje=class extends ft{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(t,n,r,o,s,a,l,d){super(),this.originalEditorElement=t,this.modifiedEditorElement=n,this._options=r,this._argCodeEditorWidgetOptions=o,this._createInnerEditor=s,this._contextKeyService=a,this._instantiationService=l,this._keybindingService=d,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new at),this.modifiedScrollTop=Ko(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=Ko(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=hl(this.modified),this.originalObs=hl(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=Ko(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=Vh({owner:this,equalsFn:it.equals},u=>{var h;return((h=this.modifiedSelections.read(u)[0])==null?void 0:h.getPosition())??new it(1,1)}),this.originalCursor=Ko(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new it(1,1)),this.isOriginalFocused=hl(this.original).isFocused,this.isModifiedFocused=hl(this.modified).isFocused,this.isFocused=Rt(this,u=>this.isOriginalFocused.read(u)||this.isModifiedFocused.read(u)),this._argCodeEditorWidgetOptions=null,this._register(zz({changeTracker:{createChangeSummary:()=>({}),handleChange:(u,h)=>(u.didChange(r.editorOptions)&&Object.assign(h,u.change.changedOptions),!0)}},(u,h)=>{r.editorOptions.read(u),this._options.renderSideBySide.read(u),this.modified.updateOptions(this._adjustOptionsForRightHandSide(u,h)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(u,h))}))}_createLeftHandSideEditor(t,n){const r=this._adjustOptionsForLeftHandSide(void 0,t),o=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,r,n),s=this._contextKeyService.createKey("isInDiffLeftEditor",o.hasWidgetFocus());return this._register(o.onDidFocusEditorWidget(()=>s.set(!0))),this._register(o.onDidBlurEditorWidget(()=>s.set(!1))),o}_createRightHandSideEditor(t,n){const r=this._adjustOptionsForRightHandSide(void 0,t),o=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,r,n),s=this._contextKeyService.createKey("isInDiffRightEditor",o.hasWidgetFocus());return this._register(o.onDidFocusEditorWidget(()=>s.set(!0))),this._register(o.onDidBlurEditorWidget(()=>s.set(!1))),o}_constructInnerEditor(t,n,r,o){const s=this._createInnerEditor(t,n,r,o);return this._register(s.onDidContentSizeChange(a=>{const l=this.original.getContentWidth()+this.modified.getContentWidth()+DJ.ENTIRE_DIFF_OVERVIEW_WIDTH,d=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:d,contentWidth:l,contentHeightChanged:a.contentHeightChanged,contentWidthChanged:a.contentWidthChanged})})),s}_adjustOptionsForLeftHandSide(t,n){const r=this._adjustOptionsForSubEditor(n);return this._options.renderSideBySide.get()?(r.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},r.wordWrapOverride1=this._options.diffWordWrap.get()):(r.wordWrapOverride1="off",r.wordWrapOverride2="off",r.stickyScroll={enabled:!1},r.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),r.glyphMargin=this._options.renderSideBySide.get(),n.originalAriaLabel&&(r.ariaLabel=n.originalAriaLabel),r.ariaLabel=this._updateAriaLabel(r.ariaLabel),r.readOnly=!this._options.originalEditable.get(),r.dropIntoEditor={enabled:!r.readOnly},r.extraEditorClassName="original-in-monaco-diff-editor",r}_adjustOptionsForRightHandSide(t,n){const r=this._adjustOptionsForSubEditor(n);return n.modifiedAriaLabel&&(r.ariaLabel=n.modifiedAriaLabel),r.ariaLabel=this._updateAriaLabel(r.ariaLabel),r.wordWrapOverride1=this._options.diffWordWrap.get(),r.revealHorizontalRightPadding=fg.revealHorizontalRightPadding.defaultValue+DJ.ENTIRE_DIFF_OVERVIEW_WIDTH,r.scrollbar.verticalHasArrows=!1,r.extraEditorClassName="modified-in-monaco-diff-editor",r}_adjustOptionsForSubEditor(t){const n={...t,dimension:{height:0,width:0}};return n.inDiffEditor=!0,n.automaticLayout=!1,n.allowVariableLineHeights=!1,n.allowVariableFonts=!1,n.allowVariableFontsInAccessibilityMode=!1,n.scrollbar={...n.scrollbar||{}},n.folding=!1,n.codeLens=this._options.diffCodeLens.get(),n.fixedOverflowWidgets=!0,n.minimap={...n.minimap||{}},n.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?n.stickyScroll={enabled:!1}:n.stickyScroll=this._options.editorOptions.get().stickyScroll,n}_updateAriaLabel(t){var r;t||(t="");const n=U(111," use {0} to open the accessibility help.",(r=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))==null?void 0:r.getAriaLabel());return this._options.accessibilityVerbose.get()?t+n:t?t.replaceAll(n,""):""}};lje=nko([exe(5,Qi),exe(6,Yn),exe(7,Do)],lje);var oH=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s};const iko=!1;var T1e;(function(e){e.North="north",e.South="south",e.East="east",e.West="west"})(T1e||(T1e={}));let rko=4;const oko=new at;let sko=300;const ako=new at;class Ttt{constructor(t){this.el=t,this.disposables=new xt}get onPointerMove(){return this.disposables.add(new ks(ii(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new ks(ii(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}oH([mc],Ttt.prototype,"onPointerMove",null);oH([mc],Ttt.prototype,"onPointerUp",null);class Qtt{get onPointerMove(){return this.disposables.add(new ks(this.el,ma.Change)).event}get onPointerUp(){return this.disposables.add(new ks(this.el,ma.End)).event}constructor(t){this.el=t,this.disposables=new xt}dispose(){this.disposables.dispose()}}oH([mc],Qtt.prototype,"onPointerMove",null);oH([mc],Qtt.prototype,"onPointerUp",null);class Q1e{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(t){this.factory=t}dispose(){}}oH([mc],Q1e.prototype,"onPointerMove",null);oH([mc],Q1e.prototype,"onPointerUp",null);const EOt="pointer-events-disabled";class kf extends ft{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(t){this._state!==t&&(this.el.classList.toggle("disabled",t===0),this.el.classList.toggle("minimum",t===1),this.el.classList.toggle("maximum",t===2),this._state=t,this.onDidEnablementChange.fire(t))}get onDidStart(){return this._onDidStart.event}get onDidChange(){return this._onDidChange.event}get onDidReset(){return this._onDidReset.event}get onDidEnd(){return this._onDidEnd.event}set orthogonalStartSash(t){if(this._orthogonalStartSash!==t){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),t){const n=r=>{this.orthogonalStartDragHandleDisposables.clear(),r!==0&&(this._orthogonalStartDragHandle=Xt(this.el,tn(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(Hn(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(wt(this._orthogonalStartDragHandle,"mouseenter",()=>kf.onMouseEnter(t))),this.orthogonalStartDragHandleDisposables.add(wt(this._orthogonalStartDragHandle,"mouseleave",()=>kf.onMouseLeave(t))))};this.orthogonalStartSashDisposables.add(t.onDidEnablementChange.event(n,this)),n(t.state)}this._orthogonalStartSash=t}}set orthogonalEndSash(t){if(this._orthogonalEndSash!==t){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),t){const n=r=>{this.orthogonalEndDragHandleDisposables.clear(),r!==0&&(this._orthogonalEndDragHandle=Xt(this.el,tn(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(Hn(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(wt(this._orthogonalEndDragHandle,"mouseenter",()=>kf.onMouseEnter(t))),this.orthogonalEndDragHandleDisposables.add(wt(this._orthogonalEndDragHandle,"mouseleave",()=>kf.onMouseLeave(t))))};this.orthogonalEndSashDisposables.add(t.onDidEnablementChange.event(n,this)),n(t.state)}this._orthogonalEndSash=t}}constructor(t,n,r){super(),this.hoverDelay=sko,this.hoverDelayer=this._register(new dA(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new at),this._onDidStart=this._register(new at),this._onDidChange=this._register(new at),this._onDidReset=this._register(new at),this._onDidEnd=this._register(new at),this.orthogonalStartSashDisposables=this._register(new xt),this.orthogonalStartDragHandleDisposables=this._register(new xt),this.orthogonalEndSashDisposables=this._register(new xt),this.orthogonalEndDragHandleDisposables=this._register(new xt),this.linkedSash=void 0,this.el=Xt(t,tn(".monaco-sash")),r.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${r.orthogonalEdge}`),Tr&&this.el.classList.add("mac"),this._register(wt(this.el,"mousedown",s=>this.onPointerStart(s,new Ttt(t)))),this._register(wt(this.el,"dblclick",s=>this.onPointerDoublePress(s))),this._register(wt(this.el,"mouseenter",()=>kf.onMouseEnter(this))),this._register(wt(this.el,"mouseleave",()=>kf.onMouseLeave(this))),this._register(Bf.addTarget(this.el)),this._register(wt(this.el,ma.Start,s=>this.onPointerStart(s,new Qtt(this.el))));let o;this._register(wt(this.el,ma.Tap,s=>{if(o){clearTimeout(o),o=void 0,this.onPointerDoublePress(s);return}clearTimeout(o),o=setTimeout(()=>o=void 0,250)})),typeof r.size=="number"?(this.size=r.size,r.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=rko,this._register(oko.event(s=>{this.size=s,this.layout()}))),this._register(ako.event(s=>this.hoverDelay=s)),this.layoutProvider=n,this.orthogonalStartSash=r.orthogonalStartSash,this.orthogonalEndSash=r.orthogonalEndSash,this.orientation=r.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",iko),this.layout()}onPointerStart(t,n){Qo.stop(t);let r=!1;if(!t.__orthogonalSashEvent){const f=this.getOrthogonalSash(t);f&&(r=!0,t.__orthogonalSashEvent=!0,f.onPointerStart(t,new Q1e(n)))}if(this.linkedSash&&!t.__linkedSashEvent&&(t.__linkedSashEvent=!0,this.linkedSash.onPointerStart(t,new Q1e(n))),!this.state)return;const o=this.el.ownerDocument.getElementsByTagName("iframe");for(const f of o)f.classList.add(EOt);const s=t.pageX,a=t.pageY,l=t.altKey,d={startX:s,currentX:s,startY:a,currentY:a,altKey:l};this.el.classList.add("active"),this._onDidStart.fire(d);const u=mA(this.el),h=()=>{let f="";r?f="all-scroll":this.orientation===1?this.state===1?f="s-resize":this.state===2?f="n-resize":f=Tr?"row-resize":"ns-resize":this.state===1?f="e-resize":this.state===2?f="w-resize":f=Tr?"col-resize":"ew-resize",u.textContent=`* { cursor: ${f} !important; }`},g=new xt;h(),r||this.onDidEnablementChange.event(h,null,g);const m=f=>{Qo.stop(f,!1);const k={startX:s,currentX:f.pageX,startY:a,currentY:f.pageY,altKey:l};this._onDidChange.fire(k)},v=f=>{Qo.stop(f,!1),u.remove(),this.el.classList.remove("active"),this._onDidEnd.fire(),g.dispose();for(const k of o)k.classList.remove(EOt)};n.onPointerMove(m,null,g),n.onPointerUp(v,null,g),g.add(n)}onPointerDoublePress(t){const n=this.getOrthogonalSash(t);n&&n._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(t,n=!1){t.el.classList.contains("active")?(t.hoverDelayer.cancel(),t.el.classList.add("hover")):t.hoverDelayer.trigger(()=>t.el.classList.add("hover"),t.hoverDelay).then(void 0,()=>{}),!n&&t.linkedSash&&kf.onMouseEnter(t.linkedSash,!0)}static onMouseLeave(t,n=!1){t.hoverDelayer.cancel(),t.el.classList.remove("hover"),!n&&t.linkedSash&&kf.onMouseLeave(t.linkedSash,!0)}clearSashHoverState(){kf.onMouseLeave(this)}layout(){if(this.orientation===0){const t=this.layoutProvider;this.el.style.left=t.getVerticalSashLeft(this)-this.size/2+"px",t.getVerticalSashTop&&(this.el.style.top=t.getVerticalSashTop(this)+"px"),t.getVerticalSashHeight&&(this.el.style.height=t.getVerticalSashHeight(this)+"px")}else{const t=this.layoutProvider;this.el.style.top=t.getHorizontalSashTop(this)-this.size/2+"px",t.getHorizontalSashLeft&&(this.el.style.left=t.getHorizontalSashLeft(this)+"px"),t.getHorizontalSashWidth&&(this.el.style.width=t.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(t){const n=t.initialTarget??t.target;if(!(!n||!ec(n))&&n.classList.contains("orthogonal-drag-handle"))return n.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}class lko{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(t,n){this._options=t,this.dimensions=n,this.sashLeft=$Je(this,r=>{const o=this._sashRatio.read(r)??this._options.splitViewDefaultRatio.read(r);return this._computeSashLeft(o,r)},(r,o)=>{const s=this.dimensions.width.get();this._sashRatio.set(r/s,o)}),this._sashRatio=Ti(this,void 0)}_computeSashLeft(t,n){const r=this.dimensions.width.read(n),o=Math.floor(this._options.splitViewDefaultRatio.read(n)*r),s=this._options.enableSplitViewResizing.read(n)?Math.floor(t*r):o,a=100;return r<=a*2?o:sr-a?r-a:s}}class hDn extends ft{constructor(t,n,r,o,s,a){super(),this._domNode=t,this._dimensions=n,this._enabled=r,this._boundarySashes=o,this.sashLeft=s,this._resetSash=a,this._sash=this._register(new kf(this._domNode,{getVerticalSashTop:l=>0,getVerticalSashLeft:l=>this.sashLeft.get(),getVerticalSashHeight:l=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(l=>{this.sashLeft.set(this._startSashPosition+(l.currentX-l.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register(Oi(l=>{const d=this._boundarySashes.read(l);d&&(this._sash.orthogonalEndSash=d.bottom)})),this._register(Oi(l=>{const d=this._enabled.read(l);this._sash.state=d?3:0,this.sashLeft.read(l),this._dimensions.height.read(l),this._sash.layout()}))}}const jve=class jve extends ft{constructor(){super(...arguments),this._id=++jve.idCounter,this._onDidDispose=this._register(new at),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(t){return this._targetEditor.getVisibleColumnFromPosition(t)}getPosition(){return this._targetEditor.getPosition()}setPosition(t,n="api"){this._targetEditor.setPosition(t,n)}revealLine(t,n=0){this._targetEditor.revealLine(t,n)}revealLineInCenter(t,n=0){this._targetEditor.revealLineInCenter(t,n)}revealLineInCenterIfOutsideViewport(t,n=0){this._targetEditor.revealLineInCenterIfOutsideViewport(t,n)}revealLineNearTop(t,n=0){this._targetEditor.revealLineNearTop(t,n)}revealPosition(t,n=0){this._targetEditor.revealPosition(t,n)}revealPositionInCenter(t,n=0){this._targetEditor.revealPositionInCenter(t,n)}revealPositionInCenterIfOutsideViewport(t,n=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(t,n)}revealPositionNearTop(t,n=0){this._targetEditor.revealPositionNearTop(t,n)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(t,n="api"){this._targetEditor.setSelection(t,n)}setSelections(t,n="api"){this._targetEditor.setSelections(t,n)}revealLines(t,n,r=0){this._targetEditor.revealLines(t,n,r)}revealLinesInCenter(t,n,r=0){this._targetEditor.revealLinesInCenter(t,n,r)}revealLinesInCenterIfOutsideViewport(t,n,r=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(t,n,r)}revealLinesNearTop(t,n,r=0){this._targetEditor.revealLinesNearTop(t,n,r)}revealRange(t,n=0,r=!1,o=!0){this._targetEditor.revealRange(t,n,r,o)}revealRangeInCenter(t,n=0){this._targetEditor.revealRangeInCenter(t,n)}revealRangeInCenterIfOutsideViewport(t,n=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(t,n)}revealRangeNearTop(t,n=0){this._targetEditor.revealRangeNearTop(t,n)}revealRangeNearTopIfOutsideViewport(t,n=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(t,n)}revealRangeAtTop(t,n=0){this._targetEditor.revealRangeAtTop(t,n)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(t,n,r){this._targetEditor.trigger(t,n,r)}createDecorationsCollection(t){return this._targetEditor.createDecorationsCollection(t)}changeDecorations(t){return this._targetEditor.changeDecorations(t)}};jve.idCounter=0;let cje=jve;const Oh={enableSplitViewResizing:!0,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0,useTrueInlineView:!1},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0,compactMode:!1};function cko(e,t){return vL(e,(n,r)=>r??t(n))}var dko=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},uko=function(e,t){return function(n,r){t(n,r,e)}};let dje=class{get editorOptions(){return this._options}constructor(t,n){this._accessibilityService=n,this._diffEditorWidth=Ti(this,0),this._screenReaderMode=Ko(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=Rt(this,o=>this._options.read(o).renderSideBySide&&this._diffEditorWidth.read(o)<=this._options.read(o).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=Rt(this,o=>this._options.read(o).renderOverviewRuler),this.renderSideBySide=Rt(this,o=>this.compactMode.read(o)&&this.shouldRenderInlineViewInSmartMode.read(o)?!1:this._options.read(o).renderSideBySide&&!(this._options.read(o).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(o)&&!this._screenReaderMode.read(o))),this.readOnly=Rt(this,o=>this._options.read(o).readOnly),this.shouldRenderOldRevertArrows=Rt(this,o=>!(!this._options.read(o).renderMarginRevertIcon||!this.renderSideBySide.read(o)||this.readOnly.read(o)||this.shouldRenderGutterMenu.read(o))),this.shouldRenderGutterMenu=Rt(this,o=>this._options.read(o).renderGutterMenu),this.renderIndicators=Rt(this,o=>this._options.read(o).renderIndicators),this.enableSplitViewResizing=Rt(this,o=>this._options.read(o).enableSplitViewResizing),this.splitViewDefaultRatio=Rt(this,o=>this._options.read(o).splitViewDefaultRatio),this.ignoreTrimWhitespace=Rt(this,o=>this._options.read(o).ignoreTrimWhitespace),this.maxComputationTimeMs=Rt(this,o=>this._options.read(o).maxComputationTime),this.showMoves=Rt(this,o=>this._options.read(o).experimental.showMoves&&this.renderSideBySide.read(o)),this.isInEmbeddedEditor=Rt(this,o=>this._options.read(o).isInEmbeddedEditor),this.diffWordWrap=Rt(this,o=>this._options.read(o).diffWordWrap),this.originalEditable=Rt(this,o=>this._options.read(o).originalEditable),this.diffCodeLens=Rt(this,o=>this._options.read(o).diffCodeLens),this.accessibilityVerbose=Rt(this,o=>this._options.read(o).accessibilityVerbose),this.diffAlgorithm=Rt(this,o=>this._options.read(o).diffAlgorithm),this.showEmptyDecorations=Rt(this,o=>this._options.read(o).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=Rt(this,o=>this._options.read(o).onlyShowAccessibleDiffViewer),this.compactMode=Rt(this,o=>this._options.read(o).compactMode),this.trueInlineDiffRenderingEnabled=Rt(this,o=>this._options.read(o).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=Rt(this,o=>!this.renderSideBySide.read(o)&&this.trueInlineDiffRenderingEnabled.read(o)),this.hideUnchangedRegions=Rt(this,o=>this._options.read(o).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=Rt(this,o=>this._options.read(o).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=Rt(this,o=>this._options.read(o).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=Rt(this,o=>this._options.read(o).hideUnchangedRegions.minimumLineCount),this._model=Ti(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,o=>cko(this,s=>{const a=o==null?void 0:o.diff.read(s);return a?hko(a,this.trueInlineDiffRenderingEnabled.read(s)):void 0})).flatten().map(this,o=>!!o),this.inlineViewHideOriginalLineNumbers=this.compactMode;const r={...t,...TOt(t,Oh)};this._options=Ti(this,r)}updateOptions(t){const n=TOt(t,this._options.get()),r={...this._options.get(),...t,...n};this._options.set(r,void 0,{changedOptions:t})}setWidth(t){this._diffEditorWidth.set(t,void 0)}setModel(t){this._model.set(t,void 0)}};dje=dko([uko(1,vh)],dje);function hko(e,t){return e.mappings.every(n=>fko(n.lineRangeMapping)||gko(n.lineRangeMapping)||t&&xtt(n.lineRangeMapping))}function fko(e){return e.original.length===0}function gko(e){return e.modified.length===0}function TOt(e,t){var n,r,o,s,a,l,d,u;return{enableSplitViewResizing:oi(e.enableSplitViewResizing,t.enableSplitViewResizing),splitViewDefaultRatio:Cro(e.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:oi(e.renderSideBySide,t.renderSideBySide),renderMarginRevertIcon:oi(e.renderMarginRevertIcon,t.renderMarginRevertIcon),maxComputationTime:tS(e.maxComputationTime,t.maxComputationTime,0,1073741824),maxFileSize:tS(e.maxFileSize,t.maxFileSize,0,1073741824),ignoreTrimWhitespace:oi(e.ignoreTrimWhitespace,t.ignoreTrimWhitespace),renderIndicators:oi(e.renderIndicators,t.renderIndicators),originalEditable:oi(e.originalEditable,t.originalEditable),diffCodeLens:oi(e.diffCodeLens,t.diffCodeLens),renderOverviewRuler:oi(e.renderOverviewRuler,t.renderOverviewRuler),diffWordWrap:La(e.diffWordWrap,t.diffWordWrap,["off","on","inherit"]),diffAlgorithm:La(e.diffAlgorithm,t.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:oi(e.accessibilityVerbose,t.accessibilityVerbose),experimental:{showMoves:oi((n=e.experimental)==null?void 0:n.showMoves,t.experimental.showMoves),showEmptyDecorations:oi((r=e.experimental)==null?void 0:r.showEmptyDecorations,t.experimental.showEmptyDecorations),useTrueInlineView:oi((o=e.experimental)==null?void 0:o.useTrueInlineView,t.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:oi(((s=e.hideUnchangedRegions)==null?void 0:s.enabled)??((a=e.experimental)==null?void 0:a.collapseUnchangedRegions),t.hideUnchangedRegions.enabled),contextLineCount:tS((l=e.hideUnchangedRegions)==null?void 0:l.contextLineCount,t.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:tS((d=e.hideUnchangedRegions)==null?void 0:d.minimumLineCount,t.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:tS((u=e.hideUnchangedRegions)==null?void 0:u.revealLineCount,t.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:oi(e.isInEmbeddedEditor,t.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:oi(e.onlyShowAccessibleDiffViewer,t.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:tS(e.renderSideBySideInlineBreakpoint,t.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:oi(e.useInlineViewWhenSpaceIsLimited,t.useInlineViewWhenSpaceIsLimited),renderGutterMenu:oi(e.renderGutterMenu,t.renderGutterMenu),compactMode:oi(e.compactMode,t.compactMode)}}class mko extends sR{constructor(t,n){super(),this._onDidChangeVisibility=this._register(new at),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=Xt(t,tn(".monaco-dropdown")),this._label=Xt(this._element,tn(".dropdown-label"));let r=n.labelRenderer;r||(r=s=>(s.textContent=n.label||"",null));for(const s of[rn.CLICK,rn.MOUSE_DOWN,ma.Tap])this._register(wt(this.element,s,a=>Qo.stop(a,!0)));for(const s of[rn.MOUSE_DOWN,ma.Tap])this._register(wt(this._label,s,a=>{qJe(a)&&a.button!==0||(this.visible?this.hide():this.show())}));this._register(wt(this._label,rn.KEY_DOWN,s=>{const a=new Us(s);(a.equals(3)||a.equals(10))&&(Qo.stop(s,!0),this.visible?this.hide():this.show())}));const o=r(this._label);o&&this._register(o),this._register(Bf.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class kko extends mko{constructor(t,n){super(t,n),this._options=n,this._actions=[],this.actions=n.actions||[]}set menuOptions(t){this._menuOptions=t}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(t){this._actions=t}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(t,n)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(t,n):void 0,getKeyBinding:t=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(t):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class D1e extends Fb{get onDidChangeVisibility(){return this._onDidChangeVisibility.event}constructor(t,n,r,o=Object.create(null)){super(null,t,o),this.actionItem=null,this._onDidChangeVisibility=this._register(new at),this.menuActionsOrProvider=n,this.contextMenuProvider=r,this.options=o,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(t){this.actionItem=t;const n=s=>(this.element=Xt(s,tn("a.action-label")),this.renderLabel(this.element)),r=Array.isArray(this.menuActionsOrProvider),o={contextMenuProvider:this.contextMenuProvider,labelRenderer:n,menuAsChild:this.options.menuAsChild,actions:r?this.menuActionsOrProvider:void 0,actionProvider:r?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new kko(t,o)),this._register(this.dropdownMenu.onDidChangeVisibility(s=>{var a;(a=this.element)==null||a.setAttribute("aria-expanded",`${s}`),this._onDidChangeVisibility.fire(s)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const s=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return s.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}renderLabel(t){let n=[];return typeof this.options.classNames=="string"?n=this.options.classNames.split(/\s+/g).filter(r=>!!r):this.options.classNames&&(n=this.options.classNames),n.find(r=>r==="icon")||n.push("codicon"),t.classList.add(...n),this._action.label&&this._register(yp().setupManagedHover(this.options.hoverDelegate??eC("mouse"),t,this._action.label)),null}getTooltip(){let t=null;return this.action.tooltip?t=this.action.tooltip:this.action.label&&(t=this.action.label),t??void 0}setActionContext(t){super.setActionContext(t),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=t:this.dropdownMenu.menuOptions={context:t})}show(){var t;(t=this.dropdownMenu)==null||t.show()}updateEnabled(){var n,r;const t=!this.action.enabled;(n=this.actionItem)==null||n.classList.toggle("disabled",t),(r=this.element)==null||r.classList.toggle("disabled",t)}}const QOt=24;class vko extends ft{get onDidChangeDropdownVisibility(){return this._onDidChangeDropdownVisibility.event}constructor(t,n,r={orientation:0}){if(super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new ieo),this.originalPrimaryActions=[],this.originalSecondaryActions=[],this.hiddenActions=[],this.disposables=this._register(new xt),r.hoverDelegate=r.hoverDelegate??this._register(dQn()),this.options=r,this.toggleMenuAction=this._register(new BJ(()=>{var o;return(o=this.toggleMenuActionViewItem)==null?void 0:o.show()},r.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",t.appendChild(this.element),this.actionBar=this._register(new g1(this.element,{orientation:r.orientation,ariaLabel:r.ariaLabel,actionRunner:r.actionRunner,allowContextMenu:r.allowContextMenu,highlightToggledItems:r.highlightToggledItems,hoverDelegate:r.hoverDelegate,actionViewItemProvider:(o,s)=>{if(o.id===BJ.ID)return this.toggleMenuActionViewItem=new D1e(o,{getActions:()=>this.toggleMenuAction.menuActions},n,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:fi.asClassNameArray(r.moreIcon??zt.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(r.actionViewItemProvider){const a=r.actionViewItemProvider(o,s);if(a)return a}if(o instanceof JW){const a=new D1e(o,o.actions,n,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:o.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return a.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(a),this.disposables.add(this._onDidChangeDropdownVisibility.add(a.onDidChangeVisibility)),a}}})),this.options.responsive){this.element.classList.add("responsive");const o=new ResizeObserver(()=>{this.setToolbarMaxWidth(this.element.getBoundingClientRect().width)});o.observe(this.element),this._store.add(Hn(()=>o.disconnect()))}}set actionRunner(t){this.actionBar.actionRunner=t}get actionRunner(){return this.actionBar.actionRunner}set context(t){var n;this.actionBar.context=t,(n=this.toggleMenuActionViewItem)==null||n.setActionContext(t);for(const r of this.submenuActionViewItems)r.setActionContext(t)}getElement(){return this.element}getItemAction(t){return this.actionBar.getAction(t)}getItemWidth(t){return this.actionBar.getWidth(t)}setActions(t,n){this.clear(),this.originalPrimaryActions=t?t.slice(0):[],this.originalSecondaryActions=n?n.slice(0):[];const r=t?t.slice(0):[];this.hasSecondaryActions=!!(n&&n.length>0),this.hasSecondaryActions&&n&&(this.toggleMenuAction.menuActions=n.slice(0),r.push(this.toggleMenuAction)),r.length>0&&this.options.trailingSeparator&&r.push(new pd),r.forEach(o=>{this.actionBar.push(o,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(o)})}),this.options.responsive&&(this.hiddenActions.length=0,this.setToolbarMaxWidth(this.element.getBoundingClientRect().width))}getKeybindingLabel(t){var r,o;const n=(o=(r=this.options).getKeyBinding)==null?void 0:o.call(r,t);return(n==null?void 0:n.getLabel())??void 0}getItemsWidthResponsive(){return this.actionBar.length()*QOt}setToolbarMaxWidth(t){if(this.actionBar.isEmpty()||this.getItemsWidthResponsive()<=t&&this.hiddenActions.length===0)return;if(this.getItemsWidthResponsive()>t)for(;this.getItemsWidthResponsive()>t&&this.actionBar.length()>0;){const r=this.originalPrimaryActions.length-this.hiddenActions.length-1;if(r<0)break;const o=Math.min(QOt,this.getItemWidth(r)),s=this.originalPrimaryActions[r];this.hiddenActions.unshift({action:s,size:o}),this.actionBar.pull(r),this.originalSecondaryActions.length===0&&this.hiddenActions.length===1&&this.actionBar.push(this.toggleMenuAction,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(this.toggleMenuAction)})}else for(;this.hiddenActions.length>0;){const r=this.hiddenActions.shift();if(this.getItemsWidthResponsive()+r.size>t){this.hiddenActions.unshift(r);break}this.actionBar.push(r.action,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(r.action),index:this.originalPrimaryActions.length-this.hiddenActions.length-1}),this.originalSecondaryActions.length===0&&this.hiddenActions.length===1&&(this.toggleMenuAction.menuActions=[],this.actionBar.pull(this.actionBar.length()-1))}const n=this.hiddenActions.map(r=>r.action);if(this.originalSecondaryActions.length>0||n.length>0){const r=this.originalSecondaryActions.slice(0);this.toggleMenuAction.menuActions=pd.join(n,r)}}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}const Wve=class Wve extends n2{constructor(t,n){n=n||U(17,"More Actions..."),super(Wve.ID,n,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=t}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(t){this._menuActions=t}};Wve.ID="toolbar.toggle.more";let BJ=Wve;class h3e{constructor(t,n,r=n){this.modifierLabels=[null],this.modifierLabels[2]=t,this.modifierLabels[1]=n,this.modifierLabels[3]=r}toLabel(t,n,r){if(n.length===0)return null;const o=[];for(let s=0,a=n.length;sthis.onDidChangeItemsExternal(t)))}onDidChangeItemsExternal(t){var n,r;this._onDidChangeStorage.pause();try{(n=t.changed)==null||n.forEach((o,s)=>this.acceptExternal(s,o)),(r=t.deleted)==null||r.forEach(o=>this.acceptExternal(o,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(t,n){if(this.state===ET.Closed)return;let r=!1;Qv(n)?r=this.cache.delete(t):this.cache.get(t)!==n&&(this.cache.set(t,n),r=!0),r&&this._onDidChangeStorage.fire({key:t,external:!0})}get(t,n){const r=this.cache.get(t);return Qv(r)?n:r}getBoolean(t,n){const r=this.get(t);return Qv(r)?n:r==="true"}getNumber(t,n){const r=this.get(t);return Qv(r)?n:parseInt(r,10)}async set(t,n,r=!1){if(this.state===ET.Closed)return;if(Qv(n))return this.delete(t,r);const o=Pd(n)||Array.isArray(n)?Imo(n):String(n);if(this.cache.get(t)!==o)return this.cache.set(t,o),this.pendingInserts.set(t,o),this.pendingDeletes.delete(t),this._onDidChangeStorage.fire({key:t,external:r}),this.doFlush()}async delete(t,n=!1){if(!(this.state===ET.Closed||!this.cache.delete(t)))return this.pendingDeletes.has(t)||this.pendingDeletes.add(t),this.pendingInserts.delete(t),this._onDidChangeStorage.fire({key:t,external:n}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const t={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(t).finally(()=>{var n;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(n=this.whenFlushedCallbacks.pop())==null||n()})}async flush(t){if(!(this.state===ET.Closed||this.pendingClose))return this.doFlush(t)}async doFlush(t){return this.options.hint===WU.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),t)}async whenFlushed(){if(this.hasPending)return new Promise(t=>this.whenFlushedCallbacks.push(t))}},RD.DEFAULT_FLUSH_DELAY=100,RD);class nxe{constructor(){this.onDidChangeItemsExternal=an.None,this.items=new Map}async updateItems(t){var n,r;(n=t.insert)==null||n.forEach((o,s)=>this.items.set(s,o)),(r=t.delete)==null||r.forEach(o=>this.items.delete(o))}}const uhe="__$__targetStorageMarker",Bg=Cr("storageService");var F9;(function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"})(F9||(F9={}));function Cko(e){const t=e.get(uhe);if(t)try{return JSON.parse(t)}catch{}return Object.create(null)}const Vve=class Vve extends ft{constructor(t={flushInterval:Vve.DEFAULT_FLUSH_INTERVAL}){super(),this._onDidChangeValue=this._register(new rR),this._onDidChangeTarget=this._register(new rR),this._onWillSaveState=this._register(new at),this.onWillSaveState=this._onWillSaveState.event,this.runFlushWhenIdle=this._register(new ts),this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0,this.flushWhenIdleScheduler=this._register(new Es(()=>this.doFlushWhenIdle(),t.flushInterval))}onDidChangeValue(t,n,r){return an.filter(this._onDidChangeValue.event,o=>o.scope===t&&(n===void 0||o.key===n),r)}doFlushWhenIdle(){this.runFlushWhenIdle.value=QJe(()=>{this.shouldFlushWhenIdle()&&this.flush(),this.flushWhenIdleScheduler.schedule()})}shouldFlushWhenIdle(){return!0}emitDidChangeValue(t,n){const{key:r,external:o}=n;if(r===uhe){switch(t){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:t})}else this._onDidChangeValue.fire({scope:t,key:r,target:this.getKeyTargets(t)[r],external:o})}get(t,n,r){var o;return(o=this.getStorage(n))==null?void 0:o.get(t,r)}getBoolean(t,n,r){var o;return(o=this.getStorage(n))==null?void 0:o.getBoolean(t,r)}getNumber(t,n,r){var o;return(o=this.getStorage(n))==null?void 0:o.getNumber(t,r)}store(t,n,r,o,s=!1){if(Qv(n)){this.remove(t,r,s);return}this.withPausedEmitters(()=>{var a;this.updateKeyTarget(t,r,o),(a=this.getStorage(r))==null||a.set(t,n,s)})}remove(t,n,r=!1){this.withPausedEmitters(()=>{var o;this.updateKeyTarget(t,n,void 0),(o=this.getStorage(n))==null||o.delete(t,r)})}withPausedEmitters(t){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{t()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(t,n,r,o=!1){var a,l;const s=this.getKeyTargets(n);typeof r=="number"?s[t]!==r&&(s[t]=r,(a=this.getStorage(n))==null||a.set(uhe,JSON.stringify(s),o)):typeof s[t]=="number"&&(delete s[t],(l=this.getStorage(n))==null||l.set(uhe,JSON.stringify(s),o))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(t){switch(t){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(t){const n=this.getStorage(t);return n?Cko(n):Object.create(null)}async flush(t=F9.NONE){this._onWillSaveState.fire({reason:t});const n=this.getStorage(-1),r=this.getStorage(0),o=this.getStorage(1);switch(t){case F9.NONE:await UK.settled([(n==null?void 0:n.whenFlushed())??Promise.resolve(),(r==null?void 0:r.whenFlushed())??Promise.resolve(),(o==null?void 0:o.whenFlushed())??Promise.resolve()]);break;case F9.SHUTDOWN:await UK.settled([(n==null?void 0:n.flush(0))??Promise.resolve(),(r==null?void 0:r.flush(0))??Promise.resolve(),(o==null?void 0:o.flush(0))??Promise.resolve()]);break}}};Vve.DEFAULT_FLUSH_INTERVAL=60*1e3;let uje=Vve;class _ko extends uje{constructor(){super(),this.applicationStorage=this._register(new txe(new nxe,{hint:WU.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new txe(new nxe,{hint:WU.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new txe(new nxe,{hint:WU.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(t=>this.emitDidChangeValue(1,t))),this._register(this.profileStorage.onDidChangeStorage(t=>this.emitDidChangeValue(0,t))),this._register(this.applicationStorage.onDidChangeStorage(t=>this.emitDidChangeValue(-1,t)))}getStorage(t){switch(t){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}shouldFlushWhenIdle(){return!1}}function Sko(e,t){const n={...t};for(const r in e){const o=e[r];n[r]=o!==void 0?en(o):void 0}return n}const fDn={keybindingLabelBackground:en(Iso),keybindingLabelForeground:en(Mso),keybindingLabelBorder:en(Pso),keybindingLabelBottomBorder:en(Fso),keybindingLabelShadow:en(Jz)},Lko={buttonForeground:en(Ybe),buttonSeparator:en(Oso),buttonBackground:en(dQ),buttonHoverBackground:en(yso),buttonSecondaryForeground:en(Q7n),buttonSecondaryBackground:en(Gme),buttonSecondaryHoverBackground:en(_so),buttonBorder:en(Cso)},xko={progressBarBackground:en(Foo)},B1e={inputActiveOptionBorder:en(Die),inputActiveOptionForeground:en(Bie),inputActiveOptionBackground:en(eH)};en(IG),en(Sso),en(Lso),en(xso),en(Eso),en(Tso),en(Qso);const Btt={checkboxBackground:en(Eet),checkboxBorder:en(Dso),checkboxForeground:en(Tet),checkboxDisabledBackground:en(Bso),checkboxDisabledForeground:en(Rso)};en(Gk),en(Hbe),en(Jz),en(Cet),en(iso),en(rso),en(oso),en(Moo);const R1e={inputBackground:en(jNe),inputForeground:en(E7n),inputBorder:en(T7n),inputValidationInfoBorder:en(gso),inputValidationInfoBackground:en(hso),inputValidationInfoForeground:en(fso),inputValidationWarningBorder:en(vso),inputValidationWarningBackground:en(mso),inputValidationWarningForeground:en(kso),inputValidationErrorBorder:en(bso),inputValidationErrorBackground:en(Aso),inputValidationErrorForeground:en(pso)},Eko={listFilterWidgetBackground:en(qso),listFilterWidgetOutline:en(Kso),listFilterWidgetNoMatchesOutline:en(Jso),listFilterWidgetShadow:en(eao),inputBoxStyles:R1e,toggleStyles:B1e},gDn={badgeBackground:en(ihe),badgeForeground:en(Poo),badgeBorder:en(ro)};en(tso),en(eso),en(u3t),en(u3t),en(nso);const sH={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:en(Nso),listFocusForeground:en(Uso),listFocusOutline:en(jso),listActiveSelectionBackground:en(cR),listActiveSelectionForeground:en(oJ),listActiveSelectionIconForeground:en(D7n),listFocusAndSelectionOutline:en(Wso),listFocusAndSelectionBackground:en(cR),listFocusAndSelectionForeground:en(oJ),listInactiveSelectionBackground:en(Vso),listInactiveSelectionIconForeground:en(Hso),listInactiveSelectionForeground:en(zso),listInactiveFocusBackground:en($so),listInactiveFocusOutline:en(Xso),listHoverBackground:en(B7n),listHoverForeground:en(R7n),listDropOverBackground:en(Gso),listDropBetweenBackground:en(Yso),listSelectionOutline:en(Va),listHoverOutline:en(Va),treeIndentGuidesStroke:en(I7n),treeInactiveIndentGuidesStroke:en(tao),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:en(zbe),tableColumnsBorder:en(nao),tableOddRowsBackgroundColor:en(iao)};function TI(e){return Sko(e,sH)}const Tko={selectBackground:en(Gbe),selectListBackground:en(wso),selectForeground:en(Let),decoratorRightForeground:en(M7n),selectBorder:en(xet),focusBorder:en(_y),listFocusBackground:en(aJ),listInactiveSelectionIconForeground:en(Qet),listFocusForeground:en(sJ),listFocusOutline:A7n(Va,Dt.transparent.toString()),listHoverBackground:en(B7n),listHoverForeground:en(R7n),listHoverOutline:en(Va),selectListBorder:en(pet),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},Qko={shadowColor:en(Jz),borderColor:en(oao),foregroundColor:en(sao),backgroundColor:en(aao),selectionForegroundColor:en(lao),selectionBackgroundColor:en(cao),selectionBorderColor:en(dao),separatorColor:en(uao),scrollbarShadow:en(zbe),scrollbarSliderBackground:en(y7n),scrollbarSliderHoverBackground:en(C7n),scrollbarSliderActiveBackground:en(_7n)};function Dko(e,t){if(qy)return!1;const n=Bko(e,t),r=e.getValue("window");return(r==null?void 0:r.menuStyle)==="native"?!(!Tr&&!n):(r==null?void 0:r.menuStyle)==="custom"?!1:n}function Bko(e,t){return t||(t=mDn(e)),t==="native"}function mDn(e){if(qy)return"custom";const t=e.getValue("window");if(t){if(Tr&&t.nativeTabs===!0||Tr&&t.nativeFullScreen===!1)return"native";const o=t.titleBarStyle;if(o==="native"||o==="custom")return o}return"custom"}function Rko(e){if(qy||Tr||mDn(e)==="native")return"native";const t=e.getValue("window"),n=t==null?void 0:t.controlsStyle;return n==="custom"||n==="hidden"?n:"native"}var f3e=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},om=function(e,t){return function(n,r){t(n,r,e)}};function Iko(e,t){const n=[];return Mko(e,n),n}function Mko(e,t,n){const r=TS.getInstance(),o=r.keyStatus.altKey||(mh||v1)&&r.keyStatus.shiftKey;ADn(e,t,o,s=>s==="navigation")}function kDn(e,t,n,r){const o={primary:[],secondary:[]};return vDn(e,o,t,n,r),o}function Pko(e,t,n,r){const o=[];return vDn(e,o,t,n,r),o}function vDn(e,t,n,r,o){ADn(e,t,!1,typeof n=="string"?a=>a===n:n,r,o)}function ADn(e,t,n,r=a=>a==="navigation",o=()=>!1,s=!1){let a,l;Array.isArray(t)?(a=t,l=t):(a=t.primary,l=t.secondary);const d=new Set;for(const[u,h]of e){let g;r(u)?(g=a,g.length>0&&s&&g.push(new pd)):(g=l,g.length>0&&g.push(new pd));for(let m of h){n&&(m=m instanceof i2&&m.alt?m.alt:m);const v=g.push(m);m instanceof JW&&d.add({group:u,action:m,index:v-1})}}for(const{group:u,action:h,index:g}of d){const m=r(u)?a:l,v=h.actions;o(h,u,m.length)&&m.splice(g,1,...v)}}let D6=class extends gV{constructor(t,n,r,o,s,a,l,d){super(void 0,t,{icon:!!(t.class||t.item.icon),label:!t.class&&!t.item.icon,draggable:n==null?void 0:n.draggable,keybinding:n==null?void 0:n.keybinding,hoverDelegate:n==null?void 0:n.hoverDelegate,keybindingNotRenderedWithLabel:n==null?void 0:n.keybindingNotRenderedWithLabel}),this._options=n,this._keybindingService=r,this._notificationService=o,this._contextKeyService=s,this._themeService=a,this._contextMenuService=l,this._accessibilityService=d,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new ts),this._altKey=TS.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(t){t.preventDefault(),t.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(n){this._notificationService.error(n)}}render(t){if(super.render(t),t.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let n=!1;const r=()=>{var s;const o=!!((s=this._menuItemAction.alt)!=null&&s.enabled)&&(!this._accessibilityService.isMotionReduced()||n)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&n);o!==this._wantsAltCommand&&(this._wantsAltCommand=o,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(r)),this._register(wt(t,"mouseleave",o=>{n=!1,r()})),this._register(wt(t,"mouseenter",o=>{n=!0,r()})),r()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var s;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),n=t&&t.getLabel(),r=this._commandAction.tooltip||this._commandAction.label;let o=n?U(1644,"{0} ({1})",r,n):r;if(!this._wantsAltCommand&&((s=this._menuItemAction.alt)!=null&&s.enabled)){const a=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,l=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),d=l&&l.getLabel(),u=d?U(1645,"{0} ({1})",a,d):a;o=U(1646,`{0} -[{1}] {2}`,o,Dtt.modifierLabels[b0].altKey,u)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(t){this._itemClassDispose.value=void 0;const{element:n,label:r}=this;if(!n||!r)return;const o=this._commandAction.checked&&yko(t.toggled)&&t.toggled.icon?t.toggled.icon:t.icon;if(o)if(fi.isThemeIcon(o)){const s=fi.asClassNameArray(o);r.classList.add(...s),this._itemClassDispose.value=Hn(()=>{r.classList.remove(...s)})}else r.style.backgroundImage=j8(this._themeService.getColorTheme().type)?xy(o.dark):xy(o.light),r.classList.add("icon"),this._itemClassDispose.value=G4(Hn(()=>{r.style.backgroundImage="",r.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};D6=f3e([om(2,Do),om(3,ic),om(4,Qi),om(5,Dl),om(6,S2),om(7,vh)],D6);class Rtt extends D6{render(t){var n;this.options.label=!0,this.options.icon=!1,super.render(t),t.classList.add("text-only"),t.classList.toggle("use-comma",((n=this._options)==null?void 0:n.useComma)??!1)}updateLabel(){var n;const t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!t)return super.updateLabel();if(this.label){const r=Rtt._symbolPrintEnter(t);(n=this._options)!=null&&n.conversational?this.label.textContent=U(1647,"{1} to {0}",this._action.label,r):this.label.textContent=U(1648,"{0} ({1})",this._action.label,r)}}static _symbolPrintEnter(t){var n;return(n=t.getLabel())==null?void 0:n.replace(/\benter\b/gi,"⏎").replace(/\bEscape\b/gi,"Esc")}}let hje=class extends D1e{constructor(t,n,r,o,s){const a={...n,menuAsChild:(n==null?void 0:n.menuAsChild)??!1,classNames:(n==null?void 0:n.classNames)??(fi.isThemeIcon(t.item.icon)?fi.asClassName(t.item.icon):void 0),keybindingProvider:(n==null?void 0:n.keybindingProvider)??(l=>r.lookupKeybinding(l.id))};super(t,{getActions:()=>t.actions},o,a),this._keybindingService=r,this._contextMenuService=o,this._themeService=s}render(t){super.render(t),Oo(this.element),t.classList.add("menu-entry");const n=this._action,{icon:r}=n.item;if(r&&!fi.isThemeIcon(r)){this.element.classList.add("icon");const o=()=>{this.element&&(this.element.style.backgroundImage=j8(this._themeService.getColorTheme().type)?xy(r.dark):xy(r.light))};o(),this._register(this._themeService.onDidColorThemeChange(()=>{o()}))}}};hje=f3e([om(2,Do),om(3,S2),om(4,Dl)],hje);let fje=class extends Fb{constructor(t,n,r,o,s,a,l,d){super(null,t),this._keybindingService=r,this._notificationService=o,this._contextMenuService=s,this._menuService=a,this._instaService=l,this._storageService=d,this._defaultActionDisposables=this._register(new xt),this._container=null,this._options=n,this._storageKey=`${t.item.submenu.id}_lastActionId`;let u;const h=n!=null&&n.togglePrimaryAction?d.get(this._storageKey,1):void 0;h&&(u=t.actions.find(m=>h===m.id)),u||(u=t.actions[0]),this._defaultAction=this._defaultActionDisposables.add(this._instaService.createInstance(D6,u,{keybinding:this._getDefaultActionKeybindingLabel(u)}));const g={keybindingProvider:m=>this._keybindingService.lookupKeybinding(m.id),...n,menuAsChild:(n==null?void 0:n.menuAsChild)??!0,classNames:(n==null?void 0:n.classNames)??["codicon","codicon-chevron-down"],actionRunner:(n==null?void 0:n.actionRunner)??this._register(new sR)};this._dropdown=this._register(new D1e(t,t.actions,this._contextMenuService,g)),n!=null&&n.togglePrimaryAction&&this._register(this._dropdown.actionRunner.onDidRun(m=>{m.action instanceof i2&&this.update(m.action)}))}update(t){var n;(n=this._options)!=null&&n.togglePrimaryAction&&this._storageService.store(this._storageKey,t.id,1,1),this._defaultActionDisposables.clear(),this._defaultAction=this._defaultActionDisposables.add(this._instaService.createInstance(D6,t,{keybinding:this._getDefaultActionKeybindingLabel(t)})),this._defaultAction.actionRunner=this._defaultActionDisposables.add(new class extends sR{async runAction(r,o){await r.run(void 0)}}),this._container&&this._defaultAction.render(Obe(this._container,tn(".action-container")))}_getDefaultActionKeybindingLabel(t){var r;let n;if((r=this._options)!=null&&r.renderKeybindingWithDefaultActionLabel){const o=this._keybindingService.lookupKeybinding(t.id);o&&(n=`(${o.getLabel()})`)}return n}setActionContext(t){super.setActionContext(t),this._defaultAction.setActionContext(t),this._dropdown.setActionContext(t)}set actionRunner(t){super.actionRunner=t,this._defaultAction.actionRunner=t,this._dropdown.actionRunner=t}get actionRunner(){return super.actionRunner}render(t){this._container=t,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const n=tn(".action-container");this._defaultAction.render(Xt(this._container,n)),this._register(wt(n,rn.KEY_DOWN,o=>{const s=new Us(o);s.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),s.stopPropagation())}));const r=tn(".dropdown-action-container");this._dropdown.render(Xt(this._container,r)),this._register(wt(r,rn.KEY_DOWN,o=>{var a;const s=new Us(o);s.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(a=this._defaultAction.element)==null||a.focus(),s.stopPropagation())}))}focus(t){t?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(t){t?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}};fje=f3e([om(2,Do),om(3,ic),om(4,S2),om(5,wA),om(6,Yn),om(7,Bg)],fje);let gje=class extends g0o{constructor(t,n,r){super(null,t,t.actions.map(o=>({text:o.id===pd.ID?"─────────":o.label,isDisabled:!o.enabled})),0,n,Tko,{ariaLabel:t.tooltip,optionsAsChildren:!0,useCustomDrawn:!Dko(r)}),this.select(Math.max(0,t.actions.findIndex(o=>o.checked)))}render(t){super.render(t),t.style.borderColor=en(xet)}runAction(t,n){const r=this.action.actions[n];r&&this.actionRunner.run(r)}};gje=f3e([om(1,wL),om(2,ar)],gje);function Itt(e,t,n){return t instanceof i2?e.createInstance(D6,t,n):t instanceof uD?t.item.isSelection?e.createInstance(gje,t):t.item.isSplitButton?e.createInstance(fje,t,{...n,togglePrimaryAction:typeof t.item.isSplitButton!="boolean"?t.item.isSplitButton.togglePrimaryAction:!1}):e.createInstance(hje,t,n):void 0}var g3e=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},dy=function(e,t){return function(n,r){t(n,r,e)}},EF,UG;let mje=class{constructor(t,n,r){this._commandService=t,this._keybindingService=n,this._hiddenStates=new kje(r)}createMenu(t,n,r){return new I1e(t,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,this._keybindingService,n)}getMenuActions(t,n,r){const o=new I1e(t,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,this._keybindingService,n),s=o.getActions(r);return o.dispose(),s}resetHiddenStates(t){this._hiddenStates.reset(t)}};mje=g3e([dy(0,ba),dy(1,Do),dy(2,Bg)],mje);var ID;let kje=(ID=class{constructor(t){this._storageService=t,this._disposables=new xt,this._onDidChange=new at,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const n=t.get(EF._key,0,"{}");this._data=JSON.parse(n)}catch{this._data=Object.create(null)}this._disposables.add(t.onDidChangeValue(0,EF._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const n=t.get(EF._key,0,"{}");this._data=JSON.parse(n)}catch(n){console.log("FAILED to read storage after UPDATE",n)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(t,n){return this._hiddenByDefaultCache.get(`${t.id}/${n}`)??!1}setDefaultState(t,n,r){this._hiddenByDefaultCache.set(`${t.id}/${n}`,r)}isHidden(t,n){var s;const r=this._isHiddenByDefault(t,n),o=((s=this._data[t.id])==null?void 0:s.includes(n))??!1;return r?!o:o}updateHidden(t,n,r){this._isHiddenByDefault(t,n)&&(r=!r);const s=this._data[t.id];if(r)s?s.indexOf(n)<0&&s.push(n):this._data[t.id]=[n];else if(s){const a=s.indexOf(n);a>=0&&oto(s,a),s.length===0&&delete this._data[t.id]}this._persist()}reset(t){if(t===void 0)this._data=Object.create(null),this._persist();else{for(const{id:n}of t)this._data[n]&&delete this._data[n];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const t=JSON.stringify(this._data);this._storageService.store(EF._key,t,0,0)}finally{this._ignoreChangeEvent=!1}}},EF=ID,ID._key="menu.hiddenCommands",ID);kje=EF=g3e([dy(0,Bg)],kje);class EZ{constructor(t,n){this._id=t,this._collectContextKeysForSubmenus=n,this._menuGroups=[],this._allMenuIds=new Set,this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get allMenuIds(){return this._allMenuIds}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._allMenuIds.clear(),this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const t=this._sort(Iu.getMenuItems(this._id));let n;for(const r of t){const o=r.group||"";(!n||n[0]!==o)&&(n=[o,[]],this._menuGroups.push(n)),n[1].push(r),this._collectContextKeysAndSubmenuIds(r)}this._allMenuIds.add(this._id)}_sort(t){return t}_collectContextKeysAndSubmenuIds(t){if(EZ._fillInKbExprKeys(t.when,this._structureContextKeys),LU(t)){if(t.command.precondition&&EZ._fillInKbExprKeys(t.command.precondition,this._preconditionContextKeys),t.command.toggled){const n=t.command.toggled.condition||t.command.toggled;EZ._fillInKbExprKeys(n,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&(Iu.getMenuItems(t.submenu).forEach(this._collectContextKeysAndSubmenuIds,this),this._allMenuIds.add(t.submenu))}static _fillInKbExprKeys(t,n){if(t)for(const r of t.keys())n.add(r)}}let vje=UG=class extends EZ{constructor(t,n,r,o,s,a){super(t,r),this._hiddenStates=n,this._commandService=o,this._keybindingService=s,this._contextKeyService=a,this.refresh()}createActionGroups(t){const n=[];for(const r of this._menuGroups){const[o,s]=r;let a;for(const l of s)if(this._contextKeyService.contextMatchesRules(l.when)){const d=LU(l);d&&this._hiddenStates.setDefaultState(this._id,l.command.id,!!l.isHiddenByDefault);const u=Fko(this._id,d?l.command:l,this._hiddenStates);if(d){const h=pDn(this._commandService,this._keybindingService,l.command.id,l.when);(a??(a=[])).push(new i2(l.command,l.alt,t,u,h,this._contextKeyService,this._commandService))}else{const h=new UG(l.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(t),g=pd.join(...h.map(m=>m[1]));g.length>0&&(a??(a=[])).push(new uD(l,u,g))}}a&&a.length>0&&n.push([o,a])}return n}_sort(t){return t.sort(UG._compareMenuItems)}static _compareMenuItems(t,n){const r=t.group,o=n.group;if(r!==o){if(r){if(!o)return-1}else return 1;if(r==="navigation")return-1;if(o==="navigation")return 1;const l=r.localeCompare(o);if(l!==0)return l}const s=t.order||0,a=n.order||0;return sa?1:UG._compareTitles(LU(t)?t.command.title:t.title,LU(n)?n.command.title:n.title)}static _compareTitles(t,n){const r=typeof t=="string"?t:t.original,o=typeof n=="string"?n:n.original;return r.localeCompare(o)}};vje=UG=g3e([dy(3,ba),dy(4,Do),dy(5,Qi)],vje);let I1e=class{constructor(t,n,r,o,s,a){this._disposables=new xt,this._menuInfo=new vje(t,n,r.emitEventsForSubmenuChanges,o,s,a);const l=new Es(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},r.eventDebounceDelay);this._disposables.add(l),this._disposables.add(Iu.onDidChangeMenu(g=>{for(const m of this._menuInfo.allMenuIds)if(g.has(m)){l.schedule();break}}));const d=this._disposables.add(new xt),u=g=>{let m=!1,v=!1,f=!1;for(const k of g)if(m=m||k.isStructuralChange,v=v||k.isEnablementChange,f=f||k.isToggleChange,m&&v&&f)break;return{menu:this,isStructuralChange:m,isEnablementChange:v,isToggleChange:f}},h=()=>{d.add(a.onDidChangeContext(g=>{const m=g.affectsSome(this._menuInfo.structureContextKeys),v=g.affectsSome(this._menuInfo.preconditionContextKeys),f=g.affectsSome(this._menuInfo.toggledContextKeys);(m||v||f)&&this._onDidChange.fire({menu:this,isStructuralChange:m,isEnablementChange:v,isToggleChange:f})})),d.add(n.onDidChange(g=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new M6n({onWillAddFirstListener:h,onDidRemoveLastListener:d.clear.bind(d),delay:r.eventDebounceDelay,merge:u}),this.onDidChange=this._onDidChange.event}getActions(t){return this._menuInfo.createActionGroups(t)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};I1e=g3e([dy(3,ba),dy(4,Do),dy(5,Qi)],I1e);function Fko(e,t,n){const r=Ono(t)?t.submenu.id:t.id,o=typeof t.title=="string"?t.title:t.title.value,s=dD({id:`hide/${e.id}/${r}`,label:U(1651,"Hide '{0}'",o),run(){n.updateHidden(e,r,!0)}}),a=dD({id:`toggle/${e.id}/${r}`,label:o,get checked(){return!n.isHidden(e,r)},run(){n.updateHidden(e,r,!!this.checked)}});return{hide:s,toggle:a,get isHidden(){return!a.checked}}}function pDn(e,t,n,r=void 0,o=!0){return dD({id:`configureKeybinding/${n}`,label:U(1652,"Configure Keybinding"),enabled:o,run(){const a=!!!t.lookupKeybinding(n)&&r?r.serialize():void 0;e.executeCommand("workbench.action.openGlobalKeybindings",`@command:${n}`+(a?` +when:${a}`:""))}})}const bDn=Cr("IActionViewItemService");class Nko{constructor(){this._providers=new Map,this._onDidChange=new at,this.onDidChange=this._onDidChange.event}dispose(){this._onDidChange.dispose()}lookUp(t,n){return this._providers.get(this._makeKey(t,n))}_makeKey(t,n){return`${t.id}/${n instanceof Wn?n.id:n}`}}zr(bDn,Nko,1);var wDn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Rk=function(e,t){return function(n,r){t(n,r,e)}};let M1e=class extends vko{constructor(t,n,r,o,s,a,l,d){super(t,s,{getKeyBinding:h=>a.lookupKeybinding(h.id)??void 0,...n,allowContextMenu:!0,skipTelemetry:typeof(n==null?void 0:n.telemetrySource)=="string"}),this._options=n,this._menuService=r,this._contextKeyService=o,this._contextMenuService=s,this._keybindingService=a,this._commandService=l,this._sessionDisposables=this._store.add(new xt);const u=n==null?void 0:n.telemetrySource;u&&this._store.add(this.actionBar.onDidRun(h=>d.publicLog2("workbenchActionExecuted",{id:h.action.id,from:u})))}setActions(t,n=[],r){var h,g,m;this._sessionDisposables.clear();const o=t.slice(),s=n.slice(),a=[];let l=0;const d=[];let u=!1;if(((h=this._options)==null?void 0:h.hiddenItemStrategy)!==-1)for(let v=0;vA==null?void 0:A.id)),f=this._options.overflowBehavior.maxItems-v.size;let k=0;for(let A=0;A=f&&(o[A]=void 0,d[A]=p))}}gbt(o),gbt(d),super.setActions(o,pd.join(d,s)),(a.length>0||o.length>0)&&this._sessionDisposables.add(wt(this.getElement(),"contextmenu",v=>{var b,w,O,y,C;const f=new Xh(ii(this.getElement()),v),k=this.getItemAction(f.target);if(!k)return;f.preventDefault(),f.stopPropagation();const A=[];if(k instanceof i2&&k.menuKeybinding)A.push(k.menuKeybinding);else if(!(k instanceof uD||k instanceof BJ)){const _=!!this._keybindingService.lookupKeybinding(k.id);A.push(pDn(this._commandService,this._keybindingService,k.id,void 0,_))}if(a.length>0){let _=!1;if(l===1&&((b=this._options)==null?void 0:b.hiddenItemStrategy)===0){_=!0;for(let S=0;Sthis._menuService.resetHiddenStates(r)}))),p.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>f,getActions:()=>p,menuId:(O=this._options)==null?void 0:O.contextMenu,menuActionOptions:{renderShortTitle:!0,...(y=this._options)==null?void 0:y.menuOptions},skipTelemetry:typeof((C=this._options)==null?void 0:C.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};M1e=wDn([Rk(2,wA),Rk(3,Qi),Rk(4,S2),Rk(5,Do),Rk(6,ba),Rk(7,Nf)],M1e);let RJ=class extends M1e{get onDidChangeMenuItems(){return this._onDidChangeMenuItems.event}constructor(t,n,r,o,s,a,l,d,u,h,g){super(t,{resetMenu:n,...r,actionViewItemProvider:(f,k)=>{let A=h.lookUp(n,f instanceof uD?f.item.submenu.id:f.id);A||(A=r==null?void 0:r.actionViewItemProvider);const p=A==null?void 0:A(f,k,g,ii(t).vscodeWindowId);return p||Itt(g,f,k)}},o,s,a,l,d,u),this._onDidChangeMenuItems=this._store.add(new at);const m=this._store.add(o.createMenu(n,s,{emitEventsForSubmenuChanges:!0,eventDebounceDelay:r==null?void 0:r.eventDebounceDelay})),v=()=>{var A,p,b;const{primary:f,secondary:k}=kDn(m.getActions(r==null?void 0:r.menuOptions),(A=r==null?void 0:r.toolbarOptions)==null?void 0:A.primaryGroup,(p=r==null?void 0:r.toolbarOptions)==null?void 0:p.shouldInlineSubmenu,(b=r==null?void 0:r.toolbarOptions)==null?void 0:b.useSeparatorsInPrimaryActions);t.classList.toggle("has-no-actions",f.length===0&&k.length===0),super.setActions(f,k)};this._store.add(m.onDidChange(()=>{v(),this._onDidChangeMenuItems.fire(this)})),this._store.add(h.onDidChange(f=>{f===n&&v()})),v()}setActions(){throw new ui("This toolbar is populated from a menu.")}};RJ=wDn([Rk(3,wA),Rk(4,Qi),Rk(5,S2),Rk(6,Do),Rk(7,ba),Rk(8,Nf),Rk(9,bDn),Rk(10,Yn)],RJ);var Uko=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DOt=function(e,t){return function(n,r){t(n,r,e)}};const pm=Cr("hoverService");let mV=class extends ft{get delay(){var t;return this.isInstantlyHovering()?0:(t=this.hoverOptions)!=null&&t.dynamicDelay?n=>{var r,o;return((o=(r=this.hoverOptions)==null?void 0:r.dynamicDelay)==null?void 0:o.call(r,n))??this._delay}:this._delay}constructor(t,n,r={},o,s){super(),this.placement=t,this.hoverOptions=n,this.overrideOptions=r,this.configurationService=o,this.hoverService=s,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new xt),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(t,n){const r=typeof this.overrideOptions=="function"?this.overrideOptions(t,n):this.overrideOptions;this.hoverDisposables.clear();const o=ec(t.target)?[t.target]:t.target.targetElements;for(const a of o)this.hoverDisposables.add(wc(a,"keydown",l=>{l.equals(9)&&this.hoverService.hideHover()}));const s=ec(t.content)?void 0:typeof t.content=="string"?t.content.toString():t.content.value;return this.hoverService.showInstantHover({...t,...r,persistence:{hideOnKeyDown:!0,...r.persistence},id:s,appearance:{...t.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...r.appearance}},n)}isInstantlyHovering(){var t;return!!((t=this.hoverOptions)!=null&&t.instantHover)&&Date.now()-this.lastHoverHideTimethis._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(a=>a===0),this.modelAttached=Ko(this,this._editor.onDidChangeModel,a=>this._editor.hasModel()),this.editorOnDidChangeViewZones=A0("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=A0("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=Mv("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const o=this._domNode.appendChild(wo("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),s=new ResizeObserver(()=>{la(a=>{this.domNodeSizeChanged.trigger(a)})});s.observe(this._domNode),this._register(Hn(()=>s.disconnect())),this._register(Oi(a=>{o.className=this.isScrollTopZero.read(a)?"":"scroll-decoration"})),this._register(Oi(a=>this.render(a)))}dispose(){super.dispose(),mu(this._domNode)}render(t){if(!this.modelAttached.read(t))return;this.domNodeSizeChanged.read(t),this.editorOnDidChangeViewZones.read(t),this.editorOnDidContentSizeChange.read(t);const n=this.scrollTop.read(t),r=this._editor.getVisibleRanges(),o=new Set(this.views.keys()),s=Xn.ofStartAndLength(0,this._domNode.clientHeight);if(!s.isEmpty)for(const a of r){const l=new Ei(a.startLineNumber,a.endLineNumber+1),d=this.itemProvider.getIntersectingGutterItems(l,t);la(u=>{for(const h of d){if(!h.range.intersect(l))continue;o.delete(h.id);let g=this.views.get(h.id);if(g)g.item.set(h,u);else{const k=document.createElement("div");this._domNode.appendChild(k);const A=Ti("item",h),p=this.itemProvider.createView(A,k);g=new Vko(A,p,k),this.views.set(h.id,g)}const m=h.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(h.range.startLineNumber,!0)-n:h.range.startLineNumber>1?this._editor.getBottomForLineNumber(h.range.startLineNumber-1,!1)-n:0,f=(h.range.endLineNumberExclusive===1?Math.max(m,this._editor.getTopForLineNumber(h.range.startLineNumber,!1)-n):Math.max(m,this._editor.getBottomForLineNumber(h.range.endLineNumberExclusive-1,!0)-n))-m;g.domNode.style.top=`${m}px`,g.domNode.style.height=`${f}px`,g.gutterItemView.layout(Xn.ofStartAndLength(m,f),s)}})}for(const a of o){const l=this.views.get(a);l.gutterItemView.dispose(),l.domNode.remove(),this.views.delete(a)}}}class Vko{constructor(t,n,r){this.item=t,this.gutterItemView=n,this.domNode=r}}var yDn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},hhe=function(e,t){return function(n,r){t(n,r,e)}};const ixe=[],Fle=35;let Aje=class extends ft{constructor(t,n,r,o,s,a,l,d,u){super(),this._diffModel=n,this._editors=r,this._options=o,this._sashLayout=s,this._boundarySashes=a,this._instantiationService=l,this._contextKeyService=d,this._menuService=u,this._menu=this._register(this._menuService.createMenu(Wn.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=Ko(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(g=>g.length>0),this._showSash=Rt(this,g=>this._options.renderSideBySide.read(g)&&this._hasActions.read(g)),this.width=Rt(this,g=>this._hasActions.read(g)?Fle:0),this.elements=wo("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:Fle+"px"}},[]),this._currentDiff=Rt(this,g=>{var k;const m=this._diffModel.read(g);if(!m)return;const v=(k=m.diff.read(g))==null?void 0:k.mappings,f=this._editors.modifiedCursor.read(g);if(f)return v==null?void 0:v.find(A=>A.lineRangeMapping.modified.contains(f.lineNumber))}),this._selectedDiffs=Rt(this,g=>{const m=this._diffModel.read(g),v=m==null?void 0:m.diff.read(g);if(!v)return ixe;const f=this._editors.modifiedSelections.read(g);if(f.every(b=>b.isEmpty()))return ixe;const k=new Iv(f.map(b=>Ei.fromRangeInclusive(b))),p=v.mappings.filter(b=>b.lineRangeMapping.innerChanges&&k.intersects(b.lineRangeMapping.modified)).map(b=>({mapping:b,rangeMappings:b.lineRangeMapping.innerChanges.filter(w=>f.some(O=>Ee.areIntersecting(w.modifiedRange,O)))}));return p.length===0||p.every(b=>b.rangeMappings.length===0)?ixe:p}),this._register(k0o(t,this.elements.root)),this._register(wt(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(Q6(this.elements.root,{display:this._hasActions.map(g=>g?"block":"none")})),vv(this,g=>this._showSash.read(g)?new hDn(t,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,$Je(this,v=>this._sashLayout.sashLeft.read(v)-Fle,(v,f)=>this._sashLayout.sashLeft.set(v+Fle,f)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store);const h=Rt(this,g=>{const m=this._diffModel.read(g);if(!m)return[];const v=m.diff.read(g);if(!v)return[];const f=this._selectedDiffs.read(g);if(f.length>0){const A=s2.fromRangeMappings(f.flatMap(p=>p.rangeMappings));return[new BOt(A,!0,Wn.DiffEditorSelectionToolbar,void 0,m.model.original.uri,m.model.modified.uri)]}const k=this._currentDiff.read(g);return v.mappings.map(A=>new BOt(A.lineRangeMapping.withInnerChangesFromLineRanges(),A.lineRangeMapping===(k==null?void 0:k.lineRangeMapping),Wn.DiffEditorHunkToolbar,void 0,m.model.original.uri,m.model.modified.uri))});this._register(new Wko(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(g,m)=>h.read(m),createView:(g,m)=>this._instantiationService.createInstance(pje,g,m,this)})),this._register(wt(this.elements.gutter,rn.MOUSE_WHEEL,g=>{this._editors.modified.getOption(117).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(g)},{passive:!1}))}computeStagedValue(t){const n=t.innerChanges??[],r=new AR(this._editors.modifiedModel.get()),o=new AR(this._editors.original.getModel());return new V4(n.map(l=>l.toTextEdit(r))).apply(o)}layout(t){this.elements.gutter.style.left=t+"px"}};Aje=yDn([hhe(6,Yn),hhe(7,Qi),hhe(8,wA)],Aje);class BOt{constructor(t,n,r,o,s,a){this.mapping=t,this.showAlways=n,this.menuId=r,this.rangeOverride=o,this.originalUri=s,this.modifiedUri=a}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let pje=class extends ft{constructor(t,n,r,o){super(),this._item=t,this._elements=wo("div.gutterItem",{style:{height:"20px",width:"34px"}},[wo("div.background@background",{},[]),wo("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,a=>a.showAlways),this._menuId=this._item.map(this,a=>a.menuId),this._isSmall=Ti(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const s=this._register(o.createInstance(mV,"element",{instantHover:!0},{position:{hoverPosition:1}}));this._register(bN(n,this._elements.root)),this._register(Oi(a=>{const l=this._showAlways.read(a);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",l),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register(Ef((a,l)=>{this._elements.buttons.replaceChildren();const d=l.add(o.createInstance(RJ,this._elements.buttons,this._menuId.read(a),{orientation:1,hoverDelegate:s,toolbarOptions:{primaryGroup:u=>u.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(a)?1:3},hiddenItemStrategy:0,actionRunner:l.add(new ODn(()=>{const u=this._item.read(void 0),h=u.mapping;return{mapping:h,originalWithModifiedChanges:r.computeStagedValue(h),originalUri:u.originalUri,modifiedUri:u.modifiedUri}})),menuOptions:{shouldForwardArgs:!0}}));l.add(d.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(t,n){this._lastItemRange=t,this._lastViewRange=n;let r=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&t.length<30,void 0),r=this._elements.buttons.clientHeight;const o=t.length/2-r/2,s=r;let a=t.start+o;const l=Xn.tryCreate(s,n.endExclusive-s-r),d=Xn.tryCreate(t.start+s,t.endExclusive-r-s);d&&l&&d.start=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Hko=function(e,t){return function(n,r){t(n,r,e)}},bje,X9;let P1e=(X9=class extends ft{static setBreadcrumbsSourceFactory(t){this._breadcrumbsSourceFactory.set(t,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(t,n,r,o){super(),this._editors=t,this._diffModel=n,this._options=r,this._instantiationService=o,this._modifiedOutlineSource=vv(this,d=>{const u=this._editors.modifiedModel.read(d),h=bje._breadcrumbsSourceFactory.read(d);return!u||!h?void 0:h(u,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(d=>{if(d.reason===1)return;const u=this._diffModel.get();la(h=>{for(const g of this._editors.original.getSelections()||[])u==null||u.ensureOriginalLineIsVisible(g.getStartPosition().lineNumber,0,h),u==null||u.ensureOriginalLineIsVisible(g.getEndPosition().lineNumber,0,h)})})),this._register(this._editors.modified.onDidChangeCursorPosition(d=>{if(d.reason===1)return;const u=this._diffModel.get();la(h=>{for(const g of this._editors.modified.getSelections()||[])u==null||u.ensureModifiedLineIsVisible(g.getStartPosition().lineNumber,0,h),u==null||u.ensureModifiedLineIsVisible(g.getEndPosition().lineNumber,0,h)})}));const s=this._diffModel.map((d,u)=>{var g;const h=(d==null?void 0:d.unchangedRegions.read(u))??[];return h.length===1&&h[0].modifiedLineNumber===1&&h[0].lineCount===((g=this._editors.modifiedModel.read(u))==null?void 0:g.getLineCount())?[]:h});this.viewZones=Rt(this,d=>{const u=this._modifiedOutlineSource.read(d);if(!u)return{origViewZones:[],modViewZones:[]};const h=[],g=[],m=this._options.renderSideBySide.read(d),v=this._options.compactMode.read(d),f=s.read(d);for(let k=0;kA.getHiddenOriginalRange(w).startLineNumber-1),b=new wN(p,12);h.push(b),d.store.add(new ROt(this._editors.original,b,A,!m))}{const p=Rt(this,w=>A.getHiddenModifiedRange(w).startLineNumber-1),b=new wN(p,12);g.push(b),d.store.add(new ROt(this._editors.modified,b,A))}}else{{const p=Rt(this,w=>A.getHiddenOriginalRange(w).startLineNumber-1),b=new wN(p,24);h.push(b),d.store.add(new IOt(this._editors.original,b,A,A.originalUnchangedRange,!m,u,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}{const p=Rt(this,w=>A.getHiddenModifiedRange(w).startLineNumber-1),b=new wN(p,24);g.push(b),d.store.add(new IOt(this._editors.modified,b,A,A.modifiedUnchangedRange,!1,u,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}}}return{origViewZones:h,modViewZones:g}});const a={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},l={description:"Fold Unchanged",glyphMarginHoverMessage:new bf(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(U(124,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+fi.asClassName(zt.fold),zIndex:10001};this._register(C1e(this._editors.original,Rt(this,d=>{const u=s.read(d),h=u.map(g=>({range:g.originalUnchangedRange.toInclusiveRange(),options:a}));for(const g of u)g.shouldHideControls(d)&&h.push({range:Ee.fromPositions(new it(g.originalLineNumber,1)),options:l});return h}))),this._register(C1e(this._editors.modified,Rt(this,d=>{const u=s.read(d),h=u.map(g=>({range:g.modifiedUnchangedRange.toInclusiveRange(),options:a}));for(const g of u)g.shouldHideControls(d)&&h.push({range:Ei.ofLength(g.modifiedLineNumber,1).toInclusiveRange(),options:l});return h}))),this._register(Oi(d=>{const u=s.read(d);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(u.map(h=>h.getHiddenOriginalRange(d).toInclusiveRange()).filter(Ru)),this._editors.modified.setHiddenAreas(u.map(h=>h.getHiddenModifiedRange(d).toInclusiveRange()).filter(Ru))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(d=>{var u;if(!d.event.rightButton&&d.target.position&&((u=d.target.element)!=null&&u.className.includes("fold-unchanged"))){const h=d.target.position.lineNumber,g=this._diffModel.get();if(!g)return;const m=g.unchangedRegions.get().find(v=>v.modifiedUnchangedRange.contains(h));if(!m)return;m.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(d=>{var u;if(!d.event.rightButton&&d.target.position&&((u=d.target.element)!=null&&u.className.includes("fold-unchanged"))){const h=d.target.position.lineNumber,g=this._diffModel.get();if(!g)return;const m=g.unchangedRegions.get().find(v=>v.originalUnchangedRange.contains(h));if(!m)return;m.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}}))}},bje=X9,X9._breadcrumbsSourceFactory=Ti(X9,()=>({dispose(){},getBreadcrumbItems(t,n){return[]}})),X9);P1e=bje=zko([Hko(3,Yn)],P1e);class ROt extends Ctt{constructor(t,n,r,o=!1){const s=wo("div.diff-hidden-lines-widget");super(t,n,s.root),this._unchangedRegion=r,this._hide=o,this._nodes=wo("div.diff-hidden-lines-compact",[wo("div.line-left",[]),wo("div.text@text",[]),wo("div.line-right",[])]),s.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register(Oi(a=>{if(!this._hide){const l=this._unchangedRegion.getHiddenModifiedRange(a).length,d=U(125,"{0} hidden lines",l);this._nodes.text.innerText=d}}))}}class IOt extends Ctt{constructor(t,n,r,o,s,a,l,d){const u=wo("div.diff-hidden-lines-widget");super(t,n,u.root),this._editor=t,this._unchangedRegion=r,this._unchangedRegionRange=o,this._hide=s,this._modifiedOutlineSource=a,this._revealModifiedHiddenLine=l,this._options=d,this._nodes=wo("div.diff-hidden-lines",[wo("div.top@top",{title:U(126,"Click or drag to show more above")}),wo("div.center@content",{style:{display:"flex"}},[wo("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[tn("a",{title:U(127,"Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...P9("$(unfold)"))]),wo("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),wo("div.bottom@bottom",{title:U(128,"Click or drag to show more below"),role:"button"})]),u.root.appendChild(this._nodes.root),this._hide?mu(this._nodes.first):this._register(Q6(this._nodes.first,{width:hl(this._editor).layoutInfoContentLeft})),this._register(Oi(g=>{const m=this._unchangedRegion.visibleLineCountTop.read(g)+this._unchangedRegion.visibleLineCountBottom.read(g)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!m),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(g)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(g)>0),this._nodes.top.classList.toggle("canMoveBottom",!m);const v=this._unchangedRegion.isDragged.read(g),f=this._editor.getDomNode();f&&(f.classList.toggle("draggingUnchangedRegion",!!v),v==="top"?(f.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(g)>0),f.classList.toggle("canMoveBottom",!m)):v==="bottom"?(f.classList.toggle("canMoveTop",!m),f.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(g)>0)):(f.classList.toggle("canMoveTop",!1),f.classList.toggle("canMoveBottom",!1)))}));const h=this._editor;this._register(wt(this._nodes.top,"mousedown",g=>{if(g.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),g.preventDefault();const m=g.clientY;let v=!1;const f=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const k=ii(this._nodes.top),A=wt(k,"mousemove",b=>{const O=b.clientY-m;v=v||Math.abs(O)>2;const y=Math.round(O/h.getOption(75)),C=Math.max(0,Math.min(f+y,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(C,void 0)}),p=wt(k,"mouseup",b=>{v||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),A.dispose(),p.dispose()})})),this._register(wt(this._nodes.bottom,"mousedown",g=>{if(g.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),g.preventDefault();const m=g.clientY;let v=!1;const f=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const k=ii(this._nodes.bottom),A=wt(k,"mousemove",b=>{const O=b.clientY-m;v=v||Math.abs(O)>2;const y=Math.round(O/h.getOption(75)),C=Math.max(0,Math.min(f-y,this._unchangedRegion.getMaxVisibleLineCountBottom())),_=this._unchangedRegionRange.endLineNumberExclusive>h.getModel().getLineCount()?h.getContentHeight():h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(C,void 0);const S=this._unchangedRegionRange.endLineNumberExclusive>h.getModel().getLineCount()?h.getContentHeight():h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);h.setScrollTop(h.getScrollTop()+(S-_))}),p=wt(k,"mouseup",b=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!v){const w=h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const O=h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);h.setScrollTop(h.getScrollTop()+(O-w))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),A.dispose(),p.dispose()})})),this._register(Oi(g=>{const m=[];if(!this._hide){const v=r.getHiddenModifiedRange(g).length,f=U(129,"{0} hidden lines",v),k=tn("span",{title:U(130,"Double click to unfold")},f);k.addEventListener("dblclick",b=>{b.button===0&&(b.preventDefault(),this._unchangedRegion.showAll(void 0))}),m.push(k);const A=this._unchangedRegion.getHiddenModifiedRange(g),p=this._modifiedOutlineSource.getBreadcrumbItems(A,g);if(p.length>0){m.push(tn("span",void 0,"  |  "));for(let b=0;b{this._revealModifiedHiddenLine(w.startLineNumber)}}}}mu(this._nodes.others,...m)}))}}const rxe=[];class $ko extends ft{constructor(t,n,r,o){super(),this._editors=t,this._diffModel=n,this._options=r,this._widget=o,this._selectedDiffs=Rt(this,s=>{const a=this._diffModel.read(s),l=a==null?void 0:a.diff.read(s);if(!l)return rxe;const d=this._editors.modifiedSelections.read(s);if(d.every(m=>m.isEmpty()))return rxe;const u=new Iv(d.map(m=>Ei.fromRangeInclusive(m))),g=l.mappings.filter(m=>m.lineRangeMapping.innerChanges&&u.intersects(m.lineRangeMapping.modified)).map(m=>({mapping:m,rangeMappings:m.lineRangeMapping.innerChanges.filter(v=>d.some(f=>Ee.areIntersecting(v.modifiedRange,f)))}));return g.length===0||g.every(m=>m.rangeMappings.length===0)?rxe:g}),this._register(Ef((s,a)=>{if(!this._options.shouldRenderOldRevertArrows.read(s))return;const l=this._diffModel.read(s),d=l==null?void 0:l.diff.read(s);if(!l||!d||l.movedTextToCompare.read(s))return;const u=[],h=this._selectedDiffs.read(s),g=new Set(h.map(m=>m.mapping));if(h.length>0){const m=this._editors.modifiedSelections.read(s),v=a.add(new F1e(m[m.length-1].positionLineNumber,this._widget,h.flatMap(f=>f.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(v),u.push(v)}for(const m of d.mappings)if(!g.has(m)&&!m.lineRangeMapping.modified.isEmpty&&m.lineRangeMapping.innerChanges){const v=a.add(new F1e(m.lineRangeMapping.modified.startLineNumber,this._widget,m.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(v),u.push(v)}a.add(Hn(()=>{for(const m of u)this._editors.modified.removeGlyphMarginWidget(m)}))}))}}const zve=class zve extends ft{getId(){return this._id}constructor(t,n,r,o){super(),this._lineNumber=t,this._widget=n,this._diffs=r,this._revertSelection=o,this._id=`revertButton${zve.counter++}`,this._domNode=wo("div.revertButton",{title:this._revertSelection?U(135,"Revert Selected Changes"):U(136,"Revert Change")},[y3(zt.arrowRight)]).root,this._register(wt(this._domNode,rn.MOUSE_DOWN,s=>{s.button!==2&&(s.stopPropagation(),s.preventDefault())})),this._register(wt(this._domNode,rn.MOUSE_UP,s=>{s.stopPropagation(),s.preventDefault()})),this._register(wt(this._domNode,rn.CLICK,s=>{this._diffs instanceof Ag?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),s.stopPropagation(),s.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:p3.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}};zve.counter=0;let F1e=zve;var Xko=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},CX=function(e,t){return function(n,r){t(n,r,e)}};let Ey=class extends cje{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(t,n,r,o,s,a,l,d){super(),this._domElement=t,this._parentContextKeyService=o,this._parentInstantiationService=s,this._codeEditorService=a,this._accessibilitySignalService=l,this._editorProgressService=d,this.elements=wo("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[wo("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),wo("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),wo("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register(YJe(this,void 0)),this._diffModel=Rt(this,O=>{var y;return(y=this._diffModelSrc.read(O))==null?void 0:y.object}),this.onDidChangeModel=an.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new rH([Qi,this._contextKeyService]))),this._boundarySashes=Ti(this,void 0),this._accessibleDiffViewerShouldBeVisible=Ti(this,!1),this._accessibleDiffViewerVisible=Rt(this,O=>this._options.onlyShowAccessibleDiffViewer.read(O)?!0:this._accessibleDiffViewerShouldBeVisible.read(O)),this._movedBlocksLinesPart=Ti(this,void 0),this._layoutInfo=Rt(this,O=>{var R,I;const y=this._rootSizeObserver.width.read(O),C=this._rootSizeObserver.height.read(O);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=C+"px";const _=this._sash.read(O),S=this._gutter.read(O),L=(S==null?void 0:S.width.read(O))??0,E=((R=this._overviewRulerPart.read(O))==null?void 0:R.width)??0;let T,D,P,Q,M;if(!!_){const F=_.sashLeft.read(O),j=((I=this._movedBlocksLinesPart.read(O))==null?void 0:I.width.read(O))??0;T=0,D=F-L-j,M=F-L,P=F,Q=y-P-E}else{M=0;const F=this._options.inlineViewHideOriginalLineNumbers.read(O);T=L,F?D=0:D=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(O)),P=L+D,Q=y-P-E}return this.elements.original.style.left=T+"px",this.elements.original.style.width=D+"px",this._editors.original.layout({width:D,height:C},!0),S==null||S.layout(M),this.elements.modified.style.left=P+"px",this.elements.modified.style.width=Q+"px",this._editors.modified.layout({width:Q,height:C},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((O,y)=>O==null?void 0:O.diff.read(y)),this.onDidUpdateDiff=an.fromObservableLight(this._diffValue),this._codeEditorService.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(Hn(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new nDn(this.elements.root,n.dimension)),this._rootSizeObserver.setAutomaticLayout(n.automaticLayout??!1),this._options=this._instantiationService.createInstance(dje,n),this._register(Oi(O=>{this._options.setWidth(this._rootSizeObserver.width.read(O))})),this._contextKeyService.createKey($e.isEmbeddedDiffEditor.key,!1),this._register(Dw($e.isEmbeddedDiffEditor,this._contextKeyService,O=>this._options.isInEmbeddedEditor.read(O))),this._register(Dw($e.comparingMovedCode,this._contextKeyService,O=>{var y;return!!((y=this._diffModel.read(O))!=null&&y.movedTextToCompare.read(O))})),this._register(Dw($e.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,O=>this._options.couldShowInlineViewBecauseOfSize.read(O))),this._register(Dw($e.diffEditorInlineMode,this._contextKeyService,O=>!this._options.renderSideBySide.read(O))),this._register(Dw($e.hasChanges,this._contextKeyService,O=>{var y,C;return(((C=(y=this._diffModel.read(O))==null?void 0:y.diff.read(O))==null?void 0:C.mappings.length)??0)>0})),this._editors=this._register(this._instantiationService.createInstance(lje,this.elements.original,this.elements.modified,this._options,r,(O,y,C,_)=>this._createInnerEditor(O,y,C,_))),this._register(Dw($e.diffEditorOriginalWritable,this._contextKeyService,O=>this._options.originalEditable.read(O))),this._register(Dw($e.diffEditorModifiedWritable,this._contextKeyService,O=>!this._options.readOnly.read(O))),this._register(Dw($e.diffEditorOriginalUri,this._contextKeyService,O=>{var y;return((y=this._diffModel.read(O))==null?void 0:y.model.original.uri.toString())??""})),this._register(Dw($e.diffEditorModifiedUri,this._contextKeyService,O=>{var y;return((y=this._diffModel.read(O))==null?void 0:y.model.modified.uri.toString())??""})),this._overviewRulerPart=vv(this,O=>this._options.renderOverviewRuler.read(O)?this._instantiationService.createInstance(A_(DJ),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(y=>y.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const u={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((O,y)=>{var C;return O-(((C=this._overviewRulerPart.read(y))==null?void 0:C.width)??0)})};this._sashLayout=new lko(this._options,u),this._sash=vv(this,O=>{const y=this._options.renderSideBySide.read(O);return this.elements.root.classList.toggle("side-by-side",y),y?new hDn(this.elements.root,u,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const h=vv(this,O=>this._instantiationService.createInstance(A_(P1e),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);vv(this,O=>this._instantiationService.createInstance(A_(J0o),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const g=new Set,m=new Set;let v=!1;const f=vv(this,O=>this._instantiationService.createInstance(A_(sje),ii(this._domElement),this._editors,this._diffModel,this._options,this,()=>v||h.read(void 0).isUpdatingHiddenAreas,g,m)).recomputeInitiallyAndOnChange(this._store),k=Rt(this,O=>{const y=f.read(O).viewZones.read(O).orig,C=h.read(O).viewZones.read(O).origViewZones;return y.concat(C)}),A=Rt(this,O=>{const y=f.read(O).viewZones.read(O).mod,C=h.read(O).viewZones.read(O).modViewZones;return y.concat(C)});this._register(_1e(this._editors.original,k,O=>{v=O},g));let p;this._register(_1e(this._editors.modified,A,O=>{v=O,v?p=O3.capture(this._editors.modified):(p==null||p.restore(this._editors.modified),p=void 0)},m)),this._accessibleDiffViewer=vv(this,O=>this._instantiationService.createInstance(A_(kQ),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(y,C)=>this._accessibleDiffViewerShouldBeVisible.set(y,C),this._options.onlyShowAccessibleDiffViewer.map(y=>!y),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((y,C)=>{var _;return(_=y==null?void 0:y.diff.read(C))==null?void 0:_.mappings.map(S=>S.lineRangeMapping)}),new P0o(this._editors))).recomputeInitiallyAndOnChange(this._store);const b=this._accessibleDiffViewerVisible.map(O=>O?"hidden":"visible");this._register(Q6(this.elements.modified,{visibility:b})),this._register(Q6(this.elements.original,{visibility:b})),this._createDiffEditorContributions(),this._codeEditorService.addDiffEditor(this),this._register(Hn(()=>{this._codeEditorService.removeDiffEditor(this)})),this._gutter=vv(this,O=>this._options.shouldRenderGutterMenu.read(O)?this._instantiationService.createInstance(A_(Aje),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(KW(this._layoutInfo)),vv(this,O=>new(A_(jU))(this.elements.root,this._diffModel,this._layoutInfo.map(y=>y.originalEditor),this._layoutInfo.map(y=>y.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,O=>{this._movedBlocksLinesPart.set(O,void 0)}),this._register(an.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,O=>this._handleCursorPositionChange(O,!0))),this._register(an.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,O=>this._handleCursorPositionChange(O,!1)));const w=this._diffModel.map(this,(O,y)=>{if(O)return O.diff.read(y)===void 0&&!O.isDiffUpToDate.read(y)});this._register(Ef((O,y)=>{if(w.read(O)===!0){const C=this._editorProgressService.show(!0,1e3);y.add(Hn(()=>C.done()))}})),this._register(Ef((O,y)=>{y.add(new(A_($ko))(this._editors,this._diffModel,this._options,this))})),this._register(Ef((O,y)=>{const C=this._diffModel.read(O);if(C)for(const _ of[C.model.original,C.model.modified])y.add(_.onWillDispose(S=>{zi(new ui("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register(Oi(O=>{this._options.setModel(this._diffModel.read(O))}))}_createInnerEditor(t,n,r,o){return t.createInstance(gR,n,r,o)}_createDiffEditorContributions(){const t=xU.getDiffEditorContributions();for(const n of t)try{this._register(this._instantiationService.createInstance(n.ctor,this))}catch(r){zi(r)}}get _targetEditor(){return this._editors.modified}getEditorType(){return Nie.IDiffEditor}layout(t){this._rootSizeObserver.observe(t)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var r;const t=this._editors.original.saveViewState(),n=this._editors.modified.saveViewState();return{original:t,modified:n,modelState:(r=this._diffModel.get())==null?void 0:r.serializeState()}}restoreViewState(t){var n;if(t&&t.original&&t.modified){const r=t;this._editors.original.restoreViewState(r.original),this._editors.modified.restoreViewState(r.modified),r.modelState&&((n=this._diffModel.get())==null||n.restoreSerializedState(r.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(t){return this._instantiationService.createInstance(oje,t,this._options)}getModel(){var t;return((t=this._diffModel.get())==null?void 0:t.model)??null}setModel(t){const n=t?"model"in t?S1e.create(t).createNewRef(this):S1e.create(this.createViewModel(t),this):null;this.setDiffModel(n)}setDiffModel(t,n){const r=this._diffModel.get();!t&&r&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==(t==null?void 0:t.object)&&qW(n,o=>{var l;const s=t==null?void 0:t.object;Ko.batchEventsGlobally(o,()=>{this._editors.original.setModel(s?s.model.original:null),this._editors.modified.setModel(s?s.model.modified:null)});const a=(l=this._diffModelSrc.get())==null?void 0:l.createNewRef(this);this._diffModelSrc.set(t==null?void 0:t.createNewRef(this),o),setTimeout(()=>{a==null||a.dispose()},0)})}updateOptions(t){this._options.updateOptions(t)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var n;const t=(n=this._diffModel.get())==null?void 0:n.diff.get();return t?Gko(t):null}getDiffComputationResult(){var n;const t=(n=this._diffModel.get())==null?void 0:n.diff.get();return t?{changes:this.getLineChanges(),changes2:t.mappings.map(r=>r.lineRangeMapping),identical:t.identical,quitEarly:t.quitEarly}:null}revert(t){const n=this._diffModel.get();!n||!n.isDiffUpToDate.get()||(this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",[{range:t.modified.toExclusiveRange(),text:n.model.original.getValueInRange(t.original.toExclusiveRange())}]),this._editors.modified.pushUndoStop())}revertRangeMappings(t){const n=this._diffModel.get();if(!n||!n.isDiffUpToDate.get())return;const r=t.map(o=>({range:o.modifiedRange,text:n.model.original.getValueInRange(o.originalRange)}));this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",r),this._editors.modified.pushUndoStop()}revertFocusedRangeMappings(){var d,u;const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const n=(u=(d=this._diffModel.get())==null?void 0:d.diff.get())==null?void 0:u.mappings;if(!n||n.length===0)return;const r=this._editors.modified;if(!r.hasTextFocus())return;const o=r.getPosition().lineNumber,s=r.getSelection(),a=Ei.fromRange(s||new Ee(o,0,o,0)),l=n.filter(h=>h.lineRangeMapping.modified.intersect(a));r.pushUndoStop(),r.executeEdits("diffEditor",l.map(h=>({range:h.lineRangeMapping.modified.toExclusiveRange(),text:t.model.original.getValueInRange(h.lineRangeMapping.original.toExclusiveRange())}))),r.pushUndoStop()}_goTo(t){this._editors.modified.setPosition(new it(t.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(t.lineRangeMapping.modified.toExclusiveRange())}goToDiff(t){var s,a;const n=(a=(s=this._diffModel.get())==null?void 0:s.diff.get())==null?void 0:a.mappings;if(!n||n.length===0)return;const r=this._editors.modified.getPosition().lineNumber;let o;t==="next"?this._editors.modified.getModel().getLineCount()===r?o=n[0]:o=n.find(d=>d.lineRangeMapping.modified.startLineNumber>r)??n[0]:o=cJ(n,l=>l.lineRangeMapping.modified.startLineNumber{var r;const n=(r=t.diff.get())==null?void 0:r.mappings;!n||n.length===0||this._goTo(n[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const t=this._diffModel.get();t&&await t.waitForDiff()}mapToOtherSide(){var a,l;const t=this._editors.modified.hasWidgetFocus(),n=t?this._editors.modified:this._editors.original,r=t?this._editors.original:this._editors.modified;let o;const s=n.getSelection();if(s){const d=(l=(a=this._diffModel.get())==null?void 0:a.diff.get())==null?void 0:l.mappings.map(u=>t?u.lineRangeMapping.flip():u.lineRangeMapping);if(d){const u=uOt(s.getStartPosition(),d),h=uOt(s.getEndPosition(),d);o=Ee.plusRange(u,h)}}return{destination:r,destinationSelection:o}}switchSide(){const{destination:t,destinationSelection:n}=this.mapToOtherSide();t.focus(),n&&t.setSelection(n)}exitCompareMove(){const t=this._diffModel.get();t&&t.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var n;const t=(n=this._diffModel.get())==null?void 0:n.unchangedRegions.get();t&&la(r=>{for(const o of t)o.collapseAll(r)})}showAllUnchangedRegions(){var n;const t=(n=this._diffModel.get())==null?void 0:n.unchangedRegions.get();t&&la(r=>{for(const o of t)o.showAll(r)})}_handleCursorPositionChange(t,n){var r,o;if((t==null?void 0:t.reason)===3){const s=(o=(r=this._diffModel.get())==null?void 0:r.diff.get())==null?void 0:o.mappings.find(a=>n?a.lineRangeMapping.modified.contains(t.position.lineNumber):a.lineRangeMapping.original.contains(t.position.lineNumber));s!=null&&s.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(nm.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):s!=null&&s.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(nm.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):s&&this._accessibilitySignalService.playSignal(nm.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};Ey=Xko([CX(3,Qi),CX(4,Yn),CX(5,yo),CX(6,pL),CX(7,V8)],Ey);function Gko(e){return e.mappings.map(t=>{const n=t.lineRangeMapping;let r,o,s,a,l=n.innerChanges;return n.original.isEmpty?(r=n.original.startLineNumber-1,o=0,l=void 0):(r=n.original.startLineNumber,o=n.original.endLineNumberExclusive-1),n.modified.isEmpty?(s=n.modified.startLineNumber-1,a=0,l=void 0):(s=n.modified.startLineNumber,a=n.modified.endLineNumberExclusive-1),{originalStartLineNumber:r,originalEndLineNumber:o,modifiedStartLineNumber:s,modifiedEndLineNumber:a,charChanges:l==null?void 0:l.map(d=>({originalStartLineNumber:d.originalRange.startLineNumber,originalStartColumn:d.originalRange.startColumn,originalEndLineNumber:d.originalRange.endLineNumber,originalEndColumn:d.originalRange.endColumn,modifiedStartLineNumber:d.modifiedRange.startLineNumber,modifiedStartColumn:d.modifiedRange.startColumn,modifiedEndLineNumber:d.modifiedRange.endLineNumber,modifiedEndColumn:d.modifiedRange.endColumn}))}})}class Yko extends zu{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:_t(85,"Toggle Collapse Unchanged Regions"),icon:zt.map,toggled:Ft.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ft.has("isInDiffEditor"),menu:{when:Ft.has("isInDiffEditor"),id:Wn.EditorTitle,order:22,group:"navigation"}})}run(t,...n){const r=t.get(ar),o=!r.getValue("diffEditor.hideUnchangedRegions.enabled");r.updateValue("diffEditor.hideUnchangedRegions.enabled",o)}}class CDn extends zu{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:_t(86,"Toggle Show Moved Code Blocks"),precondition:Ft.has("isInDiffEditor")})}run(t,...n){const r=t.get(ar),o=!r.getValue("diffEditor.experimental.showMoves");r.updateValue("diffEditor.experimental.showMoves",o)}}class _Dn extends zu{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:_t(87,"Toggle Use Inline View When Space Is Limited"),precondition:Ft.has("isInDiffEditor")})}run(t,...n){const r=t.get(ar),o=!r.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");r.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",o)}}const Gie=_t(88,"Diff Editor");class Zko extends Op{constructor(){super({id:"diffEditor.switchSide",title:_t(89,"Switch Side"),icon:zt.arrowSwap,precondition:Ft.has("isInDiffEditor"),f1:!0,category:Gie})}runEditorCommand(t,n,r){const o=QI(t);if(o instanceof Ey){if(r&&r.dryRun)return{destinationSelection:o.mapToOtherSide().destinationSelection};o.switchSide()}}}class qko extends Op{constructor(){super({id:"diffEditor.exitCompareMove",title:_t(90,"Exit Compare Move"),icon:zt.close,precondition:$e.comparingMovedCode,f1:!1,category:Gie,keybinding:{weight:1e4,primary:9}})}runEditorCommand(t,n,...r){const o=QI(t);o instanceof Ey&&o.exitCompareMove()}}class Kko extends Op{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:_t(91,"Collapse All Unchanged Regions"),icon:zt.fold,precondition:Ft.has("isInDiffEditor"),f1:!0,category:Gie})}runEditorCommand(t,n,...r){const o=QI(t);o instanceof Ey&&o.collapseAllUnchangedRegions()}}class Jko extends Op{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:_t(92,"Show All Unchanged Regions"),icon:zt.unfold,precondition:Ft.has("isInDiffEditor"),f1:!0,category:Gie})}runEditorCommand(t,n,...r){const o=QI(t);o instanceof Ey&&o.showAllUnchangedRegions()}}class wje extends zu{constructor(){super({id:"diffEditor.revert",title:_t(93,"Revert"),f1:!0,category:Gie,precondition:Ft.has("isInDiffEditor")})}run(t,n){return n?this.runViaToolbarContext(t,n):this.runViaCursorOrSelection(t)}runViaCursorOrSelection(t){const n=QI(t);n instanceof Ey&&n.revertFocusedRangeMappings()}runViaToolbarContext(t,n){const r=e2o(t,n.originalUri,n.modifiedUri);r instanceof Ey&&r.revertRangeMappings(n.mapping.innerChanges??[])}}const SDn=_t(94,"Accessible Diff Viewer"),Hve=class Hve extends zu{constructor(){super({id:Hve.id,title:_t(95,"Go to Next Difference"),category:SDn,precondition:Ft.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(t){const n=QI(t);n==null||n.accessibleDiffViewerNext()}};Hve.id="editor.action.accessibleDiffViewer.next";let IJ=Hve;const $ve=class $ve extends zu{constructor(){super({id:$ve.id,title:_t(96,"Go to Previous Difference"),category:SDn,precondition:Ft.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(t){const n=QI(t);n==null||n.accessibleDiffViewerPrev()}};$ve.id="editor.action.accessibleDiffViewer.prev";let N1e=$ve;function e2o(e,t,n){return e.get(yo).listDiffEditors().find(s=>{var d,u;const a=s.getModifiedEditor(),l=s.getOriginalEditor();return a&&((d=a.getModel())==null?void 0:d.uri.toString())===n.toString()&&l&&((u=l.getModel())==null?void 0:u.uri.toString())===t.toString()})||null}function QI(e){const n=e.get(yo).listDiffEditors(),r=Nd();if(r){for(const o of n)if(o.getContainerDomNode().contains(r))return o}return null}ys(Yko);ys(CDn);ys(_Dn);Iu.appendMenuItem(Wn.EditorTitle,{command:{id:new _Dn().desc.id,title:U(119,"Use Inline View When Space Is Limited"),toggled:Ft.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Ft.has("isInDiffEditor")},order:11,group:"1_diff",when:Ft.and($e.diffEditorRenderSideBySideInlineBreakpointReached,Ft.has("isInDiffEditor"))});Iu.appendMenuItem(Wn.EditorTitle,{command:{id:new CDn().desc.id,title:U(120,"Show Moved Code Blocks"),icon:zt.move,toggled:$z.create("config.diffEditor.experimental.showMoves",!0),precondition:Ft.has("isInDiffEditor")},order:10,group:"1_diff",when:Ft.has("isInDiffEditor")});ys(wje);for(const e of[{icon:zt.arrowRight,key:$e.diffEditorInlineMode.toNegated()},{icon:zt.discard,key:$e.diffEditorInlineMode}])Iu.appendMenuItem(Wn.DiffEditorHunkToolbar,{command:{id:new wje().desc.id,title:U(121,"Revert Block"),icon:e.icon},when:Ft.and($e.diffEditorModifiedWritable,e.key),order:5,group:"primary"}),Iu.appendMenuItem(Wn.DiffEditorSelectionToolbar,{command:{id:new wje().desc.id,title:U(122,"Revert Selection"),icon:e.icon},when:Ft.and($e.diffEditorModifiedWritable,e.key),order:5,group:"primary"});ys(Zko);ys(qko);ys(Kko);ys(Jko);Iu.appendMenuItem(Wn.EditorTitle,{command:{id:IJ.id,title:U(123,"Open Accessible Diff Viewer"),precondition:Ft.has("isInDiffEditor")},order:10,group:"2_diff",when:Ft.and($e.accessibleDiffViewerVisible.negate(),Ft.has("isInDiffEditor"))});co.registerCommandAlias("editor.action.diffReview.next",IJ.id);ys(IJ);co.registerCommandAlias("editor.action.diffReview.prev",N1e.id);ys(N1e);var t2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},n2o=function(e,t){return function(n,r){t(n,r,e)}},Oje;const m3e=new yn("selectionAnchorSet",!1);var MD;let B6=(MD=class{static get(t){return t.getContribution(Oje.ID)}constructor(t,n){this.editor=t,this.selectionAnchorSetContextKey=m3e.bindTo(n),this.modelChangeListener=t.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const t=this.editor.getPosition();this.editor.changeDecorations(n=>{this.decorationId&&n.removeDecoration(this.decorationId),this.decorationId=n.addDecoration(Qn.fromPositions(t,t),{description:"selection-anchor",stickiness:1,hoverMessage:new bf().appendText(U(798,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),um(U(799,"Anchor set at {0}:{1}",t.lineNumber,t.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);t&&this.editor.setPosition(t.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);if(t){const n=this.editor.getPosition();this.editor.setSelection(Qn.fromPositions(t.getStartPosition(),n)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const t=this.decorationId;this.editor.changeDecorations(n=>{n.removeDecoration(t),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},Oje=MD,MD.ID="editor.contrib.selectionAnchorController",MD);B6=Oje=t2o([n2o(1,Qi)],B6);class i2o extends Bn{constructor(){super({id:"editor.action.setSelectionAnchor",label:_t(800,"Set Selection Anchor"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2080),weight:100}})}async run(t,n){var r;(r=B6.get(n))==null||r.setSelectionAnchor()}}class r2o extends Bn{constructor(){super({id:"editor.action.goToSelectionAnchor",label:_t(801,"Go to Selection Anchor"),precondition:m3e})}async run(t,n){var r;(r=B6.get(n))==null||r.goToSelectionAnchor()}}class o2o extends Bn{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:_t(802,"Select from Anchor to Cursor"),precondition:m3e,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2089),weight:100}})}async run(t,n){var r;(r=B6.get(n))==null||r.selectFromAnchorToCursor()}}class s2o extends Bn{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:_t(803,"Cancel Selection Anchor"),precondition:m3e,kbOpts:{kbExpr:$e.editorTextFocus,primary:9,weight:100}})}async run(t,n){var r;(r=B6.get(n))==null||r.cancelSelectionAnchor()}}mo(B6.ID,B6,4);un(i2o);un(r2o);un(o2o);un(s2o);const a2o=Ve("editorOverviewRuler.bracketMatchForeground","#A0A0A0",U(804,"Overview ruler marker color for matching brackets."));class l2o extends Bn{constructor(){super({id:"editor.action.jumpToBracket",label:_t(806,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:3165,weight:100}})}run(t,n){var r;(r=pR.get(n))==null||r.jumpToBracket()}}class c2o extends Bn{constructor(){super({id:"editor.action.selectToBracket",label:_t(807,"Select to Bracket"),precondition:void 0,metadata:{description:_t(808,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(t,n,r){var s;let o=!0;r&&r.selectBrackets===!1&&(o=!1),(s=pR.get(n))==null||s.selectToBracket(o)}}class d2o extends Bn{constructor(){super({id:"editor.action.removeBrackets",label:_t(809,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(t,n){var r;(r=pR.get(n))==null||r.removeBrackets(this.id)}}class u2o{constructor(t,n,r){this.position=t,this.brackets=n,this.options=r}}const p5=class p5 extends ft{static get(t){return t.getContribution(p5.ID)}constructor(t){super(),this._editor=t,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Es(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(t.onDidChangeCursorPosition(n=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModelContent(n=>{this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModel(n=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModelLanguageConfiguration(n=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeConfiguration(n=>{n.hasChanged(80)&&(this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(t.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(t.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const t=this._editor.getModel(),n=this._editor.getSelections().map(r=>{const o=r.getStartPosition(),s=t.bracketPairs.matchBracket(o);let a=null;if(s)s[0].containsPosition(o)&&!s[1].containsPosition(o)?a=s[1].getStartPosition():s[1].containsPosition(o)&&(a=s[0].getStartPosition());else{const l=t.bracketPairs.findEnclosingBrackets(o);if(l)a=l[1].getStartPosition();else{const d=t.bracketPairs.findNextBracket(o);d&&d.range&&(a=d.range.getStartPosition())}}return a?new Qn(a.lineNumber,a.column,a.lineNumber,a.column):new Qn(o.lineNumber,o.column,o.lineNumber,o.column)});this._editor.setSelections(n),this._editor.revealRange(n[0])}selectToBracket(t){if(!this._editor.hasModel())return;const n=this._editor.getModel(),r=[];this._editor.getSelections().forEach(o=>{const s=o.getStartPosition();let a=n.bracketPairs.matchBracket(s);if(!a&&(a=n.bracketPairs.findEnclosingBrackets(s),!a)){const u=n.bracketPairs.findNextBracket(s);u&&u.range&&(a=n.bracketPairs.matchBracket(u.range.getStartPosition()))}let l=null,d=null;if(a){a.sort(Ee.compareRangesUsingStarts);const[u,h]=a;if(l=t?u.getStartPosition():u.getEndPosition(),d=t?h.getEndPosition():h.getStartPosition(),h.containsPosition(s)){const g=l;l=d,d=g}}l&&d&&r.push(new Qn(l.lineNumber,l.column,d.lineNumber,d.column))}),r.length>0&&(this._editor.setSelections(r),this._editor.revealRange(r[0]))}removeBrackets(t){if(!this._editor.hasModel())return;const n=this._editor.getModel();this._editor.getSelections().forEach(r=>{const o=r.getPosition();let s=n.bracketPairs.matchBracket(o);s||(s=n.bracketPairs.findEnclosingBrackets(o)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(t,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const t=[];let n=0;for(const r of this._lastBracketsData){const o=r.brackets;o&&(t[n++]={range:o[0],options:r.options},t[n++]={range:o[1],options:r.options})}this._decorations.set(t)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getSelections();if(t.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const n=this._editor.getModel(),r=n.getVersionId();let o=[];this._lastVersionId===r&&(o=this._lastBracketsData);const s=[];let a=0;for(let g=0,m=t.length;g1&&s.sort(it.compare);const l=[];let d=0,u=0;const h=o.length;for(let g=0,m=s.length;g0&&(n.pushUndoStop(),n.executeCommands(this.id,o),n.pushUndoStop())}}un(m2o);const k2o=Cr("productService");function Mtt(e,t){return{id:t,asString:async()=>e,asFile:()=>{},value:typeof e=="string"?e:void 0}}function v2o(e,t,n,r){const o={id:SI(),name:e,uri:t,data:n};return{id:r,asString:async()=>"",asFile:()=>o,value:void 0}}class xDn{constructor(){this._entries=new Map}get size(){let t=0;for(const n of this._entries)t++;return t}has(t){return this._entries.has(this.toKey(t))}matches(t){const n=[...this._entries.keys()];return to.some(this,([r,o])=>o.asFile())&&n.push("files"),EDn(U1e(t),n)}get(t){var n;return(n=this._entries.get(this.toKey(t)))==null?void 0:n[0]}append(t,n){const r=this._entries.get(t);r?r.push(n):this._entries.set(this.toKey(t),[n])}replace(t,n){this._entries.set(this.toKey(t),[n])}delete(t){this._entries.delete(this.toKey(t))}*[Symbol.iterator](){for(const[t,n]of this._entries)for(const r of n)yield[t,r]}toKey(t){return U1e(t)}}function U1e(e){return e.toLowerCase()}function MOt(e,t){return EDn(U1e(e),t.map(U1e))}function EDn(e,t){if(e==="*/*")return t.length>0;if(t.includes(e))return!0;const n=e.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!n)return!1;const[r,o,s]=n;return s==="*"?t.some(a=>a.startsWith(o+"/")):!1}const k3e=Object.freeze({create:e=>M8(e.map(t=>t.toString())).join(`\r +[{1}] {2}`,o,Dtt.modifierLabels[b0].altKey,u)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(t){this._itemClassDispose.value=void 0;const{element:n,label:r}=this;if(!n||!r)return;const o=this._commandAction.checked&&yko(t.toggled)&&t.toggled.icon?t.toggled.icon:t.icon;if(o)if(fi.isThemeIcon(o)){const s=fi.asClassNameArray(o);r.classList.add(...s),this._itemClassDispose.value=Hn(()=>{r.classList.remove(...s)})}else r.style.backgroundImage=j8(this._themeService.getColorTheme().type)?xy(o.dark):xy(o.light),r.classList.add("icon"),this._itemClassDispose.value=G4(Hn(()=>{r.style.backgroundImage="",r.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};D6=f3e([om(2,Do),om(3,ic),om(4,Qi),om(5,Dl),om(6,S2),om(7,vh)],D6);class Rtt extends D6{render(t){var n;this.options.label=!0,this.options.icon=!1,super.render(t),t.classList.add("text-only"),t.classList.toggle("use-comma",((n=this._options)==null?void 0:n.useComma)??!1)}updateLabel(){var n;const t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!t)return super.updateLabel();if(this.label){const r=Rtt._symbolPrintEnter(t);(n=this._options)!=null&&n.conversational?this.label.textContent=U(1647,"{1} to {0}",this._action.label,r):this.label.textContent=U(1648,"{0} ({1})",this._action.label,r)}}static _symbolPrintEnter(t){var n;return(n=t.getLabel())==null?void 0:n.replace(/\benter\b/gi,"⏎").replace(/\bEscape\b/gi,"Esc")}}let hje=class extends D1e{constructor(t,n,r,o,s){const a={...n,menuAsChild:(n==null?void 0:n.menuAsChild)??!1,classNames:(n==null?void 0:n.classNames)??(fi.isThemeIcon(t.item.icon)?fi.asClassName(t.item.icon):void 0),keybindingProvider:(n==null?void 0:n.keybindingProvider)??(l=>r.lookupKeybinding(l.id))};super(t,{getActions:()=>t.actions},o,a),this._keybindingService=r,this._contextMenuService=o,this._themeService=s}render(t){super.render(t),Oo(this.element),t.classList.add("menu-entry");const n=this._action,{icon:r}=n.item;if(r&&!fi.isThemeIcon(r)){this.element.classList.add("icon");const o=()=>{this.element&&(this.element.style.backgroundImage=j8(this._themeService.getColorTheme().type)?xy(r.dark):xy(r.light))};o(),this._register(this._themeService.onDidColorThemeChange(()=>{o()}))}}};hje=f3e([om(2,Do),om(3,S2),om(4,Dl)],hje);let fje=class extends Fb{constructor(t,n,r,o,s,a,l,d){super(null,t),this._keybindingService=r,this._notificationService=o,this._contextMenuService=s,this._menuService=a,this._instaService=l,this._storageService=d,this._defaultActionDisposables=this._register(new xt),this._container=null,this._options=n,this._storageKey=`${t.item.submenu.id}_lastActionId`;let u;const h=n!=null&&n.togglePrimaryAction?d.get(this._storageKey,1):void 0;h&&(u=t.actions.find(m=>h===m.id)),u||(u=t.actions[0]),this._defaultAction=this._defaultActionDisposables.add(this._instaService.createInstance(D6,u,{keybinding:this._getDefaultActionKeybindingLabel(u)}));const g={keybindingProvider:m=>this._keybindingService.lookupKeybinding(m.id),...n,menuAsChild:(n==null?void 0:n.menuAsChild)??!0,classNames:(n==null?void 0:n.classNames)??["codicon","codicon-chevron-down"],actionRunner:(n==null?void 0:n.actionRunner)??this._register(new sR)};this._dropdown=this._register(new D1e(t,t.actions,this._contextMenuService,g)),n!=null&&n.togglePrimaryAction&&this._register(this._dropdown.actionRunner.onDidRun(m=>{m.action instanceof i2&&this.update(m.action)}))}update(t){var n;(n=this._options)!=null&&n.togglePrimaryAction&&this._storageService.store(this._storageKey,t.id,1,1),this._defaultActionDisposables.clear(),this._defaultAction=this._defaultActionDisposables.add(this._instaService.createInstance(D6,t,{keybinding:this._getDefaultActionKeybindingLabel(t)})),this._defaultAction.actionRunner=this._defaultActionDisposables.add(new class extends sR{async runAction(r,o){await r.run(void 0)}}),this._container&&this._defaultAction.render(Obe(this._container,tn(".action-container")))}_getDefaultActionKeybindingLabel(t){var r;let n;if((r=this._options)!=null&&r.renderKeybindingWithDefaultActionLabel){const o=this._keybindingService.lookupKeybinding(t.id);o&&(n=`(${o.getLabel()})`)}return n}setActionContext(t){super.setActionContext(t),this._defaultAction.setActionContext(t),this._dropdown.setActionContext(t)}set actionRunner(t){super.actionRunner=t,this._defaultAction.actionRunner=t,this._dropdown.actionRunner=t}get actionRunner(){return super.actionRunner}render(t){this._container=t,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const n=tn(".action-container");this._defaultAction.render(Xt(this._container,n)),this._register(wt(n,rn.KEY_DOWN,o=>{const s=new Us(o);s.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),s.stopPropagation())}));const r=tn(".dropdown-action-container");this._dropdown.render(Xt(this._container,r)),this._register(wt(r,rn.KEY_DOWN,o=>{var a;const s=new Us(o);s.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(a=this._defaultAction.element)==null||a.focus(),s.stopPropagation())}))}focus(t){t?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(t){t?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}};fje=f3e([om(2,Do),om(3,ic),om(4,S2),om(5,wA),om(6,Yn),om(7,Bg)],fje);let gje=class extends g0o{constructor(t,n,r){super(null,t,t.actions.map(o=>({text:o.id===pd.ID?"─────────":o.label,isDisabled:!o.enabled})),0,n,Tko,{ariaLabel:t.tooltip,optionsAsChildren:!0,useCustomDrawn:!Dko(r)}),this.select(Math.max(0,t.actions.findIndex(o=>o.checked)))}render(t){super.render(t),t.style.borderColor=en(xet)}runAction(t,n){const r=this.action.actions[n];r&&this.actionRunner.run(r)}};gje=f3e([om(1,wL),om(2,ar)],gje);function Itt(e,t,n){return t instanceof i2?e.createInstance(D6,t,n):t instanceof uD?t.item.isSelection?e.createInstance(gje,t):t.item.isSplitButton?e.createInstance(fje,t,{...n,togglePrimaryAction:typeof t.item.isSplitButton!="boolean"?t.item.isSplitButton.togglePrimaryAction:!1}):e.createInstance(hje,t,n):void 0}var g3e=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},dy=function(e,t){return function(n,r){t(n,r,e)}},EF,UG;let mje=class{constructor(t,n,r){this._commandService=t,this._keybindingService=n,this._hiddenStates=new kje(r)}createMenu(t,n,r){return new I1e(t,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,this._keybindingService,n)}getMenuActions(t,n,r){const o=new I1e(t,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,this._keybindingService,n),s=o.getActions(r);return o.dispose(),s}resetHiddenStates(t){this._hiddenStates.reset(t)}};mje=g3e([dy(0,ba),dy(1,Do),dy(2,Bg)],mje);var ID;let kje=(ID=class{constructor(t){this._storageService=t,this._disposables=new xt,this._onDidChange=new at,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const n=t.get(EF._key,0,"{}");this._data=JSON.parse(n)}catch{this._data=Object.create(null)}this._disposables.add(t.onDidChangeValue(0,EF._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const n=t.get(EF._key,0,"{}");this._data=JSON.parse(n)}catch(n){console.log("FAILED to read storage after UPDATE",n)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(t,n){return this._hiddenByDefaultCache.get(`${t.id}/${n}`)??!1}setDefaultState(t,n,r){this._hiddenByDefaultCache.set(`${t.id}/${n}`,r)}isHidden(t,n){var s;const r=this._isHiddenByDefault(t,n),o=((s=this._data[t.id])==null?void 0:s.includes(n))??!1;return r?!o:o}updateHidden(t,n,r){this._isHiddenByDefault(t,n)&&(r=!r);const s=this._data[t.id];if(r)s?s.indexOf(n)<0&&s.push(n):this._data[t.id]=[n];else if(s){const a=s.indexOf(n);a>=0&&oto(s,a),s.length===0&&delete this._data[t.id]}this._persist()}reset(t){if(t===void 0)this._data=Object.create(null),this._persist();else{for(const{id:n}of t)this._data[n]&&delete this._data[n];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const t=JSON.stringify(this._data);this._storageService.store(EF._key,t,0,0)}finally{this._ignoreChangeEvent=!1}}},EF=ID,ID._key="menu.hiddenCommands",ID);kje=EF=g3e([dy(0,Bg)],kje);class EZ{constructor(t,n){this._id=t,this._collectContextKeysForSubmenus=n,this._menuGroups=[],this._allMenuIds=new Set,this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get allMenuIds(){return this._allMenuIds}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._allMenuIds.clear(),this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const t=this._sort(Iu.getMenuItems(this._id));let n;for(const r of t){const o=r.group||"";(!n||n[0]!==o)&&(n=[o,[]],this._menuGroups.push(n)),n[1].push(r),this._collectContextKeysAndSubmenuIds(r)}this._allMenuIds.add(this._id)}_sort(t){return t}_collectContextKeysAndSubmenuIds(t){if(EZ._fillInKbExprKeys(t.when,this._structureContextKeys),LU(t)){if(t.command.precondition&&EZ._fillInKbExprKeys(t.command.precondition,this._preconditionContextKeys),t.command.toggled){const n=t.command.toggled.condition||t.command.toggled;EZ._fillInKbExprKeys(n,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&(Iu.getMenuItems(t.submenu).forEach(this._collectContextKeysAndSubmenuIds,this),this._allMenuIds.add(t.submenu))}static _fillInKbExprKeys(t,n){if(t)for(const r of t.keys())n.add(r)}}let vje=UG=class extends EZ{constructor(t,n,r,o,s,a){super(t,r),this._hiddenStates=n,this._commandService=o,this._keybindingService=s,this._contextKeyService=a,this.refresh()}createActionGroups(t){const n=[];for(const r of this._menuGroups){const[o,s]=r;let a;for(const l of s)if(this._contextKeyService.contextMatchesRules(l.when)){const d=LU(l);d&&this._hiddenStates.setDefaultState(this._id,l.command.id,!!l.isHiddenByDefault);const u=Fko(this._id,d?l.command:l,this._hiddenStates);if(d){const h=pDn(this._commandService,this._keybindingService,l.command.id,l.when);(a??(a=[])).push(new i2(l.command,l.alt,t,u,h,this._contextKeyService,this._commandService))}else{const h=new UG(l.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(t),g=pd.join(...h.map(m=>m[1]));g.length>0&&(a??(a=[])).push(new uD(l,u,g))}}a&&a.length>0&&n.push([o,a])}return n}_sort(t){return t.sort(UG._compareMenuItems)}static _compareMenuItems(t,n){const r=t.group,o=n.group;if(r!==o){if(r){if(!o)return-1}else return 1;if(r==="navigation")return-1;if(o==="navigation")return 1;const l=r.localeCompare(o);if(l!==0)return l}const s=t.order||0,a=n.order||0;return sa?1:UG._compareTitles(LU(t)?t.command.title:t.title,LU(n)?n.command.title:n.title)}static _compareTitles(t,n){const r=typeof t=="string"?t:t.original,o=typeof n=="string"?n:n.original;return r.localeCompare(o)}};vje=UG=g3e([dy(3,ba),dy(4,Do),dy(5,Qi)],vje);let I1e=class{constructor(t,n,r,o,s,a){this._disposables=new xt,this._menuInfo=new vje(t,n,r.emitEventsForSubmenuChanges,o,s,a);const l=new Es(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},r.eventDebounceDelay);this._disposables.add(l),this._disposables.add(Iu.onDidChangeMenu(g=>{for(const m of this._menuInfo.allMenuIds)if(g.has(m)){l.schedule();break}}));const d=this._disposables.add(new xt),u=g=>{let m=!1,v=!1,f=!1;for(const k of g)if(m=m||k.isStructuralChange,v=v||k.isEnablementChange,f=f||k.isToggleChange,m&&v&&f)break;return{menu:this,isStructuralChange:m,isEnablementChange:v,isToggleChange:f}},h=()=>{d.add(a.onDidChangeContext(g=>{const m=g.affectsSome(this._menuInfo.structureContextKeys),v=g.affectsSome(this._menuInfo.preconditionContextKeys),f=g.affectsSome(this._menuInfo.toggledContextKeys);(m||v||f)&&this._onDidChange.fire({menu:this,isStructuralChange:m,isEnablementChange:v,isToggleChange:f})})),d.add(n.onDidChange(g=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new M6n({onWillAddFirstListener:h,onDidRemoveLastListener:d.clear.bind(d),delay:r.eventDebounceDelay,merge:u}),this.onDidChange=this._onDidChange.event}getActions(t){return this._menuInfo.createActionGroups(t)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};I1e=g3e([dy(3,ba),dy(4,Do),dy(5,Qi)],I1e);function Fko(e,t,n){const r=Ono(t)?t.submenu.id:t.id,o=typeof t.title=="string"?t.title:t.title.value,s=dD({id:`hide/${e.id}/${r}`,label:U(1651,"Hide '{0}'",o),run(){n.updateHidden(e,r,!0)}}),a=dD({id:`toggle/${e.id}/${r}`,label:o,get checked(){return!n.isHidden(e,r)},run(){n.updateHidden(e,r,!!this.checked)}});return{hide:s,toggle:a,get isHidden(){return!a.checked}}}function pDn(e,t,n,r=void 0,o=!0){return dD({id:`configureKeybinding/${n}`,label:U(1652,"Configure Keybinding"),enabled:o,run(){const a=!!!t.lookupKeybinding(n)&&r?r.serialize():void 0;e.executeCommand("workbench.action.openGlobalKeybindings",`@command:${n}`+(a?` +when:${a}`:""))}})}const bDn=Cr("IActionViewItemService");class Nko{constructor(){this._providers=new Map,this._onDidChange=new at,this.onDidChange=this._onDidChange.event}dispose(){this._onDidChange.dispose()}lookUp(t,n){return this._providers.get(this._makeKey(t,n))}_makeKey(t,n){return`${t.id}/${n instanceof Wn?n.id:n}`}}zr(bDn,Nko,1);var wDn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Rk=function(e,t){return function(n,r){t(n,r,e)}};let M1e=class extends vko{constructor(t,n,r,o,s,a,l,d){super(t,s,{getKeyBinding:h=>a.lookupKeybinding(h.id)??void 0,...n,allowContextMenu:!0,skipTelemetry:typeof(n==null?void 0:n.telemetrySource)=="string"}),this._options=n,this._menuService=r,this._contextKeyService=o,this._contextMenuService=s,this._keybindingService=a,this._commandService=l,this._sessionDisposables=this._store.add(new xt);const u=n==null?void 0:n.telemetrySource;u&&this._store.add(this.actionBar.onDidRun(h=>d.publicLog2("workbenchActionExecuted",{id:h.action.id,from:u})))}setActions(t,n=[],r){var h,g,m;this._sessionDisposables.clear();const o=t.slice(),s=n.slice(),a=[];let l=0;const d=[];let u=!1;if(((h=this._options)==null?void 0:h.hiddenItemStrategy)!==-1)for(let v=0;vA==null?void 0:A.id)),f=this._options.overflowBehavior.maxItems-v.size;let k=0;for(let A=0;A=f&&(o[A]=void 0,d[A]=p))}}gbt(o),gbt(d),super.setActions(o,pd.join(d,s)),(a.length>0||o.length>0)&&this._sessionDisposables.add(wt(this.getElement(),"contextmenu",v=>{var b,w,O,y,C;const f=new Xh(ii(this.getElement()),v),k=this.getItemAction(f.target);if(!k)return;f.preventDefault(),f.stopPropagation();const A=[];if(k instanceof i2&&k.menuKeybinding)A.push(k.menuKeybinding);else if(!(k instanceof uD||k instanceof BJ)){const _=!!this._keybindingService.lookupKeybinding(k.id);A.push(pDn(this._commandService,this._keybindingService,k.id,void 0,_))}if(a.length>0){let _=!1;if(l===1&&((b=this._options)==null?void 0:b.hiddenItemStrategy)===0){_=!0;for(let S=0;Sthis._menuService.resetHiddenStates(r)}))),p.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>f,getActions:()=>p,menuId:(O=this._options)==null?void 0:O.contextMenu,menuActionOptions:{renderShortTitle:!0,...(y=this._options)==null?void 0:y.menuOptions},skipTelemetry:typeof((C=this._options)==null?void 0:C.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};M1e=wDn([Rk(2,wA),Rk(3,Qi),Rk(4,S2),Rk(5,Do),Rk(6,ba),Rk(7,Nf)],M1e);let RJ=class extends M1e{get onDidChangeMenuItems(){return this._onDidChangeMenuItems.event}constructor(t,n,r,o,s,a,l,d,u,h,g){super(t,{resetMenu:n,...r,actionViewItemProvider:(f,k)=>{let A=h.lookUp(n,f instanceof uD?f.item.submenu.id:f.id);A||(A=r==null?void 0:r.actionViewItemProvider);const p=A==null?void 0:A(f,k,g,ii(t).vscodeWindowId);return p||Itt(g,f,k)}},o,s,a,l,d,u),this._onDidChangeMenuItems=this._store.add(new at);const m=this._store.add(o.createMenu(n,s,{emitEventsForSubmenuChanges:!0,eventDebounceDelay:r==null?void 0:r.eventDebounceDelay})),v=()=>{var A,p,b;const{primary:f,secondary:k}=kDn(m.getActions(r==null?void 0:r.menuOptions),(A=r==null?void 0:r.toolbarOptions)==null?void 0:A.primaryGroup,(p=r==null?void 0:r.toolbarOptions)==null?void 0:p.shouldInlineSubmenu,(b=r==null?void 0:r.toolbarOptions)==null?void 0:b.useSeparatorsInPrimaryActions);t.classList.toggle("has-no-actions",f.length===0&&k.length===0),super.setActions(f,k)};this._store.add(m.onDidChange(()=>{v(),this._onDidChangeMenuItems.fire(this)})),this._store.add(h.onDidChange(f=>{f===n&&v()})),v()}setActions(){throw new ui("This toolbar is populated from a menu.")}};RJ=wDn([Rk(3,wA),Rk(4,Qi),Rk(5,S2),Rk(6,Do),Rk(7,ba),Rk(8,Nf),Rk(9,bDn),Rk(10,Yn)],RJ);var Uko=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DOt=function(e,t){return function(n,r){t(n,r,e)}};const pm=Cr("hoverService");let mV=class extends ft{get delay(){var t;return this.isInstantlyHovering()?0:(t=this.hoverOptions)!=null&&t.dynamicDelay?n=>{var r,o;return((o=(r=this.hoverOptions)==null?void 0:r.dynamicDelay)==null?void 0:o.call(r,n))??this._delay}:this._delay}constructor(t,n,r={},o,s){super(),this.placement=t,this.hoverOptions=n,this.overrideOptions=r,this.configurationService=o,this.hoverService=s,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new xt),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(t,n){const r=typeof this.overrideOptions=="function"?this.overrideOptions(t,n):this.overrideOptions;this.hoverDisposables.clear();const o=ec(t.target)?[t.target]:t.target.targetElements;for(const a of o)this.hoverDisposables.add(wc(a,"keydown",l=>{l.equals(9)&&this.hoverService.hideHover()}));const s=ec(t.content)?void 0:typeof t.content=="string"?t.content.toString():t.content.value;return this.hoverService.showInstantHover({...t,...r,persistence:{hideOnKeyDown:!0,...r.persistence},id:s,appearance:{...t.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...r.appearance}},n)}isInstantlyHovering(){var t;return!!((t=this.hoverOptions)!=null&&t.instantHover)&&Date.now()-this.lastHoverHideTimethis._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(a=>a===0),this.modelAttached=Ko(this,this._editor.onDidChangeModel,a=>this._editor.hasModel()),this.editorOnDidChangeViewZones=A0("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=A0("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=Mv("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const o=this._domNode.appendChild(wo("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),s=new ResizeObserver(()=>{la(a=>{this.domNodeSizeChanged.trigger(a)})});s.observe(this._domNode),this._register(Hn(()=>s.disconnect())),this._register(Oi(a=>{o.className=this.isScrollTopZero.read(a)?"":"scroll-decoration"})),this._register(Oi(a=>this.render(a)))}dispose(){super.dispose(),mu(this._domNode)}render(t){if(!this.modelAttached.read(t))return;this.domNodeSizeChanged.read(t),this.editorOnDidChangeViewZones.read(t),this.editorOnDidContentSizeChange.read(t);const n=this.scrollTop.read(t),r=this._editor.getVisibleRanges(),o=new Set(this.views.keys()),s=Xn.ofStartAndLength(0,this._domNode.clientHeight);if(!s.isEmpty)for(const a of r){const l=new Ei(a.startLineNumber,a.endLineNumber+1),d=this.itemProvider.getIntersectingGutterItems(l,t);la(u=>{for(const h of d){if(!h.range.intersect(l))continue;o.delete(h.id);let g=this.views.get(h.id);if(g)g.item.set(h,u);else{const k=document.createElement("div");this._domNode.appendChild(k);const A=Ti("item",h),p=this.itemProvider.createView(A,k);g=new Vko(A,p,k),this.views.set(h.id,g)}const m=h.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(h.range.startLineNumber,!0)-n:h.range.startLineNumber>1?this._editor.getBottomForLineNumber(h.range.startLineNumber-1,!1)-n:0,f=(h.range.endLineNumberExclusive===1?Math.max(m,this._editor.getTopForLineNumber(h.range.startLineNumber,!1)-n):Math.max(m,this._editor.getBottomForLineNumber(h.range.endLineNumberExclusive-1,!0)-n))-m;g.domNode.style.top=`${m}px`,g.domNode.style.height=`${f}px`,g.gutterItemView.layout(Xn.ofStartAndLength(m,f),s)}})}for(const a of o){const l=this.views.get(a);l.gutterItemView.dispose(),l.domNode.remove(),this.views.delete(a)}}}class Vko{constructor(t,n,r){this.item=t,this.gutterItemView=n,this.domNode=r}}var yDn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},hhe=function(e,t){return function(n,r){t(n,r,e)}};const ixe=[],Fle=35;let Aje=class extends ft{constructor(t,n,r,o,s,a,l,d,u){super(),this._diffModel=n,this._editors=r,this._options=o,this._sashLayout=s,this._boundarySashes=a,this._instantiationService=l,this._contextKeyService=d,this._menuService=u,this._menu=this._register(this._menuService.createMenu(Wn.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=Ko(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(g=>g.length>0),this._showSash=Rt(this,g=>this._options.renderSideBySide.read(g)&&this._hasActions.read(g)),this.width=Rt(this,g=>this._hasActions.read(g)?Fle:0),this.elements=wo("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:Fle+"px"}},[]),this._currentDiff=Rt(this,g=>{var k;const m=this._diffModel.read(g);if(!m)return;const v=(k=m.diff.read(g))==null?void 0:k.mappings,f=this._editors.modifiedCursor.read(g);if(f)return v==null?void 0:v.find(A=>A.lineRangeMapping.modified.contains(f.lineNumber))}),this._selectedDiffs=Rt(this,g=>{const m=this._diffModel.read(g),v=m==null?void 0:m.diff.read(g);if(!v)return ixe;const f=this._editors.modifiedSelections.read(g);if(f.every(b=>b.isEmpty()))return ixe;const k=new Iv(f.map(b=>Ei.fromRangeInclusive(b))),p=v.mappings.filter(b=>b.lineRangeMapping.innerChanges&&k.intersects(b.lineRangeMapping.modified)).map(b=>({mapping:b,rangeMappings:b.lineRangeMapping.innerChanges.filter(w=>f.some(O=>Ee.areIntersecting(w.modifiedRange,O)))}));return p.length===0||p.every(b=>b.rangeMappings.length===0)?ixe:p}),this._register(k0o(t,this.elements.root)),this._register(wt(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(Q6(this.elements.root,{display:this._hasActions.map(g=>g?"block":"none")})),vv(this,g=>this._showSash.read(g)?new hDn(t,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,$Je(this,v=>this._sashLayout.sashLeft.read(v)-Fle,(v,f)=>this._sashLayout.sashLeft.set(v+Fle,f)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store);const h=Rt(this,g=>{const m=this._diffModel.read(g);if(!m)return[];const v=m.diff.read(g);if(!v)return[];const f=this._selectedDiffs.read(g);if(f.length>0){const A=s2.fromRangeMappings(f.flatMap(p=>p.rangeMappings));return[new BOt(A,!0,Wn.DiffEditorSelectionToolbar,void 0,m.model.original.uri,m.model.modified.uri)]}const k=this._currentDiff.read(g);return v.mappings.map(A=>new BOt(A.lineRangeMapping.withInnerChangesFromLineRanges(),A.lineRangeMapping===(k==null?void 0:k.lineRangeMapping),Wn.DiffEditorHunkToolbar,void 0,m.model.original.uri,m.model.modified.uri))});this._register(new Wko(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(g,m)=>h.read(m),createView:(g,m)=>this._instantiationService.createInstance(pje,g,m,this)})),this._register(wt(this.elements.gutter,rn.MOUSE_WHEEL,g=>{this._editors.modified.getOption(117).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(g)},{passive:!1}))}computeStagedValue(t){const n=t.innerChanges??[],r=new AR(this._editors.modifiedModel.get()),o=new AR(this._editors.original.getModel());return new V4(n.map(l=>l.toTextEdit(r))).apply(o)}layout(t){this.elements.gutter.style.left=t+"px"}};Aje=yDn([hhe(6,Yn),hhe(7,Qi),hhe(8,wA)],Aje);class BOt{constructor(t,n,r,o,s,a){this.mapping=t,this.showAlways=n,this.menuId=r,this.rangeOverride=o,this.originalUri=s,this.modifiedUri=a}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let pje=class extends ft{constructor(t,n,r,o){super(),this._item=t,this._elements=wo("div.gutterItem",{style:{height:"20px",width:"34px"}},[wo("div.background@background",{},[]),wo("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,a=>a.showAlways),this._menuId=this._item.map(this,a=>a.menuId),this._isSmall=Ti(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const s=this._register(o.createInstance(mV,"element",{instantHover:!0},{position:{hoverPosition:1}}));this._register(bN(n,this._elements.root)),this._register(Oi(a=>{const l=this._showAlways.read(a);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",l),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register(Ef((a,l)=>{this._elements.buttons.replaceChildren();const d=l.add(o.createInstance(RJ,this._elements.buttons,this._menuId.read(a),{orientation:1,hoverDelegate:s,toolbarOptions:{primaryGroup:u=>u.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(a)?1:3},hiddenItemStrategy:0,actionRunner:l.add(new ODn(()=>{const u=this._item.read(void 0),h=u.mapping;return{mapping:h,originalWithModifiedChanges:r.computeStagedValue(h),originalUri:u.originalUri,modifiedUri:u.modifiedUri}})),menuOptions:{shouldForwardArgs:!0}}));l.add(d.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(t,n){this._lastItemRange=t,this._lastViewRange=n;let r=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&t.length<30,void 0),r=this._elements.buttons.clientHeight;const o=t.length/2-r/2,s=r;let a=t.start+o;const l=Xn.tryCreate(s,n.endExclusive-s-r),d=Xn.tryCreate(t.start+s,t.endExclusive-r-s);d&&l&&d.start=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Hko=function(e,t){return function(n,r){t(n,r,e)}},bje,X9;let P1e=(X9=class extends ft{static setBreadcrumbsSourceFactory(t){this._breadcrumbsSourceFactory.set(t,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(t,n,r,o){super(),this._editors=t,this._diffModel=n,this._options=r,this._instantiationService=o,this._modifiedOutlineSource=vv(this,d=>{const u=this._editors.modifiedModel.read(d),h=bje._breadcrumbsSourceFactory.read(d);return!u||!h?void 0:h(u,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(d=>{if(d.reason===1)return;const u=this._diffModel.get();la(h=>{for(const g of this._editors.original.getSelections()||[])u==null||u.ensureOriginalLineIsVisible(g.getStartPosition().lineNumber,0,h),u==null||u.ensureOriginalLineIsVisible(g.getEndPosition().lineNumber,0,h)})})),this._register(this._editors.modified.onDidChangeCursorPosition(d=>{if(d.reason===1)return;const u=this._diffModel.get();la(h=>{for(const g of this._editors.modified.getSelections()||[])u==null||u.ensureModifiedLineIsVisible(g.getStartPosition().lineNumber,0,h),u==null||u.ensureModifiedLineIsVisible(g.getEndPosition().lineNumber,0,h)})}));const s=this._diffModel.map((d,u)=>{var g;const h=(d==null?void 0:d.unchangedRegions.read(u))??[];return h.length===1&&h[0].modifiedLineNumber===1&&h[0].lineCount===((g=this._editors.modifiedModel.read(u))==null?void 0:g.getLineCount())?[]:h});this.viewZones=Rt(this,d=>{const u=this._modifiedOutlineSource.read(d);if(!u)return{origViewZones:[],modViewZones:[]};const h=[],g=[],m=this._options.renderSideBySide.read(d),v=this._options.compactMode.read(d),f=s.read(d);for(let k=0;kA.getHiddenOriginalRange(w).startLineNumber-1),b=new wN(p,12);h.push(b),d.store.add(new ROt(this._editors.original,b,A,!m))}{const p=Rt(this,w=>A.getHiddenModifiedRange(w).startLineNumber-1),b=new wN(p,12);g.push(b),d.store.add(new ROt(this._editors.modified,b,A))}}else{{const p=Rt(this,w=>A.getHiddenOriginalRange(w).startLineNumber-1),b=new wN(p,24);h.push(b),d.store.add(new IOt(this._editors.original,b,A,A.originalUnchangedRange,!m,u,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}{const p=Rt(this,w=>A.getHiddenModifiedRange(w).startLineNumber-1),b=new wN(p,24);g.push(b),d.store.add(new IOt(this._editors.modified,b,A,A.modifiedUnchangedRange,!1,u,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}}}return{origViewZones:h,modViewZones:g}});const a={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},l={description:"Fold Unchanged",glyphMarginHoverMessage:new bf(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(U(124,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+fi.asClassName(zt.fold),zIndex:10001};this._register(C1e(this._editors.original,Rt(this,d=>{const u=s.read(d),h=u.map(g=>({range:g.originalUnchangedRange.toInclusiveRange(),options:a}));for(const g of u)g.shouldHideControls(d)&&h.push({range:Ee.fromPositions(new it(g.originalLineNumber,1)),options:l});return h}))),this._register(C1e(this._editors.modified,Rt(this,d=>{const u=s.read(d),h=u.map(g=>({range:g.modifiedUnchangedRange.toInclusiveRange(),options:a}));for(const g of u)g.shouldHideControls(d)&&h.push({range:Ei.ofLength(g.modifiedLineNumber,1).toInclusiveRange(),options:l});return h}))),this._register(Oi(d=>{const u=s.read(d);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(u.map(h=>h.getHiddenOriginalRange(d).toInclusiveRange()).filter(Ru)),this._editors.modified.setHiddenAreas(u.map(h=>h.getHiddenModifiedRange(d).toInclusiveRange()).filter(Ru))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(d=>{var u;if(!d.event.rightButton&&d.target.position&&((u=d.target.element)!=null&&u.className.includes("fold-unchanged"))){const h=d.target.position.lineNumber,g=this._diffModel.get();if(!g)return;const m=g.unchangedRegions.get().find(v=>v.modifiedUnchangedRange.contains(h));if(!m)return;m.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(d=>{var u;if(!d.event.rightButton&&d.target.position&&((u=d.target.element)!=null&&u.className.includes("fold-unchanged"))){const h=d.target.position.lineNumber,g=this._diffModel.get();if(!g)return;const m=g.unchangedRegions.get().find(v=>v.originalUnchangedRange.contains(h));if(!m)return;m.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}}))}},bje=X9,X9._breadcrumbsSourceFactory=Ti(X9,()=>({dispose(){},getBreadcrumbItems(t,n){return[]}})),X9);P1e=bje=zko([Hko(3,Yn)],P1e);class ROt extends Ctt{constructor(t,n,r,o=!1){const s=wo("div.diff-hidden-lines-widget");super(t,n,s.root),this._unchangedRegion=r,this._hide=o,this._nodes=wo("div.diff-hidden-lines-compact",[wo("div.line-left",[]),wo("div.text@text",[]),wo("div.line-right",[])]),s.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register(Oi(a=>{if(!this._hide){const l=this._unchangedRegion.getHiddenModifiedRange(a).length,d=U(125,"{0} hidden lines",l);this._nodes.text.innerText=d}}))}}class IOt extends Ctt{constructor(t,n,r,o,s,a,l,d){const u=wo("div.diff-hidden-lines-widget");super(t,n,u.root),this._editor=t,this._unchangedRegion=r,this._unchangedRegionRange=o,this._hide=s,this._modifiedOutlineSource=a,this._revealModifiedHiddenLine=l,this._options=d,this._nodes=wo("div.diff-hidden-lines",[wo("div.top@top",{title:U(126,"Click or drag to show more above")}),wo("div.center@content",{style:{display:"flex"}},[wo("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[tn("a",{title:U(127,"Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...P9("$(unfold)"))]),wo("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),wo("div.bottom@bottom",{title:U(128,"Click or drag to show more below"),role:"button"})]),u.root.appendChild(this._nodes.root),this._hide?mu(this._nodes.first):this._register(Q6(this._nodes.first,{width:hl(this._editor).layoutInfoContentLeft})),this._register(Oi(g=>{const m=this._unchangedRegion.visibleLineCountTop.read(g)+this._unchangedRegion.visibleLineCountBottom.read(g)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!m),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(g)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(g)>0),this._nodes.top.classList.toggle("canMoveBottom",!m);const v=this._unchangedRegion.isDragged.read(g),f=this._editor.getDomNode();f&&(f.classList.toggle("draggingUnchangedRegion",!!v),v==="top"?(f.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(g)>0),f.classList.toggle("canMoveBottom",!m)):v==="bottom"?(f.classList.toggle("canMoveTop",!m),f.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(g)>0)):(f.classList.toggle("canMoveTop",!1),f.classList.toggle("canMoveBottom",!1)))}));const h=this._editor;this._register(wt(this._nodes.top,"mousedown",g=>{if(g.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),g.preventDefault();const m=g.clientY;let v=!1;const f=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const k=ii(this._nodes.top),A=wt(k,"mousemove",b=>{const O=b.clientY-m;v=v||Math.abs(O)>2;const y=Math.round(O/h.getOption(75)),C=Math.max(0,Math.min(f+y,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(C,void 0)}),p=wt(k,"mouseup",b=>{v||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),A.dispose(),p.dispose()})})),this._register(wt(this._nodes.bottom,"mousedown",g=>{if(g.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),g.preventDefault();const m=g.clientY;let v=!1;const f=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const k=ii(this._nodes.bottom),A=wt(k,"mousemove",b=>{const O=b.clientY-m;v=v||Math.abs(O)>2;const y=Math.round(O/h.getOption(75)),C=Math.max(0,Math.min(f-y,this._unchangedRegion.getMaxVisibleLineCountBottom())),_=this._unchangedRegionRange.endLineNumberExclusive>h.getModel().getLineCount()?h.getContentHeight():h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(C,void 0);const S=this._unchangedRegionRange.endLineNumberExclusive>h.getModel().getLineCount()?h.getContentHeight():h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);h.setScrollTop(h.getScrollTop()+(S-_))}),p=wt(k,"mouseup",b=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!v){const w=h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const O=h.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);h.setScrollTop(h.getScrollTop()+(O-w))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),A.dispose(),p.dispose()})})),this._register(Oi(g=>{const m=[];if(!this._hide){const v=r.getHiddenModifiedRange(g).length,f=U(129,"{0} hidden lines",v),k=tn("span",{title:U(130,"Double click to unfold")},f);k.addEventListener("dblclick",b=>{b.button===0&&(b.preventDefault(),this._unchangedRegion.showAll(void 0))}),m.push(k);const A=this._unchangedRegion.getHiddenModifiedRange(g),p=this._modifiedOutlineSource.getBreadcrumbItems(A,g);if(p.length>0){m.push(tn("span",void 0,"  |  "));for(let b=0;b{this._revealModifiedHiddenLine(w.startLineNumber)}}}}mu(this._nodes.others,...m)}))}}const rxe=[];class $ko extends ft{constructor(t,n,r,o){super(),this._editors=t,this._diffModel=n,this._options=r,this._widget=o,this._selectedDiffs=Rt(this,s=>{const a=this._diffModel.read(s),l=a==null?void 0:a.diff.read(s);if(!l)return rxe;const d=this._editors.modifiedSelections.read(s);if(d.every(m=>m.isEmpty()))return rxe;const u=new Iv(d.map(m=>Ei.fromRangeInclusive(m))),g=l.mappings.filter(m=>m.lineRangeMapping.innerChanges&&u.intersects(m.lineRangeMapping.modified)).map(m=>({mapping:m,rangeMappings:m.lineRangeMapping.innerChanges.filter(v=>d.some(f=>Ee.areIntersecting(v.modifiedRange,f)))}));return g.length===0||g.every(m=>m.rangeMappings.length===0)?rxe:g}),this._register(Ef((s,a)=>{if(!this._options.shouldRenderOldRevertArrows.read(s))return;const l=this._diffModel.read(s),d=l==null?void 0:l.diff.read(s);if(!l||!d||l.movedTextToCompare.read(s))return;const u=[],h=this._selectedDiffs.read(s),g=new Set(h.map(m=>m.mapping));if(h.length>0){const m=this._editors.modifiedSelections.read(s),v=a.add(new F1e(m[m.length-1].positionLineNumber,this._widget,h.flatMap(f=>f.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(v),u.push(v)}for(const m of d.mappings)if(!g.has(m)&&!m.lineRangeMapping.modified.isEmpty&&m.lineRangeMapping.innerChanges){const v=a.add(new F1e(m.lineRangeMapping.modified.startLineNumber,this._widget,m.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(v),u.push(v)}a.add(Hn(()=>{for(const m of u)this._editors.modified.removeGlyphMarginWidget(m)}))}))}}const zve=class zve extends ft{getId(){return this._id}constructor(t,n,r,o){super(),this._lineNumber=t,this._widget=n,this._diffs=r,this._revertSelection=o,this._id=`revertButton${zve.counter++}`,this._domNode=wo("div.revertButton",{title:this._revertSelection?U(135,"Revert Selected Changes"):U(136,"Revert Change")},[y3(zt.arrowRight)]).root,this._register(wt(this._domNode,rn.MOUSE_DOWN,s=>{s.button!==2&&(s.stopPropagation(),s.preventDefault())})),this._register(wt(this._domNode,rn.MOUSE_UP,s=>{s.stopPropagation(),s.preventDefault()})),this._register(wt(this._domNode,rn.CLICK,s=>{this._diffs instanceof Ag?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),s.stopPropagation(),s.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:p3.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}};zve.counter=0;let F1e=zve;var Xko=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},CX=function(e,t){return function(n,r){t(n,r,e)}};let Ey=class extends cje{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(t,n,r,o,s,a,l,d){super(),this._domElement=t,this._parentContextKeyService=o,this._parentInstantiationService=s,this._codeEditorService=a,this._accessibilitySignalService=l,this._editorProgressService=d,this.elements=wo("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[wo("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),wo("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),wo("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register(YJe(this,void 0)),this._diffModel=Rt(this,O=>{var y;return(y=this._diffModelSrc.read(O))==null?void 0:y.object}),this.onDidChangeModel=an.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new rH([Qi,this._contextKeyService]))),this._boundarySashes=Ti(this,void 0),this._accessibleDiffViewerShouldBeVisible=Ti(this,!1),this._accessibleDiffViewerVisible=Rt(this,O=>this._options.onlyShowAccessibleDiffViewer.read(O)?!0:this._accessibleDiffViewerShouldBeVisible.read(O)),this._movedBlocksLinesPart=Ti(this,void 0),this._layoutInfo=Rt(this,O=>{var R,I;const y=this._rootSizeObserver.width.read(O),C=this._rootSizeObserver.height.read(O);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=C+"px";const _=this._sash.read(O),S=this._gutter.read(O),L=(S==null?void 0:S.width.read(O))??0,E=((R=this._overviewRulerPart.read(O))==null?void 0:R.width)??0;let T,D,P,Q,M;if(!!_){const F=_.sashLeft.read(O),j=((I=this._movedBlocksLinesPart.read(O))==null?void 0:I.width.read(O))??0;T=0,D=F-L-j,M=F-L,P=F,Q=y-P-E}else{M=0;const F=this._options.inlineViewHideOriginalLineNumbers.read(O);T=L,F?D=0:D=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(O)),P=L+D,Q=y-P-E}return this.elements.original.style.left=T+"px",this.elements.original.style.width=D+"px",this._editors.original.layout({width:D,height:C},!0),S==null||S.layout(M),this.elements.modified.style.left=P+"px",this.elements.modified.style.width=Q+"px",this._editors.modified.layout({width:Q,height:C},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((O,y)=>O==null?void 0:O.diff.read(y)),this.onDidUpdateDiff=an.fromObservableLight(this._diffValue),this._codeEditorService.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(Hn(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new nDn(this.elements.root,n.dimension)),this._rootSizeObserver.setAutomaticLayout(n.automaticLayout??!1),this._options=this._instantiationService.createInstance(dje,n),this._register(Oi(O=>{this._options.setWidth(this._rootSizeObserver.width.read(O))})),this._contextKeyService.createKey($e.isEmbeddedDiffEditor.key,!1),this._register(Dw($e.isEmbeddedDiffEditor,this._contextKeyService,O=>this._options.isInEmbeddedEditor.read(O))),this._register(Dw($e.comparingMovedCode,this._contextKeyService,O=>{var y;return!!((y=this._diffModel.read(O))!=null&&y.movedTextToCompare.read(O))})),this._register(Dw($e.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,O=>this._options.couldShowInlineViewBecauseOfSize.read(O))),this._register(Dw($e.diffEditorInlineMode,this._contextKeyService,O=>!this._options.renderSideBySide.read(O))),this._register(Dw($e.hasChanges,this._contextKeyService,O=>{var y,C;return(((C=(y=this._diffModel.read(O))==null?void 0:y.diff.read(O))==null?void 0:C.mappings.length)??0)>0})),this._editors=this._register(this._instantiationService.createInstance(lje,this.elements.original,this.elements.modified,this._options,r,(O,y,C,_)=>this._createInnerEditor(O,y,C,_))),this._register(Dw($e.diffEditorOriginalWritable,this._contextKeyService,O=>this._options.originalEditable.read(O))),this._register(Dw($e.diffEditorModifiedWritable,this._contextKeyService,O=>!this._options.readOnly.read(O))),this._register(Dw($e.diffEditorOriginalUri,this._contextKeyService,O=>{var y;return((y=this._diffModel.read(O))==null?void 0:y.model.original.uri.toString())??""})),this._register(Dw($e.diffEditorModifiedUri,this._contextKeyService,O=>{var y;return((y=this._diffModel.read(O))==null?void 0:y.model.modified.uri.toString())??""})),this._overviewRulerPart=vv(this,O=>this._options.renderOverviewRuler.read(O)?this._instantiationService.createInstance(A_(DJ),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(y=>y.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const u={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((O,y)=>{var C;return O-(((C=this._overviewRulerPart.read(y))==null?void 0:C.width)??0)})};this._sashLayout=new lko(this._options,u),this._sash=vv(this,O=>{const y=this._options.renderSideBySide.read(O);return this.elements.root.classList.toggle("side-by-side",y),y?new hDn(this.elements.root,u,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const h=vv(this,O=>this._instantiationService.createInstance(A_(P1e),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);vv(this,O=>this._instantiationService.createInstance(A_(J0o),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const g=new Set,m=new Set;let v=!1;const f=vv(this,O=>this._instantiationService.createInstance(A_(sje),ii(this._domElement),this._editors,this._diffModel,this._options,this,()=>v||h.read(void 0).isUpdatingHiddenAreas,g,m)).recomputeInitiallyAndOnChange(this._store),k=Rt(this,O=>{const y=f.read(O).viewZones.read(O).orig,C=h.read(O).viewZones.read(O).origViewZones;return y.concat(C)}),A=Rt(this,O=>{const y=f.read(O).viewZones.read(O).mod,C=h.read(O).viewZones.read(O).modViewZones;return y.concat(C)});this._register(_1e(this._editors.original,k,O=>{v=O},g));let p;this._register(_1e(this._editors.modified,A,O=>{v=O,v?p=O3.capture(this._editors.modified):(p==null||p.restore(this._editors.modified),p=void 0)},m)),this._accessibleDiffViewer=vv(this,O=>this._instantiationService.createInstance(A_(kQ),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(y,C)=>this._accessibleDiffViewerShouldBeVisible.set(y,C),this._options.onlyShowAccessibleDiffViewer.map(y=>!y),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((y,C)=>{var _;return(_=y==null?void 0:y.diff.read(C))==null?void 0:_.mappings.map(S=>S.lineRangeMapping)}),new P0o(this._editors))).recomputeInitiallyAndOnChange(this._store);const b=this._accessibleDiffViewerVisible.map(O=>O?"hidden":"visible");this._register(Q6(this.elements.modified,{visibility:b})),this._register(Q6(this.elements.original,{visibility:b})),this._createDiffEditorContributions(),this._codeEditorService.addDiffEditor(this),this._register(Hn(()=>{this._codeEditorService.removeDiffEditor(this)})),this._gutter=vv(this,O=>this._options.shouldRenderGutterMenu.read(O)?this._instantiationService.createInstance(A_(Aje),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(KW(this._layoutInfo)),vv(this,O=>new(A_(jU))(this.elements.root,this._diffModel,this._layoutInfo.map(y=>y.originalEditor),this._layoutInfo.map(y=>y.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,O=>{this._movedBlocksLinesPart.set(O,void 0)}),this._register(an.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,O=>this._handleCursorPositionChange(O,!0))),this._register(an.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,O=>this._handleCursorPositionChange(O,!1)));const w=this._diffModel.map(this,(O,y)=>{if(O)return O.diff.read(y)===void 0&&!O.isDiffUpToDate.read(y)});this._register(Ef((O,y)=>{if(w.read(O)===!0){const C=this._editorProgressService.show(!0,1e3);y.add(Hn(()=>C.done()))}})),this._register(Ef((O,y)=>{y.add(new(A_($ko))(this._editors,this._diffModel,this._options,this))})),this._register(Ef((O,y)=>{const C=this._diffModel.read(O);if(C)for(const _ of[C.model.original,C.model.modified])y.add(_.onWillDispose(S=>{zi(new ui("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register(Oi(O=>{this._options.setModel(this._diffModel.read(O))}))}_createInnerEditor(t,n,r,o){return t.createInstance(gR,n,r,o)}_createDiffEditorContributions(){const t=xU.getDiffEditorContributions();for(const n of t)try{this._register(this._instantiationService.createInstance(n.ctor,this))}catch(r){zi(r)}}get _targetEditor(){return this._editors.modified}getEditorType(){return Nie.IDiffEditor}layout(t){this._rootSizeObserver.observe(t)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var r;const t=this._editors.original.saveViewState(),n=this._editors.modified.saveViewState();return{original:t,modified:n,modelState:(r=this._diffModel.get())==null?void 0:r.serializeState()}}restoreViewState(t){var n;if(t&&t.original&&t.modified){const r=t;this._editors.original.restoreViewState(r.original),this._editors.modified.restoreViewState(r.modified),r.modelState&&((n=this._diffModel.get())==null||n.restoreSerializedState(r.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(t){return this._instantiationService.createInstance(oje,t,this._options)}getModel(){var t;return((t=this._diffModel.get())==null?void 0:t.model)??null}setModel(t){const n=t?"model"in t?S1e.create(t).createNewRef(this):S1e.create(this.createViewModel(t),this):null;this.setDiffModel(n)}setDiffModel(t,n){const r=this._diffModel.get();!t&&r&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==(t==null?void 0:t.object)&&qW(n,o=>{var l;const s=t==null?void 0:t.object;Ko.batchEventsGlobally(o,()=>{this._editors.original.setModel(s?s.model.original:null),this._editors.modified.setModel(s?s.model.modified:null)});const a=(l=this._diffModelSrc.get())==null?void 0:l.createNewRef(this);this._diffModelSrc.set(t==null?void 0:t.createNewRef(this),o),setTimeout(()=>{a==null||a.dispose()},0)})}updateOptions(t){this._options.updateOptions(t)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var n;const t=(n=this._diffModel.get())==null?void 0:n.diff.get();return t?Gko(t):null}getDiffComputationResult(){var n;const t=(n=this._diffModel.get())==null?void 0:n.diff.get();return t?{changes:this.getLineChanges(),changes2:t.mappings.map(r=>r.lineRangeMapping),identical:t.identical,quitEarly:t.quitEarly}:null}revert(t){const n=this._diffModel.get();!n||!n.isDiffUpToDate.get()||(this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",[{range:t.modified.toExclusiveRange(),text:n.model.original.getValueInRange(t.original.toExclusiveRange())}]),this._editors.modified.pushUndoStop())}revertRangeMappings(t){const n=this._diffModel.get();if(!n||!n.isDiffUpToDate.get())return;const r=t.map(o=>({range:o.modifiedRange,text:n.model.original.getValueInRange(o.originalRange)}));this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",r),this._editors.modified.pushUndoStop()}revertFocusedRangeMappings(){var d,u;const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const n=(u=(d=this._diffModel.get())==null?void 0:d.diff.get())==null?void 0:u.mappings;if(!n||n.length===0)return;const r=this._editors.modified;if(!r.hasTextFocus())return;const o=r.getPosition().lineNumber,s=r.getSelection(),a=Ei.fromRange(s||new Ee(o,0,o,0)),l=n.filter(h=>h.lineRangeMapping.modified.intersect(a));r.pushUndoStop(),r.executeEdits("diffEditor",l.map(h=>({range:h.lineRangeMapping.modified.toExclusiveRange(),text:t.model.original.getValueInRange(h.lineRangeMapping.original.toExclusiveRange())}))),r.pushUndoStop()}_goTo(t){this._editors.modified.setPosition(new it(t.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(t.lineRangeMapping.modified.toExclusiveRange())}goToDiff(t){var s,a;const n=(a=(s=this._diffModel.get())==null?void 0:s.diff.get())==null?void 0:a.mappings;if(!n||n.length===0)return;const r=this._editors.modified.getPosition().lineNumber;let o;t==="next"?this._editors.modified.getModel().getLineCount()===r?o=n[0]:o=n.find(d=>d.lineRangeMapping.modified.startLineNumber>r)??n[0]:o=cJ(n,l=>l.lineRangeMapping.modified.startLineNumber{var r;const n=(r=t.diff.get())==null?void 0:r.mappings;!n||n.length===0||this._goTo(n[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const t=this._diffModel.get();t&&await t.waitForDiff()}mapToOtherSide(){var a,l;const t=this._editors.modified.hasWidgetFocus(),n=t?this._editors.modified:this._editors.original,r=t?this._editors.original:this._editors.modified;let o;const s=n.getSelection();if(s){const d=(l=(a=this._diffModel.get())==null?void 0:a.diff.get())==null?void 0:l.mappings.map(u=>t?u.lineRangeMapping.flip():u.lineRangeMapping);if(d){const u=uOt(s.getStartPosition(),d),h=uOt(s.getEndPosition(),d);o=Ee.plusRange(u,h)}}return{destination:r,destinationSelection:o}}switchSide(){const{destination:t,destinationSelection:n}=this.mapToOtherSide();t.focus(),n&&t.setSelection(n)}exitCompareMove(){const t=this._diffModel.get();t&&t.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var n;const t=(n=this._diffModel.get())==null?void 0:n.unchangedRegions.get();t&&la(r=>{for(const o of t)o.collapseAll(r)})}showAllUnchangedRegions(){var n;const t=(n=this._diffModel.get())==null?void 0:n.unchangedRegions.get();t&&la(r=>{for(const o of t)o.showAll(r)})}_handleCursorPositionChange(t,n){var r,o;if((t==null?void 0:t.reason)===3){const s=(o=(r=this._diffModel.get())==null?void 0:r.diff.get())==null?void 0:o.mappings.find(a=>n?a.lineRangeMapping.modified.contains(t.position.lineNumber):a.lineRangeMapping.original.contains(t.position.lineNumber));s!=null&&s.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(nm.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):s!=null&&s.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(nm.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):s&&this._accessibilitySignalService.playSignal(nm.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};Ey=Xko([CX(3,Qi),CX(4,Yn),CX(5,yo),CX(6,pL),CX(7,V8)],Ey);function Gko(e){return e.mappings.map(t=>{const n=t.lineRangeMapping;let r,o,s,a,l=n.innerChanges;return n.original.isEmpty?(r=n.original.startLineNumber-1,o=0,l=void 0):(r=n.original.startLineNumber,o=n.original.endLineNumberExclusive-1),n.modified.isEmpty?(s=n.modified.startLineNumber-1,a=0,l=void 0):(s=n.modified.startLineNumber,a=n.modified.endLineNumberExclusive-1),{originalStartLineNumber:r,originalEndLineNumber:o,modifiedStartLineNumber:s,modifiedEndLineNumber:a,charChanges:l==null?void 0:l.map(d=>({originalStartLineNumber:d.originalRange.startLineNumber,originalStartColumn:d.originalRange.startColumn,originalEndLineNumber:d.originalRange.endLineNumber,originalEndColumn:d.originalRange.endColumn,modifiedStartLineNumber:d.modifiedRange.startLineNumber,modifiedStartColumn:d.modifiedRange.startColumn,modifiedEndLineNumber:d.modifiedRange.endLineNumber,modifiedEndColumn:d.modifiedRange.endColumn}))}})}class Yko extends zu{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:_t(85,"Toggle Collapse Unchanged Regions"),icon:zt.map,toggled:Ft.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ft.has("isInDiffEditor"),menu:{when:Ft.has("isInDiffEditor"),id:Wn.EditorTitle,order:22,group:"navigation"}})}run(t,...n){const r=t.get(ar),o=!r.getValue("diffEditor.hideUnchangedRegions.enabled");r.updateValue("diffEditor.hideUnchangedRegions.enabled",o)}}class CDn extends zu{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:_t(86,"Toggle Show Moved Code Blocks"),precondition:Ft.has("isInDiffEditor")})}run(t,...n){const r=t.get(ar),o=!r.getValue("diffEditor.experimental.showMoves");r.updateValue("diffEditor.experimental.showMoves",o)}}class _Dn extends zu{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:_t(87,"Toggle Use Inline View When Space Is Limited"),precondition:Ft.has("isInDiffEditor")})}run(t,...n){const r=t.get(ar),o=!r.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");r.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",o)}}const Gie=_t(88,"Diff Editor");class Zko extends Op{constructor(){super({id:"diffEditor.switchSide",title:_t(89,"Switch Side"),icon:zt.arrowSwap,precondition:Ft.has("isInDiffEditor"),f1:!0,category:Gie})}runEditorCommand(t,n,r){const o=QI(t);if(o instanceof Ey){if(r&&r.dryRun)return{destinationSelection:o.mapToOtherSide().destinationSelection};o.switchSide()}}}class qko extends Op{constructor(){super({id:"diffEditor.exitCompareMove",title:_t(90,"Exit Compare Move"),icon:zt.close,precondition:$e.comparingMovedCode,f1:!1,category:Gie,keybinding:{weight:1e4,primary:9}})}runEditorCommand(t,n,...r){const o=QI(t);o instanceof Ey&&o.exitCompareMove()}}class Kko extends Op{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:_t(91,"Collapse All Unchanged Regions"),icon:zt.fold,precondition:Ft.has("isInDiffEditor"),f1:!0,category:Gie})}runEditorCommand(t,n,...r){const o=QI(t);o instanceof Ey&&o.collapseAllUnchangedRegions()}}class Jko extends Op{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:_t(92,"Show All Unchanged Regions"),icon:zt.unfold,precondition:Ft.has("isInDiffEditor"),f1:!0,category:Gie})}runEditorCommand(t,n,...r){const o=QI(t);o instanceof Ey&&o.showAllUnchangedRegions()}}class wje extends zu{constructor(){super({id:"diffEditor.revert",title:_t(93,"Revert"),f1:!0,category:Gie,precondition:Ft.has("isInDiffEditor")})}run(t,n){return n?this.runViaToolbarContext(t,n):this.runViaCursorOrSelection(t)}runViaCursorOrSelection(t){const n=QI(t);n instanceof Ey&&n.revertFocusedRangeMappings()}runViaToolbarContext(t,n){const r=e2o(t,n.originalUri,n.modifiedUri);r instanceof Ey&&r.revertRangeMappings(n.mapping.innerChanges??[])}}const SDn=_t(94,"Accessible Diff Viewer"),Hve=class Hve extends zu{constructor(){super({id:Hve.id,title:_t(95,"Go to Next Difference"),category:SDn,precondition:Ft.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(t){const n=QI(t);n==null||n.accessibleDiffViewerNext()}};Hve.id="editor.action.accessibleDiffViewer.next";let IJ=Hve;const $ve=class $ve extends zu{constructor(){super({id:$ve.id,title:_t(96,"Go to Previous Difference"),category:SDn,precondition:Ft.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(t){const n=QI(t);n==null||n.accessibleDiffViewerPrev()}};$ve.id="editor.action.accessibleDiffViewer.prev";let N1e=$ve;function e2o(e,t,n){return e.get(yo).listDiffEditors().find(s=>{var d,u;const a=s.getModifiedEditor(),l=s.getOriginalEditor();return a&&((d=a.getModel())==null?void 0:d.uri.toString())===n.toString()&&l&&((u=l.getModel())==null?void 0:u.uri.toString())===t.toString()})||null}function QI(e){const n=e.get(yo).listDiffEditors(),r=Nd();if(r){for(const o of n)if(o.getContainerDomNode().contains(r))return o}return null}ys(Yko);ys(CDn);ys(_Dn);Iu.appendMenuItem(Wn.EditorTitle,{command:{id:new _Dn().desc.id,title:U(119,"Use Inline View When Space Is Limited"),toggled:Ft.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Ft.has("isInDiffEditor")},order:11,group:"1_diff",when:Ft.and($e.diffEditorRenderSideBySideInlineBreakpointReached,Ft.has("isInDiffEditor"))});Iu.appendMenuItem(Wn.EditorTitle,{command:{id:new CDn().desc.id,title:U(120,"Show Moved Code Blocks"),icon:zt.move,toggled:$z.create("config.diffEditor.experimental.showMoves",!0),precondition:Ft.has("isInDiffEditor")},order:10,group:"1_diff",when:Ft.has("isInDiffEditor")});ys(wje);for(const e of[{icon:zt.arrowRight,key:$e.diffEditorInlineMode.toNegated()},{icon:zt.discard,key:$e.diffEditorInlineMode}])Iu.appendMenuItem(Wn.DiffEditorHunkToolbar,{command:{id:new wje().desc.id,title:U(121,"Revert Block"),icon:e.icon},when:Ft.and($e.diffEditorModifiedWritable,e.key),order:5,group:"primary"}),Iu.appendMenuItem(Wn.DiffEditorSelectionToolbar,{command:{id:new wje().desc.id,title:U(122,"Revert Selection"),icon:e.icon},when:Ft.and($e.diffEditorModifiedWritable,e.key),order:5,group:"primary"});ys(Zko);ys(qko);ys(Kko);ys(Jko);Iu.appendMenuItem(Wn.EditorTitle,{command:{id:IJ.id,title:U(123,"Open Accessible Diff Viewer"),precondition:Ft.has("isInDiffEditor")},order:10,group:"2_diff",when:Ft.and($e.accessibleDiffViewerVisible.negate(),Ft.has("isInDiffEditor"))});uo.registerCommandAlias("editor.action.diffReview.next",IJ.id);ys(IJ);uo.registerCommandAlias("editor.action.diffReview.prev",N1e.id);ys(N1e);var t2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},n2o=function(e,t){return function(n,r){t(n,r,e)}},Oje;const m3e=new yn("selectionAnchorSet",!1);var MD;let B6=(MD=class{static get(t){return t.getContribution(Oje.ID)}constructor(t,n){this.editor=t,this.selectionAnchorSetContextKey=m3e.bindTo(n),this.modelChangeListener=t.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const t=this.editor.getPosition();this.editor.changeDecorations(n=>{this.decorationId&&n.removeDecoration(this.decorationId),this.decorationId=n.addDecoration(Qn.fromPositions(t,t),{description:"selection-anchor",stickiness:1,hoverMessage:new bf().appendText(U(798,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),um(U(799,"Anchor set at {0}:{1}",t.lineNumber,t.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);t&&this.editor.setPosition(t.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);if(t){const n=this.editor.getPosition();this.editor.setSelection(Qn.fromPositions(t.getStartPosition(),n)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const t=this.decorationId;this.editor.changeDecorations(n=>{n.removeDecoration(t),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},Oje=MD,MD.ID="editor.contrib.selectionAnchorController",MD);B6=Oje=t2o([n2o(1,Qi)],B6);class i2o extends Bn{constructor(){super({id:"editor.action.setSelectionAnchor",label:_t(800,"Set Selection Anchor"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2080),weight:100}})}async run(t,n){var r;(r=B6.get(n))==null||r.setSelectionAnchor()}}class r2o extends Bn{constructor(){super({id:"editor.action.goToSelectionAnchor",label:_t(801,"Go to Selection Anchor"),precondition:m3e})}async run(t,n){var r;(r=B6.get(n))==null||r.goToSelectionAnchor()}}class o2o extends Bn{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:_t(802,"Select from Anchor to Cursor"),precondition:m3e,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2089),weight:100}})}async run(t,n){var r;(r=B6.get(n))==null||r.selectFromAnchorToCursor()}}class s2o extends Bn{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:_t(803,"Cancel Selection Anchor"),precondition:m3e,kbOpts:{kbExpr:$e.editorTextFocus,primary:9,weight:100}})}async run(t,n){var r;(r=B6.get(n))==null||r.cancelSelectionAnchor()}}mo(B6.ID,B6,4);un(i2o);un(r2o);un(o2o);un(s2o);const a2o=Ve("editorOverviewRuler.bracketMatchForeground","#A0A0A0",U(804,"Overview ruler marker color for matching brackets."));class l2o extends Bn{constructor(){super({id:"editor.action.jumpToBracket",label:_t(806,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:3165,weight:100}})}run(t,n){var r;(r=pR.get(n))==null||r.jumpToBracket()}}class c2o extends Bn{constructor(){super({id:"editor.action.selectToBracket",label:_t(807,"Select to Bracket"),precondition:void 0,metadata:{description:_t(808,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(t,n,r){var s;let o=!0;r&&r.selectBrackets===!1&&(o=!1),(s=pR.get(n))==null||s.selectToBracket(o)}}class d2o extends Bn{constructor(){super({id:"editor.action.removeBrackets",label:_t(809,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(t,n){var r;(r=pR.get(n))==null||r.removeBrackets(this.id)}}class u2o{constructor(t,n,r){this.position=t,this.brackets=n,this.options=r}}const p5=class p5 extends ft{static get(t){return t.getContribution(p5.ID)}constructor(t){super(),this._editor=t,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Es(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(t.onDidChangeCursorPosition(n=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModelContent(n=>{this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModel(n=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModelLanguageConfiguration(n=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeConfiguration(n=>{n.hasChanged(80)&&(this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(t.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(t.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const t=this._editor.getModel(),n=this._editor.getSelections().map(r=>{const o=r.getStartPosition(),s=t.bracketPairs.matchBracket(o);let a=null;if(s)s[0].containsPosition(o)&&!s[1].containsPosition(o)?a=s[1].getStartPosition():s[1].containsPosition(o)&&(a=s[0].getStartPosition());else{const l=t.bracketPairs.findEnclosingBrackets(o);if(l)a=l[1].getStartPosition();else{const d=t.bracketPairs.findNextBracket(o);d&&d.range&&(a=d.range.getStartPosition())}}return a?new Qn(a.lineNumber,a.column,a.lineNumber,a.column):new Qn(o.lineNumber,o.column,o.lineNumber,o.column)});this._editor.setSelections(n),this._editor.revealRange(n[0])}selectToBracket(t){if(!this._editor.hasModel())return;const n=this._editor.getModel(),r=[];this._editor.getSelections().forEach(o=>{const s=o.getStartPosition();let a=n.bracketPairs.matchBracket(s);if(!a&&(a=n.bracketPairs.findEnclosingBrackets(s),!a)){const u=n.bracketPairs.findNextBracket(s);u&&u.range&&(a=n.bracketPairs.matchBracket(u.range.getStartPosition()))}let l=null,d=null;if(a){a.sort(Ee.compareRangesUsingStarts);const[u,h]=a;if(l=t?u.getStartPosition():u.getEndPosition(),d=t?h.getEndPosition():h.getStartPosition(),h.containsPosition(s)){const g=l;l=d,d=g}}l&&d&&r.push(new Qn(l.lineNumber,l.column,d.lineNumber,d.column))}),r.length>0&&(this._editor.setSelections(r),this._editor.revealRange(r[0]))}removeBrackets(t){if(!this._editor.hasModel())return;const n=this._editor.getModel();this._editor.getSelections().forEach(r=>{const o=r.getPosition();let s=n.bracketPairs.matchBracket(o);s||(s=n.bracketPairs.findEnclosingBrackets(o)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(t,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const t=[];let n=0;for(const r of this._lastBracketsData){const o=r.brackets;o&&(t[n++]={range:o[0],options:r.options},t[n++]={range:o[1],options:r.options})}this._decorations.set(t)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getSelections();if(t.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const n=this._editor.getModel(),r=n.getVersionId();let o=[];this._lastVersionId===r&&(o=this._lastBracketsData);const s=[];let a=0;for(let g=0,m=t.length;g1&&s.sort(it.compare);const l=[];let d=0,u=0;const h=o.length;for(let g=0,m=s.length;g0&&(n.pushUndoStop(),n.executeCommands(this.id,o),n.pushUndoStop())}}un(m2o);const k2o=Cr("productService");function Mtt(e,t){return{id:t,asString:async()=>e,asFile:()=>{},value:typeof e=="string"?e:void 0}}function v2o(e,t,n,r){const o={id:SI(),name:e,uri:t,data:n};return{id:r,asString:async()=>"",asFile:()=>o,value:void 0}}class xDn{constructor(){this._entries=new Map}get size(){let t=0;for(const n of this._entries)t++;return t}has(t){return this._entries.has(this.toKey(t))}matches(t){const n=[...this._entries.keys()];return to.some(this,([r,o])=>o.asFile())&&n.push("files"),EDn(U1e(t),n)}get(t){var n;return(n=this._entries.get(this.toKey(t)))==null?void 0:n[0]}append(t,n){const r=this._entries.get(t);r?r.push(n):this._entries.set(this.toKey(t),[n])}replace(t,n){this._entries.set(this.toKey(t),[n])}delete(t){this._entries.delete(this.toKey(t))}*[Symbol.iterator](){for(const[t,n]of this._entries)for(const r of n)yield[t,r]}toKey(t){return U1e(t)}}function U1e(e){return e.toLowerCase()}function MOt(e,t){return EDn(U1e(e),t.map(U1e))}function EDn(e,t){if(e==="*/*")return t.length>0;if(t.includes(e))return!0;const n=e.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!n)return!1;const[r,o,s]=n;return s==="*"?t.some(a=>a.startsWith(o+"/")):!1}const k3e=Object.freeze({create:e=>M8(e.map(t=>t.toString())).join(`\r `),split:e=>e.split(`\r `),parse:e=>k3e.split(e).filter(t=>!t.startsWith("#"))}),$w=class $w{constructor(t){this.value=t}equals(t){return this.value===t.value}contains(t){return this.equals(t)||this.value===""||t.value.startsWith(this.value+$w.sep)}intersects(t){return this.contains(t)||t.contains(this)}append(...t){return new $w((this.value?[this.value,...t]:t).join($w.sep))}};$w.sep=".",$w.None=new $w("@@none@@"),$w.Empty=new $w("");let El=$w;const A2o={ctrlCmd:!1,alt:!1};var MJ;(function(e){e[e.Blur=1]="Blur",e[e.Gesture=2]="Gesture",e[e.Other=3]="Other"})(MJ||(MJ={}));var Qb;(function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.SECOND=2]="SECOND",e[e.LAST=3]="LAST"})(Qb||(Qb={}));var Sa;(function(e){e[e.First=1]="First",e[e.Second=2]="Second",e[e.Last=3]="Last",e[e.Next=4]="Next",e[e.Previous=5]="Previous",e[e.NextPage=6]="NextPage",e[e.PreviousPage=7]="PreviousPage",e[e.NextSeparator=8]="NextSeparator",e[e.PreviousSeparator=9]="PreviousSeparator"})(Sa||(Sa={}));var j1e;(function(e){e[e.Title=1]="Title",e[e.Inline=2]="Inline",e[e.Input=3]="Input"})(j1e||(j1e={}));const Rf=Cr("quickInputService"),POt={EDITORS:"CodeEditors",FILES:"CodeFiles"};class p2o{}const b2o={DragAndDropContribution:"workbench.contributions.dragAndDrop"};Ql.add(b2o.DragAndDropContribution,new p2o);const Cq=class Cq{constructor(){}static getInstance(){return Cq.INSTANCE}hasData(t){return t&&t===this.proto}getData(t){if(this.hasData(t))return this.data}};Cq.INSTANCE=new Cq;let yje=Cq;function TDn(e){var t,n,r,o;if(v3&&typeof((n=(t=globalThis.vscode)==null?void 0:t.webUtils)==null?void 0:n.getPathForFile)=="function")return(o=(r=globalThis.vscode)==null?void 0:r.webUtils)==null?void 0:o.getPathForFile(e)}function QDn(e){const t=new xDn;for(const n of e.items){const r=n.type;if(n.kind==="string"){const o=new Promise(s=>n.getAsString(s));t.append(r,Mtt(o))}else if(n.kind==="file"){const o=n.getAsFile();o&&t.append(r,w2o(o))}}return t}function w2o(e){const t=TDn(e),n=t?vi.parse(t):void 0;return v2o(e.name,n,async()=>new Uint8Array(await e.arrayBuffer()))}const O2o=Object.freeze([POt.EDITORS,POt.FILES,mR.RESOURCES,mR.INTERNAL_URI_LIST]);function DDn(e,t=!1){const n=QDn(e),r=n.get(mR.INTERNAL_URI_LIST);if(r)n.replace(ac.uriList,r);else if(t||!n.has(ac.uriList)){const o=[];for(const s of e.items){const a=s.getAsFile();if(a){const l=TDn(a);try{l?o.push(vi.file(l).toString()):o.push(vi.parse(a.name,!0).toString())}catch{}}}o.length&&n.replace(ac.uriList,Mtt(k3e.create(o)))}for(const o of O2o)n.delete(o);return n}const Yie=Cr("IWorkspaceEditService");class Ptt{constructor(t){this.metadata=t}static convert(t){return t.edits.map(n=>{if(N9.is(n))return N9.lift(n);if(VU.is(n))return VU.lift(n);throw new Error("Unsupported edit")})}}class N9 extends Ptt{static is(t){return t instanceof N9?!0:Pd(t)&&vi.isUri(t.resource)&&Pd(t.textEdit)}static lift(t){return t instanceof N9?t:new N9(t.resource,t.textEdit,t.versionId,t.metadata)}constructor(t,n,r=void 0,o){super(o),this.resource=t,this.textEdit=n,this.versionId=r}}class VU extends Ptt{static is(t){return t instanceof VU?!0:Pd(t)&&(!!t.newResource||!!t.oldResource)}static lift(t){return t instanceof VU?t:new VU(t.oldResource,t.newResource,t.options,t.metadata)}constructor(t,n,r={},o){super(o),this.oldResource=t,this.newResource=n,this.options=r}}const Ftt=Cr("IEditorCancelService"),BDn=new yn("cancellableOperation",!1,U(939,"Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));zr(Ftt,class{constructor(){this._tokens=new WeakMap}add(e,t){let n=this._tokens.get(e);n||(n=e.invokeWithinContext(o=>{const s=BDn.bindTo(o.get(Qi)),a=new bg;return{key:s,tokens:a}}),this._tokens.set(e,n));let r;return n.key.set(!0),r=n.tokens.push(t),()=>{r&&(r(),n.key.set(!n.tokens.isEmpty()),r=void 0)}}cancel(e){const t=this._tokens.get(e);if(!t)return;const n=t.tokens.pop();n&&(n.cancel(),t.key.set(!t.tokens.isEmpty()))}},1);class y2o extends ja{constructor(t,n){super(n),this.editor=t,this._unregister=t.invokeWithinContext(r=>r.get(Ftt).add(t,this))}dispose(){this._unregister(),super.dispose()}}On(new class extends $d{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:BDn})}runEditorCommand(e,t){e.get(Ftt).cancel(t)}});let RDn=class Cje{constructor(t,n){if(this.flags=n,this.flags&1){const r=t.getModel();this.modelVersionId=r?oR("{0}#{1}",r.uri.toString(),r.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=t.getPosition():this.position=null,this.flags&2?this.selection=t.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=t.getScrollLeft(),this.scrollTop=t.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(t){if(!(t instanceof Cje))return!1;const n=t;return!(this.modelVersionId!==n.modelVersionId||this.scrollLeft!==n.scrollLeft||this.scrollTop!==n.scrollTop||!this.position&&n.position||this.position&&!n.position||this.position&&n.position&&!this.position.equals(n.position)||!this.selection&&n.selection||this.selection&&!n.selection||this.selection&&n.selection&&!this.selection.equalsRange(n.selection))}validate(t){return this._equals(new Cje(t,this.flags))}};class z8 extends y2o{constructor(t,n,r,o){super(t,o),this._listener=new xt,n&4&&this._listener.add(t.onDidChangeCursorPosition(s=>{(!r||!Ee.containsPosition(r,s.position))&&this.cancel()})),n&2&&this._listener.add(t.onDidChangeCursorSelection(s=>{(!r||!Ee.containsRange(r,s.selection))&&this.cancel()})),n&8&&this._listener.add(t.onDidScrollChange(s=>this.cancel())),n&1&&(this._listener.add(t.onDidChangeModel(s=>this.cancel())),this._listener.add(t.onDidChangeModelContent(s=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}class Ntt extends ja{constructor(t,n){super(n),this._listener=t.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}var C2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_2o=function(e,t){return function(n,r){t(n,r,e)}};const S2o=Gi.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:Z6n,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),Xve=class Xve extends ft{constructor(t,n,r,o,s){super(),this.typeId=t,this.editor=n,this.range=r,this.delegate=s,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(o),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(t){this.domNode=tn(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=t;const n=tn("span.icon");this.domNode.append(n),n.classList.add(...fi.asClassNameArray(zt.loading),"codicon-modifier-spin");const r=()=>{const o=this.editor.getOption(75);this.domNode.style.height=`${o}px`,this.domNode.style.width=`${Math.ceil(.8*o)}px`};r(),this._register(this.editor.onDidChangeConfiguration(o=>{(o.hasChanged(61)||o.hasChanged(75))&&r()})),this._register(wt(this.domNode,rn.CLICK,o=>{this.delegate.cancel()}))}getId(){return Xve.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}};Xve.baseId="editor.widget.inlineProgressWidget";let _je=Xve,W1e=class extends ft{constructor(t,n,r){super(),this.id=t,this._editor=n,this._instantiationService=r,this._showDelay=500,this._showPromise=this._register(new ts),this._currentWidget=this._register(new ts),this._operationIdPool=0,this._currentDecorations=n.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(t,n,r,o,s){const a=this._operationIdPool++;this._currentOperation=a,this.clear(),this._showPromise.value=B8(()=>{const l=Ee.fromPositions(t);this._currentDecorations.set([{range:l,options:S2o}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(_je,this.id,this._editor,l,n,o))},s??this._showDelay);try{return await r}finally{this._currentOperation===a&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};W1e=C2o([_2o(2,Yn)],W1e);const OL=Cr("openerService");function L2o(e,t){return e.with({fragment:`${t.startLineNumber},${t.startColumn}${t.endLineNumber?`-${t.endLineNumber}${t.endColumn?`,${t.endColumn}`:""}`:""}`})}function x2o(e){let t;const n=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(e.fragment);return n&&(t={startLineNumber:parseInt(n[1]),startColumn:n[2]?parseInt(n[2]):1,endLineNumber:n[4]?parseInt(n[4]):void 0,endColumn:n[4]?n[5]?parseInt(n[5]):1:void 0},e=e.with({fragment:""})),{selection:t,uri:e}}var E2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},T2o=function(e,t){return function(n,r){t(n,r,e)}};const Cp=Cr("markdownRendererService");let Sje=class{constructor(t){this._openerService=t}render(t,n,r){const o={...n};o.actionHandler||(o.actionHandler=(a,l)=>IDn(this._openerService,a,l.isTrusted)),o.codeBlockRenderer||(o.codeBlockRenderer=(a,l)=>{var d;return((d=this._defaultCodeBlockRenderer)==null?void 0:d.renderCodeBlock(a,l,o??{}))??Promise.resolve(document.createElement("span"))});const s=Vie(t,o,r);return s.element.classList.add("rendered-markdown"),s}setDefaultCodeBlockRenderer(t){this._defaultCodeBlockRenderer=t}};Sje=E2o([T2o(0,OL)],Sje);async function IDn(e,t,n,r){try{return await e.open(t,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:Q2o(n),skipValidation:r})}catch(o){return zi(o),!1}}function Q2o(e){return e===!0?!0:e&&Array.isArray(e.enabledCommands)?e.enabledCommands:!1}zr(Cp,Sje,1);var D2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},FOt=function(e,t){return function(n,r){t(n,r,e)}},fhe,G9;let D0=(G9=class{static get(t){return t.getContribution(fhe.ID)}constructor(t,n,r){this._openerService=r,this._messageWidget=new ts,this._messageListeners=new xt,this._mouseOverMessage=!1,this._editor=t,this._visible=fhe.MESSAGE_VISIBLE.bindTo(n)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(t,n){if(um(i8(t)?t.value:t),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),i8(t)){const o=this._messageListeners.add(Vie(t,{actionHandler:(s,a)=>{this.closeMessage(),IDn(this._openerService,s,a.isTrusted)}}));this._messageWidget.value=new oxe(this._editor,n,o.element)}else this._messageWidget.value=new oxe(this._editor,n,t);this._messageListeners.add(an.debounce(this._editor.onDidBlurEditorText,(o,s)=>s,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&gu(Nd(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(wt(this._messageWidget.value.getDomNode(),rn.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(wt(this._messageWidget.value.getDomNode(),rn.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let r;this._messageListeners.add(this._editor.onMouseMove(o=>{o.target.position&&(r?r.containsPosition(o.target.position)||this.closeMessage():r=new Ee(n.lineNumber-3,1,o.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(oxe.fadeOut(this._messageWidget.value))}},fhe=G9,G9.ID="editor.contrib.messageController",G9.MESSAGE_VISIBLE=new yn("messageVisible",!1,U(1287,"Whether the editor is currently showing an inline message")),G9);D0=fhe=D2o([FOt(1,Qi),FOt(2,OL)],D0);const B2o=$d.bindToContribution(D0.get);On(new B2o({id:"leaveEditorMessage",precondition:D0.MESSAGE_VISIBLE,handler:e=>e.closeMessage(),kbOpts:{weight:130,primary:9}}));let oxe=class{static fadeOut(t){const n=()=>{t.dispose(),clearTimeout(r),t.getDomNode().removeEventListener("animationend",n)},r=setTimeout(n,110);return t.getDomNode().addEventListener("animationend",n),t.getDomNode().classList.add("fadeOut"),{dispose:n}}constructor(t,{lineNumber:n,column:r},o){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=t,this._editor.revealLinesInCenterIfOutsideViewport(n,n,0),this._position={lineNumber:n,column:r},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);const a=document.createElement("div");typeof o=="string"?(a.classList.add("message"),a.textContent=o):(o.classList.add("message"),a.appendChild(o)),this._domNode.appendChild(a);const l=document.createElement("div");l.classList.add("anchor","below"),this._domNode.appendChild(l),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(t){this._domNode.classList.toggle("below",t===2)}};mo(D0.ID,D0,4);class R2o{constructor(){this._value="",this._pos=0}reset(t){return this._value=t,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos=0;n--,this._valueLen--){const r=this._value.charCodeAt(n);if(!(r===47||this._splitOnBackslash&&r===92))break}return this.next()}hasNext(){return this._to!1,n=()=>!1){return new zU(new P2o(t,n))}static forStrings(){return new zU(new R2o)}static forConfigKeys(){return new zU(new I2o)}constructor(t){this._iter=t}clear(){this._root=void 0}set(t,n){const r=this._iter.reset(t);let o;this._root||(this._root=new Nle,this._root.segment=r.value());const s=[];for(o=this._root;;){const l=r.cmp(o.segment);if(l>0)o.left||(o.left=new Nle,o.left.segment=r.value()),s.push([-1,o]),o=o.left;else if(l<0)o.right||(o.right=new Nle,o.right.segment=r.value()),s.push([1,o]),o=o.right;else if(r.hasNext())r.next(),o.mid||(o.mid=new Nle,o.mid.segment=r.value()),s.push([0,o]),o=o.mid;else break}const a=U_.unwrap(o.value);o.value=U_.wrap(n),o.key=t;for(let l=s.length-1;l>=0;l--){const d=s[l][1];d.updateHeight();const u=d.balanceFactor();if(u<-1||u>1){const h=s[l][0],g=s[l+1][0];if(h===1&&g===1)s[l][1]=d.rotateLeft();else if(h===-1&&g===-1)s[l][1]=d.rotateRight();else if(h===1&&g===-1)d.right=s[l+1][1]=s[l+1][1].rotateRight(),s[l][1]=d.rotateLeft();else if(h===-1&&g===1)d.left=s[l+1][1]=s[l+1][1].rotateLeft(),s[l][1]=d.rotateRight();else throw new Error;if(l>0)switch(s[l-1][0]){case-1:s[l-1][1].left=s[l][1];break;case 1:s[l-1][1].right=s[l][1];break;case 0:s[l-1][1].mid=s[l][1];break}else this._root=s[0][1]}}return a}get(t){var n;return U_.unwrap((n=this._getNode(t))==null?void 0:n.value)}_getNode(t){const n=this._iter.reset(t);let r=this._root;for(;r;){const o=n.cmp(r.segment);if(o>0)r=r.left;else if(o<0)r=r.right;else if(n.hasNext())n.next(),r=r.mid;else break}return r}has(t){const n=this._getNode(t);return!((n==null?void 0:n.value)===void 0&&(n==null?void 0:n.mid)===void 0)}delete(t){return this._delete(t,!1)}deleteSuperstr(t){return this._delete(t,!0)}_delete(t,n){const r=this._iter.reset(t),o=[];let s=this._root;for(;s;){const a=r.cmp(s.segment);if(a>0)o.push([-1,s]),s=s.left;else if(a<0)o.push([1,s]),s=s.right;else if(r.hasNext())r.next(),o.push([0,s]),s=s.mid;else break}if(s){if(n?(s.left=void 0,s.mid=void 0,s.right=void 0,s.height=1):(s.key=void 0,s.value=void 0),!s.mid&&!s.value)if(s.left&&s.right){const a=[[1,s]],l=this._min(s.right,a);if(l.key){s.key=l.key,s.value=l.value,s.segment=l.segment;const d=l.right;if(a.length>1){const[h,g]=a[a.length-1];switch(h){case-1:g.left=d;break;case 0:PK(!1);case 1:PK(!1)}}else s.right=d;const u=this._balanceByStack(a);if(o.length>0){const[h,g]=o[o.length-1];switch(h){case-1:g.left=u;break;case 0:g.mid=u;break;case 1:g.right=u;break}}else this._root=u}}else{const a=s.left??s.right;if(o.length>0){const[l,d]=o[o.length-1];switch(l){case-1:d.left=a;break;case 0:d.mid=a;break;case 1:d.right=a;break}}else this._root=a}this._root=this._balanceByStack(o)??this._root}}_min(t,n){for(;t.left;)n.push([-1,t]),t=t.left;return t}_balanceByStack(t){for(let n=t.length-1;n>=0;n--){const r=t[n][1];r.updateHeight();const o=r.balanceFactor();if(o>1?(r.right.balanceFactor()>=0||(r.right=r.right.rotateRight()),t[n][1]=r.rotateLeft()):o<-1&&(r.left.balanceFactor()<=0||(r.left=r.left.rotateLeft()),t[n][1]=r.rotateRight()),n>0)switch(t[n-1][0]){case-1:t[n-1][1].left=t[n][1];break;case 1:t[n-1][1].right=t[n][1];break;case 0:t[n-1][1].mid=t[n][1];break}else return t[0][1]}}findSubstr(t){const n=this._iter.reset(t);let r=this._root,o;for(;r;){const s=n.cmp(r.segment);if(s>0)r=r.left;else if(s<0)r=r.right;else if(n.hasNext())n.next(),o=U_.unwrap(r.value)||o,r=r.mid;else break}return r&&U_.unwrap(r.value)||o}findSuperstr(t){return this._findSuperstrOrElement(t,!1)}_findSuperstrOrElement(t,n){const r=this._iter.reset(t);let o=this._root;for(;o;){const s=r.cmp(o.segment);if(s>0)o=o.left;else if(s<0)o=o.right;else if(r.hasNext())r.next(),o=o.mid;else return o.mid?this._entries(o.mid):n?U_.unwrap(o.value):void 0}}forEach(t){for(const[n,r]of this)t(r,n)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(t){const n=[];return this._dfsEntries(t,n),n[Symbol.iterator]()}_dfsEntries(t,n){t&&(t.left&&this._dfsEntries(t.left,n),t.value!==void 0&&n.push([t.key,U_.unwrap(t.value)]),t.mid&&this._dfsEntries(t.mid,n),t.right&&this._dfsEntries(t.right,n))}}const H8=Cr("contextService");function Lje(e){const t=e;return typeof(t==null?void 0:t.id)=="string"&&vi.isUri(t.uri)}function F2o(e){const t=e;return typeof(t==null?void 0:t.id)=="string"&&!Lje(e)&&!j2o(e)}const N2o={id:"empty-window"};function U2o(e,t){if(typeof e=="string"||typeof e>"u")return typeof e=="string"?{id:JS(e)}:N2o;const n=e;return n.configuration?{id:n.id,configPath:n.configuration}:n.folders.length===1?{id:n.id,uri:n.folders[0].uri}:{id:n.id}}function j2o(e){const t=e;return typeof(t==null?void 0:t.id)=="string"&&vi.isUri(t.configPath)}let W2o=class{constructor(t,n){this.raw=n,this.uri=t.uri,this.index=t.index,this.name=t.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}};const xje="code-workspace";U(2050,"Code Workspace");const MDn="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function V2o(e){return e.id===MDn}var Utt=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},PJ=function(e,t){return function(n,r){t(n,r,e)}};class jtt{constructor(t){this.copyMimeTypes=[],this.kind=t,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(t,n,r,o,s){const a=await this.getEdit(r,s);if(a)return{edits:[{insertText:a.insertText,title:a.title,kind:a.kind,handledMimeType:a.handledMimeType,yieldTo:a.yieldTo}],dispose(){}}}async provideDocumentDropEdits(t,n,r,o){const s=await this.getEdit(r,o);if(s)return{edits:[{insertText:s.insertText,title:s.title,kind:s.kind,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}],dispose(){}}}}const Gve=class Gve extends jtt{constructor(){super(El.Empty.append("text","plain")),this.id=Gve.id,this.dropMimeTypes=[ac.text],this.pasteMimeTypes=[ac.text]}async getEdit(t,n){const r=t.get(ac.text);if(!r||t.has(ac.uriList))return;const o=await r.asString();return{handledMimeType:ac.text,title:U(926,"Insert Plain Text"),insertText:o,kind:this.kind}}};Gve.id="text";let bR=Gve;class PDn extends jtt{constructor(){super(El.Empty.append("uri","path","absolute")),this.dropMimeTypes=[ac.uriList],this.pasteMimeTypes=[ac.uriList]}async getEdit(t,n){const r=await FDn(t);if(!r.length||n.isCancellationRequested)return;let o=0;const s=r.map(({uri:l,originalText:d})=>l.scheme===Ci.file?l.fsPath:(o++,d)).join(" ");let a;return o>0?a=r.length>1?U(927,"Insert Uris"):U(928,"Insert Uri"):a=r.length>1?U(929,"Insert Paths"):U(930,"Insert Path"),{handledMimeType:ac.uriList,insertText:s,title:a,kind:this.kind}}}let V1e=class extends jtt{constructor(t){super(El.Empty.append("uri","path","relative")),this._workspaceContextService=t,this.dropMimeTypes=[ac.uriList],this.pasteMimeTypes=[ac.uriList]}async getEdit(t,n){const r=await FDn(t);if(!r.length||n.isCancellationRequested)return;const o=P3(r.map(({uri:s})=>{const a=this._workspaceContextService.getWorkspaceFolder(s);return a?Ino(a.uri,s):void 0}));if(o.length)return{handledMimeType:ac.uriList,insertText:o.join(" "),title:r.length>1?U(931,"Insert Relative Paths"):U(932,"Insert Relative Path"),kind:this.kind}}};V1e=Utt([PJ(0,H8)],V1e);class z2o{constructor(){this.kind=new El("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:ac.text}]}async provideDocumentPasteEdits(t,n,r,o,s){var d;if(o.triggerKind!==hJ.PasteAs&&!((d=o.only)!=null&&d.contains(this.kind)))return;const a=r.get("text/html"),l=await(a==null?void 0:a.asString());if(!(!l||s.isCancellationRequested))return{dispose(){},edits:[{insertText:l,yieldTo:this._yieldTo,title:U(933,"Insert HTML"),kind:this.kind}]}}}async function FDn(e){const t=e.get(ac.uriList);if(!t)return[];const n=await t.asString(),r=[];for(const o of k3e.parse(n))try{r.push({uri:vi.parse(o),originalText:o})}catch{}return r}const vQ={scheme:"*",hasAccessToAllModels:!0};let Eje=class extends ft{constructor(t,n){super(),this._register(t.documentDropEditProvider.register(vQ,new bR)),this._register(t.documentDropEditProvider.register(vQ,new PDn)),this._register(t.documentDropEditProvider.register(vQ,new V1e(n)))}};Eje=Utt([PJ(0,Nn),PJ(1,H8)],Eje);let Tje=class extends ft{constructor(t,n){super(),this._register(t.documentPasteEditProvider.register(vQ,new bR)),this._register(t.documentPasteEditProvider.register(vQ,new PDn)),this._register(t.documentPasteEditProvider.register(vQ,new V1e(n))),this._register(t.documentPasteEditProvider.register(vQ,new z2o))}};Tje=Utt([PJ(0,Nn),PJ(1,H8)],Tje);const a4=class a4{constructor(){this.value="",this.pos=0}static isDigitCharacter(t){return t>=48&&t<=57}static isVariableCharacter(t){return t===95||t>=97&&t<=122||t>=65&&t<=90}text(t){this.value=t,this.pos=0}tokenText(t){return this.value.substr(t.pos,t.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const t=this.pos;let n=0,r=this.value.charCodeAt(t),o;if(o=a4._table[r],typeof o=="number")return this.pos+=1,{type:o,pos:t,len:1};if(a4.isDigitCharacter(r)){o=8;do n+=1,r=this.value.charCodeAt(t+n);while(a4.isDigitCharacter(r));return this.pos+=n,{type:o,pos:t,len:n}}if(a4.isVariableCharacter(r)){o=9;do r=this.value.charCodeAt(t+ ++n);while(a4.isVariableCharacter(r)||a4.isDigitCharacter(r));return this.pos+=n,{type:o,pos:t,len:n}}o=10;do n+=1,r=this.value.charCodeAt(t+n);while(!isNaN(r)&&typeof a4._table[r]>"u"&&!a4.isDigitCharacter(r)&&!a4.isVariableCharacter(r));return this.pos+=n,{type:o,pos:t,len:n}}};a4._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let Qje=a4;class aH{constructor(){this._children=[]}appendChild(t){return t instanceof f0&&this._children[this._children.length-1]instanceof f0?this._children[this._children.length-1].value+=t.value:(t.parent=this,this._children.push(t)),this}replace(t,n){const{parent:r}=t,o=r.children.indexOf(t),s=r.children.slice(0);s.splice(o,1,...n),r._children=s,function a(l,d){for(const u of l)u.parent=d,a(u.children,u)}(n,r)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let t=this;for(;;){if(!t)return;if(t instanceof Zie)return t;t=t.parent}}toString(){return this.children.reduce((t,n)=>t+n.toString(),"")}len(){return 0}}let f0=class NDn extends aH{constructor(t){super(),this.value=t}toString(){return this.value}len(){return this.value.length}clone(){return new NDn(this.value)}};class UDn extends aH{}class Sv extends UDn{static compareByIndex(t,n){return t.index===n.index?0:t.isFinalTabstop?1:n.isFinalTabstop||t.indexn.index?1:0}constructor(t){super(),this.index=t}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof lH?this._children[0]:void 0}clone(){const t=new Sv(this.index);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(n=>n.clone()),t}}class lH extends aH{constructor(){super(...arguments),this.options=[]}appendChild(t){return t instanceof f0&&(t.parent=this,this.options.push(t)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const t=new lH;return this.options.forEach(t.appendChild,t),t}}let H2o=class jDn extends aH{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(t){const n=this;let r=!1,o=t.replace(this.regexp,function(){return r=!0,n._replace(Array.prototype.slice.call(arguments,0,-2))});return!r&&this._children.some(s=>s instanceof Db&&!!s.elseValue)&&(o=this._replace([])),o}_replace(t){let n="";for(const r of this._children)if(r instanceof Db){let o=t[r.index]||"";o=r.resolve(o),n+=o}else n+=r.toString();return n}toString(){return""}clone(){const t=new jDn;return t.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),t._children=this.children.map(n=>n.clone()),t}};class Db extends aH{constructor(t,n,r,o){super(),this.index=t,this.shorthandName=n,this.ifValue=r,this.elseValue=o}resolve(t){return this.shorthandName==="upcase"?t?t.toLocaleUpperCase():"":this.shorthandName==="downcase"?t?t.toLocaleLowerCase():"":this.shorthandName==="capitalize"?t?t[0].toLocaleUpperCase()+t.substr(1):"":this.shorthandName==="pascalcase"?t?this._toPascalCase(t):"":this.shorthandName==="camelcase"?t?this._toCamelCase(t):"":t&&typeof this.ifValue=="string"?this.ifValue:!t&&typeof this.elseValue=="string"?this.elseValue:t||""}_toPascalCase(t){const n=t.match(/[a-z0-9]+/gi);return n?n.map(r=>r.charAt(0).toUpperCase()+r.substr(1)).join(""):t}_toCamelCase(t){const n=t.match(/[a-z0-9]+/gi);return n?n.map((r,o)=>o===0?r.charAt(0).toLowerCase()+r.substr(1):r.charAt(0).toUpperCase()+r.substr(1)).join(""):t}clone(){return new Db(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class FJ extends UDn{constructor(t){super(),this.name=t}resolve(t){let n=t.resolve(this);return this.transform&&(n=this.transform.resolve(n||"")),n!==void 0?(this._children=[new f0(n)],!0):!1}clone(){const t=new FJ(this.name);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(n=>n.clone()),t}}function NOt(e,t){const n=[...e];for(;n.length>0;){const r=n.shift();if(!t(r))break;n.unshift(...r.children)}}class Zie extends aH{get placeholderInfo(){if(!this._placeholders){const t=[];let n;this.walk(function(r){return r instanceof Sv&&(t.push(r),n=!n||n.indexo===t?(r=!0,!1):(n+=o.len(),!0)),r?n:-1}fullLen(t){let n=0;return NOt([t],r=>(n+=r.len(),!0)),n}enclosingPlaceholders(t){const n=[];let{parent:r}=t;for(;r;)r instanceof Sv&&n.push(r),r=r.parent;return n}resolveVariables(t){return this.walk(n=>(n instanceof FJ&&n.resolve(t)&&(this._placeholders=void 0),!0)),this}appendChild(t){return this._placeholders=void 0,super.appendChild(t)}replace(t,n){return this._placeholders=void 0,super.replace(t,n)}clone(){const t=new Zie;return this._children=this.children.map(n=>n.clone()),t}walk(t){NOt(this.children,t)}}class wR{constructor(){this._scanner=new Qje,this._token={type:14,pos:0,len:0}}static escape(t){return t.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(t){return/\${?CLIPBOARD/.test(t)}parse(t,n,r){const o=new Zie;return this.parseFragment(t,o),this.ensureFinalTabstop(o,r??!1,n??!1),o}parseFragment(t,n){const r=n.children.length;for(this._scanner.text(t),this._token=this._scanner.next();this._parse(n););const o=new Map,s=[];n.walk(d=>(d instanceof Sv&&(d.isFinalTabstop?o.set(0,void 0):!o.has(d.index)&&d.children.length>0?o.set(d.index,d.children):s.push(d)),!0));const a=(d,u)=>{const h=o.get(d.index);if(!h)return;const g=new Sv(d.index);g.transform=d.transform;for(const m of h){const v=m.clone();g.appendChild(v),v instanceof Sv&&o.has(v.index)&&!u.has(v.index)&&(u.add(v.index),a(v,u),u.delete(v.index))}n.replace(d,[g])},l=new Set;for(const d of s)a(d,l);return n.children.slice(r)}ensureFinalTabstop(t,n,r){(n||r&&t.placeholders.length>0)&&(t.placeholders.find(s=>s.index===0)||t.appendChild(new Sv(0)))}_accept(t,n){if(t===void 0||this._token.type===t){const r=n?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),r}return!1}_backTo(t){return this._scanner.pos=t.pos+t.len,this._token=t,!1}_until(t){const n=this._token;for(;this._token.type!==t;){if(this._token.type===14)return!1;if(this._token.type===5){const o=this._scanner.next();if(o.type!==0&&o.type!==4&&o.type!==5)return!1}this._token=this._scanner.next()}const r=this._scanner.value.substring(n.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),r}_parse(t){return this._parseEscaped(t)||this._parseTabstopOrVariableName(t)||this._parseComplexPlaceholder(t)||this._parseComplexVariable(t)||this._parseAnything(t)}_parseEscaped(t){let n;return(n=this._accept(5,!0))?(n=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||n,t.appendChild(new f0(n)),!0):!1}_parseTabstopOrVariableName(t){let n;const r=this._token;return this._accept(0)&&(n=this._accept(9,!0)||this._accept(8,!0))?(t.appendChild(/^\d+$/.test(n)?new Sv(Number(n)):new FJ(n)),!0):this._backTo(r)}_parseComplexPlaceholder(t){let n;const r=this._token;if(!(this._accept(0)&&this._accept(3)&&(n=this._accept(8,!0))))return this._backTo(r);const s=new Sv(Number(n));if(this._accept(1))for(;;){if(this._accept(4))return t.appendChild(s),!0;if(!this._parse(s))return t.appendChild(new f0("${"+n+":")),s.children.forEach(t.appendChild,t),!0}else if(s.index>0&&this._accept(7)){const a=new lH;for(;;){if(this._parseChoiceElement(a)){if(this._accept(2))continue;if(this._accept(7)&&(s.appendChild(a),this._accept(4)))return t.appendChild(s),!0}return this._backTo(r),!1}}else return this._accept(6)?this._parseTransform(s)?(t.appendChild(s),!0):(this._backTo(r),!1):this._accept(4)?(t.appendChild(s),!0):this._backTo(r)}_parseChoiceElement(t){const n=this._token,r=[];for(;!(this._token.type===2||this._token.type===7);){let o;if((o=this._accept(5,!0))?o=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||o:o=this._accept(void 0,!0),!o)return this._backTo(n),!1;r.push(o)}return r.length===0?(this._backTo(n),!1):(t.appendChild(new f0(r.join(""))),!0)}_parseComplexVariable(t){let n;const r=this._token;if(!(this._accept(0)&&this._accept(3)&&(n=this._accept(9,!0))))return this._backTo(r);const s=new FJ(n);if(this._accept(1))for(;;){if(this._accept(4))return t.appendChild(s),!0;if(!this._parse(s))return t.appendChild(new f0("${"+n+":")),s.children.forEach(t.appendChild,t),!0}else return this._accept(6)?this._parseTransform(s)?(t.appendChild(s),!0):(this._backTo(r),!1):this._accept(4)?(t.appendChild(s),!0):this._backTo(r)}_parseTransform(t){const n=new H2o;let r="",o="";for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(6,!0)||s,r+=s;continue}if(this._token.type!==14){r+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(5,!0)||this._accept(6,!0)||s,n.appendChild(new f0(s));continue}if(!(this._parseFormatString(n)||this._parseAnything(n)))return!1}for(;!this._accept(4);){if(this._token.type!==14){o+=this._accept(void 0,!0);continue}return!1}try{n.regexp=new RegExp(r,o)}catch{return!1}return t.transform=n,!0}_parseFormatString(t){const n=this._token;if(!this._accept(0))return!1;let r=!1;this._accept(3)&&(r=!0);const o=this._accept(8,!0);if(o)if(r){if(this._accept(4))return t.appendChild(new Db(Number(o))),!0;if(!this._accept(1))return this._backTo(n),!1}else return t.appendChild(new Db(Number(o))),!0;else return this._backTo(n),!1;if(this._accept(6)){const s=this._accept(9,!0);return!s||!this._accept(4)?(this._backTo(n),!1):(t.appendChild(new Db(Number(o),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return t.appendChild(new Db(Number(o),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return t.appendChild(new Db(Number(o),void 0,void 0,s)),!0}else if(this._accept(13)){const s=this._until(1);if(s){const a=this._until(4);if(a)return t.appendChild(new Db(Number(o),void 0,s,a)),!0}}else{const s=this._until(4);if(s)return t.appendChild(new Db(Number(o),void 0,void 0,s)),!0}return this._backTo(n),!1}_parseAnything(t){return this._token.type!==14?(t.appendChild(new f0(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function WDn(e,t,n){var r,o;return(typeof n.insertText=="string"?n.insertText==="":n.insertText.snippet==="")?{edits:((r=n.additionalEdit)==null?void 0:r.edits)??[]}:{edits:[...t.map(s=>new N9(e,{range:s,text:typeof n.insertText=="string"?wR.escape(n.insertText)+"$0":n.insertText.snippet,insertAsSnippet:!0})),...((o=n.additionalEdit)==null?void 0:o.edits)??[]]}}function VDn(e){function t(a,l){return"mimeType"in a?a.mimeType===l.handledMimeType:!!l.kind&&a.kind.contains(l.kind)}const n=new Map;for(const a of e)for(const l of a.yieldTo??[])for(const d of e)if(d!==a&&t(l,d)){let u=n.get(a);u||(u=[],n.set(a,u)),u.push(d)}if(!n.size)return Array.from(e);const r=new Set,o=[];function s(a){if(!a.length)return[];const l=a[0];if(o.includes(l))return console.warn("Yield to cycle detected",l),a;if(r.has(l))return s(a.slice(1));let d=[];const u=n.get(l);return u&&(o.push(l),d=s(u),o.pop()),r.add(l),[...d,l,...s(a.slice(1))]}return s(Array.from(e))}Dt.white.toString(),Dt.white.toString();const $2o=Object.freeze({allowedTags:{override:["b","i","u","code","span"]},allowedAttributes:{override:["class"]}});let z1e=class extends ft{get onDidClick(){return this._onDidClick.event}constructor(t,n){super(),this._label="",this._onDidClick=this._register(new at),this._onDidEscape=this._register(new at),this.options=n,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!n.secondary);const r=n.secondary?n.buttonSecondaryBackground:n.buttonBackground,o=n.secondary?n.buttonSecondaryForeground:n.buttonForeground;this._element.style.color=o||"",this._element.style.backgroundColor=r||"",n.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof n.title=="string"&&this.setTitle(n.title),typeof n.ariaLabel=="string"&&this._element.setAttribute("aria-label",n.ariaLabel),t.appendChild(this._element),this.enabled=!n.disabled,this._register(Bf.addTarget(this._element)),[rn.CLICK,ma.Tap].forEach(s=>{this._register(wt(this._element,s,a=>{if(!this.enabled){Qo.stop(a);return}this._onDidClick.fire(a)}))}),this._register(wt(this._element,rn.KEY_DOWN,s=>{const a=new Us(s);let l=!1;this.enabled&&(a.equals(3)||a.equals(10))?(this._onDidClick.fire(s),l=!0):a.equals(9)&&(this._onDidEscape.fire(s),this._element.blur(),l=!0),l&&Qo.stop(a,!0)})),this._register(wt(this._element,rn.MOUSE_OVER,s=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register(wt(this._element,rn.MOUSE_OUT,s=>{this.updateBackground(!1)})),this.focusTracker=this._register(uA(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(t){const n=[];for(let r of P9(t))if(typeof r=="string"){if(r=r.trim(),r==="")continue;const o=document.createElement("span");o.textContent=r,n.push(o)}else n.push(r);return n}updateBackground(t){let n;this.options.secondary?n=t?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:n=t?this.options.buttonHoverBackground:this.options.buttonBackground,n&&(this._element.style.backgroundColor=n)}get element(){return this._element}set label(t){var o;if(this._label===t||i8(this._label)&&i8(t)&&Kgo(this._label,t))return;this._element.classList.add("monaco-text-button");const n=this.options.supportShortLabel?this._labelElement:this._element;if(i8(t)){const s=Vie(t,void 0,document.createElement("span"));s.dispose();const a=(o=s.element.querySelector("p"))==null?void 0:o.innerHTML;a?zQn(n,a,$2o):mu(n)}else this.options.supportIcons?mu(n,...this.getContentElements(t)):n.textContent=t;let r="";typeof this.options.title=="string"?r=this.options.title:this.options.title&&(r=A1o(t)),this.setTitle(r),this._setAriaLabel(),this._label=t}get label(){return this._label}_setAriaLabel(){typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):typeof this.options.title=="string"&&this._element.setAttribute("aria-label",this.options.title)}set icon(t){this._setAriaLabel();const n=Array.from(this._element.classList).filter(r=>r.startsWith("codicon-"));this._element.classList.remove(...n),this._element.classList.add(...fi.asClassNameArray(t))}set enabled(t){t?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(t){!this._hover&&t!==""?this._hover=this._register(yp().setupManagedHover(this.options.hoverDelegate??eC("element"),this._element,t)):this._hover&&this._hover.update(t)}};function sxe(e,t){return t&&(e.stack||e.stacktrace)?U(29,"{0}: {1}",jOt(e),UOt(e.stack)||UOt(e.stacktrace)):jOt(e)}function UOt(e){return Array.isArray(e)?e.join(` `):e}function jOt(e){return e.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${e.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof e.code=="string"&&typeof e.errno=="number"&&typeof e.syscall=="string"?U(30,"A system error occurred ({0})",e.message):e.message||U(31,"An unknown error occurred. Please consult the log for more details.")}function H1e(e=null,t=!1){if(!e)return U(32,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){const n=P3(e),r=H1e(n[0],t);return n.length>1?U(33,"{0} ({1} errors in total)",r,n.length):r}if(fu(e))return e;if(e.detail){const n=e.detail;if(n.error)return sxe(n.error,t);if(n.exception)return sxe(n.exception,t)}return e.stack?sxe(e,t):e.message?e.message:U(34,"An unknown error occurred. Please consult the log for more details.")}const Ule=tn,X2o={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class cH extends ft{constructor(t,n,r){super(),this.os=n,this.keyElements=new Set,this.options=r||Object.create(null);const o=this.options.keybindingLabelForeground;this.domNode=Xt(t,Ule(".monaco-keybinding")),o&&(this.domNode.style.color=o),this.hover=this._register(yp().setupManagedHover(eC("mouse"),this.domNode,"")),this.didEverRender=!1,t.appendChild(this.domNode)}set(t,n){this.didEverRender&&this.keybinding===t&&cH.areSame(this.matches,n)||(this.keybinding=t,this.matches=n,this.render())}render(){if(this.clear(),this.keybinding){const t=this.keybinding.getChords();t[0]&&this.renderChord(this.domNode,t[0],this.matches?this.matches.firstPart:null);for(let r=1;r=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},ghe=function(e,t){return function(n,r){t(n,r,e)}};const HDn="acceptSelectedCodeAction",$Dn="previewSelectedCodeAction";class G2o{get templateId(){return"header"}renderTemplate(t){t.classList.add("group-header");const n=document.createElement("span");return t.append(n),{container:t,text:n}}renderElement(t,n,r){var o;r.text.textContent=((o=t.group)==null?void 0:o.title)??t.label??""}disposeTemplate(t){}}class Y2o{get templateId(){return"separator"}renderTemplate(t){t.classList.add("separator");const n=document.createElement("span");return t.append(n),{container:t,text:n}}renderElement(t,n,r){r.text.textContent=t.label??""}disposeTemplate(t){}}let Dje=class{get templateId(){return"action"}constructor(t,n){this._supportsPreview=t,this._keybindingService=n}renderTemplate(t){t.classList.add(this.templateId);const n=document.createElement("div");n.className="icon",t.append(n);const r=document.createElement("span");r.className="title",t.append(r);const o=document.createElement("span");o.className="description",t.append(o);const s=new cH(t,b0);return{container:t,icon:n,text:r,description:o,keybinding:s}}renderElement(t,n,r){var a,l,d;if((a=t.group)!=null&&a.icon?(r.icon.className=fi.asClassName(t.group.icon),t.group.icon.color&&(r.icon.style.color=en(t.group.icon.color.id))):(r.icon.className=fi.asClassName(zt.lightBulb),r.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!t.item||!t.label)return;Yto(!t.hideIcon,r.icon),r.text.textContent=$1e(t.label),t.keybinding?(r.description.textContent=t.keybinding.getLabel(),r.description.style.display="inline",r.description.style.letterSpacing="0.5px"):t.description?(r.description.textContent=$1e(t.description),r.description.style.display="inline"):(r.description.textContent="",r.description.style.display="none");const o=(l=this._keybindingService.lookupKeybinding(HDn))==null?void 0:l.getLabel(),s=(d=this._keybindingService.lookupKeybinding($Dn))==null?void 0:d.getLabel();r.container.classList.toggle("option-disabled",t.disabled),t.tooltip?r.container.title=t.tooltip:t.disabled?r.container.title=t.label:o&&s?this._supportsPreview&&t.canPreview?r.container.title=U(1653,"{0} to Apply, {1} to Preview",o,s):r.container.title=U(1654,"{0} to Apply",o):r.container.title=""}disposeTemplate(t){t.keybinding.dispose()}};Dje=zDn([ghe(1,Do)],Dje);class Z2o extends UIEvent{constructor(){super("acceptSelectedAction")}}class WOt extends UIEvent{constructor(){super("previewSelectedAction")}}function q2o(e){if(e.kind==="action")return e.label}let Bje=class extends ft{constructor(t,n,r,o,s,a,l,d){super(),this._delegate=o,this._contextViewService=a,this._keybindingService=l,this._layoutService=d,this._actionLineHeight=28,this._headerLineHeight=28,this._separatorLineHeight=8,this.cts=this._register(new ja),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const u={getHeight:h=>{switch(h.kind){case"header":return this._headerLineHeight;case"separator":return this._separatorLineHeight;default:return this._actionLineHeight}},getTemplateId:h=>h.kind};this._list=this._register(new _2(t,this.domNode,u,[new Dje(n,this._keybindingService),new G2o,new Y2o],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:q2o},accessibilityProvider:{getAriaLabel:h=>{if(h.kind==="action"){let g=h.label?$1e(h==null?void 0:h.label):"";return h.description&&(g=g+", "+$1e(h.description)),h.disabled&&(g=U(1655,"{0}, Disabled Reason: {1}",g,h.disabled)),g}return null},getWidgetAriaLabel:()=>U(1656,"Action Widget"),getRole:h=>{switch(h.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...s}})),this._list.style(sH),this._register(this._list.onMouseClick(h=>this.onListClick(h))),this._register(this._list.onMouseOver(h=>this.onListHover(h))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(h=>this.onListSelection(h))),this._allMenuItems=r,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(t){return!t.disabled&&t.kind==="action"}hide(t){this._delegate.onHide(t),this.cts.cancel(),this._contextViewService.hideContextView()}layout(t){const n=this._allMenuItems.filter(h=>h.kind==="header").length,r=this._allMenuItems.filter(h=>h.kind==="separator").length,a=this._allMenuItems.length*this._actionLineHeight+n*this._headerLineHeight-n*this._actionLineHeight+r*this._separatorLineHeight-r*this._actionLineHeight;this._list.layout(a);let l=t;if(this._allMenuItems.length>=50)l=380;else{const h=this._allMenuItems.map((g,m)=>{const v=this.domNode.ownerDocument.getElementById(this._list.getElementID(m));if(v){v.style.width="auto";const f=v.getBoundingClientRect().width;return v.style.width="",f}return 0});l=Math.max(...h,t)}const u=Math.min(a,this._layoutService.getContainer(ii(this.domNode)).clientHeight*.7);return this._list.layout(u,l),this.domNode.style.height=`${u}px`,this._list.domFocus(),l}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(t){const n=this._list.getFocus();if(n.length===0)return;const r=n[0],o=this._list.element(r);if(!this.focusCondition(o))return;const s=t?new WOt:new Z2o;this._list.setSelection([r],s)}onListSelection(t){if(!t.elements.length)return;const n=t.elements[0];n.item&&this.focusCondition(n)?this._delegate.onSelect(n.item,t.browserEvent instanceof WOt):this._list.setSelection([])}onFocus(){var o,s;const t=this._list.getFocus();if(t.length===0)return;const n=t[0],r=this._list.element(n);(s=(o=this._delegate).onFocus)==null||s.call(o,r.item)}async onListHover(t){const n=t.element;if(n&&n.item&&this.focusCondition(n)){if(this._delegate.onHover&&!n.disabled&&n.kind==="action"){const r=await this._delegate.onHover(n.item,this.cts.token);n.canPreview=r?r.canPreview:void 0}t.index&&this._list.splice(t.index,1,[n])}this._list.setFocus(typeof t.index=="number"?[t.index]:[])}onListClick(t){t.element&&this.focusCondition(t.element)&&this._list.setFocus([])}};Bje=zDn([ghe(5,wL),ghe(6,Do),ghe(7,tC)],Bje);function $1e(e){return e.replace(/\r\n|\r|\n/g," ")}var K2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},axe=function(e,t){return function(n,r){t(n,r,e)}};Ve("actionBar.toggledBackground",eH,U(1657,"Background color for toggled action items in action bar."));const OR={Visible:new yn("codeActionMenuVisible",!1,U(1658,"Whether the action widget list is visible"))},uE=Cr("actionWidgetService");let yR=class extends ft{get isVisible(){return OR.Visible.getValue(this._contextKeyService)||!1}constructor(t,n,r){super(),this._contextViewService=t,this._contextKeyService=n,this._instantiationService=r,this._list=this._register(new ts)}show(t,n,r,o,s,a,l,d){const u=OR.Visible.bindTo(this._contextKeyService),h=this._instantiationService.createInstance(Bje,t,n,r,o,d);this._contextViewService.showContextView({getAnchor:()=>s,render:g=>(u.set(!0),this._renderWidget(g,h,l??[])),onHide:g=>{u.reset(),this._onWidgetClosed(g)}},a,!1)}acceptSelected(t){var n;(n=this._list.value)==null||n.acceptSelected(t)}focusPrevious(){var t,n;(n=(t=this._list)==null?void 0:t.value)==null||n.focusPrevious()}focusNext(){var t,n;(n=(t=this._list)==null?void 0:t.value)==null||n.focusNext()}hide(t){var n;(n=this._list.value)==null||n.hide(t),this._list.clear()}_renderWidget(t,n,r){var v;const o=document.createElement("div");if(o.classList.add("action-widget"),t.appendChild(o),this._list.value=n,this._list.value)o.appendChild(this._list.value.domNode);else throw new Error("List has no value");const s=new xt,a=document.createElement("div"),l=t.appendChild(a);l.classList.add("context-view-block"),s.add(wt(l,rn.MOUSE_DOWN,f=>f.stopPropagation()));const d=document.createElement("div"),u=t.appendChild(d);u.classList.add("context-view-pointerBlock"),s.add(wt(u,rn.POINTER_MOVE,()=>u.remove())),s.add(wt(u,rn.MOUSE_DOWN,()=>u.remove()));let h=0;if(r.length){const f=this._createActionBar(".action-widget-action-bar",r);f&&(o.appendChild(f.getContainer().parentElement),s.add(f),h=f.getContainer().offsetWidth)}const g=(v=this._list.value)==null?void 0:v.layout(h);o.style.width=`${g}px`;const m=s.add(uA(t));return s.add(m.onDidBlur(()=>this.hide(!0))),s}_createActionBar(t,n){if(!n.length)return;const r=tn(t),o=new g1(r);return o.push(n,{icon:!1,label:!0}),o}_onWidgetClosed(t){var n;(n=this._list.value)==null||n.hide(t)}};yR=K2o([axe(0,wL),axe(1,Qi),axe(2,Yn)],yR);zr(uE,yR,1);const qie=1100;ys(class extends zu{constructor(){super({id:"hideCodeActionWidget",title:_t(1659,"Hide action widget"),precondition:OR.Visible,keybinding:{weight:qie,primary:9,secondary:[1033]}})}run(e){e.get(uE).hide(!0)}});ys(class extends zu{constructor(){super({id:"selectPrevCodeAction",title:_t(1660,"Select previous action"),precondition:OR.Visible,keybinding:{weight:qie,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(e){const t=e.get(uE);t instanceof yR&&t.focusPrevious()}});ys(class extends zu{constructor(){super({id:"selectNextCodeAction",title:_t(1661,"Select next action"),precondition:OR.Visible,keybinding:{weight:qie,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(e){const t=e.get(uE);t instanceof yR&&t.focusNext()}});ys(class extends zu{constructor(){super({id:HDn,title:_t(1662,"Accept selected action"),precondition:OR.Visible,keybinding:{weight:qie,primary:3,secondary:[2137]}})}run(e){const t=e.get(uE);t instanceof yR&&t.acceptSelected()}});ys(class extends zu{constructor(){super({id:$Dn,title:_t(1663,"Preview selected action"),precondition:OR.Visible,keybinding:{weight:qie,primary:2051}})}run(e){const t=e.get(uE);t instanceof yR&&t.acceptSelected(!0)}});var XDn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},HU=function(e,t){return function(n,r){t(n,r,e)}},Rje,PD;let Ije=(PD=class extends ft{constructor(t,n,r,o,s,a,l,d,u,h,g){super(),this.typeId=t,this.editor=n,this.showCommand=o,this.range=s,this.edits=a,this.onSelectNewEdit=l,this.additionalActions=d,this._keybindingService=h,this._actionWidgetService=g,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=r.bindTo(u),this.visibleContext.set(!0),this._register(Hn(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(Hn(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(m=>{this.dispose()})),this._register(an.runAndSubscribe(h.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var n;const t=(n=this._keybindingService.lookupKeybinding(this.showCommand.id))==null?void 0:n.getLabel();this.button.element.title=this.showCommand.label+(t?` (${t})`:"")}create(){this.domNode=tn(".post-edit-widget"),this.button=this._register(new z1e(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(wt(this.domNode,rn.CLICK,()=>this.showSelector()))}getId(){return Rje.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){const t=Kl(this.button.element),n={x:t.left+t.width,y:t.top+t.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((r,o)=>({kind:"action",item:r,label:r.title,disabled:!1,canPreview:!1,group:{title:"",icon:fi.fromId(o===this.edits.activeEditIndex?zt.check.id:zt.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:r=>{this._actionWidgetService.hide(!1);const o=this.edits.allEdits.findIndex(s=>s===r);if(o!==this.edits.activeEditIndex)return this.onSelectNewEdit(o)}},n,this.editor.getDomNode()??void 0,this.additionalActions)}},Rje=PD,PD.baseId="editor.widget.postEditWidget",PD);Ije=Rje=XDn([HU(8,Qi),HU(9,Do),HU(10,uE)],Ije);let X1e=class extends ft{constructor(t,n,r,o,s,a,l,d){super(),this._id=t,this._editor=n,this._visibleContext=r,this._showCommand=o,this._getAdditionalActions=s,this._instantiationService=a,this._bulkEditService=l,this._notificationService=d,this._currentWidget=this._register(new ts),this._register(an.any(n.onDidChangeModel,n.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(t,n,r,o,s){if(!t.length||!this._editor.hasModel())return;const a=this._editor.getModel(),l=n.allEdits.at(n.activeEditIndex);if(!l)return;const d=async p=>{const b=this._editor.getModel();b&&(await b.undo(),this.applyEditAndShowIfNeeded(t,{activeEditIndex:p,allEdits:n.allEdits},r,o,s))},u=(p,b)=>{C2(p)||(this._notificationService.error(b),r&&this.show(t[0],n,d))},h=new z8(this._editor,3,void 0,s);let g;try{g=await reo(o(l,h.token),h.token)}catch(p){return u(p,U(937,`Error resolving edit '{0}': {1}`,l.title,H1e(p)))}finally{h.dispose()}if(s.isCancellationRequested)return;const m=WDn(a.uri,t,g),v=t[0],f=a.deltaDecorations([],[{range:v,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let k,A;try{k=await this._bulkEditService.apply(m,{editor:this._editor,token:s}),A=a.getDecorationRange(f[0])}catch(p){return u(p,U(938,`Error applying edit '{0}': -{1}`,l.title,H1e(p)))}finally{a.deltaDecorations(f,[])}s.isCancellationRequested||r&&k.isApplied&&n.allEdits.length>1&&this.show(A??v,n,d)}show(t,n,r){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(Ije,this._id,this._editor,this._visibleContext,this._showCommand,t,n,r,this._getAdditionalActions()))}clear(){this._currentWidget.clear()}tryShowSelector(){var t;(t=this._currentWidget.value)==null||t.showSelector()}};X1e=XDn([HU(5,Yn),HU(6,Yie),HU(7,ic)],X1e);var J2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},GC=function(e,t){return function(n,r){t(n,r,e)}},n4;const GDn="editor.changePasteType",evo="editor.pasteAs.preferences",Wtt=new yn("pasteWidgetVisible",!1,U(917,"Whether the paste widget is showing")),lxe="application/vnd.code.copymetadata";var FD;let $8=(FD=class extends ft{static get(t){return t.getContribution(n4.ID)}constructor(t,n,r,o,s,a,l,d,u,h){super(),this._logService=r,this._bulkEditService=o,this._clipboardService=s,this._commandService=a,this._configService=l,this._languageFeaturesService=d,this._quickInputService=u,this._progressService=h,this._editor=t;const g=t.getContainerDomNode();this._register(wt(g,"copy",m=>this.handleCopy(m))),this._register(wt(g,"cut",m=>this.handleCopy(m))),this._register(wt(g,"paste",m=>this.handlePaste(m),!0)),this._pasteProgressManager=this._register(new W1e("pasteIntoEditor",t,n)),this._postPasteWidgetManager=this._register(n.createInstance(X1e,"pasteIntoEditor",t,Wtt,{id:GDn,label:U(918,"Show paste options...")},()=>n4._configureDefaultAction?[n4._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(t){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:t},await this._commandService.executeCommand("editor.action.clipboardPasteAction")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(97).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(t){var A,p,b,w;let n=null;if(t.clipboardData){const[O,y]=hD.getTextData(t.clipboardData),C=y||ay.INSTANCE.get(O);n=(C==null?void 0:C.id)||null,this._logService.trace("CopyPasteController#handleCopy for id : ",n," with text.length : ",O.length)}else this._logService.trace("CopyPasteController#handleCopy");if(!this._editor.hasTextFocus()||((p=(A=this._clipboardService).clearInternalState)==null||p.call(A),!t.clipboardData||!this.isPasteAsEnabled()))return;const r=this._editor.getModel(),o=this._editor.getSelections();if(!r||!(o!=null&&o.length))return;const s=this._editor.getOption(45);let a=o;const l=o.length===1&&o[0].isEmpty();if(l){if(!s)return;a=[new Ee(a[0].startLineNumber,1,a[0].startLineNumber,1+r.getLineLength(a[0].startLineNumber))]}const d=(b=this._editor._getViewModel())==null?void 0:b.getPlainTextToCopy(o,s,mh),h={multicursorText:Array.isArray(d)?d:null,pasteOnNewLine:l,mode:null},g=this._languageFeaturesService.documentPasteEditProvider.ordered(r).filter(O=>!!O.prepareDocumentPaste);if(!g.length){this.setCopyMetadata(t.clipboardData,{defaultPastePayload:h});return}const m=QDn(t.clipboardData),v=g.flatMap(O=>O.copyMimeTypes??[]),f=n??SI();this.setCopyMetadata(t.clipboardData,{id:f,providerCopyMimeTypes:v,defaultPastePayload:h});const k=g.map(O=>({providerMimeTypes:O.copyMimeTypes,operation:Fd(y=>O.prepareDocumentPaste(r,a,m,y).catch(C=>{console.error(C)}))}));(w=n4._currentCopyOperation)==null||w.operations.forEach(O=>O.operation.cancel()),n4._currentCopyOperation={handle:f,operations:k}}async handlePaste(t){var u,h,g;if(t.clipboardData){const[m,v]=hD.getTextData(t.clipboardData),f=v||ay.INSTANCE.get(m);this._logService.trace("CopyPasteController#handlePaste for id : ",f==null?void 0:f.id)}else this._logService.trace("CopyPasteController#handlePaste");if(!t.clipboardData||!this._editor.hasTextFocus())return;(u=D0.get(this._editor))==null||u.closeMessage(),(h=this._currentPasteOperation)==null||h.cancel(),this._currentPasteOperation=void 0;const n=this._editor.getModel(),r=this._editor.getSelections();if(!(r!=null&&r.length)||!n||this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const o=this.fetchCopyMetadata(t);this._logService.trace("CopyPasteController#handlePaste with metadata : ",o==null?void 0:o.id," and text.length : ",t.clipboardData.getData("text/plain").length);const s=DDn(t.clipboardData);s.delete(lxe);const a=Array.from(t.clipboardData.files).map(m=>m.type),l=[...t.clipboardData.types,...a,...(o==null?void 0:o.providerCopyMimeTypes)??[],ac.uriList],d=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(m=>{var f,k;const v=(f=this._pasteAsActionContext)==null?void 0:f.preferred;return v&&!this.providerMatchesPreference(m,v)?!1:(k=m.pasteMimeTypes)==null?void 0:k.some(A=>MOt(A,l))});if(!d.length){(g=this._pasteAsActionContext)!=null&&g.preferred&&(this.showPasteAsNoEditMessage(r,this._pasteAsActionContext.preferred),t.preventDefault(),t.stopImmediatePropagation());return}t.preventDefault(),t.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,d,r,s,o):this.doPasteInline(d,r,s,o,t)}showPasteAsNoEditMessage(t,n){var o;const r="only"in n?n.only.value:"preferences"in n?n.preferences.length?n.preferences.map(s=>s.value).join(", "):U(919,"empty"):n.providerId;(o=D0.get(this._editor))==null||o.showMessage(U(920,"No paste edits for '{0}' found",r),t[0].getStartPosition())}doPasteInline(t,n,r,o,s){this._logService.trace("CopyPasteController#doPasteInline");const a=this._editor;if(!a.hasModel())return;const l=new z8(a,3,void 0),d=Fd(async u=>{const h=this._editor;if(!h.hasModel())return;const g=h.getModel(),m=new xt,v=m.add(new ja(u));m.add(l.token.onCancellationRequested(()=>v.cancel()));const f=v.token;try{if(await this.mergeInDataFromCopy(t,r,o,f),f.isCancellationRequested)return;const k=t.filter(b=>this.isSupportedPasteProvider(b,r));if(!k.length||k.length===1&&k[0]instanceof bR)return this.applyDefaultPasteHandler(r,o,f,s);const A={triggerKind:hJ.Automatic},p=await this.getPasteEdits(k,r,g,n,A,f);if(m.add(p),f.isCancellationRequested)return;if(p.edits.length===1&&p.edits[0].provider instanceof bR)return this.applyDefaultPasteHandler(r,o,f,s);if(p.edits.length){const b=h.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(n,{activeEditIndex:this.getInitialActiveEditIndex(g,p.edits),allEdits:p.edits},b,async(w,O)=>{if(!w.provider.resolveDocumentPasteEdit)return w;const y=w.provider.resolveDocumentPasteEdit(w,O),C=new pI,_=await this._pasteProgressManager.showWhile(n[0].getEndPosition(),U(921,"Resolving paste edit for '{0}'. Click to cancel",w.title),YW(Promise.race([C.p,y]),O),{cancel:()=>C.cancel()},0);return _&&(w.insertText=_.insertText,w.additionalEdit=_.additionalEdit),w},f)}await this.applyDefaultPasteHandler(r,o,f,s)}finally{m.dispose(),this._currentPasteOperation===d&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(n[0].getEndPosition(),U(922,"Running paste handlers. Click to cancel and do basic paste"),d,{cancel:async()=>{d.cancel(),!l.token.isCancellationRequested&&await this.applyDefaultPasteHandler(r,o,l.token,s)}}).finally(()=>{l.dispose()}),this._currentPasteOperation=d}showPasteAsPick(t,n,r,o,s){this._logService.trace("CopyPasteController#showPasteAsPick");const a=Fd(async l=>{var m;const d=this._editor;if(!d.hasModel())return;const u=d.getModel(),h=new xt,g=h.add(new z8(d,3,void 0,l));try{if(await this.mergeInDataFromCopy(n,o,s,g.token),g.token.isCancellationRequested)return;let v=n.filter(b=>this.isSupportedPasteProvider(b,o,t));t&&(v=v.filter(b=>this.providerMatchesPreference(b,t)));const f={triggerKind:hJ.PasteAs,only:t&&"only"in t?t.only:void 0};let k=h.add(await this.getPasteEdits(v,o,u,r,f,g.token));if(g.token.isCancellationRequested)return;if(t&&(k={edits:k.edits.filter(b=>"only"in t?t.only.contains(b.kind):"preferences"in t?t.preferences.some(w=>w.contains(b.kind)):t.providerId===b.provider.id),dispose:k.dispose}),!k.edits.length){t&&this.showPasteAsNoEditMessage(r,t);return}let A;if(t)A=k.edits.at(0);else{const b={id:"editor.pasteAs.default",label:U(923,"Configure default paste action"),edit:void 0},w=await this._quickInputService.pick([...k.edits.map(O=>{var y;return{label:O.title,description:(y=O.kind)==null?void 0:y.value,edit:O}}),...n4._configureDefaultAction?[{type:"separator"},{label:n4._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:U(924,"Select Paste Action")});if(w===b){(m=n4._configureDefaultAction)==null||m.run();return}A=w==null?void 0:w.edit}if(!A)return;const p=WDn(u.uri,r,A);await this._bulkEditService.apply(p,{editor:this._editor})}finally{h.dispose(),this._currentPasteOperation===a&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:U(925,"Running paste handlers")},()=>a)}setCopyMetadata(t,n){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",n.id),t.setData(lxe,JSON.stringify(n))}fetchCopyMetadata(t){if(this._logService.trace("CopyPasteController#fetchCopyMetadata"),!t.clipboardData)return;const n=t.clipboardData.getData(lxe);if(n)try{return JSON.parse(n)}catch{return}const[r,o]=hD.getTextData(t.clipboardData);if(o)return{defaultPastePayload:{mode:o.mode,multicursorText:o.multicursorText??null,pasteOnNewLine:!!o.isFromEmptySelection}}}async mergeInDataFromCopy(t,n,r,o){var s;if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",r==null?void 0:r.id),r!=null&&r.id&&((s=n4._currentCopyOperation)==null?void 0:s.handle)===r.id){const a=n4._currentCopyOperation.operations.filter(d=>t.some(u=>u.pasteMimeTypes.some(h=>MOt(h,d.providerMimeTypes)))).map(d=>d.operation),l=await Promise.all(a);if(o.isCancellationRequested)return;for(const d of l.reverse())if(d)for(const[u,h]of d)n.replace(u,h)}if(!n.has(ac.uriList)){const a=await this._clipboardService.readResources();if(o.isCancellationRequested)return;a.length&&n.append(ac.uriList,Mtt(k3e.create(a)))}}async getPasteEdits(t,n,r,o,s,a){const l=new xt,d=await YW(Promise.all(t.map(async h=>{var g,m;try{const v=await((g=h.provideDocumentPasteEdits)==null?void 0:g.call(h,r,o,n,s,a));return v&&l.add(v),(m=v==null?void 0:v.edits)==null?void 0:m.map(f=>({...f,provider:h}))}catch(v){C2(v)||console.error(v);return}})),a),u=P3(d??[]).flat().filter(h=>!s.only||s.only.contains(h.kind));return{edits:VDn(u),dispose:()=>l.dispose()}}async applyDefaultPasteHandler(t,n,r,o){const s=t.get(ac.text)??t.get("text"),a=await(s==null?void 0:s.asString())??"";if(r.isCancellationRequested)return;const l={clipboardEvent:o,text:a,pasteOnNewLine:(n==null?void 0:n.defaultPastePayload.pasteOnNewLine)??!1,multicursorText:(n==null?void 0:n.defaultPastePayload.multicursorText)??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",n==null?void 0:n.id),this._editor.trigger("keyboard","paste",l)}isSupportedPasteProvider(t,n,r){var o;return(o=t.pasteMimeTypes)!=null&&o.some(s=>n.matches(s))?!r||this.providerMatchesPreference(t,r):!1}providerMatchesPreference(t,n){return"only"in n?t.providedPasteEditKinds.some(r=>n.only.contains(r)):"preferences"in n?n.preferences.some(r=>n.preferences.some(o=>o.contains(r))):t.id===n.providerId}getInitialActiveEditIndex(t,n){const r=this._configService.getValue(evo,{resource:t.uri});for(const o of Array.isArray(r)?r:[]){const s=new El(o),a=n.findIndex(l=>s.contains(l.kind));if(a>=0)return a}return 0}},n4=FD,FD.ID="editor.contrib.copyPasteActionController",FD);$8=n4=J2o([GC(1,Yn),GC(2,va),GC(3,Yie),GC(4,U0),GC(5,ba),GC(6,ar),GC(7,Nn),GC(8,Rf),GC(9,cQn)],$8);const CR="9_cutcopypaste",tvo=v3||document.queryCommandSupported("cut"),YDn=v3||document.queryCommandSupported("copy"),nvo=typeof navigator.clipboard>"u"||k1?document.queryCommandSupported("paste"):!0;function Vtt(e){return e.register(),e}const ivo=tvo?Vtt(new Xz({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:v3?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:Wn.MenubarEditMenu,group:"2_ccp",title:U(813,"Cu&&t"),order:1},{menuId:Wn.EditorContext,group:CR,title:U(814,"Cut"),when:$e.writable,order:1},{menuId:Wn.CommandPalette,group:"",title:U(815,"Cut"),order:1},{menuId:Wn.SimpleEditorContext,group:CR,title:U(816,"Cut"),when:$e.writable,order:1}]})):void 0,rvo=YDn?Vtt(new Xz({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:v3?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:Wn.MenubarEditMenu,group:"2_ccp",title:U(817,"&&Copy"),order:2},{menuId:Wn.EditorContext,group:CR,title:U(818,"Copy"),order:2},{menuId:Wn.CommandPalette,group:"",title:U(819,"Copy"),order:1},{menuId:Wn.SimpleEditorContext,group:CR,title:U(820,"Copy"),order:2}]})):void 0;Iu.appendMenuItem(Wn.MenubarEditMenu,{submenu:Wn.MenubarCopy,title:_t(825,"Copy As"),group:"2_ccp",order:3});Iu.appendMenuItem(Wn.EditorContext,{submenu:Wn.EditorContextCopy,title:_t(826,"Copy As"),group:CR,order:3});Iu.appendMenuItem(Wn.EditorContext,{submenu:Wn.EditorContextShare,title:_t(827,"Share"),group:"11_share",order:-1,when:Ft.and(Ft.notEquals("resourceScheme","output"),$e.editorTextFocus)});Iu.appendMenuItem(Wn.ExplorerContext,{submenu:Wn.ExplorerContextShare,title:_t(828,"Share"),group:"11_share",order:-1});const cxe=nvo?Vtt(new Xz({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:v3?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:Wn.MenubarEditMenu,group:"2_ccp",title:U(821,"&&Paste"),order:4},{menuId:Wn.EditorContext,group:CR,title:U(822,"Paste"),when:$e.writable,order:4},{menuId:Wn.CommandPalette,group:"",title:U(823,"Paste"),order:1},{menuId:Wn.SimpleEditorContext,group:CR,title:U(824,"Paste"),when:$e.writable,order:4}]})):void 0;class ovo extends Bn{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:_t(829,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,weight:100}})}run(t,n){const r=t.get(va);r.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!(!n.hasModel()||!n.getOption(45)&&n.getSelection().isEmpty())&&(HNe.forceCopyWithSyntaxHighlighting=!0,n.focus(),r.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),n.getContainerDomNode().ownerDocument.execCommand("copy"),r.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),HNe.forceCopyWithSyntaxHighlighting=!1)}}function ZDn(e,t){e&&(e.addImplementation(1e4,"code-editor",(n,r)=>{const o=n.get(va);o.trace("registerExecCommandImpl (addImplementation code-editor for : ",t,")");const s=n.get(yo).getFocusedCodeEditor();if(s&&s.hasTextFocus()){const a=s.getOption(45),l=s.getSelection();return l&&l.isEmpty()&&!a||(s.getOption(170)&&t==="cut"?(VOt(s),o.trace("registerExecCommandImpl (before execCommand copy)"),s.getContainerDomNode().ownerDocument.execCommand("copy"),s.trigger(void 0,"cut",void 0),o.trace("registerExecCommandImpl (after execCommand copy)")):(VOt(s),o.trace("registerExecCommandImpl (before execCommand "+t+")"),s.getContainerDomNode().ownerDocument.execCommand(t),o.trace("registerExecCommandImpl (after execCommand "+t+")"))),!0}return!1}),e.addImplementation(0,"generic-dom",(n,r)=>{const o=n.get(va);return o.trace("registerExecCommandImpl (addImplementation generic-dom for : ",t,")"),o.trace("registerExecCommandImpl (before execCommand "+t+")"),Eie().execCommand(t),o.trace("registerExecCommandImpl (after execCommand "+t+")"),!0}))}function VOt(e){if(e.getOption(170)){const n=zet.get(e.getId());n&&n.onWillCopy()}}ZDn(ivo,"cut");ZDn(rvo,"copy");cxe&&(cxe.addImplementation(1e4,"code-editor",(e,t)=>{const n=e.get(va);n.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");const r=e.get(yo),o=e.get(U0),s=e.get(Nf),a=e.get(k2o),l=r.getFocusedCodeEditor();if(l&&l.hasModel()&&l.hasTextFocus()){if(l.getOption(170)){const g=zet.get(l.getId());g&&g.onWillPaste()}const u=vu.create(!0);n.trace("registerExecCommandImpl (before triggerPaste)");const h=o.triggerPaste(vs().vscodeWindowId);return h?(n.trace("registerExecCommandImpl (triggerPaste defined)"),h.then(async()=>{var g;if(n.trace("registerExecCommandImpl (after triggerPaste)"),a.quality!=="stable"){const m=u.elapsed();s.publicLog2("editorAsyncPaste",{duration:m})}return((g=$8.get(l))==null?void 0:g.finishedPaste())??Promise.resolve()})):(n.trace("registerExecCommandImpl (triggerPaste undefined)"),qy?(n.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{const g=await o.readText();if(g!==""){const m=ay.INSTANCE.get(g);let v=!1,f=null,k=null;m&&(v=l.getOption(45)&&!!m.isFromEmptySelection,f=typeof m.multicursorText<"u"?m.multicursorText:null,k=m.mode),n.trace("registerExecCommandImpl (clipboardText.length : ",g.length," id : ",m==null?void 0:m.id,")"),l.trigger("keyboard","paste",{text:g,pasteOnNewLine:v,multicursorText:f,mode:k})}})()):!0)}return!1}),cxe.addImplementation(0,"generic-dom",(e,t)=>(e.get(va).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),e.get(U0).triggerPaste(vs().vscodeWindowId)??!1)));YDn&&un(ovo);const v3e=Object.freeze({id:"editor",order:5,type:"object",title:U(147,"Editor"),scope:6}),G1e={...v3e,properties:{"editor.tabSize":{type:"number",default:jh.tabSize,minimum:1,maximum:100,markdownDescription:U(148,"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:U(149,'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:jh.insertSpaces,markdownDescription:U(150,"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:jh.detectIndentation,markdownDescription:U(151,"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:jh.trimAutoWhitespace,description:U(152,"Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:jh.largeFileOptimizations,description:U(153,"Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[U(154,"Turn off Word Based Suggestions."),U(155,"Only suggest words from the active document."),U(156,"Suggest words from all open documents of the same language."),U(157,"Suggest words from all open documents.")],description:U(158,"Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[U(159,"Semantic highlighting enabled for all color themes."),U(160,"Semantic highlighting disabled for all color themes."),U(161,"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:U(162,"Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:U(163,"Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:U(164,"Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!0,description:U(165,"Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:U(166,"Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:U(167,"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.experimental.treeSitterTelemetry":{type:"boolean",default:!1,markdownDescription:U(168,"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `#editor.experimental.preferTreeSitter#` for specific languages will take precedence."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.css":{type:"boolean",default:!1,markdownDescription:U(169,"Controls whether tree sitter parsing should be turned on for css. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for css."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.typescript":{type:"boolean",default:!1,markdownDescription:U(170,"Controls whether tree sitter parsing should be turned on for typescript. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for typescript."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.ini":{type:"boolean",default:!1,markdownDescription:U(171,"Controls whether tree sitter parsing should be turned on for ini. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for ini."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.regex":{type:"boolean",default:!1,markdownDescription:U(172,"Controls whether tree sitter parsing should be turned on for regex. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for regex."),tags:["experimental"],experiment:{mode:"auto"}},"editor.language.brackets":{type:["array","null"],default:null,description:U(173,"Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:U(174,"The opening bracket character or string sequence.")},{type:"string",description:U(175,"The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:U(176,"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:U(177,"The opening bracket character or string sequence.")},{type:"string",description:U(178,"The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:Oh.maxComputationTime,description:U(179,"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:Oh.maxFileSize,description:U(180,"Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:Oh.renderSideBySide,description:U(181,"Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:Oh.renderSideBySideInlineBreakpoint,description:U(182,"If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:Oh.useInlineViewWhenSpaceIsLimited,description:U(183,"If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:Oh.renderMarginRevertIcon,description:U(184,"When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:Oh.renderGutterMenu,description:U(185,"When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:Oh.ignoreTrimWhitespace,description:U(186,"When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:Oh.renderIndicators,description:U(187,"Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:Oh.diffCodeLens,description:U(188,"Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:Oh.diffWordWrap,markdownEnumDescriptions:[U(189,"Lines will never wrap."),U(190,"Lines will wrap at the viewport width."),U(191,"Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:Oh.diffAlgorithm,markdownEnumDescriptions:[U(192,"Uses the legacy diffing algorithm."),U(193,"Uses the advanced diffing algorithm.")]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:Oh.hideUnchangedRegions.enabled,markdownDescription:U(194,"Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:Oh.hideUnchangedRegions.revealLineCount,markdownDescription:U(195,"Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:Oh.hideUnchangedRegions.minimumLineCount,markdownDescription:U(196,"Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:Oh.hideUnchangedRegions.contextLineCount,markdownDescription:U(197,"Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:Oh.experimental.showMoves,markdownDescription:U(198,"Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:Oh.experimental.showEmptyDecorations,description:U(199,"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")},"diffEditor.experimental.useTrueInlineView":{type:"boolean",default:Oh.experimental.useTrueInlineView,description:U(200,"If enabled and the editor uses the inline view, word changes are rendered inline.")}}};function svo(e){return typeof e.type<"u"||typeof e.anyOf<"u"}for(const e of fN){const t=e.schema;if(typeof t<"u")if(svo(t))G1e.properties[`editor.${e.name}`]=t;else for(const n in t)Object.hasOwnProperty.call(t,n)&&(G1e.properties[n]=t[n])}let jle=null;function qDn(){return jle===null&&(jle=Object.create(null),Object.keys(G1e.properties).forEach(e=>{jle[e]=!0})),jle}function avo(e){return qDn()[`editor.${e}`]||!1}function lvo(e){return qDn()[`diffEditor.${e}`]||!1}const cvo=Ql.as(F3.Configuration);cvo.registerConfiguration(G1e);const Ma=new class{constructor(){this.QuickFix=new El("quickfix"),this.Refactor=new El("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new El("notebook"),this.Source=new El("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var j0;(function(e){e.Refactor="refactor",e.RefactorPreview="refactor preview",e.Lightbulb="lightbulb",e.Default="other (default)",e.SourceAction="source action",e.QuickFix="quick fix action",e.FixAll="fix all",e.OrganizeImports="organize imports",e.AutoFix="auto fix",e.QuickFixHover="quick fix hover window",e.OnSave="save participants",e.ProblemsView="problems view"})(j0||(j0={}));function dvo(e,t){return!(e.include&&!e.include.intersects(t)||e.excludes&&e.excludes.some(n=>KDn(t,n,e.include))||!e.includeSourceActions&&Ma.Source.contains(t))}function uvo(e,t){const n=t.kind?new El(t.kind):void 0;return!(e.include&&(!n||!e.include.contains(n))||e.excludes&&n&&e.excludes.some(r=>KDn(n,r,e.include))||!e.includeSourceActions&&n&&Ma.Source.contains(n)||e.onlyIncludePreferredActions&&!t.isPreferred)}function KDn(e,t,n){return!(!t.contains(e)||n&&t.contains(n))}class _O{static fromUser(t,n){return!t||typeof t!="object"?new _O(n.kind,n.apply,!1):new _O(_O.getKindFromUser(t,n.kind),_O.getApplyFromUser(t,n.apply),_O.getPreferredUser(t))}static getApplyFromUser(t,n){switch(typeof t.apply=="string"?t.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return n}}static getKindFromUser(t,n){return typeof t.kind=="string"?new El(t.kind):n}static getPreferredUser(t){return typeof t.preferred=="boolean"?t.preferred:!1}constructor(t,n,r){this.kind=t,this.apply=n,this.preferred=r}}class hvo{constructor(t,n,r){this.action=t,this.provider=n,this.highlightRange=r}async resolve(t){var n;if((n=this.provider)!=null&&n.resolveCodeAction&&!this.action.edit){let r;try{r=await this.provider.resolveCodeAction(this.action,t)}catch(o){Nc(o)}r&&(this.action.edit=r.edit)}return this}}const JDn="editor.action.codeAction",ztt="editor.action.quickFix",eBn="editor.action.autoFix",tBn="editor.action.refactor",nBn="editor.action.sourceAction",Mje="editor.action.organizeImports",Pje="editor.action.fixAll",fvo=1e3;class TZ extends ft{static codeActionsPreferredComparator(t,n){return t.isPreferred&&!n.isPreferred?-1:!t.isPreferred&&n.isPreferred?1:0}static codeActionsComparator({action:t},{action:n}){return t.isAI&&!n.isAI?1:!t.isAI&&n.isAI?-1:yg(t.diagnostics)?yg(n.diagnostics)?TZ.codeActionsPreferredComparator(t,n):-1:yg(n.diagnostics)?1:TZ.codeActionsPreferredComparator(t,n)}constructor(t,n,r){super(),this.documentation=n,this._register(r),this.allActions=[...t].sort(TZ.codeActionsComparator),this.validActions=this.allActions.filter(({action:o})=>!o.disabled)}get hasAutoFix(){return this.validActions.some(({action:t})=>!!t.kind&&Ma.QuickFix.contains(new El(t.kind))&&!!t.isPreferred)}get hasAIFix(){return this.validActions.some(({action:t})=>!!t.isAI)}get allAIFixes(){return this.validActions.every(({action:t})=>!!t.isAI)}}const zOt={actions:[],documentation:void 0};async function ON(e,t,n,r,o,s){var k;const a=r.filter||{},l={...a,excludes:[...a.excludes||[],Ma.Notebook]},d={only:(k=a.include)==null?void 0:k.value,trigger:r.type},u=new Ntt(t,s),h=r.type===2,g=gvo(e,t,h?l:a),m=new xt,v=g.map(async A=>{const p=setTimeout(()=>o.report(A),1250);try{const b=await A.provideCodeActions(t,n,d,u.token);if(u.token.isCancellationRequested)return b==null||b.dispose(),zOt;b&&m.add(b);const w=((b==null?void 0:b.actions)||[]).filter(y=>y&&uvo(a,y)),O=kvo(A,w,a.include);return{actions:w.map(y=>new hvo(y,A)),documentation:O}}catch(b){if(C2(b))throw b;return Nc(b),zOt}finally{clearTimeout(p)}}),f=e.onDidChange(()=>{const A=e.all(t);Na(A,g)||u.cancel()});try{const A=await Promise.all(v),p=A.map(O=>O.actions).flat(),b=[...P3(A.map(O=>O.documentation)),...mvo(e,t,r,p)],w=new TZ(p,b,m);return m.add(w),w}catch(A){throw m.dispose(),A}finally{f.dispose(),u.dispose()}}function gvo(e,t,n){return e.all(t).filter(r=>r.providedCodeActionKinds?r.providedCodeActionKinds.some(o=>dvo(n,new El(o))):!0)}function*mvo(e,t,n,r){var o,s,a;if(t&&r.length)for(const l of e.all(t))l._getAdditionalMenuItems&&(yield*(a=l._getAdditionalMenuItems)==null?void 0:a.call(l,{trigger:n.type,only:(s=(o=n.filter)==null?void 0:o.include)==null?void 0:s.value},r.map(d=>d.action)))}function kvo(e,t,n){if(!e.documentation)return;const r=e.documentation.map(o=>({kind:new El(o.kind),command:o.command}));if(n){let o;for(const s of r)s.kind.contains(n)&&(o?o.kind.contains(s.kind)&&(o=s):o=s);if(o)return o==null?void 0:o.command}for(const o of t)if(o.kind){for(const s of r)if(s.kind.contains(new El(o.kind)))return s.command}}var p9;(function(e){e.OnSave="onSave",e.FromProblemsView="fromProblemsView",e.FromCodeActions="fromCodeActions",e.FromAILightbulb="fromAILightbulb",e.FromProblemsHover="fromProblemsHover"})(p9||(p9={}));async function vvo(e,t,n,r,o=Er.None){var h,g;const s=e.get(Yie),a=e.get(ba),l=e.get(Nf),d=e.get(ic),u=e.get(pL);if(l.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred,reason:n}),u.playSignal(nm.codeActionTriggered),await t.resolve(o),!o.isCancellationRequested&&!((h=t.action.edit)!=null&&h.edits.length&&!(await s.apply(t.action.edit,{editor:r==null?void 0:r.editor,label:t.action.title,quotableLabel:t.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:n!==p9.OnSave,showPreview:r==null?void 0:r.preview,reason:Af.codeAction({kind:t.action.kind,providerId:r3e.fromExtensionId((g=t.provider)==null?void 0:g.extensionId)})})).isApplied)){if(t.action.command)try{await a.executeCommand(t.action.command.id,...t.action.command.arguments||[])}catch(m){const v=Avo(m);d.error(typeof v=="string"?v:U(830,"An unknown error occurred while applying the code action"))}setTimeout(()=>u.playSignal(nm.codeActionApplied),fvo)}}function Avo(e){return typeof e=="string"?e:e instanceof Error&&typeof e.message=="string"?e.message:void 0}co.registerCommand("_executeCodeActionProvider",async function(e,t,n,r,o){if(!(t instanceof vi))throw Gv();const{codeActionProvider:s}=e.get(Nn),a=e.get(ml).getModel(t);if(!a)throw Gv();const l=Qn.isISelection(n)?Qn.liftSelection(n):Ee.isIRange(n)?a.validateRange(n):void 0;if(!l)throw Gv();const d=typeof r=="string"?new El(r):void 0,u=await ON(s,a,l,{type:1,triggerAction:j0.Default,filter:{includeSourceActions:!0,include:d}},qb.None,Er.None),h=[],g=Math.min(u.validActions.length,typeof o=="number"?o:0);for(let m=0;mm.action)}finally{setTimeout(()=>u.dispose(),100)}});var xl;(function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"})(xl||(xl={}));(function(e){function t(d,u){return u-d}e.compare=t;const n=Object.create(null);n[e.Error]=U(1732,"Error"),n[e.Warning]=U(1733,"Warning"),n[e.Info]=U(1734,"Info");function r(d){return n[d]||""}e.toString=r;const o=Object.create(null);o[e.Error]=U(1735,"Errors"),o[e.Warning]=U(1736,"Warnings"),o[e.Info]=U(1737,"Infos");function s(d){return o[d]||""}e.toStringPlural=s;function a(d){switch(d){case Sl.Error:return e.Error;case Sl.Warning:return e.Warning;case Sl.Info:return e.Info;case Sl.Ignore:return e.Hint}}e.fromSeverity=a;function l(d){switch(d){case e.Error:return Sl.Error;case e.Warning:return Sl.Warning;case e.Info:return Sl.Info;case e.Hint:return Sl.Ignore}}e.toSeverity=l})(xl||(xl={}));var Y1e;(function(e){const t="";function n(o){return r(o,!0)}e.makeKey=n;function r(o,s){const a=[t];return o.source?a.push(o.source.replace("¦","\\¦")):a.push(t),o.code?typeof o.code=="string"?a.push(o.code.replace("¦","\\¦")):a.push(o.code.value.replace("¦","\\¦")):a.push(t),o.severity!==void 0&&o.severity!==null?a.push(xl.toString(o.severity)):a.push(t),o.message&&s?a.push(o.message.replace("¦","\\¦")):a.push(t),o.startLineNumber!==void 0&&o.startLineNumber!==null?a.push(o.startLineNumber.toString()):a.push(t),o.startColumn!==void 0&&o.startColumn!==null?a.push(o.startColumn.toString()):a.push(t),o.endLineNumber!==void 0&&o.endLineNumber!==null?a.push(o.endLineNumber.toString()):a.push(t),o.endColumn!==void 0&&o.endColumn!==null?a.push(o.endColumn.toString()):a.push(t),a.push(t),a.join("¦")}e.makeKeyOptionalMessage=r})(Y1e||(Y1e={}));const nC=Cr("markerService");var pvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},bvo=function(e,t){return function(n,r){t(n,r,e)}},Fje,ND;let Nje=(ND=class{constructor(t){this.keybindingService=t}getResolver(){const t=new zh(()=>this.keybindingService.getKeybindings().filter(n=>Fje.codeActionCommands.indexOf(n.command)>=0).filter(n=>n.resolvedKeybinding).map(n=>{let r=n.commandArgs;return n.command===Mje?r={kind:Ma.SourceOrganizeImports.value}:n.command===Pje&&(r={kind:Ma.SourceFixAll.value}),{resolvedKeybinding:n.resolvedKeybinding,..._O.fromUser(r,{kind:El.None,apply:"never"})}}));return n=>{if(n.kind){const r=this.bestKeybindingForCodeAction(n,t.value);return r==null?void 0:r.resolvedKeybinding}}}bestKeybindingForCodeAction(t,n){if(!t.kind)return;const r=new El(t.kind);return n.filter(o=>o.kind.contains(r)).filter(o=>o.preferred?t.isPreferred:!0).reduceRight((o,s)=>o?o.kind.contains(s.kind)?s:o:s,void 0)}},Fje=ND,ND.codeActionCommands=[tBn,JDn,nBn,Mje,Pje],ND);Nje=Fje=pvo([bvo(0,Do)],Nje);Ve("symbolIcon.arrayForeground",Pr,U(1495,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.booleanForeground",Pr,U(1496,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},U(1497,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.colorForeground",Pr,U(1498,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.constantForeground",Pr,U(1499,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},U(1500,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},U(1501,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1502,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},U(1503,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1504,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.fileForeground",Pr,U(1505,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.folderForeground",Pr,U(1506,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},U(1507,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1508,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.keyForeground",Pr,U(1509,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.keywordForeground",Pr,U(1510,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},U(1511,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.moduleForeground",Pr,U(1512,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.namespaceForeground",Pr,U(1513,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.nullForeground",Pr,U(1514,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.numberForeground",Pr,U(1515,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.objectForeground",Pr,U(1516,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.operatorForeground",Pr,U(1517,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.packageForeground",Pr,U(1518,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.propertyForeground",Pr,U(1519,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.referenceForeground",Pr,U(1520,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.snippetForeground",Pr,U(1521,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.stringForeground",Pr,U(1522,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.structForeground",Pr,U(1523,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.textForeground",Pr,U(1524,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.typeParameterForeground",Pr,U(1525,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.unitForeground",Pr,U(1526,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1527,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const iBn=Object.freeze({kind:El.Empty,title:U(866,"More Actions...")}),wvo=Object.freeze([{kind:Ma.QuickFix,title:U(867,"Quick Fix")},{kind:Ma.RefactorExtract,title:U(868,"Extract"),icon:zt.wrench},{kind:Ma.RefactorInline,title:U(869,"Inline"),icon:zt.wrench},{kind:Ma.RefactorRewrite,title:U(870,"Rewrite"),icon:zt.wrench},{kind:Ma.RefactorMove,title:U(871,"Move"),icon:zt.wrench},{kind:Ma.SurroundWith,title:U(872,"Surround With"),icon:zt.surroundWith},{kind:Ma.Source,title:U(873,"Source Action"),icon:zt.symbolFile},iBn]);function Ovo(e,t,n){if(!t)return e.map(s=>{var a;return{kind:"action",item:s,group:iBn,disabled:!!s.action.disabled,label:s.action.disabled||s.action.title,canPreview:!!((a=s.action.edit)!=null&&a.edits.length)}});const r=wvo.map(s=>({group:s,actions:[]}));for(const s of e){const a=s.action.kind?new El(s.action.kind):El.None;for(const l of r)if(l.group.kind.contains(a)){l.actions.push(s);break}}const o=[];for(const s of r)if(s.actions.length){o.push({kind:"header",group:s.group});for(const a of s.actions){const l=s.group;o.push({kind:"action",item:a,group:a.action.isAI?{title:l.title,kind:l.kind,icon:zt.sparkle}:l,label:a.action.title,disabled:!!a.action.disabled,keybinding:n(a.action)})}}return o}const rBn=new yn("supportedCodeAction",""),HOt="_typescript.applyFixAllCodeAction";class yvo extends ft{constructor(t,n,r,o=250){super(),this._editor=t,this._markerService=n,this._signalChange=r,this._delay=o,this._autoTriggerTimer=this._register(new I0),this._register(this._markerService.onMarkerChanged(s=>this._onMarkerChanges(s))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(t){const n=this._getRangeOfSelectionUnlessWhitespaceEnclosed(t);this._signalChange(n?{trigger:t,selection:n}:void 0)}_onMarkerChanges(t){const n=this._editor.getModel();n&&t.some(r=>C6(r,n.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:j0.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(t){if(!this._editor.hasModel())return;const n=this._editor.getSelection();if(t.type===1)return n;const r=this._editor.getOption(73).enabled;if(r!==O4.Off){{if(r===O4.On)return n;if(r===O4.OnCode){if(!n.isEmpty())return n;const s=this._editor.getModel(),{lineNumber:a,column:l}=n.getPosition(),d=s.getLineContent(a);if(d.length===0)return;if(l===1){if(/\s/.test(d[0]))return}else if(l===s.getLineMaxColumn(a)){if(/\s/.test(d[d.length-1]))return}else if(/\s/.test(d[l-2])&&/\s/.test(d[l-1]))return}}return n}}}var TT;(function(e){e.Empty={type:0};class t{constructor(r,o,s){this.trigger=r,this.position=o,this._cancellablePromise=s,this.type=1,this.actions=s.catch(a=>{if(C2(a))return Uje;throw a})}cancel(){this._cancellablePromise.cancel()}}e.Triggered=t})(TT||(TT={}));const Uje=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class Cvo extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._registry=n,this._markerService=r,this._progressService=s,this._configurationService=a,this._codeActionOracle=this._register(new ts),this._state=TT.Empty,this._onDidChangeState=this._register(new at),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new ts),this._disposed=!1,this._supportedCodeActions=rBn.bindTo(o),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(73)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(TT.Empty,!0))}_settingEnabledNearbyQuickfixes(){var n;const t=(n=this._editor)==null?void 0:n.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:t==null?void 0:t.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(TT.Empty);const t=this._editor.getModel();if(t&&this._registry.has(t)&&!this._editor.getOption(104)){const n=this._registry.all(t).flatMap(r=>r.providedCodeActionKinds??[]);this._supportedCodeActions.set(n.join(" ")),this._codeActionOracle.value=new yvo(this._editor,this._markerService,r=>{var d;if(!r){this.setState(TT.Empty);return}const o=r.selection.getStartPosition(),s=Fd(async u=>{var g,m,v,f,k,A,p,b,w,O;if(this._settingEnabledNearbyQuickfixes()&&r.trigger.type===1&&(r.trigger.triggerAction===j0.QuickFix||(m=(g=r.trigger.filter)==null?void 0:g.include)!=null&&m.contains(Ma.QuickFix))){const y=await ON(this._registry,t,r.selection,r.trigger,qb.None,u);this.codeActionsDisposable.value=y;const C=[...y.allActions];if(u.isCancellationRequested)return y.dispose(),Uje;const _=(v=y.validActions)==null?void 0:v.some(L=>L.action.kind&&Ma.QuickFix.contains(new El(L.action.kind))&&!L.action.isAI),S=this._markerService.read({resource:t.uri});if(_){for(const L of y.validActions)(k=(f=L.action.command)==null?void 0:f.arguments)!=null&&k.some(E=>typeof E=="string"&&E.includes(HOt))&&(L.action.diagnostics=[...S.filter(E=>E.relatedInformation)]);return{validActions:y.validActions,allActions:C,documentation:y.documentation,hasAutoFix:y.hasAutoFix,hasAIFix:y.hasAIFix,allAIFixes:y.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=y}}}else if(!_&&S.length>0){const L=r.selection.getPosition();let E=L,T=Number.MAX_VALUE;const D=[...y.validActions];for(const Q of S){const M=Q.endColumn,B=Q.endLineNumber,R=Q.startLineNumber;if(B===L.lineNumber||R===L.lineNumber){E=new it(B,M);const I={type:r.trigger.type,triggerAction:r.trigger.triggerAction,filter:{include:(A=r.trigger.filter)!=null&&A.include?(p=r.trigger.filter)==null?void 0:p.include:Ma.QuickFix},autoApply:r.trigger.autoApply,context:{notAvailableMessage:((b=r.trigger.context)==null?void 0:b.notAvailableMessage)||"",position:E}},F=new Qn(E.lineNumber,E.column,E.lineNumber,E.column),j=await ON(this._registry,t,F,I,qb.None,u);if(u.isCancellationRequested)return j.dispose(),Uje;if(j.validActions.length!==0){for(const W of j.validActions)(O=(w=W.action.command)==null?void 0:w.arguments)!=null&&O.some(H=>typeof H=="string"&&H.includes(HOt))&&(W.action.diagnostics=[...S.filter(H=>H.relatedInformation)]);y.allActions.length===0&&C.push(...j.allActions),Math.abs(L.column-M)B.findIndex(R=>R.action.title===Q.action.title)===M);return P.sort((Q,M)=>Q.action.isPreferred&&!M.action.isPreferred?-1:!Q.action.isPreferred&&M.action.isPreferred||Q.action.isAI&&!M.action.isAI?1:!Q.action.isAI&&M.action.isAI?-1:0),{validActions:P,allActions:C,documentation:y.documentation,hasAutoFix:y.hasAutoFix,hasAIFix:y.hasAIFix,allAIFixes:y.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=y}}}}if(r.trigger.type===1){const y=await ON(this._registry,t,r.selection,r.trigger,qb.None,u);return this.codeActionsDisposable.value=y,y}const h=await ON(this._registry,t,r.selection,r.trigger,qb.None,u);return this.codeActionsDisposable.value=h,h});r.trigger.type===1&&((d=this._progressService)==null||d.showWhile(s,250));const a=new TT.Triggered(r.trigger,o,s);let l=!1;this._state.type===1&&(l=this._state.trigger.type===1&&a.type===1&&a.trigger.type===2&&this._state.position!==a.position),l?setTimeout(()=>{this.setState(a)},500):this.setState(a)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:j0.Default})}else this._supportedCodeActions.reset()}trigger(t){var n;(n=this._codeActionOracle.value)==null||n.trigger(t),this.codeActionsDisposable.dispose()}setState(t,n){t!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=t,!n&&!this._disposed&&this._onDidChangeState.fire(t))}}var _vo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Svo=function(e,t){return function(n,r){t(n,r,e)}},TF;const $Ot=Da("gutter-lightbulb",zt.lightBulb,U(874,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),XOt=Da("gutter-lightbulb-auto-fix",zt.lightbulbAutofix,U(875,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),GOt=Da("gutter-lightbulb-sparkle",zt.lightbulbSparkle,U(876,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),YOt=Da("gutter-lightbulb-aifix-auto-fix",zt.lightbulbSparkleAutofix,U(877,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),ZOt=Da("gutter-lightbulb-sparkle-filled",zt.sparkleFilled,U(878,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available."));var db;(function(e){e.Hidden={type:0};class t{constructor(r,o,s,a){this.actions=r,this.trigger=o,this.editorPosition=s,this.widgetPosition=a,this.type=1}}e.Showing=t})(db||(db={}));var VS;let NJ=(VS=class extends ft{constructor(t,n){super(),this._editor=t,this._keybindingService=n,this._onClick=this._register(new at),this.onClick=this._onClick.event,this._state=db.Hidden,this._gutterState=db.Hidden,this._iconClasses=[],this.lightbulbClasses=["codicon-"+$Ot.id,"codicon-"+YOt.id,"codicon-"+XOt.id,"codicon-"+GOt.id,"codicon-"+ZOt.id],this.gutterDecoration=TF.GUTTER_DECORATION,this._domNode=tn("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Bf.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(r=>{const o=this._editor.getModel();(this.state.type!==1||!o||this.state.editorPosition.lineNumber>=o.getLineCount())&&this.hide(),(this.gutterState.type!==1||!o||this.gutterState.editorPosition.lineNumber>=o.getLineCount())&&this.gutterHide()})),this._register(Pto(this._domNode,r=>{if(this.state.type!==1)return;this._editor.focus(),r.preventDefault();const{top:o,height:s}=Kl(this._domNode),a=this._editor.getOption(75);let l=Math.floor(a/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(r.buttons&1)===1&&this.hide()})),this._register(an.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var r,o;this._preferredKbLabel=((r=this._keybindingService.lookupKeybinding(eBn))==null?void 0:r.getLabel())??void 0,this._quickFixKbLabel=((o=this._keybindingService.lookupKeybinding(ztt))==null?void 0:o.getLabel())??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async r=>{if(!r.target.element||!this.lightbulbClasses.some(d=>r.target.element&&r.target.element.classList.contains(d))||this.gutterState.type!==1)return;this._editor.focus();const{top:o,height:s}=Kl(r.target.element),a=this._editor.getOption(75);let l=Math.floor(a/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber22,f=y=>y>2&&this._editor.getTopForLineNumber(y)===this._editor.getTopForLineNumber(y-1),k=this._editor.getLineDecorations(l);let A=!1;if(k)for(const y of k){const C=y.options.glyphMarginClassName;if(C&&!this.lightbulbClasses.some(_=>C.includes(_))){A=!0;break}}let p=l,b=1;if(!v){const y=C=>{const _=a.getLineContent(C);return/^\s*$|^\s+/.test(_)||_.length<=b};if(l>1&&!f(l-1)){const C=a.getLineCount(),_=l===C,S=l>1&&y(l-1),L=!_&&y(l+1),E=y(l),T=!L&&!S;if(!L&&!S&&!A)return this.gutterState=new db.Showing(t,n,r,{position:{lineNumber:p,column:b},preference:TF._posPref}),this.renderGutterLightbub(),this.hide();S||_||S&&!E?p-=1:(L||T&&E)&&(p+=1)}else if(l===1&&(l===a.getLineCount()||!y(l+1)&&!y(l)))if(this.gutterState=new db.Showing(t,n,r,{position:{lineNumber:p,column:b},preference:TF._posPref}),A)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(l{this._gutterDecorationID=n.addDecoration(new Ee(t,0,t,0),this.gutterDecoration)})}_removeGutterDecoration(t){this._editor.changeDecorations(n=>{n.removeDecoration(t),this._gutterDecorationID=void 0})}_updateGutterDecoration(t,n){this._editor.changeDecorations(r=>{r.changeDecoration(t,new Ee(n,0,n,0)),r.changeDecorationOptions(t,this.gutterDecoration)})}_updateLightbulbTitle(t,n){this.state.type===1&&(n?this.title=U(879,"Run: {0}",this.state.actions.validActions[0].action.title):t&&this._preferredKbLabel?this.title=U(880,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!t&&this._quickFixKbLabel?this.title=U(881,"Show Code Actions ({0})",this._quickFixKbLabel):t||(this.title=U(882,"Show Code Actions")))}set title(t){this._domNode.title=t}},TF=VS,VS.GUTTER_DECORATION=Gi.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:fi.asClassName(zt.lightBulb),glyphMargin:{position:p3.Left},stickiness:1}),VS.ID="editor.contrib.lightbulbWidget",VS._posPref=[0],VS);NJ=TF=_vo([Svo(1,Do)],NJ);var Lvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},vw=function(e,t){return function(n,r){t(n,r,e)}},QF;const xvo="quickfix-edit-highlight";var Y9;let _R=(Y9=class extends ft{static get(t){return t.getContribution(QF.ID)}constructor(t,n,r,o,s,a,l,d,u,h,g){super(),this._commandService=l,this._configurationService=d,this._actionWidgetService=u,this._instantiationService=h,this._progressService=g,this._activeCodeActions=this._register(new ts),this._showDisabled=!1,this._disposed=!1,this._editor=t,this._model=this._register(new Cvo(this._editor,s.codeActionProvider,n,r,a,d)),this._register(this._model.onDidChangeState(m=>this.update(m))),this._lightBulbWidget=new zh(()=>{const m=this._editor.getContribution(NJ.ID);return m&&this._register(m.onClick(v=>this.showCodeActionsFromLightbulb(v.actions,v))),m}),this._resolver=o.createInstance(Nje),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(t,n){if(t.allAIFixes&&t.validActions.length===1){const r=t.validActions[0],o=r.action.command;o&&o.id==="inlineChat.start"&&o.arguments&&o.arguments.length>=1&&o.arguments[0]&&(o.arguments[0]={...o.arguments[0],autoSend:!1}),await this.applyCodeAction(r,!1,!1,p9.FromAILightbulb);return}await this.showCodeActionList(t,n,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(t,n,r){return this.showCodeActionList(n,r,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(t,n,r,o){var a;if(!this._editor.hasModel())return;(a=D0.get(this._editor))==null||a.closeMessage();const s=this._editor.getPosition();this._trigger({type:1,triggerAction:n,filter:r,autoApply:o,context:{notAvailableMessage:t,position:s}})}_trigger(t){return this._model.trigger(t)}async applyCodeAction(t,n,r,o){const s=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(vvo,t,o,{preview:r,editor:this._editor})}finally{n&&this._trigger({type:2,triggerAction:j0.QuickFix,filter:{}}),s.done()}}hideLightBulbWidget(){var t,n;(t=this._lightBulbWidget.rawValue)==null||t.hide(),(n=this._lightBulbWidget.rawValue)==null||n.gutterHide()}async update(t){var o,s,a,l,d;if(t.type!==1){this.hideLightBulbWidget();return}let n;try{n=await t.actions}catch(u){zi(u);return}if(this._disposed)return;const r=this._editor.getSelection();if((r==null?void 0:r.startLineNumber)===t.position.lineNumber)if((o=this._lightBulbWidget.value)==null||o.update(n,t.trigger,t.position),t.trigger.type===1){if((s=t.trigger.filter)!=null&&s.include){const h=this.tryGetValidActionToApply(t.trigger,n);if(h){try{this.hideLightBulbWidget(),await this.applyCodeAction(h,!1,!1,p9.FromCodeActions)}finally{n.dispose()}return}if(t.trigger.context){const g=this.getInvalidActionThatWouldHaveBeenApplied(t.trigger,n);if(g&&g.action.disabled){(a=D0.get(this._editor))==null||a.showMessage(g.action.disabled,t.trigger.context.position),n.dispose();return}}}const u=!!((l=t.trigger.filter)!=null&&l.include);if(t.trigger.context&&(!n.allActions.length||!u&&!n.validActions.length)){(d=D0.get(this._editor))==null||d.showMessage(t.trigger.context.notAvailableMessage,t.trigger.context.position),this._activeCodeActions.value=n,n.dispose();return}this._activeCodeActions.value=n,this.showCodeActionList(n,this.toCoords(t.position),{includeDisabledActions:u,fromLightbulb:!1})}else this._actionWidgetService.isVisible?n.dispose():this._activeCodeActions.value=n}getInvalidActionThatWouldHaveBeenApplied(t,n){if(n.allActions.length&&(t.autoApply==="first"&&n.validActions.length===0||t.autoApply==="ifSingle"&&n.allActions.length===1))return n.allActions.find(({action:r})=>r.disabled)}tryGetValidActionToApply(t,n){if(n.validActions.length&&(t.autoApply==="first"&&n.validActions.length>0||t.autoApply==="ifSingle"&&n.validActions.length===1))return n.validActions[0]}async showCodeActionList(t,n,r){const o=this._editor.createDecorationsCollection(),s=this._editor.getDomNode();if(!s)return;const a=r.includeDisabledActions&&(this._showDisabled||t.validActions.length===0)?t.allActions:t.validActions;if(!a.length)return;const l=it.isIPosition(n)?this.toCoords(n):n,d={onSelect:async(u,h)=>{this.applyCodeAction(u,!0,!!h,r.fromLightbulb?p9.FromAILightbulb:p9.FromCodeActions),this._actionWidgetService.hide(!1),o.clear()},onHide:u=>{var h;(h=this._editor)==null||h.focus(),o.clear()},onHover:async(u,h)=>{var v;if(h.isCancellationRequested)return;let g=!1;const m=u.action.kind;if(m){const f=new El(m);g=[Ma.RefactorExtract,Ma.RefactorInline,Ma.RefactorRewrite,Ma.RefactorMove,Ma.Source].some(A=>A.contains(f))}return{canPreview:g||!!((v=u.action.edit)!=null&&v.edits.length)}},onFocus:u=>{var h,g;if(u&&u.action){const m=u.action.ranges,v=u.action.diagnostics;if(o.clear(),m&&m.length>0){const f=v&&(v==null?void 0:v.length)>1?v.map(k=>({range:k,options:QF.DECORATION})):m.map(k=>({range:k,options:QF.DECORATION}));o.set(f)}else if(v&&v.length>0){const f=v.map(A=>({range:A,options:QF.DECORATION}));o.set(f);const k=v[0];if(k.startLineNumber&&k.startColumn){const A=(g=(h=this._editor.getModel())==null?void 0:h.getWordAtPosition({lineNumber:k.startLineNumber,column:k.startColumn}))==null?void 0:g.word;A3(U(863,"Context: {0} at line {1} and column {2}.",A,k.startLineNumber,k.startColumn))}}}else o.clear()}};this._actionWidgetService.show("codeActionWidget",!0,Ovo(a,this._shouldShowHeaders(),this._resolver.getResolver()),d,l,s,this._getActionBarActions(t,n,r))}toCoords(t){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(t,1),this._editor.render();const n=this._editor.getScrolledVisiblePosition(t),r=Kl(this._editor.getDomNode()),o=r.left+n.left,s=r.top+n.top+n.height;return{x:o,y:s}}_shouldShowHeaders(){var n;const t=(n=this._editor)==null?void 0:n.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:t==null?void 0:t.uri})}_getActionBarActions(t,n,r){if(r.fromLightbulb)return[];const o=t.documentation.map(s=>({id:s.id,label:s.title,tooltip:s.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(s.id,...s.arguments??[])}));return r.includeDisabledActions&&t.validActions.length>0&&t.allActions.length!==t.validActions.length&&o.push(this._showDisabled?{id:"hideMoreActions",label:U(864,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(t,n,r))}:{id:"showMoreActions",label:U(865,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(t,n,r))}),o}},QF=Y9,Y9.ID="editor.contrib.codeActionController",Y9.DECORATION=Gi.register({description:"quickfix-highlight",className:xvo}),Y9);_R=QF=Lvo([vw(1,nC),vw(2,Qi),vw(3,Yn),vw(4,Nn),vw(5,V8),vw(6,ba),vw(7,ar),vw(8,uE),vw(9,Yn),vw(10,V8)],_R);yA((e,t)=>{((o,s)=>{s&&t.addRule(`.monaco-editor ${o} { background-color: ${s}; }`)})(".quickfix-edit-highlight",e.getColor(QS));const r=e.getColor(u9);r&&t.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${l3(e.type)?"dotted":"solid"} ${r}; box-sizing: border-box; }`)});function Kie(e){return Ft.regex(rBn.keys()[0],new RegExp("(\\s|^)"+M0(e.value)+"\\b"))}const Htt={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:U(831,"Kind of the code action to run.")},apply:{type:"string",description:U(832,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[U(833,"Always apply the first returned code action."),U(834,"Apply the first returned code action if it is the only one."),U(835,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:U(836,"Controls if only preferred code actions should be returned.")}}};function DI(e,t,n,r,o=j0.Default){if(e.hasModel()){const s=_R.get(e);s==null||s.manualTriggerAtCurrentPosition(t,o,n,r)}}class Evo extends Bn{constructor(){super({id:ztt,label:_t(853,"Quick Fix..."),precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),kbOpts:{kbExpr:$e.textInputFocus,primary:2137,weight:100}})}run(t,n){return DI(n,U(837,"No code actions available"),void 0,void 0,j0.QuickFix)}}class Tvo extends $d{constructor(){super({id:JDn,precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:Htt}]}})}runEditorCommand(t,n,r){const o=_O.fromUser(r,{kind:El.Empty,apply:"ifSingle"});return DI(n,typeof(r==null?void 0:r.kind)=="string"?o.preferred?U(838,"No preferred code actions for '{0}' available",r.kind):U(839,"No code actions for '{0}' available",r.kind):o.preferred?U(840,"No preferred code actions available"):U(841,"No code actions available"),{include:o.kind,includeSourceActions:!0,onlyIncludePreferredActions:o.preferred},o.apply)}}class Qvo extends Bn{constructor(){super({id:tBn,label:_t(854,"Refactor..."),precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),kbOpts:{kbExpr:$e.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:Ft.and($e.writable,Kie(Ma.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:Htt}]}})}run(t,n,r){const o=_O.fromUser(r,{kind:Ma.Refactor,apply:"never"});return DI(n,typeof(r==null?void 0:r.kind)=="string"?o.preferred?U(842,"No preferred refactorings for '{0}' available",r.kind):U(843,"No refactorings for '{0}' available",r.kind):o.preferred?U(844,"No preferred refactorings available"):U(845,"No refactorings available"),{include:Ma.Refactor.contains(o.kind)?o.kind:El.None,onlyIncludePreferredActions:o.preferred},o.apply,j0.Refactor)}}class Dvo extends Bn{constructor(){super({id:nBn,label:_t(855,"Source Action..."),precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:Ft.and($e.writable,Kie(Ma.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:Htt}]}})}run(t,n,r){const o=_O.fromUser(r,{kind:Ma.Source,apply:"never"});return DI(n,typeof(r==null?void 0:r.kind)=="string"?o.preferred?U(846,"No preferred source actions for '{0}' available",r.kind):U(847,"No source actions for '{0}' available",r.kind):o.preferred?U(848,"No preferred source actions available"):U(849,"No source actions available"),{include:Ma.Source.contains(o.kind)?o.kind:El.None,includeSourceActions:!0,onlyIncludePreferredActions:o.preferred},o.apply,j0.SourceAction)}}class Bvo extends Bn{constructor(){super({id:Mje,label:_t(856,"Organize Imports"),precondition:Ft.and($e.writable,Kie(Ma.SourceOrganizeImports)),kbOpts:{kbExpr:$e.textInputFocus,primary:1581,weight:100},metadata:{description:_t(857,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(t,n){return DI(n,U(850,"No organize imports action available"),{include:Ma.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",j0.OrganizeImports)}}class Rvo extends Bn{constructor(){super({id:Pje,label:_t(858,"Fix All"),precondition:Ft.and($e.writable,Kie(Ma.SourceFixAll))})}run(t,n){return DI(n,U(851,"No fix all action available"),{include:Ma.SourceFixAll,includeSourceActions:!0},"ifSingle",j0.FixAll)}}class Ivo extends Bn{constructor(){super({id:eBn,label:_t(859,"Auto Fix..."),precondition:Ft.and($e.writable,Kie(Ma.QuickFix)),kbOpts:{kbExpr:$e.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(t,n){return DI(n,U(852,"No auto fixes available"),{include:Ma.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",j0.AutoFix)}}mo(_R.ID,_R,3);mo(NJ.ID,NJ,4);un(Evo);un(Qvo);un(Dvo);un(Bvo);un(Ivo);un(Rvo);On(new Tvo);Ql.as(F3.Configuration).registerConfiguration({...v3e,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:U(860,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});Ql.as(F3.Configuration).registerConfiguration({...v3e,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:U(861,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});Ql.as(F3.Configuration).registerConfiguration({...v3e,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:6,markdownDescription:U(862,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});const Yve=class Yve{constructor(){this.lenses=[]}dispose(){var t;(t=this._store)==null||t.dispose()}get isDisposed(){var t;return((t=this._store)==null?void 0:t.isDisposed)??!1}add(t,n){AI(t)&&(this._store??(this._store=new xt),this._store.add(t));for(const r of t.lenses)this.lenses.push({symbol:r,provider:n})}};Yve.Empty=new Yve;let kV=Yve;async function oBn(e,t,n){const r=e.ordered(t),o=new Map,s=new kV,a=r.map(async(l,d)=>{o.set(l,d);try{const u=await Promise.resolve(l.provideCodeLenses(t,n));u&&s.add(u,l)}catch(u){Nc(u)}});return await Promise.all(a),n.isCancellationRequested?(s.dispose(),kV.Empty):(s.lenses=s.lenses.sort((l,d)=>l.symbol.range.startLineNumberd.symbol.range.startLineNumber?1:o.get(l.provider)o.get(d.provider)?1:l.symbol.range.startColumnd.symbol.range.startColumn?1:0),s)}co.registerCommand("_executeCodeLensProvider",function(e,...t){let[n,r]=t;Oo(vi.isUri(n)),Oo(typeof r=="number"||!r);const{codeLensProvider:o}=e.get(Nn),s=e.get(ml).getModel(n);if(!s)throw Gv();const a=[],l=new xt;return oBn(o,s,Er.None).then(d=>{l.add(d);const u=[];for(const h of d.lenses)r==null||h.symbol.command?a.push(h.symbol):r-- >0&&h.provider.resolveCodeLens&&u.push(Promise.resolve(h.provider.resolveCodeLens(s,h.symbol,Er.None)).then(g=>a.push(g||h.symbol)));return Promise.all(u)}).then(()=>a).finally(()=>{setTimeout(()=>l.dispose(),100)})});var Mvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Pvo=function(e,t){return function(n,r){t(n,r,e)}};const sBn=Cr("ICodeLensCache");class qOt{constructor(t,n){this.lineCount=t,this.data=n}}let jje=class{constructor(t){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new wp(20,.75);const n="codelens/cache";RG(Ls,()=>t.remove(n,1));const r="codelens/cache2",o=t.get(r,1,"{}");this._deserialize(o);const s=an.filter(t.onWillSaveState,a=>a.reason===F9.SHUTDOWN);an.once(s)(a=>{t.store(r,this._serialize(),1,1)})}put(t,n){const r=n.lenses.map(a=>{var l;return{range:a.symbol.range,command:a.symbol.command&&{id:"",title:(l=a.symbol.command)==null?void 0:l.title}}}),o=new kV;o.add({lenses:r},this._fakeProvider);const s=new qOt(t.getLineCount(),o);this._cache.set(t.uri.toString(),s)}get(t){const n=this._cache.get(t.uri.toString());return n&&n.lineCount===t.getLineCount()?n.data:void 0}delete(t){this._cache.delete(t.uri.toString())}_serialize(){const t=Object.create(null);for(const[n,r]of this._cache){const o=new Set;for(const s of r.data.lenses)o.add(s.symbol.range.startLineNumber);t[n]={lineCount:r.lineCount,lines:[...o.values()]}}return JSON.stringify(t)}_deserialize(t){try{const n=JSON.parse(t);for(const r in n){const o=n[r],s=[];for(const l of o.lines)s.push({range:new Ee(l,1,l,11)});const a=new kV;a.add({lenses:s},this._fakeProvider),this._cache.set(r,new qOt(o.lineCount,a))}}catch{}}};jje=Mvo([Pvo(0,Bg)],jje);zr(sBn,jje,1);class Fvo{constructor(t,n,r){this.afterColumn=1073741824,this.afterLineNumber=t,this.heightInPx=n,this._onHeight=r,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(t){this._lastHeight===void 0?this._lastHeight=t:this._lastHeight!==t&&(this._lastHeight=t,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}const Sq=class Sq{constructor(t,n){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id=`codelens.widget-${Sq._idPool++}`,this.updatePosition(n),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(t,n){this._commands.clear();const r=[];let o=!1;for(let s=0;s{u.symbol.command&&d.push(u.symbol),r.addDecoration({range:u.symbol.range,options:KOt},g=>this._decorationIds[h]=g),l?l=Ee.plusRange(l,u.symbol.range):l=Ee.lift(u.symbol.range)}),this._viewZone=new Fvo(l.startLineNumber-1,s,a),this._viewZoneId=o.addZone(this._viewZone),d.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(d,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new Wje(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(t,n){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],n==null||n.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((t,n)=>{const r=this._editor.getModel().getDecorationRange(t),o=this._data[n].symbol;return!!(r&&Ee.isEmpty(o.range)===r.isEmpty())})}updateCodeLensSymbols(t,n){this._decorationIds.forEach(n.removeDecoration,n),this._decorationIds=[],this._data=t,this._data.forEach((r,o)=>{n.addDecoration({range:r.symbol.range,options:KOt},s=>this._decorationIds[o]=s)})}updateHeight(t,n){this._viewZone.heightInPx=t,n.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(t){if(!this._viewZone.isVisible())return null;for(let n=0;n=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},eyt=function(e,t){return function(n,r){t(n,r,e)}};const CA=Cr("ILanguageFeatureDebounceService");var Z1e;(function(e){const t=new WeakMap;let n=0;function r(o){let s=t.get(o);return s===void 0&&(s=++n,t.set(o,s)),s}e.of=r})(Z1e||(Z1e={}));class Uvo{constructor(t){this._default=t}get(t){return this._default}update(t,n){return this._default}default(){return this._default}}class jvo{constructor(t,n,r,o,s,a){this._logService=t,this._name=n,this._registry=r,this._default=o,this._min=s,this._max=a,this._cache=new wp(50,.7)}_key(t){return t.id+this._registry.all(t).reduce((n,r)=>vbe(Z1e.of(r),n),0)}get(t){const n=this._key(t),r=this._cache.get(n);return r?Zg(r.value,this._min,this._max):this.default()}update(t,n){const r=this._key(t);let o=this._cache.get(r);o||(o=new N1o(6),this._cache.set(r,o));const s=Zg(o.update(n),this._min,this._max);return kbe(t.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${t.uri.toString()} is ${s}ms`),s}_overall(){const t=new YQn;for(const[,n]of this._cache)t.update(n.value);return t.value}default(){const t=this._overall()|0||this._default;return Zg(t,this._min,this._max)}}let Vje=class{constructor(t,n){this._logService=t,this._data=new Map,this._isDev=n.isExtensionDevelopment||!n.isBuilt}for(t,n,r){const o=(r==null?void 0:r.min)??50,s=(r==null?void 0:r.max)??o**2,a=(r==null?void 0:r.key)??void 0,l=`${Z1e.of(t)},${o}${a?","+a:""}`;let d=this._data.get(l);return d||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${n}] is disabled in developed mode`),d=new Uvo(o*1.5)):d=new jvo(this._logService,n,t,this._overallAverage()|0||o*1.5,o,s),this._data.set(l,d)),d}_overallAverage(){const t=new YQn;for(const n of this._data.values())t.update(n.default());return t.value}};Vje=Nvo([eyt(0,va),eyt(1,$tt)],Vje);zr(CA,Vje,1);var Wvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_X=function(e,t){return function(n,r){t(n,r,e)}},Vj;let UJ=(Vj=class{constructor(t,n,r,o,s,a){this._editor=t,this._languageFeaturesService=n,this._commandService=o,this._notificationService=s,this._codeLensCache=a,this._disposables=new xt,this._localToDispose=new xt,this._lenses=[],this._oldCodeLensModels=new xt,this._provideCodeLensDebounce=r.for(n.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=r.for(n.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new Es(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(l=>{(l.hasChanged(59)||l.hasChanged(25)||l.hasChanged(24))&&this._updateLensStyle(),l.hasChanged(23)&&this._onModelChange()})),this._disposables.add(n.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var t;this._localDispose(),this._localToDispose.dispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(t=this._currentCodeLensModel)==null||t.dispose()}_getLayoutInfo(){const t=Math.max(1.3,this._editor.getOption(75)/this._editor.getOption(61));let n=this._editor.getOption(25);return(!n||n<5)&&(n=this._editor.getOption(61)*.9|0),{fontSize:n,codeLensHeight:n*t|0}}_updateLensStyle(){const{codeLensHeight:t,fontSize:n}=this._getLayoutInfo(),r=this._editor.getOption(24),o=this._editor.getOption(59),{style:s}=this._editor.getContainerDomNode();s.setProperty("--vscode-editorCodeLens-lineHeight",`${t}px`),s.setProperty("--vscode-editorCodeLens-fontSize",`${n}px`),s.setProperty("--vscode-editorCodeLens-fontFeatureSettings",o.fontFeatureSettings),r&&(s.setProperty("--vscode-editorCodeLens-fontFamily",r),s.setProperty("--vscode-editorCodeLens-fontFamilyDefault",f1.fontFamily)),this._editor.changeViewZones(a=>{for(const l of this._lenses)l.updateHeight(t,a)})}_localDispose(){var t,n,r;(t=this._getCodeLensModelPromise)==null||t.cancel(),this._getCodeLensModelPromise=void 0,(n=this._resolveCodeLensesPromise)==null||n.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(r=this._currentCodeLensModel)==null||r.dispose()}_onModelChange(){this._localDispose();const t=this._editor.getModel();if(!t||!this._editor.getOption(23)||t.isTooLargeForTokenization())return;const n=this._codeLensCache.get(t);if(n&&this._renderCodeLensSymbols(n),!this._languageFeaturesService.codeLensProvider.has(t)){n&&B8(()=>{const o=this._codeLensCache.get(t);n===o&&(this._codeLensCache.delete(t),this._onModelChange())},30*1e3,this._localToDispose);return}for(const o of this._languageFeaturesService.codeLensProvider.all(t))if(typeof o.onDidChange=="function"){const s=o.onDidChange(()=>r.schedule());this._localToDispose.add(s)}const r=new Es(()=>{var s;const o=Date.now();(s=this._getCodeLensModelPromise)==null||s.cancel(),this._getCodeLensModelPromise=Fd(a=>oBn(this._languageFeaturesService.codeLensProvider,t,a)),this._getCodeLensModelPromise.then(a=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=a,this._codeLensCache.put(t,a);const l=this._provideCodeLensDebounce.update(t,Date.now()-o);r.delay=l,this._renderCodeLensSymbols(a),this._resolveCodeLensesInViewportSoon()},zi)},this._provideCodeLensDebounce.get(t));this._localToDispose.add(r),this._localToDispose.add(Hn(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var o;this._editor.changeDecorations(s=>{this._editor.changeViewZones(a=>{const l=[];let d=-1;this._lenses.forEach(h=>{!h.isValid()||d===h.getLineNumber()?l.push(h):(h.update(a),d=h.getLineNumber())});const u=new dxe;l.forEach(h=>{h.dispose(u,a),this._lenses.splice(this._lenses.indexOf(h),1)}),u.commit(s)})}),r.schedule(),this._resolveCodeLensesScheduler.cancel(),(o=this._resolveCodeLensesPromise)==null||o.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{r.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{r.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(o=>{o.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(Hn(()=>{if(this._editor.getModel()){const o=O3.capture(this._editor);this._editor.changeDecorations(s=>{this._editor.changeViewZones(a=>{this._disposeAllLenses(s,a)})}),o.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(o=>{if(o.target.type!==9)return;let s=o.target.element;if((s==null?void 0:s.tagName)==="SPAN"&&(s=s.parentElement),(s==null?void 0:s.tagName)==="A")for(const a of this._lenses){const l=a.getCommand(s);if(l){this._commandService.executeCommand(l.id,...l.arguments||[]).catch(d=>this._notificationService.error(d));break}}})),r.schedule()}_disposeAllLenses(t,n){const r=new dxe;for(const o of this._lenses)o.dispose(r,n);t&&r.commit(t),this._lenses.length=0}_renderCodeLensSymbols(t){if(!this._editor.hasModel())return;const n=this._editor.getModel().getLineCount(),r=[];let o;for(const l of t.lenses){const d=l.symbol.range.startLineNumber;d<1||d>n||(o&&o[o.length-1].symbol.range.startLineNumber===d?o.push(l):(o=[l],r.push(o)))}if(!r.length&&!this._lenses.length)return;const s=O3.capture(this._editor),a=this._getLayoutInfo();this._editor.changeDecorations(l=>{this._editor.changeViewZones(d=>{const u=new dxe;let h=0,g=0;for(;gthis._resolveCodeLensesInViewportSoon())),h++,g++)}for(;hthis._resolveCodeLensesInViewportSoon())),g++;u.commit(l)})}),s.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var a;(a=this._resolveCodeLensesPromise)==null||a.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const n=[],r=[];if(this._lenses.forEach(l=>{const d=l.computeIfNecessary(t);d&&(n.push(d),r.push(l))}),n.length===0){this._oldCodeLensModels.clear();return}const o=Date.now(),s=Fd(l=>{const d=n.map((u,h)=>{const g=new Array(u.length),m=u.map((v,f)=>!v.symbol.command&&typeof v.provider.resolveCodeLens=="function"?Promise.resolve(v.provider.resolveCodeLens(t,v.symbol,l)).then(k=>{g[f]=k},Nc):(g[f]=v.symbol,Promise.resolve(void 0)));return Promise.all(m).then(()=>{!l.isCancellationRequested&&!r[h].isDisposed()&&r[h].updateCommands(g)})});return Promise.all(d)});this._resolveCodeLensesPromise=s,this._resolveCodeLensesPromise.then(()=>{const l=this._resolveCodeLensesDebounce.update(t,Date.now()-o);this._resolveCodeLensesScheduler.delay=l,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},l=>{zi(l),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var t;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(t=this._currentCodeLensModel)!=null&&t.isDisposed?void 0:this._currentCodeLensModel}},Vj.ID="css.editor.codeLens",Vj);UJ=Wvo([_X(1,Nn),_X(2,CA),_X(3,ba),_X(4,ic),_X(5,sBn)],UJ);mo(UJ.ID,UJ,1);un(class extends Bn{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:$e.hasCodeLensProvider,label:_t(884,"Show CodeLens Commands for Current Line")})}async run(t,n){if(!n.hasModel())return;const r=t.get(Rf),o=t.get(ba),s=t.get(ic),a=n.getSelection().positionLineNumber,l=n.getContribution(UJ.ID);if(!l)return;const d=await l.getModel();if(!d)return;const u=[];for(const m of d.lenses)m.symbol.command&&m.symbol.range.startLineNumber===a&&u.push({label:m.symbol.command.title,command:m.symbol.command});if(u.length===0)return;const h=await r.pick(u,{canPickMany:!1,placeHolder:U(883,"Select a command")});if(!h)return;let g=h.command;if(d.isDisposed){const m=await l.getModel(),v=m==null?void 0:m.lenses.find(f=>{var k;return f.symbol.range.startLineNumber===a&&((k=f.symbol.command)==null?void 0:k.title)===g.title});if(!v||!v.symbol.command)return;g=v.symbol.command}try{await o.executeCommand(g.id,...g.arguments||[])}catch(m){s.error(m)}}});const aBn=[];function dH(e){aBn.push(e)}function Vvo(){return aBn.slice(0)}class uxe{constructor(t,n,r,o){this.priority=t,this.range=n,this.initialMousePosX=r,this.initialMousePosY=o,this.type=1}equals(t){return t.type===1&&this.range.equalsRange(t.range)}canAdoptVisibleHover(t,n){return t.type===1&&n.lineNumber===this.range.startLineNumber}}class jG{constructor(t,n,r,o,s,a){this.priority=t,this.owner=n,this.range=r,this.initialMousePosX=o,this.initialMousePosY=s,this.supportsMarkerHover=a,this.type=2}equals(t){return t.type===2&&this.owner===t.owner}canAdoptVisibleHover(t,n){return t.type===2&&this.owner===t.owner}}class SR{constructor(t,n){this.renderedHoverParts=t,this.disposables=n}dispose(){var t;for(const n of this.renderedHoverParts)n.dispose();(t=this.disposables)==null||t.dispose()}}const BI=new class{constructor(){this._participants=[]}register(t){this._participants.push(t)}getAll(){return this._participants}};var lBn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},zje=function(e,t){return function(n,r){t(n,r,e)}};let jJ=class{constructor(t){this._editorWorkerService=t}async provideDocumentColors(t,n){return this._editorWorkerService.computeDefaultDocumentColors(t.uri)}provideColorPresentations(t,n,r){const o=n.range,s=n.color,a=s.alpha,l=new Dt(new It(Math.round(255*s.red),Math.round(255*s.green),Math.round(255*s.blue),a)),d=a?Dt.Format.CSS.formatRGBA(l):Dt.Format.CSS.formatRGB(l),u=a?Dt.Format.CSS.formatHSLA(l):Dt.Format.CSS.formatHSL(l),h=a?Dt.Format.CSS.formatHexA(l):Dt.Format.CSS.formatHex(l),g=[];return g.push({label:d,textEdit:{range:o,text:d}}),g.push({label:u,textEdit:{range:o,text:u}}),g.push({label:h,textEdit:{range:o,text:h}}),g}};jJ=lBn([zje(0,S1)],jJ);let Hje=class extends ft{constructor(t,n){super(),this._register(t.colorProvider.register("*",new jJ(n)))}};Hje=lBn([zje(0,Nn),zje(1,S1)],Hje);async function cBn(e,t,n,r="auto"){return Xtt(new zvo,e,t,n,r)}function dBn(e,t,n,r){return Promise.resolve(n.provideColorPresentations(e,t,r))}class zvo{constructor(){}async compute(t,n,r,o){const s=await t.provideDocumentColors(n,r);if(Array.isArray(s))for(const a of s)o.push({colorInfo:a,provider:t});return Array.isArray(s)}}class Hvo{constructor(){}async compute(t,n,r,o){const s=await t.provideDocumentColors(n,r);if(Array.isArray(s))for(const a of s)o.push({range:a.range,color:[a.color.red,a.color.green,a.color.blue,a.color.alpha]});return Array.isArray(s)}}class $vo{constructor(t){this.colorInfo=t}async compute(t,n,r,o){const s=await t.provideColorPresentations(n,this.colorInfo,Er.None);return Array.isArray(s)&&o.push(...s),Array.isArray(s)}}async function Xtt(e,t,n,r,o){let s=!1,a;const l=[],d=t.ordered(n);for(let u=d.length-1;u>=0;u--){const h=d[u];if(o!=="always"&&h instanceof jJ)a=h;else try{await e.compute(h,n,r,l)&&(s=!0)}catch(g){Nc(g)}}return s?l:a&&o!=="never"?(await e.compute(a,n,r,l),l):[]}function uBn(e,t){const{colorProvider:n}=e.get(Nn),r=e.get(ml).getModel(t);if(!r)throw Gv();const o=e.get(ar).getValue("editor.defaultColorDecorators",{resource:t});return{model:r,colorProviderRegistry:n,defaultColorDecoratorsEnablement:o}}var Xvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},hxe=function(e,t){return function(n,r){t(n,r,e)}},$je;const hBn=Object.create({});var Z9;let vV=(Z9=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._configurationService=n,this._languageFeaturesService=r,this._localToDispose=this._register(new xt),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new Gvo),this._colorDecorationClassRefs=this._register(new xt),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new Yme(this._editor)),this._debounceInformation=o.for(r.colorProvider,"Document Colors",{min:$je.RECOMPUTE_TIME}),this._register(t.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(t.onDidChangeModelLanguage(()=>this.updateColors())),this._register(r.colorProvider.onDidChange(()=>this.updateColors())),this._register(t.onDidChangeConfiguration(s=>{const a=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167);const l=a!==this._isColorDecoratorsEnabled||s.hasChanged(27),d=s.hasChanged(167);(l||d)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167),this.updateColors()}isEnabled(){const t=this._editor.getModel();if(!t)return!1;const n=t.getLanguageId(),r=this._configurationService.getValue(n);if(r&&typeof r=="object"){const o=r.colorDecorators;if(o&&o.enable!==void 0&&!o.enable)return o.enable}return this._editor.getOption(26)}static get(t){return t.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const t=this._editor.getModel();!t||!this._languageFeaturesService.colorProvider.has(t)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new I0,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(t)))})),this.beginCompute())}async beginCompute(){this._computePromise=Fd(async t=>{const n=this._editor.getModel();if(!n)return[];const r=new vu(!1),o=await cBn(this._languageFeaturesService.colorProvider,n,t,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(n,r.elapsed()),o});try{const t=await this._computePromise;this.updateDecorations(t),this.updateColorDecorators(t),this._computePromise=null}catch(t){zi(t)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(t){const n=t.map(r=>({range:{startLineNumber:r.colorInfo.range.startLineNumber,startColumn:r.colorInfo.range.startColumn,endLineNumber:r.colorInfo.range.endLineNumber,endColumn:r.colorInfo.range.endColumn},options:Gi.EMPTY}));this._editor.changeDecorations(r=>{this._decorationsIds=r.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((o,s)=>this._colorDatas.set(o,t[s]))})}updateColorDecorators(t){this._colorDecorationClassRefs.clear();const n=[],r=this._editor.getOption(27);for(let s=0;sthis._colorDatas.has(o.id));return r.length===0?null:this._colorDatas.get(r[0].id)}isColorDecoration(t){return this._colorDecoratorIds.has(t)}},$je=Z9,Z9.ID="editor.contrib.colorDetector",Z9.RECOMPUTE_TIME=1e3,Z9);vV=$je=Xvo([hxe(1,ar),hxe(2,Nn),hxe(3,CA)],vV);class Gvo extends ft{constructor(){super(...arguments),this._onDidChange=this._register(new at),this._computed=0,this._limited=!1}update(t,n){(t!==this._computed||n!==this._limited)&&(this._computed=t,this._limited=n,this._onDidChange.fire())}}const fBn="editor.action.showHover",Yvo="editor.action.showDefinitionPreviewHover",Zvo="editor.action.hideHover",qvo="editor.action.scrollUpHover",Kvo="editor.action.scrollDownHover",Jvo="editor.action.scrollLeftHover",eAo="editor.action.scrollRightHover",tAo="editor.action.pageUpHover",nAo="editor.action.pageDownHover",iAo="editor.action.goToTopHover",rAo="editor.action.goToBottomHover",A3e="editor.action.increaseHoverVerbosityLevel",oAo=U(1102,"Increase Hover Verbosity Level"),p3e="editor.action.decreaseHoverVerbosityLevel",sAo=U(1103,"Decrease Hover Verbosity Level"),WJ="editor.action.inlineSuggest.commit",gBn="editor.action.inlineSuggest.showPrevious",mBn="editor.action.inlineSuggest.showNext",aAo="editor.action.inlineSuggest.jump",kBn="editor.action.inlineSuggest.hide",Xje="editor.action.inlineSuggest.toggleShowCollapsed";var Gtt=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},x4=function(e,t){return function(n,r){t(n,r,e)}},mhe;let Gje=class extends ft{constructor(t,n,r){super(),this.editor=t,this.model=n,this.instantiationService=r,this.alwaysShowToolbar=Ko(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=Rt(this,o=>{var d,u;const s=(d=this.model.read(o))==null?void 0:d.primaryGhostText.read(o);if(!this.alwaysShowToolbar.read(o)||!s||s.parts.length===0)return this.sessionPosition=void 0,null;const a=s.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==s.lineNumber&&(this.sessionPosition=void 0);const l=new it(s.lineNumber,Math.min(a,((u=this.sessionPosition)==null?void 0:u.column)??Number.MAX_SAFE_INTEGER));return this.sessionPosition=l,l}),this._register(Ef((o,s)=>{const a=this.model.read(o);if(!a||!this.alwaysShowToolbar.read(o))return;const l=Rt(u=>{const h=u.store.add(this.instantiationService.createInstance(AV.hot.read(u),this.editor,!0,this.position,a.selectedInlineCompletionIndex,a.inlineCompletionsCount,a.activeCommands,a.warning,()=>{}));return t.addContentWidget(h),u.store.add(Hn(()=>t.removeContentWidget(h))),u.store.add(Oi(g=>{this.position.read(g)&&a.lastTriggerKind.read(g)!==Zm.Explicit&&a.triggerExplicitly()})),h}),d=vL(this,(u,h)=>!!this.position.read(u)||!!h);s.add(Oi(u=>{d.read(u)&&l.read(u)}))}))}};Gje=Gtt([x4(2,Yn)],Gje);const lAo=Da("inline-suggestion-hints-next",zt.chevronRight,U(1207,"Icon for show next parameter hint.")),cAo=Da("inline-suggestion-hints-previous",zt.chevronLeft,U(1208,"Icon for show previous parameter hint."));var IO;let AV=(IO=class extends ft{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(t,n,r){const o=new n2(t,n,r,!0,()=>this._commandService.executeCommand(t)),s=this.keybindingService.lookupKeybinding(t,this._contextKeyService);let a=n;return s&&(a=U(1209,"{0} ({1})",n,s.getLabel())),o.tooltip=a,o}constructor(t,n,r,o,s,a,l,d,u,h,g,m,v){super(),this.editor=t,this.withBorder=n,this._position=r,this._currentSuggestionIdx=o,this._suggestionCount=s,this._extraCommands=a,this._warning=l,this._relayout=d,this._commandService=u,this.keybindingService=g,this._contextKeyService=m,this._menuService=v,this.id=`InlineSuggestionHintsContentWidget${mhe.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=Rt(f=>{const k=this._warning.read(f);return k?typeof k.message=="string"?k.message:f.store.add(Vie(k.message)).element:void 0}),this._warningMessageNode=cr.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:Rt(f=>this._warning.read(f)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=wo("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,wo("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(gBn,U(1210,"Previous"),fi.asClassName(cAo))),this.availableSuggestionCountAction=this._register(new n2("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(mBn,U(1211,"Next"),fi.asClassName(lAo))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(Wn.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Es(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new Es(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(Oi(f=>{this._warningMessageContentNode.read(f),this._warningMessageNode.readEffect(f),this._relayout()})),this.toolBar=this._register(h.createInstance(Yje,this.nodes.toolBar,Wn.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:f=>f.startsWith("primary")},actionViewItemProvider:(f,k)=>{if(f instanceof i2)return h.createInstance(uAo,f,void 0);if(f===this.availableSuggestionCountAction){const A=new dAo(void 0,f,{label:!0,icon:!1});return A.setClass("availableSuggestionCount"),A}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(f=>{mhe._dropDownVisible=f})),this._register(Oi(f=>{this._position.read(f),this.editor.layoutContentWidget(this)})),this._register(Oi(f=>{const k=this._suggestionCount.read(f),A=this._currentSuggestionIdx.read(f);k!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${A+1}/${k}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),k!==void 0&&k>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(Oi(f=>{const A=this._extraCommands.read(f).map(p=>({class:void 0,id:p.command.id,enabled:!0,tooltip:p.command.tooltip||"",label:p.command.title,run:b=>this._commandService.executeCommand(p.command.id)}));for(const[p,b]of this.inlineCompletionsActionsMenus.getActions())for(const w of b)w instanceof i2&&A.push(w);A.length>0&&A.unshift(new pd),this.toolBar.setAdditionalSecondaryActions(A)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}},mhe=IO,IO.hot=l3e(IO),IO._dropDownVisible=!1,IO.id=0,IO);AV=mhe=Gtt([x4(8,ba),x4(9,Yn),x4(10,Do),x4(11,Qi),x4(12,wA)],AV);class dAo extends gV{constructor(){super(...arguments),this._className=void 0}setClass(t){this._className=t}render(t){super.render(t),this._className&&t.classList.add(this._className)}updateTooltip(){}}class uAo extends D6{updateLabel(){const t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!t)return super.updateLabel();if(this.label){const n=wo("div.keybinding").root;this._register(new cH(n,b0,{disableTitle:!0,...X2o})).set(t),this.label.textContent=this._action.label,this.label.appendChild(n),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let Yje=class extends M1e{constructor(t,n,r,o,s,a,l,d,u){super(t,{resetMenu:n,...r},o,s,a,l,d,u),this.menuId=n,this.options2=r,this.menuService=o,this.contextKeyService=s,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this.additionalPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var r,o,s,a,l,d,u;const{primary:t,secondary:n}=kDn(this.menu.getActions((r=this.options2)==null?void 0:r.menuOptions),(s=(o=this.options2)==null?void 0:o.toolbarOptions)==null?void 0:s.primaryGroup,(l=(a=this.options2)==null?void 0:a.toolbarOptions)==null?void 0:l.shouldInlineSubmenu,(u=(d=this.options2)==null?void 0:d.toolbarOptions)==null?void 0:u.useSeparatorsInPrimaryActions);n.push(...this.additionalActions),t.unshift(...this.prependedPrimaryActions),t.push(...this.additionalPrimaryActions),this.setActions(t,n)}setPrependedPrimaryActions(t){Na(this.prependedPrimaryActions,t,(n,r)=>n===r)||(this.prependedPrimaryActions=t,this.updateToolbar())}setAdditionalSecondaryActions(t){Na(this.additionalActions,t,(n,r)=>n===r)||(this.additionalActions=t,this.updateToolbar())}};Yje=Gtt([x4(3,wA),x4(4,Qi),x4(5,S2),x4(6,Do),x4(7,ba),x4(8,Nf)],Yje);function b3e(e,t,n){const r=Kl(e);return!(tr.left+r.width||nr.top+r.height)}class hAo{constructor(t,n,r,o){this.value=t,this.isComplete=n,this.hasLoadingMessage=r,this.options=o}}class vBn extends ft{constructor(t,n){super(),this._editor=t,this._computer=n,this._onResult=this._register(new at),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new fxe(r=>this._triggerAsyncComputation(r),0)),this._syncComputationScheduler=this._register(new fxe(r=>this._triggerSyncComputation(r),0)),this._loadingMessageScheduler=this._register(new fxe(r=>this._triggerLoadingMessage(r),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._options=void 0,super.dispose()}get _hoverTime(){return this._editor.getOption(69).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(t,n){this._options=n,this._state=t,this._fireResult(n)}_triggerAsyncComputation(t){this._setState(2,t),this._syncComputationScheduler.schedule(t,this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=deo(n=>this._computer.computeAsync(t,n)),(async()=>{try{for await(const n of this._asyncIterable)n&&(this._result.push(n),this._fireResult(t));this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0,t)}catch(n){zi(n)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(t){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync(t))),this._setState(this._asyncIterableDone?0:3,t)}_triggerLoadingMessage(t){this._state===3&&this._setState(4,t)}_fireResult(t){if(this._state===1||this._state===2)return;const n=this._state===0,r=this._state===4;this._onResult.fire(new hAo(this._result.slice(0),n,r,t))}start(t,n){if(t===0)this._state===0&&(this._setState(1,n),this._asyncComputationScheduler.schedule(n,this._firstWaitTime),this._loadingMessageScheduler.schedule(n,this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(n),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break}}cancel(){this._asyncComputationScheduler.cancel(),this._syncComputationScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._options=void 0,this._state=0}get options(){return this._options}}class fxe extends ft{constructor(t,n){super(),this._scheduler=this._register(new Es(()=>t(this._options),n))}schedule(t,n){this._options=t,this._scheduler.schedule(n)}cancel(){this._scheduler.cancel()}}class Ytt{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new at,this._onDidResize=new at,this._sashListener=new xt,this._size=new cs(0,0),this._minSize=new cs(0,0),this._maxSize=new cs(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new kf(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new kf(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new kf(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:T1e.North}),this._southSash=new kf(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:T1e.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let t,n=0,r=0;this._sashListener.add(an.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{t===void 0&&(this._onDidWillResize.fire(),t=this._size,n=0,r=0)})),this._sashListener.add(an.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{t!==void 0&&(t=void 0,n=0,r=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(o=>{t&&(r=o.currentX-o.startX,this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(o=>{t&&(r=-(o.currentX-o.startX),this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(o=>{t&&(n=-(o.currentY-o.startY),this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(o=>{t&&(n=o.currentY-o.startY,this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(an.any(this._eastSash.onDidReset,this._westSash.onDidReset)(o=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(an.any(this._northSash.onDidReset,this._southSash.onDidReset)(o=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(t,n,r,o){this._northSash.state=t?3:0,this._eastSash.state=n?3:0,this._southSash.state=r?3:0,this._westSash.state=o?3:0}layout(t=this.size.height,n=this.size.width){const{height:r,width:o}=this._minSize,{height:s,width:a}=this._maxSize;t=Math.max(r,Math.min(s,t)),n=Math.max(o,Math.min(a,n));const l=new cs(n,t);cs.equals(l,this._size)||(this.domNode.style.height=t+"px",this.domNode.style.width=n+"px",this._size=l,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(t){this._maxSize=t}get maxSize(){return this._maxSize}set minSize(t){this._minSize=t}get minSize(){return this._minSize}set preferredSize(t){this._preferredSize=t}get preferredSize(){return this._preferredSize}}const fAo=30,gAo=24;class mAo extends ft{constructor(t,n=new cs(10,10)){super(),this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new Ytt),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=cs.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(r=>{this._resize(new cs(r.dimension.width,r.dimension.height)),r.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var t;return(t=this._contentPosition)!=null&&t.position?it.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(t){const n=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(t);return!n||!r?void 0:Kl(n).top+r.top-fAo}_availableVerticalSpaceBelow(t){const n=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(t);if(!n||!r)return;const o=Kl(n),s=O6(n.ownerDocument.body),a=o.top+r.top+r.height;return s.height-a-gAo}_findPositionPreference(t,n){const r=Math.min(this._availableVerticalSpaceBelow(n)??1/0,t),o=Math.min(this._availableVerticalSpaceAbove(n)??1/0,t),s=Math.min(Math.max(o,r),t),a=Math.min(t,s);let l;return this._editor.getOption(69).above?l=a<=o?1:2:l=a<=r?2:1,l===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),l}_resize(t){this._resizableNode.layout(t.height,t.width)}}const Wle=tn;let Ztt=class extends ft{constructor(t){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.classList.toggle("fade-in",!!t),this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new Mie(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}};class w3e extends ft{static render(t,n,r){return new w3e(t,n,r)}constructor(t,n,r){super(),this.actionLabel=n.label,this.actionKeybindingLabel=r,this.actionContainer=Xt(t,Wle("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=Xt(this.actionContainer,Wle("a.action")),this.action.setAttribute("role","button"),n.iconClass&&Xt(this.action,Wle("span.icon")).classList.add(...n.iconClass.split(" ")),this.actionRenderedLabel=r?`${n.label} (${r})`:n.label;const o=Xt(this.action,Wle("span"));o.textContent=this.actionRenderedLabel,this._store.add(new pBn(this.actionContainer,n.run)),this._store.add(new bBn(this.actionContainer,n.run,[3,10])),this.setEnabled(!0)}setEnabled(t){t?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}function ABn(e,t){return e&&t?U(7,"Inspect this in the accessible view with {0}.",t):e?U(8,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}class pBn extends ft{constructor(t,n){super(),this._register(wt(t,rn.CLICK,r=>{r.stopPropagation(),r.preventDefault(),n(t)}))}}class bBn extends ft{constructor(t,n,r){super(),this._register(wt(t,rn.KEY_DOWN,o=>{const s=new Us(o);r.some(a=>s.equals(a))&&(o.stopPropagation(),o.preventDefault(),n(t))}))}}var kAo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Vle=function(e,t){return function(n,r){t(n,r,e)}},i4;const tyt=30;var q9;let Zje=(q9=class extends mAo{get isVisibleFromKeyboard(){var t;return((t=this._renderedHover)==null?void 0:t.source)===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(t,n,r,o,s){const a=t.getOption(75)+8,l=150,d=new cs(l,a);super(t,d),this._configurationService=r,this._accessibilityService=o,this._keybindingService=s,this._hover=this._register(new Ztt(!0)),this._onDidResize=this._register(new at),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new at),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new at),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=d,this._hoverVisibleKey=$e.hoverVisible.bindTo(n),this._hoverFocusedKey=$e.hoverFocused.bindTo(n),Xt(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(h=>{h.hasChanged(59)&&this._updateFont()}));const u=this._register(uA(this._resizableNode.domNode));this._register(u.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(u.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll(h=>{this._onDidScroll.fire(h)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){var t;super.dispose(),(t=this._renderedHover)==null||t.dispose(),this._editor.removeContentWidget(this)}getId(){return i4.ID}static _applyDimensions(t,n,r){const o=typeof n=="number"?`${n}px`:n,s=typeof r=="number"?`${r}px`:r;t.style.width=o,t.style.height=s}_setContentsDomNodeDimensions(t,n){const r=this._hover.contentsDomNode;return i4._applyDimensions(r,t,n)}_setContainerDomNodeDimensions(t,n){const r=this._hover.containerDomNode;return i4._applyDimensions(r,t,n)}_setScrollableElementDimensions(t,n){const r=this._hover.scrollbar.getDomNode();return i4._applyDimensions(r,t,n)}_setHoverWidgetDimensions(t,n){this._setContainerDomNodeDimensions(t,n),this._setScrollableElementDimensions(t,n),this._setContentsDomNodeDimensions(t,n),this._layoutContentWidget()}static _applyMaxDimensions(t,n,r){const o=typeof n=="number"?`${n}px`:n,s=typeof r=="number"?`${r}px`:r;t.style.maxWidth=o,t.style.maxHeight=s}_setHoverWidgetMaxDimensions(t,n){i4._applyMaxDimensions(this._hover.contentsDomNode,t,n),i4._applyMaxDimensions(this._hover.scrollbar.getDomNode(),t,n),i4._applyMaxDimensions(this._hover.containerDomNode,t,n),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof t=="number"?`${t}px`:t),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(t){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(t.width,t.height)}_updateResizableNodeMaxDimensions(){const t=this._findMaximumRenderingWidth()??1/0,n=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new cs(t,n),this._setHoverWidgetMaxDimensions(t,n)}_resize(t){i4._lastDimensions=new cs(t.width,t.height),this._setAdjustedHoverWidgetDimensions(t),this._resizableNode.layout(t.height,t.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){var n;const t=(n=this._renderedHover)==null?void 0:n.showAtPosition;if(t)return this._positionPreference===1?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const t=this._findAvailableSpaceVertically();if(!t)return;let r=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach(o=>{r+=o.clientHeight}),Math.min(t,r)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const t=Array.from(this._hover.contentsDomNode.children).some(n=>n.scrollWidth>n.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),t}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const t=this._isHoverTextOverflowing(),n=typeof this._contentWidth>"u"?0:this._contentWidth;return t||this._hover.containerDomNode.clientWidththis._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,o),!0)}_setRenderedHover(t){var n;(n=this._renderedHover)==null||n.dispose(),this._renderedHover=t,this._hoverVisibleKey.set(!!t),this._hover.containerDomNode.classList.toggle("hidden",!t)}_updateFont(){const{fontSize:t,lineHeight:n}=this._editor.getOption(59),r=this._hover.contentsDomNode;r.style.fontSize=`${t}px`,r.style.lineHeight=`${n/t}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(s=>this._editor.applyFontInfo(s))}_updateContent(t){const n=this._hover.contentsDomNode;n.style.paddingBottom="",n.textContent="",n.appendChild(t)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const t=Math.max(this._editor.getLayoutInfo().height/4,250,i4._lastDimensions.height),n=Math.max(this._editor.getLayoutInfo().width*.66,750,i4._lastDimensions.width);this._resizableNode.maxSize=new cs(n,t),this._setHoverWidgetMaxDimensions(n,t)}_render(t){this._setRenderedHover(t),this._updateFont(),this._updateContent(t.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(t){var a;if(!this._editor||!this._editor.hasModel())return;this._render(t);const n=ES(this._hover.containerDomNode),r=t.showAtPosition;this._positionPreference=this._findPositionPreference(n,r)??1,this.handleContentsChanged(),t.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const s=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&ABn(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),((a=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))==null?void 0:a.getAriaLabel())??"");s&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+s)}hide(){if(!this._renderedHover)return;const t=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new cs(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),t&&this._editor.focus()}_removeConstraintsRenderNormally(){const t=this._editor.getLayoutInfo();this._resizableNode.layout(t.height,t.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(t){this._minimumSize=new cs(Math.max(this._minimumSize.width,t.width),Math.max(this._minimumSize.height,t.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const t=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new cs(t,this._minimumSize.height)}handleContentsChanged(){var o;this._removeConstraintsRenderNormally();const t=this._hover.contentsDomNode;let n=ES(t),r=s0(t)+2;if(this._resizableNode.layout(n,r),this._setHoverWidgetDimensions(r,n),n=ES(t),r=s0(t),this._contentWidth=r,this._updateMinimumWidth(),this._resizableNode.layout(n,r),(o=this._renderedHover)!=null&&o.showAtPosition){const s=ES(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(s,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:t-n.lineHeight})}scrollDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:t+n.lineHeight})}scrollLeft(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t-tyt})}scrollRight(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t+tyt})}pageUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t-n})}pageDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t+n})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}},i4=q9,q9.ID="editor.contrib.resizableContentHoverWidget",q9._lastDimensions=new cs(0,0),q9);Zje=i4=kAo([Vle(1,Qi),Vle(2,ar),Vle(3,vh),Vle(4,Do)],Zje);function nyt(e,t,n,r,o,s){const a=n+o/2,l=r+s/2,d=Math.max(Math.abs(e-a)-o/2,0),u=Math.max(Math.abs(t-l)-s/2,0);return Math.sqrt(d*d+u*u)}class q1e{constructor(t,n){this._editor=t,this._participants=n}static _getLineDecorations(t,n){if(n.type!==1&&!n.supportsMarkerHover)return[];const r=t.getModel(),o=n.range.startLineNumber;if(o>r.getLineCount())return[];const s=r.getLineMaxColumn(o);return t.getLineDecorations(o).filter(a=>{if(a.options.isWholeLine)return!0;const l=a.range.startLineNumber===o?a.range.startColumn:1,d=a.range.endLineNumber===o?a.range.endColumn:s;if(a.options.showIfCollapsed){if(l>n.range.startColumn+1||n.range.endColumn-1>d)return!1}else if(l>n.range.startColumn||n.range.endColumn>d)return!1;return!0})}computeAsync(t,n){const r=t.anchor;if(!this._editor.hasModel()||!r)return Yv.EMPTY;const o=q1e._getLineDecorations(this._editor,r);return Yv.merge(this._participants.map(s=>s.computeAsync?s.computeAsync(r,o,t.source,n):Yv.EMPTY))}computeSync(t){if(!this._editor.hasModel())return[];const n=t.anchor,r=q1e._getLineDecorations(this._editor,n);let o=[];for(const s of this._participants)o=o.concat(s.computeSync(n,r,t.source));return P3(o)}}class wBn{constructor(t,n,r){this.hoverParts=t,this.isComplete=n,this.options=r}filter(t){const n=this.hoverParts.filter(r=>r.isValidForHoverAnchor(t));return n.length===this.hoverParts.length?this:new vAo(this,n,this.isComplete,this.options)}}class vAo extends wBn{constructor(t,n,r,o){super(n,r,o),this.original=t}filter(t){return this.original.filter(t)}}var AAo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},iyt=function(e,t){return function(n,r){t(n,r,e)}};const ryt=tn;let K1e=class extends ft{get hasContent(){return this._hasContent}constructor(t,n){super(),this._keybindingService=t,this._hoverService=n,this.actions=[],this._hasContent=!1,this.hoverElement=ryt("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=Xt(this.hoverElement,ryt("div.actions"))}addAction(t){const n=this._keybindingService.lookupKeybinding(t.commandId),r=n?n.getLabel():null;this._hasContent=!0;const o=this._register(w3e.render(this.actionsElement,t,r));return this._register(this._hoverService.setupManagedHover(eC("element"),o.actionContainer,o.actionRenderedLabel)),this.actions.push(o),o}append(t){const n=Xt(this.actionsElement,t);return this._hasContent=!0,n}};K1e=AAo([iyt(0,Do),iyt(1,pm)],K1e);const OBn={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class yL extends Y0{get onChange(){return this._onChange.event}get onKeyDown(){return this._onKeyDown.event}constructor(t){super(),this._onChange=this._register(new at),this._onKeyDown=this._register(new at),this._opts=t,this._title=this._opts.title,this._checked=this._opts.isChecked;const n=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,n.push(...fi.asClassNameArray(this._icon))),this._opts.actionClassName&&n.push(...this._opts.actionClassName.split(" ")),this._checked&&n.push("checked"),this.domNode=document.createElement("div"),this._register(yp().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}),this._opts.hoverLifecycleOptions)),this.domNode.classList.add(...n),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.setTitle(this._opts.title),this.applyStyles(),this.onclick(this.domNode,r=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),r.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,r=>{if(this.enabled){if(r.keyCode===10||r.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),r.preventDefault(),r.stopPropagation();return}this._onKeyDown.fire(r)}})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(t){this._checked=t,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}setIcon(t){this._icon&&this.domNode.classList.remove(...fi.asClassNameArray(this._icon)),this._icon=t,this._icon&&this.domNode.classList.add(...fi.asClassNameArray(this._icon))}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1)),this.domNode.classList.remove("disabled")}disable(){this.domNode.setAttribute("aria-disabled",String(!0)),this.domNode.classList.add("disabled")}setTitle(t){this._title=t,this.domNode.setAttribute("aria-label",t)}set visible(t){this.domNode.style.display=t?"":"none"}get visible(){return this.domNode.style.display!=="none"}}const kat=class kat extends Y0{constructor(t,n,r){super(),this.checkbox=t,this.domNode=n,this.styles=r,this._onChange=this._register(new at),this.onChange=this._onChange.event,this.applyStyles()}get enabled(){return this.checkbox.enabled}enable(){this.checkbox.enable(),this.applyStyles(!0)}disable(){this.checkbox.disable(),this.applyStyles(!1)}setTitle(t){this.checkbox.setTitle(t)}applyStyles(t=this.enabled){this.domNode.style.color=(t?this.styles.checkboxForeground:this.styles.checkboxDisabledForeground)||"",this.domNode.style.backgroundColor=(t?this.styles.checkboxBackground:this.styles.checkboxDisabledBackground)||"",this.domNode.style.borderColor=(t?this.styles.checkboxBorder:this.styles.checkboxDisabledBackground)||"";const n=this.styles.size||18;this.domNode.style.width=this.domNode.style.height=this.domNode.style.fontSize=`${n}px`,this.domNode.style.fontSize=`${n-2}px`}};kat.CLASS_NAME="monaco-checkbox";let VJ=kat,yBn=class extends VJ{constructor(t,n,r){const o=new yL({title:t,isChecked:n,icon:zt.check,actionClassName:VJ.CLASS_NAME,hoverLifecycleOptions:r.hoverLifecycleOptions,...OBn});super(o,o.domNode,r),this._register(o),this._register(this.checkbox.onChange(s=>{this.applyStyles(),this._onChange.fire(s)}))}get checked(){return this.checkbox.checked}set checked(t){this.checkbox.checked=t,this.applyStyles()}applyStyles(t){this.checkbox.checked?this.checkbox.setIcon(zt.check):this.checkbox.setIcon(void 0),super.applyStyles(t)}};class CBn extends VJ{constructor(t,n,r){let o;switch(n){case!0:o=zt.check;break;case"mixed":o=zt.dash;break;case!1:o=void 0;break}const s=new yL({title:t,isChecked:n===!0,icon:o,actionClassName:yBn.CLASS_NAME,hoverLifecycleOptions:r.hoverLifecycleOptions,...OBn});super(s,s.domNode,r),this._state=n,this._register(s),this._register(this.checkbox.onChange(a=>{this._state=this.checkbox.checked,this.applyStyles(),this._onChange.fire(a)}))}get checked(){return this._state}set checked(t){this._state!==t&&(this._state=t,this.checkbox.checked=t===!0,this.applyStyles())}applyStyles(t){switch(this._state){case!0:this.checkbox.setIcon(zt.check);break;case"mixed":this.checkbox.setIcon(zt.dash);break;case!1:this.checkbox.setIcon(void 0);break}super.applyStyles(t)}}const eg=class eg{constructor(t){this._editor=t,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const t=this._findScopeDecorationIds.map(n=>this._editor.getModel().getDecorationRange(n)).filter(n=>!!n);if(t.length)return t}return null}getStartPosition(){return this._startPosition}setStartPosition(t){this._startPosition=t,this.setCurrentFindMatch(null)}_getDecorationIndex(t){const n=this._decorations.indexOf(t);return n>=0?n+1:1}getDecorationRangeAt(t){const n=t{if(this._highlightedDecorationId!==null&&(o.changeDecorationOptions(this._highlightedDecorationId,eg._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),n!==null&&(this._highlightedDecorationId=n,o.changeDecorationOptions(this._highlightedDecorationId,eg._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(o.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),n!==null){let s=this._editor.getModel().getDecorationRange(n);if(s.startLineNumber!==s.endLineNumber&&s.endColumn===1){const a=s.endLineNumber-1,l=this._editor.getModel().getLineMaxColumn(a);s=new Ee(s.startLineNumber,s.startColumn,a,l)}this._rangeHighlightDecorationId=o.addDecoration(s,eg._RANGE_HIGHLIGHT_DECORATION)}}),r}set(t,n){this._editor.changeDecorations(r=>{let o=eg._FIND_MATCH_DECORATION;const s=[];if(t.length>1e3){o=eg._FIND_MATCH_NO_OVERVIEW_DECORATION;const l=this._editor.getModel().getLineCount(),u=this._editor.getLayoutInfo().height/l,h=Math.max(2,Math.ceil(3/u));let g=t[0].range.startLineNumber,m=t[0].range.endLineNumber;for(let v=1,f=t.length;v=k.startLineNumber?k.endLineNumber>m&&(m=k.endLineNumber):(s.push({range:new Ee(g,1,m,1),options:eg._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),g=k.startLineNumber,m=k.endLineNumber)}s.push({range:new Ee(g,1,m,1),options:eg._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const a=new Array(t.length);for(let l=0,d=t.length;lr.removeDecoration(l)),this._findScopeDecorationIds=[]),n!=null&&n.length&&(this._findScopeDecorationIds=n.map(l=>r.addDecoration(l,eg._FIND_SCOPE_DECORATION)))})}matchBeforePosition(t){if(this._decorations.length===0)return null;for(let n=this._decorations.length-1;n>=0;n--){const r=this._decorations[n],o=this._editor.getModel().getDecorationRange(r);if(!(!o||o.endLineNumber>t.lineNumber)){if(o.endLineNumbert.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(t){if(this._decorations.length===0)return null;for(let n=0,r=this._decorations.length;nt.lineNumber)return s;if(!(s.startColumn0){const r=[];for(let a=0;aEe.compareRangesUsingStarts(a.range,l.range));const o=[];let s=r[0];for(let a=1;a0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}else return t}function oyt(e,t,n){return e[0].indexOf(n)!==-1&&t.indexOf(n)!==-1&&e[0].split(n).length===t.split(n).length}function syt(e,t,n){const r=t.split(n),o=e[0].split(n);let s="";return r.forEach((a,l)=>{s+=_Bn([o[l]],a)+n}),s.slice(0,-1)}class ayt{constructor(t){this.staticValue=t,this.kind=0}}class bAo{constructor(t){this.pieces=t,this.kind=1}}class pV{static fromStaticValue(t){return new pV([pD.staticValue(t)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(t){!t||t.length===0?this._state=new ayt(""):t.length===1&&t[0].staticValue!==null?this._state=new ayt(t[0].staticValue):this._state=new bAo(t)}buildReplaceString(t,n){if(this._state.kind===0)return n?_Bn(t,this._state.staticValue):this._state.staticValue;let r="";for(let o=0,s=this._state.pieces.length;o0){const d=[],u=a.caseOps.length;let h=0;for(let g=0,m=l.length;g=u){d.push(l.slice(g));break}switch(a.caseOps[h]){case"U":d.push(l[g].toUpperCase());break;case"u":d.push(l[g].toUpperCase()),h++;break;case"L":d.push(l[g].toLowerCase());break;case"l":d.push(l[g].toLowerCase()),h++;break;default:d.push(l[g])}}l=d.join("")}r+=l}return r}static _substitute(t,n){if(n===null)return"";if(t===0)return n[0];let r="";for(;t>0;){if(t=o)break;const a=e.charCodeAt(r);switch(a){case 92:n.emitUnchanged(r-1),n.emitStatic("\\",r+1);break;case 110:n.emitUnchanged(r-1),n.emitStatic(` +{1}`,l.title,H1e(p)))}finally{a.deltaDecorations(f,[])}s.isCancellationRequested||r&&k.isApplied&&n.allEdits.length>1&&this.show(A??v,n,d)}show(t,n,r){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(Ije,this._id,this._editor,this._visibleContext,this._showCommand,t,n,r,this._getAdditionalActions()))}clear(){this._currentWidget.clear()}tryShowSelector(){var t;(t=this._currentWidget.value)==null||t.showSelector()}};X1e=XDn([HU(5,Yn),HU(6,Yie),HU(7,ic)],X1e);var J2o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},GC=function(e,t){return function(n,r){t(n,r,e)}},n4;const GDn="editor.changePasteType",evo="editor.pasteAs.preferences",Wtt=new yn("pasteWidgetVisible",!1,U(917,"Whether the paste widget is showing")),lxe="application/vnd.code.copymetadata";var FD;let $8=(FD=class extends ft{static get(t){return t.getContribution(n4.ID)}constructor(t,n,r,o,s,a,l,d,u,h){super(),this._logService=r,this._bulkEditService=o,this._clipboardService=s,this._commandService=a,this._configService=l,this._languageFeaturesService=d,this._quickInputService=u,this._progressService=h,this._editor=t;const g=t.getContainerDomNode();this._register(wt(g,"copy",m=>this.handleCopy(m))),this._register(wt(g,"cut",m=>this.handleCopy(m))),this._register(wt(g,"paste",m=>this.handlePaste(m),!0)),this._pasteProgressManager=this._register(new W1e("pasteIntoEditor",t,n)),this._postPasteWidgetManager=this._register(n.createInstance(X1e,"pasteIntoEditor",t,Wtt,{id:GDn,label:U(918,"Show paste options...")},()=>n4._configureDefaultAction?[n4._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(t){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:t},await this._commandService.executeCommand("editor.action.clipboardPasteAction")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(97).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(t){var A,p,b,w;let n=null;if(t.clipboardData){const[O,y]=hD.getTextData(t.clipboardData),C=y||ay.INSTANCE.get(O);n=(C==null?void 0:C.id)||null,this._logService.trace("CopyPasteController#handleCopy for id : ",n," with text.length : ",O.length)}else this._logService.trace("CopyPasteController#handleCopy");if(!this._editor.hasTextFocus()||((p=(A=this._clipboardService).clearInternalState)==null||p.call(A),!t.clipboardData||!this.isPasteAsEnabled()))return;const r=this._editor.getModel(),o=this._editor.getSelections();if(!r||!(o!=null&&o.length))return;const s=this._editor.getOption(45);let a=o;const l=o.length===1&&o[0].isEmpty();if(l){if(!s)return;a=[new Ee(a[0].startLineNumber,1,a[0].startLineNumber,1+r.getLineLength(a[0].startLineNumber))]}const d=(b=this._editor._getViewModel())==null?void 0:b.getPlainTextToCopy(o,s,mh),h={multicursorText:Array.isArray(d)?d:null,pasteOnNewLine:l,mode:null},g=this._languageFeaturesService.documentPasteEditProvider.ordered(r).filter(O=>!!O.prepareDocumentPaste);if(!g.length){this.setCopyMetadata(t.clipboardData,{defaultPastePayload:h});return}const m=QDn(t.clipboardData),v=g.flatMap(O=>O.copyMimeTypes??[]),f=n??SI();this.setCopyMetadata(t.clipboardData,{id:f,providerCopyMimeTypes:v,defaultPastePayload:h});const k=g.map(O=>({providerMimeTypes:O.copyMimeTypes,operation:Fd(y=>O.prepareDocumentPaste(r,a,m,y).catch(C=>{console.error(C)}))}));(w=n4._currentCopyOperation)==null||w.operations.forEach(O=>O.operation.cancel()),n4._currentCopyOperation={handle:f,operations:k}}async handlePaste(t){var u,h,g;if(t.clipboardData){const[m,v]=hD.getTextData(t.clipboardData),f=v||ay.INSTANCE.get(m);this._logService.trace("CopyPasteController#handlePaste for id : ",f==null?void 0:f.id)}else this._logService.trace("CopyPasteController#handlePaste");if(!t.clipboardData||!this._editor.hasTextFocus())return;(u=D0.get(this._editor))==null||u.closeMessage(),(h=this._currentPasteOperation)==null||h.cancel(),this._currentPasteOperation=void 0;const n=this._editor.getModel(),r=this._editor.getSelections();if(!(r!=null&&r.length)||!n||this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const o=this.fetchCopyMetadata(t);this._logService.trace("CopyPasteController#handlePaste with metadata : ",o==null?void 0:o.id," and text.length : ",t.clipboardData.getData("text/plain").length);const s=DDn(t.clipboardData);s.delete(lxe);const a=Array.from(t.clipboardData.files).map(m=>m.type),l=[...t.clipboardData.types,...a,...(o==null?void 0:o.providerCopyMimeTypes)??[],ac.uriList],d=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(m=>{var f,k;const v=(f=this._pasteAsActionContext)==null?void 0:f.preferred;return v&&!this.providerMatchesPreference(m,v)?!1:(k=m.pasteMimeTypes)==null?void 0:k.some(A=>MOt(A,l))});if(!d.length){(g=this._pasteAsActionContext)!=null&&g.preferred&&(this.showPasteAsNoEditMessage(r,this._pasteAsActionContext.preferred),t.preventDefault(),t.stopImmediatePropagation());return}t.preventDefault(),t.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,d,r,s,o):this.doPasteInline(d,r,s,o,t)}showPasteAsNoEditMessage(t,n){var o;const r="only"in n?n.only.value:"preferences"in n?n.preferences.length?n.preferences.map(s=>s.value).join(", "):U(919,"empty"):n.providerId;(o=D0.get(this._editor))==null||o.showMessage(U(920,"No paste edits for '{0}' found",r),t[0].getStartPosition())}doPasteInline(t,n,r,o,s){this._logService.trace("CopyPasteController#doPasteInline");const a=this._editor;if(!a.hasModel())return;const l=new z8(a,3,void 0),d=Fd(async u=>{const h=this._editor;if(!h.hasModel())return;const g=h.getModel(),m=new xt,v=m.add(new ja(u));m.add(l.token.onCancellationRequested(()=>v.cancel()));const f=v.token;try{if(await this.mergeInDataFromCopy(t,r,o,f),f.isCancellationRequested)return;const k=t.filter(b=>this.isSupportedPasteProvider(b,r));if(!k.length||k.length===1&&k[0]instanceof bR)return this.applyDefaultPasteHandler(r,o,f,s);const A={triggerKind:hJ.Automatic},p=await this.getPasteEdits(k,r,g,n,A,f);if(m.add(p),f.isCancellationRequested)return;if(p.edits.length===1&&p.edits[0].provider instanceof bR)return this.applyDefaultPasteHandler(r,o,f,s);if(p.edits.length){const b=h.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(n,{activeEditIndex:this.getInitialActiveEditIndex(g,p.edits),allEdits:p.edits},b,async(w,O)=>{if(!w.provider.resolveDocumentPasteEdit)return w;const y=w.provider.resolveDocumentPasteEdit(w,O),C=new pI,_=await this._pasteProgressManager.showWhile(n[0].getEndPosition(),U(921,"Resolving paste edit for '{0}'. Click to cancel",w.title),YW(Promise.race([C.p,y]),O),{cancel:()=>C.cancel()},0);return _&&(w.insertText=_.insertText,w.additionalEdit=_.additionalEdit),w},f)}await this.applyDefaultPasteHandler(r,o,f,s)}finally{m.dispose(),this._currentPasteOperation===d&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(n[0].getEndPosition(),U(922,"Running paste handlers. Click to cancel and do basic paste"),d,{cancel:async()=>{d.cancel(),!l.token.isCancellationRequested&&await this.applyDefaultPasteHandler(r,o,l.token,s)}}).finally(()=>{l.dispose()}),this._currentPasteOperation=d}showPasteAsPick(t,n,r,o,s){this._logService.trace("CopyPasteController#showPasteAsPick");const a=Fd(async l=>{var m;const d=this._editor;if(!d.hasModel())return;const u=d.getModel(),h=new xt,g=h.add(new z8(d,3,void 0,l));try{if(await this.mergeInDataFromCopy(n,o,s,g.token),g.token.isCancellationRequested)return;let v=n.filter(b=>this.isSupportedPasteProvider(b,o,t));t&&(v=v.filter(b=>this.providerMatchesPreference(b,t)));const f={triggerKind:hJ.PasteAs,only:t&&"only"in t?t.only:void 0};let k=h.add(await this.getPasteEdits(v,o,u,r,f,g.token));if(g.token.isCancellationRequested)return;if(t&&(k={edits:k.edits.filter(b=>"only"in t?t.only.contains(b.kind):"preferences"in t?t.preferences.some(w=>w.contains(b.kind)):t.providerId===b.provider.id),dispose:k.dispose}),!k.edits.length){t&&this.showPasteAsNoEditMessage(r,t);return}let A;if(t)A=k.edits.at(0);else{const b={id:"editor.pasteAs.default",label:U(923,"Configure default paste action"),edit:void 0},w=await this._quickInputService.pick([...k.edits.map(O=>{var y;return{label:O.title,description:(y=O.kind)==null?void 0:y.value,edit:O}}),...n4._configureDefaultAction?[{type:"separator"},{label:n4._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:U(924,"Select Paste Action")});if(w===b){(m=n4._configureDefaultAction)==null||m.run();return}A=w==null?void 0:w.edit}if(!A)return;const p=WDn(u.uri,r,A);await this._bulkEditService.apply(p,{editor:this._editor})}finally{h.dispose(),this._currentPasteOperation===a&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:U(925,"Running paste handlers")},()=>a)}setCopyMetadata(t,n){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",n.id),t.setData(lxe,JSON.stringify(n))}fetchCopyMetadata(t){if(this._logService.trace("CopyPasteController#fetchCopyMetadata"),!t.clipboardData)return;const n=t.clipboardData.getData(lxe);if(n)try{return JSON.parse(n)}catch{return}const[r,o]=hD.getTextData(t.clipboardData);if(o)return{defaultPastePayload:{mode:o.mode,multicursorText:o.multicursorText??null,pasteOnNewLine:!!o.isFromEmptySelection}}}async mergeInDataFromCopy(t,n,r,o){var s;if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",r==null?void 0:r.id),r!=null&&r.id&&((s=n4._currentCopyOperation)==null?void 0:s.handle)===r.id){const a=n4._currentCopyOperation.operations.filter(d=>t.some(u=>u.pasteMimeTypes.some(h=>MOt(h,d.providerMimeTypes)))).map(d=>d.operation),l=await Promise.all(a);if(o.isCancellationRequested)return;for(const d of l.reverse())if(d)for(const[u,h]of d)n.replace(u,h)}if(!n.has(ac.uriList)){const a=await this._clipboardService.readResources();if(o.isCancellationRequested)return;a.length&&n.append(ac.uriList,Mtt(k3e.create(a)))}}async getPasteEdits(t,n,r,o,s,a){const l=new xt,d=await YW(Promise.all(t.map(async h=>{var g,m;try{const v=await((g=h.provideDocumentPasteEdits)==null?void 0:g.call(h,r,o,n,s,a));return v&&l.add(v),(m=v==null?void 0:v.edits)==null?void 0:m.map(f=>({...f,provider:h}))}catch(v){C2(v)||console.error(v);return}})),a),u=P3(d??[]).flat().filter(h=>!s.only||s.only.contains(h.kind));return{edits:VDn(u),dispose:()=>l.dispose()}}async applyDefaultPasteHandler(t,n,r,o){const s=t.get(ac.text)??t.get("text"),a=await(s==null?void 0:s.asString())??"";if(r.isCancellationRequested)return;const l={clipboardEvent:o,text:a,pasteOnNewLine:(n==null?void 0:n.defaultPastePayload.pasteOnNewLine)??!1,multicursorText:(n==null?void 0:n.defaultPastePayload.multicursorText)??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",n==null?void 0:n.id),this._editor.trigger("keyboard","paste",l)}isSupportedPasteProvider(t,n,r){var o;return(o=t.pasteMimeTypes)!=null&&o.some(s=>n.matches(s))?!r||this.providerMatchesPreference(t,r):!1}providerMatchesPreference(t,n){return"only"in n?t.providedPasteEditKinds.some(r=>n.only.contains(r)):"preferences"in n?n.preferences.some(r=>n.preferences.some(o=>o.contains(r))):t.id===n.providerId}getInitialActiveEditIndex(t,n){const r=this._configService.getValue(evo,{resource:t.uri});for(const o of Array.isArray(r)?r:[]){const s=new El(o),a=n.findIndex(l=>s.contains(l.kind));if(a>=0)return a}return 0}},n4=FD,FD.ID="editor.contrib.copyPasteActionController",FD);$8=n4=J2o([GC(1,Yn),GC(2,va),GC(3,Yie),GC(4,U0),GC(5,ba),GC(6,ar),GC(7,Nn),GC(8,Rf),GC(9,cQn)],$8);const CR="9_cutcopypaste",tvo=v3||document.queryCommandSupported("cut"),YDn=v3||document.queryCommandSupported("copy"),nvo=typeof navigator.clipboard>"u"||k1?document.queryCommandSupported("paste"):!0;function Vtt(e){return e.register(),e}const ivo=tvo?Vtt(new Xz({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:v3?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:Wn.MenubarEditMenu,group:"2_ccp",title:U(813,"Cu&&t"),order:1},{menuId:Wn.EditorContext,group:CR,title:U(814,"Cut"),when:$e.writable,order:1},{menuId:Wn.CommandPalette,group:"",title:U(815,"Cut"),order:1},{menuId:Wn.SimpleEditorContext,group:CR,title:U(816,"Cut"),when:$e.writable,order:1}]})):void 0,rvo=YDn?Vtt(new Xz({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:v3?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:Wn.MenubarEditMenu,group:"2_ccp",title:U(817,"&&Copy"),order:2},{menuId:Wn.EditorContext,group:CR,title:U(818,"Copy"),order:2},{menuId:Wn.CommandPalette,group:"",title:U(819,"Copy"),order:1},{menuId:Wn.SimpleEditorContext,group:CR,title:U(820,"Copy"),order:2}]})):void 0;Iu.appendMenuItem(Wn.MenubarEditMenu,{submenu:Wn.MenubarCopy,title:_t(825,"Copy As"),group:"2_ccp",order:3});Iu.appendMenuItem(Wn.EditorContext,{submenu:Wn.EditorContextCopy,title:_t(826,"Copy As"),group:CR,order:3});Iu.appendMenuItem(Wn.EditorContext,{submenu:Wn.EditorContextShare,title:_t(827,"Share"),group:"11_share",order:-1,when:Ft.and(Ft.notEquals("resourceScheme","output"),$e.editorTextFocus)});Iu.appendMenuItem(Wn.ExplorerContext,{submenu:Wn.ExplorerContextShare,title:_t(828,"Share"),group:"11_share",order:-1});const cxe=nvo?Vtt(new Xz({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:v3?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:Wn.MenubarEditMenu,group:"2_ccp",title:U(821,"&&Paste"),order:4},{menuId:Wn.EditorContext,group:CR,title:U(822,"Paste"),when:$e.writable,order:4},{menuId:Wn.CommandPalette,group:"",title:U(823,"Paste"),order:1},{menuId:Wn.SimpleEditorContext,group:CR,title:U(824,"Paste"),when:$e.writable,order:4}]})):void 0;class ovo extends Bn{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:_t(829,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,weight:100}})}run(t,n){const r=t.get(va);r.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!(!n.hasModel()||!n.getOption(45)&&n.getSelection().isEmpty())&&(HNe.forceCopyWithSyntaxHighlighting=!0,n.focus(),r.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),n.getContainerDomNode().ownerDocument.execCommand("copy"),r.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),HNe.forceCopyWithSyntaxHighlighting=!1)}}function ZDn(e,t){e&&(e.addImplementation(1e4,"code-editor",(n,r)=>{const o=n.get(va);o.trace("registerExecCommandImpl (addImplementation code-editor for : ",t,")");const s=n.get(yo).getFocusedCodeEditor();if(s&&s.hasTextFocus()){const a=s.getOption(45),l=s.getSelection();return l&&l.isEmpty()&&!a||(s.getOption(170)&&t==="cut"?(VOt(s),o.trace("registerExecCommandImpl (before execCommand copy)"),s.getContainerDomNode().ownerDocument.execCommand("copy"),s.trigger(void 0,"cut",void 0),o.trace("registerExecCommandImpl (after execCommand copy)")):(VOt(s),o.trace("registerExecCommandImpl (before execCommand "+t+")"),s.getContainerDomNode().ownerDocument.execCommand(t),o.trace("registerExecCommandImpl (after execCommand "+t+")"))),!0}return!1}),e.addImplementation(0,"generic-dom",(n,r)=>{const o=n.get(va);return o.trace("registerExecCommandImpl (addImplementation generic-dom for : ",t,")"),o.trace("registerExecCommandImpl (before execCommand "+t+")"),Eie().execCommand(t),o.trace("registerExecCommandImpl (after execCommand "+t+")"),!0}))}function VOt(e){if(e.getOption(170)){const n=zet.get(e.getId());n&&n.onWillCopy()}}ZDn(ivo,"cut");ZDn(rvo,"copy");cxe&&(cxe.addImplementation(1e4,"code-editor",(e,t)=>{const n=e.get(va);n.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");const r=e.get(yo),o=e.get(U0),s=e.get(Nf),a=e.get(k2o),l=r.getFocusedCodeEditor();if(l&&l.hasModel()&&l.hasTextFocus()){if(l.getOption(170)){const g=zet.get(l.getId());g&&g.onWillPaste()}const u=vu.create(!0);n.trace("registerExecCommandImpl (before triggerPaste)");const h=o.triggerPaste(vs().vscodeWindowId);return h?(n.trace("registerExecCommandImpl (triggerPaste defined)"),h.then(async()=>{var g;if(n.trace("registerExecCommandImpl (after triggerPaste)"),a.quality!=="stable"){const m=u.elapsed();s.publicLog2("editorAsyncPaste",{duration:m})}return((g=$8.get(l))==null?void 0:g.finishedPaste())??Promise.resolve()})):(n.trace("registerExecCommandImpl (triggerPaste undefined)"),qy?(n.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{const g=await o.readText();if(g!==""){const m=ay.INSTANCE.get(g);let v=!1,f=null,k=null;m&&(v=l.getOption(45)&&!!m.isFromEmptySelection,f=typeof m.multicursorText<"u"?m.multicursorText:null,k=m.mode),n.trace("registerExecCommandImpl (clipboardText.length : ",g.length," id : ",m==null?void 0:m.id,")"),l.trigger("keyboard","paste",{text:g,pasteOnNewLine:v,multicursorText:f,mode:k})}})()):!0)}return!1}),cxe.addImplementation(0,"generic-dom",(e,t)=>(e.get(va).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),e.get(U0).triggerPaste(vs().vscodeWindowId)??!1)));YDn&&un(ovo);const v3e=Object.freeze({id:"editor",order:5,type:"object",title:U(147,"Editor"),scope:6}),G1e={...v3e,properties:{"editor.tabSize":{type:"number",default:jh.tabSize,minimum:1,maximum:100,markdownDescription:U(148,"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:U(149,'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:jh.insertSpaces,markdownDescription:U(150,"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:jh.detectIndentation,markdownDescription:U(151,"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:jh.trimAutoWhitespace,description:U(152,"Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:jh.largeFileOptimizations,description:U(153,"Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[U(154,"Turn off Word Based Suggestions."),U(155,"Only suggest words from the active document."),U(156,"Suggest words from all open documents of the same language."),U(157,"Suggest words from all open documents.")],description:U(158,"Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[U(159,"Semantic highlighting enabled for all color themes."),U(160,"Semantic highlighting disabled for all color themes."),U(161,"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:U(162,"Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:U(163,"Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:U(164,"Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!0,description:U(165,"Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:U(166,"Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:U(167,"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.experimental.treeSitterTelemetry":{type:"boolean",default:!1,markdownDescription:U(168,"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `#editor.experimental.preferTreeSitter#` for specific languages will take precedence."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.css":{type:"boolean",default:!1,markdownDescription:U(169,"Controls whether tree sitter parsing should be turned on for css. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for css."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.typescript":{type:"boolean",default:!1,markdownDescription:U(170,"Controls whether tree sitter parsing should be turned on for typescript. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for typescript."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.ini":{type:"boolean",default:!1,markdownDescription:U(171,"Controls whether tree sitter parsing should be turned on for ini. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for ini."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.regex":{type:"boolean",default:!1,markdownDescription:U(172,"Controls whether tree sitter parsing should be turned on for regex. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for regex."),tags:["experimental"],experiment:{mode:"auto"}},"editor.language.brackets":{type:["array","null"],default:null,description:U(173,"Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:U(174,"The opening bracket character or string sequence.")},{type:"string",description:U(175,"The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:U(176,"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:U(177,"The opening bracket character or string sequence.")},{type:"string",description:U(178,"The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:Oh.maxComputationTime,description:U(179,"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:Oh.maxFileSize,description:U(180,"Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:Oh.renderSideBySide,description:U(181,"Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:Oh.renderSideBySideInlineBreakpoint,description:U(182,"If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:Oh.useInlineViewWhenSpaceIsLimited,description:U(183,"If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:Oh.renderMarginRevertIcon,description:U(184,"When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:Oh.renderGutterMenu,description:U(185,"When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:Oh.ignoreTrimWhitespace,description:U(186,"When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:Oh.renderIndicators,description:U(187,"Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:Oh.diffCodeLens,description:U(188,"Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:Oh.diffWordWrap,markdownEnumDescriptions:[U(189,"Lines will never wrap."),U(190,"Lines will wrap at the viewport width."),U(191,"Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:Oh.diffAlgorithm,markdownEnumDescriptions:[U(192,"Uses the legacy diffing algorithm."),U(193,"Uses the advanced diffing algorithm.")]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:Oh.hideUnchangedRegions.enabled,markdownDescription:U(194,"Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:Oh.hideUnchangedRegions.revealLineCount,markdownDescription:U(195,"Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:Oh.hideUnchangedRegions.minimumLineCount,markdownDescription:U(196,"Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:Oh.hideUnchangedRegions.contextLineCount,markdownDescription:U(197,"Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:Oh.experimental.showMoves,markdownDescription:U(198,"Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:Oh.experimental.showEmptyDecorations,description:U(199,"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")},"diffEditor.experimental.useTrueInlineView":{type:"boolean",default:Oh.experimental.useTrueInlineView,description:U(200,"If enabled and the editor uses the inline view, word changes are rendered inline.")}}};function svo(e){return typeof e.type<"u"||typeof e.anyOf<"u"}for(const e of fN){const t=e.schema;if(typeof t<"u")if(svo(t))G1e.properties[`editor.${e.name}`]=t;else for(const n in t)Object.hasOwnProperty.call(t,n)&&(G1e.properties[n]=t[n])}let jle=null;function qDn(){return jle===null&&(jle=Object.create(null),Object.keys(G1e.properties).forEach(e=>{jle[e]=!0})),jle}function avo(e){return qDn()[`editor.${e}`]||!1}function lvo(e){return qDn()[`diffEditor.${e}`]||!1}const cvo=Ql.as(F3.Configuration);cvo.registerConfiguration(G1e);const Ma=new class{constructor(){this.QuickFix=new El("quickfix"),this.Refactor=new El("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new El("notebook"),this.Source=new El("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var j0;(function(e){e.Refactor="refactor",e.RefactorPreview="refactor preview",e.Lightbulb="lightbulb",e.Default="other (default)",e.SourceAction="source action",e.QuickFix="quick fix action",e.FixAll="fix all",e.OrganizeImports="organize imports",e.AutoFix="auto fix",e.QuickFixHover="quick fix hover window",e.OnSave="save participants",e.ProblemsView="problems view"})(j0||(j0={}));function dvo(e,t){return!(e.include&&!e.include.intersects(t)||e.excludes&&e.excludes.some(n=>KDn(t,n,e.include))||!e.includeSourceActions&&Ma.Source.contains(t))}function uvo(e,t){const n=t.kind?new El(t.kind):void 0;return!(e.include&&(!n||!e.include.contains(n))||e.excludes&&n&&e.excludes.some(r=>KDn(n,r,e.include))||!e.includeSourceActions&&n&&Ma.Source.contains(n)||e.onlyIncludePreferredActions&&!t.isPreferred)}function KDn(e,t,n){return!(!t.contains(e)||n&&t.contains(n))}class _O{static fromUser(t,n){return!t||typeof t!="object"?new _O(n.kind,n.apply,!1):new _O(_O.getKindFromUser(t,n.kind),_O.getApplyFromUser(t,n.apply),_O.getPreferredUser(t))}static getApplyFromUser(t,n){switch(typeof t.apply=="string"?t.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return n}}static getKindFromUser(t,n){return typeof t.kind=="string"?new El(t.kind):n}static getPreferredUser(t){return typeof t.preferred=="boolean"?t.preferred:!1}constructor(t,n,r){this.kind=t,this.apply=n,this.preferred=r}}class hvo{constructor(t,n,r){this.action=t,this.provider=n,this.highlightRange=r}async resolve(t){var n;if((n=this.provider)!=null&&n.resolveCodeAction&&!this.action.edit){let r;try{r=await this.provider.resolveCodeAction(this.action,t)}catch(o){Nc(o)}r&&(this.action.edit=r.edit)}return this}}const JDn="editor.action.codeAction",ztt="editor.action.quickFix",eBn="editor.action.autoFix",tBn="editor.action.refactor",nBn="editor.action.sourceAction",Mje="editor.action.organizeImports",Pje="editor.action.fixAll",fvo=1e3;class TZ extends ft{static codeActionsPreferredComparator(t,n){return t.isPreferred&&!n.isPreferred?-1:!t.isPreferred&&n.isPreferred?1:0}static codeActionsComparator({action:t},{action:n}){return t.isAI&&!n.isAI?1:!t.isAI&&n.isAI?-1:yg(t.diagnostics)?yg(n.diagnostics)?TZ.codeActionsPreferredComparator(t,n):-1:yg(n.diagnostics)?1:TZ.codeActionsPreferredComparator(t,n)}constructor(t,n,r){super(),this.documentation=n,this._register(r),this.allActions=[...t].sort(TZ.codeActionsComparator),this.validActions=this.allActions.filter(({action:o})=>!o.disabled)}get hasAutoFix(){return this.validActions.some(({action:t})=>!!t.kind&&Ma.QuickFix.contains(new El(t.kind))&&!!t.isPreferred)}get hasAIFix(){return this.validActions.some(({action:t})=>!!t.isAI)}get allAIFixes(){return this.validActions.every(({action:t})=>!!t.isAI)}}const zOt={actions:[],documentation:void 0};async function ON(e,t,n,r,o,s){var k;const a=r.filter||{},l={...a,excludes:[...a.excludes||[],Ma.Notebook]},d={only:(k=a.include)==null?void 0:k.value,trigger:r.type},u=new Ntt(t,s),h=r.type===2,g=gvo(e,t,h?l:a),m=new xt,v=g.map(async A=>{const p=setTimeout(()=>o.report(A),1250);try{const b=await A.provideCodeActions(t,n,d,u.token);if(u.token.isCancellationRequested)return b==null||b.dispose(),zOt;b&&m.add(b);const w=((b==null?void 0:b.actions)||[]).filter(y=>y&&uvo(a,y)),O=kvo(A,w,a.include);return{actions:w.map(y=>new hvo(y,A)),documentation:O}}catch(b){if(C2(b))throw b;return Nc(b),zOt}finally{clearTimeout(p)}}),f=e.onDidChange(()=>{const A=e.all(t);Na(A,g)||u.cancel()});try{const A=await Promise.all(v),p=A.map(O=>O.actions).flat(),b=[...P3(A.map(O=>O.documentation)),...mvo(e,t,r,p)],w=new TZ(p,b,m);return m.add(w),w}catch(A){throw m.dispose(),A}finally{f.dispose(),u.dispose()}}function gvo(e,t,n){return e.all(t).filter(r=>r.providedCodeActionKinds?r.providedCodeActionKinds.some(o=>dvo(n,new El(o))):!0)}function*mvo(e,t,n,r){var o,s,a;if(t&&r.length)for(const l of e.all(t))l._getAdditionalMenuItems&&(yield*(a=l._getAdditionalMenuItems)==null?void 0:a.call(l,{trigger:n.type,only:(s=(o=n.filter)==null?void 0:o.include)==null?void 0:s.value},r.map(d=>d.action)))}function kvo(e,t,n){if(!e.documentation)return;const r=e.documentation.map(o=>({kind:new El(o.kind),command:o.command}));if(n){let o;for(const s of r)s.kind.contains(n)&&(o?o.kind.contains(s.kind)&&(o=s):o=s);if(o)return o==null?void 0:o.command}for(const o of t)if(o.kind){for(const s of r)if(s.kind.contains(new El(o.kind)))return s.command}}var p9;(function(e){e.OnSave="onSave",e.FromProblemsView="fromProblemsView",e.FromCodeActions="fromCodeActions",e.FromAILightbulb="fromAILightbulb",e.FromProblemsHover="fromProblemsHover"})(p9||(p9={}));async function vvo(e,t,n,r,o=Er.None){var h,g;const s=e.get(Yie),a=e.get(ba),l=e.get(Nf),d=e.get(ic),u=e.get(pL);if(l.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred,reason:n}),u.playSignal(nm.codeActionTriggered),await t.resolve(o),!o.isCancellationRequested&&!((h=t.action.edit)!=null&&h.edits.length&&!(await s.apply(t.action.edit,{editor:r==null?void 0:r.editor,label:t.action.title,quotableLabel:t.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:n!==p9.OnSave,showPreview:r==null?void 0:r.preview,reason:Af.codeAction({kind:t.action.kind,providerId:r3e.fromExtensionId((g=t.provider)==null?void 0:g.extensionId)})})).isApplied)){if(t.action.command)try{await a.executeCommand(t.action.command.id,...t.action.command.arguments||[])}catch(m){const v=Avo(m);d.error(typeof v=="string"?v:U(830,"An unknown error occurred while applying the code action"))}setTimeout(()=>u.playSignal(nm.codeActionApplied),fvo)}}function Avo(e){return typeof e=="string"?e:e instanceof Error&&typeof e.message=="string"?e.message:void 0}uo.registerCommand("_executeCodeActionProvider",async function(e,t,n,r,o){if(!(t instanceof vi))throw Gv();const{codeActionProvider:s}=e.get(Nn),a=e.get(ml).getModel(t);if(!a)throw Gv();const l=Qn.isISelection(n)?Qn.liftSelection(n):Ee.isIRange(n)?a.validateRange(n):void 0;if(!l)throw Gv();const d=typeof r=="string"?new El(r):void 0,u=await ON(s,a,l,{type:1,triggerAction:j0.Default,filter:{includeSourceActions:!0,include:d}},qb.None,Er.None),h=[],g=Math.min(u.validActions.length,typeof o=="number"?o:0);for(let m=0;mm.action)}finally{setTimeout(()=>u.dispose(),100)}});var xl;(function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"})(xl||(xl={}));(function(e){function t(d,u){return u-d}e.compare=t;const n=Object.create(null);n[e.Error]=U(1732,"Error"),n[e.Warning]=U(1733,"Warning"),n[e.Info]=U(1734,"Info");function r(d){return n[d]||""}e.toString=r;const o=Object.create(null);o[e.Error]=U(1735,"Errors"),o[e.Warning]=U(1736,"Warnings"),o[e.Info]=U(1737,"Infos");function s(d){return o[d]||""}e.toStringPlural=s;function a(d){switch(d){case Sl.Error:return e.Error;case Sl.Warning:return e.Warning;case Sl.Info:return e.Info;case Sl.Ignore:return e.Hint}}e.fromSeverity=a;function l(d){switch(d){case e.Error:return Sl.Error;case e.Warning:return Sl.Warning;case e.Info:return Sl.Info;case e.Hint:return Sl.Ignore}}e.toSeverity=l})(xl||(xl={}));var Y1e;(function(e){const t="";function n(o){return r(o,!0)}e.makeKey=n;function r(o,s){const a=[t];return o.source?a.push(o.source.replace("¦","\\¦")):a.push(t),o.code?typeof o.code=="string"?a.push(o.code.replace("¦","\\¦")):a.push(o.code.value.replace("¦","\\¦")):a.push(t),o.severity!==void 0&&o.severity!==null?a.push(xl.toString(o.severity)):a.push(t),o.message&&s?a.push(o.message.replace("¦","\\¦")):a.push(t),o.startLineNumber!==void 0&&o.startLineNumber!==null?a.push(o.startLineNumber.toString()):a.push(t),o.startColumn!==void 0&&o.startColumn!==null?a.push(o.startColumn.toString()):a.push(t),o.endLineNumber!==void 0&&o.endLineNumber!==null?a.push(o.endLineNumber.toString()):a.push(t),o.endColumn!==void 0&&o.endColumn!==null?a.push(o.endColumn.toString()):a.push(t),a.push(t),a.join("¦")}e.makeKeyOptionalMessage=r})(Y1e||(Y1e={}));const nC=Cr("markerService");var pvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},bvo=function(e,t){return function(n,r){t(n,r,e)}},Fje,ND;let Nje=(ND=class{constructor(t){this.keybindingService=t}getResolver(){const t=new zh(()=>this.keybindingService.getKeybindings().filter(n=>Fje.codeActionCommands.indexOf(n.command)>=0).filter(n=>n.resolvedKeybinding).map(n=>{let r=n.commandArgs;return n.command===Mje?r={kind:Ma.SourceOrganizeImports.value}:n.command===Pje&&(r={kind:Ma.SourceFixAll.value}),{resolvedKeybinding:n.resolvedKeybinding,..._O.fromUser(r,{kind:El.None,apply:"never"})}}));return n=>{if(n.kind){const r=this.bestKeybindingForCodeAction(n,t.value);return r==null?void 0:r.resolvedKeybinding}}}bestKeybindingForCodeAction(t,n){if(!t.kind)return;const r=new El(t.kind);return n.filter(o=>o.kind.contains(r)).filter(o=>o.preferred?t.isPreferred:!0).reduceRight((o,s)=>o?o.kind.contains(s.kind)?s:o:s,void 0)}},Fje=ND,ND.codeActionCommands=[tBn,JDn,nBn,Mje,Pje],ND);Nje=Fje=pvo([bvo(0,Do)],Nje);Ve("symbolIcon.arrayForeground",Pr,U(1495,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.booleanForeground",Pr,U(1496,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},U(1497,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.colorForeground",Pr,U(1498,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.constantForeground",Pr,U(1499,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},U(1500,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},U(1501,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1502,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},U(1503,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1504,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.fileForeground",Pr,U(1505,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.folderForeground",Pr,U(1506,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},U(1507,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1508,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.keyForeground",Pr,U(1509,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.keywordForeground",Pr,U(1510,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},U(1511,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.moduleForeground",Pr,U(1512,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.namespaceForeground",Pr,U(1513,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.nullForeground",Pr,U(1514,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.numberForeground",Pr,U(1515,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.objectForeground",Pr,U(1516,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.operatorForeground",Pr,U(1517,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.packageForeground",Pr,U(1518,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.propertyForeground",Pr,U(1519,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.referenceForeground",Pr,U(1520,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.snippetForeground",Pr,U(1521,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.stringForeground",Pr,U(1522,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.structForeground",Pr,U(1523,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.textForeground",Pr,U(1524,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.typeParameterForeground",Pr,U(1525,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.unitForeground",Pr,U(1526,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));Ve("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},U(1527,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const iBn=Object.freeze({kind:El.Empty,title:U(866,"More Actions...")}),wvo=Object.freeze([{kind:Ma.QuickFix,title:U(867,"Quick Fix")},{kind:Ma.RefactorExtract,title:U(868,"Extract"),icon:zt.wrench},{kind:Ma.RefactorInline,title:U(869,"Inline"),icon:zt.wrench},{kind:Ma.RefactorRewrite,title:U(870,"Rewrite"),icon:zt.wrench},{kind:Ma.RefactorMove,title:U(871,"Move"),icon:zt.wrench},{kind:Ma.SurroundWith,title:U(872,"Surround With"),icon:zt.surroundWith},{kind:Ma.Source,title:U(873,"Source Action"),icon:zt.symbolFile},iBn]);function Ovo(e,t,n){if(!t)return e.map(s=>{var a;return{kind:"action",item:s,group:iBn,disabled:!!s.action.disabled,label:s.action.disabled||s.action.title,canPreview:!!((a=s.action.edit)!=null&&a.edits.length)}});const r=wvo.map(s=>({group:s,actions:[]}));for(const s of e){const a=s.action.kind?new El(s.action.kind):El.None;for(const l of r)if(l.group.kind.contains(a)){l.actions.push(s);break}}const o=[];for(const s of r)if(s.actions.length){o.push({kind:"header",group:s.group});for(const a of s.actions){const l=s.group;o.push({kind:"action",item:a,group:a.action.isAI?{title:l.title,kind:l.kind,icon:zt.sparkle}:l,label:a.action.title,disabled:!!a.action.disabled,keybinding:n(a.action)})}}return o}const rBn=new yn("supportedCodeAction",""),HOt="_typescript.applyFixAllCodeAction";class yvo extends ft{constructor(t,n,r,o=250){super(),this._editor=t,this._markerService=n,this._signalChange=r,this._delay=o,this._autoTriggerTimer=this._register(new I0),this._register(this._markerService.onMarkerChanged(s=>this._onMarkerChanges(s))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(t){const n=this._getRangeOfSelectionUnlessWhitespaceEnclosed(t);this._signalChange(n?{trigger:t,selection:n}:void 0)}_onMarkerChanges(t){const n=this._editor.getModel();n&&t.some(r=>C6(r,n.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:j0.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(t){if(!this._editor.hasModel())return;const n=this._editor.getSelection();if(t.type===1)return n;const r=this._editor.getOption(73).enabled;if(r!==O4.Off){{if(r===O4.On)return n;if(r===O4.OnCode){if(!n.isEmpty())return n;const s=this._editor.getModel(),{lineNumber:a,column:l}=n.getPosition(),d=s.getLineContent(a);if(d.length===0)return;if(l===1){if(/\s/.test(d[0]))return}else if(l===s.getLineMaxColumn(a)){if(/\s/.test(d[d.length-1]))return}else if(/\s/.test(d[l-2])&&/\s/.test(d[l-1]))return}}return n}}}var TT;(function(e){e.Empty={type:0};class t{constructor(r,o,s){this.trigger=r,this.position=o,this._cancellablePromise=s,this.type=1,this.actions=s.catch(a=>{if(C2(a))return Uje;throw a})}cancel(){this._cancellablePromise.cancel()}}e.Triggered=t})(TT||(TT={}));const Uje=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class Cvo extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._registry=n,this._markerService=r,this._progressService=s,this._configurationService=a,this._codeActionOracle=this._register(new ts),this._state=TT.Empty,this._onDidChangeState=this._register(new at),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new ts),this._disposed=!1,this._supportedCodeActions=rBn.bindTo(o),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(73)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(TT.Empty,!0))}_settingEnabledNearbyQuickfixes(){var n;const t=(n=this._editor)==null?void 0:n.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:t==null?void 0:t.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(TT.Empty);const t=this._editor.getModel();if(t&&this._registry.has(t)&&!this._editor.getOption(104)){const n=this._registry.all(t).flatMap(r=>r.providedCodeActionKinds??[]);this._supportedCodeActions.set(n.join(" ")),this._codeActionOracle.value=new yvo(this._editor,this._markerService,r=>{var d;if(!r){this.setState(TT.Empty);return}const o=r.selection.getStartPosition(),s=Fd(async u=>{var g,m,v,f,k,A,p,b,w,O;if(this._settingEnabledNearbyQuickfixes()&&r.trigger.type===1&&(r.trigger.triggerAction===j0.QuickFix||(m=(g=r.trigger.filter)==null?void 0:g.include)!=null&&m.contains(Ma.QuickFix))){const y=await ON(this._registry,t,r.selection,r.trigger,qb.None,u);this.codeActionsDisposable.value=y;const C=[...y.allActions];if(u.isCancellationRequested)return y.dispose(),Uje;const _=(v=y.validActions)==null?void 0:v.some(L=>L.action.kind&&Ma.QuickFix.contains(new El(L.action.kind))&&!L.action.isAI),S=this._markerService.read({resource:t.uri});if(_){for(const L of y.validActions)(k=(f=L.action.command)==null?void 0:f.arguments)!=null&&k.some(E=>typeof E=="string"&&E.includes(HOt))&&(L.action.diagnostics=[...S.filter(E=>E.relatedInformation)]);return{validActions:y.validActions,allActions:C,documentation:y.documentation,hasAutoFix:y.hasAutoFix,hasAIFix:y.hasAIFix,allAIFixes:y.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=y}}}else if(!_&&S.length>0){const L=r.selection.getPosition();let E=L,T=Number.MAX_VALUE;const D=[...y.validActions];for(const Q of S){const M=Q.endColumn,B=Q.endLineNumber,R=Q.startLineNumber;if(B===L.lineNumber||R===L.lineNumber){E=new it(B,M);const I={type:r.trigger.type,triggerAction:r.trigger.triggerAction,filter:{include:(A=r.trigger.filter)!=null&&A.include?(p=r.trigger.filter)==null?void 0:p.include:Ma.QuickFix},autoApply:r.trigger.autoApply,context:{notAvailableMessage:((b=r.trigger.context)==null?void 0:b.notAvailableMessage)||"",position:E}},F=new Qn(E.lineNumber,E.column,E.lineNumber,E.column),j=await ON(this._registry,t,F,I,qb.None,u);if(u.isCancellationRequested)return j.dispose(),Uje;if(j.validActions.length!==0){for(const W of j.validActions)(O=(w=W.action.command)==null?void 0:w.arguments)!=null&&O.some(H=>typeof H=="string"&&H.includes(HOt))&&(W.action.diagnostics=[...S.filter(H=>H.relatedInformation)]);y.allActions.length===0&&C.push(...j.allActions),Math.abs(L.column-M)B.findIndex(R=>R.action.title===Q.action.title)===M);return P.sort((Q,M)=>Q.action.isPreferred&&!M.action.isPreferred?-1:!Q.action.isPreferred&&M.action.isPreferred||Q.action.isAI&&!M.action.isAI?1:!Q.action.isAI&&M.action.isAI?-1:0),{validActions:P,allActions:C,documentation:y.documentation,hasAutoFix:y.hasAutoFix,hasAIFix:y.hasAIFix,allAIFixes:y.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=y}}}}if(r.trigger.type===1){const y=await ON(this._registry,t,r.selection,r.trigger,qb.None,u);return this.codeActionsDisposable.value=y,y}const h=await ON(this._registry,t,r.selection,r.trigger,qb.None,u);return this.codeActionsDisposable.value=h,h});r.trigger.type===1&&((d=this._progressService)==null||d.showWhile(s,250));const a=new TT.Triggered(r.trigger,o,s);let l=!1;this._state.type===1&&(l=this._state.trigger.type===1&&a.type===1&&a.trigger.type===2&&this._state.position!==a.position),l?setTimeout(()=>{this.setState(a)},500):this.setState(a)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:j0.Default})}else this._supportedCodeActions.reset()}trigger(t){var n;(n=this._codeActionOracle.value)==null||n.trigger(t),this.codeActionsDisposable.dispose()}setState(t,n){t!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=t,!n&&!this._disposed&&this._onDidChangeState.fire(t))}}var _vo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Svo=function(e,t){return function(n,r){t(n,r,e)}},TF;const $Ot=Da("gutter-lightbulb",zt.lightBulb,U(874,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),XOt=Da("gutter-lightbulb-auto-fix",zt.lightbulbAutofix,U(875,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),GOt=Da("gutter-lightbulb-sparkle",zt.lightbulbSparkle,U(876,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),YOt=Da("gutter-lightbulb-aifix-auto-fix",zt.lightbulbSparkleAutofix,U(877,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),ZOt=Da("gutter-lightbulb-sparkle-filled",zt.sparkleFilled,U(878,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available."));var db;(function(e){e.Hidden={type:0};class t{constructor(r,o,s,a){this.actions=r,this.trigger=o,this.editorPosition=s,this.widgetPosition=a,this.type=1}}e.Showing=t})(db||(db={}));var VS;let NJ=(VS=class extends ft{constructor(t,n){super(),this._editor=t,this._keybindingService=n,this._onClick=this._register(new at),this.onClick=this._onClick.event,this._state=db.Hidden,this._gutterState=db.Hidden,this._iconClasses=[],this.lightbulbClasses=["codicon-"+$Ot.id,"codicon-"+YOt.id,"codicon-"+XOt.id,"codicon-"+GOt.id,"codicon-"+ZOt.id],this.gutterDecoration=TF.GUTTER_DECORATION,this._domNode=tn("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Bf.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(r=>{const o=this._editor.getModel();(this.state.type!==1||!o||this.state.editorPosition.lineNumber>=o.getLineCount())&&this.hide(),(this.gutterState.type!==1||!o||this.gutterState.editorPosition.lineNumber>=o.getLineCount())&&this.gutterHide()})),this._register(Pto(this._domNode,r=>{if(this.state.type!==1)return;this._editor.focus(),r.preventDefault();const{top:o,height:s}=Kl(this._domNode),a=this._editor.getOption(75);let l=Math.floor(a/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(r.buttons&1)===1&&this.hide()})),this._register(an.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var r,o;this._preferredKbLabel=((r=this._keybindingService.lookupKeybinding(eBn))==null?void 0:r.getLabel())??void 0,this._quickFixKbLabel=((o=this._keybindingService.lookupKeybinding(ztt))==null?void 0:o.getLabel())??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async r=>{if(!r.target.element||!this.lightbulbClasses.some(d=>r.target.element&&r.target.element.classList.contains(d))||this.gutterState.type!==1)return;this._editor.focus();const{top:o,height:s}=Kl(r.target.element),a=this._editor.getOption(75);let l=Math.floor(a/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber22,f=y=>y>2&&this._editor.getTopForLineNumber(y)===this._editor.getTopForLineNumber(y-1),k=this._editor.getLineDecorations(l);let A=!1;if(k)for(const y of k){const C=y.options.glyphMarginClassName;if(C&&!this.lightbulbClasses.some(_=>C.includes(_))){A=!0;break}}let p=l,b=1;if(!v){const y=C=>{const _=a.getLineContent(C);return/^\s*$|^\s+/.test(_)||_.length<=b};if(l>1&&!f(l-1)){const C=a.getLineCount(),_=l===C,S=l>1&&y(l-1),L=!_&&y(l+1),E=y(l),T=!L&&!S;if(!L&&!S&&!A)return this.gutterState=new db.Showing(t,n,r,{position:{lineNumber:p,column:b},preference:TF._posPref}),this.renderGutterLightbub(),this.hide();S||_||S&&!E?p-=1:(L||T&&E)&&(p+=1)}else if(l===1&&(l===a.getLineCount()||!y(l+1)&&!y(l)))if(this.gutterState=new db.Showing(t,n,r,{position:{lineNumber:p,column:b},preference:TF._posPref}),A)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(l{this._gutterDecorationID=n.addDecoration(new Ee(t,0,t,0),this.gutterDecoration)})}_removeGutterDecoration(t){this._editor.changeDecorations(n=>{n.removeDecoration(t),this._gutterDecorationID=void 0})}_updateGutterDecoration(t,n){this._editor.changeDecorations(r=>{r.changeDecoration(t,new Ee(n,0,n,0)),r.changeDecorationOptions(t,this.gutterDecoration)})}_updateLightbulbTitle(t,n){this.state.type===1&&(n?this.title=U(879,"Run: {0}",this.state.actions.validActions[0].action.title):t&&this._preferredKbLabel?this.title=U(880,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!t&&this._quickFixKbLabel?this.title=U(881,"Show Code Actions ({0})",this._quickFixKbLabel):t||(this.title=U(882,"Show Code Actions")))}set title(t){this._domNode.title=t}},TF=VS,VS.GUTTER_DECORATION=Gi.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:fi.asClassName(zt.lightBulb),glyphMargin:{position:p3.Left},stickiness:1}),VS.ID="editor.contrib.lightbulbWidget",VS._posPref=[0],VS);NJ=TF=_vo([Svo(1,Do)],NJ);var Lvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},vw=function(e,t){return function(n,r){t(n,r,e)}},QF;const xvo="quickfix-edit-highlight";var Y9;let _R=(Y9=class extends ft{static get(t){return t.getContribution(QF.ID)}constructor(t,n,r,o,s,a,l,d,u,h,g){super(),this._commandService=l,this._configurationService=d,this._actionWidgetService=u,this._instantiationService=h,this._progressService=g,this._activeCodeActions=this._register(new ts),this._showDisabled=!1,this._disposed=!1,this._editor=t,this._model=this._register(new Cvo(this._editor,s.codeActionProvider,n,r,a,d)),this._register(this._model.onDidChangeState(m=>this.update(m))),this._lightBulbWidget=new zh(()=>{const m=this._editor.getContribution(NJ.ID);return m&&this._register(m.onClick(v=>this.showCodeActionsFromLightbulb(v.actions,v))),m}),this._resolver=o.createInstance(Nje),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(t,n){if(t.allAIFixes&&t.validActions.length===1){const r=t.validActions[0],o=r.action.command;o&&o.id==="inlineChat.start"&&o.arguments&&o.arguments.length>=1&&o.arguments[0]&&(o.arguments[0]={...o.arguments[0],autoSend:!1}),await this.applyCodeAction(r,!1,!1,p9.FromAILightbulb);return}await this.showCodeActionList(t,n,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(t,n,r){return this.showCodeActionList(n,r,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(t,n,r,o){var a;if(!this._editor.hasModel())return;(a=D0.get(this._editor))==null||a.closeMessage();const s=this._editor.getPosition();this._trigger({type:1,triggerAction:n,filter:r,autoApply:o,context:{notAvailableMessage:t,position:s}})}_trigger(t){return this._model.trigger(t)}async applyCodeAction(t,n,r,o){const s=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(vvo,t,o,{preview:r,editor:this._editor})}finally{n&&this._trigger({type:2,triggerAction:j0.QuickFix,filter:{}}),s.done()}}hideLightBulbWidget(){var t,n;(t=this._lightBulbWidget.rawValue)==null||t.hide(),(n=this._lightBulbWidget.rawValue)==null||n.gutterHide()}async update(t){var o,s,a,l,d;if(t.type!==1){this.hideLightBulbWidget();return}let n;try{n=await t.actions}catch(u){zi(u);return}if(this._disposed)return;const r=this._editor.getSelection();if((r==null?void 0:r.startLineNumber)===t.position.lineNumber)if((o=this._lightBulbWidget.value)==null||o.update(n,t.trigger,t.position),t.trigger.type===1){if((s=t.trigger.filter)!=null&&s.include){const h=this.tryGetValidActionToApply(t.trigger,n);if(h){try{this.hideLightBulbWidget(),await this.applyCodeAction(h,!1,!1,p9.FromCodeActions)}finally{n.dispose()}return}if(t.trigger.context){const g=this.getInvalidActionThatWouldHaveBeenApplied(t.trigger,n);if(g&&g.action.disabled){(a=D0.get(this._editor))==null||a.showMessage(g.action.disabled,t.trigger.context.position),n.dispose();return}}}const u=!!((l=t.trigger.filter)!=null&&l.include);if(t.trigger.context&&(!n.allActions.length||!u&&!n.validActions.length)){(d=D0.get(this._editor))==null||d.showMessage(t.trigger.context.notAvailableMessage,t.trigger.context.position),this._activeCodeActions.value=n,n.dispose();return}this._activeCodeActions.value=n,this.showCodeActionList(n,this.toCoords(t.position),{includeDisabledActions:u,fromLightbulb:!1})}else this._actionWidgetService.isVisible?n.dispose():this._activeCodeActions.value=n}getInvalidActionThatWouldHaveBeenApplied(t,n){if(n.allActions.length&&(t.autoApply==="first"&&n.validActions.length===0||t.autoApply==="ifSingle"&&n.allActions.length===1))return n.allActions.find(({action:r})=>r.disabled)}tryGetValidActionToApply(t,n){if(n.validActions.length&&(t.autoApply==="first"&&n.validActions.length>0||t.autoApply==="ifSingle"&&n.validActions.length===1))return n.validActions[0]}async showCodeActionList(t,n,r){const o=this._editor.createDecorationsCollection(),s=this._editor.getDomNode();if(!s)return;const a=r.includeDisabledActions&&(this._showDisabled||t.validActions.length===0)?t.allActions:t.validActions;if(!a.length)return;const l=it.isIPosition(n)?this.toCoords(n):n,d={onSelect:async(u,h)=>{this.applyCodeAction(u,!0,!!h,r.fromLightbulb?p9.FromAILightbulb:p9.FromCodeActions),this._actionWidgetService.hide(!1),o.clear()},onHide:u=>{var h;(h=this._editor)==null||h.focus(),o.clear()},onHover:async(u,h)=>{var v;if(h.isCancellationRequested)return;let g=!1;const m=u.action.kind;if(m){const f=new El(m);g=[Ma.RefactorExtract,Ma.RefactorInline,Ma.RefactorRewrite,Ma.RefactorMove,Ma.Source].some(A=>A.contains(f))}return{canPreview:g||!!((v=u.action.edit)!=null&&v.edits.length)}},onFocus:u=>{var h,g;if(u&&u.action){const m=u.action.ranges,v=u.action.diagnostics;if(o.clear(),m&&m.length>0){const f=v&&(v==null?void 0:v.length)>1?v.map(k=>({range:k,options:QF.DECORATION})):m.map(k=>({range:k,options:QF.DECORATION}));o.set(f)}else if(v&&v.length>0){const f=v.map(A=>({range:A,options:QF.DECORATION}));o.set(f);const k=v[0];if(k.startLineNumber&&k.startColumn){const A=(g=(h=this._editor.getModel())==null?void 0:h.getWordAtPosition({lineNumber:k.startLineNumber,column:k.startColumn}))==null?void 0:g.word;A3(U(863,"Context: {0} at line {1} and column {2}.",A,k.startLineNumber,k.startColumn))}}}else o.clear()}};this._actionWidgetService.show("codeActionWidget",!0,Ovo(a,this._shouldShowHeaders(),this._resolver.getResolver()),d,l,s,this._getActionBarActions(t,n,r))}toCoords(t){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(t,1),this._editor.render();const n=this._editor.getScrolledVisiblePosition(t),r=Kl(this._editor.getDomNode()),o=r.left+n.left,s=r.top+n.top+n.height;return{x:o,y:s}}_shouldShowHeaders(){var n;const t=(n=this._editor)==null?void 0:n.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:t==null?void 0:t.uri})}_getActionBarActions(t,n,r){if(r.fromLightbulb)return[];const o=t.documentation.map(s=>({id:s.id,label:s.title,tooltip:s.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(s.id,...s.arguments??[])}));return r.includeDisabledActions&&t.validActions.length>0&&t.allActions.length!==t.validActions.length&&o.push(this._showDisabled?{id:"hideMoreActions",label:U(864,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(t,n,r))}:{id:"showMoreActions",label:U(865,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(t,n,r))}),o}},QF=Y9,Y9.ID="editor.contrib.codeActionController",Y9.DECORATION=Gi.register({description:"quickfix-highlight",className:xvo}),Y9);_R=QF=Lvo([vw(1,nC),vw(2,Qi),vw(3,Yn),vw(4,Nn),vw(5,V8),vw(6,ba),vw(7,ar),vw(8,uE),vw(9,Yn),vw(10,V8)],_R);yA((e,t)=>{((o,s)=>{s&&t.addRule(`.monaco-editor ${o} { background-color: ${s}; }`)})(".quickfix-edit-highlight",e.getColor(QS));const r=e.getColor(u9);r&&t.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${l3(e.type)?"dotted":"solid"} ${r}; box-sizing: border-box; }`)});function Kie(e){return Ft.regex(rBn.keys()[0],new RegExp("(\\s|^)"+M0(e.value)+"\\b"))}const Htt={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:U(831,"Kind of the code action to run.")},apply:{type:"string",description:U(832,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[U(833,"Always apply the first returned code action."),U(834,"Apply the first returned code action if it is the only one."),U(835,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:U(836,"Controls if only preferred code actions should be returned.")}}};function DI(e,t,n,r,o=j0.Default){if(e.hasModel()){const s=_R.get(e);s==null||s.manualTriggerAtCurrentPosition(t,o,n,r)}}class Evo extends Bn{constructor(){super({id:ztt,label:_t(853,"Quick Fix..."),precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),kbOpts:{kbExpr:$e.textInputFocus,primary:2137,weight:100}})}run(t,n){return DI(n,U(837,"No code actions available"),void 0,void 0,j0.QuickFix)}}class Tvo extends $d{constructor(){super({id:JDn,precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:Htt}]}})}runEditorCommand(t,n,r){const o=_O.fromUser(r,{kind:El.Empty,apply:"ifSingle"});return DI(n,typeof(r==null?void 0:r.kind)=="string"?o.preferred?U(838,"No preferred code actions for '{0}' available",r.kind):U(839,"No code actions for '{0}' available",r.kind):o.preferred?U(840,"No preferred code actions available"):U(841,"No code actions available"),{include:o.kind,includeSourceActions:!0,onlyIncludePreferredActions:o.preferred},o.apply)}}class Qvo extends Bn{constructor(){super({id:tBn,label:_t(854,"Refactor..."),precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),kbOpts:{kbExpr:$e.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:Ft.and($e.writable,Kie(Ma.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:Htt}]}})}run(t,n,r){const o=_O.fromUser(r,{kind:Ma.Refactor,apply:"never"});return DI(n,typeof(r==null?void 0:r.kind)=="string"?o.preferred?U(842,"No preferred refactorings for '{0}' available",r.kind):U(843,"No refactorings for '{0}' available",r.kind):o.preferred?U(844,"No preferred refactorings available"):U(845,"No refactorings available"),{include:Ma.Refactor.contains(o.kind)?o.kind:El.None,onlyIncludePreferredActions:o.preferred},o.apply,j0.Refactor)}}class Dvo extends Bn{constructor(){super({id:nBn,label:_t(855,"Source Action..."),precondition:Ft.and($e.writable,$e.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:Ft.and($e.writable,Kie(Ma.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:Htt}]}})}run(t,n,r){const o=_O.fromUser(r,{kind:Ma.Source,apply:"never"});return DI(n,typeof(r==null?void 0:r.kind)=="string"?o.preferred?U(846,"No preferred source actions for '{0}' available",r.kind):U(847,"No source actions for '{0}' available",r.kind):o.preferred?U(848,"No preferred source actions available"):U(849,"No source actions available"),{include:Ma.Source.contains(o.kind)?o.kind:El.None,includeSourceActions:!0,onlyIncludePreferredActions:o.preferred},o.apply,j0.SourceAction)}}class Bvo extends Bn{constructor(){super({id:Mje,label:_t(856,"Organize Imports"),precondition:Ft.and($e.writable,Kie(Ma.SourceOrganizeImports)),kbOpts:{kbExpr:$e.textInputFocus,primary:1581,weight:100},metadata:{description:_t(857,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(t,n){return DI(n,U(850,"No organize imports action available"),{include:Ma.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",j0.OrganizeImports)}}class Rvo extends Bn{constructor(){super({id:Pje,label:_t(858,"Fix All"),precondition:Ft.and($e.writable,Kie(Ma.SourceFixAll))})}run(t,n){return DI(n,U(851,"No fix all action available"),{include:Ma.SourceFixAll,includeSourceActions:!0},"ifSingle",j0.FixAll)}}class Ivo extends Bn{constructor(){super({id:eBn,label:_t(859,"Auto Fix..."),precondition:Ft.and($e.writable,Kie(Ma.QuickFix)),kbOpts:{kbExpr:$e.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(t,n){return DI(n,U(852,"No auto fixes available"),{include:Ma.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",j0.AutoFix)}}mo(_R.ID,_R,3);mo(NJ.ID,NJ,4);un(Evo);un(Qvo);un(Dvo);un(Bvo);un(Ivo);un(Rvo);On(new Tvo);Ql.as(F3.Configuration).registerConfiguration({...v3e,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:U(860,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});Ql.as(F3.Configuration).registerConfiguration({...v3e,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:U(861,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});Ql.as(F3.Configuration).registerConfiguration({...v3e,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:6,markdownDescription:U(862,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});const Yve=class Yve{constructor(){this.lenses=[]}dispose(){var t;(t=this._store)==null||t.dispose()}get isDisposed(){var t;return((t=this._store)==null?void 0:t.isDisposed)??!1}add(t,n){AI(t)&&(this._store??(this._store=new xt),this._store.add(t));for(const r of t.lenses)this.lenses.push({symbol:r,provider:n})}};Yve.Empty=new Yve;let kV=Yve;async function oBn(e,t,n){const r=e.ordered(t),o=new Map,s=new kV,a=r.map(async(l,d)=>{o.set(l,d);try{const u=await Promise.resolve(l.provideCodeLenses(t,n));u&&s.add(u,l)}catch(u){Nc(u)}});return await Promise.all(a),n.isCancellationRequested?(s.dispose(),kV.Empty):(s.lenses=s.lenses.sort((l,d)=>l.symbol.range.startLineNumberd.symbol.range.startLineNumber?1:o.get(l.provider)o.get(d.provider)?1:l.symbol.range.startColumnd.symbol.range.startColumn?1:0),s)}uo.registerCommand("_executeCodeLensProvider",function(e,...t){let[n,r]=t;Oo(vi.isUri(n)),Oo(typeof r=="number"||!r);const{codeLensProvider:o}=e.get(Nn),s=e.get(ml).getModel(n);if(!s)throw Gv();const a=[],l=new xt;return oBn(o,s,Er.None).then(d=>{l.add(d);const u=[];for(const h of d.lenses)r==null||h.symbol.command?a.push(h.symbol):r-- >0&&h.provider.resolveCodeLens&&u.push(Promise.resolve(h.provider.resolveCodeLens(s,h.symbol,Er.None)).then(g=>a.push(g||h.symbol)));return Promise.all(u)}).then(()=>a).finally(()=>{setTimeout(()=>l.dispose(),100)})});var Mvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Pvo=function(e,t){return function(n,r){t(n,r,e)}};const sBn=Cr("ICodeLensCache");class qOt{constructor(t,n){this.lineCount=t,this.data=n}}let jje=class{constructor(t){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new wp(20,.75);const n="codelens/cache";RG(Ls,()=>t.remove(n,1));const r="codelens/cache2",o=t.get(r,1,"{}");this._deserialize(o);const s=an.filter(t.onWillSaveState,a=>a.reason===F9.SHUTDOWN);an.once(s)(a=>{t.store(r,this._serialize(),1,1)})}put(t,n){const r=n.lenses.map(a=>{var l;return{range:a.symbol.range,command:a.symbol.command&&{id:"",title:(l=a.symbol.command)==null?void 0:l.title}}}),o=new kV;o.add({lenses:r},this._fakeProvider);const s=new qOt(t.getLineCount(),o);this._cache.set(t.uri.toString(),s)}get(t){const n=this._cache.get(t.uri.toString());return n&&n.lineCount===t.getLineCount()?n.data:void 0}delete(t){this._cache.delete(t.uri.toString())}_serialize(){const t=Object.create(null);for(const[n,r]of this._cache){const o=new Set;for(const s of r.data.lenses)o.add(s.symbol.range.startLineNumber);t[n]={lineCount:r.lineCount,lines:[...o.values()]}}return JSON.stringify(t)}_deserialize(t){try{const n=JSON.parse(t);for(const r in n){const o=n[r],s=[];for(const l of o.lines)s.push({range:new Ee(l,1,l,11)});const a=new kV;a.add({lenses:s},this._fakeProvider),this._cache.set(r,new qOt(o.lineCount,a))}}catch{}}};jje=Mvo([Pvo(0,Bg)],jje);zr(sBn,jje,1);class Fvo{constructor(t,n,r){this.afterColumn=1073741824,this.afterLineNumber=t,this.heightInPx=n,this._onHeight=r,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(t){this._lastHeight===void 0?this._lastHeight=t:this._lastHeight!==t&&(this._lastHeight=t,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}const Sq=class Sq{constructor(t,n){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id=`codelens.widget-${Sq._idPool++}`,this.updatePosition(n),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(t,n){this._commands.clear();const r=[];let o=!1;for(let s=0;s{u.symbol.command&&d.push(u.symbol),r.addDecoration({range:u.symbol.range,options:KOt},g=>this._decorationIds[h]=g),l?l=Ee.plusRange(l,u.symbol.range):l=Ee.lift(u.symbol.range)}),this._viewZone=new Fvo(l.startLineNumber-1,s,a),this._viewZoneId=o.addZone(this._viewZone),d.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(d,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new Wje(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(t,n){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],n==null||n.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((t,n)=>{const r=this._editor.getModel().getDecorationRange(t),o=this._data[n].symbol;return!!(r&&Ee.isEmpty(o.range)===r.isEmpty())})}updateCodeLensSymbols(t,n){this._decorationIds.forEach(n.removeDecoration,n),this._decorationIds=[],this._data=t,this._data.forEach((r,o)=>{n.addDecoration({range:r.symbol.range,options:KOt},s=>this._decorationIds[o]=s)})}updateHeight(t,n){this._viewZone.heightInPx=t,n.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(t){if(!this._viewZone.isVisible())return null;for(let n=0;n=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},eyt=function(e,t){return function(n,r){t(n,r,e)}};const CA=Cr("ILanguageFeatureDebounceService");var Z1e;(function(e){const t=new WeakMap;let n=0;function r(o){let s=t.get(o);return s===void 0&&(s=++n,t.set(o,s)),s}e.of=r})(Z1e||(Z1e={}));class Uvo{constructor(t){this._default=t}get(t){return this._default}update(t,n){return this._default}default(){return this._default}}class jvo{constructor(t,n,r,o,s,a){this._logService=t,this._name=n,this._registry=r,this._default=o,this._min=s,this._max=a,this._cache=new wp(50,.7)}_key(t){return t.id+this._registry.all(t).reduce((n,r)=>vbe(Z1e.of(r),n),0)}get(t){const n=this._key(t),r=this._cache.get(n);return r?Zg(r.value,this._min,this._max):this.default()}update(t,n){const r=this._key(t);let o=this._cache.get(r);o||(o=new N1o(6),this._cache.set(r,o));const s=Zg(o.update(n),this._min,this._max);return kbe(t.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${t.uri.toString()} is ${s}ms`),s}_overall(){const t=new YQn;for(const[,n]of this._cache)t.update(n.value);return t.value}default(){const t=this._overall()|0||this._default;return Zg(t,this._min,this._max)}}let Vje=class{constructor(t,n){this._logService=t,this._data=new Map,this._isDev=n.isExtensionDevelopment||!n.isBuilt}for(t,n,r){const o=(r==null?void 0:r.min)??50,s=(r==null?void 0:r.max)??o**2,a=(r==null?void 0:r.key)??void 0,l=`${Z1e.of(t)},${o}${a?","+a:""}`;let d=this._data.get(l);return d||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${n}] is disabled in developed mode`),d=new Uvo(o*1.5)):d=new jvo(this._logService,n,t,this._overallAverage()|0||o*1.5,o,s),this._data.set(l,d)),d}_overallAverage(){const t=new YQn;for(const n of this._data.values())t.update(n.default());return t.value}};Vje=Nvo([eyt(0,va),eyt(1,$tt)],Vje);zr(CA,Vje,1);var Wvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_X=function(e,t){return function(n,r){t(n,r,e)}},Vj;let UJ=(Vj=class{constructor(t,n,r,o,s,a){this._editor=t,this._languageFeaturesService=n,this._commandService=o,this._notificationService=s,this._codeLensCache=a,this._disposables=new xt,this._localToDispose=new xt,this._lenses=[],this._oldCodeLensModels=new xt,this._provideCodeLensDebounce=r.for(n.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=r.for(n.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new Es(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(l=>{(l.hasChanged(59)||l.hasChanged(25)||l.hasChanged(24))&&this._updateLensStyle(),l.hasChanged(23)&&this._onModelChange()})),this._disposables.add(n.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var t;this._localDispose(),this._localToDispose.dispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(t=this._currentCodeLensModel)==null||t.dispose()}_getLayoutInfo(){const t=Math.max(1.3,this._editor.getOption(75)/this._editor.getOption(61));let n=this._editor.getOption(25);return(!n||n<5)&&(n=this._editor.getOption(61)*.9|0),{fontSize:n,codeLensHeight:n*t|0}}_updateLensStyle(){const{codeLensHeight:t,fontSize:n}=this._getLayoutInfo(),r=this._editor.getOption(24),o=this._editor.getOption(59),{style:s}=this._editor.getContainerDomNode();s.setProperty("--vscode-editorCodeLens-lineHeight",`${t}px`),s.setProperty("--vscode-editorCodeLens-fontSize",`${n}px`),s.setProperty("--vscode-editorCodeLens-fontFeatureSettings",o.fontFeatureSettings),r&&(s.setProperty("--vscode-editorCodeLens-fontFamily",r),s.setProperty("--vscode-editorCodeLens-fontFamilyDefault",f1.fontFamily)),this._editor.changeViewZones(a=>{for(const l of this._lenses)l.updateHeight(t,a)})}_localDispose(){var t,n,r;(t=this._getCodeLensModelPromise)==null||t.cancel(),this._getCodeLensModelPromise=void 0,(n=this._resolveCodeLensesPromise)==null||n.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(r=this._currentCodeLensModel)==null||r.dispose()}_onModelChange(){this._localDispose();const t=this._editor.getModel();if(!t||!this._editor.getOption(23)||t.isTooLargeForTokenization())return;const n=this._codeLensCache.get(t);if(n&&this._renderCodeLensSymbols(n),!this._languageFeaturesService.codeLensProvider.has(t)){n&&B8(()=>{const o=this._codeLensCache.get(t);n===o&&(this._codeLensCache.delete(t),this._onModelChange())},30*1e3,this._localToDispose);return}for(const o of this._languageFeaturesService.codeLensProvider.all(t))if(typeof o.onDidChange=="function"){const s=o.onDidChange(()=>r.schedule());this._localToDispose.add(s)}const r=new Es(()=>{var s;const o=Date.now();(s=this._getCodeLensModelPromise)==null||s.cancel(),this._getCodeLensModelPromise=Fd(a=>oBn(this._languageFeaturesService.codeLensProvider,t,a)),this._getCodeLensModelPromise.then(a=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=a,this._codeLensCache.put(t,a);const l=this._provideCodeLensDebounce.update(t,Date.now()-o);r.delay=l,this._renderCodeLensSymbols(a),this._resolveCodeLensesInViewportSoon()},zi)},this._provideCodeLensDebounce.get(t));this._localToDispose.add(r),this._localToDispose.add(Hn(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var o;this._editor.changeDecorations(s=>{this._editor.changeViewZones(a=>{const l=[];let d=-1;this._lenses.forEach(h=>{!h.isValid()||d===h.getLineNumber()?l.push(h):(h.update(a),d=h.getLineNumber())});const u=new dxe;l.forEach(h=>{h.dispose(u,a),this._lenses.splice(this._lenses.indexOf(h),1)}),u.commit(s)})}),r.schedule(),this._resolveCodeLensesScheduler.cancel(),(o=this._resolveCodeLensesPromise)==null||o.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{r.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{r.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(o=>{o.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(Hn(()=>{if(this._editor.getModel()){const o=O3.capture(this._editor);this._editor.changeDecorations(s=>{this._editor.changeViewZones(a=>{this._disposeAllLenses(s,a)})}),o.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(o=>{if(o.target.type!==9)return;let s=o.target.element;if((s==null?void 0:s.tagName)==="SPAN"&&(s=s.parentElement),(s==null?void 0:s.tagName)==="A")for(const a of this._lenses){const l=a.getCommand(s);if(l){this._commandService.executeCommand(l.id,...l.arguments||[]).catch(d=>this._notificationService.error(d));break}}})),r.schedule()}_disposeAllLenses(t,n){const r=new dxe;for(const o of this._lenses)o.dispose(r,n);t&&r.commit(t),this._lenses.length=0}_renderCodeLensSymbols(t){if(!this._editor.hasModel())return;const n=this._editor.getModel().getLineCount(),r=[];let o;for(const l of t.lenses){const d=l.symbol.range.startLineNumber;d<1||d>n||(o&&o[o.length-1].symbol.range.startLineNumber===d?o.push(l):(o=[l],r.push(o)))}if(!r.length&&!this._lenses.length)return;const s=O3.capture(this._editor),a=this._getLayoutInfo();this._editor.changeDecorations(l=>{this._editor.changeViewZones(d=>{const u=new dxe;let h=0,g=0;for(;gthis._resolveCodeLensesInViewportSoon())),h++,g++)}for(;hthis._resolveCodeLensesInViewportSoon())),g++;u.commit(l)})}),s.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var a;(a=this._resolveCodeLensesPromise)==null||a.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const n=[],r=[];if(this._lenses.forEach(l=>{const d=l.computeIfNecessary(t);d&&(n.push(d),r.push(l))}),n.length===0){this._oldCodeLensModels.clear();return}const o=Date.now(),s=Fd(l=>{const d=n.map((u,h)=>{const g=new Array(u.length),m=u.map((v,f)=>!v.symbol.command&&typeof v.provider.resolveCodeLens=="function"?Promise.resolve(v.provider.resolveCodeLens(t,v.symbol,l)).then(k=>{g[f]=k},Nc):(g[f]=v.symbol,Promise.resolve(void 0)));return Promise.all(m).then(()=>{!l.isCancellationRequested&&!r[h].isDisposed()&&r[h].updateCommands(g)})});return Promise.all(d)});this._resolveCodeLensesPromise=s,this._resolveCodeLensesPromise.then(()=>{const l=this._resolveCodeLensesDebounce.update(t,Date.now()-o);this._resolveCodeLensesScheduler.delay=l,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},l=>{zi(l),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var t;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(t=this._currentCodeLensModel)!=null&&t.isDisposed?void 0:this._currentCodeLensModel}},Vj.ID="css.editor.codeLens",Vj);UJ=Wvo([_X(1,Nn),_X(2,CA),_X(3,ba),_X(4,ic),_X(5,sBn)],UJ);mo(UJ.ID,UJ,1);un(class extends Bn{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:$e.hasCodeLensProvider,label:_t(884,"Show CodeLens Commands for Current Line")})}async run(t,n){if(!n.hasModel())return;const r=t.get(Rf),o=t.get(ba),s=t.get(ic),a=n.getSelection().positionLineNumber,l=n.getContribution(UJ.ID);if(!l)return;const d=await l.getModel();if(!d)return;const u=[];for(const m of d.lenses)m.symbol.command&&m.symbol.range.startLineNumber===a&&u.push({label:m.symbol.command.title,command:m.symbol.command});if(u.length===0)return;const h=await r.pick(u,{canPickMany:!1,placeHolder:U(883,"Select a command")});if(!h)return;let g=h.command;if(d.isDisposed){const m=await l.getModel(),v=m==null?void 0:m.lenses.find(f=>{var k;return f.symbol.range.startLineNumber===a&&((k=f.symbol.command)==null?void 0:k.title)===g.title});if(!v||!v.symbol.command)return;g=v.symbol.command}try{await o.executeCommand(g.id,...g.arguments||[])}catch(m){s.error(m)}}});const aBn=[];function dH(e){aBn.push(e)}function Vvo(){return aBn.slice(0)}class uxe{constructor(t,n,r,o){this.priority=t,this.range=n,this.initialMousePosX=r,this.initialMousePosY=o,this.type=1}equals(t){return t.type===1&&this.range.equalsRange(t.range)}canAdoptVisibleHover(t,n){return t.type===1&&n.lineNumber===this.range.startLineNumber}}class jG{constructor(t,n,r,o,s,a){this.priority=t,this.owner=n,this.range=r,this.initialMousePosX=o,this.initialMousePosY=s,this.supportsMarkerHover=a,this.type=2}equals(t){return t.type===2&&this.owner===t.owner}canAdoptVisibleHover(t,n){return t.type===2&&this.owner===t.owner}}class SR{constructor(t,n){this.renderedHoverParts=t,this.disposables=n}dispose(){var t;for(const n of this.renderedHoverParts)n.dispose();(t=this.disposables)==null||t.dispose()}}const BI=new class{constructor(){this._participants=[]}register(t){this._participants.push(t)}getAll(){return this._participants}};var lBn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},zje=function(e,t){return function(n,r){t(n,r,e)}};let jJ=class{constructor(t){this._editorWorkerService=t}async provideDocumentColors(t,n){return this._editorWorkerService.computeDefaultDocumentColors(t.uri)}provideColorPresentations(t,n,r){const o=n.range,s=n.color,a=s.alpha,l=new Dt(new It(Math.round(255*s.red),Math.round(255*s.green),Math.round(255*s.blue),a)),d=a?Dt.Format.CSS.formatRGBA(l):Dt.Format.CSS.formatRGB(l),u=a?Dt.Format.CSS.formatHSLA(l):Dt.Format.CSS.formatHSL(l),h=a?Dt.Format.CSS.formatHexA(l):Dt.Format.CSS.formatHex(l),g=[];return g.push({label:d,textEdit:{range:o,text:d}}),g.push({label:u,textEdit:{range:o,text:u}}),g.push({label:h,textEdit:{range:o,text:h}}),g}};jJ=lBn([zje(0,S1)],jJ);let Hje=class extends ft{constructor(t,n){super(),this._register(t.colorProvider.register("*",new jJ(n)))}};Hje=lBn([zje(0,Nn),zje(1,S1)],Hje);async function cBn(e,t,n,r="auto"){return Xtt(new zvo,e,t,n,r)}function dBn(e,t,n,r){return Promise.resolve(n.provideColorPresentations(e,t,r))}class zvo{constructor(){}async compute(t,n,r,o){const s=await t.provideDocumentColors(n,r);if(Array.isArray(s))for(const a of s)o.push({colorInfo:a,provider:t});return Array.isArray(s)}}class Hvo{constructor(){}async compute(t,n,r,o){const s=await t.provideDocumentColors(n,r);if(Array.isArray(s))for(const a of s)o.push({range:a.range,color:[a.color.red,a.color.green,a.color.blue,a.color.alpha]});return Array.isArray(s)}}class $vo{constructor(t){this.colorInfo=t}async compute(t,n,r,o){const s=await t.provideColorPresentations(n,this.colorInfo,Er.None);return Array.isArray(s)&&o.push(...s),Array.isArray(s)}}async function Xtt(e,t,n,r,o){let s=!1,a;const l=[],d=t.ordered(n);for(let u=d.length-1;u>=0;u--){const h=d[u];if(o!=="always"&&h instanceof jJ)a=h;else try{await e.compute(h,n,r,l)&&(s=!0)}catch(g){Nc(g)}}return s?l:a&&o!=="never"?(await e.compute(a,n,r,l),l):[]}function uBn(e,t){const{colorProvider:n}=e.get(Nn),r=e.get(ml).getModel(t);if(!r)throw Gv();const o=e.get(ar).getValue("editor.defaultColorDecorators",{resource:t});return{model:r,colorProviderRegistry:n,defaultColorDecoratorsEnablement:o}}var Xvo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},hxe=function(e,t){return function(n,r){t(n,r,e)}},$je;const hBn=Object.create({});var Z9;let vV=(Z9=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._configurationService=n,this._languageFeaturesService=r,this._localToDispose=this._register(new xt),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new Gvo),this._colorDecorationClassRefs=this._register(new xt),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new Yme(this._editor)),this._debounceInformation=o.for(r.colorProvider,"Document Colors",{min:$je.RECOMPUTE_TIME}),this._register(t.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(t.onDidChangeModelLanguage(()=>this.updateColors())),this._register(r.colorProvider.onDidChange(()=>this.updateColors())),this._register(t.onDidChangeConfiguration(s=>{const a=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167);const l=a!==this._isColorDecoratorsEnabled||s.hasChanged(27),d=s.hasChanged(167);(l||d)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167),this.updateColors()}isEnabled(){const t=this._editor.getModel();if(!t)return!1;const n=t.getLanguageId(),r=this._configurationService.getValue(n);if(r&&typeof r=="object"){const o=r.colorDecorators;if(o&&o.enable!==void 0&&!o.enable)return o.enable}return this._editor.getOption(26)}static get(t){return t.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const t=this._editor.getModel();!t||!this._languageFeaturesService.colorProvider.has(t)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new I0,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(t)))})),this.beginCompute())}async beginCompute(){this._computePromise=Fd(async t=>{const n=this._editor.getModel();if(!n)return[];const r=new vu(!1),o=await cBn(this._languageFeaturesService.colorProvider,n,t,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(n,r.elapsed()),o});try{const t=await this._computePromise;this.updateDecorations(t),this.updateColorDecorators(t),this._computePromise=null}catch(t){zi(t)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(t){const n=t.map(r=>({range:{startLineNumber:r.colorInfo.range.startLineNumber,startColumn:r.colorInfo.range.startColumn,endLineNumber:r.colorInfo.range.endLineNumber,endColumn:r.colorInfo.range.endColumn},options:Gi.EMPTY}));this._editor.changeDecorations(r=>{this._decorationsIds=r.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((o,s)=>this._colorDatas.set(o,t[s]))})}updateColorDecorators(t){this._colorDecorationClassRefs.clear();const n=[],r=this._editor.getOption(27);for(let s=0;sthis._colorDatas.has(o.id));return r.length===0?null:this._colorDatas.get(r[0].id)}isColorDecoration(t){return this._colorDecoratorIds.has(t)}},$je=Z9,Z9.ID="editor.contrib.colorDetector",Z9.RECOMPUTE_TIME=1e3,Z9);vV=$je=Xvo([hxe(1,ar),hxe(2,Nn),hxe(3,CA)],vV);class Gvo extends ft{constructor(){super(...arguments),this._onDidChange=this._register(new at),this._computed=0,this._limited=!1}update(t,n){(t!==this._computed||n!==this._limited)&&(this._computed=t,this._limited=n,this._onDidChange.fire())}}const fBn="editor.action.showHover",Yvo="editor.action.showDefinitionPreviewHover",Zvo="editor.action.hideHover",qvo="editor.action.scrollUpHover",Kvo="editor.action.scrollDownHover",Jvo="editor.action.scrollLeftHover",eAo="editor.action.scrollRightHover",tAo="editor.action.pageUpHover",nAo="editor.action.pageDownHover",iAo="editor.action.goToTopHover",rAo="editor.action.goToBottomHover",A3e="editor.action.increaseHoverVerbosityLevel",oAo=U(1102,"Increase Hover Verbosity Level"),p3e="editor.action.decreaseHoverVerbosityLevel",sAo=U(1103,"Decrease Hover Verbosity Level"),WJ="editor.action.inlineSuggest.commit",gBn="editor.action.inlineSuggest.showPrevious",mBn="editor.action.inlineSuggest.showNext",aAo="editor.action.inlineSuggest.jump",kBn="editor.action.inlineSuggest.hide",Xje="editor.action.inlineSuggest.toggleShowCollapsed";var Gtt=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},x4=function(e,t){return function(n,r){t(n,r,e)}},mhe;let Gje=class extends ft{constructor(t,n,r){super(),this.editor=t,this.model=n,this.instantiationService=r,this.alwaysShowToolbar=Ko(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=Rt(this,o=>{var d,u;const s=(d=this.model.read(o))==null?void 0:d.primaryGhostText.read(o);if(!this.alwaysShowToolbar.read(o)||!s||s.parts.length===0)return this.sessionPosition=void 0,null;const a=s.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==s.lineNumber&&(this.sessionPosition=void 0);const l=new it(s.lineNumber,Math.min(a,((u=this.sessionPosition)==null?void 0:u.column)??Number.MAX_SAFE_INTEGER));return this.sessionPosition=l,l}),this._register(Ef((o,s)=>{const a=this.model.read(o);if(!a||!this.alwaysShowToolbar.read(o))return;const l=Rt(u=>{const h=u.store.add(this.instantiationService.createInstance(AV.hot.read(u),this.editor,!0,this.position,a.selectedInlineCompletionIndex,a.inlineCompletionsCount,a.activeCommands,a.warning,()=>{}));return t.addContentWidget(h),u.store.add(Hn(()=>t.removeContentWidget(h))),u.store.add(Oi(g=>{this.position.read(g)&&a.lastTriggerKind.read(g)!==Zm.Explicit&&a.triggerExplicitly()})),h}),d=vL(this,(u,h)=>!!this.position.read(u)||!!h);s.add(Oi(u=>{d.read(u)&&l.read(u)}))}))}};Gje=Gtt([x4(2,Yn)],Gje);const lAo=Da("inline-suggestion-hints-next",zt.chevronRight,U(1207,"Icon for show next parameter hint.")),cAo=Da("inline-suggestion-hints-previous",zt.chevronLeft,U(1208,"Icon for show previous parameter hint."));var IO;let AV=(IO=class extends ft{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(t,n,r){const o=new n2(t,n,r,!0,()=>this._commandService.executeCommand(t)),s=this.keybindingService.lookupKeybinding(t,this._contextKeyService);let a=n;return s&&(a=U(1209,"{0} ({1})",n,s.getLabel())),o.tooltip=a,o}constructor(t,n,r,o,s,a,l,d,u,h,g,m,v){super(),this.editor=t,this.withBorder=n,this._position=r,this._currentSuggestionIdx=o,this._suggestionCount=s,this._extraCommands=a,this._warning=l,this._relayout=d,this._commandService=u,this.keybindingService=g,this._contextKeyService=m,this._menuService=v,this.id=`InlineSuggestionHintsContentWidget${mhe.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=Rt(f=>{const k=this._warning.read(f);return k?typeof k.message=="string"?k.message:f.store.add(Vie(k.message)).element:void 0}),this._warningMessageNode=cr.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:Rt(f=>this._warning.read(f)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=wo("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,wo("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(gBn,U(1210,"Previous"),fi.asClassName(cAo))),this.availableSuggestionCountAction=this._register(new n2("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(mBn,U(1211,"Next"),fi.asClassName(lAo))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(Wn.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Es(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new Es(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(Oi(f=>{this._warningMessageContentNode.read(f),this._warningMessageNode.readEffect(f),this._relayout()})),this.toolBar=this._register(h.createInstance(Yje,this.nodes.toolBar,Wn.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:f=>f.startsWith("primary")},actionViewItemProvider:(f,k)=>{if(f instanceof i2)return h.createInstance(uAo,f,void 0);if(f===this.availableSuggestionCountAction){const A=new dAo(void 0,f,{label:!0,icon:!1});return A.setClass("availableSuggestionCount"),A}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(f=>{mhe._dropDownVisible=f})),this._register(Oi(f=>{this._position.read(f),this.editor.layoutContentWidget(this)})),this._register(Oi(f=>{const k=this._suggestionCount.read(f),A=this._currentSuggestionIdx.read(f);k!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${A+1}/${k}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),k!==void 0&&k>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(Oi(f=>{const A=this._extraCommands.read(f).map(p=>({class:void 0,id:p.command.id,enabled:!0,tooltip:p.command.tooltip||"",label:p.command.title,run:b=>this._commandService.executeCommand(p.command.id)}));for(const[p,b]of this.inlineCompletionsActionsMenus.getActions())for(const w of b)w instanceof i2&&A.push(w);A.length>0&&A.unshift(new pd),this.toolBar.setAdditionalSecondaryActions(A)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}},mhe=IO,IO.hot=l3e(IO),IO._dropDownVisible=!1,IO.id=0,IO);AV=mhe=Gtt([x4(8,ba),x4(9,Yn),x4(10,Do),x4(11,Qi),x4(12,wA)],AV);class dAo extends gV{constructor(){super(...arguments),this._className=void 0}setClass(t){this._className=t}render(t){super.render(t),this._className&&t.classList.add(this._className)}updateTooltip(){}}class uAo extends D6{updateLabel(){const t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!t)return super.updateLabel();if(this.label){const n=wo("div.keybinding").root;this._register(new cH(n,b0,{disableTitle:!0,...X2o})).set(t),this.label.textContent=this._action.label,this.label.appendChild(n),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let Yje=class extends M1e{constructor(t,n,r,o,s,a,l,d,u){super(t,{resetMenu:n,...r},o,s,a,l,d,u),this.menuId=n,this.options2=r,this.menuService=o,this.contextKeyService=s,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this.additionalPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var r,o,s,a,l,d,u;const{primary:t,secondary:n}=kDn(this.menu.getActions((r=this.options2)==null?void 0:r.menuOptions),(s=(o=this.options2)==null?void 0:o.toolbarOptions)==null?void 0:s.primaryGroup,(l=(a=this.options2)==null?void 0:a.toolbarOptions)==null?void 0:l.shouldInlineSubmenu,(u=(d=this.options2)==null?void 0:d.toolbarOptions)==null?void 0:u.useSeparatorsInPrimaryActions);n.push(...this.additionalActions),t.unshift(...this.prependedPrimaryActions),t.push(...this.additionalPrimaryActions),this.setActions(t,n)}setPrependedPrimaryActions(t){Na(this.prependedPrimaryActions,t,(n,r)=>n===r)||(this.prependedPrimaryActions=t,this.updateToolbar())}setAdditionalSecondaryActions(t){Na(this.additionalActions,t,(n,r)=>n===r)||(this.additionalActions=t,this.updateToolbar())}};Yje=Gtt([x4(3,wA),x4(4,Qi),x4(5,S2),x4(6,Do),x4(7,ba),x4(8,Nf)],Yje);function b3e(e,t,n){const r=Kl(e);return!(tr.left+r.width||nr.top+r.height)}class hAo{constructor(t,n,r,o){this.value=t,this.isComplete=n,this.hasLoadingMessage=r,this.options=o}}class vBn extends ft{constructor(t,n){super(),this._editor=t,this._computer=n,this._onResult=this._register(new at),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new fxe(r=>this._triggerAsyncComputation(r),0)),this._syncComputationScheduler=this._register(new fxe(r=>this._triggerSyncComputation(r),0)),this._loadingMessageScheduler=this._register(new fxe(r=>this._triggerLoadingMessage(r),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._options=void 0,super.dispose()}get _hoverTime(){return this._editor.getOption(69).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(t,n){this._options=n,this._state=t,this._fireResult(n)}_triggerAsyncComputation(t){this._setState(2,t),this._syncComputationScheduler.schedule(t,this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=deo(n=>this._computer.computeAsync(t,n)),(async()=>{try{for await(const n of this._asyncIterable)n&&(this._result.push(n),this._fireResult(t));this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0,t)}catch(n){zi(n)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(t){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync(t))),this._setState(this._asyncIterableDone?0:3,t)}_triggerLoadingMessage(t){this._state===3&&this._setState(4,t)}_fireResult(t){if(this._state===1||this._state===2)return;const n=this._state===0,r=this._state===4;this._onResult.fire(new hAo(this._result.slice(0),n,r,t))}start(t,n){if(t===0)this._state===0&&(this._setState(1,n),this._asyncComputationScheduler.schedule(n,this._firstWaitTime),this._loadingMessageScheduler.schedule(n,this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(n),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break}}cancel(){this._asyncComputationScheduler.cancel(),this._syncComputationScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._options=void 0,this._state=0}get options(){return this._options}}class fxe extends ft{constructor(t,n){super(),this._scheduler=this._register(new Es(()=>t(this._options),n))}schedule(t,n){this._options=t,this._scheduler.schedule(n)}cancel(){this._scheduler.cancel()}}class Ytt{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new at,this._onDidResize=new at,this._sashListener=new xt,this._size=new cs(0,0),this._minSize=new cs(0,0),this._maxSize=new cs(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new kf(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new kf(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new kf(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:T1e.North}),this._southSash=new kf(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:T1e.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let t,n=0,r=0;this._sashListener.add(an.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{t===void 0&&(this._onDidWillResize.fire(),t=this._size,n=0,r=0)})),this._sashListener.add(an.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{t!==void 0&&(t=void 0,n=0,r=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(o=>{t&&(r=o.currentX-o.startX,this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(o=>{t&&(r=-(o.currentX-o.startX),this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(o=>{t&&(n=-(o.currentY-o.startY),this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(o=>{t&&(n=o.currentY-o.startY,this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(an.any(this._eastSash.onDidReset,this._westSash.onDidReset)(o=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(an.any(this._northSash.onDidReset,this._southSash.onDidReset)(o=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(t,n,r,o){this._northSash.state=t?3:0,this._eastSash.state=n?3:0,this._southSash.state=r?3:0,this._westSash.state=o?3:0}layout(t=this.size.height,n=this.size.width){const{height:r,width:o}=this._minSize,{height:s,width:a}=this._maxSize;t=Math.max(r,Math.min(s,t)),n=Math.max(o,Math.min(a,n));const l=new cs(n,t);cs.equals(l,this._size)||(this.domNode.style.height=t+"px",this.domNode.style.width=n+"px",this._size=l,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(t){this._maxSize=t}get maxSize(){return this._maxSize}set minSize(t){this._minSize=t}get minSize(){return this._minSize}set preferredSize(t){this._preferredSize=t}get preferredSize(){return this._preferredSize}}const fAo=30,gAo=24;class mAo extends ft{constructor(t,n=new cs(10,10)){super(),this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new Ytt),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=cs.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(r=>{this._resize(new cs(r.dimension.width,r.dimension.height)),r.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var t;return(t=this._contentPosition)!=null&&t.position?it.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(t){const n=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(t);return!n||!r?void 0:Kl(n).top+r.top-fAo}_availableVerticalSpaceBelow(t){const n=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(t);if(!n||!r)return;const o=Kl(n),s=O6(n.ownerDocument.body),a=o.top+r.top+r.height;return s.height-a-gAo}_findPositionPreference(t,n){const r=Math.min(this._availableVerticalSpaceBelow(n)??1/0,t),o=Math.min(this._availableVerticalSpaceAbove(n)??1/0,t),s=Math.min(Math.max(o,r),t),a=Math.min(t,s);let l;return this._editor.getOption(69).above?l=a<=o?1:2:l=a<=r?2:1,l===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),l}_resize(t){this._resizableNode.layout(t.height,t.width)}}const Wle=tn;let Ztt=class extends ft{constructor(t){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.classList.toggle("fade-in",!!t),this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new Mie(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}};class w3e extends ft{static render(t,n,r){return new w3e(t,n,r)}constructor(t,n,r){super(),this.actionLabel=n.label,this.actionKeybindingLabel=r,this.actionContainer=Xt(t,Wle("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=Xt(this.actionContainer,Wle("a.action")),this.action.setAttribute("role","button"),n.iconClass&&Xt(this.action,Wle("span.icon")).classList.add(...n.iconClass.split(" ")),this.actionRenderedLabel=r?`${n.label} (${r})`:n.label;const o=Xt(this.action,Wle("span"));o.textContent=this.actionRenderedLabel,this._store.add(new pBn(this.actionContainer,n.run)),this._store.add(new bBn(this.actionContainer,n.run,[3,10])),this.setEnabled(!0)}setEnabled(t){t?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}function ABn(e,t){return e&&t?U(7,"Inspect this in the accessible view with {0}.",t):e?U(8,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}class pBn extends ft{constructor(t,n){super(),this._register(wt(t,rn.CLICK,r=>{r.stopPropagation(),r.preventDefault(),n(t)}))}}class bBn extends ft{constructor(t,n,r){super(),this._register(wt(t,rn.KEY_DOWN,o=>{const s=new Us(o);r.some(a=>s.equals(a))&&(o.stopPropagation(),o.preventDefault(),n(t))}))}}var kAo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Vle=function(e,t){return function(n,r){t(n,r,e)}},i4;const tyt=30;var q9;let Zje=(q9=class extends mAo{get isVisibleFromKeyboard(){var t;return((t=this._renderedHover)==null?void 0:t.source)===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(t,n,r,o,s){const a=t.getOption(75)+8,l=150,d=new cs(l,a);super(t,d),this._configurationService=r,this._accessibilityService=o,this._keybindingService=s,this._hover=this._register(new Ztt(!0)),this._onDidResize=this._register(new at),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new at),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new at),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=d,this._hoverVisibleKey=$e.hoverVisible.bindTo(n),this._hoverFocusedKey=$e.hoverFocused.bindTo(n),Xt(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(h=>{h.hasChanged(59)&&this._updateFont()}));const u=this._register(uA(this._resizableNode.domNode));this._register(u.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(u.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll(h=>{this._onDidScroll.fire(h)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){var t;super.dispose(),(t=this._renderedHover)==null||t.dispose(),this._editor.removeContentWidget(this)}getId(){return i4.ID}static _applyDimensions(t,n,r){const o=typeof n=="number"?`${n}px`:n,s=typeof r=="number"?`${r}px`:r;t.style.width=o,t.style.height=s}_setContentsDomNodeDimensions(t,n){const r=this._hover.contentsDomNode;return i4._applyDimensions(r,t,n)}_setContainerDomNodeDimensions(t,n){const r=this._hover.containerDomNode;return i4._applyDimensions(r,t,n)}_setScrollableElementDimensions(t,n){const r=this._hover.scrollbar.getDomNode();return i4._applyDimensions(r,t,n)}_setHoverWidgetDimensions(t,n){this._setContainerDomNodeDimensions(t,n),this._setScrollableElementDimensions(t,n),this._setContentsDomNodeDimensions(t,n),this._layoutContentWidget()}static _applyMaxDimensions(t,n,r){const o=typeof n=="number"?`${n}px`:n,s=typeof r=="number"?`${r}px`:r;t.style.maxWidth=o,t.style.maxHeight=s}_setHoverWidgetMaxDimensions(t,n){i4._applyMaxDimensions(this._hover.contentsDomNode,t,n),i4._applyMaxDimensions(this._hover.scrollbar.getDomNode(),t,n),i4._applyMaxDimensions(this._hover.containerDomNode,t,n),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof t=="number"?`${t}px`:t),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(t){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(t.width,t.height)}_updateResizableNodeMaxDimensions(){const t=this._findMaximumRenderingWidth()??1/0,n=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new cs(t,n),this._setHoverWidgetMaxDimensions(t,n)}_resize(t){i4._lastDimensions=new cs(t.width,t.height),this._setAdjustedHoverWidgetDimensions(t),this._resizableNode.layout(t.height,t.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){var n;const t=(n=this._renderedHover)==null?void 0:n.showAtPosition;if(t)return this._positionPreference===1?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const t=this._findAvailableSpaceVertically();if(!t)return;let r=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach(o=>{r+=o.clientHeight}),Math.min(t,r)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const t=Array.from(this._hover.contentsDomNode.children).some(n=>n.scrollWidth>n.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),t}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const t=this._isHoverTextOverflowing(),n=typeof this._contentWidth>"u"?0:this._contentWidth;return t||this._hover.containerDomNode.clientWidththis._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,o),!0)}_setRenderedHover(t){var n;(n=this._renderedHover)==null||n.dispose(),this._renderedHover=t,this._hoverVisibleKey.set(!!t),this._hover.containerDomNode.classList.toggle("hidden",!t)}_updateFont(){const{fontSize:t,lineHeight:n}=this._editor.getOption(59),r=this._hover.contentsDomNode;r.style.fontSize=`${t}px`,r.style.lineHeight=`${n/t}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(s=>this._editor.applyFontInfo(s))}_updateContent(t){const n=this._hover.contentsDomNode;n.style.paddingBottom="",n.textContent="",n.appendChild(t)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const t=Math.max(this._editor.getLayoutInfo().height/4,250,i4._lastDimensions.height),n=Math.max(this._editor.getLayoutInfo().width*.66,750,i4._lastDimensions.width);this._resizableNode.maxSize=new cs(n,t),this._setHoverWidgetMaxDimensions(n,t)}_render(t){this._setRenderedHover(t),this._updateFont(),this._updateContent(t.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(t){var a;if(!this._editor||!this._editor.hasModel())return;this._render(t);const n=ES(this._hover.containerDomNode),r=t.showAtPosition;this._positionPreference=this._findPositionPreference(n,r)??1,this.handleContentsChanged(),t.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const s=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&ABn(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),((a=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))==null?void 0:a.getAriaLabel())??"");s&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+s)}hide(){if(!this._renderedHover)return;const t=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new cs(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),t&&this._editor.focus()}_removeConstraintsRenderNormally(){const t=this._editor.getLayoutInfo();this._resizableNode.layout(t.height,t.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(t){this._minimumSize=new cs(Math.max(this._minimumSize.width,t.width),Math.max(this._minimumSize.height,t.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const t=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new cs(t,this._minimumSize.height)}handleContentsChanged(){var o;this._removeConstraintsRenderNormally();const t=this._hover.contentsDomNode;let n=ES(t),r=s0(t)+2;if(this._resizableNode.layout(n,r),this._setHoverWidgetDimensions(r,n),n=ES(t),r=s0(t),this._contentWidth=r,this._updateMinimumWidth(),this._resizableNode.layout(n,r),(o=this._renderedHover)!=null&&o.showAtPosition){const s=ES(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(s,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:t-n.lineHeight})}scrollDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:t+n.lineHeight})}scrollLeft(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t-tyt})}scrollRight(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t+tyt})}pageUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t-n})}pageDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,n=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t+n})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}},i4=q9,q9.ID="editor.contrib.resizableContentHoverWidget",q9._lastDimensions=new cs(0,0),q9);Zje=i4=kAo([Vle(1,Qi),Vle(2,ar),Vle(3,vh),Vle(4,Do)],Zje);function nyt(e,t,n,r,o,s){const a=n+o/2,l=r+s/2,d=Math.max(Math.abs(e-a)-o/2,0),u=Math.max(Math.abs(t-l)-s/2,0);return Math.sqrt(d*d+u*u)}class q1e{constructor(t,n){this._editor=t,this._participants=n}static _getLineDecorations(t,n){if(n.type!==1&&!n.supportsMarkerHover)return[];const r=t.getModel(),o=n.range.startLineNumber;if(o>r.getLineCount())return[];const s=r.getLineMaxColumn(o);return t.getLineDecorations(o).filter(a=>{if(a.options.isWholeLine)return!0;const l=a.range.startLineNumber===o?a.range.startColumn:1,d=a.range.endLineNumber===o?a.range.endColumn:s;if(a.options.showIfCollapsed){if(l>n.range.startColumn+1||n.range.endColumn-1>d)return!1}else if(l>n.range.startColumn||n.range.endColumn>d)return!1;return!0})}computeAsync(t,n){const r=t.anchor;if(!this._editor.hasModel()||!r)return Yv.EMPTY;const o=q1e._getLineDecorations(this._editor,r);return Yv.merge(this._participants.map(s=>s.computeAsync?s.computeAsync(r,o,t.source,n):Yv.EMPTY))}computeSync(t){if(!this._editor.hasModel())return[];const n=t.anchor,r=q1e._getLineDecorations(this._editor,n);let o=[];for(const s of this._participants)o=o.concat(s.computeSync(n,r,t.source));return P3(o)}}class wBn{constructor(t,n,r){this.hoverParts=t,this.isComplete=n,this.options=r}filter(t){const n=this.hoverParts.filter(r=>r.isValidForHoverAnchor(t));return n.length===this.hoverParts.length?this:new vAo(this,n,this.isComplete,this.options)}}class vAo extends wBn{constructor(t,n,r,o){super(n,r,o),this.original=t}filter(t){return this.original.filter(t)}}var AAo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},iyt=function(e,t){return function(n,r){t(n,r,e)}};const ryt=tn;let K1e=class extends ft{get hasContent(){return this._hasContent}constructor(t,n){super(),this._keybindingService=t,this._hoverService=n,this.actions=[],this._hasContent=!1,this.hoverElement=ryt("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=Xt(this.hoverElement,ryt("div.actions"))}addAction(t){const n=this._keybindingService.lookupKeybinding(t.commandId),r=n?n.getLabel():null;this._hasContent=!0;const o=this._register(w3e.render(this.actionsElement,t,r));return this._register(this._hoverService.setupManagedHover(eC("element"),o.actionContainer,o.actionRenderedLabel)),this.actions.push(o),o}append(t){const n=Xt(this.actionsElement,t);return this._hasContent=!0,n}};K1e=AAo([iyt(0,Do),iyt(1,pm)],K1e);const OBn={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class yL extends Y0{get onChange(){return this._onChange.event}get onKeyDown(){return this._onKeyDown.event}constructor(t){super(),this._onChange=this._register(new at),this._onKeyDown=this._register(new at),this._opts=t,this._title=this._opts.title,this._checked=this._opts.isChecked;const n=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,n.push(...fi.asClassNameArray(this._icon))),this._opts.actionClassName&&n.push(...this._opts.actionClassName.split(" ")),this._checked&&n.push("checked"),this.domNode=document.createElement("div"),this._register(yp().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}),this._opts.hoverLifecycleOptions)),this.domNode.classList.add(...n),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.setTitle(this._opts.title),this.applyStyles(),this.onclick(this.domNode,r=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),r.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,r=>{if(this.enabled){if(r.keyCode===10||r.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),r.preventDefault(),r.stopPropagation();return}this._onKeyDown.fire(r)}})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(t){this._checked=t,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}setIcon(t){this._icon&&this.domNode.classList.remove(...fi.asClassNameArray(this._icon)),this._icon=t,this._icon&&this.domNode.classList.add(...fi.asClassNameArray(this._icon))}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1)),this.domNode.classList.remove("disabled")}disable(){this.domNode.setAttribute("aria-disabled",String(!0)),this.domNode.classList.add("disabled")}setTitle(t){this._title=t,this.domNode.setAttribute("aria-label",t)}set visible(t){this.domNode.style.display=t?"":"none"}get visible(){return this.domNode.style.display!=="none"}}const kat=class kat extends Y0{constructor(t,n,r){super(),this.checkbox=t,this.domNode=n,this.styles=r,this._onChange=this._register(new at),this.onChange=this._onChange.event,this.applyStyles()}get enabled(){return this.checkbox.enabled}enable(){this.checkbox.enable(),this.applyStyles(!0)}disable(){this.checkbox.disable(),this.applyStyles(!1)}setTitle(t){this.checkbox.setTitle(t)}applyStyles(t=this.enabled){this.domNode.style.color=(t?this.styles.checkboxForeground:this.styles.checkboxDisabledForeground)||"",this.domNode.style.backgroundColor=(t?this.styles.checkboxBackground:this.styles.checkboxDisabledBackground)||"",this.domNode.style.borderColor=(t?this.styles.checkboxBorder:this.styles.checkboxDisabledBackground)||"";const n=this.styles.size||18;this.domNode.style.width=this.domNode.style.height=this.domNode.style.fontSize=`${n}px`,this.domNode.style.fontSize=`${n-2}px`}};kat.CLASS_NAME="monaco-checkbox";let VJ=kat,yBn=class extends VJ{constructor(t,n,r){const o=new yL({title:t,isChecked:n,icon:zt.check,actionClassName:VJ.CLASS_NAME,hoverLifecycleOptions:r.hoverLifecycleOptions,...OBn});super(o,o.domNode,r),this._register(o),this._register(this.checkbox.onChange(s=>{this.applyStyles(),this._onChange.fire(s)}))}get checked(){return this.checkbox.checked}set checked(t){this.checkbox.checked=t,this.applyStyles()}applyStyles(t){this.checkbox.checked?this.checkbox.setIcon(zt.check):this.checkbox.setIcon(void 0),super.applyStyles(t)}};class CBn extends VJ{constructor(t,n,r){let o;switch(n){case!0:o=zt.check;break;case"mixed":o=zt.dash;break;case!1:o=void 0;break}const s=new yL({title:t,isChecked:n===!0,icon:o,actionClassName:yBn.CLASS_NAME,hoverLifecycleOptions:r.hoverLifecycleOptions,...OBn});super(s,s.domNode,r),this._state=n,this._register(s),this._register(this.checkbox.onChange(a=>{this._state=this.checkbox.checked,this.applyStyles(),this._onChange.fire(a)}))}get checked(){return this._state}set checked(t){this._state!==t&&(this._state=t,this.checkbox.checked=t===!0,this.applyStyles())}applyStyles(t){switch(this._state){case!0:this.checkbox.setIcon(zt.check);break;case"mixed":this.checkbox.setIcon(zt.dash);break;case!1:this.checkbox.setIcon(void 0);break}super.applyStyles(t)}}const eg=class eg{constructor(t){this._editor=t,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const t=this._findScopeDecorationIds.map(n=>this._editor.getModel().getDecorationRange(n)).filter(n=>!!n);if(t.length)return t}return null}getStartPosition(){return this._startPosition}setStartPosition(t){this._startPosition=t,this.setCurrentFindMatch(null)}_getDecorationIndex(t){const n=this._decorations.indexOf(t);return n>=0?n+1:1}getDecorationRangeAt(t){const n=t{if(this._highlightedDecorationId!==null&&(o.changeDecorationOptions(this._highlightedDecorationId,eg._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),n!==null&&(this._highlightedDecorationId=n,o.changeDecorationOptions(this._highlightedDecorationId,eg._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(o.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),n!==null){let s=this._editor.getModel().getDecorationRange(n);if(s.startLineNumber!==s.endLineNumber&&s.endColumn===1){const a=s.endLineNumber-1,l=this._editor.getModel().getLineMaxColumn(a);s=new Ee(s.startLineNumber,s.startColumn,a,l)}this._rangeHighlightDecorationId=o.addDecoration(s,eg._RANGE_HIGHLIGHT_DECORATION)}}),r}set(t,n){this._editor.changeDecorations(r=>{let o=eg._FIND_MATCH_DECORATION;const s=[];if(t.length>1e3){o=eg._FIND_MATCH_NO_OVERVIEW_DECORATION;const l=this._editor.getModel().getLineCount(),u=this._editor.getLayoutInfo().height/l,h=Math.max(2,Math.ceil(3/u));let g=t[0].range.startLineNumber,m=t[0].range.endLineNumber;for(let v=1,f=t.length;v=k.startLineNumber?k.endLineNumber>m&&(m=k.endLineNumber):(s.push({range:new Ee(g,1,m,1),options:eg._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),g=k.startLineNumber,m=k.endLineNumber)}s.push({range:new Ee(g,1,m,1),options:eg._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const a=new Array(t.length);for(let l=0,d=t.length;lr.removeDecoration(l)),this._findScopeDecorationIds=[]),n!=null&&n.length&&(this._findScopeDecorationIds=n.map(l=>r.addDecoration(l,eg._FIND_SCOPE_DECORATION)))})}matchBeforePosition(t){if(this._decorations.length===0)return null;for(let n=this._decorations.length-1;n>=0;n--){const r=this._decorations[n],o=this._editor.getModel().getDecorationRange(r);if(!(!o||o.endLineNumber>t.lineNumber)){if(o.endLineNumbert.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(t){if(this._decorations.length===0)return null;for(let n=0,r=this._decorations.length;nt.lineNumber)return s;if(!(s.startColumn0){const r=[];for(let a=0;aEe.compareRangesUsingStarts(a.range,l.range));const o=[];let s=r[0];for(let a=1;a0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}else return t}function oyt(e,t,n){return e[0].indexOf(n)!==-1&&t.indexOf(n)!==-1&&e[0].split(n).length===t.split(n).length}function syt(e,t,n){const r=t.split(n),o=e[0].split(n);let s="";return r.forEach((a,l)=>{s+=_Bn([o[l]],a)+n}),s.slice(0,-1)}class ayt{constructor(t){this.staticValue=t,this.kind=0}}class bAo{constructor(t){this.pieces=t,this.kind=1}}class pV{static fromStaticValue(t){return new pV([pD.staticValue(t)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(t){!t||t.length===0?this._state=new ayt(""):t.length===1&&t[0].staticValue!==null?this._state=new ayt(t[0].staticValue):this._state=new bAo(t)}buildReplaceString(t,n){if(this._state.kind===0)return n?_Bn(t,this._state.staticValue):this._state.staticValue;let r="";for(let o=0,s=this._state.pieces.length;o0){const d=[],u=a.caseOps.length;let h=0;for(let g=0,m=l.length;g=u){d.push(l.slice(g));break}switch(a.caseOps[h]){case"U":d.push(l[g].toUpperCase());break;case"u":d.push(l[g].toUpperCase()),h++;break;case"L":d.push(l[g].toLowerCase());break;case"l":d.push(l[g].toLowerCase()),h++;break;default:d.push(l[g])}}l=d.join("")}r+=l}return r}static _substitute(t,n){if(n===null)return"";if(t===0)return n[0];let r="";for(;t>0;){if(t=o)break;const a=e.charCodeAt(r);switch(a){case 92:n.emitUnchanged(r-1),n.emitStatic("\\",r+1);break;case 110:n.emitUnchanged(r-1),n.emitStatic(` `,r+1);break;case 116:n.emitUnchanged(r-1),n.emitStatic(" ",r+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(r-1),n.emitStatic("",r+1),t.push(String.fromCharCode(a));break}continue}if(s===36){if(r++,r>=o)break;const a=e.charCodeAt(r);if(a===36){n.emitUnchanged(r-1),n.emitStatic("$",r+1);continue}if(a===48||a===38){n.emitUnchanged(r-1),n.emitMatchIndex(0,r+1,t),t.length=0;continue}if(49<=a&&a<=57){let l=a-48;if(r+1{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(r=>{(r.reason===3||r.reason===5||r.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(r=>{this._ignoreModelContentChanged||(r.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(r=>this._onStateChanged(r))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,us(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(t){this._isDisposed||this._editor.hasModel()&&(t.searchString||t.isReplaceRevealed||t.isRegex||t.wholeWord||t.matchCase||t.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{t.searchScope?this.research(t.moveCursor,this._state.searchScope):this.research(t.moveCursor)},yAo)):t.searchScope?this.research(t.moveCursor,this._state.searchScope):this.research(t.moveCursor))}static _getSearchRange(t,n){return n||t.getFullModelRange()}research(t,n){let r=null;typeof n<"u"?n!==null&&(Array.isArray(n)?r=n:r=[n]):r=this._decorations.getFindScopes(),r!==null&&(r=r.map(l=>{if(l.startLineNumber!==l.endLineNumber){let d=l.endLineNumber;return l.endColumn===1&&(d=d-1),new Ee(l.startLineNumber,1,d,this._editor.getModel().getLineMaxColumn(d))}return l}));const o=this._findMatches(r,!1,b9);this._decorations.set(o,r);const s=this._editor.getSelection();let a=this._decorations.getCurrentMatchesPosition(s);if(a===0&&o.length>0){const l=dJ(o.map(d=>d.range),d=>Ee.compareRangesUsingStarts(d,s)>=0);a=l>0?l-1+1:a}this._state.changeMatchInfo(a,this._decorations.getCount(),void 0),t&&this._editor.getOption(50).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const t=this._decorations.getFindScope();return t&&this._editor.revealRangeInCenterIfOutsideViewport(t,0),!0}return!1}_setCurrentFindMatch(t){const n=this._decorations.setCurrentFindMatch(t);this._state.changeMatchInfo(n,this._decorations.getCount(),t),this._editor.setSelection(t),this._editor.revealRangeInCenterIfOutsideViewport(t,0)}_prevSearchPosition(t){const n=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:r,column:o}=t;const s=this._editor.getModel();return n||o===1?(r===1?r=s.getLineCount():r--,o=s.getLineMaxColumn(r)):o--,new it(r,o)}_moveToPrevMatch(t,n=!1){if(!this._state.canNavigateBack()){const h=this._decorations.matchAfterPosition(t);h&&this._setCurrentFindMatch(h);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:r,column:o}=t;const s=this._editor.getModel();return n||o===s.getLineMaxColumn(r)?(r===s.getLineCount()?r=1:r++,o=1):o++,new it(r,o)}_moveToNextMatch(t){if(!this._state.canNavigateForward()){const r=this._decorations.matchBeforePosition(t);r&&this._setCurrentFindMatch(r);return}if(this._decorations.getCount()QZ._getSearchRange(this._editor.getModel(),s));return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n,r)}replaceAll(){if(!this._hasMatches())return;const t=this._decorations.getFindScopes();t===null&&this._state.matchesCount>=b9?this._largeReplaceAll():this._regularReplaceAll(t),this.research(!1)}_largeReplaceAll(){const n=new X7(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!n)return;let r=n.regex;if(!r.multiline){let g="mu";r.ignoreCase&&(g+="i"),r.global&&(g+="g"),r=new RegExp(r.source,g)}const o=this._editor.getModel(),s=o.getValue(1),a=o.getFullModelRange(),l=this._getReplacePattern();let d;const u=this._state.preserveCase;l.hasReplacementPatterns||u?d=s.replace(r,function(){return l.buildReplaceString(arguments,u)}):d=s.replace(r,l.buildReplaceString(null,u));const h=new net(a,d,this._editor.getSelection());this._executeEditorCommand("replaceAll",h)}_regularReplaceAll(t){const n=this._getReplacePattern(),r=this._findMatches(t,n.hasReplacementPatterns||this._state.preserveCase,1073741824),o=[];for(let a=0,l=r.length;aa.range),o);this._executeEditorCommand("replaceAll",s)}selectAllMatches(){if(!this._hasMatches())return;const t=this._decorations.getFindScopes();let r=this._findMatches(t,!1,1073741824).map(s=>new Qn(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn));const o=this._editor.getSelection();for(let s=0,a=r.length;s=this.source.length}next(){const t=this.peek();return this.advance(),t}peek(){return this.source[this.index]}advance(){this.index++}}function EBn(e,t,n,r){let o;if(t.type===2)o=document.createTextNode(t.content||"");else if(t.type===3)o=document.createElement("b");else if(t.type===4)o=document.createElement("i");else if(t.type===7&&r)o=document.createElement("code");else if(t.type===5&&n){const s=document.createElement("a");n.disposables.add(wc(s,"click",a=>{n.callback(String(t.index),a)})),o=s}else t.type===8?o=document.createElement("br"):t.type===1&&(o=e);o&&e!==o&&e.appendChild(o),o&&Array.isArray(t.children)&&t.children.forEach(s=>{EBn(o,s,n,r)})}function TAo(e,t){const n={type:1,children:[]};let r=0,o=n;const s=[],a=new EAo(e);for(;!a.eos();){let l=a.next();const d=l==="\\"&&Kje(a.peek())!==0;if(d&&(l=a.next()),!d&&QAo(l)&&l===a.peek()){a.advance(),o.type===2&&(o=s.pop());const u=Kje(l);if(o.type===u||o.type===5&&u===6)o=s.pop();else{const h={type:u,children:[]};u===5&&(h.index=r,r++),o.children.push(h),s.push(o),o=h}}else if(l===` `)o.type===2&&(o=s.pop()),o.children.push({type:8});else if(o.type!==2){const u={type:2,content:l};o.children.push(u),s.push(o),o=u}else o.content+=l}return o.type===2&&(o=s.pop()),n}function QAo(e,t){return Kje(e)!==0}function Kje(e,t){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return 0;default:return 0}}class DAo{constructor(t,n=0,r=t.length,o=n-1){this.items=t,this.start=n,this.end=r,this.index=o}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class BAo{constructor(t=new Set,n=10){this._history=t,this._limit=n,this._onChange(),this._history.onDidChange&&(this._disposable=this._history.onDidChange(()=>this._onChange()))}getHistory(){return this._elements}add(t){this._history.delete(t),this._history.add(t),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(t){return this._history.has(t)}_onChange(){this._reduceToLimit();const t=this._elements;this._navigator=new DAo(t,0,t.length,t.length)}_reduceToLimit(){const t=this._elements;if(t.length>this._limit){const n=t.slice(t.length-this._limit);this._history.replace?this._history.replace(n):this._history=new Set(n)}}_currentPosition(){const t=this._navigator.current();return t?this._elements.indexOf(t):-1}get _elements(){const t=[];return this._history.forEach(n=>t.push(n)),t}dispose(){this._disposable&&(this._disposable.dispose(),this._disposable=void 0)}}const SP=tn;let RAo=class extends Y0{get onDidChange(){return this._onDidChange.event}get onDidHeightChange(){return this._onDidHeightChange.event}constructor(t,n,r){super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this.hover=this._register(new ts),this._onDidChange=this._register(new at),this._onDidHeightChange=this._register(new at),this.contextViewProvider=n,this.options=r,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=this.options.tooltip??(this.placeholder||""),this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=Xt(t,SP(".monaco-inputbox.idle"));const o=this.options.flexibleHeight?"textarea":"input",s=Xt(this.element,SP(".ibwrapper"));if(this.input=Xt(s,SP(o+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=Xt(s,SP("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new $7n(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),Xt(t,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(d=>this.input.scrollTop=d.scrollTop));const a=this._register(new ks(t.ownerDocument,"selectionchange")),l=an.filter(a.event,()=>{const d=t.ownerDocument.getSelection();return(d==null?void 0:d.anchorNode)===s});this._register(l(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new g1(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(t){this.placeholder=t,this.input.setAttribute("placeholder",t)}setTooltip(t){this.tooltip=t,this.hover.value||(this.hover.value=this._register(yp().setupDelayedHoverAtMouse(this.input,()=>({content:this.tooltip,appearance:{compact:!0}}))))}get inputElement(){return this.input}get value(){return this.input.value}set value(t){this.input.value!==t&&(this.input.value=t,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:ES(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return wbe(this.input)}select(t=null){this.input.select(),t&&(this.input.setSelectionRange(t.start,t.end),t.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){const t=this.input.selectionStart;if(t===null)return null;const n=this.input.selectionEnd??t;return{start:t,end:n}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(t){this.input.style.width=`calc(100% - ${t}px)`,this.mirror&&(this.mirror.style.paddingRight=t+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const t=this.cachedContentHeight,n=this.cachedHeight,r=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:t,height:n}),this.scrollableElement.setScrollPosition({scrollTop:r})}showMessage(t,n){if(this.state==="open"&&Q0(this.message,t))return;this.message=t,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(t.type));const r=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${n8(r.border,"transparent")}`,this.message.content&&(this.hasFocus()||n)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let t=null;return this.validation&&(t=this.validation(this.value),t?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(t)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),t==null?void 0:t.type}stylesForType(t){const n=this.options.inputBoxStyles;switch(t){case 1:return{border:n.inputValidationInfoBorder,background:n.inputValidationInfoBackground,foreground:n.inputValidationInfoForeground};case 2:return{border:n.inputValidationWarningBorder,background:n.inputValidationWarningBackground,foreground:n.inputValidationWarningForeground};default:return{border:n.inputValidationErrorBorder,background:n.inputValidationErrorBackground,foreground:n.inputValidationErrorForeground}}}classForType(t){switch(t){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let t;const n=()=>t.style.width=s0(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:o=>{if(!this.message)return null;t=Xt(o,SP(".monaco-inputbox-container")),n();const s=SP("span.monaco-inputbox-message");this.message.formatContent?xAo(this.message.content,void 0,s):LAo(this.message.content,void 0,s),s.classList.add(this.classForType(this.message.type));const a=this.stylesForType(this.message.type);return s.style.backgroundColor=a.background??"",s.style.color=a.foreground??"",s.style.border=a.border?`1px solid ${a.border}`:"",Xt(t,s),null},onHide:()=>{this.state="closed"},layout:n});let r;this.message.type===3?r=U(9,"Error: {0}",this.message.content):this.message.type===2?r=U(10,"Warning: {0}",this.message.content):r=U(11,"Info: {0}",this.message.content),um(r),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const t=this.value,r=t.charCodeAt(t.length-1)===10?" ":"";(t+r).replace(/\u000c/g,"")?this.mirror.textContent=t+r:this.mirror.innerText=" ",this.layout()}applyStyles(){const t=this.options.inputBoxStyles,n=t.inputBackground??"",r=t.inputForeground??"",o=t.inputBorder??"";this.element.style.backgroundColor=n,this.element.style.color=r,this.input.style.backgroundColor="inherit",this.input.style.color=r,this.element.style.border=`1px solid ${n8(o,"transparent")}`}layout(){if(!this.mirror)return;const t=this.cachedContentHeight;this.cachedContentHeight=ES(this.mirror),t!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(t){const n=this.inputElement,r=n.selectionStart,o=n.selectionEnd,s=n.value;r!==null&&o!==null&&(this.value=s.substr(0,r)+t+s.substr(o),n.setSelectionRange(r+1,r+1),this.layout())}dispose(){var t;this._hideMessage(),this.message=null,(t=this.actionbar)==null||t.dispose(),super.dispose()}};class TBn extends RAo{constructor(t,n,r){const o=U(12," or {0} for history","⇅"),s=U(13," ({0} for history)","⇅");super(t,n,r),this._onDidFocus=this._register(new at),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new at),this.onDidBlur=this._onDidBlur.event,this.history=this._register(new BAo(r.history,100));const a=()=>{if(r.showHistoryHint&&r.showHistoryHint()&&!this.placeholder.endsWith(o)&&!this.placeholder.endsWith(s)&&this.history.getHistory().length){const l=this.placeholder.endsWith(")")?o:s,d=this.placeholder+l;r.showPlaceholderOnFocus&&!wbe(this.input)?this.placeholder=d:this.setPlaceHolder(d)}};this.observer=new MutationObserver((l,d)=>{l.forEach(u=>{u.target.textContent||a()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>a()),this.onblur(this.input,()=>{const l=d=>{if(this.placeholder.endsWith(d)){const u=this.placeholder.slice(0,this.placeholder.length-d.length);return r.showPlaceholderOnFocus?this.placeholder=u:this.setPlaceHolder(u),!0}else return!1};l(s)||l(o)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(t){this.value&&(t||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let t=this.getNextValue();t&&(t=t===this.value?this.getNextValue():t),this.value=t??"",A3(this.value?this.value:U(14,"Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let t=this.getPreviousValue();t&&(t=t===this.value?this.getPreviousValue():t),t&&(this.value=t,A3(this.value))}setPlaceHolder(t){super.setPlaceHolder(t),this.setTooltip(t)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let t=this.history.current();return t||(t=this.history.last(),this.history.next()),t}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}const IAo=U(1,"input");class QBn extends Y0{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onMouseDown(){return this._onMouseDown.event}get onCaseSensitiveKeyDown(){return this._onCaseSensitiveKeyDown.event}get onRegexKeyDown(){return this._onRegexKeyDown.event}constructor(t,n,r){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new ts),this.additionalToggles=[],this._onDidOptionChange=this._register(new at),this._onKeyDown=this._register(new at),this._onMouseDown=this._register(new at),this._onInput=this._register(new at),this._onKeyUp=this._register(new at),this._onCaseSensitiveKeyDown=this._register(new at),this._onRegexKeyDown=this._register(new at),this._lastHighlightFindOptions=0,this.placeholder=r.placeholder||"",this.validation=r.validation,this.label=r.label||IAo,this.showCommonFindToggles=!!r.showCommonFindToggles;const o=r.appendCaseSensitiveLabel||"",s=r.appendWholeWordsLabel||"",a=r.appendRegexLabel||"",l=!!r.flexibleHeight,d=!!r.flexibleWidth,u=r.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new TBn(this.domNode,n,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},showHistoryHint:r.showHistoryHint,flexibleHeight:l,flexibleWidth:d,flexibleMaxHeight:u,inputBoxStyles:r.inputBoxStyles,history:r.history})),this.showCommonFindToggles){const h=(r==null?void 0:r.hoverLifecycleOptions)||{groupId:"find-input"};this.regex=this._register(new xBn({appendTitle:a,isChecked:!1,hoverLifecycleOptions:h,...r.toggleStyles})),this._register(this.regex.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(m=>{this._onRegexKeyDown.fire(m)})),this.wholeWords=this._register(new LBn({appendTitle:s,isChecked:!1,hoverLifecycleOptions:h,...r.toggleStyles})),this._register(this.wholeWords.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new SBn({appendTitle:o,isChecked:!1,hoverLifecycleOptions:h,...r.toggleStyles})),this._register(this.caseSensitive.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(m=>{this._onCaseSensitiveKeyDown.fire(m)}));const g=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,m=>{if(m.equals(15)||m.equals(17)||m.equals(9)){const v=g.indexOf(this.domNode.ownerDocument.activeElement);if(v>=0){let f=-1;m.equals(17)?f=(v+1)%g.length:m.equals(15)&&(v===0?f=g.length-1:f=v-1),m.equals(9)?(g[v].blur(),this.inputBox.focus()):f>=0&&g[f].focus(),Qo.stop(m,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(r==null?void 0:r.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),t==null||t.appendChild(this.domNode),this._register(wt(this.inputBox.inputElement,"compositionstart",h=>{this.imeSessionInProgress=!0})),this._register(wt(this.inputBox.inputElement,"compositionend",h=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}get onDidChange(){return this.inputBox.onDidChange}layout(t){this.inputBox.layout(),this.updateInputBoxPadding(t.collapsedFindWidget)}enable(){var t,n,r;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(t=this.regex)==null||t.enable(),(n=this.wholeWords)==null||n.enable(),(r=this.caseSensitive)==null||r.enable();for(const o of this.additionalToggles)o.enable()}disable(){var t,n,r;this.domNode.classList.add("disabled"),this.inputBox.disable(),(t=this.regex)==null||t.disable(),(n=this.wholeWords)==null||n.disable(),(r=this.caseSensitive)==null||r.disable();for(const o of this.additionalToggles)o.disable()}setFocusInputOnOptionClick(t){this.fixFocusOnOptionClickEnabled=t}setEnabled(t){t?this.enable():this.disable()}setAdditionalToggles(t){for(const n of this.additionalToggles)n.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new xt;for(const n of t??[])this.additionalTogglesDisposables.value.add(n),this.controls.appendChild(n.domNode),this.additionalTogglesDisposables.value.add(n.onChange(r=>{this._onDidOptionChange.fire(r),!r&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(n);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(t=!1){var n,r,o;t?this.inputBox.paddingRight=0:this.inputBox.paddingRight=(((n=this.caseSensitive)==null?void 0:n.width())??0)+(((r=this.wholeWords)==null?void 0:r.width())??0)+(((o=this.regex)==null?void 0:o.width())??0)+this.additionalToggles.reduce((s,a)=>s+a.width(),0)}getValue(){return this.inputBox.value}setValue(t){this.inputBox.value!==t&&(this.inputBox.value=t)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var t;return((t=this.caseSensitive)==null?void 0:t.checked)??!1}setCaseSensitive(t){this.caseSensitive&&(this.caseSensitive.checked=t)}getWholeWords(){var t;return((t=this.wholeWords)==null?void 0:t.checked)??!1}setWholeWords(t){this.wholeWords&&(this.wholeWords.checked=t)}getRegex(){var t;return((t=this.regex)==null?void 0:t.checked)??!1}setRegex(t){this.regex&&(this.regex.checked=t,this.validate())}focusOnCaseSensitive(){var t;(t=this.caseSensitive)==null||t.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(t){this.inputBox.showMessage(t)}clearMessage(){this.inputBox.hideMessage()}}const MAo=U(5,"input"),PAo=U(6,"Preserve Case");class FAo extends yL{constructor(t){super({icon:zt.preserveCase,title:PAo+t.appendTitle,isChecked:t.isChecked,hoverLifecycleOptions:t.hoverLifecycleOptions,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class NAo extends Y0{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(t,n,r,o){super(),this._showOptionButtons=r,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new at),this._onKeyDown=this._register(new at),this._onMouseDown=this._register(new at),this._onInput=this._register(new at),this._onKeyUp=this._register(new at),this._onPreserveCaseKeyDown=this._register(new at),this.contextViewProvider=n,this.placeholder=o.placeholder||"",this.validation=o.validation,this.label=o.label||MAo;const s=o.appendPreserveCaseLabel||"",a=o.history||new Set([]),l=!!o.flexibleHeight,d=!!o.flexibleWidth,u=o.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new TBn(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:o.showHistoryHint,flexibleHeight:l,flexibleWidth:d,flexibleMaxHeight:u,inputBoxStyles:o.inputBoxStyles})),this.preserveCase=this._register(new FAo({appendTitle:s,isChecked:!1,hoverLifecycleOptions:o.hoverLifecycleOptions,...o.toggleStyles})),this._register(this.preserveCase.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(m=>{this._onPreserveCaseKeyDown.fire(m)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const h=[this.preserveCase.domNode];this.onkeydown(this.domNode,m=>{if(m.equals(15)||m.equals(17)||m.equals(9)){const v=h.indexOf(this.domNode.ownerDocument.activeElement);if(v>=0){let f=-1;m.equals(17)?f=(v+1)%h.length:m.equals(15)&&(v===0?f=h.length-1:f=v-1),m.equals(9)?(h[v].blur(),this.inputBox.focus()):f>=0&&h[f].focus(),Qo.stop(m,!0)}}});const g=document.createElement("div");g.className="controls",g.style.display=this._showOptionButtons?"block":"none",g.appendChild(this.preserveCase.domNode),this.domNode.appendChild(g),t==null||t.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,m=>this._onKeyDown.fire(m)),this.onkeyup(this.inputBox.inputElement,m=>this._onKeyUp.fire(m)),this.oninput(this.inputBox.inputElement,m=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,m=>this._onMouseDown.fire(m))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(t){t?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(t){this.preserveCase.checked=t}focusOnPreserve(){this.preserveCase.focus()}validate(){var t;(t=this.inputBox)==null||t.validate()}set width(t){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=t+"px"}dispose(){super.dispose()}}var DBn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},BBn=function(e,t){return function(n,r){t(n,r,e)}};const Ktt=new yn("suggestWidgetVisible",!1,U(1698,"Whether suggestion are visible")),Jtt="historyNavigationWidgetFocus",RBn="historyNavigationForwardsEnabled",IBn="historyNavigationBackwardsEnabled";let s8;const Yle=[];function MBn(e,t){if(Yle.includes(t))throw new Error("Cannot register the same widget multiple times");Yle.push(t);const n=new xt,r=new yn(Jtt,!1).bindTo(e),o=new yn(RBn,!0).bindTo(e),s=new yn(IBn,!0).bindTo(e),a=()=>{r.set(!0),s8=t},l=()=>{r.set(!1),s8===t&&(s8=void 0)};return wbe(t.element)&&a(),n.add(t.onDidFocus(()=>a())),n.add(t.onDidBlur(()=>l())),n.add(Hn(()=>{Yle.splice(Yle.indexOf(t),1),l()})),{historyNavigationForwardsEnablement:o,historyNavigationBackwardsEnablement:s,dispose(){n.dispose()}}}let Jje=class extends QBn{constructor(t,n,r,o){super(t,n,r);const s=this._register(o.createScoped(this.inputBox.element));this._register(MBn(s,this.inputBox))}};Jje=DBn([BBn(3,Qi)],Jje);let eWe=class extends NAo{constructor(t,n,r,o,s=!1){super(t,n,s,r);const a=this._register(o.createScoped(this.inputBox.element));this._register(MBn(a,this.inputBox))}};eWe=DBn([BBn(3,Qi)],eWe);Nu.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:Ft.and(Ft.has(Jtt),Ft.equals(IBn,!0),Ft.not("isComposing"),Ktt.isEqualTo(!1)),primary:16,secondary:[528],handler:e=>{s8==null||s8.showPreviousValue()}});Nu.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:Ft.and(Ft.has(Jtt),Ft.equals(RBn,!0),Ft.not("isComposing"),Ktt.isEqualTo(!1)),primary:18,secondary:[530],handler:e=>{s8==null||s8.showNextValue()}});function lyt(e){var t,n;return((t=e.lookupKeybinding("history.showPrevious"))==null?void 0:t.getElectronAccelerator())==="Up"&&((n=e.lookupKeybinding("history.showNext"))==null?void 0:n.getElectronAccelerator())==="Down"}const cyt=Da("find-collapsed",zt.chevronRight,U(956,"Icon to indicate that the editor find widget is collapsed.")),dyt=Da("find-expanded",zt.chevronDown,U(957,"Icon to indicate that the editor find widget is expanded.")),UAo=Da("find-selection",zt.selection,U(958,"Icon for 'Find in Selection' in the editor find widget.")),jAo=Da("find-replace",zt.replace,U(959,"Icon for 'Replace' in the editor find widget.")),WAo=Da("find-replace-all",zt.replaceAll,U(960,"Icon for 'Replace All' in the editor find widget.")),VAo=Da("find-previous-match",zt.arrowUp,U(961,"Icon for 'Find Previous' in the editor find widget.")),zAo=Da("find-next-match",zt.arrowDown,U(962,"Icon for 'Find Next' in the editor find widget.")),HAo=U(963,"Find / Replace"),$Ao=U(964,"Find"),XAo=U(965,"Find"),GAo=U(966,"Previous Match"),YAo=U(967,"Next Match"),ZAo=U(968,"Find in Selection"),qAo=U(969,"Close"),KAo=U(970,"Replace"),JAo=U(971,"Replace"),e4o=U(972,"Replace"),t4o=U(973,"Replace All"),n4o=U(974,"Toggle Replace"),i4o=U(975,"Only the first {0} results are highlighted, but all find operations work on the entire text.",b9),r4o=U(976,"{0} of {1}"),uyt=U(977,"No results"),Aw=419,o4o=275,s4o=o4o-54;let SX=69;const a4o=33,hyt=Tr?256:2048;class gxe{constructor(t){this.afterLineNumber=t,this.heightInPx=a4o,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function fyt(e,t,n){const r=!!t.match(/\n/);if(n&&r&&n.selectionStart>0){e.stopPropagation();return}}function gyt(e,t,n){const r=!!t.match(/\n/);if(n&&r&&n.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(h=>this._onStateChanged(h))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(h=>{if(h.hasChanged(104)&&(this._codeEditor.getOption(104)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),h.hasChanged(165)&&this._tryUpdateWidgetWidth(),h.hasChanged(2)&&this.updateAccessibilitySupport(),h.hasChanged(50)){const g=this._codeEditor.getOption(50).loop;this._state.change({loop:g},!1);const m=this._codeEditor.getOption(50).addExtraSpaceOnTop;m&&!this._viewZone&&(this._viewZone=new gxe(0),this._showViewZone()),!m&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const h=await this._controller.getGlobalBufferTerm();h&&h!==this._state.searchString&&(this._state.change({searchString:h},!1),this._findInput.select())}})),this._findInputFocused=O3e.bindTo(a),this._findFocusTracker=this._register(uA(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=qtt.bindTo(a),this._replaceFocusTracker=this._register(uA(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop&&(this._viewZone=new gxe(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(h=>{if(h.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return Zve.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(t){if(t.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(t.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),t.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),t.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(104)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=s0(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(t.isRevealed||t.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),t.isRegex&&this._findInput.setRegex(this._state.isRegex),t.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),t.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),t.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),t.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),t.searchString||t.matchesCount||t.matchesPosition){const n=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",n),this._updateMatchesCount(),this._updateButtons()}(t.searchString||t.currentMatch)&&this._layoutViewZone(),t.updateHistory&&this._delayedUpdateHistory(),t.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,zi)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){var n;this._matchesCount.style.minWidth=SX+"px",this._state.matchesCount>=b9?this._matchesCount.title=i4o:this._matchesCount.title="",(n=this._matchesCount.firstChild)==null||n.remove();let t;if(this._state.matchesCount>0){let r=String(this._state.matchesCount);this._state.matchesCount>=b9&&(r+="+");let o=String(this._state.matchesPosition);o==="0"&&(o="?"),t=oR(r4o,o,r)}else t=uyt;this._matchesCount.appendChild(document.createTextNode(t)),um(this._getAriaLabel(t,this._state.currentMatch,this._state.searchString)),SX=Math.max(SX,this._matchesCount.clientWidth)}_getAriaLabel(t,n,r){if(t===uyt)return r===""?U(978,"{0} found",t):U(979,"{0} found for '{1}'",t,r);if(n){const o=U(980,"{0} found for '{1}', at {2}",t,r,n.startLineNumber+":"+n.startColumn),s=this._codeEditor.getModel();return s&&n.startLineNumber<=s.getLineCount()&&n.startLineNumber>=1?`${s.getLineContent(n.startLineNumber)}, ${o}`:o}return U(981,"{0} found for '{1}'",t,r)}_updateToggleSelectionFindButton(){const t=this._codeEditor.getSelection(),n=t?t.startLineNumber!==t.endLineNumber||t.startColumn!==t.endColumn:!1,r=this._toggleSelectionFind.checked;this._isVisible&&(r||n)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const t=this._state.searchString.length>0,n=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&t&&n&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&t&&n&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&t),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&t),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const r=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&r)}_reveal(){if(this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(50).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const r=!!t&&t.startLineNumber!==t.endLineNumber;this._toggleSelectionFind.checked=r;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let n=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&t){const r=this._codeEditor.getDomNode();if(r){const o=Kl(r),s=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),a=o.left+(s?s.left:0),l=s?s.top:0;if(this._viewZone&&lt.startLineNumber&&(n=!1);const d=bEn(this._domNode).left;a>d&&(n=!1);const u=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());o.left+(u?u.left:0)>d&&(n=!1)}}}this._showViewZone(n)}}_hide(t){this._revealTimeouts.forEach(n=>{clearTimeout(n)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),t&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(t){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const r=this._viewZone;this._viewZoneId!==void 0||!r||this._codeEditor.changeViewZones(o=>{r.heightInPx=this._getHeight(),this._viewZoneId=o.addZone(r),this._codeEditor.setScrollTop(t||this._codeEditor.getScrollTop()+r.heightInPx)})}_showViewZone(t=!0){if(!this._isVisible||!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new gxe(0));const r=this._viewZone;this._codeEditor.changeViewZones(o=>{if(this._viewZoneId!==void 0){const s=this._getHeight();if(s===r.heightInPx)return;const a=s-r.heightInPx;r.heightInPx=s,o.layoutZone(this._viewZoneId),t&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+a);return}else{let s=this._getHeight();if(s-=this._codeEditor.getOption(96).top,s<=0)return;r.heightInPx=s,this._viewZoneId=o.addZone(r),t&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+s)}})}_removeViewZone(){this._codeEditor.changeViewZones(t=>{this._viewZoneId!==void 0&&(t.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const t=this._codeEditor.getLayoutInfo();if(t.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const r=t.width,o=t.minimap.minimapWidth;let s=!1,a=!1,l=!1;if(this._resized&&s0(this._domNode)>Aw){this._domNode.style.maxWidth=`${r-28-o-15}px`,this._replaceInput.width=s0(this._findInput.domNode);return}if(Aw+28+o>=r&&(a=!0),Aw+28+o-SX>=r&&(l=!0),Aw+28+o-SX>=r+50&&(s=!0),this._domNode.classList.toggle("collapsed-find-widget",s),this._domNode.classList.toggle("narrow-find-widget",l),this._domNode.classList.toggle("reduced-find-widget",a),!l&&!s&&(this._domNode.style.maxWidth=`${r-28-o-15}px`),this._findInput.layout({collapsedFindWidget:s,narrowFindWidget:l,reducedFindWidget:a}),this._resized){const d=this._findInput.inputBox.element.clientWidth;d>0&&(this._replaceInput.width=d)}else this._isReplaceVisible&&(this._replaceInput.width=s0(this._findInput.domNode))}_getHeight(){let t=0;return t+=4,t+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(t+=4,t+=this._replaceInput.inputBox.height+2),t+=4,t}_tryUpdateHeight(){const t=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===t?!1:(this._cachedHeight=t,this._domNode.style.height=`${t}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const t=this._codeEditor.getSelections();t.map(n=>{n.endColumn===1&&n.endLineNumber>n.startLineNumber&&(n=n.setEndPosition(n.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(n.endLineNumber-1)));const r=this._state.currentMatch;return n.startLineNumber!==n.endLineNumber&&!Ee.equalsRange(n,r)?n:null}).filter(n=>!!n),t.length&&this._state.change({searchScope:t},!0)}}_onFindInputMouseDown(t){t.middleButton&&t.stopPropagation()}_onFindInputKeyDown(t){if(t.equals(hyt|3))if(this._keybindingService.dispatchEvent(t,t.target)){t.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` `),t.preventDefault();return}if(t.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),t.preventDefault();return}if(t.equals(2066)){this._codeEditor.focus(),t.preventDefault();return}if(t.equals(16))return fyt(t,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(t.equals(18))return gyt(t,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(t){if(t.equals(hyt|3))if(this._keybindingService.dispatchEvent(t,t.target)){t.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(` @@ -2312,7 +2312,7 @@ ${Y4(t)} `),this.list.style(t)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}},UD.InstanceCount=0,UD);var Ik;(function(e){e[e.Expanded=0]="Expanded",e[e.Collapsed=1]="Collapsed",e[e.PreserveOrExpanded=2]="PreserveOrExpanded",e[e.PreserveOrCollapsed=3]="PreserveOrCollapsed"})(Ik||(Ik={}));var pQ;(function(e){e[e.Unknown=0]="Unknown",e[e.Twistie=1]="Twistie",e[e.Element=2]="Element",e[e.Filter=3]="Filter"})(pQ||(pQ={}));class Vk extends Error{constructor(t,n){super(`TreeError [${t}] ${n}`)}}class rnt{constructor(t){this.fn=t,this._map=new WeakMap}map(t){let n=this._map.get(t);return n||(n=this.fn(t),this._map.set(t,n)),n}}class jx{constructor(t,n,r,o){this.originalStart=t,this.originalLength=n,this.modifiedStart=r,this.modifiedLength=o}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class byt{constructor(t){this.source=t}getElements(){const t=this.source,n=new Int32Array(t.length);for(let r=0,o=t.length;r0||this.m_modifiedCount>0)&&this.m_changes.push(new jx(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(t,n){this.m_originalStart=Math.min(this.m_originalStart,t),this.m_modifiedStart=Math.min(this.m_modifiedStart,n),this.m_originalCount++}AddModifiedElement(t,n){this.m_originalStart=Math.min(this.m_originalStart,t),this.m_modifiedStart=Math.min(this.m_modifiedStart,n),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class SO{constructor(t,n,r=null){this.ContinueProcessingPredicate=r,this._originalSequence=t,this._modifiedSequence=n;const[o,s,a]=SO._getElements(t),[l,d,u]=SO._getElements(n);this._hasStrings=a&&u,this._originalStringElements=o,this._originalElementsOrHash=s,this._modifiedStringElements=l,this._modifiedElementsOrHash=d,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(t){return t.length>0&&typeof t[0]=="string"}static _getElements(t){const n=t.getElements();if(SO._isStringArray(n)){const r=new Int32Array(n.length);for(let o=0,s=n.length;o=t&&o>=r&&this.ElementsAreEqual(n,o);)n--,o--;if(t>n||r>o){let g;return r<=o?(xP.Assert(t===n+1,"originalStart should only be one more than originalEnd"),g=[new jx(t,0,r,o-r+1)]):t<=n?(xP.Assert(r===o+1,"modifiedStart should only be one more than modifiedEnd"),g=[new jx(t,n-t+1,r,0)]):(xP.Assert(t===n+1,"originalStart should only be one more than originalEnd"),xP.Assert(r===o+1,"modifiedStart should only be one more than modifiedEnd"),g=[]),g}const a=[0],l=[0],d=this.ComputeRecursionPoint(t,n,r,o,a,l,s),u=a[0],h=l[0];if(d!==null)return d;if(!s[0]){const g=this.ComputeDiffRecursive(t,u,r,h,s);let m=[];return s[0]?m=[new jx(u+1,n-(u+1)+1,h+1,o-(h+1)+1)]:m=this.ComputeDiffRecursive(u+1,n,h+1,o,s),this.ConcatenateChanges(g,m)}return[new jx(t,n-t+1,r,o-r+1)]}WALKTRACE(t,n,r,o,s,a,l,d,u,h,g,m,v,f,k,A,p,b){let w=null,O=null,y=new wyt,C=n,_=r,S=v[0]-A[0]-o,L=-1073741824,E=this.m_forwardHistory.length-1;do{const T=S+t;T===C||T<_&&u[T-1]=0&&(u=this.m_forwardHistory[E],t=u[0],C=1,_=u.length-1)}while(--E>=-1);if(w=y.getReverseChanges(),b[0]){let T=v[0]+1,D=A[0]+1;if(w!==null&&w.length>0){const P=w[w.length-1];T=Math.max(T,P.getOriginalEnd()),D=Math.max(D,P.getModifiedEnd())}O=[new jx(T,m-T+1,D,k-D+1)]}else{y=new wyt,C=a,_=l,S=v[0]-A[0]-d,L=1073741824,E=p?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const T=S+s;T===C||T<_&&h[T-1]>=h[T+1]?(g=h[T+1]-1,f=g-S-d,g>L&&y.MarkNextChange(),L=g+1,y.AddOriginalElement(g+1,f+1),S=T+1-s):(g=h[T-1],f=g-S-d,g>L&&y.MarkNextChange(),L=g,y.AddModifiedElement(g+1,f+1),S=T-1-s),E>=0&&(h=this.m_reverseHistory[E],s=h[0],C=1,_=h.length-1)}while(--E>=-1);O=y.getChanges()}return this.ConcatenateChanges(w,O)}ComputeRecursionPoint(t,n,r,o,s,a,l){let d=0,u=0,h=0,g=0,m=0,v=0;t--,r--,s[0]=0,a[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const f=n-t+(o-r),k=f+1,A=new Int32Array(k),p=new Int32Array(k),b=o-r,w=n-t,O=t-r,y=n-o,_=(w-b)%2===0;A[b]=t,p[w]=n,l[0]=!1;for(let S=1;S<=f/2+1;S++){let L=0,E=0;h=this.ClipDiagonalBound(b-S,S,b,k),g=this.ClipDiagonalBound(b+S,S,b,k);for(let D=h;D<=g;D+=2){D===h||DL+E&&(L=d,E=u),!_&&Math.abs(D-w)<=S-1&&d>=p[D])return s[0]=d,a[0]=u,P<=p[D]&&S<=1448?this.WALKTRACE(b,h,g,O,w,m,v,y,A,p,d,n,s,u,o,a,_,l):null}const T=(L-t+(E-r)-S)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(L,T))return l[0]=!0,s[0]=L,a[0]=E,T>0&&S<=1448?this.WALKTRACE(b,h,g,O,w,m,v,y,A,p,d,n,s,u,o,a,_,l):(t++,r++,[new jx(t,n-t+1,r,o-r+1)]);m=this.ClipDiagonalBound(w-S,S,w,k),v=this.ClipDiagonalBound(w+S,S,w,k);for(let D=m;D<=v;D+=2){D===m||D=p[D+1]?d=p[D+1]-1:d=p[D-1],u=d-(D-w)-y;const P=d;for(;d>t&&u>r&&this.ElementsAreEqual(d,u);)d--,u--;if(p[D]=d,_&&Math.abs(D-b)<=S&&d<=A[D])return s[0]=d,a[0]=u,P>=A[D]&&S<=1448?this.WALKTRACE(b,h,g,O,w,m,v,y,A,p,d,n,s,u,o,a,_,l):null}if(S<=1447){let D=new Int32Array(g-h+2);D[0]=b-h+1,EP.Copy2(A,h,D,1,g-h+1),this.m_forwardHistory.push(D),D=new Int32Array(v-m+2),D[0]=w-m+1,EP.Copy2(p,m,D,1,v-m+1),this.m_reverseHistory.push(D)}}return this.WALKTRACE(b,h,g,O,w,m,v,y,A,p,d,n,s,u,o,a,_,l)}PrettifyChanges(t){for(let n=0;n0,l=r.modifiedLength>0;for(;r.originalStart+r.originalLength=0;n--){const r=t[n];let o=0,s=0;if(n>0){const g=t[n-1];o=g.originalStart+g.originalLength,s=g.modifiedStart+g.modifiedLength}const a=r.originalLength>0,l=r.modifiedLength>0;let d=0,u=this._boundaryScore(r.originalStart,r.originalLength,r.modifiedStart,r.modifiedLength);for(let g=1;;g++){const m=r.originalStart-g,v=r.modifiedStart-g;if(mu&&(u=k,d=g)}r.originalStart-=d,r.modifiedStart-=d;const h=[null];if(n>0&&this.ChangesOverlap(t[n-1],t[n],h)){t[n-1]=h[0],t.splice(n,1),n++;continue}}if(this._hasStrings)for(let n=1,r=t.length;n0&&v>d&&(d=v,u=g,h=m)}return d>0?[u,h]:null}_contiguousSequenceScore(t,n,r){let o=0;for(let s=0;s=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[t])}_OriginalRegionIsBoundary(t,n){if(this._OriginalIsBoundary(t)||this._OriginalIsBoundary(t-1))return!0;if(n>0){const r=t+n;if(this._OriginalIsBoundary(r-1)||this._OriginalIsBoundary(r))return!0}return!1}_ModifiedIsBoundary(t){return t<=0||t>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[t])}_ModifiedRegionIsBoundary(t,n){if(this._ModifiedIsBoundary(t)||this._ModifiedIsBoundary(t-1))return!0;if(n>0){const r=t+n;if(this._ModifiedIsBoundary(r-1)||this._ModifiedIsBoundary(r))return!0}return!1}_boundaryScore(t,n,r,o){const s=this._OriginalRegionIsBoundary(t,n)?1:0,a=this._ModifiedRegionIsBoundary(r,o)?1:0;return s+a}ConcatenateChanges(t,n){const r=[];if(t.length===0||n.length===0)return n.length>0?n:t;if(this.ChangesOverlap(t[t.length-1],n[0],r)){const o=new Array(t.length+n.length-1);return EP.Copy(t,0,o,0,t.length-1),o[t.length-1]=r[0],EP.Copy(n,1,o,t.length,n.length-1),o}else{const o=new Array(t.length+n.length);return EP.Copy(t,0,o,0,t.length),EP.Copy(n,0,o,t.length,n.length),o}}ChangesOverlap(t,n,r){if(xP.Assert(t.originalStart<=n.originalStart,"Left change is not less than or equal to right change"),xP.Assert(t.modifiedStart<=n.modifiedStart,"Left change is not less than or equal to right change"),t.originalStart+t.originalLength>=n.originalStart||t.modifiedStart+t.modifiedLength>=n.modifiedStart){const o=t.originalStart;let s=t.originalLength;const a=t.modifiedStart;let l=t.modifiedLength;return t.originalStart+t.originalLength>=n.originalStart&&(s=n.originalStart+n.originalLength-t.originalStart),t.modifiedStart+t.modifiedLength>=n.modifiedStart&&(l=n.modifiedStart+n.modifiedLength-t.modifiedStart),r[0]=new jx(o,s,a,l),!0}else return r[0]=null,!1}ClipDiagonalBound(t,n,r,o){if(t>=0&&t"u"?!1:r.collapseByDefault,this.allowNonCollapsibleParents=r.allowNonCollapsibleParents??!1,this.filter=r.filter,this.autoExpandSingleChildren=typeof r.autoExpandSingleChildren>"u"?!1:r.autoExpandSingleChildren,this.root={parent:void 0,element:n,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(t,n,r=to.empty(),o={}){if(t.length===0)throw new Vk(this.user,"Invalid tree location");o.diffIdentityProvider?this.spliceSmart(o.diffIdentityProvider,t,n,r,o):this.spliceSimple(t,n,r,o)}spliceSmart(t,n,r,o=to.empty(),s,a=s.diffDepth??0){const{parentNode:l}=this.getParentNodeWithListIndex(n);if(!l.lastDiffIds)return this.spliceSimple(n,r,o,s);const d=[...o],u=n[n.length-1],h=new SO({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,u),...d,...l.children.slice(u+r)].map(k=>t.getId(k.element).toString())}).ComputeDiff(!1);if(h.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(n,r,d,s);const g=n.slice(0,-1),m=(k,A,p)=>{if(a>0)for(let b=0;bp.originalStart-A.originalStart))m(v,f,v-(k.originalStart+k.originalLength)),v=k.originalStart,f=k.modifiedStart-u,this.spliceSimple([...g,v],k.originalLength,to.slice(d,f,f+k.modifiedLength),s);m(v,f,v)}spliceSimple(t,n,r=to.empty(),{onDidCreateNode:o,onDidDeleteNode:s,diffIdentityProvider:a}){const{parentNode:l,listIndex:d,revealed:u,visible:h}=this.getParentNodeWithListIndex(t),g=[],m=to.map(r,y=>this.createTreeNode(y,l,l.visible?1:0,u,g,o)),v=t[t.length-1];let f=0;for(let y=v;y>=0&&ya.getId(y.element).toString())):l.lastDiffIds=l.children.map(y=>a.getId(y.element).toString()):l.lastDiffIds=void 0;let w=0;for(const y of b)y.visible&&w++;if(w!==0)for(let y=v+k.length;y0&&s){const y=C=>{s(C),C.children.forEach(y)};b.forEach(y)}if(u&&h){const y=b.reduce((C,_)=>C+(_.visible?_.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(l,p-y),this._onDidSpliceRenderedNodes.fire({start:d,deleteCount:y,elements:g})}this._onDidSpliceModel.fire({insertedNodes:k,deletedNodes:b});let O=l;for(;O;){if(O.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}O=O.parent}}rerender(t){if(t.length===0)throw new Vk(this.user,"Invalid tree location");const{node:n,listIndex:r,revealed:o}=this.getTreeNodeWithListIndex(t);n.visible&&o&&this._onDidSpliceRenderedNodes.fire({start:r,deleteCount:1,elements:[n]})}has(t){return this.hasTreeNode(t)}getListIndex(t){const{listIndex:n,visible:r,revealed:o}=this.getTreeNodeWithListIndex(t);return r&&o?n:-1}getListRenderCount(t){return this.getTreeNode(t).renderNodeCount}isCollapsible(t){return this.getTreeNode(t).collapsible}setCollapsible(t,n){const r=this.getTreeNode(t);typeof n>"u"&&(n=!r.collapsible);const o={collapsible:n};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(t,o))}isCollapsed(t){return this.getTreeNode(t).collapsed}setCollapsed(t,n,r){const o=this.getTreeNode(t);typeof n>"u"&&(n=!o.collapsed);const s={collapsed:n,recursive:r||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(t,s))}_setCollapseState(t,n){const{node:r,listIndex:o,revealed:s}=this.getTreeNodeWithListIndex(t),a=this._setListNodeCollapseState(r,o,s,n);if(r!==this.root&&this.autoExpandSingleChildren&&a&&!kxe(n)&&r.collapsible&&!r.collapsed&&!n.recursive){let l=-1;for(let d=0;d-1){l=-1;break}else l=d;l>-1&&this._setCollapseState([...t,l],n)}return a}_setListNodeCollapseState(t,n,r,o){const s=this._setNodeCollapseState(t,o,!1);if(!r||!t.visible||!s)return s;const a=t.renderNodeCount,l=this.updateNodeAfterCollapseChange(t),d=a-(n===-1?0:1);return this._onDidSpliceRenderedNodes.fire({start:n+1,deleteCount:d,elements:l.slice(1)}),s}_setNodeCollapseState(t,n,r){let o;if(t===this.root?o=!1:(kxe(n)?(o=t.collapsible!==n.collapsible,t.collapsible=n.collapsible):t.collapsible?(o=t.collapsed!==n.collapsed,t.collapsed=n.collapsed):o=!1,o&&this._onDidChangeCollapseState.fire({node:t,deep:r})),!kxe(n)&&n.recursive)for(const s of t.children)o=this._setNodeCollapseState(s,n,!0)||o;return o}expandTo(t){this.eventBufferer.bufferEvents(()=>{let n=this.getTreeNode(t);for(;n.parent;)n=n.parent,t=t.slice(0,t.length-1),n.collapsed&&this._setCollapseState(t,{collapsed:!1,recursive:!1})})}refilter(){const t=this.root.renderNodeCount,n=this.updateNodeAfterFilterChange(this.root);this._onDidSpliceRenderedNodes.fire({start:0,deleteCount:t,elements:n}),this.refilterDelayer.cancel()}createTreeNode(t,n,r,o,s,a){const l={parent:n,element:t.element,children:[],depth:n.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof t.collapsible=="boolean"?t.collapsible:typeof t.collapsed<"u",collapsed:typeof t.collapsed>"u"?this.collapseByDefault:t.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},d=this._filterNode(l,r);l.visibility=d,o&&s.push(l);const u=t.children||to.empty(),h=o&&d!==0&&!l.collapsed;let g=0,m=1;for(const v of u){const f=this.createTreeNode(v,l,d,h,s,a);l.children.push(f),m+=f.renderNodeCount,f.visible&&(f.visibleChildIndex=g++)}return this.allowNonCollapsibleParents||(l.collapsible=l.collapsible||l.children.length>0),l.visibleChildrenCount=g,l.visible=d===2?g>0:d===1,l.visible?l.collapsed||(l.renderNodeCount=m):(l.renderNodeCount=0,o&&s.pop()),a==null||a(l),l}updateNodeAfterCollapseChange(t){const n=t.renderNodeCount,r=[];return this._updateNodeAfterCollapseChange(t,r),this._updateAncestorsRenderNodeCount(t.parent,r.length-n),r}_updateNodeAfterCollapseChange(t,n){if(t.visible===!1)return 0;if(n.push(t),t.renderNodeCount=1,!t.collapsed)for(const r of t.children)t.renderNodeCount+=this._updateNodeAfterCollapseChange(r,n);return this._onDidChangeRenderNodeCount.fire(t),t.renderNodeCount}updateNodeAfterFilterChange(t){const n=t.renderNodeCount,r=[];return this._updateNodeAfterFilterChange(t,t.visible?1:0,r),this._updateAncestorsRenderNodeCount(t.parent,r.length-n),r}_updateNodeAfterFilterChange(t,n,r,o=!0){let s;if(t!==this.root){if(s=this._filterNode(t,n),s===0)return t.visible=!1,t.renderNodeCount=0,!1;o&&r.push(t)}const a=r.length;t.renderNodeCount=t===this.root?0:1;let l=!1;if(!t.collapsed||s!==0){let d=0;for(const u of t.children)l=this._updateNodeAfterFilterChange(u,s,r,o&&!t.collapsed)||l,u.visible&&(u.visibleChildIndex=d++);t.visibleChildrenCount=d}else t.visibleChildrenCount=0;return t!==this.root&&(t.visible=s===2?l:s===1,t.visibility=s),t.visible?t.collapsed||(t.renderNodeCount+=r.length-a):(t.renderNodeCount=0,o&&r.pop()),this._onDidChangeRenderNodeCount.fire(t),t.visible}_updateAncestorsRenderNodeCount(t,n){if(n!==0)for(;t;)t.renderNodeCount+=n,this._onDidChangeRenderNodeCount.fire(t),t=t.parent}_filterNode(t,n){const r=this.filter?this.filter.filter(t.element,n):1;return typeof r=="boolean"?(t.filterData=void 0,r?1:0):Jie(r)?(t.filterData=r.data,LR(r.visibility)):(t.filterData=void 0,LR(r))}hasTreeNode(t,n=this.root){if(!t||t.length===0)return!0;const[r,...o]=t;return r<0||r>n.children.length?!1:this.hasTreeNode(o,n.children[r])}getTreeNode(t,n=this.root){if(!t||t.length===0)return n;const[r,...o]=t;if(r<0||r>n.children.length)throw new Vk(this.user,"Invalid tree location");return this.getTreeNode(o,n.children[r])}getTreeNodeWithListIndex(t){if(t.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:n,listIndex:r,revealed:o,visible:s}=this.getParentNodeWithListIndex(t),a=t[t.length-1];if(a<0||a>n.children.length)throw new Vk(this.user,"Invalid tree location");const l=n.children[a];return{node:l,listIndex:r,revealed:o,visible:s&&l.visible}}getParentNodeWithListIndex(t,n=this.root,r=0,o=!0,s=!0){const[a,...l]=t;if(a<0||a>n.children.length)throw new Vk(this.user,"Invalid tree location");for(let d=0;dn.element)),this.data=t}}function vxe(e){return e instanceof zie?new tpo(e):e}class npo{constructor(t,n){this.modelProvider=t,this.dnd=n,this.autoExpandDisposable=ft.None,this.disposables=new xt}getDragURI(t){return this.dnd.getDragURI(t.element)}getDragLabel(t,n){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(t.map(r=>r.element),n)}onDragStart(t,n){var r,o;(o=(r=this.dnd).onDragStart)==null||o.call(r,vxe(t),n)}onDragOver(t,n,r,o,s,a=!0){const l=this.dnd.onDragOver(vxe(t),n&&n.element,r,o,s),d=this.autoExpandNode!==n;if(d&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=n),typeof n>"u")return l;if(d&&typeof l!="boolean"&&l.autoExpand&&(this.autoExpandDisposable=B8(()=>{const v=this.modelProvider(),f=v.getNodeLocation(n);v.isCollapsed(f)&&v.setCollapsed(f,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof l=="boolean"||!l.accept||typeof l.bubble>"u"||l.feedback){if(!a){const v=typeof l=="boolean"?l:l.accept,f=typeof l=="boolean"?void 0:l.effect;return{accept:v,effect:f,feedback:[r]}}return l}if(l.bubble===1){const v=this.modelProvider(),f=v.getNodeLocation(n),k=v.getParentNodeLocation(f),A=v.getNode(k),p=k&&v.getListIndex(k);return this.onDragOver(t,A,p,o,s,!1)}const u=this.modelProvider(),h=u.getNodeLocation(n),g=u.getListIndex(h),m=u.getListRenderCount(h);return{...l,feedback:Xg(g,g+m)}}drop(t,n,r,o,s){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(vxe(t),n&&n.element,r,o,s)}onDragEnd(t){var n,r;(r=(n=this.dnd).onDragEnd)==null||r.call(n,t)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function ipo(e,t,n){return n&&{...n,identityProvider:n.identityProvider&&{getId(r){return n.identityProvider.getId(r.element)}},dnd:n.dnd&&t.add(new npo(e,n.dnd)),multipleSelectionController:n.multipleSelectionController&&{isSelectionSingleChangeEvent(r){return n.multipleSelectionController.isSelectionSingleChangeEvent({...r,element:r.element})},isSelectionRangeChangeEvent(r){return n.multipleSelectionController.isSelectionRangeChangeEvent({...r,element:r.element})}},accessibilityProvider:n.accessibilityProvider&&{...n.accessibilityProvider,getSetSize(r){const o=e(),s=o.getNodeLocation(r),a=o.getParentNodeLocation(s);return o.getNode(a).visibleChildrenCount},getPosInSet(r){return r.visibleChildIndex+1},isChecked:n.accessibilityProvider&&n.accessibilityProvider.isChecked?r=>n.accessibilityProvider.isChecked(r.element):void 0,getRole:n.accessibilityProvider&&n.accessibilityProvider.getRole?r=>n.accessibilityProvider.getRole(r.element):()=>"treeitem",getAriaLabel(r){return n.accessibilityProvider.getAriaLabel(r.element)},getWidgetAriaLabel(){return n.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:n.accessibilityProvider&&n.accessibilityProvider.getWidgetRole?()=>n.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:n.accessibilityProvider&&n.accessibilityProvider.getAriaLevel?r=>n.accessibilityProvider.getAriaLevel(r.element):r=>r.depth,getActiveDescendantId:n.accessibilityProvider.getActiveDescendantId&&(r=>n.accessibilityProvider.getActiveDescendantId(r.element))},keyboardNavigationLabelProvider:n.keyboardNavigationLabelProvider&&{...n.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(r){return n.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(r.element)}}}}class ont{constructor(t){this.delegate=t}getHeight(t){return this.delegate.getHeight(t.element)}getTemplateId(t){return this.delegate.getTemplateId(t.element)}hasDynamicHeight(t){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(t.element)}setDynamicHeight(t,n){var r,o;(o=(r=this.delegate).setDynamicHeight)==null||o.call(r,t.element,n)}}var xR;(function(e){e.None="none",e.OnHover="onHover",e.Always="always"})(xR||(xR={}));class rpo{get elements(){return this._elements}constructor(t,n=[]){this._elements=n,this.disposables=new xt,this.onDidChange=an.forEach(t,r=>this._elements=r,this.disposables)}dispose(){this.disposables.dispose()}}const iU=class iU{constructor(t,n,r,o,s,a={}){var l;this.renderer=t,this.model=n,this.activeNodes=o,this.renderedIndentGuides=s,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=iU.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=ft.None,this.disposables=new xt,this.templateId=t.templateId,this.updateOptions(a),an.map(r,d=>d.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(l=t.onDidChangeTwistieState)==null||l.call(t,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(t={}){if(typeof t.indent<"u"){const n=Zg(t.indent,0,40);if(n!==this.indent){this.indent=n;for(const[r,o]of this.renderedNodes)o.indentSize=iU.DefaultIndent+(r.depth-1)*this.indent,this.renderTreeElement(r,o)}}if(typeof t.renderIndentGuides<"u"){const n=t.renderIndentGuides!==xR.None;if(n!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=n;for(const[r,o]of this.renderedNodes)this._renderIndentGuides(r,o);if(this.indentGuidesDisposable.dispose(),n){const r=new xt;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,r),this.indentGuidesDisposable=r,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof t.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=t.hideTwistiesOfChildlessElements)}renderTemplate(t){const n=Xt(t,tn(".monaco-tl-row")),r=Xt(n,tn(".monaco-tl-indent")),o=Xt(n,tn(".monaco-tl-twistie")),s=Xt(n,tn(".monaco-tl-contents")),a=this.renderer.renderTemplate(s);return{container:t,indent:r,twistie:o,indentGuidesDisposable:ft.None,indentSize:0,templateData:a}}renderElement(t,n,r,o){r.indentSize=iU.DefaultIndent+(t.depth-1)*this.indent,this.renderedNodes.set(t,r),this.renderedElements.set(t.element,t),this.renderTreeElement(t,r),this.renderer.renderElement(t,n,r.templateData,{...o,indent:r.indentSize})}disposeElement(t,n,r,o){var s,a;r.indentGuidesDisposable.dispose(),(a=(s=this.renderer).disposeElement)==null||a.call(s,t,n,r.templateData,{...o,indent:r.indentSize}),typeof(o==null?void 0:o.height)=="number"&&(this.renderedNodes.delete(t),this.renderedElements.delete(t.element))}disposeTemplate(t){this.renderer.disposeTemplate(t.templateData)}onDidChangeTwistieState(t){const n=this.renderedElements.get(t);n&&this.onDidChangeNodeTwistieState(n)}onDidChangeNodeTwistieState(t){const n=this.renderedNodes.get(t);n&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(t,n))}renderTreeElement(t,n){n.twistie.style.paddingLeft=`${n.indentSize}px`,n.indent.style.width=`${n.indentSize+this.indent-16}px`,t.collapsible?n.container.setAttribute("aria-expanded",String(!t.collapsed)):n.container.removeAttribute("aria-expanded"),n.twistie.classList.remove(...fi.asClassNameArray(zt.treeItemExpanded));let r=!1;this.renderer.renderTwistie&&(r=this.renderer.renderTwistie(t.element,n.twistie)),t.collapsible&&(!this.hideTwistiesOfChildlessElements||t.visibleChildrenCount>0)?(r||n.twistie.classList.add(...fi.asClassNameArray(zt.treeItemExpanded)),n.twistie.classList.add("collapsible"),n.twistie.classList.toggle("collapsed",t.collapsed)):n.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(t,n)}_renderIndentGuides(t,n){if(uh(n.indent),n.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const r=new xt;for(;;){const o=this.model.getNodeLocation(t),s=this.model.getParentNodeLocation(o);if(!s)break;const a=this.model.getNode(s),l=tn(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(a)&&l.classList.add("active"),n.indent.childElementCount===0?n.indent.appendChild(l):n.indent.insertBefore(l,n.indent.firstElementChild),this.renderedIndentGuides.add(a,l),r.add(Hn(()=>this.renderedIndentGuides.delete(a,l))),t=a}n.indentGuidesDisposable=r}_onDidChangeActiveNodes(t){if(!this.shouldRenderIndentGuides)return;const n=new Set;t.forEach(r=>{const o=this.model.getNodeLocation(r);try{const s=this.model.getParentNodeLocation(o);r.collapsible&&r.children.length>0&&!r.collapsed?n.add(r):s&&n.add(this.model.getNode(s))}catch{}}),this.activeIndentNodes.forEach(r=>{n.has(r)||this.renderedIndentGuides.forEach(r,o=>o.classList.remove("active"))}),n.forEach(r=>{this.activeIndentNodes.has(r)||this.renderedIndentGuides.forEach(r,o=>o.classList.add("active"))}),this.activeIndentNodes=n}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),us(this.disposables)}};iU.DefaultIndent=8;let oWe=iU;function opo(e,t){const n=t.toLowerCase().indexOf(e);let r;if(n>-1){r=[Number.MAX_SAFE_INTEGER,0];for(let o=e.length;o>0;o--)r.push(n+o-1)}return r}class eRn{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}set findMatchType(t){this._findMatchType=t}get findMatchType(){return this._findMatchType}set findMode(t){this._findMode=t}get findMode(){return this._findMode}constructor(t,n,r){this._keyboardNavigationLabelProvider=t,this._filter=n,this._defaultFindVisibility=r,this._totalCount=0,this._matchCount=0,this._findMatchType=Hb.Fuzzy,this._findMode=zk.Highlight,this._pattern="",this._lowercasePattern="",this.disposables=new xt}filter(t,n){let r=1;if(this._filter){const a=this._filter.filter(t,n);if(typeof a=="boolean"?r=a?1:0:Jie(a)?r=LR(a.visibility):r=a,r===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:q4.Default,visibility:r};const o=this._keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t),s=Array.isArray(o)?o:[o];for(const a of s){const l=a&&a.toString();if(typeof l>"u")return{data:q4.Default,visibility:r};let d;if(this._findMatchType===Hb.Contiguous?d=opo(this._lowercasePattern,l.toLowerCase()):d=kR(this._pattern,this._lowercasePattern,0,l,l.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0}),d)return this._matchCount++,s.length===1?{data:d,visibility:r}:{data:{label:l,score:d},visibility:r}}return this._findMode===zk.Filter?typeof this._defaultFindVisibility=="number"?this._defaultFindVisibility:this._defaultFindVisibility?this._defaultFindVisibility(t):2:{data:q4.Default,visibility:r}}reset(){this._totalCount=0,this._matchCount=0}dispose(){us(this.disposables)}}class spo{constructor(t){this.stateMap=new Map(t.map(n=>[n.id,{...n}]))}get(t){const n=this.stateMap.get(t);if(n===void 0)throw new Error(`No state found for toggle id ${t}`);return n.isChecked}set(t,n){const r=this.stateMap.get(t);if(r===void 0)throw new Error(`No state found for toggle id ${t}`);return r.isChecked===n?!1:(r.isChecked=n,!0)}}var zk;(function(e){e[e.Highlight=0]="Highlight",e[e.Filter=1]="Filter"})(zk||(zk={}));var Hb;(function(e){e[e.Fuzzy=0]="Fuzzy",e[e.Contiguous=1]="Contiguous"})(Hb||(Hb={}));var a5;(function(e){e.Mode="mode",e.MatchType="matchType"})(a5||(a5={}));class apo{get pattern(){return this._pattern}get placeholder(){return this._placeholder}set placeholder(t){var n;this._placeholder=t,(n=this.widget)==null||n.setPlaceHolder(t)}constructor(t,n,r,o={}){this.tree=t,this.filter=n,this.contextViewProvider=r,this.options=o,this._pattern="",this._onDidChangePattern=new at,this._onDidChangeOpenState=new at,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new xt,this.disposables=new xt,this.toggles=new spo(o.toggles??[]),this._placeholder=o.placeholder??U(20,"Type to search")}isOpened(){return!!this.widget}updateToggleState(t,n){var r;this.toggles.set(t,n),(r=this.widget)==null||r.setToggleState(t,n)}renderMessage(t,n){var r,o,s;t?this.tree.options.showNotFoundMessage??!0?(r=this.widget)==null||r.showMessage({type:2,content:n??U(21,"No results found.")}):(o=this.widget)==null||o.showMessage({type:2}):(s=this.widget)==null||s.clearMessage()}alertResults(t){um(t?U(23,"{0} results",t):U(22,"No results"))}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}let tRn=class extends apo{get mode(){return this.toggles.get(a5.Mode)?zk.Filter:zk.Highlight}set mode(t){if(t===this.mode)return;const n=t===zk.Filter;this.updateToggleState(a5.Mode,n),this.placeholder=n?U(24,"Type to filter"):U(25,"Type to search"),this.filter.findMode=t,this.tree.refilter(),this.render(),this._onDidChangeMode.fire(t)}get matchType(){return this.toggles.get(a5.MatchType)?Hb.Fuzzy:Hb.Contiguous}set matchType(t){t!==this.matchType&&(this.updateToggleState(a5.MatchType,t===Hb.Fuzzy),this.filter.findMatchType=t,this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(t))}constructor(t,n,r,o={}){const s=o.defaultFindMode??zk.Highlight,a=o.defaultFindMatchType??Hb.Fuzzy,l=[{id:a5.Mode,icon:zt.listFilter,title:U(26,"Filter"),isChecked:s===zk.Filter},{id:a5.MatchType,icon:zt.searchFuzzy,title:U(27,"Fuzzy Match"),isChecked:a===Hb.Fuzzy}];n.findMatchType=a,n.findMode=s,super(t,n,r,{...o,toggles:l}),this.filter=n,this._onDidChangeMode=new at,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new at,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this.disposables.add(this.tree.onDidChangeModel(()=>{this.isOpened()&&(this.pattern.length!==0&&this.tree.refilter(),this.render())})),this.disposables.add(this.tree.onWillRefilter(()=>this.filter.reset()))}updateOptions(t={}){t.defaultFindMode!==void 0&&(this.mode=t.defaultFindMode),t.defaultFindMatchType!==void 0&&(this.matchType=t.defaultFindMatchType)}shouldAllowFocus(t){return!this.isOpened()||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!q4.isDefault(t.filterData)}render(){const n=this.filter.matchCount===0&&this.filter.totalCount>0&&this.pattern.length>0;this.renderMessage(n),this.pattern.length&&this.alertResults(this.filter.matchCount)}};function lpo(e,t){return e.position===t.position&&nRn(e,t)}function nRn(e,t){return e.node.element===t.node.element&&e.startIndex===t.startIndex&&e.height===t.height&&e.endIndex===t.endIndex}class cpo{constructor(t=[]){this.stickyNodes=t}get count(){return this.stickyNodes.length}equal(t){return Na(this.stickyNodes,t.stickyNodes,lpo)}contains(t){return this.stickyNodes.some(n=>n.node.element===t.element)}lastNodePartiallyVisible(){if(this.count===0)return!1;const t=this.stickyNodes[this.count-1];if(this.count===1)return t.position!==0;const n=this.stickyNodes[this.count-2];return n.position+n.height!==t.position}animationStateChanged(t){if(!Na(this.stickyNodes,t.stickyNodes,nRn)||this.count===0)return!1;const n=this.stickyNodes[this.count-1],r=t.stickyNodes[t.count-1];return n.position!==r.position}}class dpo{constrainStickyScrollNodes(t,n,r){for(let o=0;or||o>=n)return t.slice(0,o)}return t}}let Oyt=class extends ft{constructor(t,n,r,o,s,a={}){super(),this.tree=t,this.model=n,this.view=r,this.treeDelegate=s,this.maxWidgetViewRatio=.4;const l=this.validateStickySettings(a);this.stickyScrollMaxItemCount=l.stickyScrollMaxItemCount,this.stickyScrollDelegate=a.stickyScrollDelegate??new dpo,this.paddingTop=a.paddingTop??0,this._widget=this._register(new upo(r.getScrollableElement(),r,t,o,s,a.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(r.onDidScroll(()=>this.update())),this._register(r.onDidChangeContentHeight(()=>this.update())),this._register(t.onDidChangeCollapseState(()=>this.update())),this._register(n.onDidSpliceRenderedNodes(d=>{const u=this._widget.state;if(!u)return;if(d.deleteCount>0&&u.stickyNodes.some(m=>!this.model.has(this.model.getNodeLocation(m.node)))){this.update();return}u.stickyNodes.some(m=>{const v=this.model.getListIndex(this.model.getNodeLocation(m.node));return v>=d.start&&v=this.view.length))return this.view.element(n)}update(){const t=this.getNodeAtHeight(this.paddingTop);if(!t||this.tree.scrollTop<=this.paddingTop){this._widget.setState(void 0);return}const n=this.findStickyState(t);this._widget.setState(n)}findStickyState(t){const n=[];let r=t,o=0,s=this.getNextStickyNode(r,void 0,o);for(;s&&(n.push(s),o+=s.height,!(n.length<=this.stickyScrollMaxItemCount&&(r=this.getNextVisibleNode(s),!r)));)s=this.getNextStickyNode(r,s.node,o);const a=this.constrainStickyNodes(n);return a.length?new cpo(a):void 0}getNextVisibleNode(t){return this.getNodeAtHeight(t.position+t.height)}getNextStickyNode(t,n,r){const o=this.getAncestorUnderPrevious(t,n);if(o&&!(o===t&&(!this.nodeIsUncollapsedParent(t)||this.nodeTopAlignsWithStickyNodesBottom(t,r))))return this.createStickyScrollNode(o,r)}nodeTopAlignsWithStickyNodesBottom(t,n){const r=this.getNodeIndex(t),o=this.view.getElementTop(r),s=n;return this.view.scrollTop===o-s}createStickyScrollNode(t,n){const r=this.treeDelegate.getHeight(t),{startIndex:o,endIndex:s}=this.getNodeRange(t),a=this.calculateStickyNodePosition(s,n,r);return{node:t,position:a,height:r,startIndex:o,endIndex:s}}getAncestorUnderPrevious(t,n=void 0){let r=t,o=this.getParentNode(r);for(;o;){if(o===n)return r;r=o,o=this.getParentNode(r)}if(n===void 0)return r}calculateStickyNodePosition(t,n,r){let o=this.view.getRelativeTop(t);if(o===null&&this.view.firstVisibleIndex===t&&t+1d&&n<=d?d-r:n}constrainStickyNodes(t){if(t.length===0)return[];const n=this.view.renderHeight*this.maxWidgetViewRatio,r=t[t.length-1];if(t.length<=this.stickyScrollMaxItemCount&&r.position+r.height<=n)return t;const o=this.stickyScrollDelegate.constrainStickyScrollNodes(t,this.stickyScrollMaxItemCount,n);if(!o.length)return[];const s=o[o.length-1];if(o.length>this.stickyScrollMaxItemCount||s.position+s.height>n)throw new Error("stickyScrollDelegate violates constraints");return o}getParentNode(t){const n=this.model.getNodeLocation(t),r=this.model.getParentNodeLocation(n);return r?this.model.getNode(r):void 0}nodeIsUncollapsedParent(t){const n=this.model.getNodeLocation(t);return this.model.getListRenderCount(n)>1}getNodeIndex(t){const n=this.model.getNodeLocation(t);return this.model.getListIndex(n)}getNodeRange(t){const n=this.model.getNodeLocation(t),r=this.model.getListIndex(n);if(r<0)throw new Error("Node not found in tree");const o=this.model.getListRenderCount(n),s=r+o-1;return{startIndex:r,endIndex:s}}nodePositionTopBelowWidget(t){const n=[];let r=this.getParentNode(t);for(;r;)n.push(r),r=this.getParentNode(r);let o=0;for(let s=0;s0,r=!!t&&t.count>0;if(!n&&!r||n&&r&&this._previousState.equal(t))return;if(n!==r&&this.setVisible(r),!r){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const o=t.stickyNodes[t.count-1];this._previousState&&t.animationStateChanged(this._previousState)?this._previousElements[this._previousState.count-1].style.top=`${o.position}px`:this.renderState(t),this._previousState=t,this._rootDomNode.style.height=`${o.position+o.height}px`}renderState(t){this._previousStateDisposables.clear();const n=Array(t.count);for(let r=t.count-1;r>=0;r--){const o=t.stickyNodes[r],{element:s,disposable:a}=this.createElement(o,r,t.count);n[r]=s,this._rootDomNode.appendChild(s),this._previousStateDisposables.add(a)}this.stickyScrollFocus.updateElements(n,t),this._previousElements=n}rerender(){this._previousState&&this.renderState(this._previousState)}createElement(t,n,r){const o=t.startIndex,s=document.createElement("div");s.style.top=`${t.position}px`,this.tree.options.setRowHeight!==!1&&(s.style.height=`${t.height}px`),this.tree.options.setRowLineHeight!==!1&&(s.style.lineHeight=`${t.height}px`),s.classList.add("monaco-tree-sticky-row"),s.classList.add("monaco-list-row"),s.setAttribute("data-index",`${o}`),s.setAttribute("data-parity",o%2===0?"even":"odd"),s.setAttribute("id",this.view.getElementID(o));const a=this.setAccessibilityAttributes(s,t.node.element,n,r),l=this.treeDelegate.getTemplateId(t.node),d=this.treeRenderers.find(m=>m.templateId===l);if(!d)throw new Error(`No renderer found for template id ${l}`);let u=t.node;u===this.tree.getNode(this.tree.getNodeLocation(t.node))&&(u=new Proxy(t.node,{}));const h=d.renderTemplate(s);d.renderElement(u,t.startIndex,h,{height:t.height});const g=Hn(()=>{a.dispose(),d.disposeElement(u,t.startIndex,h,{height:t.height}),d.disposeTemplate(h),s.remove()});return{element:s,disposable:g}}setAccessibilityAttributes(t,n,r,o){if(!this.accessibilityProvider)return ft.None;this.accessibilityProvider.getSetSize&&t.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(n,r,o))),this.accessibilityProvider.getPosInSet&&t.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(n,r))),this.accessibilityProvider.getRole&&t.setAttribute("role",this.accessibilityProvider.getRole(n)??"treeitem");const s=this.accessibilityProvider.getAriaLabel(n),a=s&&typeof s!="string"?s:ca(s),l=Oi(u=>{const h=u.readObservable(a);h?t.setAttribute("aria-label",h):t.removeAttribute("aria-label")});typeof s=="string"||s&&t.setAttribute("aria-label",s.get());const d=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(n);return typeof d=="number"&&t.setAttribute("aria-level",`${d}`),t.setAttribute("aria-selected",String(!1)),l}setVisible(t){this._rootDomNode.classList.toggle("empty",!t),t||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}};class hpo extends ft{get domHasFocus(){return this._domHasFocus}set domHasFocus(t){t!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(t),this._domHasFocus=t)}constructor(t,n){super(),this.container=t,this.view=n,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new at,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new at,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this._register(wt(this.container,"focus",()=>this.onFocus())),this._register(wt(this.container,"blur",()=>this.onBlur())),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(r=>this.onKeyDown(r))),this._register(this.view.onMouseDown(r=>this.onMouseDown(r))),this._register(this.view.onContextMenu(r=>this.handleContextMenu(r)))}handleContextMenu(t){const n=t.browserEvent.target;if(!TJ(n)&&!xZ(n)){this.focusedLast()&&this.view.domFocus();return}if(!eS(t.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const a=this.state.stickyNodes.findIndex(l=>{var d;return l.node.element===((d=t.element)==null?void 0:d.element)});if(a===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(a);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const o=this.state.stickyNodes[this.focusedIndex].node.element,s=this.elements[this.focusedIndex];this._onContextMenu.fire({element:o,anchor:s,browserEvent:t.browserEvent,isStickyScroll:!0})}onKeyDown(t){if(this.domHasFocus&&this.state){if(t.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),t.preventDefault(),t.stopPropagation();else if(t.key==="ArrowDown"||t.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const n=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([n]),this.scrollNodeUnderWidget(n,this.state)}else this.setFocusedElement(this.focusedIndex+1);t.preventDefault(),t.stopPropagation()}}}onMouseDown(t){const n=t.browserEvent.target;!TJ(n)&&!xZ(n)||(t.browserEvent.preventDefault(),t.browserEvent.stopPropagation())}updateElements(t,n){if(n&&n.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(n&&n.count!==t.length)throw new Error("Sticky scroll focus received illigel state");const r=this.focusedIndex;if(this.removeFocus(),this.elements=t,this.state=n,n){const o=Zg(r,0,n.count-1);this.setFocus(o)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=n?0:-1}setFocusedElement(t){const n=this.state;if(!n)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(t),!(t1?n.stickyNodes[n.count-2]:void 0,s=this.view.getElementTop(t),a=o?o.position+o.height+r.height:r.height;this.view.scrollTop=s-a}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(t){if(0>t)throw new Error("addFocus() can not remove focus");if(!this.state&&t>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&t>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const n=this.focusedIndex;n>=0&&this.toggleElementFocus(this.elements[n],!1),t>=0&&this.toggleElementFocus(this.elements[t],!0),this.focusedIndex=t}toggleElementFocus(t,n){this.toggleElementActiveFocus(t,n&&this.domHasFocus),this.toggleElementPassiveFocus(t,n)}toggleCurrentElementActiveFocus(t){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],t)}toggleElementActiveFocus(t,n){t.classList.toggle("focused",n)}toggleElementPassiveFocus(t,n){t.classList.toggle("passive-focused",n)}toggleStickyScrollFocused(t){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",t)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function Jle(e){let t=pQ.Unknown;return tLe(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=pQ.Twistie:tLe(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?t=pQ.Element:tLe(e.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(t=pQ.Filter),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function fpo(e){const t=TJ(e.browserEvent.target);return{element:e.element?e.element.element:null,browserEvent:e.browserEvent,anchor:e.anchor,isStickyScroll:t}}function khe(e,t){t(e),e.children.forEach(n=>khe(n,t))}class Axe{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(t,n){this.getFirstViewElementWithTrait=t,this.identityProvider=n,this.nodes=[],this._onDidChange=new at,this.onDidChange=this._onDidChange.event}set(t,n){const r=n;!(r!=null&&r.__forceEvent)&&Na(this.nodes,t)||this._set(t,!1,n)}_set(t,n,r){if(this.nodes=[...t],this.elements=void 0,this._nodeSet=void 0,!n){const o=this;this._onDidChange.fire({get elements(){return o.get()},browserEvent:r})}}get(){return this.elements||(this.elements=this.nodes.map(t=>t.element)),[...this.elements]}getNodes(){return this.nodes}has(t){return this.nodeSet.has(t)}onDidModelSplice({insertedNodes:t,deletedNodes:n}){if(!this.identityProvider){const d=this.createNodeSet(),u=h=>d.delete(h);n.forEach(h=>khe(h,u)),this.set([...d.values()]);return}const r=new Set,o=d=>r.add(this.identityProvider.getId(d.element).toString());n.forEach(d=>khe(d,o));const s=new Map,a=d=>s.set(this.identityProvider.getId(d.element).toString(),d);t.forEach(d=>khe(d,a));const l=[];for(const d of this.nodes){const u=this.identityProvider.getId(d.element).toString();if(!r.has(u))l.push(d);else{const g=s.get(u);g&&g.visible&&l.push(g)}}if(this.nodes.length>0&&l.length===0){const d=this.getFirstViewElementWithTrait();d&&l.push(d)}this._set(l,!0)}createNodeSet(){const t=new Set;for(const n of this.nodes)t.add(n);return t}}class gpo extends eDn{constructor(t,n,r){super(t),this.tree=n,this.stickyScrollProvider=r}onViewPointer(t){if(ZQn(t.browserEvent.target)||s3(t.browserEvent.target)||NG(t.browserEvent.target)||t.browserEvent.isHandledByList)return;const n=t.element;if(!n)return super.onViewPointer(t);if(this.isSelectionRangeChangeEvent(t)||this.isSelectionSingleChangeEvent(t))return super.onViewPointer(t);const r=t.browserEvent.target,o=r.classList.contains("monaco-tl-twistie")||r.classList.contains("monaco-icon-label")&&r.classList.contains("folder-icon")&&t.browserEvent.offsetX<16,s=xZ(t.browserEvent.target);let a=!1;if(s?a=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?a=this.tree.expandOnlyOnTwistieClick(n.element):a=!!this.tree.expandOnlyOnTwistieClick,s)this.handleStickyScrollMouseEvent(t,n);else{if(a&&!o&&t.browserEvent.detail!==2)return super.onViewPointer(t);if(!this.tree.expandOnDoubleClick&&t.browserEvent.detail===2)return super.onViewPointer(t)}if(n.collapsible&&(!s||o)){const l=this.tree.getNodeLocation(n),d=t.browserEvent.altKey;if(this.tree.setFocus([l]),this.tree.toggleCollapsed(l,d),o){t.browserEvent.isHandledByList=!0;return}}s||super.onViewPointer(t)}handleStickyScrollMouseEvent(t,n){if(q1o(t.browserEvent.target)||K1o(t.browserEvent.target))return;const r=this.stickyScrollProvider();if(!r)throw new Error("Sticky scroll controller not found");const o=this.list.indexOf(n),s=this.list.getElementTop(o),a=r.nodePositionTopBelowWidget(n);this.tree.scrollTop=s-a,this.list.domFocus(),this.list.setFocus([o]),this.list.setSelection([o])}onDoubleClick(t){t.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||t.browserEvent.isHandledByList||super.onDoubleClick(t)}onMouseDown(t){const n=t.browserEvent.target;if(!TJ(n)&&!xZ(n)){super.onMouseDown(t);return}}onContextMenu(t){const n=t.browserEvent.target;if(!TJ(n)&&!xZ(n)){super.onContextMenu(t);return}}}class mpo extends _2{constructor(t,n,r,o,s,a,l,d){super(t,n,r,o,d),this.focusTrait=s,this.selectionTrait=a,this.anchorTrait=l}createMouseController(t){return new gpo(this,t.tree,t.stickyScrollProvider)}splice(t,n,r=[]){if(super.splice(t,n,r),r.length===0)return;const o=[],s=[];let a;r.forEach((l,d)=>{this.focusTrait.has(l)&&o.push(t+d),this.selectionTrait.has(l)&&s.push(t+d),this.anchorTrait.has(l)&&(a=t+d)}),o.length>0&&super.setFocus(M8([...super.getFocus(),...o])),s.length>0&&super.setSelection(M8([...super.getSelection(),...s])),typeof a=="number"&&super.setAnchor(a)}setFocus(t,n,r=!1){super.setFocus(t,n),r||this.focusTrait.set(t.map(o=>this.element(o)),n)}setSelection(t,n,r=!1){super.setSelection(t,n),r||this.selectionTrait.set(t.map(o=>this.element(o)),n)}setAnchor(t,n=!1){super.setAnchor(t),n||(typeof t>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(t)]))}}class iRn{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return an.filter(an.map(this.view.onMouseDblClick,Jle),t=>t.target!==pQ.Filter)}get onMouseOver(){return an.map(this.view.onMouseOver,Jle)}get onMouseOut(){return an.map(this.view.onMouseOut,Jle)}get onContextMenu(){var t;return an.any(an.filter(an.map(this.view.onContextMenu,fpo),n=>!n.isStickyScroll),((t=this.stickyScrollController)==null?void 0:t.onContextMenu)??an.None)}get onPointer(){return an.map(this.view.onPointer,Jle)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return an.any(this.onDidChangeModelRelay.event,this.onDidSwapModel.event)}get onDidChangeCollapseState(){return this.onDidChangeCollapseStateRelay.event}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(t,n,r,o,s={}){this._user=t,this._options=s,this.eventBufferer=new Cie,this.onDidChangeFindOpenState=an.None,this.onDidChangeStickyScrollFocused=an.None,this.disposables=new xt,this.onDidSwapModel=this.disposables.add(new at),this.onDidChangeModelRelay=this.disposables.add(new oX),this.onDidSpliceModelRelay=this.disposables.add(new oX),this.onDidChangeCollapseStateRelay=this.disposables.add(new oX),this.onDidChangeRenderNodeCountRelay=this.disposables.add(new oX),this.onDidChangeActiveNodesRelay=this.disposables.add(new oX),this._onWillRefilter=new at,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new at,this.modelDisposables=new xt,s.keyboardNavigationLabelProvider&&(s.findWidgetEnabled??!0)&&(this.findFilter=new eRn(s.keyboardNavigationLabelProvider,s.filter,s.defaultFindVisibility),s={...s,filter:this.findFilter},this.disposables.add(this.findFilter)),this.model=this.createModel(t,s),this.treeDelegate=new ont(r);const a=this.disposables.add(new rpo(this.onDidChangeActiveNodesRelay.event)),l=new BEn;this.renderers=o.map(d=>new oWe(d,this.model,this.onDidChangeCollapseStateRelay.event,a,l,s));for(const d of this.renderers)this.disposables.add(d);if(this.focus=new Axe(()=>this.view.getFocusedElements()[0],s.identityProvider),this.selection=new Axe(()=>this.view.getSelectedElements()[0],s.identityProvider),this.anchor=new Axe(()=>this.view.getAnchorElement(),s.identityProvider),this.view=new mpo(t,n,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...ipo(()=>this.model,this.disposables,s),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.setupModel(this.model),s.keyboardSupport!==!1){const d=an.chain(this.view.onKeyDown,u=>u.filter(h=>!s3(h.target)).map(h=>new Us(h)));an.chain(d,u=>u.filter(h=>h.keyCode===15))(this.onLeftArrow,this,this.disposables),an.chain(d,u=>u.filter(h=>h.keyCode===17))(this.onRightArrow,this,this.disposables),an.chain(d,u=>u.filter(h=>h.keyCode===10))(this.onSpace,this,this.disposables)}if((s.findWidgetEnabled??!0)&&s.keyboardNavigationLabelProvider&&s.contextViewProvider){const d={styles:s.findWidgetStyles,defaultFindMode:s.defaultFindMode,defaultFindMatchType:s.defaultFindMatchType,showNotFoundMessage:s.showNotFoundMessage};this.findController=this.disposables.add(new tRn(this,this.findFilter,s.contextViewProvider,d)),this.focusNavigationFilter=u=>this.findController.shouldAllowFocus(u),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=an.None,this.onDidChangeFindMatchType=an.None;s.enableStickyScroll&&(this.stickyScrollController=new Oyt(this,this.model,this.view,this.renderers,this.treeDelegate,s),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=mA(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===xR.Always)}updateOptions(t={}){var n;this._options={...this._options,...t};for(const r of this.renderers)r.updateOptions(t);this.view.updateOptions(this._options),(n=this.findController)==null||n.updateOptions(t),this.updateStickyScroll(t),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===xR.Always)}get options(){return this._options}updateStickyScroll(t){var n;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new Oyt(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=an.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(n=this.stickyScrollController)==null||n.updateOptions(t)}getHTMLElement(){return this.view.getHTMLElement()}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.scrollTop}set scrollTop(t){this.view.scrollTop=t}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(t){this.view.ariaLabel=t}domFocus(){var t;(t=this.stickyScrollController)!=null&&t.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(t,n){this.view.layout(t,n)}style(t){const n=`.${this.view.domId}`,r=[];t.treeIndentGuidesStroke&&(r.push(`.monaco-list${n}:hover .monaco-tl-indent > .indent-guide, .monaco-list${n}.always .monaco-tl-indent > .indent-guide { opacity: 1; border-color: ${t.treeInactiveIndentGuidesStroke}; }`),r.push(`.monaco-list${n} .monaco-tl-indent > .indent-guide.active { opacity: 1; border-color: ${t.treeIndentGuidesStroke}; }`));const o=t.treeStickyScrollBackground??t.listBackground;o&&(r.push(`.monaco-list${n} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${o}; }`),r.push(`.monaco-list${n} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${o}; }`)),t.treeStickyScrollBorder&&r.push(`.monaco-list${n} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${t.treeStickyScrollBorder}; }`),t.treeStickyScrollShadow&&r.push(`.monaco-list${n} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${t.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`),t.listFocusForeground&&(r.push(`.monaco-list${n}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${t.listFocusForeground}; }`),r.push(`.monaco-list${n}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const s=n8(t.listFocusAndSelectionOutline,n8(t.listSelectionOutline,t.listFocusOutline??""));s&&(r.push(`.monaco-list${n}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${s}; outline-offset: -1px;}`),r.push(`.monaco-list${n}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),t.listFocusOutline&&(r.push(`.monaco-list${n}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${t.listFocusOutline}; outline-offset: -1px; }`),r.push(`.monaco-list${n}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),r.push(`.context-menu-visible .monaco-list${n}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${t.listFocusOutline}; outline-offset: -1px; }`),r.push(`.context-menu-visible .monaco-list${n}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),r.push(`.context-menu-visible .monaco-list${n}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=r.join(` `),this.view.style(t)}getParentElement(t){const n=this.model.getParentNodeLocation(t);return this.model.getNode(n).element}getFirstElementChild(t){return this.model.getFirstElementChild(t)}getNode(t){return this.model.getNode(t)}getNodeLocation(t){return this.model.getNodeLocation(t)}collapse(t,n=!1){return this.model.setCollapsed(t,!0,n)}expand(t,n=!1){return this.model.setCollapsed(t,!1,n)}toggleCollapsed(t,n=!1){return this.model.setCollapsed(t,void 0,n)}isCollapsible(t){return this.model.isCollapsible(t)}setCollapsible(t,n){return this.model.setCollapsible(t,n)}isCollapsed(t){return this.model.isCollapsed(t)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(t,n){this.eventBufferer.bufferEvents(()=>{const r=t.map(s=>this.model.getNode(s));this.selection.set(r,n);const o=t.map(s=>this.model.getListIndex(s)).filter(s=>s>-1);this.view.setSelection(o,n,!0)})}getSelection(){return this.selection.get()}setFocus(t,n){this.eventBufferer.bufferEvents(()=>{const r=t.map(s=>this.model.getNode(s));this.focus.set(r,n);const o=t.map(s=>this.model.getListIndex(s)).filter(s=>s>-1);this.view.setFocus(o,n,!0)})}focusNext(t=1,n=!1,r,o=eS(r)&&r.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(t,n,r,o)}focusPrevious(t=1,n=!1,r,o=eS(r)&&r.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(t,n,r,o)}focusNextPage(t,n=eS(t)&&t.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(t,n)}focusPreviousPage(t,n=eS(t)&&t.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(t,n,()=>{var r;return((r=this.stickyScrollController)==null?void 0:r.height)??0})}focusLast(t,n=eS(t)&&t.altKey?void 0:this.focusNavigationFilter){this.view.focusLast(t,n)}focusFirst(t,n=eS(t)&&t.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(t,n)}getFocus(){return this.focus.get()}reveal(t,n){this.model.expandTo(t);const r=this.model.getListIndex(t);if(r!==-1)if(!this.stickyScrollController)this.view.reveal(r,n);else{const o=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(t));this.view.reveal(r,n,o)}}onLeftArrow(t){t.preventDefault(),t.stopPropagation();const n=this.view.getFocusedElements();if(n.length===0)return;const r=n[0],o=this.model.getNodeLocation(r);if(!this.model.setCollapsed(o,!0)){const a=this.model.getParentNodeLocation(o);if(!a)return;const l=this.model.getListIndex(a);this.view.reveal(l),this.view.setFocus([l])}}onRightArrow(t){t.preventDefault(),t.stopPropagation();const n=this.view.getFocusedElements();if(n.length===0)return;const r=n[0],o=this.model.getNodeLocation(r);if(!this.model.setCollapsed(o,!1)){if(!r.children.some(d=>d.visible))return;const[a]=this.view.getFocus(),l=a+1;this.view.reveal(l),this.view.setFocus([l])}}onSpace(t){t.preventDefault(),t.stopPropagation();const n=this.view.getFocusedElements();if(n.length===0)return;const r=n[0],o=this.model.getNodeLocation(r),s=t.browserEvent.altKey;this.model.setCollapsed(o,void 0,s)}setupModel(t){this.modelDisposables.clear(),this.modelDisposables.add(t.onDidSpliceRenderedNodes(({start:s,deleteCount:a,elements:l})=>this.view.splice(s,a,l)));const n=an.forEach(t.onDidSpliceModel,s=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(s),this.selection.onDidModelSplice(s)})},this.modelDisposables);n(()=>null,null,this.modelDisposables);const r=this.modelDisposables.add(new at),o=this.modelDisposables.add(new dA(0));this.modelDisposables.add(an.any(n,this.focus.onDidChange,this.selection.onDidChange)(()=>{o.trigger(()=>{const s=new Set;for(const a of this.focus.getNodes())s.add(a);for(const a of this.selection.getNodes())s.add(a);r.fire([...s.values()])})})),this.onDidChangeActiveNodesRelay.input=r.event,this.onDidChangeModelRelay.input=an.signal(t.onDidSpliceModel),this.onDidChangeCollapseStateRelay.input=t.onDidChangeCollapseState,this.onDidChangeRenderNodeCountRelay.input=t.onDidChangeRenderNodeCount,this.onDidSpliceModelRelay.input=t.onDidSpliceModel}dispose(){var t;us(this.disposables),(t=this.stickyScrollController)==null||t.dispose(),this.view.dispose(),this.modelDisposables.dispose()}}class snt{constructor(t,n={}){this.user=t,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new epo(t,null,n),this.onDidSpliceModel=this.model.onDidSpliceModel,this.onDidSpliceRenderedNodes=this.model.onDidSpliceRenderedNodes,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,n.sorter&&(this.sorter={compare(r,o){return n.sorter.compare(r.element,o.element)}}),this.identityProvider=n.identityProvider}setChildren(t,n=to.empty(),r={}){const o=this.getElementLocation(t);this._setChildren(o,this.preserveCollapseState(n),r)}_setChildren(t,n=to.empty(),r){const o=new Set,s=new Set,a=d=>{var h;if(d.element===null)return;const u=d;if(o.add(u.element),this.nodes.set(u.element,u),this.identityProvider){const g=this.identityProvider.getId(u.element).toString();s.add(g),this.nodesByIdentity.set(g,u)}(h=r.onDidCreateNode)==null||h.call(r,u)},l=d=>{var h;if(d.element===null)return;const u=d;if(o.has(u.element)||this.nodes.delete(u.element),this.identityProvider){const g=this.identityProvider.getId(u.element).toString();s.has(g)||this.nodesByIdentity.delete(g)}(h=r.onDidDeleteNode)==null||h.call(r,u)};this.model.splice([...t,0],Number.MAX_VALUE,n,{...r,onDidCreateNode:a,onDidDeleteNode:l})}preserveCollapseState(t=to.empty()){return this.sorter&&(t=[...t].sort(this.sorter.compare.bind(this.sorter))),to.map(t,n=>{let r=this.nodes.get(n.element);if(!r&&this.identityProvider){const a=this.identityProvider.getId(n.element).toString();r=this.nodesByIdentity.get(a)}if(!r){let a;return typeof n.collapsed>"u"?a=void 0:n.collapsed===Ik.Collapsed||n.collapsed===Ik.PreserveOrCollapsed?a=!0:n.collapsed===Ik.Expanded||n.collapsed===Ik.PreserveOrExpanded?a=!1:a=!!n.collapsed,{...n,children:this.preserveCollapseState(n.children),collapsed:a}}const o=typeof n.collapsible=="boolean"?n.collapsible:r.collapsible;let s;return typeof n.collapsed>"u"||n.collapsed===Ik.PreserveOrCollapsed||n.collapsed===Ik.PreserveOrExpanded?s=r.collapsed:n.collapsed===Ik.Collapsed?s=!0:n.collapsed===Ik.Expanded?s=!1:s=!!n.collapsed,{...n,collapsible:o,collapsed:s,children:this.preserveCollapseState(n.children)}})}rerender(t){const n=this.getElementLocation(t);this.model.rerender(n)}resort(t=null,n=!0){if(!this.sorter)return;const r=this.getElementLocation(t),o=this.model.getNode(r);this._setChildren(r,this.resortChildren(o,n),{})}resortChildren(t,n,r=!0){let o=[...t.children];return(n||r)&&(o=o.sort(this.sorter.compare.bind(this.sorter))),to.map(o,s=>({element:s.element,collapsible:s.collapsible,collapsed:s.collapsed,children:this.resortChildren(s,n,!1)}))}getFirstElementChild(t=null){const n=this.getElementLocation(t);return this.model.getFirstElementChild(n)}has(t){return this.nodes.has(t)}getListIndex(t){const n=this.getElementLocation(t);return this.model.getListIndex(n)}getListRenderCount(t){const n=this.getElementLocation(t);return this.model.getListRenderCount(n)}isCollapsible(t){const n=this.getElementLocation(t);return this.model.isCollapsible(n)}setCollapsible(t,n){const r=this.getElementLocation(t);return this.model.setCollapsible(r,n)}isCollapsed(t){const n=this.getElementLocation(t);return this.model.isCollapsed(n)}setCollapsed(t,n,r){const o=this.getElementLocation(t);return this.model.setCollapsed(o,n,r)}expandTo(t){const n=this.getElementLocation(t);this.model.expandTo(n)}refilter(){this.model.refilter()}getNode(t=null){if(t===null)return this.model.getNode(this.model.rootRef);const n=this.nodes.get(t);if(!n)throw new Vk(this.user,`Tree element not found: ${t}`);return n}getNodeLocation(t){return t.element}getParentNodeLocation(t){if(t===null)throw new Vk(this.user,"Invalid getParentNodeLocation call");const n=this.nodes.get(t);if(!n)throw new Vk(this.user,`Tree element not found: ${t}`);const r=this.model.getNodeLocation(n),o=this.model.getParentNodeLocation(r);return this.model.getNode(o).element}getElementLocation(t){if(t===null)return[];const n=this.nodes.get(t);if(!n)throw new Vk(this.user,`Tree element not found: ${t}`);return this.model.getNodeLocation(n)}}function vhe(e){const t=[e.element],n=e.incompressible||!1;return{element:{elements:t,incompressible:n},children:to.map(to.from(e.children),vhe),collapsible:e.collapsible,collapsed:e.collapsed}}function Ahe(e){const t=[e.element],n=e.incompressible||!1;let r,o;for(;[o,r]=to.consume(to.from(e.children),2),!(o.length!==1||o[0].incompressible);)e=o[0],t.push(e.element);return{element:{elements:t,incompressible:n},children:to.map(to.concat(o,r),Ahe),collapsible:e.collapsible,collapsed:e.collapsed}}function sWe(e,t=0){let n;return tsWe(r,0)),t===0&&e.element.incompressible?{element:e.element.elements[t],children:n,incompressible:!0,collapsible:e.collapsible,collapsed:e.collapsed}:{element:e.element.elements[t],children:n,collapsible:e.collapsible,collapsed:e.collapsed}}function yyt(e){return sWe(e,0)}function rRn(e,t,n){return e.element===t?{...e,children:n}:{...e,children:to.map(to.from(e.children),r=>rRn(r,t,n))}}const kpo=e=>({getId(t){return t.elements.map(n=>e.getId(n).toString()).join("\0")}});class vpo{get onDidSpliceRenderedNodes(){return this.model.onDidSpliceRenderedNodes}get onDidSpliceModel(){return this.model.onDidSpliceModel}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(t,n={}){this.user=t,this.rootRef=null,this.nodes=new Map,this.model=new snt(t,n),this.enabled=typeof n.compressionEnabled>"u"?!0:n.compressionEnabled,this.identityProvider=n.identityProvider}setChildren(t,n=to.empty(),r){const o=r.diffIdentityProvider&&kpo(r.diffIdentityProvider);if(t===null){const f=to.map(n,this.enabled?Ahe:vhe);this._setChildren(null,f,{diffIdentityProvider:o,diffDepth:1/0});return}const s=this.nodes.get(t);if(!s)throw new Vk(this.user,"Unknown compressed tree node");const a=this.model.getNode(s),l=this.model.getParentNodeLocation(s),d=this.model.getNode(l),u=yyt(a),h=rRn(u,t,n),g=(this.enabled?Ahe:vhe)(h),m=r.diffIdentityProvider?(f,k)=>r.diffIdentityProvider.getId(f)===r.diffIdentityProvider.getId(k):void 0;if(Na(g.element.elements,a.element.elements,m)){this._setChildren(s,g.children||to.empty(),{diffIdentityProvider:o,diffDepth:1});return}const v=d.children.map(f=>f===a?g:f);this._setChildren(d.element,v,{diffIdentityProvider:o,diffDepth:a.depth-d.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(t){if(t===this.enabled)return;this.enabled=t;const r=this.model.getNode().children,o=to.map(r,yyt),s=to.map(o,t?Ahe:vhe);this._setChildren(null,s,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(t,n,r){const o=new Set,s=l=>{for(const d of l.element.elements)o.add(d),this.nodes.set(d,l.element)},a=l=>{for(const d of l.element.elements)o.has(d)||this.nodes.delete(d)};this.model.setChildren(t,n,{...r,onDidCreateNode:s,onDidDeleteNode:a})}has(t){return this.nodes.has(t)}getListIndex(t){const n=this.getCompressedNode(t);return this.model.getListIndex(n)}getListRenderCount(t){const n=this.getCompressedNode(t);return this.model.getListRenderCount(n)}getNode(t){if(typeof t>"u")return this.model.getNode();const n=this.getCompressedNode(t);return this.model.getNode(n)}getNodeLocation(t){const n=this.model.getNodeLocation(t);return n===null?null:n.elements[n.elements.length-1]}getParentNodeLocation(t){const n=this.getCompressedNode(t),r=this.model.getParentNodeLocation(n);return r===null?null:r.elements[r.elements.length-1]}getFirstElementChild(t){const n=this.getCompressedNode(t);return this.model.getFirstElementChild(n)}isCollapsible(t){const n=this.getCompressedNode(t);return this.model.isCollapsible(n)}setCollapsible(t,n){const r=this.getCompressedNode(t);return this.model.setCollapsible(r,n)}isCollapsed(t){const n=this.getCompressedNode(t);return this.model.isCollapsed(n)}setCollapsed(t,n,r){const o=this.getCompressedNode(t);return this.model.setCollapsed(o,n,r)}expandTo(t){const n=this.getCompressedNode(t);this.model.expandTo(n)}rerender(t){const n=this.getCompressedNode(t);this.model.rerender(n)}refilter(){this.model.refilter()}resort(t=null,n=!0){const r=this.getCompressedNode(t);this.model.resort(r,n)}getCompressedNode(t){if(t===null)return null;const n=this.nodes.get(t);if(!n)throw new Vk(this.user,`Tree element not found: ${t}`);return n}}const Apo=e=>e[e.length-1];class ant{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(t=>new ant(this.unwrapper,t))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(t,n){this.unwrapper=t,this.node=n}}function ppo(e,t){return{...t,identityProvider:t.identityProvider&&{getId(n){return t.identityProvider.getId(e(n))}},sorter:t.sorter&&{compare(n,r){return t.sorter.compare(n.elements[0],r.elements[0])}},filter:t.filter&&{filter(n,r){const o=n.elements;for(let s=0;s({insertedNodes:t.map(r=>this.nodeMapper.map(r)),deletedNodes:n.map(r=>this.nodeMapper.map(r))}))}get onDidSpliceRenderedNodes(){return an.map(this.model.onDidSpliceRenderedNodes,({start:t,deleteCount:n,elements:r})=>({start:t,deleteCount:n,elements:r.map(o=>this.nodeMapper.map(o))}))}get onDidChangeCollapseState(){return an.map(this.model.onDidChangeCollapseState,({node:t,deep:n})=>({node:this.nodeMapper.map(t),deep:n}))}get onDidChangeRenderNodeCount(){return an.map(this.model.onDidChangeRenderNodeCount,t=>this.nodeMapper.map(t))}constructor(t,n={}){this.rootRef=null,this.elementMapper=n.elementMapper||Apo;const r=o=>this.elementMapper(o.elements);this.nodeMapper=new rnt(o=>new ant(r,o)),this.model=new vpo(t,ppo(r,n))}setChildren(t,n=to.empty(),r={}){this.model.setChildren(t,n,r)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(t){this.model.setCompressionEnabled(t)}has(t){return this.model.has(t)}getListIndex(t){return this.model.getListIndex(t)}getListRenderCount(t){return this.model.getListRenderCount(t)}getNode(t){return this.nodeMapper.map(this.model.getNode(t))}getNodeLocation(t){return t.element}getParentNodeLocation(t){return this.model.getParentNodeLocation(t)}getFirstElementChild(t){const n=this.model.getFirstElementChild(t);return n===null||typeof n>"u"?n:this.elementMapper(n.elements)}isCollapsible(t){return this.model.isCollapsible(t)}setCollapsible(t,n){return this.model.setCollapsible(t,n)}isCollapsed(t){return this.model.isCollapsed(t)}setCollapsed(t,n,r){return this.model.setCollapsed(t,n,r)}expandTo(t){return this.model.expandTo(t)}rerender(t){return this.model.rerender(t)}refilter(){return this.model.refilter()}resort(t=null,n=!0){return this.model.resort(t,n)}getCompressedTreeNode(t=null){return this.model.getNode(t)}}var wpo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s};class lnt extends iRn{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(t,n,r,o,s={}){super(t,n,r,o,s),this.user=t}setChildren(t,n=to.empty(),r){this.model.setChildren(t,n,r)}rerender(t){if(t===void 0){this.view.rerender();return}this.model.rerender(t)}resort(t,n=!0){this.model.resort(t,n)}hasElement(t){return this.model.has(t)}createModel(t,n){return new snt(t,n)}}class oRn{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(t,n,r){this._compressedTreeNodeProvider=t,this.stickyScrollDelegate=n,this.renderer=r,this.templateId=r.templateId,r.onDidChangeTwistieState&&(this.onDidChangeTwistieState=r.onDidChangeTwistieState)}renderTemplate(t){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(t)}}renderElement(t,n,r,o){let s=this.stickyScrollDelegate.getCompressedNode(t);s||(s=this.compressedTreeNodeProvider.getCompressedTreeNode(t.element)),s.element.elements.length===1?(r.compressedTreeNode=void 0,this.renderer.renderElement(t,n,r.data,o)):(r.compressedTreeNode=s,this.renderer.renderCompressedElements(s,n,r.data,o))}disposeElement(t,n,r,o){var s,a,l,d;r.compressedTreeNode?(a=(s=this.renderer).disposeCompressedElements)==null||a.call(s,r.compressedTreeNode,n,r.data,o):(d=(l=this.renderer).disposeElement)==null||d.call(l,t,n,r.data,o)}disposeTemplate(t){this.renderer.disposeTemplate(t.data)}renderTwistie(t,n){var r,o;return((o=(r=this.renderer).renderTwistie)==null?void 0:o.call(r,t,n))??!1}}wpo([mc],oRn.prototype,"compressedTreeNodeProvider",null);class Opo{constructor(t){this.modelProvider=t,this.compressedStickyNodes=new Map}getCompressedNode(t){return this.compressedStickyNodes.get(t)}constrainStickyScrollNodes(t,n,r){if(this.compressedStickyNodes.clear(),t.length===0)return[];for(let o=0;or||o>=n-1&&nthis,l=new Opo(()=>this.model),d=o.map(u=>new oRn(a,l,u));super(t,n,r,d,{...ypo(a,s),stickyScrollDelegate:l})}setChildren(t,n=to.empty(),r){this.model.setChildren(t,n,r)}createModel(t,n){return new bpo(t,n)}updateOptions(t={}){super.updateOptions(t),typeof t.compressionEnabled<"u"&&this.model.setCompressionEnabled(t.compressionEnabled)}getCompressedTreeNode(t=null){return this.model.getCompressedTreeNode(t)}}function pxe(e){return{...e,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function aWe(e,t){return t.parent?t.parent===e?!0:aWe(e,t.parent):!1}function Cpo(e,t){return e===t||aWe(e,t)||aWe(t,e)}class cnt{get element(){return this.node.element.element}get children(){return this.node.children.map(t=>new cnt(t))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(t){this.node=t}}class _po{constructor(t,n,r){this.renderer=t,this.nodeMapper=n,this.onDidChangeTwistieState=r,this.renderedNodes=new Map,this.templateId=t.templateId}renderTemplate(t){return{templateData:this.renderer.renderTemplate(t)}}renderElement(t,n,r,o){this.renderer.renderElement(this.nodeMapper.map(t),n,r.templateData,o)}renderTwistie(t,n){return t.slow?(n.classList.add(...fi.asClassNameArray(zt.treeItemLoading)),!0):(n.classList.remove(...fi.asClassNameArray(zt.treeItemLoading)),!1)}disposeElement(t,n,r,o){var s,a;(a=(s=this.renderer).disposeElement)==null||a.call(s,this.nodeMapper.map(t),n,r.templateData,o)}disposeTemplate(t){this.renderer.disposeTemplate(t.templateData)}dispose(){this.renderedNodes.clear()}}function Cyt(e){return{browserEvent:e.browserEvent,elements:e.elements.map(t=>t.element)}}function _yt(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}class Spo extends zie{constructor(t){super(t.elements.map(n=>n.element)),this.data=t}}function bxe(e){return e instanceof zie?new Spo(e):e}class Lpo{constructor(t){this.dnd=t}getDragURI(t){return this.dnd.getDragURI(t.element)}getDragLabel(t,n){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(t.map(r=>r.element),n)}onDragStart(t,n){var r,o;(o=(r=this.dnd).onDragStart)==null||o.call(r,bxe(t),n)}onDragOver(t,n,r,o,s,a=!0){return this.dnd.onDragOver(bxe(t),n&&n.element,r,o,s)}drop(t,n,r,o,s){this.dnd.drop(bxe(t),n&&n.element,r,o,s)}onDragEnd(t){var n,r;(r=(n=this.dnd).onDragEnd)==null||r.call(n,t)}dispose(){this.dnd.dispose()}}class xpo extends eRn{constructor(t,n,r){super(n,r),this.findProvider=t,this.isFindSessionActive=!1}filter(t,n){const r=super.filter(t,n);if(!this.isFindSessionActive||this.findMode===zk.Highlight||!this.findProvider.isVisible)return r;const o=Jie(r)?r.visibility:r;return LR(o)===0?0:this.findProvider.isVisible(t)?r:0}}class Epo extends tRn{constructor(t,n,r,o,s){super(t,r,o,s),this.findProvider=n,this.filter=r,this.activeSession=!1,this.asyncWorkInProgress=!1,this.disposables.add(Hn(async()=>{var a,l;this.activeSession&&await((l=(a=this.findProvider).endSession)==null?void 0:l.call(a))}))}render(){if(this.asyncWorkInProgress||!this.activeFindMetadata)return;const t=this.activeFindMetadata.matchCount===0&&this.pattern.length>0;this.renderMessage(t),this.pattern.length&&this.alertResults(this.activeFindMetadata.matchCount)}shouldAllowFocus(t){return this.shouldFocusWhenNavigating(t)}shouldFocusWhenNavigating(t){var r;if(!this.activeSession||!this.activeFindMetadata)return!0;const n=(r=t.element)==null?void 0:r.element;return n&&this.activeFindMetadata.isMatch(n)?!0:!q4.isDefault(t.filterData)}}function aRn(e){return e&&{...e,collapseByDefault:!0,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new Lpo(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element})},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})}},accessibilityProvider:e.accessibilityProvider&&{...e.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",isChecked:e.accessibilityProvider.isChecked?t=>{var n;return!!((n=e.accessibilityProvider)!=null&&n.isChecked(t.element))}:void 0,getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider.getAriaLevel&&(t=>e.accessibilityProvider.getAriaLevel(t.element)),getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))},filter:e.filter&&{filter(t,n){return e.filter.filter(t.element,n)}},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof e.expandOnlyOnTwistieClick>"u"?void 0:typeof e.expandOnlyOnTwistieClick!="function"?e.expandOnlyOnTwistieClick:t=>e.expandOnlyOnTwistieClick(t.element),defaultFindVisibility:t=>t.hasChildren&&t.stale?1:typeof e.defaultFindVisibility=="number"?e.defaultFindVisibility:typeof e.defaultFindVisibility>"u"?2:e.defaultFindVisibility(t.element),stickyScrollDelegate:e.stickyScrollDelegate}}function lWe(e,t){t(e),e.children.forEach(n=>lWe(n,t))}class lRn{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return an.map(this.tree.onDidChangeFocus,Cyt)}get onDidChangeSelection(){return an.map(this.tree.onDidChangeSelection,Cyt)}get onMouseDblClick(){return an.map(this.tree.onMouseDblClick,_yt)}get onPointer(){return an.map(this.tree.onPointer,_yt)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(t,n,r,o,s,a={}){this.user=t,this.dataSource=s,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new at,this._onDidChangeNodeSlowState=new at,this.nodeMapper=new rnt(u=>new cnt(u)),this.disposables=new xt,this.identityProvider=a.identityProvider,this.autoExpandSingleChildren=typeof a.autoExpandSingleChildren>"u"?!1:a.autoExpandSingleChildren,this.sorter=a.sorter,this.getDefaultCollapseState=u=>a.collapseByDefault?a.collapseByDefault(u)?Ik.PreserveOrCollapsed:Ik.PreserveOrExpanded:void 0;let l=!1,d;if(a.findProvider&&(a.findWidgetEnabled??!0)&&a.keyboardNavigationLabelProvider&&a.contextViewProvider&&(l=!0,d=new xpo(a.findProvider,a.keyboardNavigationLabelProvider,a.filter)),this.tree=this.createTree(t,n,r,o,{...a,findWidgetEnabled:!l,filter:d??a.filter}),this.root=pxe({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables),l){const u={styles:a.findWidgetStyles,showNotFoundMessage:a.showNotFoundMessage,defaultFindMatchType:a.defaultFindMatchType,defaultFindMode:a.defaultFindMode};this.findController=this.disposables.add(new Epo(this.tree,a.findProvider,d,this.tree.options.contextViewProvider,u)),this.focusNavigationFilter=h=>this.findController.shouldFocusWhenNavigating(h),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindOpenState=this.tree.onDidChangeFindOpenState,this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType}createTree(t,n,r,o,s){const a=new ont(r),l=o.map(u=>new _po(u,this.nodeMapper,this._onDidChangeNodeSlowState.event)),d=aRn(s)||{};return new lnt(t,n,a,l,d)}updateOptions(t={}){this.findController&&(t.defaultFindMode!==void 0&&(this.findController.mode=t.defaultFindMode),t.defaultFindMatchType!==void 0&&(this.findController.matchType=t.defaultFindMatchType)),this.tree.updateOptions(t)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(t){this.tree.scrollTop=t}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(t,n){this.tree.layout(t,n)}style(t){this.tree.style(t)}getInput(){return this.root.element}async setInput(t,n){this.cancelAllRefreshPromises(),this.root.element=t;const r=n&&{viewState:n,focus:[],selection:[]};await this._updateChildren(t,!0,!1,r),r&&(this.tree.setFocus(r.focus),this.tree.setSelection(r.selection)),n&&typeof n.scrollTop=="number"&&(this.scrollTop=n.scrollTop)}cancelAllRefreshPromises(t=!1){this.refreshPromises.forEach(n=>n.cancel()),this.refreshPromises.clear(),t&&(this.subTreeRefreshPromises.forEach(n=>n.cancel()),this.subTreeRefreshPromises.clear())}async _updateChildren(t=this.root.element,n=!0,r=!1,o,s){if(typeof this.root.element>"u")throw new Vk(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await an.toPromise(this._onDidRender.event));const a=this.getDataNode(t);if(await this.refreshAndRenderNode(a,n,o,s),r)try{this.tree.rerender(a)}catch{}}rerender(t){if(t===void 0||t===this.root.element){this.tree.rerender();return}const n=this.getDataNode(t);this.tree.rerender(n)}getNode(t=this.root.element){const n=this.getDataNode(t),r=this.tree.getNode(n===this.root?null:n);return this.nodeMapper.map(r)}collapse(t,n=!1){const r=this.getDataNode(t);return this.tree.collapse(r===this.root?null:r,n)}async expand(t,n=!1){if(typeof this.root.element>"u")throw new Vk(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await an.toPromise(this._onDidRender.event));const r=this.getDataNode(t);if(this.tree.hasElement(r)&&!this.tree.isCollapsible(r)||(r.refreshPromise&&(await r.refreshPromise,await an.toPromise(this._onDidRender.event)),r!==this.root&&!r.refreshPromise&&!this.tree.isCollapsed(r)))return!1;const o=this.tree.expand(r===this.root?null:r,n);return r.refreshPromise&&(await r.refreshPromise,await an.toPromise(this._onDidRender.event)),o}setSelection(t,n){const r=t.map(o=>this.getDataNode(o));this.tree.setSelection(r,n)}getSelection(){return this.tree.getSelection().map(n=>n.element)}setFocus(t,n){const r=t.map(o=>this.getDataNode(o));this.tree.setFocus(r,n)}getFocus(){return this.tree.getFocus().map(n=>n.element)}reveal(t,n){this.tree.reveal(this.getDataNode(t),n)}getParentElement(t){const n=this.tree.getParentElement(this.getDataNode(t));return n&&n.element}getFirstElementChild(t=this.root.element){const n=this.getDataNode(t),r=this.tree.getFirstElementChild(n===this.root?null:n);return r&&r.element}getDataNode(t){var r;const n=this.nodes.get(t===this.root.element?null:t);if(!n){const o=(r=this.identityProvider)==null?void 0:r.getId(t).toString();throw new Vk(this.user,`Data tree node not found${o?`: ${o}`:""}`)}return n}async refreshAndRenderNode(t,n,r,o){this.disposables.isDisposed||(await this.refreshNode(t,n,r),!this.disposables.isDisposed&&this.render(t,r,o))}async refreshNode(t,n,r){let o;if(this.subTreeRefreshPromises.forEach((s,a)=>{!o&&Cpo(a,t)&&(o=s.then(()=>this.refreshNode(t,n,r)))}),o)return o;if(t!==this.root&&this.tree.getNode(t).collapsed){t.hasChildren=!!this.dataSource.hasChildren(t.element),t.stale=!0,this.setChildren(t,[],n,r);return}return this.doRefreshSubTree(t,n,r)}async doRefreshSubTree(t,n,r){const o=Fd(async()=>{const s=await this.doRefreshNode(t,n,r);t.stale=!1,await UK.settled(s.map(a=>this.doRefreshSubTree(a,n,r)))});return t.refreshPromise=o,this.subTreeRefreshPromises.set(t,o),o.finally(()=>{t.refreshPromise=void 0,this.subTreeRefreshPromises.delete(t)}),o}async doRefreshNode(t,n,r){t.hasChildren=!!this.dataSource.hasChildren(t.element);let o;if(!t.hasChildren)o=Promise.resolve(to.empty());else{const s=this.doGetChildren(t);if(VFe(s))o=Promise.resolve(s);else{const a=Cy(800);a.then(()=>{t.slow=!0,this._onDidChangeNodeSlowState.fire(t)},l=>null),o=s.finally(()=>a.cancel())}}try{const s=await o;return this.setChildren(t,s,n,r)}catch(s){if(t!==this.root&&this.tree.hasElement(t)&&this.tree.collapse(t),C2(s))return[];throw s}finally{t.slow&&(t.slow=!1,this._onDidChangeNodeSlowState.fire(t))}}doGetChildren(t){let n=this.refreshPromises.get(t);if(n)return n;const r=this.dataSource.getChildren(t.element);return VFe(r)?this.processChildren(r):(n=Fd(async()=>this.processChildren(await r)),this.refreshPromises.set(t,n),n.finally(()=>{this.refreshPromises.delete(t)}))}_onDidChangeCollapseState({node:t,deep:n}){t.element!==null&&!t.collapsed&&t.element.stale&&(n?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(zi))}setChildren(t,n,r,o){const s=[...n];if(t.children.length===0&&s.length===0)return[];const a=new Map,l=new Map;for(const h of t.children)a.set(h.element,h),this.identityProvider&&l.set(h.id,{node:h,collapsed:this.tree.hasElement(h)&&this.tree.isCollapsed(h)});const d=[],u=s.map(h=>{const g=!!this.dataSource.hasChildren(h);if(!this.identityProvider){const k=pxe({element:h,parent:t,hasChildren:g,defaultCollapseState:this.getDefaultCollapseState(h)});return g&&k.defaultCollapseState===Ik.PreserveOrExpanded&&d.push(k),k}const m=this.identityProvider.getId(h).toString(),v=l.get(m);if(v){const k=v.node;return a.delete(k.element),this.nodes.delete(k.element),this.nodes.set(h,k),k.element=h,k.hasChildren=g,r?v.collapsed?(k.children.forEach(A=>lWe(A,p=>this.nodes.delete(p.element))),k.children.splice(0,k.children.length),k.stale=!0):d.push(k):g&&!v.collapsed&&d.push(k),k}const f=pxe({element:h,parent:t,id:m,hasChildren:g,defaultCollapseState:this.getDefaultCollapseState(h)});return o&&o.viewState.focus&&o.viewState.focus.indexOf(m)>-1&&o.focus.push(f),o&&o.viewState.selection&&o.viewState.selection.indexOf(m)>-1&&o.selection.push(f),(o&&o.viewState.expanded&&o.viewState.expanded.indexOf(m)>-1||g&&f.defaultCollapseState===Ik.PreserveOrExpanded)&&d.push(f),f});for(const h of a.values())lWe(h,g=>this.nodes.delete(g.element));for(const h of u)this.nodes.set(h.element,h);return Cme(t.children,0,t.children.length,u),t!==this.root&&this.autoExpandSingleChildren&&u.length===1&&d.length===0&&(u[0].forceExpanded=!0,d.push(u[0])),d}render(t,n,r){const o=t.children.map(a=>this.asTreeElement(a,n)),s=r&&{...r,diffIdentityProvider:r.diffIdentityProvider&&{getId(a){return r.diffIdentityProvider.getId(a.element)}}};this.tree.setChildren(t===this.root?null:t,o,s),t!==this.root&&this.tree.setCollapsible(t,t.hasChildren),this._onDidRender.fire()}asTreeElement(t,n){if(t.stale)return{element:t,collapsible:t.hasChildren,collapsed:!0};let r;return n&&n.viewState.expanded&&t.id&&n.viewState.expanded.indexOf(t.id)>-1?r=!1:t.forceExpanded?(r=!1,t.forceExpanded=!1):r=t.defaultCollapseState,{element:t,children:t.hasChildren?to.map(t.children,o=>this.asTreeElement(o,n)):[],collapsible:t.hasChildren,collapsed:r}}processChildren(t){return this.sorter&&(t=[...t].sort(this.sorter.compare.bind(this.sorter))),t}dispose(){this.disposables.dispose(),this.tree.dispose()}}class dnt{get element(){return{elements:this.node.element.elements.map(t=>t.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(t=>new dnt(t))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(t){this.node=t}}class Tpo{constructor(t,n,r,o){this.renderer=t,this.nodeMapper=n,this.compressibleNodeMapperProvider=r,this.onDidChangeTwistieState=o,this.renderedNodes=new Map,this.disposables=[],this.templateId=t.templateId}renderTemplate(t){return{templateData:this.renderer.renderTemplate(t)}}renderElement(t,n,r,o){this.renderer.renderElement(this.nodeMapper.map(t),n,r.templateData,o)}renderCompressedElements(t,n,r,o){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(t),n,r.templateData,o)}renderTwistie(t,n){return t.slow?(n.classList.add(...fi.asClassNameArray(zt.treeItemLoading)),!0):(n.classList.remove(...fi.asClassNameArray(zt.treeItemLoading)),!1)}disposeElement(t,n,r,o){var s,a;(a=(s=this.renderer).disposeElement)==null||a.call(s,this.nodeMapper.map(t),n,r.templateData,o)}disposeCompressedElements(t,n,r,o){var s,a;(a=(s=this.renderer).disposeCompressedElements)==null||a.call(s,this.compressibleNodeMapperProvider().map(t),n,r.templateData,o)}disposeTemplate(t){this.renderer.disposeTemplate(t.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=us(this.disposables)}}function Qpo(e){const t=e&&aRn(e);return t&&{...t,keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{...t.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(n){return e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(n.map(r=>r.element))}},stickyScrollDelegate:t.stickyScrollDelegate}}class Dpo extends lRn{constructor(t,n,r,o,s,a,l={}){super(t,n,r,s,a,l),this.compressionDelegate=o,this.compressibleNodeMapper=new rnt(d=>new dnt(d)),this.filter=l.filter}createTree(t,n,r,o,s){const a=new ont(r),l=o.map(u=>new Tpo(u,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),d=Qpo(s)||{};return new sRn(t,n,a,l,d)}asTreeElement(t,n){return{incompressible:this.compressionDelegate.isIncompressible(t.element),...super.asTreeElement(t,n)}}render(t,n,r){if(!this.identityProvider)return super.render(t,n);const o=v=>this.identityProvider.getId(v).toString(),s=v=>{const f=new Set;for(const k of v){const A=this.tree.getCompressedTreeNode(k===this.root?null:k);if(A.element)for(const p of A.element.elements)f.add(o(p.element))}return f},a=s(this.tree.getSelection()),l=s(this.tree.getFocus());super.render(t,n,r);const d=this.getSelection();let u=!1;const h=this.getFocus();let g=!1;const m=v=>{const f=v.element;if(f)for(let k=0;k{const r=this.filter.filter(n,1),o=Bpo(r);if(o===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return o===1})),super.processChildren(t)}}function Bpo(e){return typeof e=="boolean"?e?1:0:Jie(e)?LR(e.visibility):LR(e)}class Rpo extends iRn{constructor(t,n,r,o,s,a={}){super(t,n,r,o,a),this.user=t,this.dataSource=s,this.identityProvider=a.identityProvider}createModel(t,n){return new snt(t,n)}}new yn("isMac",Tr,U(1684,"Whether the operating system is macOS"));new yn("isLinux",v1,U(1685,"Whether the operating system is Linux"));const C3e=new yn("isWindows",mh,U(1686,"Whether the operating system is Windows")),cRn=new yn("isWeb",qy,U(1687,"Whether the platform is a web browser"));new yn("isMacNative",Tr&&!qy,U(1688,"Whether the operating system is macOS on a non-browser platform"));new yn("isIOS",cA,U(1689,"Whether the operating system is iOS"));new yn("isMobile",Q6n,U(1690,"Whether the platform is a mobile web browser"));new yn("isDevelopment",!1,!0);new yn("productQualityType","",U(1691,"Quality type of VS Code"));const dRn="inputFocus",unt=new yn(dRn,!1,U(1692,"Whether keyboard focus is inside an input box"));var _L=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Ta=function(e,t){return function(n,r){t(n,r,e)}};const _A=Cr("listService");class Ipo{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new xt,this.lists=[],this._lastFocusedWidget=void 0}setLastFocusedList(t){var n,r;t!==this._lastFocusedWidget&&((n=this._lastFocusedWidget)==null||n.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=t,(r=this._lastFocusedWidget)==null||r.getHTMLElement().classList.add("last-focused"))}register(t,n){if(this.lists.some(o=>o.widget===t))throw new Error("Cannot register the same widget multiple times");const r={widget:t,extraContextKeys:n};return this.lists.push(r),wbe(t.getHTMLElement())&&this.setLastFocusedList(t),G4(t.onDidFocus(()=>this.setLastFocusedList(t)),Hn(()=>this.lists.splice(this.lists.indexOf(r),1)),t.onDidDispose(()=>{this.lists=this.lists.filter(o=>o!==r),this._lastFocusedWidget===t&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}const $J=new yn("listScrollAtBoundary","none");Ft.or($J.isEqualTo("top"),$J.isEqualTo("both"));Ft.or($J.isEqualTo("bottom"),$J.isEqualTo("both"));const uRn=new yn("listFocus",!0),hRn=new yn("treestickyScrollFocused",!1),_3e=new yn("listSupportsMultiselect",!0),fRn=Ft.and(uRn,Ft.not(dRn),hRn.negate()),hnt=new yn("listHasSelectionOrFocus",!1),fnt=new yn("listDoubleSelection",!1),gnt=new yn("listMultiSelection",!1),S3e=new yn("listSelectionNavigation",!1),Mpo=new yn("listSupportsFind",!0),mnt=new yn("treeElementCanCollapse",!1),Ppo=new yn("treeElementHasParent",!1),knt=new yn("treeElementCanExpand",!1),Fpo=new yn("treeElementHasChild",!1),Npo=new yn("treeFindOpen",!1),gRn="listTypeNavigationMode",mRn="listAutomaticKeyboardNavigation";function L3e(e,t){const n=e.createScoped(t.getHTMLElement());return uRn.bindTo(n),n}function x3e(e,t){const n=$J.bindTo(e),r=()=>{const o=t.scrollTop===0,s=t.scrollHeight-t.renderHeight-t.scrollTop<1;o&&s?n.set("both"):o?n.set("top"):s?n.set("bottom"):n.set("none")};return r(),t.onDidScroll(r)}const RI="workbench.list.multiSelectModifier",phe="workbench.list.openMode",qv="workbench.list.horizontalScrolling",vnt="workbench.list.defaultFindMode",Ant="workbench.list.typeNavigationMode",s0e="workbench.list.keyboardNavigation",_3="workbench.list.scrollByPage",pnt="workbench.list.defaultFindMatchType",XJ="workbench.tree.indent",a0e="workbench.tree.renderIndentGuides",S3="workbench.list.smoothScrolling",Ty="workbench.list.mouseWheelScrollSensitivity",Qy="workbench.list.fastScrollSensitivity",l0e="workbench.tree.expandMode",c0e="workbench.tree.enableStickyScroll",d0e="workbench.tree.stickyScrollMaxItemCount";function Dy(e){return e.getValue(RI)==="alt"}class Upo extends ft{constructor(t){super(),this.configurationService=t,this.useAltAsMultipleSelectionModifier=Dy(t),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(t=>{t.affectsConfiguration(RI)&&(this.useAltAsMultipleSelectionModifier=Dy(this.configurationService))}))}isSelectionSingleChangeEvent(t){return this.useAltAsMultipleSelectionModifier?t.browserEvent.altKey:KQn(t)}isSelectionRangeChangeEvent(t){return JQn(t)}}function E3e(e,t){const n=e.get(ar),r=e.get(Do),o=new xt;return[{...t,keyboardNavigationDelegate:{mightProducePrintableCharacter(a){return r.mightProducePrintableCharacter(a)}},smoothScrolling:!!n.getValue(S3),mouseWheelScrollSensitivity:n.getValue(Ty),fastScrollSensitivity:n.getValue(Qy),multipleSelectionController:t.multipleSelectionController??o.add(new Upo(n)),keyboardNavigationEventFilter:Vpo(r),scrollByPage:!!n.getValue(_3)},o]}let Syt=class extends _2{constructor(t,n,r,o,s,a,l,d,u){const h=typeof s.horizontalScrolling<"u"?s.horizontalScrolling:!!d.getValue(qv),[g,m]=u.invokeFunction(E3e,s);super(t,n,r,o,{keyboardSupport:!1,...g,horizontalScrolling:h}),this.disposables.add(m),this.contextKeyService=L3e(a,this),this.disposables.add(x3e(this.contextKeyService,this)),this.listSupportsMultiSelect=_3e.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(s.multipleSelectionSupport!==!1),S3e.bindTo(this.contextKeyService).set(!!s.selectionNavigation),this.listHasSelectionOrFocus=hnt.bindTo(this.contextKeyService),this.listDoubleSelection=fnt.bindTo(this.contextKeyService),this.listMultiSelection=gnt.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Dy(d),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const f=this.getSelection(),k=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(f.length>0||k.length>0),this.listMultiSelection.set(f.length>1),this.listDoubleSelection.set(f.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const f=this.getSelection(),k=this.getFocus();this.listHasSelectionOrFocus.set(f.length>0||k.length>0)})),this.disposables.add(d.onDidChangeConfiguration(f=>{f.affectsConfiguration(RI)&&(this._useAltAsMultipleSelectionModifier=Dy(d));let k={};if(f.affectsConfiguration(qv)&&this.horizontalScrolling===void 0){const A=!!d.getValue(qv);k={...k,horizontalScrolling:A}}if(f.affectsConfiguration(_3)){const A=!!d.getValue(_3);k={...k,scrollByPage:A}}if(f.affectsConfiguration(S3)){const A=!!d.getValue(S3);k={...k,smoothScrolling:A}}if(f.affectsConfiguration(Ty)){const A=d.getValue(Ty);k={...k,mouseWheelScrollSensitivity:A}}if(f.affectsConfiguration(Qy)){const A=d.getValue(Qy);k={...k,fastScrollSensitivity:A}}Object.keys(k).length>0&&this.updateOptions(k)})),this.navigator=new kRn(this,{configurationService:d,...s}),this.disposables.add(this.navigator)}updateOptions(t){super.updateOptions(t),t.overrideStyles!==void 0&&this.updateStyles(t.overrideStyles),t.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyles(t){this.style(t?TI(t):sH)}};Syt=_L([Ta(5,Qi),Ta(6,_A),Ta(7,ar),Ta(8,Yn)],Syt);let Lyt=class extends $4o{constructor(t,n,r,o,s,a,l,d,u){const h=typeof s.horizontalScrolling<"u"?s.horizontalScrolling:!!d.getValue(qv),[g,m]=u.invokeFunction(E3e,s);super(t,n,r,o,{keyboardSupport:!1,...g,horizontalScrolling:h}),this.disposables=new xt,this.disposables.add(m),this.contextKeyService=L3e(a,this),this.disposables.add(x3e(this.contextKeyService,this.widget)),this.horizontalScrolling=s.horizontalScrolling,this.listSupportsMultiSelect=_3e.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(s.multipleSelectionSupport!==!1),S3e.bindTo(this.contextKeyService).set(!!s.selectionNavigation),this._useAltAsMultipleSelectionModifier=Dy(d),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(s.overrideStyles),this.disposables.add(d.onDidChangeConfiguration(f=>{f.affectsConfiguration(RI)&&(this._useAltAsMultipleSelectionModifier=Dy(d));let k={};if(f.affectsConfiguration(qv)&&this.horizontalScrolling===void 0){const A=!!d.getValue(qv);k={...k,horizontalScrolling:A}}if(f.affectsConfiguration(_3)){const A=!!d.getValue(_3);k={...k,scrollByPage:A}}if(f.affectsConfiguration(S3)){const A=!!d.getValue(S3);k={...k,smoothScrolling:A}}if(f.affectsConfiguration(Ty)){const A=d.getValue(Ty);k={...k,mouseWheelScrollSensitivity:A}}if(f.affectsConfiguration(Qy)){const A=d.getValue(Qy);k={...k,fastScrollSensitivity:A}}Object.keys(k).length>0&&this.updateOptions(k)})),this.navigator=new kRn(this,{configurationService:d,...s}),this.disposables.add(this.navigator)}updateOptions(t){super.updateOptions(t),t.overrideStyles!==void 0&&this.updateStyles(t.overrideStyles),t.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyles(t){this.style(t?TI(t):sH)}dispose(){this.disposables.dispose(),super.dispose()}};Lyt=_L([Ta(5,Qi),Ta(6,_A),Ta(7,ar),Ta(8,Yn)],Lyt);let xyt=class extends K4o{constructor(t,n,r,o,s,a,l,d,u,h){const g=typeof a.horizontalScrolling<"u"?a.horizontalScrolling:!!u.getValue(qv),[m,v]=h.invokeFunction(E3e,a);super(t,n,r,o,s,{keyboardSupport:!1,...m,horizontalScrolling:g}),this.disposables.add(v),this.contextKeyService=L3e(l,this),this.disposables.add(x3e(this.contextKeyService,this)),this.listSupportsMultiSelect=_3e.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(a.multipleSelectionSupport!==!1),S3e.bindTo(this.contextKeyService).set(!!a.selectionNavigation),this.listHasSelectionOrFocus=hnt.bindTo(this.contextKeyService),this.listDoubleSelection=fnt.bindTo(this.contextKeyService),this.listMultiSelection=gnt.bindTo(this.contextKeyService),this.horizontalScrolling=a.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Dy(u),this.disposables.add(this.contextKeyService),this.disposables.add(d.register(this)),this.updateStyles(a.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const k=this.getSelection(),A=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(k.length>0||A.length>0),this.listMultiSelection.set(k.length>1),this.listDoubleSelection.set(k.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const k=this.getSelection(),A=this.getFocus();this.listHasSelectionOrFocus.set(k.length>0||A.length>0)})),this.disposables.add(u.onDidChangeConfiguration(k=>{k.affectsConfiguration(RI)&&(this._useAltAsMultipleSelectionModifier=Dy(u));let A={};if(k.affectsConfiguration(qv)&&this.horizontalScrolling===void 0){const p=!!u.getValue(qv);A={...A,horizontalScrolling:p}}if(k.affectsConfiguration(_3)){const p=!!u.getValue(_3);A={...A,scrollByPage:p}}if(k.affectsConfiguration(S3)){const p=!!u.getValue(S3);A={...A,smoothScrolling:p}}if(k.affectsConfiguration(Ty)){const p=u.getValue(Ty);A={...A,mouseWheelScrollSensitivity:p}}if(k.affectsConfiguration(Qy)){const p=u.getValue(Qy);A={...A,fastScrollSensitivity:p}}Object.keys(A).length>0&&this.updateOptions(A)})),this.navigator=new jpo(this,{configurationService:u,...a}),this.disposables.add(this.navigator)}updateOptions(t){super.updateOptions(t),t.overrideStyles!==void 0&&this.updateStyles(t.overrideStyles),t.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyles(t){this.style(t?TI(t):sH)}dispose(){this.disposables.dispose(),super.dispose()}};xyt=_L([Ta(6,Qi),Ta(7,_A),Ta(8,ar),Ta(9,Yn)],xyt);class bnt extends ft{constructor(t,n){super(),this.widget=t,this._onDidOpen=this._register(new at),this.onDidOpen=this._onDidOpen.event,this._register(an.filter(this.widget.onDidChangeSelection,r=>eS(r.browserEvent))(r=>this.onSelectionFromKeyboard(r))),this._register(this.widget.onPointer(r=>this.onPointer(r.element,r.browserEvent))),this._register(this.widget.onMouseDblClick(r=>this.onMouseDblClick(r.element,r.browserEvent))),typeof(n==null?void 0:n.openOnSingleClick)!="boolean"&&(n!=null&&n.configurationService)?(this.openOnSingleClick=(n==null?void 0:n.configurationService.getValue(phe))!=="doubleClick",this._register(n==null?void 0:n.configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(phe)&&(this.openOnSingleClick=(n==null?void 0:n.configurationService.getValue(phe))!=="doubleClick")}))):this.openOnSingleClick=(n==null?void 0:n.openOnSingleClick)??!0}onSelectionFromKeyboard(t){if(t.elements.length!==1)return;const n=t.browserEvent,r=typeof n.preserveFocus=="boolean"?n.preserveFocus:!0,o=typeof n.pinned=="boolean"?n.pinned:!r;this._open(this.getSelectedElement(),r,o,!1,t.browserEvent)}onPointer(t,n){if(!this.openOnSingleClick||n.detail===2)return;const o=n.button===1,s=!0,a=o,l=n.ctrlKey||n.metaKey||n.altKey;this._open(t,s,a,l,n)}onMouseDblClick(t,n){if(!n)return;const r=n.target;if(r.classList.contains("monaco-tl-twistie")||r.classList.contains("monaco-icon-label")&&r.classList.contains("folder-icon")&&n.offsetX<16)return;const s=!1,a=!0,l=n.ctrlKey||n.metaKey||n.altKey;this._open(t,s,a,l,n)}_open(t,n,r,o,s){t&&this._onDidOpen.fire({editorOptions:{preserveFocus:n,pinned:r,revealIfVisible:!0},sideBySide:o,element:t,browserEvent:s})}}class kRn extends bnt{constructor(t,n){super(t,n),this.widget=t}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class jpo extends bnt{constructor(t,n){super(t,n)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class Wpo extends bnt{constructor(t,n){super(t,n)}getSelectedElement(){return this.widget.getSelection()[0]??void 0}}function Vpo(e){let t=!1;return n=>{if(n.toKeyCodeChord().isModifierKey())return!1;if(t)return t=!1,!1;const r=e.softDispatch(n,n.target);return r.kind===1?(t=!0,!1):(t=!1,r.kind===0)}}let u0e=class extends lnt{get onDidOpen(){return this.internals.onDidOpen}constructor(t,n,r,o,s,a,l,d,u){const{options:h,getTypeNavigationMode:g,disposable:m}=a.invokeFunction(ere,s);super(t,n,r,o,h),this.disposables.add(m),this.internals=new ER(this,s,g,s.overrideStyles,l,d,u),this.disposables.add(this.internals)}updateOptions(t){super.updateOptions(t),this.internals.updateOptions(t)}};u0e=_L([Ta(5,Yn),Ta(6,Qi),Ta(7,_A),Ta(8,ar)],u0e);let Eyt=class extends sRn{constructor(t,n,r,o,s,a,l,d,u){const{options:h,getTypeNavigationMode:g,disposable:m}=a.invokeFunction(ere,s);super(t,n,r,o,h),this.disposables.add(m),this.internals=new ER(this,s,g,s.overrideStyles,l,d,u),this.disposables.add(this.internals)}updateOptions(t={}){super.updateOptions(t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles),this.internals.updateOptions(t)}};Eyt=_L([Ta(5,Yn),Ta(6,Qi),Ta(7,_A),Ta(8,ar)],Eyt);let Tyt=class extends Rpo{constructor(t,n,r,o,s,a,l,d,u,h){const{options:g,getTypeNavigationMode:m,disposable:v}=l.invokeFunction(ere,a);super(t,n,r,o,s,g),this.disposables.add(v),this.internals=new ER(this,a,m,a.overrideStyles,d,u,h),this.disposables.add(this.internals)}updateOptions(t={}){super.updateOptions(t),t.overrideStyles!==void 0&&this.internals.updateStyleOverrides(t.overrideStyles),this.internals.updateOptions(t)}};Tyt=_L([Ta(6,Yn),Ta(7,Qi),Ta(8,_A),Ta(9,ar)],Tyt);let cWe=class extends lRn{get onDidOpen(){return this.internals.onDidOpen}constructor(t,n,r,o,s,a,l,d,u,h){const{options:g,getTypeNavigationMode:m,disposable:v}=l.invokeFunction(ere,a);super(t,n,r,o,s,g),this.disposables.add(v),this.internals=new ER(this,a,m,a.overrideStyles,d,u,h),this.disposables.add(this.internals)}updateOptions(t={}){super.updateOptions(t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles),this.internals.updateOptions(t)}};cWe=_L([Ta(6,Yn),Ta(7,Qi),Ta(8,_A),Ta(9,ar)],cWe);let Qyt=class extends Dpo{constructor(t,n,r,o,s,a,l,d,u,h,g){const{options:m,getTypeNavigationMode:v,disposable:f}=d.invokeFunction(ere,l);super(t,n,r,o,s,a,m),this.disposables.add(f),this.internals=new ER(this,l,v,l.overrideStyles,u,h,g),this.disposables.add(this.internals)}updateOptions(t){super.updateOptions(t),this.internals.updateOptions(t)}};Qyt=_L([Ta(7,Yn),Ta(8,Qi),Ta(9,_A),Ta(10,ar)],Qyt);function vRn(e){const t=e.getValue(vnt);if(t==="highlight")return zk.Highlight;if(t==="filter")return zk.Filter;const n=e.getValue(s0e);if(n==="simple"||n==="highlight")return zk.Highlight;if(n==="filter")return zk.Filter}function ARn(e){const t=e.getValue(pnt);if(t==="fuzzy")return Hb.Fuzzy;if(t==="contiguous")return Hb.Contiguous}function ere(e,t){const n=e.get(ar),r=e.get(wL),o=e.get(Qi),s=e.get(Yn),a=()=>{const m=o.getContextKeyValue(gRn);if(m==="automatic")return CO.Automatic;if(m==="trigger"||o.getContextKeyValue(mRn)===!1)return CO.Trigger;const f=n.getValue(Ant);if(f==="automatic")return CO.Automatic;if(f==="trigger")return CO.Trigger},l=t.horizontalScrolling!==void 0?t.horizontalScrolling:!!n.getValue(qv),[d,u]=s.invokeFunction(E3e,t),h=t.paddingBottom,g=t.renderIndentGuides!==void 0?t.renderIndentGuides:n.getValue(a0e);return{getTypeNavigationMode:a,disposable:u,options:{keyboardSupport:!1,...d,indent:typeof n.getValue(XJ)=="number"?n.getValue(XJ):void 0,renderIndentGuides:g,smoothScrolling:!!n.getValue(S3),defaultFindMode:t.defaultFindMode??vRn(n),defaultFindMatchType:t.defaultFindMatchType??ARn(n),horizontalScrolling:l,scrollByPage:!!n.getValue(_3),paddingBottom:h,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:t.expandOnlyOnTwistieClick??n.getValue(l0e)==="doubleClick",contextViewProvider:r,findWidgetStyles:Eko,enableStickyScroll:!!n.getValue(c0e),stickyScrollMaxItemCount:Number(n.getValue(d0e))}}}let ER=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(t,n,r,o,s,a,l){this.tree=t,this.disposables=[],this.contextKeyService=L3e(s,t),this.disposables.push(x3e(this.contextKeyService,t)),this.listSupportsMultiSelect=_3e.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(n.multipleSelectionSupport!==!1),S3e.bindTo(this.contextKeyService).set(!!n.selectionNavigation),this.listSupportFindWidget=Mpo.bindTo(this.contextKeyService),this.listSupportFindWidget.set(n.findWidgetEnabled??!0),this.hasSelectionOrFocus=hnt.bindTo(this.contextKeyService),this.hasDoubleSelection=fnt.bindTo(this.contextKeyService),this.hasMultiSelection=gnt.bindTo(this.contextKeyService),this.treeElementCanCollapse=mnt.bindTo(this.contextKeyService),this.treeElementHasParent=Ppo.bindTo(this.contextKeyService),this.treeElementCanExpand=knt.bindTo(this.contextKeyService),this.treeElementHasChild=Fpo.bindTo(this.contextKeyService),this.treeFindOpen=Npo.bindTo(this.contextKeyService),this.treeStickyScrollFocused=hRn.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=Dy(l),this.updateStyleOverrides(o);const u=()=>{const g=t.getFocus()[0];if(!g)return;const m=t.getNode(g);this.treeElementCanCollapse.set(m.collapsible&&!m.collapsed),this.treeElementHasParent.set(!!t.getParentElement(g)),this.treeElementCanExpand.set(m.collapsible&&m.collapsed),this.treeElementHasChild.set(!!t.getFirstElementChild(g))},h=new Set;h.add(gRn),h.add(mRn),this.disposables.push(this.contextKeyService,a.register(t),t.onDidChangeSelection(()=>{const g=t.getSelection(),m=t.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(g.length>0||m.length>0),this.hasMultiSelection.set(g.length>1),this.hasDoubleSelection.set(g.length===2)})}),t.onDidChangeFocus(()=>{const g=t.getSelection(),m=t.getFocus();this.hasSelectionOrFocus.set(g.length>0||m.length>0),u()}),t.onDidChangeCollapseState(u),t.onDidChangeModel(u),t.onDidChangeFindOpenState(g=>this.treeFindOpen.set(g)),t.onDidChangeStickyScrollFocused(g=>this.treeStickyScrollFocused.set(g)),l.onDidChangeConfiguration(g=>{let m={};if(g.affectsConfiguration(RI)&&(this._useAltAsMultipleSelectionModifier=Dy(l)),g.affectsConfiguration(XJ)){const v=l.getValue(XJ);m={...m,indent:v}}if(g.affectsConfiguration(a0e)&&n.renderIndentGuides===void 0){const v=l.getValue(a0e);m={...m,renderIndentGuides:v}}if(g.affectsConfiguration(S3)){const v=!!l.getValue(S3);m={...m,smoothScrolling:v}}if(g.affectsConfiguration(vnt)||g.affectsConfiguration(s0e)){const v=vRn(l);m={...m,defaultFindMode:v}}if(g.affectsConfiguration(Ant)||g.affectsConfiguration(s0e)){const v=r();m={...m,typeNavigationMode:v}}if(g.affectsConfiguration(pnt)){const v=ARn(l);m={...m,defaultFindMatchType:v}}if(g.affectsConfiguration(qv)&&n.horizontalScrolling===void 0){const v=!!l.getValue(qv);m={...m,horizontalScrolling:v}}if(g.affectsConfiguration(_3)){const v=!!l.getValue(_3);m={...m,scrollByPage:v}}if(g.affectsConfiguration(l0e)&&n.expandOnlyOnTwistieClick===void 0&&(m={...m,expandOnlyOnTwistieClick:l.getValue(l0e)==="doubleClick"}),g.affectsConfiguration(c0e)){const v=l.getValue(c0e);m={...m,enableStickyScroll:v}}if(g.affectsConfiguration(d0e)){const v=Math.max(1,l.getValue(d0e));m={...m,stickyScrollMaxItemCount:v}}if(g.affectsConfiguration(Ty)){const v=l.getValue(Ty);m={...m,mouseWheelScrollSensitivity:v}}if(g.affectsConfiguration(Qy)){const v=l.getValue(Qy);m={...m,fastScrollSensitivity:v}}Object.keys(m).length>0&&t.updateOptions(m)}),this.contextKeyService.onDidChangeContext(g=>{g.affectsSome(h)&&t.updateOptions({typeNavigationMode:r()})})),this.navigator=new Wpo(t,{configurationService:l,...n}),this.disposables.push(this.navigator)}updateOptions(t){t.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyleOverrides(t){this.tree.style(t?TI(t):sH)}dispose(){this.disposables=us(this.disposables)}};ER=_L([Ta(4,Qi),Ta(5,_A),Ta(6,ar)],ER);const zpo=Ql.as(F3.Configuration);zpo.registerConfiguration({id:"workbench",order:7,title:U(1705,"Workbench"),type:"object",properties:{[RI]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[U(1706,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),U(1707,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:U(1708,"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[phe]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:U(1709,"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[qv]:{type:"boolean",default:!1,description:U(1710,"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[_3]:{type:"boolean",default:!1,description:U(1711,"Controls whether clicks in the scrollbar scroll page by page.")},[XJ]:{type:"number",default:8,minimum:4,maximum:40,description:U(1712,"Controls tree indentation in pixels.")},[a0e]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:U(1713,"Controls whether the tree should render indent guides.")},[S3]:{type:"boolean",default:!1,description:U(1714,"Controls whether lists and trees have smooth scrolling.")},[Ty]:{type:"number",default:1,markdownDescription:U(1715,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[Qy]:{type:"number",default:5,markdownDescription:U(1716,"Scrolling speed multiplier when pressing `Alt`.")},[vnt]:{type:"string",enum:["highlight","filter"],enumDescriptions:[U(1717,"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),U(1718,"Filter elements when searching.")],default:"highlight",description:U(1719,"Controls the default find mode for lists and trees in the workbench.")},[s0e]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[U(1720,"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),U(1721,"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),U(1722,"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:U(1723,"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:U(1724,"Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[pnt]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[U(1725,"Use fuzzy matching when searching."),U(1726,"Use contiguous matching when searching.")],default:"fuzzy",description:U(1727,"Controls the type of matching used when searching lists and trees in the workbench.")},[l0e]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:U(1728,"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[c0e]:{type:"boolean",default:!0,description:U(1729,"Controls whether sticky scrolling is enabled in trees.")},[d0e]:{type:"number",minimum:1,default:7,markdownDescription:U(1730,"Controls the number of sticky elements displayed in the tree when {0} is enabled.","`#workbench.tree.enableStickyScroll#`")},[Ant]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:U(1731,"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}});class G8{constructor(t,n,r,o){this.isProviderFirst=t,this.parent=n,this.link=r,this._rangeCallback=o,this.id=NUe.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(t){this._range=t,this._rangeCallback(this)}get ariaMessage(){var n;const t=(n=this.parent.getPreview(this))==null?void 0:n.preview(this.range);return t?U(1088,"{0} in {1} on line {2} at column {3}",t.value,hA(this.uri),this.range.startLineNumber,this.range.startColumn):U(1087,"in {0} on line {1} at column {2}",hA(this.uri),this.range.startLineNumber,this.range.startColumn)}}class Hpo{constructor(t){this._modelReference=t}dispose(){this._modelReference.dispose()}preview(t,n=8){const r=this._modelReference.object.textEditorModel;if(!r)return;const{startLineNumber:o,startColumn:s,endLineNumber:a,endColumn:l}=t,d=r.getWordUntilPosition({lineNumber:o,column:s-n}),u=new Ee(o,d.startColumn,o,s),h=new Ee(a,l,a,1073741824),g=r.getValueInRange(u).replace(/^\s+/,""),m=r.getValueInRange(t),v=r.getValueInRange(h).replace(/\s+$/,"");return{value:g+m+v,highlight:{start:g.length,end:g.length+m.length}}}}class bV{constructor(t,n){this.parent=t,this.uri=n,this.children=[],this._previews=new _c}dispose(){us(this._previews.values()),this._previews.clear()}getPreview(t){return this._previews.get(t.uri)}get ariaMessage(){const t=this.children.length;return t===1?U(1089,"1 symbol in {0}, full path {1}",hA(this.uri),this.uri.fsPath):U(1090,"{0} symbols in {1}, full path {2}",t,hA(this.uri),this.uri.fsPath)}async resolve(t){if(this._previews.size!==0)return this;for(const n of this.children)if(!this._previews.has(n.uri))try{const r=await t.createModelReference(n.uri);this._previews.set(n.uri,new Hpo(r))}catch(r){zi(r)}return this}}class B0{constructor(t,n){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new at,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=n;const[r]=t;t.sort(B0._compareReferences);let o;for(const s of t)if((!o||!Wa.isEqual(o.uri,s.uri,!0))&&(o=new bV(this,s.uri),this.groups.push(o)),o.children.length===0||B0._compareReferences(s,o.children[o.children.length-1])!==0){const a=new G8(r===s,o,s,l=>this._onDidChangeReferenceRange.fire(l));this.references.push(a),o.children.push(a)}}dispose(){us(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new B0(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?U(1091,"No results found"):this.references.length===1?U(1092,"Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?U(1093,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):U(1094,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(t,n){const{parent:r}=t;let o=r.children.indexOf(t);const s=r.children.length,a=r.parent.groups.length;return a===1||n&&o+10?(n?o=(o+1)%s:o=(o+s-1)%s,r.children[o]):(o=r.parent.groups.indexOf(r),n?(o=(o+1)%a,r.parent.groups[o].children[0]):(o=(o+a-1)%a,r.parent.groups[o].children[r.parent.groups[o].children.length-1]))}nearestReference(t,n){const r=this.references.map((o,s)=>({idx:s,prefixLen:dp(o.uri.toString(),t.toString()),offsetDist:Math.abs(o.range.startLineNumber-n.lineNumber)*100+Math.abs(o.range.startColumn-n.column)})).sort((o,s)=>o.prefixLen>s.prefixLen?-1:o.prefixLens.offsetDist?1:0)[0];if(r)return this.references[r.idx]}referenceAt(t,n){for(const r of this.references)if(r.uri.toString()===t.toString()&&Ee.containsPosition(r.range,n))return r}firstReference(){for(const t of this.references)if(t.isProviderFirst)return t;return this.references[0]}static _compareReferences(t,n){return Wa.compare(t.uri,n.uri)||Ee.compareRangesUsingStarts(t.range,n.range)}}class dWe extends ft{constructor(t,n,r){super(),this.options=n,this.styles=r,this.count=0,this.hover=this._register(new ts),this.element=Xt(t,tn(".monaco-count-badge")),this._register(Hn(()=>t.removeChild(this.element))),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0),this.updateHover()}setCount(t){this.count=t,this.render()}setTitleFormat(t){this.titleFormat=t,this.updateHover(),this.render()}updateHover(){this.titleFormat!==""&&!this.hover.value?this.hover.value=yp().setupDelayedHoverAtMouse(this.element,()=>({content:oR(this.titleFormat,this.count),appearance:{compact:!0}})):this.titleFormat===""&&this.hover.value&&(this.hover.value=void 0)}render(){this.element.textContent=oR(this.countFormat,this.count),this.element.style.backgroundColor=this.styles.badgeBackground??"",this.element.style.color=this.styles.badgeForeground??"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}class U9 extends ft{constructor(t,n){super(),this.options=n,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.domNode=Xt(t,tn("span.monaco-highlighted-label"))}get element(){return this.domNode}set(t,n=[],r="",o,s){t||(t=""),o&&(t=U9.escapeNewLines(t,n)),!(this.didEverRender&&this.text===t&&this.title===r&&Q0(this.highlights,n))&&(this.text=t,this.title=r,this.highlights=n,this.render(s))}render(t){var o;const n=[];let r=0;for(const s of this.highlights){if(s.end===s.start)continue;if(r{o=s===`\r `?-1:0,a+=r;for(const l of n)l.end<=a||(l.start>=a&&(l.start+=o),l.end>=a&&(l.end+=o));return r+=o,"⏎"})}}class xX{constructor(t){this._element=t}get element(){return this._element}set textContent(t){this.disposed||t===this._textContent||(this._textContent=t,this._element.textContent=t)}set classNames(t){this.disposed||Q0(t,this._classNames)||(this._classNames=t,this._element.classList.value="",this._element.classList.add(...t))}set empty(t){this.disposed||t===this._empty||(this._empty=t,this._element.style.marginLeft=t?"0":"")}dispose(){this.disposed=!0}}class GJ extends ft{constructor(t,n){super(),this.customHovers=new Map,this.creationOptions=n,this.domNode=this._register(new xX(Xt(t,tn(".monaco-icon-label")))),this.labelContainer=Xt(this.domNode.element,tn(".monaco-icon-label-container")),this.nameContainer=Xt(this.labelContainer,tn("span.monaco-icon-name-container")),n!=null&&n.supportHighlights||n!=null&&n.supportIcons?this.nameNode=this._register(new Gpo(this.nameContainer,!!n.supportIcons)):this.nameNode=new $po(this.nameContainer),this.hoverDelegate=(n==null?void 0:n.hoverDelegate)??eC("mouse")}get element(){return this.domNode.element}setLabel(t,n,r){var d;const o=["monaco-icon-label"],s=["monaco-icon-label-container"];let a="";r&&(r.extraClasses&&o.push(...r.extraClasses),r.bold&&o.push("bold"),r.italic&&o.push("italic"),r.strikethrough&&o.push("strikethrough"),r.disabledCommand&&s.push("disabled"),r.title&&(typeof r.title=="string"?a+=r.title:a+=t));const l=this.domNode.element.querySelector(".monaco-icon-label-iconpath");if(r!=null&&r.iconPath){let u;if(!l||!ec(l)?(u=tn(".monaco-icon-label-iconpath"),this.domNode.element.prepend(u)):u=l,fi.isThemeIcon(r.iconPath)){const h=fi.asClassName(r.iconPath);u.className=`monaco-icon-label-iconpath ${h}`,u.style.backgroundImage=""}else u.style.backgroundImage=xy(r==null?void 0:r.iconPath);u.style.backgroundRepeat="no-repeat",u.style.backgroundPosition="center",u.style.backgroundSize="contain"}else l&&l.remove();if(this.domNode.classNames=o,this.domNode.element.setAttribute("aria-label",a),this.labelContainer.classList.value="",this.labelContainer.classList.add(...s),this.setupHover(r!=null&&r.descriptionTitle?this.labelContainer:this.element,r==null?void 0:r.title),this.nameNode.setLabel(t,r),n||this.descriptionNode){const u=this.getOrCreateDescriptionNode();if(u instanceof U9){const h=(r==null?void 0:r.supportIcons)??((d=this.creationOptions)==null?void 0:d.supportIcons);u.set(n||"",r?r.descriptionMatches:void 0,void 0,r==null?void 0:r.labelEscapeNewLines,h),this.setupHover(u.element,r==null?void 0:r.descriptionTitle)}else u.textContent=n&&(r!=null&&r.labelEscapeNewLines)?U9.escapeNewLines(n,[]):n||"",this.setupHover(u.element,(r==null?void 0:r.descriptionTitle)||""),u.empty=!n}if(r!=null&&r.suffix||this.suffixNode){const u=this.getOrCreateSuffixNode();u.textContent=(r==null?void 0:r.suffix)??""}}setupHover(t,n){var a;const r=this.customHovers.get(t);if(r&&(r.dispose(),this.customHovers.delete(t)),!n){t.removeAttribute("title");return}let o=t;if((a=this.creationOptions)!=null&&a.hoverTargetOverride){if(!gu(t,this.creationOptions.hoverTargetOverride))throw new Error("hoverTargetOverrride must be an ancestor of the htmlElement");o=this.creationOptions.hoverTargetOverride}const s=yp().setupManagedHover(this.hoverDelegate,o,n);s&&this.customHovers.set(t,s)}dispose(){super.dispose();for(const t of this.customHovers.values())t.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const t=this._register(new xX(Xto(this.nameContainer,tn("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new xX(Xt(t.element,tn("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var t;if(!this.descriptionNode){const n=this._register(new xX(Xt(this.labelContainer,tn("span.monaco-icon-description-container"))));(t=this.creationOptions)!=null&&t.supportDescriptionHighlights?this.descriptionNode=this._register(new U9(Xt(n.element,tn("span.label-description")))):this.descriptionNode=this._register(new xX(Xt(n.element,tn("span.label-description"))))}return this.descriptionNode}}class $po{constructor(t){this.container=t,this.label=void 0,this.singleLabel=void 0}setLabel(t,n){if(!(this.label===t&&Q0(this.options,n)))if(this.label=t,this.options=n,typeof t=="string")this.singleLabel||(this.container.textContent="",this.container.classList.remove("multiple"),this.singleLabel=Xt(this.container,tn("a.label-name",{id:n==null?void 0:n.domId}))),this.singleLabel.textContent=t;else{this.container.textContent="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let r=0;r{const s={start:r,end:r+o.length},a=n.map(l=>mf.intersect(s,l)).filter(l=>!mf.isEmpty(l)).map(({start:l,end:d})=>({start:l-r,end:d-r}));return r=s.end+t.length,a})}class Gpo extends ft{constructor(t,n){super(),this.container=t,this.supportIcons=n,this.label=void 0,this.singleLabel=void 0}setLabel(t,n){if(this.label===t&&Q0(this.options,n))return;this.label=t,this.options=n;const r=(n==null?void 0:n.supportIcons)??this.supportIcons;if(typeof t=="string")this.singleLabel||(this.container.textContent="",this.container.classList.remove("multiple"),this.singleLabel=this._register(new U9(Xt(this.container,tn("a.label-name",{id:n==null?void 0:n.domId}))))),this.singleLabel.set(t,n==null?void 0:n.matches,void 0,n==null?void 0:n.labelEscapeNewLines,r);else{this.container.textContent="",this.container.classList.add("multiple"),this.singleLabel=void 0;const o=(n==null?void 0:n.separator)||"/",s=Xpo(t,o,n==null?void 0:n.matches);for(let a=0;a=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Q3e=function(e,t){return function(n,r){t(n,r,e)}},uWe;let hWe=class{constructor(t){this._resolverService=t}hasChildren(t){return t instanceof B0||t instanceof bV}getChildren(t){if(t instanceof B0)return t.groups;if(t instanceof bV)return t.resolve(this._resolverService).then(n=>n.children);throw new Error("bad tree")}};hWe=T3e([Q3e(0,Dg)],hWe);class Ypo{getHeight(){return 23}getTemplateId(t){return t instanceof bV?h0e.id:f0e.id}}let fWe=class{constructor(t){this._keybindingService=t}getKeyboardNavigationLabel(t){var n;if(t instanceof G8){const r=(n=t.parent.getPreview(t))==null?void 0:n.preview(t.range);if(r)return r.value}return hA(t.uri)}};fWe=T3e([Q3e(0,Do)],fWe);class Zpo{getId(t){return t instanceof G8?t.id:t.uri}}let gWe=class extends ft{constructor(t,n){super(),this._labelService=n;const r=document.createElement("div");r.classList.add("reference-file"),this.file=this._register(new GJ(r,{supportHighlights:!0})),this.badge=this._register(new dWe(Xt(r,tn(".count")),{},gDn)),t.appendChild(r)}set(t,n){const r=Dbe(t.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(t.uri),this._labelService.getUriLabel(r,{relative:!0}),{title:this._labelService.getUriLabel(t.uri),matches:n});const o=t.children.length;this.badge.setCount(o),o>1?this.badge.setTitleFormat(U(1081,"{0} references",o)):this.badge.setTitleFormat(U(1082,"{0} reference",o))}};gWe=T3e([Q3e(1,TR)],gWe);var jD;let h0e=(jD=class{constructor(t){this._instantiationService=t,this.templateId=uWe.id}renderTemplate(t){return this._instantiationService.createInstance(gWe,t)}renderElement(t,n,r){r.set(t.element,Uie(t.filterData))}disposeTemplate(t){t.dispose()}},uWe=jD,jD.id="FileReferencesRenderer",jD);h0e=uWe=T3e([Q3e(0,Yn)],h0e);class qpo extends ft{constructor(t){super(),this.label=this._register(new U9(t))}set(t,n){var o;const r=(o=t.parent.getPreview(t))==null?void 0:o.preview(t.range);if(!r||!r.value)this.label.set(`${hA(t.uri)}:${t.range.startLineNumber+1}:${t.range.startColumn+1}`);else{const{value:s,highlight:a}=r;n&&!q4.isDefault(n)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(s,Uie(n))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(s,[a]))}}}const Jve=class Jve{constructor(){this.templateId=Jve.id}renderTemplate(t){return new qpo(t)}renderElement(t,n,r){r.set(t.element,t.filterData)}disposeTemplate(t){t.dispose()}};Jve.id="OneReferenceRenderer";let f0e=Jve;class Kpo{getWidgetAriaLabel(){return U(1083,"References")}getAriaLabel(t){return t.ariaMessage}}var pRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},K7=function(e,t){return function(n,r){t(n,r,e)}};const eAe=class eAe{constructor(t,n){this._editor=t,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new xt,this._callOnModelChange=new xt,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const t=this._editor.getModel();if(t){for(const n of this._model.references)if(n.uri.toString()===t.uri.toString()){this._addDecorations(n.parent);return}}}_addDecorations(t){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const n=[],r=[];for(let o=0,s=t.children.length;o{const s=o.deltaDecorations([],n);for(let a=0;athis.labelService.getUriBasenameLabel(r.uri)).join(", ")}onDragStart(t,n){if(!n.dataTransfer)return;const o=t.elements.map(s=>this.getDragURI(s)).filter(Boolean);o.length&&(n.dataTransfer.setData(mR.RESOURCES,JSON.stringify(o)),n.dataTransfer.setData(mR.TEXT,o.join(` -`)))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};kWe=pRn([K7(0,TR)],kWe);let vWe=class extends i0e{constructor(t,n,r,o,s,a,l,d,u){super(t,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},a),this._defaultTreeKeyboardSupport=n,this.layoutData=r,this._textModelResolverService=s,this._instantiationService=a,this._peekViewService=l,this._uriLabel=d,this._keybindingService=u,this._disposeOnNewModel=new xt,this._callOnDispose=new xt,this._onDidSelectReference=new at,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new cs(0,0),this._isClosing=!1,this._applyTheme(o.getColorTheme()),this._callOnDispose.add(o.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(t,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),us(this._preview),us(this._previewNotAvailableMessage),us(this._tree),us(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(t){const n=t.getColor(j4o)||Dt.transparent;this.style({arrowColor:n,frameColor:n,headerBackgroundColor:t.getColor(U4o)||Dt.transparent,primaryHeadingColor:t.getColor(ZBn),secondaryHeadingColor:t.getColor(qBn)})}show(t){super.show(t,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(t){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"title"})}_fillBody(t){this.setCssClass("reference-zone-widget"),this._messageContainer=Xt(t,tn("div.messages")),tm(this._messageContainer),this._splitView=new JBn(t,{orientation:1}),this._previewContainer=Xt(t,tn("div.preview.inline"));const n={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(X8,this._previewContainer,n,{},this.editor),tm(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(fR,U(1084,"no preview available"),o2,fR.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=Xt(t,tn("div.ref-tree.inline"));const r={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new Kpo,keyboardNavigationLabelProvider:this._instantiationService.createInstance(fWe),identityProvider:new Zpo,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:W4o},dnd:this._instantiationService.createInstance(kWe)};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(wc(this._treeContainer,"keydown",s=>{s.equals(9)&&(this._keybindingService.dispatchEvent(s,s.target),s.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(ebo,"ReferencesWidget",this._treeContainer,new Ypo,[this._instantiationService.createInstance(h0e),this._instantiationService.createInstance(f0e)],this._instantiationService.createInstance(hWe),r),this._splitView.addView({onDidChange:an.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:s=>{this._preview.layout({height:this._dim.height,width:s})}},r0e.Distribute),this._splitView.addView({onDidChange:an.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:s=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${s}px`,this._tree.layout(this._dim.height,s)}},r0e.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const o=(s,a)=>{s instanceof G8&&(a==="show"&&this._revealReference(s,!1),this._onDidSelectReference.fire({element:s,kind:a,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(s=>{s.sideBySide?o(s.element,"side"):s.editorOptions.pinned?o(s.element,"goto"):o(s.element,"show")})),tm(this._treeContainer)}_onWidth(t){this._dim&&this._doLayoutBody(this._dim.height,t)}_doLayoutBody(t,n){super._doLayoutBody(t,n),this._dim=new cs(n,t),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(n),this._splitView.resizeView(0,n*this.layoutData.ratio)}setSelection(t){return this._revealReference(t,!0).then(()=>{this._model&&(this._tree.setSelection([t]),this._tree.setFocus([t]))})}setModel(t){return this._disposeOnNewModel.clear(),this._model=t,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=U(1085,"No results"),k0(this._messageContainer),Promise.resolve(void 0)):(tm(this._messageContainer),this._decorationsManager=new mWe(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(t=>this._tree.rerender(t))),this._disposeOnNewModel.add(this._preview.onMouseDown(t=>{const{event:n,target:r}=t;if(n.detail!==2)return;const o=this._getFocusedReference();o&&this._onDidSelectReference.fire({element:{uri:o.uri,range:r.range},kind:n.ctrlKey||n.metaKey||n.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),k0(this._treeContainer),k0(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[t]=this._tree.getFocus();if(t instanceof G8)return t;if(t instanceof bV&&t.children.length>0)return t.children[0]}async revealReference(t){await this._revealReference(t,!1),this._onDidSelectReference.fire({element:t,kind:"goto",source:"tree"})}async _revealReference(t,n){if(this._revealedReference===t)return;this._revealedReference=t,t.uri.scheme!==Ci.inMemory?this.setTitle(Dno(t.uri),this._uriLabel.getUriLabel(Dbe(t.uri))):this.setTitle(U(1086,"References"));const r=this._textModelResolverService.createModelReference(t.uri);this._tree.getInput()===t.parent?this._tree.reveal(t):(n&&this._tree.reveal(t.parent),await this._tree.expand(t.parent),this._tree.reveal(t));const o=await r;if(!this._model){o.dispose();return}us(this._previewModelReference);const s=o.object;if(s){const a=this._preview.getModel()===s.textEditorModel?0:1,l=Ee.lift(t.range).collapseToStart();this._previewModelReference=o,this._preview.setModel(s.textEditorModel),this._preview.setSelection(l),this._preview.revealRangeInCenter(l,a)}else this._preview.setModel(this._previewNotAvailableMessage),o.dispose()}};vWe=pRn([K7(3,Dl),K7(4,Dg),K7(5,Yn),K7(6,YBn),K7(7,TR),K7(8,Do)],vWe);var tbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},TP=function(e,t){return function(n,r){t(n,r,e)}},bhe;const II=new yn("referenceSearchVisible",!1,U(1078,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));var WD;let QR=(WD=class{static get(t){return t.getContribution(bhe.ID)}constructor(t,n,r,o,s,a,l,d){this._defaultTreeKeyboardSupport=t,this._editor=n,this._editorService=o,this._notificationService=s,this._instantiationService=a,this._storageService=l,this._configurationService=d,this._disposables=new xt,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=II.bindTo(r)}dispose(){var t,n;this._referenceSearchVisible.reset(),this._disposables.dispose(),(t=this._widget)==null||t.dispose(),(n=this._model)==null||n.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(t,n,r){let o;if(this._widget&&(o=this._widget.position),this.closeWidget(),o&&t.containsPosition(o))return;this._peekMode=r,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const s="peekViewLayout",a=Jpo.fromJSON(this._storageService.get(s,0,"{}"));this._widget=this._instantiationService.createInstance(vWe,this._editor,this._defaultTreeKeyboardSupport,a),this._widget.setTitle(U(1079,"Loading...")),this._widget.show(t),this._disposables.add(this._widget.onDidClose(()=>{n.cancel(),this._widget?(this._storageService.store(s,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(d=>{const{element:u,kind:h}=d;if(u)switch(h){case"open":(d.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(u,!1,!1);break;case"side":this.openReference(u,!0,!1);break;case"goto":r?this._gotoReference(u,!0):this.openReference(u,!1,!0);break}}));const l=++this._requestIdPool;n.then(d=>{var u;if(l!==this._requestIdPool||!this._widget){d.dispose();return}return(u=this._model)==null||u.dispose(),this._model=d,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(U(1080,"{0} ({1})",this._model.title,this._model.references.length));const h=this._editor.getModel().uri,g=new it(t.startLineNumber,t.startColumn),m=this._model.nearestReference(h,g);if(m)return this._widget.setSelection(m).then(()=>{this._widget&&this._editor.getOption(99)==="editor"&&this._widget.focusOnPreviewEditor()})}})},d=>{this._notificationService.error(d)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(t){if(!this._editor.hasModel()||!this._model||!this._widget)return;const n=this._widget.position;if(!n)return;const r=this._model.nearestReference(this._editor.getModel().uri,n);if(!r)return;const o=this._model.nextOrPreviousReference(r,t),s=this._editor.hasTextFocus(),a=this._widget.isPreviewEditorFocused();await this._widget.setSelection(o),await this._gotoReference(o,!1),s?this._editor.focus():this._widget&&a&&this._widget.focusOnPreviewEditor()}async revealReference(t){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(t)}closeWidget(t=!0){var n,r;(n=this._widget)==null||n.dispose(),(r=this._model)==null||r.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,t&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(t,n){var o;(o=this._widget)==null||o.hide(),this._ignoreModelChangeEvent=!0;const r=Ee.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:r,selectionSource:"code.jump",pinned:n}},this._editor).then(s=>{if(this._ignoreModelChangeEvent=!1,!s||!this._widget){this.closeWidget();return}if(this._editor===s)this._widget.show(r),this._widget.focusOnReferenceTree();else{const a=bhe.get(s),l=this._model.clone();this.closeWidget(),s.focus(),a==null||a.toggleWidget(r,Fd(d=>Promise.resolve(l)),this._peekMode??!1)}},s=>{this._ignoreModelChangeEvent=!1,zi(s)})}openReference(t,n,r){n||this.closeWidget();const{uri:o,range:s}=t;this._editorService.openCodeEditor({resource:o,options:{selection:s,selectionSource:"code.jump",pinned:r}},this._editor,n)}},bhe=WD,WD.ID="editor.contrib.referencesController",WD);QR=bhe=tbo([TP(2,Qi),TP(3,yo),TP(4,ic),TP(5,Yn),TP(6,Bg),TP(7,ar)],QR);function MI(e,t){const n=$Bn(e);if(!n)return;const r=QR.get(n);r&&t(r)}Nu.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Uc(2089,60),when:Ft.or(II,b1.inPeekEditor),handler(e){MI(e,t=>{t.changeFocusBetweenPreviewAndReferences()})}});Nu.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:Ft.or(II,b1.inPeekEditor),handler(e){MI(e,t=>{t.goToNextOrPreviousReference(!0)})}});Nu.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:Ft.or(II,b1.inPeekEditor),handler(e){MI(e,t=>{t.goToNextOrPreviousReference(!1)})}});co.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");co.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");co.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");co.registerCommand("closeReferenceSearch",e=>MI(e,t=>t.closeWidget()));Nu.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:Ft.and(b1.inPeekEditor,Ft.not("config.editor.stablePeek"))});Nu.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:Ft.and(II,Ft.not("config.editor.stablePeek"),Ft.or($e.editorTextFocus,unt.negate()))});Nu.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:Ft.and(II,fRn,mnt.negate(),knt.negate()),handler(e){var r;const n=(r=e.get(_A).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(n)&&n[0]instanceof G8&&MI(e,o=>o.revealReference(n[0]))}});Nu.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:Ft.and(II,fRn,mnt.negate(),knt.negate()),handler(e){var r;const n=(r=e.get(_A).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(n)&&n[0]instanceof G8&&MI(e,o=>o.openReference(n[0],!0,!0))}});co.registerCommand("openReference",e=>{var r;const n=(r=e.get(_A).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(n)&&n[0]instanceof G8&&MI(e,o=>o.openReference(n[0],!1,!0))});var bRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},WG=function(e,t){return function(n,r){t(n,r,e)}};const wnt=new yn("hasSymbols",!1,U(1095,"Whether there are symbol locations that can be navigated via keyboard-only.")),D3e=Cr("ISymbolNavigationService");let AWe=class{constructor(t,n,r,o){this._editorService=n,this._notificationService=r,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=wnt.bindTo(t)}reset(){var t,n;this._ctxHasSymbols.reset(),(t=this._currentState)==null||t.dispose(),(n=this._currentMessage)==null||n.close(),this._currentModel=void 0,this._currentIdx=-1}put(t){const n=t.parent.parent;if(n.references.length<=1){this.reset();return}this._currentModel=n,this._currentIdx=n.references.indexOf(t),this._ctxHasSymbols.set(!0),this._showMessage();const r=new pWe(this._editorService),o=r.onDidChange(s=>{if(this._ignoreEditorChange)return;const a=this._editorService.getActiveCodeEditor();if(!a)return;const l=a.getModel(),d=a.getPosition();if(!l||!d)return;let u=!1,h=!1;for(const g of n.references)if(C6(g.uri,l.uri))u=!0,h=h||Ee.containsPosition(g.range,d);else if(u)break;(!u||!h)&&this.reset()});this._currentState=G4(r,o)}revealNext(t){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{selection:Ee.collapseToStart(n.range),selectionRevealType:3}},t).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var r;(r=this._currentMessage)==null||r.close();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),n=t?U(1096,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):U(1097,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(n)}};AWe=bRn([WG(0,Qi),WG(1,yo),WG(2,ic),WG(3,Do)],AWe);zr(D3e,AWe,1);On(new class extends $d{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:wnt,kbOpts:{weight:100,primary:70}})}runEditorCommand(e,t){return e.get(D3e).revealNext(t)}});Nu.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:wnt,primary:9,handler(e){e.get(D3e).reset()}});let pWe=class{constructor(t){this._listener=new Map,this._disposables=new xt,this._onDidChange=new at,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),us(this._listener.values())}_onDidAddEditor(t){this._listener.set(t,G4(t.onDidChangeCursorPosition(n=>this._onDidChange.fire({editor:t})),t.onDidChangeModelContent(n=>this._onDidChange.fire({editor:t}))))}_onDidRemoveEditor(t){var n;(n=this._listener.get(t))==null||n.dispose(),this._listener.delete(t)}};pWe=bRn([WG(0,yo)],pWe);function bWe(e,t){return t.uri.scheme===e.uri.scheme?!0:!nNe(t.uri,Ci.walkThroughSnippet,Ci.vscodeChatCodeBlock,Ci.vscodeChatCodeCompareBlock)}async function tre(e,t,n,r,o){const a=n.ordered(e,r).map(d=>Promise.resolve(o(d,e,t)).then(void 0,u=>{Nc(u)})),l=await Promise.all(a);return P3(l.flat()).filter(d=>bWe(e,d))}function nre(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideDefinition(a,l,o))}function Ont(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideDeclaration(a,l,o))}function ynt(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideImplementation(a,l,o))}function Cnt(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideTypeDefinition(a,l,o))}function ire(e,t,n,r,o,s){return tre(t,n,e,o,async(a,l,d)=>{var g,m;const u=(g=await a.provideReferences(l,d,{includeDeclaration:!0},s))==null?void 0:g.filter(v=>bWe(l,v));if(!r||!u||u.length!==2)return u;const h=(m=await a.provideReferences(l,d,{includeDeclaration:!1},s))==null?void 0:m.filter(v=>bWe(l,v));return h&&h.length===1?h:u})}async function iC(e){const t=await e(),n=new B0(t,""),r=n.references.map(o=>o.link);return n.dispose(),r}_1("_executeDefinitionProvider",(e,t,n)=>{const r=e.get(Nn),o=nre(r.definitionProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeDefinitionProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=nre(r.definitionProvider,t,n,!0,Er.None);return iC(()=>o)});_1("_executeTypeDefinitionProvider",(e,t,n)=>{const r=e.get(Nn),o=Cnt(r.typeDefinitionProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeTypeDefinitionProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=Cnt(r.typeDefinitionProvider,t,n,!0,Er.None);return iC(()=>o)});_1("_executeDeclarationProvider",(e,t,n)=>{const r=e.get(Nn),o=Ont(r.declarationProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeDeclarationProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=Ont(r.declarationProvider,t,n,!0,Er.None);return iC(()=>o)});_1("_executeReferenceProvider",(e,t,n)=>{const r=e.get(Nn),o=ire(r.referenceProvider,t,n,!1,!1,Er.None);return iC(()=>o)});_1("_executeReferenceProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=ire(r.referenceProvider,t,n,!1,!0,Er.None);return iC(()=>o)});_1("_executeImplementationProvider",(e,t,n)=>{const r=e.get(Nn),o=ynt(r.implementationProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeImplementationProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=ynt(r.implementationProvider,t,n,!0,Er.None);return iC(()=>o)});Iu.appendMenuItem(Wn.EditorContext,{submenu:Wn.EditorContextPeek,title:U(1038,"Peek"),group:"navigation",order:100});class wV{static is(t){return!t||typeof t!="object"?!1:!!(t instanceof wV||it.isIPosition(t.position)&&t.model)}constructor(t,n){this.model=t,this.position=n}}const l4=class l4 extends Op{static all(){return l4._allSymbolNavigationCommands.values()}static _patchConfig(t){const n={...t,f1:!0};if(n.menu)for(const r of to.wrap(n.menu))(r.id===Wn.EditorContext||r.id===Wn.EditorContextPeek)&&(r.when=Ft.and(t.precondition,r.when));return n}constructor(t,n){super(l4._patchConfig(n)),this.configuration=t,l4._allSymbolNavigationCommands.set(n.id,this)}runEditorCommand(t,n,r,o){if(!n.hasModel())return Promise.resolve(void 0);const s=t.get(ic),a=t.get(yo),l=t.get(V8),d=t.get(D3e),u=t.get(Nn),h=t.get(Yn),g=n.getModel(),m=n.getPosition(),v=wV.is(r)?r:new wV(g,m),f=new z8(n,5),k=YW(this._getLocationModel(u,v.model,v.position,f.token),f.token).then(async A=>{var w;if(!A||f.token.isCancellationRequested)return;um(A.ariaMessage);let p;if(A.referenceAt(g.uri,m)){const O=this._getAlternativeCommand(n);O!==void 0&&!l4._activeAlternativeCommands.has(O)&&l4._allSymbolNavigationCommands.has(O)&&(p=l4._allSymbolNavigationCommands.get(O))}const b=A.references.length;if(b===0){if(!this.configuration.muteMessage){const O=g.getWordAtPosition(m);(w=D0.get(n))==null||w.showMessage(this._getNoResultFoundMessage(O),m)}}else if(b===1&&p)l4._activeAlternativeCommands.add(this.desc.id),h.invokeFunction(O=>p.runEditorCommand(O,n,r,o).finally(()=>{l4._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(a,d,n,A,o)},A=>{s.error(A)}).finally(()=>{f.dispose()});return l.showWhile(k,250),k}async _onResult(t,n,r,o,s){const a=this._getGoToPreference(r);if(!(r instanceof X8)&&(this.configuration.openInPeek||a==="peek"&&o.references.length>1))this._openInPeek(r,o,s);else{const l=o.firstReference(),d=o.references.length>1&&a==="gotoAndPeek",u=await this._openReference(r,t,l,this.configuration.openToSide,!d);d&&u?this._openInPeek(u,o,s):o.dispose(),a==="goto"&&n.put(l)}}async _openReference(t,n,r,o,s){let a;if(Dco(r)&&(a=r.targetSelectionRange),a||(a=r.range),!a)return;const l=await n.openCodeEditor({resource:r.uri,options:{selection:Ee.collapseToStart(a),selectionRevealType:3,selectionSource:"code.jump"}},t,o);if(l){if(s){const d=l.getModel(),u=l.createDecorationsCollection([{range:a,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{l.getModel()===d&&u.clear()},350)}return l}}_openInPeek(t,n,r){const o=QR.get(t);o&&t.hasModel()?o.toggleWidget(r??t.getSelection(),Fd(s=>Promise.resolve(n)),this.configuration.openInPeek):n.dispose()}};l4._allSymbolNavigationCommands=new Map,l4._activeAlternativeCommands=new Set;let Y8=l4;class rre extends Y8{async _getLocationModel(t,n,r,o){return new B0(await nre(t.definitionProvider,n,r,!1,o),U(1039,"Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?U(1040,"No definition found for '{0}'",t.word):U(1041,"No definition found")}_getAlternativeCommand(t){return t.getOption(67).alternativeDefinitionCommand}_getGoToPreference(t){return t.getOption(67).multipleDefinitions}}var K9;ys((K9=class extends rre{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:K9.id,title:{..._t(1065,"Go to Definition"),mnemonicTitle:U(1042,"Go to &&Definition")},precondition:$e.hasDefinitionProvider,keybinding:[{when:$e.editorTextFocus,primary:70,weight:100},{when:Ft.and($e.editorTextFocus,cRn),primary:2118,weight:100}],menu:[{id:Wn.EditorContext,group:"navigation",order:1.1},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),co.registerCommandAlias("editor.action.goToDeclaration",K9.id)}},K9.id="editor.action.revealDefinition",K9));var J9;ys((J9=class extends rre{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:J9.id,title:_t(1066,"Open Definition to the Side"),precondition:Ft.and($e.hasDefinitionProvider,$e.isInEmbeddedEditor.toNegated()),keybinding:[{when:$e.editorTextFocus,primary:Uc(2089,70),weight:100},{when:Ft.and($e.editorTextFocus,cRn),primary:Uc(2089,2118),weight:100}]}),co.registerCommandAlias("editor.action.openDeclarationToTheSide",J9.id)}},J9.id="editor.action.revealDefinitionAside",J9));var e6;ys((e6=class extends rre{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e6.id,title:_t(1067,"Peek Definition"),precondition:Ft.and($e.hasDefinitionProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),keybinding:{when:$e.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:Wn.EditorContextPeek,group:"peek",order:2}}),co.registerCommandAlias("editor.action.previewDeclaration",e6.id)}},e6.id="editor.action.peekDefinition",e6));class wRn extends Y8{async _getLocationModel(t,n,r,o){return new B0(await Ont(t.declarationProvider,n,r,!1,o),U(1043,"Declarations"))}_getNoResultFoundMessage(t){return t&&t.word?U(1044,"No declaration found for '{0}'",t.word):U(1045,"No declaration found")}_getAlternativeCommand(t){return t.getOption(67).alternativeDeclarationCommand}_getGoToPreference(t){return t.getOption(67).multipleDeclarations}}var VD;ys((VD=class extends wRn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:VD.id,title:{..._t(1068,"Go to Declaration"),mnemonicTitle:U(1046,"Go to &&Declaration")},precondition:Ft.and($e.hasDeclarationProvider,$e.isInEmbeddedEditor.toNegated()),menu:[{id:Wn.EditorContext,group:"navigation",order:1.3},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(t){return t&&t.word?U(1047,"No declaration found for '{0}'",t.word):U(1048,"No declaration found")}},VD.id="editor.action.revealDeclaration",VD));ys(class extends wRn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:_t(1069,"Peek Declaration"),precondition:Ft.and($e.hasDeclarationProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),menu:{id:Wn.EditorContextPeek,group:"peek",order:3}})}});class ORn extends Y8{async _getLocationModel(t,n,r,o){return new B0(await Cnt(t.typeDefinitionProvider,n,r,!1,o),U(1049,"Type Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?U(1050,"No type definition found for '{0}'",t.word):U(1051,"No type definition found")}_getAlternativeCommand(t){return t.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(t){return t.getOption(67).multipleTypeDefinitions}}var zD;ys((zD=class extends ORn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:zD.ID,title:{..._t(1070,"Go to Type Definition"),mnemonicTitle:U(1052,"Go to &&Type Definition")},precondition:$e.hasTypeDefinitionProvider,keybinding:{when:$e.editorTextFocus,primary:0,weight:100},menu:[{id:Wn.EditorContext,group:"navigation",order:1.4},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},zD.ID="editor.action.goToTypeDefinition",zD));var HD;ys((HD=class extends ORn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:HD.ID,title:_t(1071,"Peek Type Definition"),precondition:Ft.and($e.hasTypeDefinitionProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),menu:{id:Wn.EditorContextPeek,group:"peek",order:4}})}},HD.ID="editor.action.peekTypeDefinition",HD));class yRn extends Y8{async _getLocationModel(t,n,r,o){return new B0(await ynt(t.implementationProvider,n,r,!1,o),U(1053,"Implementations"))}_getNoResultFoundMessage(t){return t&&t.word?U(1054,"No implementation found for '{0}'",t.word):U(1055,"No implementation found")}_getAlternativeCommand(t){return t.getOption(67).alternativeImplementationCommand}_getGoToPreference(t){return t.getOption(67).multipleImplementations}}var $D;ys(($D=class extends yRn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:$D.ID,title:{..._t(1072,"Go to Implementations"),mnemonicTitle:U(1056,"Go to &&Implementations")},precondition:$e.hasImplementationProvider,keybinding:{when:$e.editorTextFocus,primary:2118,weight:100},menu:[{id:Wn.EditorContext,group:"navigation",order:1.45},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},$D.ID="editor.action.goToImplementation",$D));var XD;ys((XD=class extends yRn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:XD.ID,title:_t(1073,"Peek Implementations"),precondition:Ft.and($e.hasImplementationProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),keybinding:{when:$e.editorTextFocus,primary:3142,weight:100},menu:{id:Wn.EditorContextPeek,group:"peek",order:5}})}},XD.ID="editor.action.peekImplementation",XD));class CRn extends Y8{_getNoResultFoundMessage(t){return t?U(1057,"No references found for '{0}'",t.word):U(1058,"No references found")}_getAlternativeCommand(t){return t.getOption(67).alternativeReferenceCommand}_getGoToPreference(t){return t.getOption(67).multipleReferences}}ys(class extends CRn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{..._t(1074,"Go to References"),mnemonicTitle:U(1059,"Go to &&References")},precondition:Ft.and($e.hasReferenceProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),keybinding:{when:$e.editorTextFocus,primary:1094,weight:100},menu:[{id:Wn.EditorContext,group:"navigation",order:1.45},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(t,n,r,o){return new B0(await ire(t.referenceProvider,n,r,!0,!1,o),U(1060,"References"))}});ys(class extends CRn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:_t(1075,"Peek References"),precondition:Ft.and($e.hasReferenceProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),menu:{id:Wn.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(t,n,r,o){return new B0(await ire(t.referenceProvider,n,r,!1,!1,o),U(1061,"References"))}});class nbo extends Y8{constructor(t,n,r){super(t,{id:"editor.action.goToLocation",title:_t(1076,"Go to Any Symbol"),precondition:Ft.and(b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated())}),this._references=n,this._gotoMultipleBehaviour=r}async _getLocationModel(t,n,r,o){return new B0(this._references,U(1062,"Locations"))}_getNoResultFoundMessage(t){return t&&U(1063,"No results for '{0}'",t.word)||""}_getGoToPreference(t){return this._gotoMultipleBehaviour??t.getOption(67).multipleReferences}_getAlternativeCommand(){}}co.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:vi},{name:"position",description:"The position at which to start",constraint:it.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(e,t,n,r,o,s,a)=>{Oo(vi.isUri(t)),Oo(it.isIPosition(n)),Oo(Array.isArray(r)),Oo(typeof o>"u"||typeof o=="string"),Oo(typeof a>"u"||typeof a=="boolean");const l=e.get(yo),d=await l.openCodeEditor({resource:t},l.getFocusedCodeEditor());if(C3(d))return d.setPosition(n),d.revealPositionInCenterIfOutsideViewport(n,0),d.invokeWithinContext(u=>{const h=new class extends nbo{_getNoResultFoundMessage(g){return s||super._getNoResultFoundMessage(g)}}({muteMessage:!s,openInPeek:!!a,openToSide:!1},r,o);u.get(Yn).invokeFunction(h.run.bind(h),d)})}});co.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:vi},{name:"position",description:"The position at which to start",constraint:it.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(e,t,n,r,o)=>{e.get(ba).executeCommand("editor.action.goToLocations",t,n,r,o,void 0,!0)}});co.registerCommand({id:"editor.action.findReferences",handler:(e,t,n)=>{Oo(vi.isUri(t)),Oo(it.isIPosition(n));const r=e.get(Nn),o=e.get(yo);return o.openCodeEditor({resource:t},o.getFocusedCodeEditor()).then(s=>{if(!C3(s)||!s.hasModel())return;const a=QR.get(s);if(!a)return;const l=Fd(u=>ire(r.referenceProvider,s.getModel(),it.lift(n),!1,!1,u).then(h=>new B0(h,U(1064,"References")))),d=new Ee(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(a.toggleWidget(d,l,!1))})}});co.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function ibo(e,t,n,r){const o=e.get(Dg),s=e.get(S2),a=e.get(ba),l=e.get(Yn),d=e.get(ic);if(await r.item.resolve(Er.None),!r.part.location)return;const u=r.part.location,h=[],g=new Set(Iu.getMenuItems(Wn.EditorContext).map(v=>LU(v)?v.command.id:SI()));for(const v of Y8.all())g.has(v.desc.id)&&h.push(new n2(v.desc.id,i2.label(v.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const f=await o.createModelReference(u.uri);try{const k=new wV(f.object.textEditorModel,Ee.getStartPosition(u.range)),A=r.item.anchor.range;await l.invokeFunction(v.runEditorCommand.bind(v),t,k,A)}finally{f.dispose()}}));if(r.part.command){const{command:v}=r.part;h.push(new pd),h.push(new n2(v.id,v.title,void 0,!0,async()=>{try{await a.executeCommand(v.id,...v.arguments??[])}catch(f){d.notify({severity:iH.Error,source:r.item.provider.displayName,message:f})}}))}const m=t.getOption(144);s.showContextMenu({domForShadowRoot:m?t.getDomNode()??void 0:void 0,getAnchor:()=>{const v=Kl(n);return{x:v.left,y:v.top+v.height+8}},getActions:()=>h,onHide:()=>{t.focus()},autoSelectFirstItem:!0})}async function _Rn(e,t,n,r){const s=await e.get(Dg).createModelReference(r.uri);await n.invokeWithinContext(async a=>{const l=t.hasSideBySideModifier,d=a.get(Qi),u=b1.inPeekEditor.getValue(d),h=!l&&n.getOption(101)&&!u;return new rre({openToSide:l,openInPeek:h,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(a,new wV(s.object.textEditorModel,Ee.getStartPosition(r.range)),Ee.lift(r.range))}),s.dispose()}var rbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},QP=function(e,t){return function(n,r){t(n,r,e)}},DF;class g0e{constructor(){this._entries=new wp(50)}get(t){const n=g0e._key(t);return this._entries.get(n)}set(t,n){const r=g0e._key(t);this._entries.set(r,n)}static _key(t){return`${t.uri.toString()}/${t.getVersionId()}`}}const SRn=Cr("IInlayHintsCache");zr(SRn,g0e,1);class wWe{constructor(t,n){this.item=t,this.index=n}get part(){const t=this.item.hint.label;return typeof t=="string"?{label:t}:t[this.index]}}class obo{constructor(t,n){this.part=t,this.hasTriggerModifier=n}}class sbo{constructor(){this._store=new ts,this._tokenSource=new ja}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new ja,this._store.value=new xt,{store:this._store.value,token:this._tokenSource.token}}}var zS;let YJ=(zS=class{static get(t){return t.getContribution(DF.ID)??void 0}constructor(t,n,r,o,s,a,l){this._editor=t,this._languageFeaturesService=n,this._inlayHintsCache=o,this._commandService=s,this._notificationService=a,this._instaService=l,this._disposables=new xt,this._sessionDisposables=new xt,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new Yme(this._editor)),this._debounceInfo=r.for(n.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(n.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(t.onDidChangeModel(()=>this._update())),this._disposables.add(t.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(t.onDidChangeConfiguration(d=>{d.hasChanged(159)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const t=this._editor.getOption(159);if(t.enabled==="off")return;const n=this._editor.getModel();if(!n||!this._languageFeaturesService.inlayHintsProvider.has(n))return;if(t.enabled==="on")this._activeRenderMode=0;else{let u,h;t.enabled==="onUnlessPressed"?(u=0,h=1):(u=1,h=0),this._activeRenderMode=u,this._sessionDisposables.add(TS.getInstance().event(g=>{if(!this._editor.hasModel())return;const m=g.altKey&&g.ctrlKey&&!(g.shiftKey||g.metaKey)?h:u;if(m!==this._activeRenderMode){this._activeRenderMode=m;const v=this._editor.getModel(),f=this._copyInlayHintsWithCurrentAnchor(v);this._updateHintsDecorators([v.getFullModelRange()],f),l.schedule(0)}}))}const r=this._inlayHintsCache.get(n);r&&this._updateHintsDecorators([n.getFullModelRange()],r),this._sessionDisposables.add(Hn(()=>{n.isDisposed()||this._cacheHintsForFastRestore(n)}));let o;const s=new Set;this._sessionDisposables.add(n.onWillDispose(()=>o==null?void 0:o.cancel()));const a=this._sessionDisposables.add(new sbo),l=new Es(async()=>{const u=Date.now(),{store:h,token:g}=a.reset();try{const m=await t0e.create(this._languageFeaturesService.inlayHintsProvider,n,this._getHintsRanges(),g);if(l.delay=this._debounceInfo.update(n,Date.now()-u),g.isCancellationRequested){m.dispose();return}for(const v of m.provider)typeof v.onDidChangeInlayHints=="function"&&!s.has(v)&&(s.add(v),h.add(v.onDidChangeInlayHints(()=>{l.isScheduled()||l.schedule()})));h.add(m),this._updateHintsDecorators(m.ranges,m.items),this._cacheHintsForFastRestore(n)}catch(m){zi(m)}},this._debounceInfo.get(n));this._sessionDisposables.add(l),l.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(u=>{(u.scrollTopChanged||!l.isScheduled())&&l.schedule()}));const d=this._sessionDisposables.add(new ts);this._sessionDisposables.add(this._editor.onDidChangeModelContent(u=>{const h=Math.max(l.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+h},d.value=B8(()=>l.schedule(0),h),l.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration(u=>{u.hasChanged(159)&&l.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>l.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const t=new xt,n=t.add(new y3e(this._editor)),r=new xt;return t.add(r),t.add(n.onMouseMoveOrRelevantKeyDown(o=>{const[s]=o,a=this._getInlayHintLabelPart(s),l=this._editor.getModel();if(!a||!l){r.clear();return}const d=new ja;r.add(Hn(()=>d.dispose(!0))),a.item.resolve(d.token),this._activeInlayHintPart=a.part.command||a.part.location?new obo(a,s.hasTriggerModifier):void 0;const u=l.validatePosition(a.item.hint.position).lineNumber,h=new Ee(u,1,u,l.getLineMaxColumn(u)),g=this._getInlineHintsForRange(h);this._updateHintsDecorators([h],g),r.add(Hn(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([h],g)}))})),t.add(n.onCancel(()=>r.clear())),t.add(n.onExecute(async o=>{const s=this._getInlayHintLabelPart(o);if(s){const a=s.part;a.location?this._instaService.invokeFunction(_Rn,o,this._editor,a.location):JNe.is(a.command)&&await this._invokeCommand(a.command,s.item)}})),t}_getInlineHintsForRange(t){const n=new Set;for(const r of this._decorationsMetadata.values())t.containsRange(r.item.anchor.range)&&n.add(r.item);return Array.from(n)}_installDblClickGesture(t){return this._editor.onMouseUp(async n=>{if(n.event.detail!==2)return;const r=this._getInlayHintLabelPart(n);if(r&&(n.event.preventDefault(),await r.item.resolve(Er.None),yg(r.item.hint.textEdits))){const o=r.item.hint.textEdits.map(s=>$l.replace(Ee.lift(s.range),s.text));this._editor.executeEdits("inlayHint.default",o),t()}})}_installContextMenu(){return this._editor.onContextMenu(async t=>{if(!ec(t.event.target))return;const n=this._getInlayHintLabelPart(t);n&&await this._instaService.invokeFunction(ibo,this._editor,t.event.target,n)})}_getInlayHintLabelPart(t){var r;if(t.target.type!==6)return;const n=(r=t.target.detail.injectedText)==null?void 0:r.options;if(n instanceof T6&&(n==null?void 0:n.attachedData)instanceof wWe)return n.attachedData}async _invokeCommand(t,n){try{await this._commandService.executeCommand(t.id,...t.arguments??[])}catch(r){this._notificationService.notify({severity:iH.Error,source:n.provider.displayName,message:r})}}_cacheHintsForFastRestore(t){const n=this._copyInlayHintsWithCurrentAnchor(t);this._inlayHintsCache.set(t,n)}_copyInlayHintsWithCurrentAnchor(t){const n=new Map;for(const[r,o]of this._decorationsMetadata){if(n.has(o.item))continue;const s=t.getDecorationRange(r);if(s){const a=new zBn(s,o.item.anchor.direction),l=o.item.with({anchor:a});n.set(o.item,l)}}return Array.from(n.values())}_getHintsRanges(){const n=this._editor.getModel(),r=this._editor.getVisibleRangesPlusViewportAboveBelow(),o=[];for(const s of r.sort(Ee.compareRangesUsingStarts)){const a=n.validateRange(new Ee(s.startLineNumber-30,s.startColumn,s.endLineNumber+30,s.endColumn));o.length===0||!Ee.areIntersectingOrTouching(o[o.length-1],a)?o.push(a):o[o.length-1]=Ee.plusRange(o[o.length-1],a)}return o}_updateHintsDecorators(t,n){var A,p;const r=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&t.some(b=>b.containsPosition(this._cursorInfo.position))){const{position:b}=this._cursorInfo;this._cursorInfo=void 0;const w=new Map;for(const _ of this._editor.getLineDecorations(b.lineNumber)??[]){const S=this._decorationsMetadata.get(_.id);if(_.range.startColumn>b.column)continue;const L=S==null?void 0:S.decoration.options[S.item.anchor.direction];if(L&&L.attachedData!==DF._whitespaceData){const E=w.get(S.item)??0;w.set(S.item,E+L.content.length)}}const O=n.filter(_=>_.anchor.range.startLineNumber===b.lineNumber&&_.anchor.range.endColumn<=b.column),y=Array.from(w.values());let C;for(;;){const _=O.shift(),S=y.shift();if(!S&&!_)break;if(_)r.set(_,S??0),C=_;else if(C&&S){let L=r.get(C);L+=S,L+=y.reduce((E,T)=>E+T,0),y.length=0;break}}}const o=[],s=(b,w,O,y,C)=>{const _={content:O,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:w.className,cursorStops:y,attachedData:C};o.push({item:b,classNameRef:w,decoration:{range:b.anchor.range,options:{description:"InlayHint",showIfCollapsed:b.anchor.range.isEmpty(),collapseOnReplaceEdit:!b.anchor.range.isEmpty(),stickiness:0,[b.anchor.direction]:this._activeRenderMode===0?_:void 0}}})},a=(b,w)=>{const O=this._ruleFactory.createClassNameRef({width:`${l/3|0}px`,display:"inline-block"});s(b,O," ",w?Bv.Right:Bv.None,DF._whitespaceData)},{fontSize:l,fontFamily:d,padding:u,isUniform:h}=this._getLayoutInfo(),g=this._editor.getOption(159).maximumLength,m="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(m,d);let v={line:0,totalLen:0};for(let b=0;bg)continue;w.hint.paddingLeft&&a(w,!1);const O=typeof w.hint.label=="string"?[{label:w.hint.label}]:w.hint.label,y=r.get(w);let C=0;for(let _=0;_0&&(D=D.slice(0,-Q)+"…",P=!0),C+=D.length,y!==void 0){const M=C-y;M>=0&&(C-=M,D=D.slice(0,-(1+M))+"…",P=!0)}if(u&&(L&&(E||P)?(T.padding=`1px ${Math.max(1,l/4)|0}px`,T.borderRadius=`${l/4|0}px`):L?(T.padding=`1px 0 1px ${Math.max(1,l/4)|0}px`,T.borderRadius=`${l/4|0}px 0 0 ${l/4|0}px`):E||P?(T.padding=`1px ${Math.max(1,l/4)|0}px 1px 0`,T.borderRadius=`0 ${l/4|0}px ${l/4|0}px 0`):T.padding="1px 0 1px 0"),s(w,this._ruleFactory.createClassNameRef(T),abo(D),E&&!w.hint.paddingRight?Bv.Right:Bv.None,new wWe(w,_)),P)break}if(y!==void 0&&CDF._MAX_DECORATORS)break}const f=[];for(const[b,w]of this._decorationsMetadata){const O=(p=this._editor.getModel())==null?void 0:p.getDecorationRange(b);O&&t.some(y=>y.containsRange(O))&&(f.push(b),w.classNameRef.dispose(),this._decorationsMetadata.delete(b))}const k=O3.capture(this._editor);this._editor.changeDecorations(b=>{const w=b.deltaDecorations(f,o.map(O=>O.decoration));for(let O=0;Or)&&(s=r);const a=t.fontFamily||o;return{fontSize:s,fontFamily:a,padding:n,isUniform:!n&&a===o&&s===r}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const t of this._decorationsMetadata.values())t.classNameRef.dispose();this._decorationsMetadata.clear()}},DF=zS,zS.ID="editor.contrib.InlayHints",zS._MAX_DECORATORS=1500,zS._whitespaceData={},zS);YJ=DF=rbo([QP(1,Nn),QP(2,CA),QP(3,SRn),QP(4,ba),QP(5,ic),QP(6,Yn)],YJ);function abo(e){return e.replace(/[ \t]/g," ")}co.registerCommand("_executeInlayHintProvider",async(e,...t)=>{const[n,r]=t;Oo(vi.isUri(n)),Oo(Ee.isIRange(r));const{inlayHintsProvider:o}=e.get(Nn),s=await e.get(Dg).createModelReference(n);try{const a=await t0e.create(o,s.object.textEditorModel,[Ee.lift(r)],Er.None),l=a.items.map(d=>d.hint);return setTimeout(()=>a.dispose(),0),l}finally{s.dispose()}});var lbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},b7=function(e,t){return function(n,r){t(n,r,e)}};class Dyt extends jG{constructor(t,n,r,o){super(10,n,t.item.anchor.range,r,o,!0),this.part=t}}let m0e=class extends zJ{constructor(t,n,r,o,s,a,l,d){super(t,n,s,l,r,o,d),this._resolverService=a,this.hoverOrdinal=6}suggestHoverAnchor(t){var o;if(!YJ.get(this._editor)||t.target.type!==6)return null;const r=(o=t.target.detail.injectedText)==null?void 0:o.options;return r instanceof T6&&r.attachedData instanceof wWe?new Dyt(r.attachedData,this,t.event.posx,t.event.posy):null}computeSync(){return[]}computeAsync(t,n,r,o){return t instanceof Dyt?new Yv(async s=>{const{part:a}=t;if(await a.item.resolve(o),o.isCancellationRequested)return;let l;typeof a.item.hint.tooltip=="string"?l=new bf().appendText(a.item.hint.tooltip):a.item.hint.tooltip&&(l=a.item.hint.tooltip),l&&s.emitOne(new I4(this,t.range,[l],!1,0)),yg(a.item.hint.textEdits)&&s.emitOne(new I4(this,t.range,[new bf().appendText(U(1164,"Double-click to insert"))],!1,10001));let d;if(typeof a.part.tooltip=="string"?d=new bf().appendText(a.part.tooltip):a.part.tooltip&&(d=a.part.tooltip),d&&s.emitOne(new I4(this,t.range,[d],!1,1)),a.part.location||a.part.command){let h;const m=this._editor.getOption(86)==="altKey"?Tr?U(1165,"cmd + click"):U(1166,"ctrl + click"):Tr?U(1167,"option + click"):U(1168,"alt + click");a.part.location&&a.part.command?h=new bf().appendText(U(1169,"Go to Definition ({0}), right click for more",m)):a.part.location?h=new bf().appendText(U(1170,"Go to Definition ({0})",m)):a.part.command&&(h=new bf(`[${U(1171,"Execute Command")}](${Q4o(a.part.command)} "${a.part.command.title}") (${m})`,{isTrusted:!0})),h&&s.emitOne(new I4(this,t.range,[h],!1,1e4))}const u=this._resolveInlayHintLabelPartHover(a,o);for await(const h of u)s.emitOne(h)}):Yv.EMPTY}async*_resolveInlayHintLabelPartHover(t,n){if(!t.part.location)return;const{uri:r,range:o}=t.part.location,s=await this._resolverService.createModelReference(r);try{const a=s.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(a))return;for await(const l of ent(this._languageFeaturesService.hoverProvider,a,new it(o.startLineNumber,o.startColumn),n))fV(l.hover.contents)||(yield new I4(this,t.item.anchor.range,l.hover.contents,!1,2+l.ordinal))}finally{s.dispose()}}};m0e=lbo([b7(1,Cp),b7(2,Do),b7(3,pm),b7(4,ar),b7(5,Dg),b7(6,Nn),b7(7,ba)],m0e);var LRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},k0e=function(e,t){return function(n,r){t(n,r,e)}};class Byt{constructor(t,n,r){this.marker=t,this.index=n,this.total=r}}let OWe=class{constructor(t,n,r){this._markerService=n,this._configService=r,this._onDidChange=new at,this.onDidChange=this._onDidChange.event,this._dispoables=new xt,this._markers=[],this._nextIdx=-1,vi.isUri(t)?this._resourceFilter=l=>l.toString()===t.toString():t&&(this._resourceFilter=t);const o=this._configService.getValue("problems.sortOrder"),s=(l,d)=>{let u=jK(l.resource.toString(),d.resource.toString());return u===0&&(o==="position"?u=Ee.compareRangesUsingStarts(l,d)||xl.compare(l.severity,d.severity):u=xl.compare(l.severity,d.severity)||Ee.compareRangesUsingStarts(l,d)),u},a=()=>{let l=this._markerService.read({resource:vi.isUri(t)?t:void 0,severities:xl.Error|xl.Warning|xl.Info});return typeof t=="function"&&(l=l.filter(d=>this._resourceFilter(d.resource))),l.sort(s),Na(l,this._markers,(d,u)=>d.resource.toString()===u.resource.toString()&&d.startLineNumber===u.startLineNumber&&d.startColumn===u.startColumn&&d.endLineNumber===u.endLineNumber&&d.endColumn===u.endColumn&&d.severity===u.severity&&d.message===u.message)?!1:(this._markers=l,!0)};a(),this._dispoables.add(n.onMarkerChanged(l=>{(!this._resourceFilter||l.some(d=>this._resourceFilter(d)))&&a()&&(this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(t){return!this._resourceFilter&&!t?!0:!this._resourceFilter||!t?!1:this._resourceFilter(t)}get selected(){const t=this._markers[this._nextIdx];return t&&new Byt(t,this._nextIdx+1,this._markers.length)}_initIdx(t,n,r){let o=this._markers.findIndex(s=>C6(s.resource,t.uri));if(o<0)o=UJe(this._markers.length,s=>jK(this._markers[s].resource.toString(),t.uri.toString())),o<0&&(o=~o),r?this._nextIdx=o:this._nextIdx=(this._markers.length+o-1)%this._markers.length;else{let s=!1,a=!1;for(let l=o;lo.resource.toString()===t.toString());if(!(r<0)){for(;r=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DP=function(e,t){return function(n,r){t(n,r,e)}},_We;class dbo{constructor(t,n,r,o,s){this._openerService=o,this._labelService=s,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new xt,this._editor=n;const a=document.createElement("div");a.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),a.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),a.appendChild(this._relatedBlock),this._disposables.add(wc(this._relatedBlock,"click",l=>{l.preventDefault();const d=this._relatedDiagnostics.get(l.target);d&&r(d)})),this._scrollable=new $7n(a,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(l=>{a.style.left=`-${l.scrollLeft}px`,a.style.top=`-${l.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){us(this._disposables)}update(t){const{source:n,message:r,relatedInformation:o,code:s}=t;let a=((n==null?void 0:n.length)||0)+2;s&&(typeof s=="string"?a+=s.length:a+=s.value.length);const l=P0(r);this._lines=l.length,this._longestLineLength=0;for(const m of l)this._longestLineLength=Math.max(m.length+a,this._longestLineLength);uh(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(t)),this._editor.applyFontInfo(this._messageBlock);let d=this._messageBlock;for(const m of l)d=document.createElement("div"),d.innerText=m,m===""&&(d.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(d);if(n||s){const m=document.createElement("span");if(m.classList.add("details"),d.appendChild(m),n){const v=document.createElement("span");v.innerText=n,v.classList.add("source"),m.appendChild(v)}if(s)if(typeof s=="string"){const v=document.createElement("span");v.innerText=`(${s})`,v.classList.add("code"),m.appendChild(v)}else{this._codeLink=tn("a.code-link"),this._codeLink.setAttribute("href",`${s.target.toString()}`),this._codeLink.onclick=f=>{this._openerService.open(s.target,{allowCommands:!0}),f.preventDefault(),f.stopPropagation()};const v=Xt(this._codeLink,tn("span"));v.innerText=s.value,m.appendChild(this._codeLink)}}if(uh(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),yg(o)){const m=this._relatedBlock.appendChild(document.createElement("div"));m.style.paddingTop=`${Math.floor(this._editor.getOption(75)*.66)}px`,this._lines+=1;for(const v of o){const f=document.createElement("div"),k=document.createElement("a");k.classList.add("filename"),k.innerText=`${this._labelService.getUriBasenameLabel(v.resource)}(${v.startLineNumber}, ${v.startColumn}): `,k.title=this._labelService.getUriLabel(v.resource),this._relatedDiagnostics.set(k,v);const A=document.createElement("span");A.innerText=v.message,f.appendChild(k),f.appendChild(A),this._lines+=1,m.appendChild(f)}}const u=this._editor.getOption(59),h=Math.ceil(u.typicalFullwidthCharacterWidth*this._longestLineLength*.75),g=u.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:h,scrollHeight:g})}layout(t,n){this._scrollable.getDomNode().style.height=`${t}px`,this._scrollable.getDomNode().style.width=`${n}px`,this._scrollable.setScrollDimensions({width:n,height:t})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(t){let n="";switch(t.severity){case xl.Error:n=U(1024,"Error");break;case xl.Warning:n=U(1025,"Warning");break;case xl.Info:n=U(1026,"Info");break;case xl.Hint:n=U(1027,"Hint");break}let r=U(1028,"{0} at {1}. ",n,t.startLineNumber+":"+t.startColumn);const o=this._editor.getModel();return o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1&&(r=`${o.getLineContent(t.startLineNumber)}, ${r}`),r}}var GD;let ZJ=(GD=class extends i0e{constructor(t,n,r,o,s,a,l){super(t,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},s),this._themeService=n,this._openerService=r,this._menuService=o,this._contextKeyService=a,this._labelService=l,this._callOnDispose=new xt,this._onDidSelectRelatedInformation=new at,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=xl.Warning,this._backgroundColor=Dt.white,this._applyTheme(n.getColorTheme()),this._callOnDispose.add(n.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(t){this._backgroundColor=t.getColor(gbo);let n=SWe,r=ubo;this._severity===xl.Warning?(n=whe,r=hbo):this._severity===xl.Info&&(n=LWe,r=fbo);const o=t.getColor(n),s=t.getColor(r);this.style({arrowColor:o,frameColor:o,headerBackgroundColor:s,primaryHeadingColor:t.getColor(ZBn),secondaryHeadingColor:t.getColor(qBn)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(o=>this.editor.focus()));const n=this._menuService.getMenuActions(_We.TitleMenu,this._contextKeyService),r=Pko(n);this._actionbarWidget.push(r,{label:!1,icon:!0,index:0})}_fillTitleIcon(t){this._icon=Xt(t,tn(""))}_fillBody(t){this._parentContainer=t,t.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),t.appendChild(this._container),this._message=new dbo(this._container,this.editor,n=>this._onDidSelectRelatedInformation.fire(n),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(t,n,r){this._container.classList.remove("stale"),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getColorTheme());const o=Ee.lift(t),s=this.editor.getPosition(),a=s&&o.containsPosition(s)?s:o.getStartPosition();super.show(a,this.computeRequiredHeight());const l=this.editor.getModel();if(l){const d=r>1?U(1029,"{0} of {1} problems",n,r):U(1030,"{0} of {1} problem",n,r);this.setTitle(hA(l.uri),d)}this._icon.className=`codicon ${CWe.className(xl.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(a,0),this.editor.focus()}updateMarker(t){this._container.classList.remove("stale"),this._message.update(t)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(t,n){super._doLayoutBody(t,n),this._heightInPixel=t,this._message.layout(t,n),this._container.style.height=`${t}px`}_onWidth(t){this._message.layout(this._heightInPixel,t)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}},_We=GD,GD.TitleMenu=new Wn("gotoErrorTitleMenu"),GD);ZJ=_We=cbo([DP(1,Dl),DP(2,OL),DP(3,wA),DP(4,Yn),DP(5,Qi),DP(6,TR)],ZJ);const Ryt=nJ($be,Noo),Iyt=nJ(N8,iJ),Myt=nJ(Sy,rJ),SWe=Ve("editorMarkerNavigationError.background",{dark:Ryt,light:Ryt,hcDark:ro,hcLight:ro},U(1031,"Editor marker navigation widget error color.")),ubo=Ve("editorMarkerNavigationError.headerBackground",{dark:Zi(SWe,.1),light:Zi(SWe,.1),hcDark:null,hcLight:null},U(1032,"Editor marker navigation widget error heading background.")),whe=Ve("editorMarkerNavigationWarning.background",{dark:Iyt,light:Iyt,hcDark:ro,hcLight:ro},U(1033,"Editor marker navigation widget warning color.")),hbo=Ve("editorMarkerNavigationWarning.headerBackground",{dark:Zi(whe,.1),light:Zi(whe,.1),hcDark:"#0C141F",hcLight:Zi(whe,.2)},U(1034,"Editor marker navigation widget warning heading background.")),LWe=Ve("editorMarkerNavigationInfo.background",{dark:Myt,light:Myt,hcDark:ro,hcLight:ro},U(1035,"Editor marker navigation widget info color.")),fbo=Ve("editorMarkerNavigationInfo.headerBackground",{dark:Zi(LWe,.1),light:Zi(LWe,.1),hcDark:null,hcLight:null},U(1036,"Editor marker navigation widget info heading background.")),gbo=Ve("editorMarkerNavigation.background",Oc,U(1037,"Editor marker navigation widget background."));var mbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},ece=function(e,t){return function(n,r){t(n,r,e)}},VG,YD;let DR=(YD=class{static get(t){return t.getContribution(VG.ID)}constructor(t,n,r,o,s){this._markerNavigationService=n,this._contextKeyService=r,this._editorService=o,this._instantiationService=s,this._sessionDispoables=new xt,this._editor=t,this._widgetVisible=ERn.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(t){if(this._model&&this._model.matches(t))return this._model;let n=!1;return this._model&&(n=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(t),n&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(ZJ,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(r=>{var o,s,a;(!((o=this._model)!=null&&o.selected)||!Ee.containsPosition((s=this._model)==null?void 0:s.selected.marker,r.position))&&((a=this._model)==null||a.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const r=this._model.find(this._editor.getModel().uri,this._widget.position);r?this._widget.updateMarker(r.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(r=>{this._editorService.openCodeEditor({resource:r.resource,options:{pinned:!0,revealIfOpened:!0,selection:Ee.lift(r).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(t=!0){this._cleanUp(),t&&this._editor.focus()}showAtMarker(t){if(!this._editor.hasModel())return;const n=this._editor.getModel(),r=this._getOrCreateModel(n.uri);r.resetIndex(),r.move(!0,n,new it(t.startLineNumber,t.startColumn)),r.selected&&this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total)}async navigate(t,n){var s,a;if(!this._editor.hasModel())return;const r=this._editor.getModel(),o=this._getOrCreateModel(n?void 0:r.uri);if(o.move(t,r,this._editor.getPosition()),!!o.selected)if(o.selected.marker.resource.toString()!==r.uri.toString()){this._cleanUp();const l=await this._editorService.openCodeEditor({resource:o.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:o.selected.marker}},this._editor);l&&((s=VG.get(l))==null||s.close(),(a=VG.get(l))==null||a.navigate(t,n))}else this._widget.showAtMarker(o.selected.marker,o.selected.index,o.selected.total)}},VG=YD,YD.ID="editor.contrib.markerController",YD);DR=VG=mbo([ece(1,xRn),ece(2,Qi),ece(3,yo),ece(4,Yn)],DR);class B3e extends Bn{constructor(t,n,r){super(r),this._next=t,this._multiFile=n}async run(t,n){var r;n.hasModel()&&await((r=DR.get(n))==null?void 0:r.navigate(this._next,this._multiFile))}}const XT=class XT extends B3e{constructor(){super(!0,!1,{id:XT.ID,label:XT.LABEL,precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:578,weight:100},menuOpts:{menuId:ZJ.TitleMenu,title:XT.LABEL.value,icon:Da("marker-navigation-next",zt.arrowDown,U(1016,"Icon for goto next marker.")),group:"navigation",order:1}})}};XT.ID="editor.action.marker.next",XT.LABEL=_t(1020,"Go to Next Problem (Error, Warning, Info)");let v0e=XT;const GT=class GT extends B3e{constructor(){super(!1,!1,{id:GT.ID,label:GT.LABEL,precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:1602,weight:100},menuOpts:{menuId:ZJ.TitleMenu,title:GT.LABEL.value,icon:Da("marker-navigation-previous",zt.arrowUp,U(1017,"Icon for goto previous marker.")),group:"navigation",order:2}})}};GT.ID="editor.action.marker.prev",GT.LABEL=_t(1021,"Go to Previous Problem (Error, Warning, Info)");let xWe=GT;class kbo extends B3e{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:_t(1022,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:66,weight:100},menuOpts:{menuId:Wn.MenubarGoMenu,title:U(1018,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class vbo extends B3e{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:_t(1023,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:1090,weight:100},menuOpts:{menuId:Wn.MenubarGoMenu,title:U(1019,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}mo(DR.ID,DR,4);un(v0e);un(xWe);un(kbo);un(vbo);const ERn=new yn("markersNavigationVisible",!1),Abo=$d.bindToContribution(DR.get);On(new Abo({id:"closeMarkersNavigation",precondition:ERn,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:$e.focus,primary:9,secondary:[1033]}}));var pbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},wxe=function(e,t){return function(n,r){t(n,r,e)}};const $A=tn;class TRn{constructor(t,n,r){this.owner=t,this.range=n,this.marker=r}isValidForHoverAnchor(t){return t.type===1&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}const Pyt={type:1,filter:{include:Ma.QuickFix},triggerAction:j0.QuickFixHover};let EWe=class{constructor(t,n,r,o){this._editor=t,this._markerDecorationsService=n,this._openerService=r,this._languageFeaturesService=o,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(t,n){if(!this._editor.hasModel()||t.type!==1&&!t.supportsMarkerHover)return[];const r=this._editor.getModel(),o=t.range;if(!r.isValidRange(t.range))return[];const s=o.startLineNumber,a=r.getLineMaxColumn(s),l=[];for(const d of n){const u=d.range.startLineNumber===s?d.range.startColumn:1,h=d.range.endLineNumber===s?d.range.endColumn:a,g=this._markerDecorationsService.getMarker(r.uri,d);if(!g)continue;const m=new Ee(t.range.startLineNumber,u,t.range.startLineNumber,h);l.push(new TRn(this,m,g))}return l}renderHoverParts(t,n){if(!n.length)return new SR([]);const r=[];n.forEach(a=>{const l=this._renderMarkerHover(a);t.fragment.appendChild(l.hoverElement),r.push(l)});const o=n.length===1?n[0]:n.sort((a,l)=>xl.compare(a.marker.severity,l.marker.severity))[0],s=this._renderMarkerStatusbar(t,o);return new SR(r,s)}getAccessibleContent(t){return t.marker.message}_renderMarkerHover(t){const n=new xt,r=$A("div.hover-row"),o=Xt(r,$A("div.marker.hover-contents")),{source:s,message:a,code:l,relatedInformation:d}=t.marker;this._editor.applyFontInfo(o);const u=Xt(o,$A("span"));if(u.style.whiteSpace="pre-wrap",u.innerText=a,s||l)if(l&&typeof l!="string"){const g=$A("span");if(s){const k=Xt(g,$A("span"));k.innerText=s}const m=Xt(g,$A("a.code-link"));m.setAttribute("href",l.target.toString(!0)),n.add(wt(m,"click",k=>{this._openerService.open(l.target,{allowCommands:!0}),k.preventDefault(),k.stopPropagation()}));const v=Xt(m,$A("span"));v.innerText=l.value;const f=Xt(o,g);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{const g=Xt(o,$A("span"));g.style.opacity="0.6",g.style.paddingLeft="6px",g.innerText=s&&l?`${s}(${l})`:s||`(${l})`}if(yg(d))for(const{message:g,resource:m,startLineNumber:v,startColumn:f}of d){const k=Xt(o,$A("div"));k.style.marginTop="8px";const A=Xt(k,$A("a"));A.innerText=`${hA(m)}(${v}, ${f}): `,A.style.cursor="pointer",n.add(wt(A,"click",b=>{if(b.stopPropagation(),b.preventDefault(),this._openerService){const w={selection:{startLineNumber:v,startColumn:f}};this._openerService.open(m,{fromUserGesture:!0,editorOptions:w}).catch(zi)}}));const p=Xt(k,$A("span"));p.innerText=g,this._editor.applyFontInfo(p)}return{hoverPart:t,hoverElement:r,dispose:()=>n.dispose()}}_renderMarkerStatusbar(t,n){const r=new xt;if(n.marker.severity===xl.Error||n.marker.severity===xl.Warning||n.marker.severity===xl.Info){const o=DR.get(this._editor);o&&t.statusBar.addAction({label:U(1139,"View Problem"),commandId:v0e.ID,run:()=>{t.hide(),o.showAtMarker(n.marker),this._editor.focus()}})}if(!this._editor.getOption(104)){const o=t.statusBar.append($A("div"));this.recentMarkerCodeActionsInfo&&(Y1e.makeKey(this.recentMarkerCodeActionsInfo.marker)===Y1e.makeKey(n.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(o.textContent=U(1140,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const s=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?ft.None:B8(()=>o.textContent=U(1141,"Checking for quick fixes..."),200,r);o.textContent||(o.textContent=" ");const a=this.getCodeActions(n.marker);r.add(Hn(()=>a.cancel())),a.then(l=>{var h;if(s.dispose(),this.recentMarkerCodeActionsInfo={marker:n.marker,hasCodeActions:l.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){l.dispose(),o.textContent=U(1142,"No quick fixes available");return}o.style.display="none";let d=!1;r.add(Hn(()=>{d||l.dispose()})),t.statusBar.addAction({label:U(1143,"Quick Fix..."),commandId:ztt,run:g=>{d=!0;const m=_R.get(this._editor),v=Kl(g);t.hide(),m==null||m.showCodeActions(Pyt,l,{x:v.left,y:v.top,width:v.width,height:v.height})}});const u=l.validActions.find(g=>g.action.isAI);u&&t.statusBar.addAction({label:u.action.title,commandId:((h=u.action.command)==null?void 0:h.id)??"",iconClass:fi.asClassName(zt.sparkle),run:()=>{const g=_R.get(this._editor);g==null||g.applyCodeAction(u,!1,!1,p9.FromProblemsHover)}}),t.onContentsChanged()},zi)}return r}getCodeActions(t){return Fd(n=>ON(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new Ee(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),Pyt,qb.None,n))}};EWe=pbo([wxe(1,ket),wxe(2,OL),wxe(3,Nn)],EWe);var QRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},$U=function(e,t){return function(n,r){t(n,r,e)}},TWe,QWe;let DWe=TWe=class extends ft{constructor(t,n,r,o,s,a,l){super();const d=n.hoverParts;this._renderedHoverParts=this._register(new BWe(t,r,d,o,s,a,l));const u=n.options,h=u.anchor,{showAtPosition:g,showAtSecondaryPosition:m}=TWe.computeHoverPositions(t,h.range,d);this.shouldAppearBeforeContent=d.some(v=>v.isBeforeContent),this.showAtPosition=g,this.showAtSecondaryPosition=m,this.initialMousePosX=h.initialMousePosX,this.initialMousePosY=h.initialMousePosY,this.shouldFocus=u.shouldFocus,this.source=u.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}get hoverPartsCount(){return this._renderedHoverParts.hoverPartsCount}focusHoverPartWithIndex(t){this._renderedHoverParts.focusHoverPartWithIndex(t)}async updateHoverVerbosityLevel(t,n,r){this._renderedHoverParts.updateHoverVerbosityLevel(t,n,r)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(t,n,r){let o=1;if(t.hasModel()){const h=t._getViewModel(),g=h.coordinatesConverter,m=g.convertModelRangeToViewRange(n),v=h.getLineMinColumn(m.startLineNumber),f=new it(m.startLineNumber,v);o=g.convertViewPositionToModelPosition(f).column}const s=n.startLineNumber;let a=n.startColumn,l;for(const h of r){const g=h.range,m=g.startLineNumber===s,v=g.endLineNumber===s;if(m&&v){const k=g.startColumn,A=Math.min(a,k);a=Math.max(A,o)}h.forceShowAtRange&&(l=g)}let d,u;if(l){const h=l.getStartPosition();d=h,u=h}else d=n.getStartPosition(),u=new it(s,a);return{showAtPosition:d,showAtSecondaryPosition:u}}};DWe=TWe=QRn([$U(4,Do),$U(5,pm),$U(6,U0)],DWe);class bbo{constructor(t,n){this._statusBar=n,t.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var ZD;let BWe=(ZD=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._hoverService=a,this._clipboardService=l,this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=o,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(n,r,o,s,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(t,r)),this._updateMarkdownAndColorParticipantInfo(n)}_createEditorDecorations(t,n){if(n.length===0)return ft.None;let r=n[0].range;for(const s of n){const a=s.range;r=Ee.plusRange(r,a)}const o=t.createDecorationsCollection();return o.set([{range:r,options:QWe._DECORATION_OPTIONS}]),Hn(()=>{o.clear()})}_renderParts(t,n,r,o,s){const a=new K1e(o,s),l={fragment:this._fragment,statusBar:a,...r},d=new xt;d.add(a);for(const h of t){const g=this._renderHoverPartsForParticipant(n,h,l);d.add(g);for(const m of g.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:h,hoverPart:m.hoverPart,hoverElement:m.hoverElement})}const u=this._renderStatusBar(this._fragment,a);return u&&(d.add(u),this._renderedParts.push({type:"statusBar",hoverElement:u.hoverElement,actions:u.actions})),d}_renderHoverPartsForParticipant(t,n,r){const o=t.filter(a=>a.owner===n);return o.length>0?n.renderHoverParts(r,o):new SR([])}_renderStatusBar(t,n){if(n.hasContent)return new bbo(t,n)}_registerListenersOnRenderedParts(){const t=new xt;return this._renderedParts.forEach((n,r)=>{const o=n.hoverElement;o.tabIndex=0,t.add(wt(o,rn.FOCUS_IN,s=>{s.stopPropagation(),this._focusedHoverPartIndex=r})),t.add(wt(o,rn.FOCUS_OUT,s=>{s.stopPropagation(),this._focusedHoverPartIndex=-1})),n.type==="hoverPart"&&n.hoverPart instanceof TRn&&t.add(new nWe(o,()=>n.participant.getAccessibleContent(n.hoverPart),this._clipboardService,this._hoverService))}),t}_updateMarkdownAndColorParticipantInfo(t){const n=t.find(r=>r instanceof zJ&&!(r instanceof m0e));n&&(this._markdownHoverParticipant=n),this._colorHoverParticipant=t.find(r=>r instanceof e0e)}focusHoverPartWithIndex(t){t<0||t>=this._renderedParts.length||this._renderedParts[t].hoverElement.focus()}async updateHoverVerbosityLevel(t,n,r){if(!this._markdownHoverParticipant)return;let o;n>=0?o={start:n,endExclusive:n+1}:o=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let s=o.start;s=0?this.focusHoverPartWithIndex(n):this._context.focus()),this._context.onContentsChanged()}isColorPickerVisible(){var t;return((t=this._colorHoverParticipant)==null?void 0:t.isColorPickerVisible())??!1}_normalizedIndexToMarkdownHoverIndexRange(t,n){const r=this._renderedParts[n];if(!r||r.type!=="hoverPart"||!(r.participant===t))return;const s=this._renderedParts.findIndex(a=>a.type==="hoverPart"&&a.participant===t);if(s===-1)throw new ui;return n-s}_findRangeOfMarkdownHoverParts(t){const n=this._renderedParts.slice(),r=n.findIndex(a=>a.type==="hoverPart"&&a.participant===t),o=n.reverse().findIndex(a=>a.type==="hoverPart"&&a.participant===t),s=o>=0?n.length-o:o;return{start:r,endExclusive:s+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}},QWe=ZD,ZD._DECORATION_OPTIONS=Gi.register({description:"content-hover-highlight",className:"hoverHighlight"}),ZD);BWe=QWe=QRn([$U(4,Do),$U(5,pm),$U(6,U0)],BWe);var wbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},tce=function(e,t){return function(n,r){t(n,r,e)}};let RWe=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._instantiationService=n,this._keybindingService=r,this._hoverService=o,this._clipboardService=s,this._currentResult=null,this._renderedContentHover=this._register(new ts),this._onContentsChanged=this._register(new at),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(Zje,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new vBn(this._editor,new q1e(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){const t=[];for(const n of BI.getAll()){const r=this._instantiationService.createInstance(n,this._editor);t.push(r)}return t.sort((n,r)=>n.hoverOrdinal-r.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(n=>{var r;return(r=n.handleResize)==null?void 0:r.call(n)})})),this._register(this._contentHoverWidget.onDidScroll(n=>{this._participants.forEach(r=>{var o;return(o=r.handleScroll)==null?void 0:o.call(r,n)})})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach(n=>{var r;return(r=n.handleContentsChanged)==null?void 0:r.call(n)})})),t}_registerListeners(){this._register(this._hoverOperation.onResult(n=>{const r=n.hasLoadingMessage?this._addLoadingMessage(n):n.value;this._withResult(new wBn(r,n.isComplete,n.options))}));const t=this._contentHoverWidget.getDomNode();this._register(wc(t,"keydown",n=>{n.equals(9)&&this.hide()})),this._register(wc(t,"mouseleave",n=>{this._onMouseLeave(n)})),this._register(Hl.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(t,n,r,o,s){if(!(this._contentHoverWidget.position&&this._currentResult))return t?(this._startHoverOperationIfNecessary(t,n,r,o,!1),!0):!1;const l=this._editor.getOption(69).sticky,d=s&&this._contentHoverWidget.isMouseGettingCloser(s.event.posx,s.event.posy);return l&&d?(t&&this._startHoverOperationIfNecessary(t,n,r,o,!0),!0):t?this._currentResult&&this._currentResult.options.anchor.equals(t)?!0:this._currentResult&&t.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)?(this._currentResult&&this._setCurrentResult(this._currentResult.filter(t)),this._startHoverOperationIfNecessary(t,n,r,o,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(t,n,r,o,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(t,n,r,o,s){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(t))return;this._hoverOperation.cancel();const l={anchor:t,source:r,shouldFocus:o,insistOnKeepingHoverVisible:s};this._hoverOperation.start(n,l)}_setCurrentResult(t){let n=t;if(this._currentResult===n)return;n&&n.hoverParts.length===0&&(n=null),this._currentResult=n,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(t){for(const n of this._participants){if(!n.createLoadingMessage)continue;const r=n.createLoadingMessage(t.options.anchor);if(r)return t.value.slice(0).concat([r])}return t.value}_withResult(t){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(t),!t.isComplete)return;const o=t.hoverParts.length===0,s=t.options.insistOnKeepingHoverVisible;o&&s||this._setCurrentResult(t)}_showHover(t){const n=this._getHoverContext();this._renderedContentHover.value=new DWe(this._editor,t,this._participants,n,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover.value):this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach(t=>{var n;return(n=t.handleHide)==null?void 0:n.call(t)})}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:s=>{this._contentHoverWidget.setMinimumDimensions(s)},focus:()=>this.focus()}}showsOrWillShow(t){if(this._contentHoverWidget.isResizing)return!0;const r=this._findHoverAnchorCandidates(t);if(!(r.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,t);const s=r[0];return this._startShowingOrUpdateHover(s,0,0,!1,t)}_findHoverAnchorCandidates(t){const n=[];for(const o of this._participants){if(!o.suggestHoverAnchor)continue;const s=o.suggestHoverAnchor(t);s&&n.push(s)}const r=t.target;switch(r.type){case 6:{n.push(new uxe(0,r.range,t.event.posx,t.event.posy));break}case 7:{const o=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!r.detail.isAfterLines&&typeof r.detail.horizontalDistanceToText=="number"&&r.detail.horizontalDistanceToTexts.priority-o.priority),n}_onMouseLeave(t){const n=this._editor.getDomNode();(!n||!b3e(n,t.x,t.y))&&this.hide()}startShowingAtRange(t,n,r,o){this._startShowingOrUpdateHover(new uxe(0,t,void 0,void 0),n,r,o,null)}async updateHoverVerbosityLevel(t,n,r){var o;(o=this._renderedContentHover.value)==null||o.updateHoverVerbosityLevel(t,n,r)}focusedHoverPartIndex(){var t;return((t=this._renderedContentHover.value)==null?void 0:t.focusedHoverPartIndex)??-1}containsNode(t){return t?this._contentHoverWidget.getDomNode().contains(t):!1}focus(){var n;if(((n=this._renderedContentHover.value)==null?void 0:n.hoverPartsCount)===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(t){var n;(n=this._renderedContentHover.value)==null||n.focusHoverPartWithIndex(t)}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){var t;return((t=this._renderedContentHover.value)==null?void 0:t.isColorPickerVisible())??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};RWe=wbo([tce(1,Yn),tce(2,Do),tce(3,pm),tce(4,U0)],RWe);function DRn(e){var n;const t=e.target;return!!t&&t.type===6&&((n=t.detail.injectedText)==null?void 0:n.options.attachedData)===hBn}var Obo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Oxe=function(e,t){return function(n,r){t(n,r,e)}},IWe,qD;let If=(qD=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._instantiationService=r,this._keybindingService=o,this._onHoverContentsChanged=this._register(new at),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new xt,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new Es(()=>{this._mouseMoveEvent&&this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(n.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(n.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}static get(t){return t.getContribution(IWe.ID)}_hookListeners(){const t=this._editor.getOption(69);this._hoverSettings={enabled:t.enabled,sticky:t.sticky,hidingDelay:t.hidingDelay},t.enabled||this._cancelSchedulerAndHide(),this._listenersStore.add(this._editor.onMouseDown(n=>this._onEditorMouseDown(n))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n))),this._listenersStore.add(this._editor.onMouseLeave(n=>this._onEditorMouseLeave(n))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(n=>this._onEditorScrollChanged(n)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(t){this._ignoreMouseEvents||(t.scrollTopChanged||t.scrollLeftChanged)&&this.hideContentHover()}_onEditorMouseDown(t){this._ignoreMouseEvents||(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(t))||this.hideContentHover()}_shouldKeepHoverWidgetVisible(t){return this._isMouseOnContentHoverWidget(t)||this._isContentWidgetResizing()||DRn(t)}_isMouseOnContentHoverWidget(t){return this._contentWidget?b3e(this._contentWidget.getDomNode(),t.event.posx,t.event.posy):!1}_onEditorMouseUp(){this._ignoreMouseEvents||(this._isMouseDown=!1)}_onEditorMouseLeave(t){this._ignoreMouseEvents||this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(t))||this.hideContentHover()}_shouldKeepCurrentHover(t){const n=this._contentWidget;if(!n)return!1;const r=this._hoverSettings.sticky,o=(h,g)=>{const m=this._isMouseOnContentHoverWidget(h);return g&&m},s=h=>{const g=n.isColorPickerVisible,m=this._isMouseOnContentHoverWidget(h),v=g&&m,f=g&&this._isMouseDown;return v||f},a=(h,g)=>{var v;const m=h.event.browserEvent.view;return m?g&&n.containsNode(m.document.activeElement)&&!((v=m.getSelection())!=null&&v.isCollapsed):!1},l=n.isFocused,d=n.isResizing,u=this._hoverSettings.sticky&&n.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||l||d||u||o(t,r)||s(t)||a(t,r)}_onEditorMouseMove(t){if(this._ignoreMouseEvents)return;if(this._mouseMoveEvent=t,this._shouldKeepCurrentHover(t)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(t)}_shouldRescheduleHoverComputation(){var r;const t=this._hoverSettings.hidingDelay;return(((r=this._contentWidget)==null?void 0:r.isVisible)??!1)&&this._hoverSettings.sticky&&t>0}_reactToEditorMouseMove(t){this._hoverSettings.enabled&&this._getOrCreateContentWidget().showsOrWillShow(t)||this.hideContentHover()}_onKeyDown(t){if(this._ignoreMouseEvents||!this._contentWidget)return;const n=this._isPotentialKeyboardShortcut(t),r=this._isModifierKeyPressed(t);n||r||this._contentWidget.isFocused&&t.keyCode===2||this.hideContentHover()}_isPotentialKeyboardShortcut(t){if(!this._editor.hasModel()||!this._contentWidget)return!1;const n=this._keybindingService.softDispatch(t,this._editor.getDomNode()),r=n.kind===1,o=n.kind===2&&(n.commandId===fBn||n.commandId===A3e||n.commandId===p3e)&&this._contentWidget.isVisible;return r||o}_isModifierKeyPressed(t){return t.keyCode===5||t.keyCode===6||t.keyCode===57||t.keyCode===4}hideContentHover(){var t;AV.dropDownVisible||(t=this._contentWidget)==null||t.hide()}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(RWe,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(t,n,r,o){this._getOrCreateContentWidget().startShowingAtRange(t,n,r,o)}_isContentWidgetResizing(){var t;return((t=this._contentWidget)==null?void 0:t.widget.isResizing)||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(t,n,r){this._getOrCreateContentWidget().updateHoverVerbosityLevel(t,n,r)}focus(){var t;(t=this._contentWidget)==null||t.focus()}scrollUp(){var t;(t=this._contentWidget)==null||t.scrollUp()}scrollDown(){var t;(t=this._contentWidget)==null||t.scrollDown()}scrollLeft(){var t;(t=this._contentWidget)==null||t.scrollLeft()}scrollRight(){var t;(t=this._contentWidget)==null||t.scrollRight()}pageUp(){var t;(t=this._contentWidget)==null||t.pageUp()}pageDown(){var t;(t=this._contentWidget)==null||t.pageDown()}goToTop(){var t;(t=this._contentWidget)==null||t.goToTop()}goToBottom(){var t;(t=this._contentWidget)==null||t.goToBottom()}get isColorPickerVisible(){var t;return(t=this._contentWidget)==null?void 0:t.isColorPickerVisible}get isHoverVisible(){var t;return(t=this._contentWidget)==null?void 0:t.isVisible}dispose(){var t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(t=this._contentWidget)==null||t.dispose()}},IWe=qD,qD.ID="editor.contrib.contentHover",qD);If=IWe=Obo([Oxe(1,S2),Oxe(2,Yn),Oxe(3,Do)],If);const vat=class vat extends ft{constructor(t){super(),this._editor=t,this._register(t.onMouseDown(n=>this.onMouseDown(n)))}dispose(){super.dispose()}onMouseDown(t){const n=this._editor.getOption(168);if(n!=="click"&&n!=="clickAndHover"||!DRn(t))return;const r=this._editor.getContribution(If.ID);if(!r||r.isColorPickerVisible)return;const o=t.target.range;if(!o)return;const s=new Ee(o.startLineNumber,o.startColumn+1,o.endLineNumber,o.endColumn+1);r.showContentHover(s,1,1,!1)}};vat.ID="editor.contrib.colorContribution";let A0e=vat;var ybo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Cbo=function(e,t){return function(n,r){t(n,r,e)}};class _nt{constructor(t,n,r,o){this.owner=t,this.range=n,this.model=r,this.provider=o}static fromBaseColor(t,n){return new _nt(t,n.range,n.model,n.provider)}}class _bo extends ft{constructor(t,n,r,o){super();const s=t.getModel(),a=r.model;this.color=r.model.color,this.colorPicker=this._register(new jBn(n.fragment,a,t.getOption(163),o,"standalone")),this._register(a.onColorFlushed(l=>{this.color=l})),this._register(a.onDidChangeColor(l=>{HJ(s,a,l,r.range,r)})),this._register(t.onDidChangeModelContent(l=>{n.hide(),t.focus()})),HJ(s,a,this.color,r.range,r)}}let MWe=class{constructor(t,n){this._editor=t,this._themeService=n}async createColorHover(t,n,r){if(!this._editor.hasModel()||!vV.get(this._editor))return null;const s=await cBn(r,this._editor.getModel(),Er.None);let a=null,l=null;for(const m of s){const v=m.colorInfo;Ee.containsRange(v.range,t.range)&&(a=v,l=m.provider)}const d=a??t,u=l??n,h=!!a;return{colorHover:_nt.fromBaseColor(this,await WBn(this._editor.getModel(),d,u)),foundInEditor:h}}async updateEditorModel(t){if(!this._editor.hasModel())return;const n=t.model;let r=new Ee(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn);this._color&&(await HJ(this._editor.getModel(),n,this._color,r,t),r=VBn(this._editor,r,n))}renderHoverParts(t,n){if(!(n.length===0||!this._editor.hasModel()))return this._setMinimumDimensions(t),this._renderedParts=new _bo(this._editor,t,n[0],this._themeService),this._renderedParts}_setMinimumDimensions(t){const n=this._editor.getOption(75)+8;t.setMinimumDimensions(new cs(302,n))}get _color(){var t;return(t=this._renderedParts)==null?void 0:t.color}};MWe=ybo([Cbo(1,Dl)],MWe);var Sbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},EX=function(e,t){return function(n,r){t(n,r,e)}},PWe;class Lbo{constructor(t,n){this.value=t,this.foundInEditor=n}}const Fyt=8,xbo=22;var KD;let FWe=(KD=class extends ft{constructor(t,n,r,o,s,a,l,d){var m;super(),this._editor=t,this._standaloneColorPickerVisible=n,this._standaloneColorPickerFocused=r,this._keybindingService=s,this._languageFeaturesService=a,this._editorWorkerService=l,this._hoverService=d,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new at),this.onResult=this._onResult.event,this._renderedHoverParts=this._register(new ts),this._renderedStatusBar=this._register(new ts),this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=o.createInstance(MWe,this._editor),this._position=(m=this._editor._getViewModel())==null?void 0:m.getPrimaryCursorState().modelState.position;const u=this._editor.getSelection(),h=u?{startLineNumber:u.startLineNumber,startColumn:u.startColumn,endLineNumber:u.endLineNumber,endColumn:u.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},g=this._register(uA(this._body));this._register(g.onDidBlur(v=>{this.hide()})),this._register(g.onDidFocus(v=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(v=>{var k;const f=(k=v.target.element)==null?void 0:k.classList;f&&f.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(v=>{this._render(v.value,v.foundInEditor)})),this._start(h),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return PWe.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const t=this._editor.getOption(69).above;return{position:this._position,secondaryPosition:this._position,preference:t?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(t){const n=await this._computeAsync(t);n&&this._onResult.fire(new Lbo(n.result,n.foundInEditor))}async _computeAsync(t){if(!this._editor.hasModel())return null;const n={range:t,color:{red:0,green:0,blue:0,alpha:1}},r=await this._standaloneColorPickerParticipant.createColorHover(n,new jJ(this._editorWorkerService),this._languageFeaturesService.colorProvider);return r?{result:r.colorHover,foundInEditor:r.foundInEditor}:null}_render(t,n){const r=document.createDocumentFragment();this._renderedStatusBar.value=this._register(new K1e(this._keybindingService,this._hoverService));const o={fragment:r,statusBar:this._renderedStatusBar.value,onContentsChanged:()=>{},setMinimumDimensions:()=>{},hide:()=>this.hide(),focus:()=>this.focus()};if(this._colorHover=t,this._renderedHoverParts.value=this._standaloneColorPickerParticipant.renderHoverParts(o,[t]),!this._renderedHoverParts.value){this._renderedStatusBar.clear(),this._renderedHoverParts.clear();return}const s=this._renderedHoverParts.value.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(r),s.layout();const a=s.body,l=a.saturationBox.domNode.clientWidth,d=a.domNode.clientWidth-l-xbo-Fyt,u=s.body.enterButton;u==null||u.onClicked(()=>{this.updateEditor(),this.hide()});const h=s.header,g=h.pickedColorNode;g.style.width=l+Fyt+"px";const m=h.originalColorNode;m.style.width=d+"px";const v=s.header.closeButton;v==null||v.onClicked(()=>{this.hide()}),n&&(u&&(u.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(t.range)),this._editor.layoutContentWidget(this)}},PWe=KD,KD.ID="editor.contrib.standaloneColorPickerWidget",KD);FWe=PWe=Sbo([EX(3,Yn),EX(4,Do),EX(5,Nn),EX(6,S1),EX(7,pm)],FWe);var Ebo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Nyt=function(e,t){return function(n,r){t(n,r,e)}},NWe,JD;let BR=(JD=class extends ft{constructor(t,n,r){super(),this._editor=t,this._instantiationService=r,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=$e.standaloneColorPickerVisible.bindTo(n),this._standaloneColorPickerFocused=$e.standaloneColorPickerFocused.bindTo(n)}showOrFocus(){var t;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(t=this._standaloneColorPickerWidget)==null||t.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(FWe,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){var t;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(t=this._standaloneColorPickerWidget)==null||t.hide(),this._editor.focus()}insertColor(){var t;(t=this._standaloneColorPickerWidget)==null||t.updateEditor(),this.hide()}static get(t){return t.getContribution(NWe.ID)}},NWe=JD,JD.ID="editor.contrib.standaloneColorPickerController",JD);BR=NWe=Ebo([Nyt(1,Qi),Nyt(2,Yn)],BR);class Tbo extends Op{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{..._t(889,"Show or Focus Standalone Color Picker"),mnemonicTitle:U(888,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:Wn.CommandPalette}],metadata:{description:_t(890,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(t,n){var r;(r=BR.get(n))==null||r.showOrFocus()}}class Qbo extends Bn{constructor(){super({id:"editor.action.hideColorPicker",label:_t(891,"Hide the Color Picker"),precondition:$e.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:_t(892,"Hide the standalone color picker.")}})}run(t,n){var r;(r=BR.get(n))==null||r.hide()}}class Dbo extends Bn{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:_t(893,"Insert Color with Standalone Color Picker"),precondition:$e.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:_t(894,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(t,n){var r;(r=BR.get(n))==null||r.insertColor()}}un(Qbo);un(Dbo);ys(Tbo);mo(A0e.ID,A0e,2);mo(BR.ID,BR,1);mo(vV.ID,vV,1);dH(Hje);BI.register(e0e);co.registerCommand("_executeDocumentColorProvider",function(e,...t){const[n]=t;if(!(n instanceof vi))throw Gv();const{model:r,colorProviderRegistry:o,defaultColorDecoratorsEnablement:s}=uBn(e,n);return Xtt(new Hvo,o,r,Er.None,s)});co.registerCommand("_executeColorPresentationProvider",function(e,...t){const[n,r]=t;if(!r)return;const{uri:o,range:s}=r;if(!(o instanceof vi)||!Array.isArray(n)||n.length!==4||!Ee.isIRange(s))throw Gv();const{model:a,colorProviderRegistry:l,defaultColorDecoratorsEnablement:d}=uBn(e,o),[u,h,g,m]=n;return Xtt(new $vo({range:s,color:{red:u,green:h,blue:g,alpha:m}}),l,a,Er.None,d)});class w9{constructor(t,n,r){this.languageConfigurationService=r,this._selection=t,this._insertSpace=n,this._usedEndToken=null}static _haystackHasNeedleAtOffset(t,n,r){if(r<0)return!1;const o=n.length,s=t.length;if(r+o>s)return!1;for(let a=0;a=65&&l<=90&&l+32===d)&&!(d>=65&&d<=90&&d+32===l))return!1}return!0}_createOperationsForBlockComment(t,n,r,o,s,a){const l=t.startLineNumber,d=t.startColumn,u=t.endLineNumber,h=t.endColumn,g=s.getLineContent(l),m=s.getLineContent(u);let v=g.lastIndexOf(n,d-1+n.length),f=m.indexOf(r,h-1-r.length);if(v!==-1&&f!==-1)if(l===u)g.substring(v+n.length,f).indexOf(r)>=0&&(v=-1,f=-1);else{const A=g.substring(v+n.length),p=m.substring(0,f);(A.indexOf(r)>=0||p.indexOf(r)>=0)&&(v=-1,f=-1)}let k;v!==-1&&f!==-1?(o&&v+n.length0&&m.charCodeAt(f-1)===32&&(r=" "+r,f-=1),k=w9._createRemoveBlockCommentOperations(new Ee(l,v+n.length+1,u,f+1),n,r)):(k=w9._createAddBlockCommentOperations(t,n,r,this._insertSpace),this._usedEndToken=k.length===1?r:null);for(const A of k)a.addTrackedEditOperation(A.range,A.text)}static _createRemoveBlockCommentOperations(t,n,r){const o=[];return Ee.isEmpty(t)?o.push($l.delete(new Ee(t.startLineNumber,t.startColumn-n.length,t.endLineNumber,t.endColumn+r.length))):(o.push($l.delete(new Ee(t.startLineNumber,t.startColumn-n.length,t.startLineNumber,t.startColumn))),o.push($l.delete(new Ee(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn+r.length)))),o}static _createAddBlockCommentOperations(t,n,r,o){const s=[];return Ee.isEmpty(t)?s.push($l.replace(new Ee(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),n+" "+r)):(s.push($l.insert(new it(t.startLineNumber,t.startColumn),n+(o?" ":""))),s.push($l.insert(new it(t.endLineNumber,t.endColumn),(o?" ":"")+r))),s}getEditOperations(t,n){const r=this._selection.startLineNumber,o=this._selection.startColumn;t.tokenization.tokenizeIfCheap(r);const s=t.getLanguageIdAtPosition(r,o),a=this.languageConfigurationService.getLanguageConfiguration(s).comments;!a||!a.blockCommentStartToken||!a.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,a.blockCommentStartToken,a.blockCommentEndToken,this._insertSpace,t,n)}computeCursorState(t,n){const r=n.getInverseEditOperations();if(r.length===2){const o=r[0],s=r[1];return new Qn(o.range.endLineNumber,o.range.endColumn,s.range.startLineNumber,s.range.startColumn)}else{const o=r[0].range,s=this._usedEndToken?-this._usedEndToken.length-1:0;return new Qn(o.endLineNumber,o.endColumn+s,o.endLineNumber,o.endColumn+s)}}}class W_{constructor(t,n,r,o,s,a,l){this.languageConfigurationService=t,this._selection=n,this._indentSize=r,this._type=o,this._insertSpace=s,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=a,this._ignoreFirstLine=l||!1}static _gatherPreflightCommentStrings(t,n,r,o){t.tokenization.tokenizeIfCheap(n);const s=t.getLanguageIdAtPosition(n,1),a=o.getLanguageConfiguration(s).comments,l=a?a.lineCommentToken:null;if(!l)return null;const d=[];for(let u=0,h=r-n+1;u{s.equals(9)&&(this._keybindingService.dispatchEvent(s,s.target),s.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(ebo,"ReferencesWidget",this._treeContainer,new Ypo,[this._instantiationService.createInstance(h0e),this._instantiationService.createInstance(f0e)],this._instantiationService.createInstance(hWe),r),this._splitView.addView({onDidChange:an.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:s=>{this._preview.layout({height:this._dim.height,width:s})}},r0e.Distribute),this._splitView.addView({onDidChange:an.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:s=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${s}px`,this._tree.layout(this._dim.height,s)}},r0e.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const o=(s,a)=>{s instanceof G8&&(a==="show"&&this._revealReference(s,!1),this._onDidSelectReference.fire({element:s,kind:a,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(s=>{s.sideBySide?o(s.element,"side"):s.editorOptions.pinned?o(s.element,"goto"):o(s.element,"show")})),tm(this._treeContainer)}_onWidth(t){this._dim&&this._doLayoutBody(this._dim.height,t)}_doLayoutBody(t,n){super._doLayoutBody(t,n),this._dim=new cs(n,t),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(n),this._splitView.resizeView(0,n*this.layoutData.ratio)}setSelection(t){return this._revealReference(t,!0).then(()=>{this._model&&(this._tree.setSelection([t]),this._tree.setFocus([t]))})}setModel(t){return this._disposeOnNewModel.clear(),this._model=t,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=U(1085,"No results"),k0(this._messageContainer),Promise.resolve(void 0)):(tm(this._messageContainer),this._decorationsManager=new mWe(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(t=>this._tree.rerender(t))),this._disposeOnNewModel.add(this._preview.onMouseDown(t=>{const{event:n,target:r}=t;if(n.detail!==2)return;const o=this._getFocusedReference();o&&this._onDidSelectReference.fire({element:{uri:o.uri,range:r.range},kind:n.ctrlKey||n.metaKey||n.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),k0(this._treeContainer),k0(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[t]=this._tree.getFocus();if(t instanceof G8)return t;if(t instanceof bV&&t.children.length>0)return t.children[0]}async revealReference(t){await this._revealReference(t,!1),this._onDidSelectReference.fire({element:t,kind:"goto",source:"tree"})}async _revealReference(t,n){if(this._revealedReference===t)return;this._revealedReference=t,t.uri.scheme!==Ci.inMemory?this.setTitle(Dno(t.uri),this._uriLabel.getUriLabel(Dbe(t.uri))):this.setTitle(U(1086,"References"));const r=this._textModelResolverService.createModelReference(t.uri);this._tree.getInput()===t.parent?this._tree.reveal(t):(n&&this._tree.reveal(t.parent),await this._tree.expand(t.parent),this._tree.reveal(t));const o=await r;if(!this._model){o.dispose();return}us(this._previewModelReference);const s=o.object;if(s){const a=this._preview.getModel()===s.textEditorModel?0:1,l=Ee.lift(t.range).collapseToStart();this._previewModelReference=o,this._preview.setModel(s.textEditorModel),this._preview.setSelection(l),this._preview.revealRangeInCenter(l,a)}else this._preview.setModel(this._previewNotAvailableMessage),o.dispose()}};vWe=pRn([K7(3,Dl),K7(4,Dg),K7(5,Yn),K7(6,YBn),K7(7,TR),K7(8,Do)],vWe);var tbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},TP=function(e,t){return function(n,r){t(n,r,e)}},bhe;const II=new yn("referenceSearchVisible",!1,U(1078,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));var WD;let QR=(WD=class{static get(t){return t.getContribution(bhe.ID)}constructor(t,n,r,o,s,a,l,d){this._defaultTreeKeyboardSupport=t,this._editor=n,this._editorService=o,this._notificationService=s,this._instantiationService=a,this._storageService=l,this._configurationService=d,this._disposables=new xt,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=II.bindTo(r)}dispose(){var t,n;this._referenceSearchVisible.reset(),this._disposables.dispose(),(t=this._widget)==null||t.dispose(),(n=this._model)==null||n.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(t,n,r){let o;if(this._widget&&(o=this._widget.position),this.closeWidget(),o&&t.containsPosition(o))return;this._peekMode=r,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const s="peekViewLayout",a=Jpo.fromJSON(this._storageService.get(s,0,"{}"));this._widget=this._instantiationService.createInstance(vWe,this._editor,this._defaultTreeKeyboardSupport,a),this._widget.setTitle(U(1079,"Loading...")),this._widget.show(t),this._disposables.add(this._widget.onDidClose(()=>{n.cancel(),this._widget?(this._storageService.store(s,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(d=>{const{element:u,kind:h}=d;if(u)switch(h){case"open":(d.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(u,!1,!1);break;case"side":this.openReference(u,!0,!1);break;case"goto":r?this._gotoReference(u,!0):this.openReference(u,!1,!0);break}}));const l=++this._requestIdPool;n.then(d=>{var u;if(l!==this._requestIdPool||!this._widget){d.dispose();return}return(u=this._model)==null||u.dispose(),this._model=d,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(U(1080,"{0} ({1})",this._model.title,this._model.references.length));const h=this._editor.getModel().uri,g=new it(t.startLineNumber,t.startColumn),m=this._model.nearestReference(h,g);if(m)return this._widget.setSelection(m).then(()=>{this._widget&&this._editor.getOption(99)==="editor"&&this._widget.focusOnPreviewEditor()})}})},d=>{this._notificationService.error(d)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(t){if(!this._editor.hasModel()||!this._model||!this._widget)return;const n=this._widget.position;if(!n)return;const r=this._model.nearestReference(this._editor.getModel().uri,n);if(!r)return;const o=this._model.nextOrPreviousReference(r,t),s=this._editor.hasTextFocus(),a=this._widget.isPreviewEditorFocused();await this._widget.setSelection(o),await this._gotoReference(o,!1),s?this._editor.focus():this._widget&&a&&this._widget.focusOnPreviewEditor()}async revealReference(t){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(t)}closeWidget(t=!0){var n,r;(n=this._widget)==null||n.dispose(),(r=this._model)==null||r.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,t&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(t,n){var o;(o=this._widget)==null||o.hide(),this._ignoreModelChangeEvent=!0;const r=Ee.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:r,selectionSource:"code.jump",pinned:n}},this._editor).then(s=>{if(this._ignoreModelChangeEvent=!1,!s||!this._widget){this.closeWidget();return}if(this._editor===s)this._widget.show(r),this._widget.focusOnReferenceTree();else{const a=bhe.get(s),l=this._model.clone();this.closeWidget(),s.focus(),a==null||a.toggleWidget(r,Fd(d=>Promise.resolve(l)),this._peekMode??!1)}},s=>{this._ignoreModelChangeEvent=!1,zi(s)})}openReference(t,n,r){n||this.closeWidget();const{uri:o,range:s}=t;this._editorService.openCodeEditor({resource:o,options:{selection:s,selectionSource:"code.jump",pinned:r}},this._editor,n)}},bhe=WD,WD.ID="editor.contrib.referencesController",WD);QR=bhe=tbo([TP(2,Qi),TP(3,yo),TP(4,ic),TP(5,Yn),TP(6,Bg),TP(7,ar)],QR);function MI(e,t){const n=$Bn(e);if(!n)return;const r=QR.get(n);r&&t(r)}Nu.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Uc(2089,60),when:Ft.or(II,b1.inPeekEditor),handler(e){MI(e,t=>{t.changeFocusBetweenPreviewAndReferences()})}});Nu.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:Ft.or(II,b1.inPeekEditor),handler(e){MI(e,t=>{t.goToNextOrPreviousReference(!0)})}});Nu.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:Ft.or(II,b1.inPeekEditor),handler(e){MI(e,t=>{t.goToNextOrPreviousReference(!1)})}});uo.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");uo.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");uo.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");uo.registerCommand("closeReferenceSearch",e=>MI(e,t=>t.closeWidget()));Nu.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:Ft.and(b1.inPeekEditor,Ft.not("config.editor.stablePeek"))});Nu.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:Ft.and(II,Ft.not("config.editor.stablePeek"),Ft.or($e.editorTextFocus,unt.negate()))});Nu.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:Ft.and(II,fRn,mnt.negate(),knt.negate()),handler(e){var r;const n=(r=e.get(_A).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(n)&&n[0]instanceof G8&&MI(e,o=>o.revealReference(n[0]))}});Nu.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:Ft.and(II,fRn,mnt.negate(),knt.negate()),handler(e){var r;const n=(r=e.get(_A).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(n)&&n[0]instanceof G8&&MI(e,o=>o.openReference(n[0],!0,!0))}});uo.registerCommand("openReference",e=>{var r;const n=(r=e.get(_A).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(n)&&n[0]instanceof G8&&MI(e,o=>o.openReference(n[0],!1,!0))});var bRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},WG=function(e,t){return function(n,r){t(n,r,e)}};const wnt=new yn("hasSymbols",!1,U(1095,"Whether there are symbol locations that can be navigated via keyboard-only.")),D3e=Cr("ISymbolNavigationService");let AWe=class{constructor(t,n,r,o){this._editorService=n,this._notificationService=r,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=wnt.bindTo(t)}reset(){var t,n;this._ctxHasSymbols.reset(),(t=this._currentState)==null||t.dispose(),(n=this._currentMessage)==null||n.close(),this._currentModel=void 0,this._currentIdx=-1}put(t){const n=t.parent.parent;if(n.references.length<=1){this.reset();return}this._currentModel=n,this._currentIdx=n.references.indexOf(t),this._ctxHasSymbols.set(!0),this._showMessage();const r=new pWe(this._editorService),o=r.onDidChange(s=>{if(this._ignoreEditorChange)return;const a=this._editorService.getActiveCodeEditor();if(!a)return;const l=a.getModel(),d=a.getPosition();if(!l||!d)return;let u=!1,h=!1;for(const g of n.references)if(C6(g.uri,l.uri))u=!0,h=h||Ee.containsPosition(g.range,d);else if(u)break;(!u||!h)&&this.reset()});this._currentState=G4(r,o)}revealNext(t){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{selection:Ee.collapseToStart(n.range),selectionRevealType:3}},t).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var r;(r=this._currentMessage)==null||r.close();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),n=t?U(1096,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):U(1097,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(n)}};AWe=bRn([WG(0,Qi),WG(1,yo),WG(2,ic),WG(3,Do)],AWe);zr(D3e,AWe,1);On(new class extends $d{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:wnt,kbOpts:{weight:100,primary:70}})}runEditorCommand(e,t){return e.get(D3e).revealNext(t)}});Nu.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:wnt,primary:9,handler(e){e.get(D3e).reset()}});let pWe=class{constructor(t){this._listener=new Map,this._disposables=new xt,this._onDidChange=new at,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),us(this._listener.values())}_onDidAddEditor(t){this._listener.set(t,G4(t.onDidChangeCursorPosition(n=>this._onDidChange.fire({editor:t})),t.onDidChangeModelContent(n=>this._onDidChange.fire({editor:t}))))}_onDidRemoveEditor(t){var n;(n=this._listener.get(t))==null||n.dispose(),this._listener.delete(t)}};pWe=bRn([WG(0,yo)],pWe);function bWe(e,t){return t.uri.scheme===e.uri.scheme?!0:!nNe(t.uri,Ci.walkThroughSnippet,Ci.vscodeChatCodeBlock,Ci.vscodeChatCodeCompareBlock)}async function tre(e,t,n,r,o){const a=n.ordered(e,r).map(d=>Promise.resolve(o(d,e,t)).then(void 0,u=>{Nc(u)})),l=await Promise.all(a);return P3(l.flat()).filter(d=>bWe(e,d))}function nre(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideDefinition(a,l,o))}function Ont(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideDeclaration(a,l,o))}function ynt(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideImplementation(a,l,o))}function Cnt(e,t,n,r,o){return tre(t,n,e,r,(s,a,l)=>s.provideTypeDefinition(a,l,o))}function ire(e,t,n,r,o,s){return tre(t,n,e,o,async(a,l,d)=>{var g,m;const u=(g=await a.provideReferences(l,d,{includeDeclaration:!0},s))==null?void 0:g.filter(v=>bWe(l,v));if(!r||!u||u.length!==2)return u;const h=(m=await a.provideReferences(l,d,{includeDeclaration:!1},s))==null?void 0:m.filter(v=>bWe(l,v));return h&&h.length===1?h:u})}async function iC(e){const t=await e(),n=new B0(t,""),r=n.references.map(o=>o.link);return n.dispose(),r}_1("_executeDefinitionProvider",(e,t,n)=>{const r=e.get(Nn),o=nre(r.definitionProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeDefinitionProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=nre(r.definitionProvider,t,n,!0,Er.None);return iC(()=>o)});_1("_executeTypeDefinitionProvider",(e,t,n)=>{const r=e.get(Nn),o=Cnt(r.typeDefinitionProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeTypeDefinitionProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=Cnt(r.typeDefinitionProvider,t,n,!0,Er.None);return iC(()=>o)});_1("_executeDeclarationProvider",(e,t,n)=>{const r=e.get(Nn),o=Ont(r.declarationProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeDeclarationProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=Ont(r.declarationProvider,t,n,!0,Er.None);return iC(()=>o)});_1("_executeReferenceProvider",(e,t,n)=>{const r=e.get(Nn),o=ire(r.referenceProvider,t,n,!1,!1,Er.None);return iC(()=>o)});_1("_executeReferenceProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=ire(r.referenceProvider,t,n,!1,!0,Er.None);return iC(()=>o)});_1("_executeImplementationProvider",(e,t,n)=>{const r=e.get(Nn),o=ynt(r.implementationProvider,t,n,!1,Er.None);return iC(()=>o)});_1("_executeImplementationProvider_recursive",(e,t,n)=>{const r=e.get(Nn),o=ynt(r.implementationProvider,t,n,!0,Er.None);return iC(()=>o)});Iu.appendMenuItem(Wn.EditorContext,{submenu:Wn.EditorContextPeek,title:U(1038,"Peek"),group:"navigation",order:100});class wV{static is(t){return!t||typeof t!="object"?!1:!!(t instanceof wV||it.isIPosition(t.position)&&t.model)}constructor(t,n){this.model=t,this.position=n}}const l4=class l4 extends Op{static all(){return l4._allSymbolNavigationCommands.values()}static _patchConfig(t){const n={...t,f1:!0};if(n.menu)for(const r of to.wrap(n.menu))(r.id===Wn.EditorContext||r.id===Wn.EditorContextPeek)&&(r.when=Ft.and(t.precondition,r.when));return n}constructor(t,n){super(l4._patchConfig(n)),this.configuration=t,l4._allSymbolNavigationCommands.set(n.id,this)}runEditorCommand(t,n,r,o){if(!n.hasModel())return Promise.resolve(void 0);const s=t.get(ic),a=t.get(yo),l=t.get(V8),d=t.get(D3e),u=t.get(Nn),h=t.get(Yn),g=n.getModel(),m=n.getPosition(),v=wV.is(r)?r:new wV(g,m),f=new z8(n,5),k=YW(this._getLocationModel(u,v.model,v.position,f.token),f.token).then(async A=>{var w;if(!A||f.token.isCancellationRequested)return;um(A.ariaMessage);let p;if(A.referenceAt(g.uri,m)){const O=this._getAlternativeCommand(n);O!==void 0&&!l4._activeAlternativeCommands.has(O)&&l4._allSymbolNavigationCommands.has(O)&&(p=l4._allSymbolNavigationCommands.get(O))}const b=A.references.length;if(b===0){if(!this.configuration.muteMessage){const O=g.getWordAtPosition(m);(w=D0.get(n))==null||w.showMessage(this._getNoResultFoundMessage(O),m)}}else if(b===1&&p)l4._activeAlternativeCommands.add(this.desc.id),h.invokeFunction(O=>p.runEditorCommand(O,n,r,o).finally(()=>{l4._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(a,d,n,A,o)},A=>{s.error(A)}).finally(()=>{f.dispose()});return l.showWhile(k,250),k}async _onResult(t,n,r,o,s){const a=this._getGoToPreference(r);if(!(r instanceof X8)&&(this.configuration.openInPeek||a==="peek"&&o.references.length>1))this._openInPeek(r,o,s);else{const l=o.firstReference(),d=o.references.length>1&&a==="gotoAndPeek",u=await this._openReference(r,t,l,this.configuration.openToSide,!d);d&&u?this._openInPeek(u,o,s):o.dispose(),a==="goto"&&n.put(l)}}async _openReference(t,n,r,o,s){let a;if(Dco(r)&&(a=r.targetSelectionRange),a||(a=r.range),!a)return;const l=await n.openCodeEditor({resource:r.uri,options:{selection:Ee.collapseToStart(a),selectionRevealType:3,selectionSource:"code.jump"}},t,o);if(l){if(s){const d=l.getModel(),u=l.createDecorationsCollection([{range:a,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{l.getModel()===d&&u.clear()},350)}return l}}_openInPeek(t,n,r){const o=QR.get(t);o&&t.hasModel()?o.toggleWidget(r??t.getSelection(),Fd(s=>Promise.resolve(n)),this.configuration.openInPeek):n.dispose()}};l4._allSymbolNavigationCommands=new Map,l4._activeAlternativeCommands=new Set;let Y8=l4;class rre extends Y8{async _getLocationModel(t,n,r,o){return new B0(await nre(t.definitionProvider,n,r,!1,o),U(1039,"Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?U(1040,"No definition found for '{0}'",t.word):U(1041,"No definition found")}_getAlternativeCommand(t){return t.getOption(67).alternativeDefinitionCommand}_getGoToPreference(t){return t.getOption(67).multipleDefinitions}}var K9;ys((K9=class extends rre{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:K9.id,title:{..._t(1065,"Go to Definition"),mnemonicTitle:U(1042,"Go to &&Definition")},precondition:$e.hasDefinitionProvider,keybinding:[{when:$e.editorTextFocus,primary:70,weight:100},{when:Ft.and($e.editorTextFocus,cRn),primary:2118,weight:100}],menu:[{id:Wn.EditorContext,group:"navigation",order:1.1},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),uo.registerCommandAlias("editor.action.goToDeclaration",K9.id)}},K9.id="editor.action.revealDefinition",K9));var J9;ys((J9=class extends rre{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:J9.id,title:_t(1066,"Open Definition to the Side"),precondition:Ft.and($e.hasDefinitionProvider,$e.isInEmbeddedEditor.toNegated()),keybinding:[{when:$e.editorTextFocus,primary:Uc(2089,70),weight:100},{when:Ft.and($e.editorTextFocus,cRn),primary:Uc(2089,2118),weight:100}]}),uo.registerCommandAlias("editor.action.openDeclarationToTheSide",J9.id)}},J9.id="editor.action.revealDefinitionAside",J9));var e6;ys((e6=class extends rre{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e6.id,title:_t(1067,"Peek Definition"),precondition:Ft.and($e.hasDefinitionProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),keybinding:{when:$e.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:Wn.EditorContextPeek,group:"peek",order:2}}),uo.registerCommandAlias("editor.action.previewDeclaration",e6.id)}},e6.id="editor.action.peekDefinition",e6));class wRn extends Y8{async _getLocationModel(t,n,r,o){return new B0(await Ont(t.declarationProvider,n,r,!1,o),U(1043,"Declarations"))}_getNoResultFoundMessage(t){return t&&t.word?U(1044,"No declaration found for '{0}'",t.word):U(1045,"No declaration found")}_getAlternativeCommand(t){return t.getOption(67).alternativeDeclarationCommand}_getGoToPreference(t){return t.getOption(67).multipleDeclarations}}var VD;ys((VD=class extends wRn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:VD.id,title:{..._t(1068,"Go to Declaration"),mnemonicTitle:U(1046,"Go to &&Declaration")},precondition:Ft.and($e.hasDeclarationProvider,$e.isInEmbeddedEditor.toNegated()),menu:[{id:Wn.EditorContext,group:"navigation",order:1.3},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(t){return t&&t.word?U(1047,"No declaration found for '{0}'",t.word):U(1048,"No declaration found")}},VD.id="editor.action.revealDeclaration",VD));ys(class extends wRn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:_t(1069,"Peek Declaration"),precondition:Ft.and($e.hasDeclarationProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),menu:{id:Wn.EditorContextPeek,group:"peek",order:3}})}});class ORn extends Y8{async _getLocationModel(t,n,r,o){return new B0(await Cnt(t.typeDefinitionProvider,n,r,!1,o),U(1049,"Type Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?U(1050,"No type definition found for '{0}'",t.word):U(1051,"No type definition found")}_getAlternativeCommand(t){return t.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(t){return t.getOption(67).multipleTypeDefinitions}}var zD;ys((zD=class extends ORn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:zD.ID,title:{..._t(1070,"Go to Type Definition"),mnemonicTitle:U(1052,"Go to &&Type Definition")},precondition:$e.hasTypeDefinitionProvider,keybinding:{when:$e.editorTextFocus,primary:0,weight:100},menu:[{id:Wn.EditorContext,group:"navigation",order:1.4},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},zD.ID="editor.action.goToTypeDefinition",zD));var HD;ys((HD=class extends ORn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:HD.ID,title:_t(1071,"Peek Type Definition"),precondition:Ft.and($e.hasTypeDefinitionProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),menu:{id:Wn.EditorContextPeek,group:"peek",order:4}})}},HD.ID="editor.action.peekTypeDefinition",HD));class yRn extends Y8{async _getLocationModel(t,n,r,o){return new B0(await ynt(t.implementationProvider,n,r,!1,o),U(1053,"Implementations"))}_getNoResultFoundMessage(t){return t&&t.word?U(1054,"No implementation found for '{0}'",t.word):U(1055,"No implementation found")}_getAlternativeCommand(t){return t.getOption(67).alternativeImplementationCommand}_getGoToPreference(t){return t.getOption(67).multipleImplementations}}var $D;ys(($D=class extends yRn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:$D.ID,title:{..._t(1072,"Go to Implementations"),mnemonicTitle:U(1056,"Go to &&Implementations")},precondition:$e.hasImplementationProvider,keybinding:{when:$e.editorTextFocus,primary:2118,weight:100},menu:[{id:Wn.EditorContext,group:"navigation",order:1.45},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},$D.ID="editor.action.goToImplementation",$D));var XD;ys((XD=class extends yRn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:XD.ID,title:_t(1073,"Peek Implementations"),precondition:Ft.and($e.hasImplementationProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),keybinding:{when:$e.editorTextFocus,primary:3142,weight:100},menu:{id:Wn.EditorContextPeek,group:"peek",order:5}})}},XD.ID="editor.action.peekImplementation",XD));class CRn extends Y8{_getNoResultFoundMessage(t){return t?U(1057,"No references found for '{0}'",t.word):U(1058,"No references found")}_getAlternativeCommand(t){return t.getOption(67).alternativeReferenceCommand}_getGoToPreference(t){return t.getOption(67).multipleReferences}}ys(class extends CRn{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{..._t(1074,"Go to References"),mnemonicTitle:U(1059,"Go to &&References")},precondition:Ft.and($e.hasReferenceProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),keybinding:{when:$e.editorTextFocus,primary:1094,weight:100},menu:[{id:Wn.EditorContext,group:"navigation",order:1.45},{id:Wn.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(t,n,r,o){return new B0(await ire(t.referenceProvider,n,r,!0,!1,o),U(1060,"References"))}});ys(class extends CRn{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:_t(1075,"Peek References"),precondition:Ft.and($e.hasReferenceProvider,b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated()),menu:{id:Wn.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(t,n,r,o){return new B0(await ire(t.referenceProvider,n,r,!1,!1,o),U(1061,"References"))}});class nbo extends Y8{constructor(t,n,r){super(t,{id:"editor.action.goToLocation",title:_t(1076,"Go to Any Symbol"),precondition:Ft.and(b1.notInPeekEditor,$e.isInEmbeddedEditor.toNegated())}),this._references=n,this._gotoMultipleBehaviour=r}async _getLocationModel(t,n,r,o){return new B0(this._references,U(1062,"Locations"))}_getNoResultFoundMessage(t){return t&&U(1063,"No results for '{0}'",t.word)||""}_getGoToPreference(t){return this._gotoMultipleBehaviour??t.getOption(67).multipleReferences}_getAlternativeCommand(){}}uo.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:vi},{name:"position",description:"The position at which to start",constraint:it.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(e,t,n,r,o,s,a)=>{Oo(vi.isUri(t)),Oo(it.isIPosition(n)),Oo(Array.isArray(r)),Oo(typeof o>"u"||typeof o=="string"),Oo(typeof a>"u"||typeof a=="boolean");const l=e.get(yo),d=await l.openCodeEditor({resource:t},l.getFocusedCodeEditor());if(C3(d))return d.setPosition(n),d.revealPositionInCenterIfOutsideViewport(n,0),d.invokeWithinContext(u=>{const h=new class extends nbo{_getNoResultFoundMessage(g){return s||super._getNoResultFoundMessage(g)}}({muteMessage:!s,openInPeek:!!a,openToSide:!1},r,o);u.get(Yn).invokeFunction(h.run.bind(h),d)})}});uo.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:vi},{name:"position",description:"The position at which to start",constraint:it.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(e,t,n,r,o)=>{e.get(ba).executeCommand("editor.action.goToLocations",t,n,r,o,void 0,!0)}});uo.registerCommand({id:"editor.action.findReferences",handler:(e,t,n)=>{Oo(vi.isUri(t)),Oo(it.isIPosition(n));const r=e.get(Nn),o=e.get(yo);return o.openCodeEditor({resource:t},o.getFocusedCodeEditor()).then(s=>{if(!C3(s)||!s.hasModel())return;const a=QR.get(s);if(!a)return;const l=Fd(u=>ire(r.referenceProvider,s.getModel(),it.lift(n),!1,!1,u).then(h=>new B0(h,U(1064,"References")))),d=new Ee(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(a.toggleWidget(d,l,!1))})}});uo.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function ibo(e,t,n,r){const o=e.get(Dg),s=e.get(S2),a=e.get(ba),l=e.get(Yn),d=e.get(ic);if(await r.item.resolve(Er.None),!r.part.location)return;const u=r.part.location,h=[],g=new Set(Iu.getMenuItems(Wn.EditorContext).map(v=>LU(v)?v.command.id:SI()));for(const v of Y8.all())g.has(v.desc.id)&&h.push(new n2(v.desc.id,i2.label(v.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const f=await o.createModelReference(u.uri);try{const k=new wV(f.object.textEditorModel,Ee.getStartPosition(u.range)),A=r.item.anchor.range;await l.invokeFunction(v.runEditorCommand.bind(v),t,k,A)}finally{f.dispose()}}));if(r.part.command){const{command:v}=r.part;h.push(new pd),h.push(new n2(v.id,v.title,void 0,!0,async()=>{try{await a.executeCommand(v.id,...v.arguments??[])}catch(f){d.notify({severity:iH.Error,source:r.item.provider.displayName,message:f})}}))}const m=t.getOption(144);s.showContextMenu({domForShadowRoot:m?t.getDomNode()??void 0:void 0,getAnchor:()=>{const v=Kl(n);return{x:v.left,y:v.top+v.height+8}},getActions:()=>h,onHide:()=>{t.focus()},autoSelectFirstItem:!0})}async function _Rn(e,t,n,r){const s=await e.get(Dg).createModelReference(r.uri);await n.invokeWithinContext(async a=>{const l=t.hasSideBySideModifier,d=a.get(Qi),u=b1.inPeekEditor.getValue(d),h=!l&&n.getOption(101)&&!u;return new rre({openToSide:l,openInPeek:h,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(a,new wV(s.object.textEditorModel,Ee.getStartPosition(r.range)),Ee.lift(r.range))}),s.dispose()}var rbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},QP=function(e,t){return function(n,r){t(n,r,e)}},DF;class g0e{constructor(){this._entries=new wp(50)}get(t){const n=g0e._key(t);return this._entries.get(n)}set(t,n){const r=g0e._key(t);this._entries.set(r,n)}static _key(t){return`${t.uri.toString()}/${t.getVersionId()}`}}const SRn=Cr("IInlayHintsCache");zr(SRn,g0e,1);class wWe{constructor(t,n){this.item=t,this.index=n}get part(){const t=this.item.hint.label;return typeof t=="string"?{label:t}:t[this.index]}}class obo{constructor(t,n){this.part=t,this.hasTriggerModifier=n}}class sbo{constructor(){this._store=new ts,this._tokenSource=new ja}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new ja,this._store.value=new xt,{store:this._store.value,token:this._tokenSource.token}}}var zS;let YJ=(zS=class{static get(t){return t.getContribution(DF.ID)??void 0}constructor(t,n,r,o,s,a,l){this._editor=t,this._languageFeaturesService=n,this._inlayHintsCache=o,this._commandService=s,this._notificationService=a,this._instaService=l,this._disposables=new xt,this._sessionDisposables=new xt,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new Yme(this._editor)),this._debounceInfo=r.for(n.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(n.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(t.onDidChangeModel(()=>this._update())),this._disposables.add(t.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(t.onDidChangeConfiguration(d=>{d.hasChanged(159)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const t=this._editor.getOption(159);if(t.enabled==="off")return;const n=this._editor.getModel();if(!n||!this._languageFeaturesService.inlayHintsProvider.has(n))return;if(t.enabled==="on")this._activeRenderMode=0;else{let u,h;t.enabled==="onUnlessPressed"?(u=0,h=1):(u=1,h=0),this._activeRenderMode=u,this._sessionDisposables.add(TS.getInstance().event(g=>{if(!this._editor.hasModel())return;const m=g.altKey&&g.ctrlKey&&!(g.shiftKey||g.metaKey)?h:u;if(m!==this._activeRenderMode){this._activeRenderMode=m;const v=this._editor.getModel(),f=this._copyInlayHintsWithCurrentAnchor(v);this._updateHintsDecorators([v.getFullModelRange()],f),l.schedule(0)}}))}const r=this._inlayHintsCache.get(n);r&&this._updateHintsDecorators([n.getFullModelRange()],r),this._sessionDisposables.add(Hn(()=>{n.isDisposed()||this._cacheHintsForFastRestore(n)}));let o;const s=new Set;this._sessionDisposables.add(n.onWillDispose(()=>o==null?void 0:o.cancel()));const a=this._sessionDisposables.add(new sbo),l=new Es(async()=>{const u=Date.now(),{store:h,token:g}=a.reset();try{const m=await t0e.create(this._languageFeaturesService.inlayHintsProvider,n,this._getHintsRanges(),g);if(l.delay=this._debounceInfo.update(n,Date.now()-u),g.isCancellationRequested){m.dispose();return}for(const v of m.provider)typeof v.onDidChangeInlayHints=="function"&&!s.has(v)&&(s.add(v),h.add(v.onDidChangeInlayHints(()=>{l.isScheduled()||l.schedule()})));h.add(m),this._updateHintsDecorators(m.ranges,m.items),this._cacheHintsForFastRestore(n)}catch(m){zi(m)}},this._debounceInfo.get(n));this._sessionDisposables.add(l),l.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(u=>{(u.scrollTopChanged||!l.isScheduled())&&l.schedule()}));const d=this._sessionDisposables.add(new ts);this._sessionDisposables.add(this._editor.onDidChangeModelContent(u=>{const h=Math.max(l.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+h},d.value=B8(()=>l.schedule(0),h),l.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration(u=>{u.hasChanged(159)&&l.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>l.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const t=new xt,n=t.add(new y3e(this._editor)),r=new xt;return t.add(r),t.add(n.onMouseMoveOrRelevantKeyDown(o=>{const[s]=o,a=this._getInlayHintLabelPart(s),l=this._editor.getModel();if(!a||!l){r.clear();return}const d=new ja;r.add(Hn(()=>d.dispose(!0))),a.item.resolve(d.token),this._activeInlayHintPart=a.part.command||a.part.location?new obo(a,s.hasTriggerModifier):void 0;const u=l.validatePosition(a.item.hint.position).lineNumber,h=new Ee(u,1,u,l.getLineMaxColumn(u)),g=this._getInlineHintsForRange(h);this._updateHintsDecorators([h],g),r.add(Hn(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([h],g)}))})),t.add(n.onCancel(()=>r.clear())),t.add(n.onExecute(async o=>{const s=this._getInlayHintLabelPart(o);if(s){const a=s.part;a.location?this._instaService.invokeFunction(_Rn,o,this._editor,a.location):JNe.is(a.command)&&await this._invokeCommand(a.command,s.item)}})),t}_getInlineHintsForRange(t){const n=new Set;for(const r of this._decorationsMetadata.values())t.containsRange(r.item.anchor.range)&&n.add(r.item);return Array.from(n)}_installDblClickGesture(t){return this._editor.onMouseUp(async n=>{if(n.event.detail!==2)return;const r=this._getInlayHintLabelPart(n);if(r&&(n.event.preventDefault(),await r.item.resolve(Er.None),yg(r.item.hint.textEdits))){const o=r.item.hint.textEdits.map(s=>$l.replace(Ee.lift(s.range),s.text));this._editor.executeEdits("inlayHint.default",o),t()}})}_installContextMenu(){return this._editor.onContextMenu(async t=>{if(!ec(t.event.target))return;const n=this._getInlayHintLabelPart(t);n&&await this._instaService.invokeFunction(ibo,this._editor,t.event.target,n)})}_getInlayHintLabelPart(t){var r;if(t.target.type!==6)return;const n=(r=t.target.detail.injectedText)==null?void 0:r.options;if(n instanceof T6&&(n==null?void 0:n.attachedData)instanceof wWe)return n.attachedData}async _invokeCommand(t,n){try{await this._commandService.executeCommand(t.id,...t.arguments??[])}catch(r){this._notificationService.notify({severity:iH.Error,source:n.provider.displayName,message:r})}}_cacheHintsForFastRestore(t){const n=this._copyInlayHintsWithCurrentAnchor(t);this._inlayHintsCache.set(t,n)}_copyInlayHintsWithCurrentAnchor(t){const n=new Map;for(const[r,o]of this._decorationsMetadata){if(n.has(o.item))continue;const s=t.getDecorationRange(r);if(s){const a=new zBn(s,o.item.anchor.direction),l=o.item.with({anchor:a});n.set(o.item,l)}}return Array.from(n.values())}_getHintsRanges(){const n=this._editor.getModel(),r=this._editor.getVisibleRangesPlusViewportAboveBelow(),o=[];for(const s of r.sort(Ee.compareRangesUsingStarts)){const a=n.validateRange(new Ee(s.startLineNumber-30,s.startColumn,s.endLineNumber+30,s.endColumn));o.length===0||!Ee.areIntersectingOrTouching(o[o.length-1],a)?o.push(a):o[o.length-1]=Ee.plusRange(o[o.length-1],a)}return o}_updateHintsDecorators(t,n){var A,p;const r=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&t.some(b=>b.containsPosition(this._cursorInfo.position))){const{position:b}=this._cursorInfo;this._cursorInfo=void 0;const w=new Map;for(const _ of this._editor.getLineDecorations(b.lineNumber)??[]){const S=this._decorationsMetadata.get(_.id);if(_.range.startColumn>b.column)continue;const L=S==null?void 0:S.decoration.options[S.item.anchor.direction];if(L&&L.attachedData!==DF._whitespaceData){const E=w.get(S.item)??0;w.set(S.item,E+L.content.length)}}const O=n.filter(_=>_.anchor.range.startLineNumber===b.lineNumber&&_.anchor.range.endColumn<=b.column),y=Array.from(w.values());let C;for(;;){const _=O.shift(),S=y.shift();if(!S&&!_)break;if(_)r.set(_,S??0),C=_;else if(C&&S){let L=r.get(C);L+=S,L+=y.reduce((E,T)=>E+T,0),y.length=0;break}}}const o=[],s=(b,w,O,y,C)=>{const _={content:O,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:w.className,cursorStops:y,attachedData:C};o.push({item:b,classNameRef:w,decoration:{range:b.anchor.range,options:{description:"InlayHint",showIfCollapsed:b.anchor.range.isEmpty(),collapseOnReplaceEdit:!b.anchor.range.isEmpty(),stickiness:0,[b.anchor.direction]:this._activeRenderMode===0?_:void 0}}})},a=(b,w)=>{const O=this._ruleFactory.createClassNameRef({width:`${l/3|0}px`,display:"inline-block"});s(b,O," ",w?Bv.Right:Bv.None,DF._whitespaceData)},{fontSize:l,fontFamily:d,padding:u,isUniform:h}=this._getLayoutInfo(),g=this._editor.getOption(159).maximumLength,m="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(m,d);let v={line:0,totalLen:0};for(let b=0;bg)continue;w.hint.paddingLeft&&a(w,!1);const O=typeof w.hint.label=="string"?[{label:w.hint.label}]:w.hint.label,y=r.get(w);let C=0;for(let _=0;_0&&(D=D.slice(0,-Q)+"…",P=!0),C+=D.length,y!==void 0){const M=C-y;M>=0&&(C-=M,D=D.slice(0,-(1+M))+"…",P=!0)}if(u&&(L&&(E||P)?(T.padding=`1px ${Math.max(1,l/4)|0}px`,T.borderRadius=`${l/4|0}px`):L?(T.padding=`1px 0 1px ${Math.max(1,l/4)|0}px`,T.borderRadius=`${l/4|0}px 0 0 ${l/4|0}px`):E||P?(T.padding=`1px ${Math.max(1,l/4)|0}px 1px 0`,T.borderRadius=`0 ${l/4|0}px ${l/4|0}px 0`):T.padding="1px 0 1px 0"),s(w,this._ruleFactory.createClassNameRef(T),abo(D),E&&!w.hint.paddingRight?Bv.Right:Bv.None,new wWe(w,_)),P)break}if(y!==void 0&&CDF._MAX_DECORATORS)break}const f=[];for(const[b,w]of this._decorationsMetadata){const O=(p=this._editor.getModel())==null?void 0:p.getDecorationRange(b);O&&t.some(y=>y.containsRange(O))&&(f.push(b),w.classNameRef.dispose(),this._decorationsMetadata.delete(b))}const k=O3.capture(this._editor);this._editor.changeDecorations(b=>{const w=b.deltaDecorations(f,o.map(O=>O.decoration));for(let O=0;Or)&&(s=r);const a=t.fontFamily||o;return{fontSize:s,fontFamily:a,padding:n,isUniform:!n&&a===o&&s===r}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const t of this._decorationsMetadata.values())t.classNameRef.dispose();this._decorationsMetadata.clear()}},DF=zS,zS.ID="editor.contrib.InlayHints",zS._MAX_DECORATORS=1500,zS._whitespaceData={},zS);YJ=DF=rbo([QP(1,Nn),QP(2,CA),QP(3,SRn),QP(4,ba),QP(5,ic),QP(6,Yn)],YJ);function abo(e){return e.replace(/[ \t]/g," ")}uo.registerCommand("_executeInlayHintProvider",async(e,...t)=>{const[n,r]=t;Oo(vi.isUri(n)),Oo(Ee.isIRange(r));const{inlayHintsProvider:o}=e.get(Nn),s=await e.get(Dg).createModelReference(n);try{const a=await t0e.create(o,s.object.textEditorModel,[Ee.lift(r)],Er.None),l=a.items.map(d=>d.hint);return setTimeout(()=>a.dispose(),0),l}finally{s.dispose()}});var lbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},b7=function(e,t){return function(n,r){t(n,r,e)}};class Dyt extends jG{constructor(t,n,r,o){super(10,n,t.item.anchor.range,r,o,!0),this.part=t}}let m0e=class extends zJ{constructor(t,n,r,o,s,a,l,d){super(t,n,s,l,r,o,d),this._resolverService=a,this.hoverOrdinal=6}suggestHoverAnchor(t){var o;if(!YJ.get(this._editor)||t.target.type!==6)return null;const r=(o=t.target.detail.injectedText)==null?void 0:o.options;return r instanceof T6&&r.attachedData instanceof wWe?new Dyt(r.attachedData,this,t.event.posx,t.event.posy):null}computeSync(){return[]}computeAsync(t,n,r,o){return t instanceof Dyt?new Yv(async s=>{const{part:a}=t;if(await a.item.resolve(o),o.isCancellationRequested)return;let l;typeof a.item.hint.tooltip=="string"?l=new bf().appendText(a.item.hint.tooltip):a.item.hint.tooltip&&(l=a.item.hint.tooltip),l&&s.emitOne(new I4(this,t.range,[l],!1,0)),yg(a.item.hint.textEdits)&&s.emitOne(new I4(this,t.range,[new bf().appendText(U(1164,"Double-click to insert"))],!1,10001));let d;if(typeof a.part.tooltip=="string"?d=new bf().appendText(a.part.tooltip):a.part.tooltip&&(d=a.part.tooltip),d&&s.emitOne(new I4(this,t.range,[d],!1,1)),a.part.location||a.part.command){let h;const m=this._editor.getOption(86)==="altKey"?Tr?U(1165,"cmd + click"):U(1166,"ctrl + click"):Tr?U(1167,"option + click"):U(1168,"alt + click");a.part.location&&a.part.command?h=new bf().appendText(U(1169,"Go to Definition ({0}), right click for more",m)):a.part.location?h=new bf().appendText(U(1170,"Go to Definition ({0})",m)):a.part.command&&(h=new bf(`[${U(1171,"Execute Command")}](${Q4o(a.part.command)} "${a.part.command.title}") (${m})`,{isTrusted:!0})),h&&s.emitOne(new I4(this,t.range,[h],!1,1e4))}const u=this._resolveInlayHintLabelPartHover(a,o);for await(const h of u)s.emitOne(h)}):Yv.EMPTY}async*_resolveInlayHintLabelPartHover(t,n){if(!t.part.location)return;const{uri:r,range:o}=t.part.location,s=await this._resolverService.createModelReference(r);try{const a=s.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(a))return;for await(const l of ent(this._languageFeaturesService.hoverProvider,a,new it(o.startLineNumber,o.startColumn),n))fV(l.hover.contents)||(yield new I4(this,t.item.anchor.range,l.hover.contents,!1,2+l.ordinal))}finally{s.dispose()}}};m0e=lbo([b7(1,Cp),b7(2,Do),b7(3,pm),b7(4,ar),b7(5,Dg),b7(6,Nn),b7(7,ba)],m0e);var LRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},k0e=function(e,t){return function(n,r){t(n,r,e)}};class Byt{constructor(t,n,r){this.marker=t,this.index=n,this.total=r}}let OWe=class{constructor(t,n,r){this._markerService=n,this._configService=r,this._onDidChange=new at,this.onDidChange=this._onDidChange.event,this._dispoables=new xt,this._markers=[],this._nextIdx=-1,vi.isUri(t)?this._resourceFilter=l=>l.toString()===t.toString():t&&(this._resourceFilter=t);const o=this._configService.getValue("problems.sortOrder"),s=(l,d)=>{let u=jK(l.resource.toString(),d.resource.toString());return u===0&&(o==="position"?u=Ee.compareRangesUsingStarts(l,d)||xl.compare(l.severity,d.severity):u=xl.compare(l.severity,d.severity)||Ee.compareRangesUsingStarts(l,d)),u},a=()=>{let l=this._markerService.read({resource:vi.isUri(t)?t:void 0,severities:xl.Error|xl.Warning|xl.Info});return typeof t=="function"&&(l=l.filter(d=>this._resourceFilter(d.resource))),l.sort(s),Na(l,this._markers,(d,u)=>d.resource.toString()===u.resource.toString()&&d.startLineNumber===u.startLineNumber&&d.startColumn===u.startColumn&&d.endLineNumber===u.endLineNumber&&d.endColumn===u.endColumn&&d.severity===u.severity&&d.message===u.message)?!1:(this._markers=l,!0)};a(),this._dispoables.add(n.onMarkerChanged(l=>{(!this._resourceFilter||l.some(d=>this._resourceFilter(d)))&&a()&&(this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(t){return!this._resourceFilter&&!t?!0:!this._resourceFilter||!t?!1:this._resourceFilter(t)}get selected(){const t=this._markers[this._nextIdx];return t&&new Byt(t,this._nextIdx+1,this._markers.length)}_initIdx(t,n,r){let o=this._markers.findIndex(s=>C6(s.resource,t.uri));if(o<0)o=UJe(this._markers.length,s=>jK(this._markers[s].resource.toString(),t.uri.toString())),o<0&&(o=~o),r?this._nextIdx=o:this._nextIdx=(this._markers.length+o-1)%this._markers.length;else{let s=!1,a=!1;for(let l=o;lo.resource.toString()===t.toString());if(!(r<0)){for(;r=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DP=function(e,t){return function(n,r){t(n,r,e)}},_We;class dbo{constructor(t,n,r,o,s){this._openerService=o,this._labelService=s,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new xt,this._editor=n;const a=document.createElement("div");a.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),a.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),a.appendChild(this._relatedBlock),this._disposables.add(wc(this._relatedBlock,"click",l=>{l.preventDefault();const d=this._relatedDiagnostics.get(l.target);d&&r(d)})),this._scrollable=new $7n(a,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(l=>{a.style.left=`-${l.scrollLeft}px`,a.style.top=`-${l.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){us(this._disposables)}update(t){const{source:n,message:r,relatedInformation:o,code:s}=t;let a=((n==null?void 0:n.length)||0)+2;s&&(typeof s=="string"?a+=s.length:a+=s.value.length);const l=P0(r);this._lines=l.length,this._longestLineLength=0;for(const m of l)this._longestLineLength=Math.max(m.length+a,this._longestLineLength);uh(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(t)),this._editor.applyFontInfo(this._messageBlock);let d=this._messageBlock;for(const m of l)d=document.createElement("div"),d.innerText=m,m===""&&(d.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(d);if(n||s){const m=document.createElement("span");if(m.classList.add("details"),d.appendChild(m),n){const v=document.createElement("span");v.innerText=n,v.classList.add("source"),m.appendChild(v)}if(s)if(typeof s=="string"){const v=document.createElement("span");v.innerText=`(${s})`,v.classList.add("code"),m.appendChild(v)}else{this._codeLink=tn("a.code-link"),this._codeLink.setAttribute("href",`${s.target.toString()}`),this._codeLink.onclick=f=>{this._openerService.open(s.target,{allowCommands:!0}),f.preventDefault(),f.stopPropagation()};const v=Xt(this._codeLink,tn("span"));v.innerText=s.value,m.appendChild(this._codeLink)}}if(uh(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),yg(o)){const m=this._relatedBlock.appendChild(document.createElement("div"));m.style.paddingTop=`${Math.floor(this._editor.getOption(75)*.66)}px`,this._lines+=1;for(const v of o){const f=document.createElement("div"),k=document.createElement("a");k.classList.add("filename"),k.innerText=`${this._labelService.getUriBasenameLabel(v.resource)}(${v.startLineNumber}, ${v.startColumn}): `,k.title=this._labelService.getUriLabel(v.resource),this._relatedDiagnostics.set(k,v);const A=document.createElement("span");A.innerText=v.message,f.appendChild(k),f.appendChild(A),this._lines+=1,m.appendChild(f)}}const u=this._editor.getOption(59),h=Math.ceil(u.typicalFullwidthCharacterWidth*this._longestLineLength*.75),g=u.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:h,scrollHeight:g})}layout(t,n){this._scrollable.getDomNode().style.height=`${t}px`,this._scrollable.getDomNode().style.width=`${n}px`,this._scrollable.setScrollDimensions({width:n,height:t})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(t){let n="";switch(t.severity){case xl.Error:n=U(1024,"Error");break;case xl.Warning:n=U(1025,"Warning");break;case xl.Info:n=U(1026,"Info");break;case xl.Hint:n=U(1027,"Hint");break}let r=U(1028,"{0} at {1}. ",n,t.startLineNumber+":"+t.startColumn);const o=this._editor.getModel();return o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1&&(r=`${o.getLineContent(t.startLineNumber)}, ${r}`),r}}var GD;let ZJ=(GD=class extends i0e{constructor(t,n,r,o,s,a,l){super(t,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},s),this._themeService=n,this._openerService=r,this._menuService=o,this._contextKeyService=a,this._labelService=l,this._callOnDispose=new xt,this._onDidSelectRelatedInformation=new at,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=xl.Warning,this._backgroundColor=Dt.white,this._applyTheme(n.getColorTheme()),this._callOnDispose.add(n.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(t){this._backgroundColor=t.getColor(gbo);let n=SWe,r=ubo;this._severity===xl.Warning?(n=whe,r=hbo):this._severity===xl.Info&&(n=LWe,r=fbo);const o=t.getColor(n),s=t.getColor(r);this.style({arrowColor:o,frameColor:o,headerBackgroundColor:s,primaryHeadingColor:t.getColor(ZBn),secondaryHeadingColor:t.getColor(qBn)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(o=>this.editor.focus()));const n=this._menuService.getMenuActions(_We.TitleMenu,this._contextKeyService),r=Pko(n);this._actionbarWidget.push(r,{label:!1,icon:!0,index:0})}_fillTitleIcon(t){this._icon=Xt(t,tn(""))}_fillBody(t){this._parentContainer=t,t.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),t.appendChild(this._container),this._message=new dbo(this._container,this.editor,n=>this._onDidSelectRelatedInformation.fire(n),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(t,n,r){this._container.classList.remove("stale"),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getColorTheme());const o=Ee.lift(t),s=this.editor.getPosition(),a=s&&o.containsPosition(s)?s:o.getStartPosition();super.show(a,this.computeRequiredHeight());const l=this.editor.getModel();if(l){const d=r>1?U(1029,"{0} of {1} problems",n,r):U(1030,"{0} of {1} problem",n,r);this.setTitle(hA(l.uri),d)}this._icon.className=`codicon ${CWe.className(xl.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(a,0),this.editor.focus()}updateMarker(t){this._container.classList.remove("stale"),this._message.update(t)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(t,n){super._doLayoutBody(t,n),this._heightInPixel=t,this._message.layout(t,n),this._container.style.height=`${t}px`}_onWidth(t){this._message.layout(this._heightInPixel,t)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}},_We=GD,GD.TitleMenu=new Wn("gotoErrorTitleMenu"),GD);ZJ=_We=cbo([DP(1,Dl),DP(2,OL),DP(3,wA),DP(4,Yn),DP(5,Qi),DP(6,TR)],ZJ);const Ryt=nJ($be,Noo),Iyt=nJ(N8,iJ),Myt=nJ(Sy,rJ),SWe=Ve("editorMarkerNavigationError.background",{dark:Ryt,light:Ryt,hcDark:ro,hcLight:ro},U(1031,"Editor marker navigation widget error color.")),ubo=Ve("editorMarkerNavigationError.headerBackground",{dark:Zi(SWe,.1),light:Zi(SWe,.1),hcDark:null,hcLight:null},U(1032,"Editor marker navigation widget error heading background.")),whe=Ve("editorMarkerNavigationWarning.background",{dark:Iyt,light:Iyt,hcDark:ro,hcLight:ro},U(1033,"Editor marker navigation widget warning color.")),hbo=Ve("editorMarkerNavigationWarning.headerBackground",{dark:Zi(whe,.1),light:Zi(whe,.1),hcDark:"#0C141F",hcLight:Zi(whe,.2)},U(1034,"Editor marker navigation widget warning heading background.")),LWe=Ve("editorMarkerNavigationInfo.background",{dark:Myt,light:Myt,hcDark:ro,hcLight:ro},U(1035,"Editor marker navigation widget info color.")),fbo=Ve("editorMarkerNavigationInfo.headerBackground",{dark:Zi(LWe,.1),light:Zi(LWe,.1),hcDark:null,hcLight:null},U(1036,"Editor marker navigation widget info heading background.")),gbo=Ve("editorMarkerNavigation.background",Oc,U(1037,"Editor marker navigation widget background."));var mbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},ece=function(e,t){return function(n,r){t(n,r,e)}},VG,YD;let DR=(YD=class{static get(t){return t.getContribution(VG.ID)}constructor(t,n,r,o,s){this._markerNavigationService=n,this._contextKeyService=r,this._editorService=o,this._instantiationService=s,this._sessionDispoables=new xt,this._editor=t,this._widgetVisible=ERn.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(t){if(this._model&&this._model.matches(t))return this._model;let n=!1;return this._model&&(n=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(t),n&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(ZJ,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(r=>{var o,s,a;(!((o=this._model)!=null&&o.selected)||!Ee.containsPosition((s=this._model)==null?void 0:s.selected.marker,r.position))&&((a=this._model)==null||a.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const r=this._model.find(this._editor.getModel().uri,this._widget.position);r?this._widget.updateMarker(r.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(r=>{this._editorService.openCodeEditor({resource:r.resource,options:{pinned:!0,revealIfOpened:!0,selection:Ee.lift(r).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(t=!0){this._cleanUp(),t&&this._editor.focus()}showAtMarker(t){if(!this._editor.hasModel())return;const n=this._editor.getModel(),r=this._getOrCreateModel(n.uri);r.resetIndex(),r.move(!0,n,new it(t.startLineNumber,t.startColumn)),r.selected&&this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total)}async navigate(t,n){var s,a;if(!this._editor.hasModel())return;const r=this._editor.getModel(),o=this._getOrCreateModel(n?void 0:r.uri);if(o.move(t,r,this._editor.getPosition()),!!o.selected)if(o.selected.marker.resource.toString()!==r.uri.toString()){this._cleanUp();const l=await this._editorService.openCodeEditor({resource:o.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:o.selected.marker}},this._editor);l&&((s=VG.get(l))==null||s.close(),(a=VG.get(l))==null||a.navigate(t,n))}else this._widget.showAtMarker(o.selected.marker,o.selected.index,o.selected.total)}},VG=YD,YD.ID="editor.contrib.markerController",YD);DR=VG=mbo([ece(1,xRn),ece(2,Qi),ece(3,yo),ece(4,Yn)],DR);class B3e extends Bn{constructor(t,n,r){super(r),this._next=t,this._multiFile=n}async run(t,n){var r;n.hasModel()&&await((r=DR.get(n))==null?void 0:r.navigate(this._next,this._multiFile))}}const XT=class XT extends B3e{constructor(){super(!0,!1,{id:XT.ID,label:XT.LABEL,precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:578,weight:100},menuOpts:{menuId:ZJ.TitleMenu,title:XT.LABEL.value,icon:Da("marker-navigation-next",zt.arrowDown,U(1016,"Icon for goto next marker.")),group:"navigation",order:1}})}};XT.ID="editor.action.marker.next",XT.LABEL=_t(1020,"Go to Next Problem (Error, Warning, Info)");let v0e=XT;const GT=class GT extends B3e{constructor(){super(!1,!1,{id:GT.ID,label:GT.LABEL,precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:1602,weight:100},menuOpts:{menuId:ZJ.TitleMenu,title:GT.LABEL.value,icon:Da("marker-navigation-previous",zt.arrowUp,U(1017,"Icon for goto previous marker.")),group:"navigation",order:2}})}};GT.ID="editor.action.marker.prev",GT.LABEL=_t(1021,"Go to Previous Problem (Error, Warning, Info)");let xWe=GT;class kbo extends B3e{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:_t(1022,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:66,weight:100},menuOpts:{menuId:Wn.MenubarGoMenu,title:U(1018,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class vbo extends B3e{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:_t(1023,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:1090,weight:100},menuOpts:{menuId:Wn.MenubarGoMenu,title:U(1019,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}mo(DR.ID,DR,4);un(v0e);un(xWe);un(kbo);un(vbo);const ERn=new yn("markersNavigationVisible",!1),Abo=$d.bindToContribution(DR.get);On(new Abo({id:"closeMarkersNavigation",precondition:ERn,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:$e.focus,primary:9,secondary:[1033]}}));var pbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},wxe=function(e,t){return function(n,r){t(n,r,e)}};const $A=tn;class TRn{constructor(t,n,r){this.owner=t,this.range=n,this.marker=r}isValidForHoverAnchor(t){return t.type===1&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}const Pyt={type:1,filter:{include:Ma.QuickFix},triggerAction:j0.QuickFixHover};let EWe=class{constructor(t,n,r,o){this._editor=t,this._markerDecorationsService=n,this._openerService=r,this._languageFeaturesService=o,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(t,n){if(!this._editor.hasModel()||t.type!==1&&!t.supportsMarkerHover)return[];const r=this._editor.getModel(),o=t.range;if(!r.isValidRange(t.range))return[];const s=o.startLineNumber,a=r.getLineMaxColumn(s),l=[];for(const d of n){const u=d.range.startLineNumber===s?d.range.startColumn:1,h=d.range.endLineNumber===s?d.range.endColumn:a,g=this._markerDecorationsService.getMarker(r.uri,d);if(!g)continue;const m=new Ee(t.range.startLineNumber,u,t.range.startLineNumber,h);l.push(new TRn(this,m,g))}return l}renderHoverParts(t,n){if(!n.length)return new SR([]);const r=[];n.forEach(a=>{const l=this._renderMarkerHover(a);t.fragment.appendChild(l.hoverElement),r.push(l)});const o=n.length===1?n[0]:n.sort((a,l)=>xl.compare(a.marker.severity,l.marker.severity))[0],s=this._renderMarkerStatusbar(t,o);return new SR(r,s)}getAccessibleContent(t){return t.marker.message}_renderMarkerHover(t){const n=new xt,r=$A("div.hover-row"),o=Xt(r,$A("div.marker.hover-contents")),{source:s,message:a,code:l,relatedInformation:d}=t.marker;this._editor.applyFontInfo(o);const u=Xt(o,$A("span"));if(u.style.whiteSpace="pre-wrap",u.innerText=a,s||l)if(l&&typeof l!="string"){const g=$A("span");if(s){const k=Xt(g,$A("span"));k.innerText=s}const m=Xt(g,$A("a.code-link"));m.setAttribute("href",l.target.toString(!0)),n.add(wt(m,"click",k=>{this._openerService.open(l.target,{allowCommands:!0}),k.preventDefault(),k.stopPropagation()}));const v=Xt(m,$A("span"));v.innerText=l.value;const f=Xt(o,g);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{const g=Xt(o,$A("span"));g.style.opacity="0.6",g.style.paddingLeft="6px",g.innerText=s&&l?`${s}(${l})`:s||`(${l})`}if(yg(d))for(const{message:g,resource:m,startLineNumber:v,startColumn:f}of d){const k=Xt(o,$A("div"));k.style.marginTop="8px";const A=Xt(k,$A("a"));A.innerText=`${hA(m)}(${v}, ${f}): `,A.style.cursor="pointer",n.add(wt(A,"click",b=>{if(b.stopPropagation(),b.preventDefault(),this._openerService){const w={selection:{startLineNumber:v,startColumn:f}};this._openerService.open(m,{fromUserGesture:!0,editorOptions:w}).catch(zi)}}));const p=Xt(k,$A("span"));p.innerText=g,this._editor.applyFontInfo(p)}return{hoverPart:t,hoverElement:r,dispose:()=>n.dispose()}}_renderMarkerStatusbar(t,n){const r=new xt;if(n.marker.severity===xl.Error||n.marker.severity===xl.Warning||n.marker.severity===xl.Info){const o=DR.get(this._editor);o&&t.statusBar.addAction({label:U(1139,"View Problem"),commandId:v0e.ID,run:()=>{t.hide(),o.showAtMarker(n.marker),this._editor.focus()}})}if(!this._editor.getOption(104)){const o=t.statusBar.append($A("div"));this.recentMarkerCodeActionsInfo&&(Y1e.makeKey(this.recentMarkerCodeActionsInfo.marker)===Y1e.makeKey(n.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(o.textContent=U(1140,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const s=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?ft.None:B8(()=>o.textContent=U(1141,"Checking for quick fixes..."),200,r);o.textContent||(o.textContent=" ");const a=this.getCodeActions(n.marker);r.add(Hn(()=>a.cancel())),a.then(l=>{var h;if(s.dispose(),this.recentMarkerCodeActionsInfo={marker:n.marker,hasCodeActions:l.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){l.dispose(),o.textContent=U(1142,"No quick fixes available");return}o.style.display="none";let d=!1;r.add(Hn(()=>{d||l.dispose()})),t.statusBar.addAction({label:U(1143,"Quick Fix..."),commandId:ztt,run:g=>{d=!0;const m=_R.get(this._editor),v=Kl(g);t.hide(),m==null||m.showCodeActions(Pyt,l,{x:v.left,y:v.top,width:v.width,height:v.height})}});const u=l.validActions.find(g=>g.action.isAI);u&&t.statusBar.addAction({label:u.action.title,commandId:((h=u.action.command)==null?void 0:h.id)??"",iconClass:fi.asClassName(zt.sparkle),run:()=>{const g=_R.get(this._editor);g==null||g.applyCodeAction(u,!1,!1,p9.FromProblemsHover)}}),t.onContentsChanged()},zi)}return r}getCodeActions(t){return Fd(n=>ON(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new Ee(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),Pyt,qb.None,n))}};EWe=pbo([wxe(1,ket),wxe(2,OL),wxe(3,Nn)],EWe);var QRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},$U=function(e,t){return function(n,r){t(n,r,e)}},TWe,QWe;let DWe=TWe=class extends ft{constructor(t,n,r,o,s,a,l){super();const d=n.hoverParts;this._renderedHoverParts=this._register(new BWe(t,r,d,o,s,a,l));const u=n.options,h=u.anchor,{showAtPosition:g,showAtSecondaryPosition:m}=TWe.computeHoverPositions(t,h.range,d);this.shouldAppearBeforeContent=d.some(v=>v.isBeforeContent),this.showAtPosition=g,this.showAtSecondaryPosition=m,this.initialMousePosX=h.initialMousePosX,this.initialMousePosY=h.initialMousePosY,this.shouldFocus=u.shouldFocus,this.source=u.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}get hoverPartsCount(){return this._renderedHoverParts.hoverPartsCount}focusHoverPartWithIndex(t){this._renderedHoverParts.focusHoverPartWithIndex(t)}async updateHoverVerbosityLevel(t,n,r){this._renderedHoverParts.updateHoverVerbosityLevel(t,n,r)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(t,n,r){let o=1;if(t.hasModel()){const h=t._getViewModel(),g=h.coordinatesConverter,m=g.convertModelRangeToViewRange(n),v=h.getLineMinColumn(m.startLineNumber),f=new it(m.startLineNumber,v);o=g.convertViewPositionToModelPosition(f).column}const s=n.startLineNumber;let a=n.startColumn,l;for(const h of r){const g=h.range,m=g.startLineNumber===s,v=g.endLineNumber===s;if(m&&v){const k=g.startColumn,A=Math.min(a,k);a=Math.max(A,o)}h.forceShowAtRange&&(l=g)}let d,u;if(l){const h=l.getStartPosition();d=h,u=h}else d=n.getStartPosition(),u=new it(s,a);return{showAtPosition:d,showAtSecondaryPosition:u}}};DWe=TWe=QRn([$U(4,Do),$U(5,pm),$U(6,U0)],DWe);class bbo{constructor(t,n){this._statusBar=n,t.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var ZD;let BWe=(ZD=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._hoverService=a,this._clipboardService=l,this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=o,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(n,r,o,s,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(t,r)),this._updateMarkdownAndColorParticipantInfo(n)}_createEditorDecorations(t,n){if(n.length===0)return ft.None;let r=n[0].range;for(const s of n){const a=s.range;r=Ee.plusRange(r,a)}const o=t.createDecorationsCollection();return o.set([{range:r,options:QWe._DECORATION_OPTIONS}]),Hn(()=>{o.clear()})}_renderParts(t,n,r,o,s){const a=new K1e(o,s),l={fragment:this._fragment,statusBar:a,...r},d=new xt;d.add(a);for(const h of t){const g=this._renderHoverPartsForParticipant(n,h,l);d.add(g);for(const m of g.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:h,hoverPart:m.hoverPart,hoverElement:m.hoverElement})}const u=this._renderStatusBar(this._fragment,a);return u&&(d.add(u),this._renderedParts.push({type:"statusBar",hoverElement:u.hoverElement,actions:u.actions})),d}_renderHoverPartsForParticipant(t,n,r){const o=t.filter(a=>a.owner===n);return o.length>0?n.renderHoverParts(r,o):new SR([])}_renderStatusBar(t,n){if(n.hasContent)return new bbo(t,n)}_registerListenersOnRenderedParts(){const t=new xt;return this._renderedParts.forEach((n,r)=>{const o=n.hoverElement;o.tabIndex=0,t.add(wt(o,rn.FOCUS_IN,s=>{s.stopPropagation(),this._focusedHoverPartIndex=r})),t.add(wt(o,rn.FOCUS_OUT,s=>{s.stopPropagation(),this._focusedHoverPartIndex=-1})),n.type==="hoverPart"&&n.hoverPart instanceof TRn&&t.add(new nWe(o,()=>n.participant.getAccessibleContent(n.hoverPart),this._clipboardService,this._hoverService))}),t}_updateMarkdownAndColorParticipantInfo(t){const n=t.find(r=>r instanceof zJ&&!(r instanceof m0e));n&&(this._markdownHoverParticipant=n),this._colorHoverParticipant=t.find(r=>r instanceof e0e)}focusHoverPartWithIndex(t){t<0||t>=this._renderedParts.length||this._renderedParts[t].hoverElement.focus()}async updateHoverVerbosityLevel(t,n,r){if(!this._markdownHoverParticipant)return;let o;n>=0?o={start:n,endExclusive:n+1}:o=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let s=o.start;s=0?this.focusHoverPartWithIndex(n):this._context.focus()),this._context.onContentsChanged()}isColorPickerVisible(){var t;return((t=this._colorHoverParticipant)==null?void 0:t.isColorPickerVisible())??!1}_normalizedIndexToMarkdownHoverIndexRange(t,n){const r=this._renderedParts[n];if(!r||r.type!=="hoverPart"||!(r.participant===t))return;const s=this._renderedParts.findIndex(a=>a.type==="hoverPart"&&a.participant===t);if(s===-1)throw new ui;return n-s}_findRangeOfMarkdownHoverParts(t){const n=this._renderedParts.slice(),r=n.findIndex(a=>a.type==="hoverPart"&&a.participant===t),o=n.reverse().findIndex(a=>a.type==="hoverPart"&&a.participant===t),s=o>=0?n.length-o:o;return{start:r,endExclusive:s+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}},QWe=ZD,ZD._DECORATION_OPTIONS=Gi.register({description:"content-hover-highlight",className:"hoverHighlight"}),ZD);BWe=QWe=QRn([$U(4,Do),$U(5,pm),$U(6,U0)],BWe);var wbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},tce=function(e,t){return function(n,r){t(n,r,e)}};let RWe=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._instantiationService=n,this._keybindingService=r,this._hoverService=o,this._clipboardService=s,this._currentResult=null,this._renderedContentHover=this._register(new ts),this._onContentsChanged=this._register(new at),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(Zje,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new vBn(this._editor,new q1e(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){const t=[];for(const n of BI.getAll()){const r=this._instantiationService.createInstance(n,this._editor);t.push(r)}return t.sort((n,r)=>n.hoverOrdinal-r.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(n=>{var r;return(r=n.handleResize)==null?void 0:r.call(n)})})),this._register(this._contentHoverWidget.onDidScroll(n=>{this._participants.forEach(r=>{var o;return(o=r.handleScroll)==null?void 0:o.call(r,n)})})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach(n=>{var r;return(r=n.handleContentsChanged)==null?void 0:r.call(n)})})),t}_registerListeners(){this._register(this._hoverOperation.onResult(n=>{const r=n.hasLoadingMessage?this._addLoadingMessage(n):n.value;this._withResult(new wBn(r,n.isComplete,n.options))}));const t=this._contentHoverWidget.getDomNode();this._register(wc(t,"keydown",n=>{n.equals(9)&&this.hide()})),this._register(wc(t,"mouseleave",n=>{this._onMouseLeave(n)})),this._register(Hl.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(t,n,r,o,s){if(!(this._contentHoverWidget.position&&this._currentResult))return t?(this._startHoverOperationIfNecessary(t,n,r,o,!1),!0):!1;const l=this._editor.getOption(69).sticky,d=s&&this._contentHoverWidget.isMouseGettingCloser(s.event.posx,s.event.posy);return l&&d?(t&&this._startHoverOperationIfNecessary(t,n,r,o,!0),!0):t?this._currentResult&&this._currentResult.options.anchor.equals(t)?!0:this._currentResult&&t.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)?(this._currentResult&&this._setCurrentResult(this._currentResult.filter(t)),this._startHoverOperationIfNecessary(t,n,r,o,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(t,n,r,o,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(t,n,r,o,s){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(t))return;this._hoverOperation.cancel();const l={anchor:t,source:r,shouldFocus:o,insistOnKeepingHoverVisible:s};this._hoverOperation.start(n,l)}_setCurrentResult(t){let n=t;if(this._currentResult===n)return;n&&n.hoverParts.length===0&&(n=null),this._currentResult=n,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(t){for(const n of this._participants){if(!n.createLoadingMessage)continue;const r=n.createLoadingMessage(t.options.anchor);if(r)return t.value.slice(0).concat([r])}return t.value}_withResult(t){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(t),!t.isComplete)return;const o=t.hoverParts.length===0,s=t.options.insistOnKeepingHoverVisible;o&&s||this._setCurrentResult(t)}_showHover(t){const n=this._getHoverContext();this._renderedContentHover.value=new DWe(this._editor,t,this._participants,n,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover.value):this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach(t=>{var n;return(n=t.handleHide)==null?void 0:n.call(t)})}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:s=>{this._contentHoverWidget.setMinimumDimensions(s)},focus:()=>this.focus()}}showsOrWillShow(t){if(this._contentHoverWidget.isResizing)return!0;const r=this._findHoverAnchorCandidates(t);if(!(r.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,t);const s=r[0];return this._startShowingOrUpdateHover(s,0,0,!1,t)}_findHoverAnchorCandidates(t){const n=[];for(const o of this._participants){if(!o.suggestHoverAnchor)continue;const s=o.suggestHoverAnchor(t);s&&n.push(s)}const r=t.target;switch(r.type){case 6:{n.push(new uxe(0,r.range,t.event.posx,t.event.posy));break}case 7:{const o=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!r.detail.isAfterLines&&typeof r.detail.horizontalDistanceToText=="number"&&r.detail.horizontalDistanceToTexts.priority-o.priority),n}_onMouseLeave(t){const n=this._editor.getDomNode();(!n||!b3e(n,t.x,t.y))&&this.hide()}startShowingAtRange(t,n,r,o){this._startShowingOrUpdateHover(new uxe(0,t,void 0,void 0),n,r,o,null)}async updateHoverVerbosityLevel(t,n,r){var o;(o=this._renderedContentHover.value)==null||o.updateHoverVerbosityLevel(t,n,r)}focusedHoverPartIndex(){var t;return((t=this._renderedContentHover.value)==null?void 0:t.focusedHoverPartIndex)??-1}containsNode(t){return t?this._contentHoverWidget.getDomNode().contains(t):!1}focus(){var n;if(((n=this._renderedContentHover.value)==null?void 0:n.hoverPartsCount)===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(t){var n;(n=this._renderedContentHover.value)==null||n.focusHoverPartWithIndex(t)}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){var t;return((t=this._renderedContentHover.value)==null?void 0:t.isColorPickerVisible())??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};RWe=wbo([tce(1,Yn),tce(2,Do),tce(3,pm),tce(4,U0)],RWe);function DRn(e){var n;const t=e.target;return!!t&&t.type===6&&((n=t.detail.injectedText)==null?void 0:n.options.attachedData)===hBn}var Obo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Oxe=function(e,t){return function(n,r){t(n,r,e)}},IWe,qD;let If=(qD=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._instantiationService=r,this._keybindingService=o,this._onHoverContentsChanged=this._register(new at),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new xt,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new Es(()=>{this._mouseMoveEvent&&this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(n.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(n.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}static get(t){return t.getContribution(IWe.ID)}_hookListeners(){const t=this._editor.getOption(69);this._hoverSettings={enabled:t.enabled,sticky:t.sticky,hidingDelay:t.hidingDelay},t.enabled||this._cancelSchedulerAndHide(),this._listenersStore.add(this._editor.onMouseDown(n=>this._onEditorMouseDown(n))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n))),this._listenersStore.add(this._editor.onMouseLeave(n=>this._onEditorMouseLeave(n))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(n=>this._onEditorScrollChanged(n)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(t){this._ignoreMouseEvents||(t.scrollTopChanged||t.scrollLeftChanged)&&this.hideContentHover()}_onEditorMouseDown(t){this._ignoreMouseEvents||(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(t))||this.hideContentHover()}_shouldKeepHoverWidgetVisible(t){return this._isMouseOnContentHoverWidget(t)||this._isContentWidgetResizing()||DRn(t)}_isMouseOnContentHoverWidget(t){return this._contentWidget?b3e(this._contentWidget.getDomNode(),t.event.posx,t.event.posy):!1}_onEditorMouseUp(){this._ignoreMouseEvents||(this._isMouseDown=!1)}_onEditorMouseLeave(t){this._ignoreMouseEvents||this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(t))||this.hideContentHover()}_shouldKeepCurrentHover(t){const n=this._contentWidget;if(!n)return!1;const r=this._hoverSettings.sticky,o=(h,g)=>{const m=this._isMouseOnContentHoverWidget(h);return g&&m},s=h=>{const g=n.isColorPickerVisible,m=this._isMouseOnContentHoverWidget(h),v=g&&m,f=g&&this._isMouseDown;return v||f},a=(h,g)=>{var v;const m=h.event.browserEvent.view;return m?g&&n.containsNode(m.document.activeElement)&&!((v=m.getSelection())!=null&&v.isCollapsed):!1},l=n.isFocused,d=n.isResizing,u=this._hoverSettings.sticky&&n.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||l||d||u||o(t,r)||s(t)||a(t,r)}_onEditorMouseMove(t){if(this._ignoreMouseEvents)return;if(this._mouseMoveEvent=t,this._shouldKeepCurrentHover(t)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(t)}_shouldRescheduleHoverComputation(){var r;const t=this._hoverSettings.hidingDelay;return(((r=this._contentWidget)==null?void 0:r.isVisible)??!1)&&this._hoverSettings.sticky&&t>0}_reactToEditorMouseMove(t){this._hoverSettings.enabled&&this._getOrCreateContentWidget().showsOrWillShow(t)||this.hideContentHover()}_onKeyDown(t){if(this._ignoreMouseEvents||!this._contentWidget)return;const n=this._isPotentialKeyboardShortcut(t),r=this._isModifierKeyPressed(t);n||r||this._contentWidget.isFocused&&t.keyCode===2||this.hideContentHover()}_isPotentialKeyboardShortcut(t){if(!this._editor.hasModel()||!this._contentWidget)return!1;const n=this._keybindingService.softDispatch(t,this._editor.getDomNode()),r=n.kind===1,o=n.kind===2&&(n.commandId===fBn||n.commandId===A3e||n.commandId===p3e)&&this._contentWidget.isVisible;return r||o}_isModifierKeyPressed(t){return t.keyCode===5||t.keyCode===6||t.keyCode===57||t.keyCode===4}hideContentHover(){var t;AV.dropDownVisible||(t=this._contentWidget)==null||t.hide()}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(RWe,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(t,n,r,o){this._getOrCreateContentWidget().startShowingAtRange(t,n,r,o)}_isContentWidgetResizing(){var t;return((t=this._contentWidget)==null?void 0:t.widget.isResizing)||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(t,n,r){this._getOrCreateContentWidget().updateHoverVerbosityLevel(t,n,r)}focus(){var t;(t=this._contentWidget)==null||t.focus()}scrollUp(){var t;(t=this._contentWidget)==null||t.scrollUp()}scrollDown(){var t;(t=this._contentWidget)==null||t.scrollDown()}scrollLeft(){var t;(t=this._contentWidget)==null||t.scrollLeft()}scrollRight(){var t;(t=this._contentWidget)==null||t.scrollRight()}pageUp(){var t;(t=this._contentWidget)==null||t.pageUp()}pageDown(){var t;(t=this._contentWidget)==null||t.pageDown()}goToTop(){var t;(t=this._contentWidget)==null||t.goToTop()}goToBottom(){var t;(t=this._contentWidget)==null||t.goToBottom()}get isColorPickerVisible(){var t;return(t=this._contentWidget)==null?void 0:t.isColorPickerVisible}get isHoverVisible(){var t;return(t=this._contentWidget)==null?void 0:t.isVisible}dispose(){var t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(t=this._contentWidget)==null||t.dispose()}},IWe=qD,qD.ID="editor.contrib.contentHover",qD);If=IWe=Obo([Oxe(1,S2),Oxe(2,Yn),Oxe(3,Do)],If);const vat=class vat extends ft{constructor(t){super(),this._editor=t,this._register(t.onMouseDown(n=>this.onMouseDown(n)))}dispose(){super.dispose()}onMouseDown(t){const n=this._editor.getOption(168);if(n!=="click"&&n!=="clickAndHover"||!DRn(t))return;const r=this._editor.getContribution(If.ID);if(!r||r.isColorPickerVisible)return;const o=t.target.range;if(!o)return;const s=new Ee(o.startLineNumber,o.startColumn+1,o.endLineNumber,o.endColumn+1);r.showContentHover(s,1,1,!1)}};vat.ID="editor.contrib.colorContribution";let A0e=vat;var ybo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Cbo=function(e,t){return function(n,r){t(n,r,e)}};class _nt{constructor(t,n,r,o){this.owner=t,this.range=n,this.model=r,this.provider=o}static fromBaseColor(t,n){return new _nt(t,n.range,n.model,n.provider)}}class _bo extends ft{constructor(t,n,r,o){super();const s=t.getModel(),a=r.model;this.color=r.model.color,this.colorPicker=this._register(new jBn(n.fragment,a,t.getOption(163),o,"standalone")),this._register(a.onColorFlushed(l=>{this.color=l})),this._register(a.onDidChangeColor(l=>{HJ(s,a,l,r.range,r)})),this._register(t.onDidChangeModelContent(l=>{n.hide(),t.focus()})),HJ(s,a,this.color,r.range,r)}}let MWe=class{constructor(t,n){this._editor=t,this._themeService=n}async createColorHover(t,n,r){if(!this._editor.hasModel()||!vV.get(this._editor))return null;const s=await cBn(r,this._editor.getModel(),Er.None);let a=null,l=null;for(const m of s){const v=m.colorInfo;Ee.containsRange(v.range,t.range)&&(a=v,l=m.provider)}const d=a??t,u=l??n,h=!!a;return{colorHover:_nt.fromBaseColor(this,await WBn(this._editor.getModel(),d,u)),foundInEditor:h}}async updateEditorModel(t){if(!this._editor.hasModel())return;const n=t.model;let r=new Ee(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn);this._color&&(await HJ(this._editor.getModel(),n,this._color,r,t),r=VBn(this._editor,r,n))}renderHoverParts(t,n){if(!(n.length===0||!this._editor.hasModel()))return this._setMinimumDimensions(t),this._renderedParts=new _bo(this._editor,t,n[0],this._themeService),this._renderedParts}_setMinimumDimensions(t){const n=this._editor.getOption(75)+8;t.setMinimumDimensions(new cs(302,n))}get _color(){var t;return(t=this._renderedParts)==null?void 0:t.color}};MWe=ybo([Cbo(1,Dl)],MWe);var Sbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},EX=function(e,t){return function(n,r){t(n,r,e)}},PWe;class Lbo{constructor(t,n){this.value=t,this.foundInEditor=n}}const Fyt=8,xbo=22;var KD;let FWe=(KD=class extends ft{constructor(t,n,r,o,s,a,l,d){var m;super(),this._editor=t,this._standaloneColorPickerVisible=n,this._standaloneColorPickerFocused=r,this._keybindingService=s,this._languageFeaturesService=a,this._editorWorkerService=l,this._hoverService=d,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new at),this.onResult=this._onResult.event,this._renderedHoverParts=this._register(new ts),this._renderedStatusBar=this._register(new ts),this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=o.createInstance(MWe,this._editor),this._position=(m=this._editor._getViewModel())==null?void 0:m.getPrimaryCursorState().modelState.position;const u=this._editor.getSelection(),h=u?{startLineNumber:u.startLineNumber,startColumn:u.startColumn,endLineNumber:u.endLineNumber,endColumn:u.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},g=this._register(uA(this._body));this._register(g.onDidBlur(v=>{this.hide()})),this._register(g.onDidFocus(v=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(v=>{var k;const f=(k=v.target.element)==null?void 0:k.classList;f&&f.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(v=>{this._render(v.value,v.foundInEditor)})),this._start(h),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return PWe.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const t=this._editor.getOption(69).above;return{position:this._position,secondaryPosition:this._position,preference:t?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(t){const n=await this._computeAsync(t);n&&this._onResult.fire(new Lbo(n.result,n.foundInEditor))}async _computeAsync(t){if(!this._editor.hasModel())return null;const n={range:t,color:{red:0,green:0,blue:0,alpha:1}},r=await this._standaloneColorPickerParticipant.createColorHover(n,new jJ(this._editorWorkerService),this._languageFeaturesService.colorProvider);return r?{result:r.colorHover,foundInEditor:r.foundInEditor}:null}_render(t,n){const r=document.createDocumentFragment();this._renderedStatusBar.value=this._register(new K1e(this._keybindingService,this._hoverService));const o={fragment:r,statusBar:this._renderedStatusBar.value,onContentsChanged:()=>{},setMinimumDimensions:()=>{},hide:()=>this.hide(),focus:()=>this.focus()};if(this._colorHover=t,this._renderedHoverParts.value=this._standaloneColorPickerParticipant.renderHoverParts(o,[t]),!this._renderedHoverParts.value){this._renderedStatusBar.clear(),this._renderedHoverParts.clear();return}const s=this._renderedHoverParts.value.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(r),s.layout();const a=s.body,l=a.saturationBox.domNode.clientWidth,d=a.domNode.clientWidth-l-xbo-Fyt,u=s.body.enterButton;u==null||u.onClicked(()=>{this.updateEditor(),this.hide()});const h=s.header,g=h.pickedColorNode;g.style.width=l+Fyt+"px";const m=h.originalColorNode;m.style.width=d+"px";const v=s.header.closeButton;v==null||v.onClicked(()=>{this.hide()}),n&&(u&&(u.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(t.range)),this._editor.layoutContentWidget(this)}},PWe=KD,KD.ID="editor.contrib.standaloneColorPickerWidget",KD);FWe=PWe=Sbo([EX(3,Yn),EX(4,Do),EX(5,Nn),EX(6,S1),EX(7,pm)],FWe);var Ebo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Nyt=function(e,t){return function(n,r){t(n,r,e)}},NWe,JD;let BR=(JD=class extends ft{constructor(t,n,r){super(),this._editor=t,this._instantiationService=r,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=$e.standaloneColorPickerVisible.bindTo(n),this._standaloneColorPickerFocused=$e.standaloneColorPickerFocused.bindTo(n)}showOrFocus(){var t;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(t=this._standaloneColorPickerWidget)==null||t.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(FWe,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){var t;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(t=this._standaloneColorPickerWidget)==null||t.hide(),this._editor.focus()}insertColor(){var t;(t=this._standaloneColorPickerWidget)==null||t.updateEditor(),this.hide()}static get(t){return t.getContribution(NWe.ID)}},NWe=JD,JD.ID="editor.contrib.standaloneColorPickerController",JD);BR=NWe=Ebo([Nyt(1,Qi),Nyt(2,Yn)],BR);class Tbo extends Op{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{..._t(889,"Show or Focus Standalone Color Picker"),mnemonicTitle:U(888,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:Wn.CommandPalette}],metadata:{description:_t(890,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(t,n){var r;(r=BR.get(n))==null||r.showOrFocus()}}class Qbo extends Bn{constructor(){super({id:"editor.action.hideColorPicker",label:_t(891,"Hide the Color Picker"),precondition:$e.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:_t(892,"Hide the standalone color picker.")}})}run(t,n){var r;(r=BR.get(n))==null||r.hide()}}class Dbo extends Bn{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:_t(893,"Insert Color with Standalone Color Picker"),precondition:$e.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:_t(894,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(t,n){var r;(r=BR.get(n))==null||r.insertColor()}}un(Qbo);un(Dbo);ys(Tbo);mo(A0e.ID,A0e,2);mo(BR.ID,BR,1);mo(vV.ID,vV,1);dH(Hje);BI.register(e0e);uo.registerCommand("_executeDocumentColorProvider",function(e,...t){const[n]=t;if(!(n instanceof vi))throw Gv();const{model:r,colorProviderRegistry:o,defaultColorDecoratorsEnablement:s}=uBn(e,n);return Xtt(new Hvo,o,r,Er.None,s)});uo.registerCommand("_executeColorPresentationProvider",function(e,...t){const[n,r]=t;if(!r)return;const{uri:o,range:s}=r;if(!(o instanceof vi)||!Array.isArray(n)||n.length!==4||!Ee.isIRange(s))throw Gv();const{model:a,colorProviderRegistry:l,defaultColorDecoratorsEnablement:d}=uBn(e,o),[u,h,g,m]=n;return Xtt(new $vo({range:s,color:{red:u,green:h,blue:g,alpha:m}}),l,a,Er.None,d)});class w9{constructor(t,n,r){this.languageConfigurationService=r,this._selection=t,this._insertSpace=n,this._usedEndToken=null}static _haystackHasNeedleAtOffset(t,n,r){if(r<0)return!1;const o=n.length,s=t.length;if(r+o>s)return!1;for(let a=0;a=65&&l<=90&&l+32===d)&&!(d>=65&&d<=90&&d+32===l))return!1}return!0}_createOperationsForBlockComment(t,n,r,o,s,a){const l=t.startLineNumber,d=t.startColumn,u=t.endLineNumber,h=t.endColumn,g=s.getLineContent(l),m=s.getLineContent(u);let v=g.lastIndexOf(n,d-1+n.length),f=m.indexOf(r,h-1-r.length);if(v!==-1&&f!==-1)if(l===u)g.substring(v+n.length,f).indexOf(r)>=0&&(v=-1,f=-1);else{const A=g.substring(v+n.length),p=m.substring(0,f);(A.indexOf(r)>=0||p.indexOf(r)>=0)&&(v=-1,f=-1)}let k;v!==-1&&f!==-1?(o&&v+n.length0&&m.charCodeAt(f-1)===32&&(r=" "+r,f-=1),k=w9._createRemoveBlockCommentOperations(new Ee(l,v+n.length+1,u,f+1),n,r)):(k=w9._createAddBlockCommentOperations(t,n,r,this._insertSpace),this._usedEndToken=k.length===1?r:null);for(const A of k)a.addTrackedEditOperation(A.range,A.text)}static _createRemoveBlockCommentOperations(t,n,r){const o=[];return Ee.isEmpty(t)?o.push($l.delete(new Ee(t.startLineNumber,t.startColumn-n.length,t.endLineNumber,t.endColumn+r.length))):(o.push($l.delete(new Ee(t.startLineNumber,t.startColumn-n.length,t.startLineNumber,t.startColumn))),o.push($l.delete(new Ee(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn+r.length)))),o}static _createAddBlockCommentOperations(t,n,r,o){const s=[];return Ee.isEmpty(t)?s.push($l.replace(new Ee(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),n+" "+r)):(s.push($l.insert(new it(t.startLineNumber,t.startColumn),n+(o?" ":""))),s.push($l.insert(new it(t.endLineNumber,t.endColumn),(o?" ":"")+r))),s}getEditOperations(t,n){const r=this._selection.startLineNumber,o=this._selection.startColumn;t.tokenization.tokenizeIfCheap(r);const s=t.getLanguageIdAtPosition(r,o),a=this.languageConfigurationService.getLanguageConfiguration(s).comments;!a||!a.blockCommentStartToken||!a.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,a.blockCommentStartToken,a.blockCommentEndToken,this._insertSpace,t,n)}computeCursorState(t,n){const r=n.getInverseEditOperations();if(r.length===2){const o=r[0],s=r[1];return new Qn(o.range.endLineNumber,o.range.endColumn,s.range.startLineNumber,s.range.startColumn)}else{const o=r[0].range,s=this._usedEndToken?-this._usedEndToken.length-1:0;return new Qn(o.endLineNumber,o.endColumn+s,o.endLineNumber,o.endColumn+s)}}}class W_{constructor(t,n,r,o,s,a,l){this.languageConfigurationService=t,this._selection=n,this._indentSize=r,this._type=o,this._insertSpace=s,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=a,this._ignoreFirstLine=l||!1}static _gatherPreflightCommentStrings(t,n,r,o){t.tokenization.tokenizeIfCheap(n);const s=t.getLanguageIdAtPosition(n,1),a=o.getLanguageConfiguration(s).comments,l=a?a.lineCommentToken:null;if(!l)return null;const d=[];for(let u=0,h=r-n+1;us?n[d].commentStrOffset=a-1:n[d].commentStrOffset=a}}}class Snt extends Bn{constructor(t,n){super(n),this._type=t}run(t,n){const r=t.get(kl);if(!n.hasModel())return;const o=n.getModel(),s=[],a=o.getOptions(),l=n.getOption(29),d=n.getSelections().map((h,g)=>({selection:h,index:g,ignoreFirstLine:!1}));d.sort((h,g)=>Ee.compareRangesUsingStarts(h.selection,g.selection));let u=d[0];for(let h=1;h=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},w7=function(e,t){return function(n,r){t(n,r,e)}},UWe,eB;let qJ=(eB=class{static get(t){return t.getContribution(UWe.ID)}constructor(t,n,r,o,s,a,l,d){this._contextMenuService=n,this._contextViewService=r,this._contextKeyService=o,this._keybindingService=s,this._menuService=a,this._configurationService=l,this._workspaceContextService=d,this._toDispose=new xt,this._contextMenuIsBeingShownCount=0,this._editor=t,this._toDispose.add(this._editor.onContextMenu(u=>this._onContextMenu(u))),this._toDispose.add(this._editor.onMouseWheel(u=>{if(this._contextMenuIsBeingShownCount>0){const h=this._contextViewService.getContextViewElement(),g=u.srcElement;g.shadowRoot&&y6(h)===g.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(u=>{this._editor.getOption(30)&&u.keyCode===58&&(u.preventDefault(),u.stopPropagation(),this.showContextMenu())}))}_onContextMenu(t){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){this._editor.focus(),t.target.position&&!this._editor.getSelection().containsPosition(t.target.position)&&this._editor.setPosition(t.target.position);return}if(t.target.type===12||t.target.type===6&&t.target.detail.injectedText)return;if(t.event.preventDefault(),t.event.stopPropagation(),t.target.type===11)return this._showScrollbarContextMenu(t.event);if(t.target.type!==6&&t.target.type!==7&&t.target.type!==1)return;if(this._editor.focus(),t.target.position){let r=!1;for(const o of this._editor.getSelections())if(o.containsPosition(t.target.position)){r=!0;break}r||this._editor.setPosition(t.target.position)}let n=null;t.target.type!==1&&(n=t.event),this.showContextMenu(n)}showContextMenu(t){if(!this._editor.getOption(30)||!this._editor.hasModel())return;const n=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);n.length>0&&this._doShowContextMenu(n,t)}_getMenuActions(t,n){const r=[],o=this._menuService.getMenuActions(n,this._contextKeyService,{arg:t.uri});for(const s of o){const[,a]=s;let l=0;for(const d of a)if(d instanceof uD){const u=this._getMenuActions(t,d.item.submenu);u.length>0&&(r.push(new JW(d.id,d.label,u)),l++)}else r.push(d),l++;l&&r.push(new pd)}return r.length&&r.pop(),r}_doShowContextMenu(t,n=null){if(!this._editor.hasModel())return;let r=n;if(!r){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const s=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=Kl(this._editor.getDomNode()),l=a.left+s.left,d=a.top+s.top+s.height;r={x:l,y:d}}const o=this._editor.getOption(144)&&!cA;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:o?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>r,getActions:()=>t,getActionViewItem:s=>{const a=this._keybindingFor(s);if(a)return new gV(s,s,{label:!0,keybinding:a.getLabel(),isMenu:!0});const l=s;return typeof l.getActionViewItem=="function"?l.getActionViewItem():new gV(s,s,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:s=>this._keybindingFor(s),onHide:s=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(t){if(!this._editor.hasModel()||V2o(this._workspaceContextService.getWorkspace()))return;const n=this._editor.getOption(81);let r=0;const o=u=>({id:`menu-action-${++r}`,label:u.label,tooltip:"",class:void 0,enabled:typeof u.enabled>"u"?!0:u.enabled,checked:u.checked,run:u.run}),s=(u,h)=>new JW(`menu-action-${++r}`,u,h,void 0),a=(u,h,g,m,v)=>{if(!h)return o({label:u,enabled:h,run:()=>{}});const f=A=>()=>{this._configurationService.updateValue(g,A)},k=[];for(const A of v)k.push(o({label:A.label,checked:m===A.value,run:f(A.value)}));return s(u,k)},l=[];l.push(o({label:U(901,"Minimap"),checked:n.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!n.enabled)}})),l.push(new pd),l.push(o({label:U(902,"Render Characters"),enabled:n.enabled,checked:n.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!n.renderCharacters)}})),l.push(a(U(903,"Vertical size"),n.enabled,"editor.minimap.size",n.size,[{label:U(904,"Proportional"),value:"proportional"},{label:U(905,"Fill"),value:"fill"},{label:U(906,"Fit"),value:"fit"}])),l.push(a(U(907,"Slider"),n.enabled,"editor.minimap.showSlider",n.showSlider,[{label:U(908,"Mouse Over"),value:"mouseover"},{label:U(909,"Always"),value:"always"}]));const d=this._editor.getOption(144)&&!cA;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:d?this._editor.getDomNode():void 0,getAnchor:()=>t,getActions:()=>l,onHide:u=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(t){return this._keybindingService.lookupKeybinding(t.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}},UWe=eB,eB.ID="editor.contrib.contextmenu",eB);qJ=UWe=Pbo([w7(1,S2),w7(2,wL),w7(3,Qi),w7(4,Do),w7(5,wA),w7(6,ar),w7(7,H8)],qJ);class Fbo extends Bn{constructor(){super({id:"editor.action.showContextMenu",label:_t(910,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:1092,weight:100}})}run(t,n){var r;(r=qJ.get(n))==null||r.showContextMenu()}}mo(qJ.ID,qJ,2);un(Fbo);class yxe{constructor(t){this.selections=t}equals(t){const n=this.selections.length,r=t.selections.length;if(n!==r)return!1;for(let o=0;o{this._undoStack=[],this._redoStack=[]})),this._register(t.onDidChangeModelContent(n=>{this._undoStack=[],this._redoStack=[]})),this._register(t.onDidChangeCursorSelection(n=>{if(this._isCursorUndoRedo||!n.oldSelections||n.oldModelVersionId!==n.modelVersionId)return;const r=new yxe(n.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(r)||(this._undoStack.push(new Cxe(r,t.getScrollTop(),t.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new Cxe(new yxe(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new Cxe(new yxe(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(t){this._isCursorUndoRedo=!0,this._editor.setSelections(t.cursorState.selections),this._editor.setScrollPosition({scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),this._isCursorUndoRedo=!1}};tAe.ID="editor.contrib.cursorUndoRedoController";let OV=tAe;class Nbo extends Bn{constructor(){super({id:"cursorUndo",label:_t(911,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:2099,weight:100}})}run(t,n,r){var o;(o=OV.get(n))==null||o.cursorUndo()}}class Ubo extends Bn{constructor(){super({id:"cursorRedo",label:_t(912,"Cursor Redo"),precondition:void 0})}run(t,n,r){var o;(o=OV.get(n))==null||o.cursorRedo()}}mo(OV.ID,OV,0);un(Nbo);un(Ubo);class jbo{constructor(t,n,r){this.selection=t,this.targetPosition=n,this.copy=r,this.targetSelection=null}getEditOperations(t,n){const r=t.getValueInRange(this.selection);if(this.copy||n.addEditOperation(this.selection,null),n.addEditOperation(new Ee(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),r),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new Qn(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new Qn(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumberthis._onEditorMouseDown(n))),this._register(this._editor.onMouseUp(n=>this._onEditorMouseUp(n))),this._register(this._editor.onMouseDrag(n=>this._onEditorMouseDrag(n))),this._register(this._editor.onMouseDrop(n=>this._onEditorMouseDrop(n))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(n=>this.onEditorKeyDown(n))),this._register(this._editor.onKeyUp(n=>this.onEditorKeyUp(n))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(t){!this._editor.getOption(42)||this._editor.getOption(28)||(BP(t)&&(this._modifierPressed=!0),this._mouseDown&&BP(t)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(t){!this._editor.getOption(42)||this._editor.getOption(28)||(BP(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===b5.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(t){this._mouseDown=!0}_onEditorMouseUp(t){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(t){const n=t.target;if(this._dragSelection===null){const o=(this._editor.getSelections()||[]).filter(s=>n.position&&s.containsPosition(n.position));if(o.length===1)this._dragSelection=o[0];else return}BP(t.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),n.position&&(this._dragSelection.containsPosition(n.position)?this._removeDecoration():this.showAt(n.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(t){if(t.target&&(this._hitContent(t.target)||this._hitMargin(t.target))&&t.target.position){const n=new it(t.target.position.lineNumber,t.target.position.column);if(this._dragSelection===null){let r=null;if(t.event.shiftKey){const o=this._editor.getSelection();if(o){const{selectionStartLineNumber:s,selectionStartColumn:a}=o;r=[new Qn(s,a,n.lineNumber,n.column)]}}else r=(this._editor.getSelections()||[]).map(o=>o.containsPosition(n)?new Qn(n.lineNumber,n.column,n.lineNumber,n.column):o);this._editor.setSelections(r||[],"mouse",3)}else(!this._dragSelection.containsPosition(n)||(BP(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(n)||this._dragSelection.getStartPosition().equals(n)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(b5.ID,new jbo(this._dragSelection,n,BP(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(t){this._dndDecorationIds.set([{range:new Ee(t.lineNumber,t.column,t.lineNumber,t.column),options:b5._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(t){return t.type===6||t.type===7}_hitMargin(t){return t.type===2||t.type===3||t.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}};b5.ID="editor.contrib.dragAndDrop",b5.TRIGGER_KEY_VALUE=Tr?6:5,b5._DECORATION_OPTIONS=Gi.register({description:"dnd-target",className:"dnd-target"});let p0e=b5;mo(p0e.ID,p0e,2);const Wbo="editor.action.pasteAs";mo($8.ID,$8,0);dH(Tje);On(new class extends $d{constructor(){super({id:GDn,precondition:Wtt,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t){var n;return(n=$8.get(t))==null?void 0:n.changePasteType()}});On(new class extends $d{constructor(){super({id:"editor.hidePasteWidget",precondition:Wtt,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t){var n;(n=$8.get(t))==null||n.clearWidgets()}});var tB;un((tB=class extends Bn{constructor(){super({id:Wbo,label:_t(915,"Paste As..."),precondition:$e.writable,metadata:{description:"Paste as",args:[{name:"args",schema:tB.argsSchema}]},canTriggerInlineEdits:!0})}run(t,n,r){var s;let o;return r&&("kind"in r?o={only:new El(r.kind)}:"preferences"in r&&(o={preferences:r.preferences.map(a=>new El(a))})),(s=$8.get(n))==null?void 0:s.pasteAs(o)}},tB.argsSchema={oneOf:[{type:"object",required:["kind"],properties:{kind:{type:"string",description:U(913,`The kind of the paste edit to try pasting with. If there are multiple edits for this kind, the editor will show a picker. If there are no edits of this kind, the editor will show an error message.`)}}},{type:"object",required:["preferences"],properties:{preferences:{type:"array",description:U(914,`List of preferred paste edit kind to try applying. The first edit matching the preferences will be applied.`),items:{type:"string"}}}}]},tB));un(class extends Bn{constructor(){super({id:"editor.action.pasteAsText",label:_t(916,"Paste as Text"),precondition:$e.writable,canTriggerInlineEdits:!0})}run(e,t){var n;return(n=$8.get(t))==null?void 0:n.pasteAs({providerId:bR.id})}});class Vbo{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(t){if(t&&this._dragOperations.has(t)){const n=this._dragOperations.get(t);return this._dragOperations.delete(t),n}}}class Uyt{constructor(t){this.identifier=t}}const BRn=Cr("treeViewsDndService");zr(BRn,Vbo,1);var zbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},nce=function(e,t){return function(n,r){t(n,r,e)}},b_;const Hbo="editor.dropIntoEditor.preferences",RRn="editor.changeDropType",Lnt=new yn("dropWidgetVisible",!1,U(934,"Whether the drop widget is showing"));var nB;let yV=(nB=class extends ft{static get(t){return t.getContribution(b_.ID)}constructor(t,n,r,o,s){super(),this._configService=r,this._languageFeaturesService=o,this._treeViewsDragAndDropService=s,this.treeItemsTransfer=yje.getInstance(),this._dropProgressManager=this._register(n.createInstance(W1e,"dropIntoEditor",t)),this._postDropWidgetManager=this._register(n.createInstance(X1e,"dropIntoEditor",t,Lnt,{id:RRn,label:U(935,"Show drop options...")},()=>b_._configureDefaultAction?[b_._configureDefaultAction]:[])),this._register(t.onDropIntoEditor(a=>this.onDropIntoEditor(t,a.position,a.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(t,n,r){var s;if(!r.dataTransfer||!t.hasModel())return;(s=b_._currentDropOperation)==null||s.cancel(),t.focus(),t.setPosition(n);const o=Fd(async a=>{const l=new xt,d=l.add(new z8(t,1,void 0,a));try{const u=await this.extractDataTransferData(r);if(u.size===0||d.token.isCancellationRequested)return;const h=t.getModel();if(!h)return;const g=this._languageFeaturesService.documentDropEditProvider.ordered(h).filter(v=>v.dropMimeTypes?v.dropMimeTypes.some(f=>u.matches(f)):!0),m=l.add(await this.getDropEdits(g,h,n,u,d.token));if(d.token.isCancellationRequested)return;if(m.edits.length){const v=this.getInitialActiveEditIndex(h,m.edits),f=t.getOption(43).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([Ee.fromPositions(n)],{activeEditIndex:v,allEdits:m.edits},f,async k=>k,a)}}finally{l.dispose(),b_._currentDropOperation===o&&(b_._currentDropOperation=void 0)}});this._dropProgressManager.showWhile(n,U(936,"Running drop handlers. Click to cancel"),o,{cancel:()=>o.cancel()}),b_._currentDropOperation=o}async getDropEdits(t,n,r,o,s){const a=new xt,l=await YW(Promise.all(t.map(async u=>{try{const h=await u.provideDocumentDropEdits(n,r,o,s);return h&&a.add(h),h==null?void 0:h.edits.map(g=>({...g,providerId:u.id}))}catch(h){C2(h)||console.error(h),console.error(h)}})),s),d=P3(l??[]).flat();return{edits:VDn(d),dispose:()=>a.dispose()}}getInitialActiveEditIndex(t,n){const r=this._configService.getValue(Hbo,{resource:t.uri});for(const o of Array.isArray(r)?r:[]){const s=new El(o),a=n.findIndex(l=>l.kind&&s.contains(l.kind));if(a>=0)return a}return 0}async extractDataTransferData(t){if(!t.dataTransfer)return new xDn;const n=DDn(t.dataTransfer);if(this.treeItemsTransfer.hasData(Uyt.prototype)){const r=this.treeItemsTransfer.getData(Uyt.prototype);if(Array.isArray(r))for(const o of r){const s=await this._treeViewsDragAndDropService.removeDragOperationTransfer(o.identifier);if(s)for(const[a,l]of s)n.replace(a,l)}}return n}},b_=nB,nB.ID="editor.contrib.dropIntoEditorController",nB);yV=b_=zbo([nce(1,Yn),nce(2,ar),nce(3,Nn),nce(4,BRn)],yV);mo(yV.ID,yV,2);dH(Eje);On(new class extends $d{constructor(){super({id:RRn,precondition:Lnt,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t,n){var r;(r=yV.get(t))==null||r.changeDropType()}});On(new class extends $d{constructor(){super({id:"editor.hideDropWidget",precondition:Lnt,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t,n){var r;(r=yV.get(t))==null||r.clearWidgets()}});const nAe=class nAe extends Y0{constructor(t,n,r){super(),this._hideSoon=this._register(new Es(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=t,this._state=n,this._keybindingService=r,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const o={inputActiveOptionBorder:en(Die),inputActiveOptionForeground:en(Bie),inputActiveOptionBackground:en(eH)},s={groupId:"find-options-widget"};this.caseSensitive=this._register(new SBn({appendTitle:this._keybindingLabelFor(ga.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:s,...o})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new LBn({appendTitle:this._keybindingLabelFor(ga.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:s,...o})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new xBn({appendTitle:this._keybindingLabelFor(ga.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:s,...o})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(a=>{let l=!1;a.isRegex&&(this.regex.checked=this._state.isRegex,l=!0),a.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,l=!0),a.matchCase&&(this.caseSensitive.checked=this._state.matchCase,l=!0),!this._state.isRevealed&&l&&this._revealTemporarily()})),this._register(wt(this._domNode,rn.MOUSE_LEAVE,a=>this._onMouseLeave())),this._register(wt(this._domNode,"mouseover",a=>this._onMouseOver()))}_keybindingLabelFor(t){const n=this._keybindingService.lookupKeybinding(t);return n?` (${n.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return nAe.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}};nAe.ID="editor.contrib.findOptionsWidget";let jWe=nAe;function ice(e,t){return e===1?!0:e===2?!1:t}class $bo extends ft{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return ice(this._isRegexOverride,this._isRegex)}get wholeWord(){return ice(this._wholeWordOverride,this._wholeWord)}get matchCase(){return ice(this._matchCaseOverride,this._matchCase)}get preserveCase(){return ice(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new at),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(t,n,r){const o={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let s=!1;n===0&&(t=0),t>n&&(t=n),this._matchesPosition!==t&&(this._matchesPosition=t,o.matchesPosition=!0,s=!0),this._matchesCount!==n&&(this._matchesCount=n,o.matchesCount=!0,s=!0),typeof r<"u"&&(Ee.equalsRange(this._currentMatch,r)||(this._currentMatch=r,o.currentMatch=!0,s=!0)),s&&this._onFindReplaceStateChange.fire(o)}change(t,n,r=!0){var h;const o={moveCursor:n,updateHistory:r,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let s=!1;const a=this.isRegex,l=this.wholeWord,d=this.matchCase,u=this.preserveCase;typeof t.searchString<"u"&&this._searchString!==t.searchString&&(this._searchString=t.searchString,o.searchString=!0,s=!0),typeof t.replaceString<"u"&&this._replaceString!==t.replaceString&&(this._replaceString=t.replaceString,o.replaceString=!0,s=!0),typeof t.isRevealed<"u"&&this._isRevealed!==t.isRevealed&&(this._isRevealed=t.isRevealed,o.isRevealed=!0,s=!0),typeof t.isReplaceRevealed<"u"&&this._isReplaceRevealed!==t.isReplaceRevealed&&(this._isReplaceRevealed=t.isReplaceRevealed,o.isReplaceRevealed=!0,s=!0),typeof t.isRegex<"u"&&(this._isRegex=t.isRegex),typeof t.wholeWord<"u"&&(this._wholeWord=t.wholeWord),typeof t.matchCase<"u"&&(this._matchCase=t.matchCase),typeof t.preserveCase<"u"&&(this._preserveCase=t.preserveCase),typeof t.searchScope<"u"&&((h=t.searchScope)!=null&&h.every(g=>{var m;return(m=this._searchScope)==null?void 0:m.some(v=>!Ee.equalsRange(v,g))})||(this._searchScope=t.searchScope,o.searchScope=!0,s=!0)),typeof t.loop<"u"&&this._loop!==t.loop&&(this._loop=t.loop,o.loop=!0,s=!0),typeof t.isSearching<"u"&&this._isSearching!==t.isSearching&&(this._isSearching=t.isSearching,o.isSearching=!0,s=!0),typeof t.filters<"u"&&(this._filters?this._filters.update(t.filters):this._filters=t.filters,o.filters=!0,s=!0),this._isRegexOverride=typeof t.isRegexOverride<"u"?t.isRegexOverride:0,this._wholeWordOverride=typeof t.wholeWordOverride<"u"?t.wholeWordOverride:0,this._matchCaseOverride=typeof t.matchCaseOverride<"u"?t.matchCaseOverride:0,this._preserveCaseOverride=typeof t.preserveCaseOverride<"u"?t.preserveCaseOverride:0,a!==this.isRegex&&(s=!0,o.isRegex=!0),l!==this.wholeWord&&(s=!0,o.wholeWord=!0),d!==this.matchCase&&(s=!0,o.matchCase=!0),u!==this.preserveCase&&(s=!0,o.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=b9}}var Xbo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Gbo=function(e,t){return function(n,r){t(n,r,e)}},Wx,t6;let WWe=(t6=class{static getOrCreate(t){return Wx._instance||(Wx._instance=new Wx(t)),Wx._instance}constructor(t){this.storageService=t,this.inMemoryValues=new Set,this._onDidChangeEmitter=new at,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(t){const n=this.inMemoryValues.delete(t);return this.save(),n}add(t){return this.inMemoryValues.add(t),this.save(),this}has(t){return this.inMemoryValues.has(t)}forEach(t,n){return this.load(),this.inMemoryValues.forEach(t)}replace(t){this.inMemoryValues=new Set(t),this.save()}load(){let t;const n=this.storageService.get(Wx.FIND_HISTORY_KEY,1);if(n)try{t=JSON.parse(n)}catch{}this.inMemoryValues=new Set(t||[])}save(){const t=[];return this.inMemoryValues.forEach(n=>t.push(n)),new Promise(n=>{this.storageService.store(Wx.FIND_HISTORY_KEY,JSON.stringify(t),1,0),this._onDidChangeEmitter.fire(t),n()})}},Wx=t6,t6.FIND_HISTORY_KEY="workbench.find.history",t6._instance=null,t6);WWe=Wx=Xbo([Gbo(0,Bg)],WWe);var Ybo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Zbo=function(e,t){return function(n,r){t(n,r,e)}},Vx,n6;let VWe=(n6=class{static getOrCreate(t){return Vx._instance||(Vx._instance=new Vx(t)),Vx._instance}constructor(t){this.storageService=t,this.inMemoryValues=new Set,this._onDidChangeEmitter=new at,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(t){const n=this.inMemoryValues.delete(t);return this.save(),n}add(t){return this.inMemoryValues.add(t),this.save(),this}has(t){return this.inMemoryValues.has(t)}forEach(t,n){return this.load(),this.inMemoryValues.forEach(t)}replace(t){this.inMemoryValues=new Set(t),this.save()}load(){let t;const n=this.storageService.get(Vx.FIND_HISTORY_KEY,1);if(n)try{t=JSON.parse(n)}catch{}this.inMemoryValues=new Set(t||[])}save(){const t=[];return this.inMemoryValues.forEach(n=>t.push(n)),new Promise(n=>{this.storageService.store(Vx.FIND_HISTORY_KEY,JSON.stringify(t),1,0),this._onDidChangeEmitter.fire(t),n()})}},Vx=n6,n6.FIND_HISTORY_KEY="workbench.replace.history",n6._instance=null,n6);VWe=Vx=Ybo([Zbo(0,Bg)],VWe);var IRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},y4=function(e,t){return function(n,r){t(n,r,e)}},zWe;const qbo=524288;function HWe(e,t="single",n=!1){if(!e.hasModel())return null;const r=e.getSelection();if(t==="single"&&r.startLineNumber===r.endLineNumber||t==="multiple"){if(r.isEmpty()){const o=e.getConfiguredWordAtPosition(r.getStartPosition());if(o&&n===!1)return o.word}else if(e.getModel().getValueLengthInRange(r)this._onStateChanged(l))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const l=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),l&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(50).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(t){this.saveQueryState(t),t.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),t.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(t){t.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),t.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),t.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),t.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!O3e.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let t=this._editor.getSelections();t=t.map(n=>(n.endColumn===1&&n.endLineNumber>n.startLineNumber&&(n=n.setEndPosition(n.endLineNumber-1,this._editor.getModel().getLineMaxColumn(n.endLineNumber-1))),n.isEmpty()?null:n)).filter(n=>!!n),t.length&&this._state.change({searchScope:t},!0)}}setSearchString(t){this._state.isRegex&&(t=M0(t)),this._state.change({searchString:t},!1)}highlightFindOptions(t=!1){}async _start(t,n){if(this.disposeModel(),!this._editor.hasModel())return;const r={...n,isRevealed:!0};if(t.seedSearchStringFromSelection==="single"){const o=HWe(this._editor,t.seedSearchStringFromSelection,t.seedSearchStringFromNonEmptySelection);o&&(this._state.isRegex?r.searchString=M0(o):r.searchString=o)}else if(t.seedSearchStringFromSelection==="multiple"&&!t.updateSearchScope){const o=HWe(this._editor,t.seedSearchStringFromSelection);o&&(r.searchString=o)}if(!r.searchString&&t.seedSearchStringFromGlobalClipboard){const o=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;o&&(r.searchString=o)}if(t.forceRevealReplace||r.isReplaceRevealed?r.isReplaceRevealed=!0:this._findWidgetVisible.get()||(r.isReplaceRevealed=!1),t.updateSearchScope){const o=this._editor.getSelections();o.some(s=>!s.isEmpty())&&(r.searchScope=o)}r.loop=t.loop,this._state.change(r,!1),this._model||(this._model=new QZ(this._editor,this._state))}start(t,n){return this._start(t,n)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(t){return this._model?(this._model.moveToMatch(t),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var t;return this._model?(t=this._editor.getModel())!=null&&t.isTooLargeForHeapOperation()?(this._notificationService.warn(U(940,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(t){this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(t)}},zWe=iB,iB.ID="editor.contrib.findController",iB);w1=zWe=IRn([y4(1,Qi),y4(2,Bg),y4(3,U0),y4(4,ic),y4(5,pm)],w1);let $We=class extends w1{constructor(t,n,r,o,s,a,l,d){super(t,r,a,l,s,d),this._contextViewService=n,this._keybindingService=o,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=WWe.getOrCreate(a),this._replaceWidgetHistory=VWe.getOrCreate(a)}async _start(t,n){this._widget||this._createFindWidget();const r=this._editor.getSelection();let o=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":o=!0;break;case"never":o=!1;break;case"multiline":{o=!!r&&r.startLineNumber!==r.endLineNumber;break}}t.updateSearchScope=t.updateSearchScope||o,await super._start(t,n),this._widget&&(t.shouldFocus===2?this._widget.focusReplaceInput():t.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(t=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!t?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new tWe(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._hoverService,this._findWidgetSearchHistory,this._replaceWidgetHistory)),this._findOptionsWidget=this._register(new jWe(this._editor,this._state,this._keybindingService))}saveViewState(){var t;return(t=this._widget)==null?void 0:t.getViewState()}restoreViewState(t){var n;(n=this._widget)==null||n.setViewState(t)}};$We=IRn([y4(1,wL),y4(2,Qi),y4(3,Do),y4(4,ic),y4(5,Bg),y4(6,U0),y4(7,pm)],$We);const Kbo=Ibe(new Rbe({id:ga.StartFindAction,label:_t(947,"Find"),precondition:Ft.or($e.focus,Ft.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:Wn.MenubarEditMenu,group:"3_find",title:U(941,"&&Find"),order:1}}));Kbo.addImplementation(0,(e,t,n)=>{const r=w1.get(t);return r?r.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:t.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}):!1});const Jbo={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class e3o extends Bn{constructor(){super({id:ga.StartFindWithArgs,label:_t(948,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:Jbo})}async run(t,n,r){const o=w1.get(n);if(o){const s=r?{searchString:r.searchString,replaceString:r.replaceString,isReplaceRevealed:r.replaceString!==void 0,isRegex:r.isRegex,wholeWord:r.matchWholeWord,matchCase:r.isCaseSensitive,preserveCase:r.preserveCase}:{};await o.start({forceRevealReplace:!1,seedSearchStringFromSelection:o.getState().searchString.length===0&&n.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(r==null?void 0:r.findInSelection)||!1,loop:n.getOption(50).loop},s),o.setGlobalBufferTerm(o.getState().searchString)}}}class t3o extends Bn{constructor(){super({id:ga.StartFindWithSelection,label:_t(949,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(t,n){const r=w1.get(n);r&&(await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),r.setGlobalBufferTerm(r.getState().searchString))}}async function MRn(e,t){const n=w1.get(e);if(!n)return;const r=()=>(t?n.moveToNextMatch():n.moveToPrevMatch())?(n.editor.pushUndoStop(),!0):!1;r()||(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getState().searchString.length===0&&e.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop}),r())}const n3o=Ibe(new Rbe({id:ga.NextMatchFindAction,label:_t(950,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:$e.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:Ft.and($e.focus,O3e),primary:3,weight:100}]}));n3o.addImplementation(0,async(e,t,n)=>MRn(t,!0));const i3o=Ibe(new Rbe({id:ga.PreviousMatchFindAction,label:_t(951,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:$e.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:Ft.and($e.focus,O3e),primary:1027,weight:100}]}));i3o.addImplementation(0,async(e,t,n)=>MRn(t,!1));class r3o extends Bn{constructor(){super({id:ga.GoToMatchFindAction,label:_t(952,"Go to Match..."),precondition:CL}),this._highlightDecorations=[]}run(t,n,r){const o=w1.get(n);if(!o)return;const s=o.getState().matchesCount;if(s<1){t.get(ic).notify({severity:iH.Warning,message:U(942,"No matches. Try searching for something else.")});return}const a=t.get(Rf),l=new xt,d=l.add(a.createInputBox());d.placeholder=U(943,"Type a number to go to a specific match (between 1 and {0})",s);const u=g=>{const m=parseInt(g);if(isNaN(m))return;const v=o.getState().matchesCount;if(m>0&&m<=v)return m-1;if(m<0&&m>=-v)return v+m},h=g=>{const m=u(g);if(typeof m=="number"){d.validationMessage=void 0,o.goToMatch(m);const v=o.getState().currentMatch;v&&this.addDecorations(n,v)}else d.validationMessage=U(944,"Please type a number between 1 and {0}",o.getState().matchesCount),this.clearDecorations(n)};l.add(d.onDidChangeValue(g=>{h(g)})),l.add(d.onDidAccept(()=>{const g=u(d.value);typeof g=="number"?(o.goToMatch(g),d.hide()):d.validationMessage=U(945,"Please type a number between 1 and {0}",o.getState().matchesCount)})),l.add(d.onDidHide(()=>{this.clearDecorations(n),l.dispose()})),d.show()}clearDecorations(t){t.changeDecorations(n=>{this._highlightDecorations=n.deltaDecorations(this._highlightDecorations,[])})}addDecorations(t,n){t.changeDecorations(r=>{this._highlightDecorations=r.deltaDecorations(this._highlightDecorations,[{range:n,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:zl(oTn),position:r2.Full}}}])})}}class PRn extends Bn{async run(t,n){const r=w1.get(n);if(!r)return;const o=HWe(n,"single",!1);o&&r.setSearchString(o),this._run(r)||(await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),this._run(r))}}class o3o extends PRn{constructor(){super({id:ga.NextSelectionMatchFindAction,label:_t(953,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:2109,weight:100}})}_run(t){return t.moveToNextMatch()}}class s3o extends PRn{constructor(){super({id:ga.PreviousSelectionMatchFindAction,label:_t(954,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:3133,weight:100}})}_run(t){return t.moveToPrevMatch()}}const a3o=Ibe(new Rbe({id:ga.StartFindReplaceAction,label:_t(955,"Replace"),precondition:Ft.or($e.focus,Ft.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:Wn.MenubarEditMenu,group:"3_find",title:U(946,"&&Replace"),order:2}}));a3o.addImplementation(0,(e,t,n)=>{if(!t.hasModel()||t.getOption(104))return!1;const r=w1.get(t);if(!r)return!1;const o=t.getSelection(),s=r.isFindInputFocused(),a=!o.isEmpty()&&o.startLineNumber===o.endLineNumber&&t.getOption(50).seedSearchStringFromSelection!=="never"&&!s,l=s||a?2:1;return r.start({forceRevealReplace:!0,seedSearchStringFromSelection:a?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:t.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:l,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop})});mo(w1.ID,$We,0);un(e3o);un(t3o);un(r3o);un(o3o);un(s3o);const N3=$d.bindToContribution(w1.get);On(new N3({id:ga.CloseFindWidgetCommand,precondition:CL,handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:Ft.and($e.focus,Ft.not("isComposing")),primary:9,secondary:[1033]}}));On(new N3({id:ga.ToggleCaseSensitiveCommand,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:$e.focus,primary:zle.primary,mac:zle.mac,win:zle.win,linux:zle.linux}}));On(new N3({id:ga.ToggleWholeWordCommand,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:$e.focus,primary:Hle.primary,mac:Hle.mac,win:Hle.win,linux:Hle.linux}}));On(new N3({id:ga.ToggleRegexCommand,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:$e.focus,primary:$le.primary,mac:$le.mac,win:$le.win,linux:$le.linux}}));On(new N3({id:ga.ToggleSearchScopeCommand,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:$e.focus,primary:Xle.primary,mac:Xle.mac,win:Xle.win,linux:Xle.linux}}));On(new N3({id:ga.TogglePreserveCaseCommand,precondition:void 0,handler:e=>e.togglePreserveCase(),kbOpts:{weight:105,kbExpr:$e.focus,primary:Gle.primary,mac:Gle.mac,win:Gle.win,linux:Gle.linux}}));On(new N3({id:ga.ReplaceOneAction,precondition:CL,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:$e.focus,primary:3094}}));On(new N3({id:ga.ReplaceOneAction,precondition:CL,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:Ft.and($e.focus,qtt),primary:3}}));On(new N3({id:ga.ReplaceAllAction,precondition:CL,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:$e.focus,primary:2563}}));On(new N3({id:ga.ReplaceAllAction,precondition:CL,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:Ft.and($e.focus,qtt),primary:void 0,mac:{primary:2051}}}));On(new N3({id:ga.SelectAllMatchesAction,precondition:CL,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:$e.focus,primary:515}}));const l3o={0:" ",1:"u",2:"r"},jyt=65535,Bb=16777215,Wyt=4278190080;class _xe{constructor(t){const n=Math.ceil(t/32);this._states=new Uint32Array(n)}get(t){const n=t/32|0,r=t%32;return(this._states[n]&1<jyt)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=t,this._endIndexes=n,this._collapseStates=new _xe(t.length),this._userDefinedStates=new _xe(t.length),this._recoveredStates=new _xe(t.length),this._types=r,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const t=[],n=(r,o)=>{const s=t[t.length-1];return this.getStartLineNumber(s)<=r&&this.getEndLineNumber(s)>=o};for(let r=0,o=this._startIndexes.length;rBb||a>Bb)throw new Error("startLineNumber or endLineNumber must not exceed "+Bb);for(;t.length>0&&!n(s,a);)t.pop();const l=t.length>0?t[t.length-1]:-1;t.push(r),this._startIndexes[r]=s+((l&255)<<24),this._endIndexes[r]=a+((l&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(t){return this._startIndexes[t]&Bb}getEndLineNumber(t){return this._endIndexes[t]&Bb}getType(t){return this._types?this._types[t]:void 0}hasTypes(){return!!this._types}isCollapsed(t){return this._collapseStates.get(t)}setCollapsed(t,n){this._collapseStates.set(t,n)}isUserDefined(t){return this._userDefinedStates.get(t)}setUserDefined(t,n){return this._userDefinedStates.set(t,n)}isRecovered(t){return this._recoveredStates.get(t)}setRecovered(t,n){return this._recoveredStates.set(t,n)}getSource(t){return this.isUserDefined(t)?1:this.isRecovered(t)?2:0}setSource(t,n){n===1?(this.setUserDefined(t,!0),this.setRecovered(t,!1)):n===2?(this.setUserDefined(t,!1),this.setRecovered(t,!0)):(this.setUserDefined(t,!1),this.setRecovered(t,!1))}setCollapsedAllOfType(t,n){let r=!1;if(this._types)for(let o=0;o>>24)+((this._endIndexes[t]&Wyt)>>>16);return n===jyt?-1:n}contains(t,n){return this.getStartLineNumber(t)<=n&&this.getEndLineNumber(t)>=n}findIndex(t){let n=0,r=this._startIndexes.length;if(r===0)return-1;for(;n=0){if(this.getEndLineNumber(n)>=t)return n;for(n=this.getParentIndex(n);n!==-1;){if(this.contains(n,t))return n;n=this.getParentIndex(n)}}return-1}toString(){const t=[];for(let n=0;nArray.isArray(A)?b=>bb=g.startLineNumber))h&&h.startLineNumber===g.startLineNumber?(g.source===1?A=g:(A=h,A.isCollapsed=g.isCollapsed&&(h.endLineNumber===g.endLineNumber||!(o!=null&&o.startsInside(h.startLineNumber+1,h.endLineNumber+1))),A.source=0),h=a(++d)):(A=g,g.isCollapsed&&g.source===0&&(A.source=2)),g=l(++u);else{let p=u,b=g;for(;;){if(!b||b.startLineNumber>h.endLineNumber){A=h;break}if(b.source===1&&b.endLineNumber>h.endLineNumber)break;b=l(++p)}h=a(++d)}if(A){for(;v&&v.endLineNumberA.startLineNumber&&A.startLineNumber>f&&A.endLineNumber<=r&&(!v||v.endLineNumber>=A.endLineNumber)&&(k.push(A),f=A.startLineNumber,v&&m.push(v),v=A)}}return k}}class c3o{constructor(t,n){this.ranges=t,this.index=n}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(t){return t.startLineNumber<=this.startLineNumber&&t.endLineNumber>=this.endLineNumber}containsLine(t){return this.startLineNumber<=t&&t<=this.endLineNumber}}class d3o{get regions(){return this._regions}get textModel(){return this._textModel}constructor(t,n){this._updateEventEmitter=new at,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=n,this._regions=new Nk(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(t){if(!t.length)return;t=t.sort((r,o)=>r.regionIndex-o.regionIndex);const n={};this._decorationProvider.changeDecorations(r=>{let o=0,s=-1,a=-1;const l=d=>{for(;oa&&(a=u),o++}};for(const d of t){const u=d.regionIndex,h=this._editorDecorationIds[u];if(h&&!n[h]){n[h]=!0,l(u);const g=!this._regions.isCollapsed(u);this._regions.setCollapsed(u,g),s=Math.max(s,this._regions.getEndLineNumber(u))}}l(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:t})}removeManualRanges(t){const n=new Array,r=o=>{for(const s of t)if(!(s.startLineNumber>o.endLineNumber||o.startLineNumber>s.endLineNumber))return!0;return!1};for(let o=0;or&&(r=l)}this._decorationProvider.changeDecorations(o=>this._editorDecorationIds=o.deltaDecorations(this._editorDecorationIds,n)),this._regions=t,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(t){const n=[];for(let r=0,o=this._regions.length;r=a.endLineNumber||a.startLineNumber<1||a.endLineNumber>r)continue;const l=this._getLinesChecksum(a.startLineNumber+1,a.endLineNumber);n.push({startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,isCollapsed:a.isCollapsed,source:a.source,checksum:l})}return n.length>0?n:void 0}applyMemento(t){if(!Array.isArray(t))return;const n=[],r=this._textModel.getLineCount();for(const s of t){if(s.startLineNumber>=s.endLineNumber||s.startLineNumber<1||s.endLineNumber>r)continue;const a=this._getLinesChecksum(s.startLineNumber+1,s.endLineNumber);(!s.checksum||a===s.checksum)&&n.push({startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,type:void 0,isCollapsed:s.isCollapsed??!0,source:s.source??0})}const o=Nk.sanitizeAndMerge(this._regions,n,r);this.updatePost(Nk.fromFoldRanges(o))}_getLinesChecksum(t,n){return Lie(this._textModel.getLineContent(t)+this._textModel.getLineContent(n))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(t,n){const r=[];if(this._regions){let o=this._regions.findRange(t),s=1;for(;o>=0;){const a=this._regions.toRegion(o);(!n||n(a,s))&&r.push(a),s++,o=a.parentIndex}}return r}getRegionAtLine(t){if(this._regions){const n=this._regions.findRange(t);if(n>=0)return this._regions.toRegion(n)}return null}getRegionsInside(t,n){const r=[],o=t?t.regionIndex+1:0,s=t?t.endLineNumber:Number.MAX_VALUE;if(n&&n.length===2){const a=[];for(let l=o,d=this._regions.length;l0&&!u.containedBy(a[a.length-1]);)a.pop();a.push(u),n(u,a.length)&&r.push(u)}else break}}else for(let a=o,l=this._regions.length;a1){const l=e.getRegionsInside(s,(d,u)=>d.isCollapsed!==a&&u0)for(const s of r){const a=e.getRegionAtLine(s);if(a&&(a.isCollapsed!==t&&o.push(a),n>1)){const l=e.getRegionsInside(a,(d,u)=>d.isCollapsed!==t&&ua.isCollapsed!==t&&ll.isCollapsed!==t&&d<=n);o.push(...a)}e.toggleCollapseState(o)}function u3o(e,t,n){const r=[];for(const o of n){const s=e.getAllRegionsAtLine(o,a=>a.isCollapsed!==t);s.length>0&&r.push(s[0])}e.toggleCollapseState(r)}function h3o(e,t,n,r){const o=(a,l)=>l===t&&a.isCollapsed!==n&&!r.some(d=>a.containsLine(d)),s=e.getRegionsInside(null,o);e.toggleCollapseState(s)}function NRn(e,t,n){const r=[];for(const a of n){const l=e.getAllRegionsAtLine(a,void 0);l.length>0&&r.push(l[0])}const o=a=>r.every(l=>!l.containedBy(a)&&!a.containedBy(l))&&a.isCollapsed!==t,s=e.getRegionsInside(null,o);e.toggleCollapseState(s)}function Ent(e,t,n){const r=e.textModel,o=e.regions,s=[];for(let a=o.length-1;a>=0;a--)if(n!==o.isCollapsed(a)){const l=o.getStartLineNumber(a);t.test(r.getLineContent(l))&&s.push(o.toRegion(a))}e.toggleCollapseState(s)}function Tnt(e,t,n){const r=e.regions,o=[];for(let s=r.length-1;s>=0;s--)n!==r.isCollapsed(s)&&t===r.getType(s)&&o.push(r.toRegion(s));e.toggleCollapseState(o)}function f3o(e,t){let n=null;const r=t.getRegionAtLine(e);if(r!==null&&(n=r.startLineNumber,e===n)){const o=r.parentIndex;o!==-1?n=t.regions.getStartLineNumber(o):n=null}return n}function g3o(e,t){let n=t.getRegionAtLine(e);if(n!==null&&n.startLineNumber===e){if(e!==n.startLineNumber)return n.startLineNumber;{const r=n.parentIndex;let o=0;for(r!==-1&&(o=t.regions.getStartLineNumber(n.parentIndex));n!==null;)if(n.regionIndex>0){if(n=t.regions.toRegion(n.regionIndex-1),n.startLineNumber<=o)return null;if(n.parentIndex===r)return n.startLineNumber}else return null}}else if(t.regions.length>0)for(n=t.regions.toRegion(t.regions.length-1);n!==null;){if(n.startLineNumber0?n=t.regions.toRegion(n.regionIndex-1):n=null}return null}function m3o(e,t){let n=t.getRegionAtLine(e);if(n!==null&&n.startLineNumber===e){const r=n.parentIndex;let o=0;if(r!==-1)o=t.regions.getEndLineNumber(n.parentIndex);else{if(t.regions.length===0)return null;o=t.regions.getEndLineNumber(t.regions.length-1)}for(;n!==null;)if(n.regionIndex=o)return null;if(n.parentIndex===r)return n.startLineNumber}else return null}else if(t.regions.length>0)for(n=t.regions.toRegion(0);n!==null;){if(n.startLineNumber>e)return n.startLineNumber;n.regionIndexthis.updateHiddenRanges()),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(t){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=t.changes.some(n=>n.range.endLineNumber!==n.range.startLineNumber||x6(n.text)[0]!==0))}updateHiddenRanges(){let t=!1;const n=[];let r=0,o=0,s=Number.MAX_VALUE,a=-1;const l=this._foldingModel.regions;for(;r0}isHidden(t){return Vyt(this._hiddenRanges,t)!==null}adjustSelections(t){let n=!1;const r=this._foldingModel.textModel;let o=null;const s=a=>((!o||!v3o(a,o))&&(o=Vyt(this._hiddenRanges,a)),o?o.startLineNumber-1:null);for(let a=0,l=t.length;a0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function v3o(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}function Vyt(e,t){const n=dJ(e,r=>t=0&&e[n].endLineNumber>=t?e[n]:null}const A3o=5e3,p3o="indent";class Qnt{constructor(t,n,r){this.editorModel=t,this.languageConfigurationService=n,this.foldingRangesLimit=r,this.id=p3o}dispose(){}compute(t){const n=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,r=n&&!!n.offSide,o=n&&n.markers;return Promise.resolve(O3o(this.editorModel,r,o,this.foldingRangesLimit))}}let b3o=class{constructor(t){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=t}insertFirst(t,n,r){if(t>Bb||n>Bb)return;const o=this._length;this._startIndexes[o]=t,this._endIndexes[o]=n,this._length++,r<1e3&&(this._indentOccurrences[r]=(this._indentOccurrences[r]||0)+1)}toIndentRanges(t){const n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);const r=new Uint32Array(this._length),o=new Uint32Array(this._length);for(let s=this._length-1,a=0;s>=0;s--,a++)r[a]=this._startIndexes[s],o[a]=this._endIndexes[s];return new Nk(r,o)}else{this._foldingRangesLimit.update(this._length,n);let r=0,o=this._indentOccurrences.length;for(let d=0;dn){o=d;break}r+=u}}const s=t.getOptions().tabSize,a=new Uint32Array(n),l=new Uint32Array(n);for(let d=this._length-1,u=0;d>=0;d--){const h=this._startIndexes[d],g=t.getLineContent(h),m=n3e(g,s);(m{}};function O3o(e,t,n,r=w3o){const o=e.getOptions().tabSize,s=new b3o(r);let a;n&&(a=new RegExp(`(${n.start.source})|(?:${n.end.source})`));const l=[],d=e.getLineCount()+1;l.push({indent:-1,endAbove:d,line:d});for(let u=e.getLineCount();u>0;u--){const h=e.getLineContent(u),g=n3e(h,o);let m=l[l.length-1];if(g===-1){t&&(m.endAbove=u);continue}let v;if(a&&(v=h.match(a)))if(v[1]){let f=l.length-1;for(;f>0&&l[f].indent!==-2;)f--;if(f>0){l.length=f+1,m=l[f],s.insertFirst(u,m.line,g),m.line=u,m.indent=g,m.endAbove=u;continue}}else{l.push({indent:-2,endAbove:u,line:u});continue}if(m.indent>g){do l.pop(),m=l[l.length-1];while(m.indent>g);const f=m.endAbove-1;f-u>=1&&s.insertFirst(u,f,g)}m.indent===g?m.endAbove=u:l.push({indent:g,endAbove:u,line:u})}return s.toIndentRanges(e)}const y3o=Ve("editor.foldBackground",{light:Zi(d9,.3),dark:Zi(d9,.3),hcDark:null,hcLight:null},U(1002,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);Ve("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},U(1003,"Color of the collapsed text after the first line of a folded range."));Ve("editorGutter.foldingControlForeground",$me,U(1004,"Color of the folding control in the editor gutter."));const b0e=Da("folding-expanded",zt.chevronDown,U(1005,"Icon for expanded ranges in the editor glyph margin.")),w0e=Da("folding-collapsed",zt.chevronRight,U(1006,"Icon for collapsed ranges in the editor glyph margin.")),zyt=Da("folding-manual-collapsed",w0e,U(1007,"Icon for manually collapsed ranges in the editor glyph margin.")),Hyt=Da("folding-manual-expanded",b0e,U(1008,"Icon for manually expanded ranges in the editor glyph margin.")),Sxe={color:zl(y3o),position:1},RP=U(1009,"Click to expand the range."),rce=U(1010,"Click to collapse the range."),Gc=class Gc{constructor(t){this.editor=t,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(t,n,r){return n?Gc.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?t?this.showFoldingHighlights?Gc.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:Gc.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:Gc.NO_CONTROLS_EXPANDED_RANGE_DECORATION:t?r?this.showFoldingHighlights?Gc.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Gc.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?Gc.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Gc.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?r?Gc.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:Gc.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:r?Gc.MANUALLY_EXPANDED_VISUAL_DECORATION:Gc.EXPANDED_VISUAL_DECORATION}changeDecorations(t){return this.editor.changeDecorations(t)}removeDecorations(t){this.editor.removeDecorations(t)}};Gc.COLLAPSED_VISUAL_DECORATION=Gi.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:RP,firstLineDecorationClassName:fi.asClassName(w0e)}),Gc.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Gi.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Sxe,isWholeLine:!0,linesDecorationsTooltip:RP,firstLineDecorationClassName:fi.asClassName(w0e)}),Gc.MANUALLY_COLLAPSED_VISUAL_DECORATION=Gi.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:RP,firstLineDecorationClassName:fi.asClassName(zyt)}),Gc.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Gi.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Sxe,isWholeLine:!0,linesDecorationsTooltip:RP,firstLineDecorationClassName:fi.asClassName(zyt)}),Gc.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=Gi.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:RP}),Gc.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=Gi.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Sxe,isWholeLine:!0,linesDecorationsTooltip:RP}),Gc.EXPANDED_VISUAL_DECORATION=Gi.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+fi.asClassName(b0e),linesDecorationsTooltip:rce}),Gc.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Gi.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:fi.asClassName(b0e),linesDecorationsTooltip:rce}),Gc.MANUALLY_EXPANDED_VISUAL_DECORATION=Gi.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+fi.asClassName(Hyt),linesDecorationsTooltip:rce}),Gc.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Gi.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:fi.asClassName(Hyt),linesDecorationsTooltip:rce}),Gc.NO_CONTROLS_EXPANDED_RANGE_DECORATION=Gi.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),Gc.HIDDEN_RANGE_DECORATION=Gi.register({description:"folding-hidden-range-decoration",stickiness:1});let XWe=Gc;const C3o={},_3o="syntax";class Dnt{constructor(t,n,r,o,s){this.editorModel=t,this.providers=n,this.handleFoldingRangesChange=r,this.foldingRangesLimit=o,this.fallbackRangeProvider=s,this.id=_3o,this.disposables=new xt,s&&this.disposables.add(s);for(const a of n)typeof a.onDidChange=="function"&&this.disposables.add(a.onDidChange(r))}compute(t){return S3o(this.providers,this.editorModel,t).then(n=>{var r;return this.editorModel.isDisposed()?null:n?x3o(n,this.foldingRangesLimit):((r=this.fallbackRangeProvider)==null?void 0:r.compute(t))??null})}dispose(){this.disposables.dispose()}}function S3o(e,t,n){let r=null;const o=e.map((s,a)=>Promise.resolve(s.provideFoldingRanges(t,C3o,n)).then(l=>{if(!n.isCancellationRequested&&Array.isArray(l)){Array.isArray(r)||(r=[]);const d=t.getLineCount();for(const u of l)u.start>0&&u.end>u.start&&u.end<=d&&r.push({start:u.start,end:u.end,rank:a,kind:u.kind})}},Nc));return Promise.all(o).then(s=>r)}class L3o{constructor(t){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=t}add(t,n,r,o){if(t>Bb||n>Bb)return;const s=this._length;this._startIndexes[s]=t,this._endIndexes[s]=n,this._nestingLevels[s]=o,this._types[s]=r,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}toIndentRanges(){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const n=new Uint32Array(this._length),r=new Uint32Array(this._length);for(let o=0;ot){r=l;break}n+=d}}const o=new Uint32Array(t),s=new Uint32Array(t),a=[];for(let l=0,d=0;l{let d=a.start-l.start;return d===0&&(d=a.rank-l.rank),d}),r=new L3o(t);let o;const s=[];for(const a of n)if(!o)o=a,r.add(a.start,a.end,a.kind&&a.kind.value,s.length);else if(a.start>o.start)if(a.end<=o.end)s.push(o),o=a,r.add(a.start,a.end,a.kind&&a.kind.value,s.length);else{if(a.start>o.end){do o=s.pop();while(o&&a.start>o.end);o&&s.push(o),o=a}r.add(a.start,a.end,a.kind&&a.kind.value,s.length)}return r.toIndentRanges()}var E3o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},TX=function(e,t){return function(n,r){t(n,r,e)}},J7;const Ah=new yn("foldingEnabled",!1);var rB;let R6=(rB=class extends ft{static get(t){return t.getContribution(J7.ID)}static getFoldingRangeProviders(t,n){var o;const r=t.foldingRangeProvider.ordered(n);return((o=J7._foldingRangeSelector)==null?void 0:o.call(J7,r,n))??r}constructor(t,n,r,o,s,a){super(),this.contextKeyService=n,this.languageConfigurationService=r,this.languageFeaturesService=a,this.localToDispose=this._register(new xt),this.editor=t,this._foldingLimitReporter=this._register(new URn(t));const l=this.editor.getOptions();this._isEnabled=l.get(52),this._useFoldingProviders=l.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=l.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=l.get(55),this.updateDebounceInfo=s.for(a.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new XWe(t),this.foldingDecorationProvider.showFoldingControls=l.get(126),this.foldingDecorationProvider.showFoldingHighlights=l.get(54),this.foldingEnabled=Ah.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(d=>{if(d.hasChanged(52)&&(this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),d.hasChanged(56)&&this.onModelChanged(),d.hasChanged(126)||d.hasChanged(54)){const u=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=u.get(126),this.foldingDecorationProvider.showFoldingHighlights=u.get(54),this.triggerFoldingModelChanged()}d.hasChanged(53)&&(this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged()),d.hasChanged(57)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57)),d.hasChanged(55)&&(this._foldingImportsByDefault=this.editor.getOptions().get(55))})),this.onModelChanged()}saveViewState(){const t=this.editor.getModel();if(!t||!this._isEnabled||t.isTooLargeForTokenization())return{};if(this.foldingModel){const n=this.foldingModel.getMemento(),r=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:n,lineCount:t.getLineCount(),provider:r,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(t){const n=this.editor.getModel();if(!(!n||!this._isEnabled||n.isTooLargeForTokenization()||!this.hiddenRangeModel)&&t&&(this._currentModelHasFoldedImports=!!t.foldedImports,t.collapsedRegions&&t.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(t.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const t=this.editor.getModel();!this._isEnabled||!t||t.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new d3o(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new k3o(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(n=>this.onHiddenRangesChanges(n))),this.updateScheduler=new dA(this.updateDebounceInfo.get(t)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new Es(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(n=>this.onDidChangeModelContent(n))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(n=>this.onEditorMouseDown(n))),this.localToDispose.add(this.editor.onMouseUp(n=>this.onEditorMouseUp(n))),this.localToDispose.add({dispose:()=>{var n,r;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(n=this.updateScheduler)==null||n.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(r=this.rangeProvider)==null||r.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var t;(t=this.rangeProvider)==null||t.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(t){if(this.rangeProvider)return this.rangeProvider;const n=new Qnt(t,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=n,this._useFoldingProviders&&this.foldingModel){const r=J7.getFoldingRangeProviders(this.languageFeaturesService,t);r.length>0&&(this.rangeProvider=new Dnt(t,r,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,n))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(t){var n;(n=this.hiddenRangeModel)==null||n.notifyChangeModelContent(t),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const t=this.foldingModel;if(!t)return null;const n=new vu,r=this.getRangeProvider(t.textModel),o=this.foldingRegionPromise=Fd(s=>r.compute(s));return o.then(s=>{if(s&&o===this.foldingRegionPromise){let a;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const u=s.setCollapsedAllOfType(LI.Imports.value,!0);u&&(a=O3.capture(this.editor),this._currentModelHasFoldedImports=u)}const l=this.editor.getSelections();t.update(s,T3o(l)),a==null||a.restore(this.editor);const d=this.updateDebounceInfo.update(t.textModel,n.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=d)}return t})}).then(void 0,t=>(zi(t),null)))}onHiddenRangesChanges(t){if(this.hiddenRangeModel&&t.length&&!this._restoringViewState){const n=this.editor.getSelections();n&&this.hiddenRangeModel.adjustSelections(n)&&this.editor.setSelections(n)}this.editor.setHiddenAreas(t,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const t=this.getFoldingModel();t&&t.then(n=>{if(n){const r=this.editor.getSelections();if(r&&r.length>0){const o=[];for(const s of r){const a=s.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(a)&&o.push(...n.getAllRegionsAtLine(a,l=>l.isCollapsed&&a>l.startLineNumber))}o.length&&(n.toggleCollapseState(o),this.reveal(r[0].getPosition()))}}}).then(void 0,zi)}onEditorMouseDown(t){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!t.target||!t.target.range||!t.event.leftButton&&!t.event.middleButton)return;const n=t.target.range;let r=!1;switch(t.target.type){case 4:{const o=t.target.detail,s=t.target.element.offsetLeft;if(o.offsetX-s<4)return;r=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!t.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const o=this.editor.getModel();if(o&&n.startColumn===o.getLineMaxColumn(n.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:n.startLineNumber,iconClicked:r}}onEditorMouseUp(t){const n=this.foldingModel;if(!n||!this.mouseDownInfo||!t.target)return;const r=this.mouseDownInfo.lineNumber,o=this.mouseDownInfo.iconClicked,s=t.target.range;if(!s||s.startLineNumber!==r)return;if(o){if(t.target.type!==4)return}else{const l=this.editor.getModel();if(!l||s.startColumn!==l.getLineMaxColumn(r))return}const a=n.getRegionAtLine(r);if(a&&a.startLineNumber===r){const l=a.isCollapsed;if(o||l){const d=t.event.altKey;let u=[];if(d){const h=m=>!m.containedBy(a)&&!a.containedBy(m),g=n.getRegionsInside(null,h);for(const m of g)m.isCollapsed&&u.push(m);u.length===0&&(u=g)}else{const h=t.event.middleButton||t.event.shiftKey;if(h)for(const g of n.getRegionsInside(a))g.isCollapsed===l&&u.push(g);(l||!h||u.length===0)&&u.push(a)}n.toggleCollapseState(u),this.reveal({lineNumber:r,column:1})}}}reveal(t){this.editor.revealPositionInCenterIfOutsideViewport(t,0)}},J7=rB,rB.ID="editor.contrib.folding",rB);R6=J7=E3o([TX(1,Qi),TX(2,kl),TX(3,ic),TX(4,CA),TX(5,Nn)],R6);class URn extends ft{constructor(t){super(),this.editor=t,this._onDidChange=this._register(new at),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(t,n){(t!==this._computed||n!==this._limited)&&(this._computed=t,this._limited=n,this._onDidChange.fire())}}class af extends Bn{runEditorCommand(t,n,r){const o=t.get(kl),s=R6.get(n);if(!s)return;const a=s.getFoldingModel();if(a)return this.reportTelemetry(t,n),a.then(l=>{if(l){this.invoke(s,l,n,r,o);const d=n.getSelection();d&&s.reveal(d.getStartPosition())}})}getSelectedLines(t){const n=t.getSelections();return n?n.map(r=>r.startLineNumber):[]}getLineNumbers(t,n){return t&&t.selectionLines?t.selectionLines.map(r=>r+1):this.getSelectedLines(n)}run(t,n){}}function T3o(e){return!e||e.length===0?{startsInside:()=>!1}:{startsInside(t,n){for(const r of e){const o=r.startLineNumber;if(o>=t&&o<=n)return!0}return!1}}}function jRn(e){if(!Sf(e)){if(!Pd(e))return!1;const t=e;if(!Sf(t.levels)&&!Q8(t.levels)||!Sf(t.direction)&&!fu(t.direction)||!Sf(t.selectionLines)&&(!Array.isArray(t.selectionLines)||!t.selectionLines.every(Q8)))return!1}return!0}class Q3o extends af{constructor(){super({id:"editor.unfold",label:_t(982,"Unfold"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: @@ -2324,7 +2324,7 @@ The first edit matching the preferences will be applied.`),items:{type:"string"} * 'direction': If 'up', folds given number of levels up otherwise folds down. * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. - `,constraint:jRn,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(t,n,r,o){const s=this.getLineNumbers(o,r),a=o&&o.levels,l=o&&o.direction;typeof a!="number"&&typeof l!="string"?u3o(n,!0,s):l==="up"?FRn(n,!0,a||1,s):uH(n,!0,a||1,s)}}class R3o extends af{constructor(){super({id:"editor.toggleFold",label:_t(985,"Toggle Fold"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2090),weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);xnt(n,1,o)}}class I3o extends af{constructor(){super({id:"editor.foldRecursively",label:_t(986,"Fold Recursively"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2140),weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);uH(n,!0,Number.MAX_VALUE,o)}}class M3o extends af{constructor(){super({id:"editor.toggleFoldRecursively",label:_t(987,"Toggle Fold Recursively"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,3114),weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);xnt(n,Number.MAX_VALUE,o)}}class P3o extends af{constructor(){super({id:"editor.foldAllBlockComments",label:_t(988,"Fold All Block Comments"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2138),weight:100}})}invoke(t,n,r,o,s){if(n.regions.hasTypes())Tnt(n,LI.Comment.value,!0);else{const a=r.getModel();if(!a)return;const l=s.getLanguageConfiguration(a.getLanguageId()).comments;if(l&&l.blockCommentStartToken){const d=new RegExp("^\\s*"+M0(l.blockCommentStartToken));Ent(n,d,!0)}}}}class F3o extends af{constructor(){super({id:"editor.foldAllMarkerRegions",label:_t(989,"Fold All Regions"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2077),weight:100}})}invoke(t,n,r,o,s){if(n.regions.hasTypes())Tnt(n,LI.Region.value,!0);else{const a=r.getModel();if(!a)return;const l=s.getLanguageConfiguration(a.getLanguageId()).foldingRules;if(l&&l.markers&&l.markers.start){const d=new RegExp(l.markers.start);Ent(n,d,!0)}}}}class N3o extends af{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:_t(990,"Unfold All Regions"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2078),weight:100}})}invoke(t,n,r,o,s){if(n.regions.hasTypes())Tnt(n,LI.Region.value,!1);else{const a=r.getModel();if(!a)return;const l=s.getLanguageConfiguration(a.getLanguageId()).foldingRules;if(l&&l.markers&&l.markers.start){const d=new RegExp(l.markers.start);Ent(n,d,!1)}}}}class U3o extends af{constructor(){super({id:"editor.foldAllExcept",label:_t(991,"Fold All Except Selected"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2136),weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);NRn(n,!0,o)}}class j3o extends af{constructor(){super({id:"editor.unfoldAllExcept",label:_t(992,"Unfold All Except Selected"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2134),weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);NRn(n,!1,o)}}class W3o extends af{constructor(){super({id:"editor.foldAll",label:_t(993,"Fold All"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2069),weight:100}})}invoke(t,n,r){uH(n,!0)}}class V3o extends af{constructor(){super({id:"editor.unfoldAll",label:_t(994,"Unfold All"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2088),weight:100}})}invoke(t,n,r){uH(n,!1)}}const rU=class rU extends af{getFoldingLevel(){return parseInt(this.id.substr(rU.ID_PREFIX.length))}invoke(t,n,r){h3o(n,this.getFoldingLevel(),!0,this.getSelectedLines(r))}};rU.ID_PREFIX="editor.foldLevel",rU.ID=t=>rU.ID_PREFIX+t;let O0e=rU;class z3o extends af{constructor(){super({id:"editor.gotoParentFold",label:_t(995,"Go to Parent Fold"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);if(o.length>0){const s=f3o(o[0],n);s!==null&&r.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class H3o extends af{constructor(){super({id:"editor.gotoPreviousFold",label:_t(996,"Go to Previous Folding Range"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);if(o.length>0){const s=g3o(o[0],n);s!==null&&r.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class $3o extends af{constructor(){super({id:"editor.gotoNextFold",label:_t(997,"Go to Next Folding Range"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);if(o.length>0){const s=m3o(o[0],n);s!==null&&r.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class X3o extends af{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:_t(998,"Create Folding Range from Selection"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2135),weight:100}})}invoke(t,n,r){var a;const o=[],s=r.getSelections();if(s){for(const l of s){let d=l.endLineNumber;l.endColumn===1&&--d,d>l.startLineNumber&&(o.push({startLineNumber:l.startLineNumber,endLineNumber:d,type:void 0,isCollapsed:!0,source:1}),r.setSelection({startLineNumber:l.startLineNumber,startColumn:1,endLineNumber:l.startLineNumber,endColumn:1}))}if(o.length>0){o.sort((d,u)=>d.startLineNumber-u.startLineNumber);const l=Nk.sanitizeAndMerge(n.regions,o,(a=r.getModel())==null?void 0:a.getLineCount());n.updatePost(Nk.fromFoldRanges(l))}}}}class G3o extends af{constructor(){super({id:"editor.removeManualFoldingRanges",label:_t(999,"Remove Manual Folding Ranges"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2137),weight:100}})}invoke(t,n,r){const o=r.getSelections();if(o){const s=[];for(const a of o){const{startLineNumber:l,endLineNumber:d}=a;s.push(d>=l?{startLineNumber:l,endLineNumber:d}:{endLineNumber:d,startLineNumber:l})}n.removeManualRanges(s),t.triggerFoldingModelChanged()}}}class Y3o extends af{constructor(){super({id:"editor.toggleImportFold",label:_t(1e3,"Toggle Import Fold"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}async invoke(t,n){const r=[],o=n.regions;for(let s=o.length-1;s>=0;s--)o.getType(s)===LI.Imports.value&&r.push(o.toRegion(s));n.toggleCollapseState(r),t.triggerFoldingModelChanged()}}mo(R6.ID,R6,0);un(Q3o);un(D3o);un(B3o);un(I3o);un(M3o);un(W3o);un(V3o);un(P3o);un(F3o);un(N3o);un(U3o);un(j3o);un(R3o);un(z3o);un(H3o);un($3o);un(X3o);un(G3o);un(Y3o);for(let e=1;e<=7;e++)Wno(new O0e({id:O0e.ID(e),label:_t(1001,"Fold Level {0}",e),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2048|21+e),weight:100}}));co.registerCommand("_executeFoldingRangeProvider",async function(e,...t){const[n]=t;if(!(n instanceof vi))throw Gv();const r=e.get(Nn),o=e.get(ml).getModel(n);if(!o)throw Gv();const s=e.get(ar);if(!s.getValue("editor.folding",{resource:n}))return[];const a=e.get(kl),l=s.getValue("editor.foldingStrategy",{resource:n}),d={get limit(){return s.getValue("editor.foldingMaximumRegions",{resource:n})},update:(v,f)=>{}},u=new Qnt(o,a,d);let h=u;if(l!=="indentation"){const v=R6.getFoldingRangeProviders(r,o);v.length&&(h=new Dnt(o,v,()=>{},d,u))}const g=await h.compute(Er.None),m=[];try{if(g)for(let v=0;v$l.replace(Ee.lift(a.range),a.text))):t.executeEdits("formatEditsCommand",s.map(a=>$l.replaceMove(Ee.lift(a.range),a.text))),r&&t.pushUndoStop(),o.restoreRelativeVerticalPositionOfCursor(t)}}class $yt{constructor(t){this.value=t,this._lower=t.toLowerCase()}static toKey(t){return typeof t=="string"?t.toLowerCase():t._lower}}class J3o{constructor(t){if(this._set=new Set,t)for(const n of t)this.add(n)}add(t){this._set.add($yt.toKey(t))}has(t){return this._set.has($yt.toKey(t))}}function WRn(e,t,n){const r=[],o=new J3o,s=e.ordered(n);for(const l of s)r.push(l),l.extensionId&&o.add(l.extensionId);const a=t.ordered(n);for(const l of a){if(l.extensionId){if(o.has(l.extensionId))continue;o.add(l.extensionId)}r.push({displayName:l.displayName,extensionId:l.extensionId,provideDocumentFormattingEdits(d,u,h){return l.provideDocumentRangeFormattingEdits(d,d.getFullModelRange(),u,h)}})}return r}const Lq=class Lq{static setFormatterSelector(t){return{dispose:Lq._selectors.unshift(t)}}static async select(t,n,r,o){if(t.length===0)return;const s=to.first(Lq._selectors);if(s)return await s(t,n,r,o)}};Lq._selectors=new bg;let KJ=Lq;async function VRn(e,t,n,r,o,s,a){const l=e.get(Yn),{documentRangeFormattingEditProvider:d}=e.get(Nn),u=C3(t)?t.getModel():t,h=d.ordered(u),g=await KJ.select(h,u,r,2);g&&(o.report(g),await l.invokeFunction(ewo,g,t,n,s,a))}async function ewo(e,t,n,r,o,s){var p,b;const a=e.get(S1),l=e.get(va),d=e.get(pL);let u,h;C3(n)?(u=n.getModel(),h=new z8(n,5,void 0,o)):(u=n,h=new Ntt(n,o));const g=[];let m=0;for(const w of WJe(r).sort(Ee.compareRangesUsingStarts))m>0&&Ee.areIntersectingOrTouching(g[m-1],w)?g[m-1]=Ee.fromPositions(g[m-1].getStartPosition(),w.getEndPosition()):m=g.push(w);const v=async w=>{var y,C;l.trace("[format][provideDocumentRangeFormattingEdits] (request)",(y=t.extensionId)==null?void 0:y.value,w);const O=await t.provideDocumentRangeFormattingEdits(u,w,u.getFormattingOptions(),h.token)||[];return l.trace("[format][provideDocumentRangeFormattingEdits] (response)",(C=t.extensionId)==null?void 0:C.value,O),O},f=(w,O)=>{if(!w.length||!O.length)return!1;const y=w.reduce((C,_)=>Ee.plusRange(C,_.range),w[0].range);if(!O.some(C=>Ee.intersectRanges(y,C.range)))return!1;for(const C of w)for(const _ of O)if(Ee.intersectRanges(C.range,_.range))return!0;return!1},k=[],A=[];try{if(typeof t.provideDocumentRangesFormattingEdits=="function"){l.trace("[format][provideDocumentRangeFormattingEdits] (request)",(p=t.extensionId)==null?void 0:p.value,g);const w=await t.provideDocumentRangesFormattingEdits(u,g,u.getFormattingOptions(),h.token)||[];l.trace("[format][provideDocumentRangeFormattingEdits] (response)",(b=t.extensionId)==null?void 0:b.value,w),A.push(w)}else{for(const w of g){if(h.token.isCancellationRequested)return!0;A.push(await v(w))}for(let w=0;w({text:y.text,range:Ee.lift(y.range),forceMoveMarkers:!0})),y=>{for(const{range:C}of y)if(Ee.areIntersectingOrTouching(C,O))return[new Qn(C.startLineNumber,C.startColumn,C.endLineNumber,C.endColumn)];return null})}return d.playSignal(nm.format,{userGesture:s}),!0}async function two(e,t,n,r,o,s){const a=e.get(Yn),l=e.get(Nn),d=C3(t)?t.getModel():t,u=WRn(l.documentFormattingEditProvider,l.documentRangeFormattingEditProvider,d),h=await KJ.select(u,d,n,1);h&&(r.report(h),await a.invokeFunction(nwo,h,t,n,o,s))}async function nwo(e,t,n,r,o,s){const a=e.get(S1),l=e.get(pL);let d,u;C3(n)?(d=n.getModel(),u=new z8(n,5,void 0,o)):(d=n,u=new Ntt(n,o));let h;try{const g=await t.provideDocumentFormattingEdits(d,d.getFormattingOptions(),u.token);if(h=await a.computeMoreMinimalEdits(d.uri,g),u.token.isCancellationRequested)return!0}finally{u.dispose()}if(!h||h.length===0)return!1;if(C3(n))CV.execute(n,h,r!==2),r!==2&&n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1);else{const[{range:g}]=h,m=new Qn(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn);d.pushEditOperations([m],h.map(v=>({text:v.text,range:Ee.lift(v.range),forceMoveMarkers:!0})),v=>{for(const{range:f}of v)if(Ee.areIntersectingOrTouching(f,m))return[new Qn(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn)];return null})}return l.playSignal(nm.format,{userGesture:s}),!0}async function iwo(e,t,n,r,o,s){const a=t.documentRangeFormattingEditProvider.ordered(n);for(const l of a){const d=await Promise.resolve(l.provideDocumentRangeFormattingEdits(n,r,o,s)).catch(Nc);if(yg(d))return await e.computeMoreMinimalEdits(n.uri,d)}}async function rwo(e,t,n,r,o){const s=WRn(t.documentFormattingEditProvider,t.documentRangeFormattingEditProvider,n);for(const a of s){const l=await Promise.resolve(a.provideDocumentFormattingEdits(n,r,o)).catch(Nc);if(yg(l))return await e.computeMoreMinimalEdits(n.uri,l)}}function zRn(e,t,n,r,o,s,a){const l=t.onTypeFormattingEditProvider.ordered(n);return l.length===0||l[0].autoFormatTriggerCharacters.indexOf(o)<0?Promise.resolve(void 0):Promise.resolve(l[0].provideOnTypeFormattingEdits(n,r,o,s,a)).catch(Nc).then(d=>e.computeMoreMinimalEdits(n.uri,d))}co.registerCommand("_executeFormatRangeProvider",async function(e,...t){const[n,r,o]=t;Oo(vi.isUri(n)),Oo(Ee.isIRange(r));const s=e.get(Dg),a=e.get(S1),l=e.get(Nn),d=await s.createModelReference(n);try{return iwo(a,l,d.object.textEditorModel,Ee.lift(r),o,Er.None)}finally{d.dispose()}});co.registerCommand("_executeFormatDocumentProvider",async function(e,...t){const[n,r]=t;Oo(vi.isUri(n));const o=e.get(Dg),s=e.get(S1),a=e.get(Nn),l=await o.createModelReference(n);try{return rwo(s,a,l.object.textEditorModel,r,Er.None)}finally{l.dispose()}});co.registerCommand("_executeFormatOnTypeProvider",async function(e,...t){const[n,r,o,s]=t;Oo(vi.isUri(n)),Oo(it.isIPosition(r)),Oo(typeof o=="string");const a=e.get(Dg),l=e.get(S1),d=e.get(Nn),u=await a.createModelReference(n);try{return zRn(l,d,u.object.textEditorModel,it.lift(r),o,s,Er.None)}finally{u.dispose()}});var HRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DZ=function(e,t){return function(n,r){t(n,r,e)}},Hj;let y0e=(Hj=class{constructor(t,n,r,o){this._editor=t,this._languageFeaturesService=n,this._workerService=r,this._accessibilitySignalService=o,this._disposables=new xt,this._sessionDisposables=new xt,this._disposables.add(n.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(t.onDidChangeModel(()=>this._update())),this._disposables.add(t.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(t.onDidChangeConfiguration(s=>{s.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65)||!this._editor.hasModel())return;const t=this._editor.getModel(),[n]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(t);if(!n||!n.autoFormatTriggerCharacters)return;const r=new Bme;for(const o of n.autoFormatTriggerCharacters)r.add(o.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(o=>{const s=o.charCodeAt(o.length-1);r.has(s)&&this._trigger(String.fromCharCode(s))}))}_trigger(t){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const n=this._editor.getModel(),r=this._editor.getPosition(),o=new ja,s=this._editor.onDidChangeModelContent(a=>{if(a.isFlush){o.cancel(),s.dispose();return}for(let l=0,d=a.changes.length;l{o.token.isCancellationRequested||yg(a)&&(this._accessibilitySignalService.playSignal(nm.format,{userGesture:!1}),CV.execute(this._editor,a,!0))}).finally(()=>{s.dispose()})}},Hj.ID="editor.contrib.autoFormat",Hj);y0e=HRn([DZ(1,Nn),DZ(2,S1),DZ(3,pL)],y0e);var $j;let C0e=($j=class{constructor(t,n,r){this.editor=t,this._languageFeaturesService=n,this._instantiationService=r,this._callOnDispose=new xt,this._callOnModel=new xt,this._callOnDispose.add(t.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(t.onDidChangeModel(()=>this._update())),this._callOnDispose.add(t.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(n.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(64)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:t})=>this._trigger(t)))}_trigger(t){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(VRn,this.editor,t,2,qb.None,Er.None,!1).catch(zi))}},$j.ID="editor.contrib.formatOnPaste",$j);C0e=HRn([DZ(1,Nn),DZ(2,Yn)],C0e);class owo extends Bn{constructor(){super({id:"editor.action.formatDocument",label:_t(1014,"Format Document"),precondition:Ft.and($e.notInCompositeEditor,$e.writable,$e.hasDocumentFormattingProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(t,n){if(n.hasModel()){const r=t.get(Yn);await t.get(V8).showWhile(r.invokeFunction(two,n,1,qb.None,Er.None,!0),250)}}}class swo extends Bn{constructor(){super({id:"editor.action.formatSelection",label:_t(1015,"Format Selection"),precondition:Ft.and($e.writable,$e.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2084),weight:100},contextMenuOpts:{when:$e.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(t,n){if(!n.hasModel())return;const r=t.get(Yn),o=n.getModel(),s=n.getSelections().map(l=>l.isEmpty()?new Ee(l.startLineNumber,1,l.startLineNumber,o.getLineMaxColumn(l.startLineNumber)):l);await t.get(V8).showWhile(r.invokeFunction(VRn,n,s,1,qb.None,Er.None,!0),250)}}mo(y0e.ID,y0e,2);mo(C0e.ID,C0e,2);un(owo);un(swo);co.registerCommand("editor.action.format",async e=>{const t=e.get(yo).getFocusedCodeEditor();if(!t||!t.hasModel())return;const n=e.get(ba);t.getSelection().isEmpty()?await n.executeCommand("editor.action.formatDocument"):await n.executeCommand("editor.action.formatSelection")});var awo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Lxe=function(e,t){return function(n,r){t(n,r,e)}};class yN{remove(){var t;(t=this.parent)==null||t.children.delete(this.id)}static findId(t,n){let r;typeof t=="string"?r=`${n.id}/${t}`:(r=`${n.id}/${t.name}`,n.children.get(r)!==void 0&&(r=`${n.id}/${t.name}_${t.range.startLineNumber}_${t.range.startColumn}`));let o=r;for(let s=0;n.children.get(o)!==void 0;s++)o=`${r}_${s}`;return o}static empty(t){return t.children.size===0}}class GWe extends yN{constructor(t,n,r){super(),this.id=t,this.parent=n,this.symbol=r,this.children=new Map}}class $Rn extends yN{constructor(t,n,r,o){super(),this.id=t,this.parent=n,this.label=r,this.order=o,this.children=new Map}}class rS extends yN{static create(t,n,r){const o=new ja(r),s=new rS(n.uri),a=t.ordered(n),l=a.map((u,h)=>{const g=yN.findId(`provider_${h}`,s),m=new $Rn(g,s,u.displayName??"Unknown Outline Provider",h);return Promise.resolve(u.provideDocumentSymbols(n,o.token)).then(v=>{for(const f of v||[])rS._makeOutlineElement(f,m);return m},v=>(Nc(v),m)).then(v=>{yN.empty(v)?v.remove():s._groups.set(g,v)})}),d=t.onDidChange(()=>{const u=t.ordered(n);Na(u,a)||o.cancel()});return Promise.all(l).then(()=>o.token.isCancellationRequested&&!r.isCancellationRequested?rS.create(t,n,r):s._compact()).finally(()=>{o.dispose(),d.dispose(),o.dispose()})}static _makeOutlineElement(t,n){const r=yN.findId(t,n),o=new GWe(r,n,t);if(t.children)for(const s of t.children)rS._makeOutlineElement(s,o);n.children.set(o.id,o)}constructor(t){super(),this.uri=t,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let t=0;for(const[n,r]of this._groups)r.children.size===0?this._groups.delete(n):t+=1;if(t!==1)this.children=this._groups;else{const n=to.first(this._groups.values());for(const[,r]of n.children)r.parent=this,this.children.set(r.id,r)}return this}getTopLevelSymbols(){const t=[];for(const n of this.children.values())n instanceof GWe?t.push(n.symbol):t.push(...to.map(n.children.values(),r=>r.symbol));return t.sort((n,r)=>Ee.compareRangesUsingStarts(n.range,r.range))}asListOfDocumentSymbols(){const t=this.getTopLevelSymbols(),n=[];return rS._flattenDocumentSymbols(n,t,""),n.sort((r,o)=>it.compare(Ee.getStartPosition(r.range),Ee.getStartPosition(o.range))||it.compare(Ee.getEndPosition(o.range),Ee.getEndPosition(r.range)))}static _flattenDocumentSymbols(t,n,r){for(const o of n)t.push({kind:o.kind,tags:o.tags,name:o.name,detail:o.detail,containerName:o.containerName||r,range:o.range,selectionRange:o.selectionRange,children:void 0}),o.children&&rS._flattenDocumentSymbols(t,o.children,o.name)}}const ore=Cr("IOutlineModelService");let YWe=class{constructor(t,n,r){this._languageFeaturesService=t,this._disposables=new xt,this._cache=new wp(15,.7),this._debounceInformation=n.for(t.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(r.onModelRemoved(o=>{this._cache.delete(o.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(t,n){const r=this._languageFeaturesService.documentSymbolProvider,o=r.ordered(t);let s=this._cache.get(t.id);if(!s||s.versionId!==t.getVersionId()||!Na(s.provider,o)){const l=new ja;s={versionId:t.getVersionId(),provider:o,promiseCnt:0,source:l,promise:rS.create(r,t,l.token),model:void 0},this._cache.set(t.id,s);const d=Date.now();s.promise.then(u=>{s.model=u,this._debounceInformation.update(t,Date.now()-d)}).catch(u=>{this._cache.delete(t.id)})}if(s.model)return s.model;s.promiseCnt+=1;const a=n.onCancellationRequested(()=>{--s.promiseCnt===0&&(s.source.cancel(),this._cache.delete(t.id))});try{return await s.promise}finally{a.dispose()}}};YWe=awo([Lxe(0,Nn),Lxe(1,CA),Lxe(2,ml)],YWe);zr(ore,YWe,1);co.registerCommand("_executeDocumentSymbolProvider",async function(e,...t){const[n]=t;Oo(vi.isUri(n));const r=e.get(ore),s=await e.get(Dg).createModelReference(n);try{return(await r.getOrCreate(s.object.textEditorModel,Er.None)).getTopLevelSymbols()}finally{s.dispose()}});const R3e=new class{constructor(){this._implementations=[]}register(t){return this._implementations.push(t),{dispose:()=>{const n=this._implementations.indexOf(t);n!==-1&&this._implementations.splice(n,1)}}}getImplementations(){return this._implementations}};var lwo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},cwo=function(e,t){return function(n,r){t(n,r,e)}};function dwo(e){return e instanceof XRn?e._instance:e}let XRn=class{constructor(t){this.instantiationService=t}init(...t){}};function uwo(e){return e.get()}let Xyt=class extends XRn{constructor(t,n){super(n),this.init(t)}};Xyt=lwo([cwo(1,Yn)],Xyt);class sre{validateOrThrow(t){const n=this.validate(t);if(n.error)throw new Error(n.error.message);return n.content}}class I3e extends sre{constructor(t){super(),this.type=t}validate(t){return typeof t!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof t}`}}:{content:t,error:void 0}}getJSONSchema(){return{type:this.type}}}const hwo=new I3e("string");function fwo(){return hwo}new I3e("number");const gwo=new I3e("boolean");function Gyt(){return gwo}new I3e("object");class GRn extends sre{validate(t){return t!==void 0?{content:void 0,error:{message:`Expected undefined, but got ${typeof t}`}}:{content:void 0,error:void 0}}getJSONSchema(){return{}}}function mwo(){return new GRn}class ZWe{constructor(t){this.validator=t}}function xxe(e){return new ZWe(e)}class kwo extends sre{constructor(t){super(),this.properties=t}validate(t){if(typeof t!="object"||t===null)return{content:void 0,error:{message:"Expected object"}};const n={};for(const r in this.properties){const o=this.properties[r],s=t[r],a=o instanceof ZWe,l=a?o.validator:o;if(a&&s===void 0)continue;const{content:d,error:u}=l.validate(s);if(u)return{content:void 0,error:{message:`Error in property '${r}': ${u.message}`}};n[r]=d}return{content:n,error:void 0}}getJSONSchema(){const t=[],n={};for(const[o,s]of Object.entries(this.properties)){const a=s instanceof ZWe,l=a?s.validator:s;n[o]=l.getJSONSchema(),a||t.push(o)}return{type:"object",properties:n,...t.length>0?{required:t}:{}}}}function vwo(e){return new kwo(e)}class Awo extends sre{constructor(t){super(),this.validators=t}validate(t){let n;for(const r of this.validators){const{content:o,error:s}=r.validate(t);if(!s)return{content:o,error:void 0};n=s}return{content:void 0,error:n}}getJSONSchema(){return{oneOf:ato(this.validators,t=>{if(!(t instanceof GRn))return t.getJSONSchema()})}}}function pwo(...e){return new Awo(e)}class bwo extends sre{constructor(t,n){super(),this._ref=t,this._validator=n}validate(t){return this._validator.validate(t)}getJSONSchema(){return{$ref:this._ref}}}function wwo(e,t){return new bwo(e,t)}const _r={Visible:Ktt,HasFocusedSuggestion:new yn("suggestWidgetHasFocusedSuggestion",!1,U(1455,"Whether any suggestion is focused")),DetailsVisible:new yn("suggestWidgetDetailsVisible",!1,U(1456,"Whether suggestion details are visible")),MultipleSuggestions:new yn("suggestWidgetMultipleSuggestions",!1,U(1457,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new yn("suggestionMakesTextEdit",!0,U(1458,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new yn("acceptSuggestionOnEnter",!0,U(1459,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new yn("suggestionHasInsertAndReplaceRange",!1,U(1460,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new yn("suggestionInsertMode",void 0,{type:"string",description:U(1461,"Whether the default behaviour is to insert or replace")}),CanResolve:new yn("suggestionCanResolve",!1,U(1462,"Whether the current suggestion supports to resolve further details"))},j9=new Wn("suggestWidgetStatusBar");let Owo=class{constructor(t,n,r,o){var s;this.position=t,this.completion=n,this.container=r,this.provider=o,this.isInvalid=!1,this.score=q4.Default,this.distance=0,this.textLabel=typeof n.label=="string"?n.label:(s=n.label)==null?void 0:s.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),this.extensionId=n.extensionId,Ee.isIRange(n.range)?(this.editStart=new it(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new it(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new it(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||Ee.spansMultipleLines(n.range)||n.range.startLineNumber!==t.lineNumber):(this.editStart=new it(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new it(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new it(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||Ee.spansMultipleLines(n.range.insert)||Ee.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==t.lineNumber||n.range.replace.startLineNumber!==t.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn),typeof o.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(t){if(!this._resolveCache){const n=t.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),r=new vu(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,t)).then(o=>{Object.assign(this.completion,o),this._resolveDuration=r.elapsed()},o=>{C2(o)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{n.dispose()})}return this._resolveCache}};const iAe=class iAe{constructor(t=2,n=new Set,r=new Set,o=new Map,s=!0){this.snippetSortOrder=t,this.kindFilter=n,this.providerFilter=r,this.providerItemsToReuse=o,this.showDeprecated=s}};iAe.default=new iAe;let JJ=iAe;class ywo{constructor(t,n,r,o){this.items=t,this.needsClipboard=n,this.durations=r,this.disposable=o}}async function Bnt(e,t,n,r=JJ.default,o={triggerKind:0},s=Er.None){const a=new vu;n=n.clone();const l=t.getWordAtPosition(n),d=l?new Ee(n.lineNumber,l.startColumn,n.lineNumber,l.endColumn):Ee.fromPositions(n),u={replace:d,insert:d.setEndPosition(n.lineNumber,n.column)},h=[],g=new xt,m=[];let v=!1;const f=(A,p,b)=>{var O;let w=!1;if(!p)return w;for(const y of p.suggestions)if(!r.kindFilter.has(y.kind)){if(!r.showDeprecated&&((O=y==null?void 0:y.tags)!=null&&O.includes(1)))continue;y.range||(y.range=u),y.sortText||(y.sortText=typeof y.label=="string"?y.label:y.label.label),!v&&y.insertTextRules&&y.insertTextRules&4&&(v=wR.guessNeedsClipboard(y.insertText)),h.push(new Owo(n,y,p,A)),w=!0}return AI(p)&&g.add(p),m.push({providerName:A._debugDisplayName??"unknown_provider",elapsedProvider:p.duration??-1,elapsedOverall:b.elapsed()}),w},k=(async()=>{})();for(const A of e.orderedGroups(t)){let p=!1;if(await Promise.all(A.map(async b=>{if(r.providerItemsToReuse.has(b)){const w=r.providerItemsToReuse.get(b);w.forEach(O=>h.push(O)),p=p||w.length>0;return}if(!(r.providerFilter.size>0&&!r.providerFilter.has(b)))try{const w=new vu,O=await b.provideCompletionItems(t,n,o,s);p=f(b,O,w)||p}catch(w){Nc(w)}})),p||s.isCancellationRequested)break}return await k,s.isCancellationRequested?(g.dispose(),Promise.reject(new lA)):new ywo(h.sort(Swo(r.snippetSortOrder)),v,{entries:m,elapsed:a.elapsed()},g)}function Rnt(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLowt.sortTextLow)return 1}return e.textLabelt.textLabel?1:e.completion.kind-t.completion.kind}function Cwo(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return-1;if(t.completion.kind===28)return 1}return Rnt(e,t)}function _wo(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return 1;if(t.completion.kind===28)return-1}return Rnt(e,t)}const M3e=new Map;M3e.set(0,Cwo);M3e.set(2,_wo);M3e.set(1,Rnt);function Swo(e){return M3e.get(e)}co.registerCommand("_executeCompletionItemProvider",async(e,...t)=>{const[n,r,o,s]=t;Oo(vi.isUri(n)),Oo(it.isIPosition(r)),Oo(typeof o=="string"||!o),Oo(typeof s=="number"||!s);const{completionProvider:a}=e.get(Nn),l=await e.get(Dg).createModelReference(n);try{const d={incomplete:!1,suggestions:[]},u=[],h=l.object.textEditorModel.validatePosition(r),g=await Bnt(a,l.object.textEditorModel,h,void 0,{triggerCharacter:o??void 0,triggerKind:o?1:0});for(const m of g.items)u.length<(s??0)&&u.push(m.resolve(Er.None)),d.incomplete=d.incomplete||m.container.incomplete,d.suggestions.push(m.completion);try{return await Promise.all(u),d}finally{setTimeout(()=>g.disposable.dispose(),100)}}finally{l.dispose()}});function Lwo(e,t){var n;(n=e.getContribution("editor.contrib.suggestController"))==null||n.triggerSuggest(new Set().add(t),void 0,!0)}class CN{static isAllOff(t){return t.other==="off"&&t.comments==="off"&&t.strings==="off"}static isAllOn(t){return t.other==="on"&&t.comments==="on"&&t.strings==="on"}static valueFor(t,n){switch(n){case 1:return t.comments;case 2:return t.strings;default:return t.other}}}const Sk=class Sk{};Sk.inlineSuggestionVisible=new yn("inlineSuggestionVisible",!1,U(1192,"Whether an inline suggestion is visible")),Sk.inlineSuggestionHasIndentation=new yn("inlineSuggestionHasIndentation",!1,U(1193,"Whether the inline suggestion starts with whitespace")),Sk.inlineSuggestionHasIndentationLessThanTabSize=new yn("inlineSuggestionHasIndentationLessThanTabSize",!0,U(1194,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),Sk.suppressSuggestions=new yn("inlineSuggestionSuppressSuggestions",void 0,U(1195,"Whether suggestions should be suppressed for the current suggestion")),Sk.cursorBeforeGhostText=new yn("cursorBeforeGhostText",!1,U(1196,"Whether the cursor is at ghost text")),Sk.cursorInIndentation=new yn("cursorInIndentation",!1,U(1197,"Whether the cursor is in indentation")),Sk.hasSelection=new yn("editor.hasSelection",!1,U(1198,"Whether the editor has a selection")),Sk.cursorAtInlineEdit=new yn("cursorAtInlineEdit",!1,U(1199,"Whether the cursor is at an inline edit")),Sk.inlineEditVisible=new yn("inlineEditIsVisible",!1,U(1200,"Whether an inline edit is visible")),Sk.tabShouldJumpToInlineEdit=new yn("tabShouldJumpToInlineEdit",!1,U(1201,"Whether tab should jump to an inline edit.")),Sk.tabShouldAcceptInlineEdit=new yn("tabShouldAcceptInlineEdit",!1,U(1202,"Whether tab should accept the inline edit.")),Sk.inInlineEditsPreviewEditor=new yn("inInlineEditsPreviewEditor",!0,U(1203,"Whether the current code editor is showing an inline edits preview"));let Ns=Sk;class xwo{constructor(t,n,r){this._selection=t,this._cursors=n,this._selectionId=null,this._trimInRegexesAndStrings=r}getEditOperations(t,n){const r=Ewo(t,this._cursors,this._trimInRegexesAndStrings);for(let o=0,s=r.length;ol.lineNumber===d.lineNumber?l.column-d.column:l.lineNumber-d.lineNumber);for(let l=t.length-2;l>=0;l--)t[l].lineNumber===t[l+1].lineNumber&&t.splice(l,1);const r=[];let o=0,s=0;const a=t.length;for(let l=1,d=e.getLineCount();l<=d;l++){const u=e.getLineContent(l),h=u.length+1;let g=0;if(srU.ID_PREFIX+t;let O0e=rU;class z3o extends af{constructor(){super({id:"editor.gotoParentFold",label:_t(995,"Go to Parent Fold"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);if(o.length>0){const s=f3o(o[0],n);s!==null&&r.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class H3o extends af{constructor(){super({id:"editor.gotoPreviousFold",label:_t(996,"Go to Previous Folding Range"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);if(o.length>0){const s=g3o(o[0],n);s!==null&&r.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class $3o extends af{constructor(){super({id:"editor.gotoNextFold",label:_t(997,"Go to Next Folding Range"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}invoke(t,n,r){const o=this.getSelectedLines(r);if(o.length>0){const s=m3o(o[0],n);s!==null&&r.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class X3o extends af{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:_t(998,"Create Folding Range from Selection"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2135),weight:100}})}invoke(t,n,r){var a;const o=[],s=r.getSelections();if(s){for(const l of s){let d=l.endLineNumber;l.endColumn===1&&--d,d>l.startLineNumber&&(o.push({startLineNumber:l.startLineNumber,endLineNumber:d,type:void 0,isCollapsed:!0,source:1}),r.setSelection({startLineNumber:l.startLineNumber,startColumn:1,endLineNumber:l.startLineNumber,endColumn:1}))}if(o.length>0){o.sort((d,u)=>d.startLineNumber-u.startLineNumber);const l=Nk.sanitizeAndMerge(n.regions,o,(a=r.getModel())==null?void 0:a.getLineCount());n.updatePost(Nk.fromFoldRanges(l))}}}}class G3o extends af{constructor(){super({id:"editor.removeManualFoldingRanges",label:_t(999,"Remove Manual Folding Ranges"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2137),weight:100}})}invoke(t,n,r){const o=r.getSelections();if(o){const s=[];for(const a of o){const{startLineNumber:l,endLineNumber:d}=a;s.push(d>=l?{startLineNumber:l,endLineNumber:d}:{endLineNumber:d,startLineNumber:l})}n.removeManualRanges(s),t.triggerFoldingModelChanged()}}}class Y3o extends af{constructor(){super({id:"editor.toggleImportFold",label:_t(1e3,"Toggle Import Fold"),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,weight:100}})}async invoke(t,n){const r=[],o=n.regions;for(let s=o.length-1;s>=0;s--)o.getType(s)===LI.Imports.value&&r.push(o.toRegion(s));n.toggleCollapseState(r),t.triggerFoldingModelChanged()}}mo(R6.ID,R6,0);un(Q3o);un(D3o);un(B3o);un(I3o);un(M3o);un(W3o);un(V3o);un(P3o);un(F3o);un(N3o);un(U3o);un(j3o);un(R3o);un(z3o);un(H3o);un($3o);un(X3o);un(G3o);un(Y3o);for(let e=1;e<=7;e++)Wno(new O0e({id:O0e.ID(e),label:_t(1001,"Fold Level {0}",e),precondition:Ah,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2048|21+e),weight:100}}));uo.registerCommand("_executeFoldingRangeProvider",async function(e,...t){const[n]=t;if(!(n instanceof vi))throw Gv();const r=e.get(Nn),o=e.get(ml).getModel(n);if(!o)throw Gv();const s=e.get(ar);if(!s.getValue("editor.folding",{resource:n}))return[];const a=e.get(kl),l=s.getValue("editor.foldingStrategy",{resource:n}),d={get limit(){return s.getValue("editor.foldingMaximumRegions",{resource:n})},update:(v,f)=>{}},u=new Qnt(o,a,d);let h=u;if(l!=="indentation"){const v=R6.getFoldingRangeProviders(r,o);v.length&&(h=new Dnt(o,v,()=>{},d,u))}const g=await h.compute(Er.None),m=[];try{if(g)for(let v=0;v$l.replace(Ee.lift(a.range),a.text))):t.executeEdits("formatEditsCommand",s.map(a=>$l.replaceMove(Ee.lift(a.range),a.text))),r&&t.pushUndoStop(),o.restoreRelativeVerticalPositionOfCursor(t)}}class $yt{constructor(t){this.value=t,this._lower=t.toLowerCase()}static toKey(t){return typeof t=="string"?t.toLowerCase():t._lower}}class J3o{constructor(t){if(this._set=new Set,t)for(const n of t)this.add(n)}add(t){this._set.add($yt.toKey(t))}has(t){return this._set.has($yt.toKey(t))}}function WRn(e,t,n){const r=[],o=new J3o,s=e.ordered(n);for(const l of s)r.push(l),l.extensionId&&o.add(l.extensionId);const a=t.ordered(n);for(const l of a){if(l.extensionId){if(o.has(l.extensionId))continue;o.add(l.extensionId)}r.push({displayName:l.displayName,extensionId:l.extensionId,provideDocumentFormattingEdits(d,u,h){return l.provideDocumentRangeFormattingEdits(d,d.getFullModelRange(),u,h)}})}return r}const Lq=class Lq{static setFormatterSelector(t){return{dispose:Lq._selectors.unshift(t)}}static async select(t,n,r,o){if(t.length===0)return;const s=to.first(Lq._selectors);if(s)return await s(t,n,r,o)}};Lq._selectors=new bg;let KJ=Lq;async function VRn(e,t,n,r,o,s,a){const l=e.get(Yn),{documentRangeFormattingEditProvider:d}=e.get(Nn),u=C3(t)?t.getModel():t,h=d.ordered(u),g=await KJ.select(h,u,r,2);g&&(o.report(g),await l.invokeFunction(ewo,g,t,n,s,a))}async function ewo(e,t,n,r,o,s){var p,b;const a=e.get(S1),l=e.get(va),d=e.get(pL);let u,h;C3(n)?(u=n.getModel(),h=new z8(n,5,void 0,o)):(u=n,h=new Ntt(n,o));const g=[];let m=0;for(const w of WJe(r).sort(Ee.compareRangesUsingStarts))m>0&&Ee.areIntersectingOrTouching(g[m-1],w)?g[m-1]=Ee.fromPositions(g[m-1].getStartPosition(),w.getEndPosition()):m=g.push(w);const v=async w=>{var y,C;l.trace("[format][provideDocumentRangeFormattingEdits] (request)",(y=t.extensionId)==null?void 0:y.value,w);const O=await t.provideDocumentRangeFormattingEdits(u,w,u.getFormattingOptions(),h.token)||[];return l.trace("[format][provideDocumentRangeFormattingEdits] (response)",(C=t.extensionId)==null?void 0:C.value,O),O},f=(w,O)=>{if(!w.length||!O.length)return!1;const y=w.reduce((C,_)=>Ee.plusRange(C,_.range),w[0].range);if(!O.some(C=>Ee.intersectRanges(y,C.range)))return!1;for(const C of w)for(const _ of O)if(Ee.intersectRanges(C.range,_.range))return!0;return!1},k=[],A=[];try{if(typeof t.provideDocumentRangesFormattingEdits=="function"){l.trace("[format][provideDocumentRangeFormattingEdits] (request)",(p=t.extensionId)==null?void 0:p.value,g);const w=await t.provideDocumentRangesFormattingEdits(u,g,u.getFormattingOptions(),h.token)||[];l.trace("[format][provideDocumentRangeFormattingEdits] (response)",(b=t.extensionId)==null?void 0:b.value,w),A.push(w)}else{for(const w of g){if(h.token.isCancellationRequested)return!0;A.push(await v(w))}for(let w=0;w({text:y.text,range:Ee.lift(y.range),forceMoveMarkers:!0})),y=>{for(const{range:C}of y)if(Ee.areIntersectingOrTouching(C,O))return[new Qn(C.startLineNumber,C.startColumn,C.endLineNumber,C.endColumn)];return null})}return d.playSignal(nm.format,{userGesture:s}),!0}async function two(e,t,n,r,o,s){const a=e.get(Yn),l=e.get(Nn),d=C3(t)?t.getModel():t,u=WRn(l.documentFormattingEditProvider,l.documentRangeFormattingEditProvider,d),h=await KJ.select(u,d,n,1);h&&(r.report(h),await a.invokeFunction(nwo,h,t,n,o,s))}async function nwo(e,t,n,r,o,s){const a=e.get(S1),l=e.get(pL);let d,u;C3(n)?(d=n.getModel(),u=new z8(n,5,void 0,o)):(d=n,u=new Ntt(n,o));let h;try{const g=await t.provideDocumentFormattingEdits(d,d.getFormattingOptions(),u.token);if(h=await a.computeMoreMinimalEdits(d.uri,g),u.token.isCancellationRequested)return!0}finally{u.dispose()}if(!h||h.length===0)return!1;if(C3(n))CV.execute(n,h,r!==2),r!==2&&n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1);else{const[{range:g}]=h,m=new Qn(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn);d.pushEditOperations([m],h.map(v=>({text:v.text,range:Ee.lift(v.range),forceMoveMarkers:!0})),v=>{for(const{range:f}of v)if(Ee.areIntersectingOrTouching(f,m))return[new Qn(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn)];return null})}return l.playSignal(nm.format,{userGesture:s}),!0}async function iwo(e,t,n,r,o,s){const a=t.documentRangeFormattingEditProvider.ordered(n);for(const l of a){const d=await Promise.resolve(l.provideDocumentRangeFormattingEdits(n,r,o,s)).catch(Nc);if(yg(d))return await e.computeMoreMinimalEdits(n.uri,d)}}async function rwo(e,t,n,r,o){const s=WRn(t.documentFormattingEditProvider,t.documentRangeFormattingEditProvider,n);for(const a of s){const l=await Promise.resolve(a.provideDocumentFormattingEdits(n,r,o)).catch(Nc);if(yg(l))return await e.computeMoreMinimalEdits(n.uri,l)}}function zRn(e,t,n,r,o,s,a){const l=t.onTypeFormattingEditProvider.ordered(n);return l.length===0||l[0].autoFormatTriggerCharacters.indexOf(o)<0?Promise.resolve(void 0):Promise.resolve(l[0].provideOnTypeFormattingEdits(n,r,o,s,a)).catch(Nc).then(d=>e.computeMoreMinimalEdits(n.uri,d))}uo.registerCommand("_executeFormatRangeProvider",async function(e,...t){const[n,r,o]=t;Oo(vi.isUri(n)),Oo(Ee.isIRange(r));const s=e.get(Dg),a=e.get(S1),l=e.get(Nn),d=await s.createModelReference(n);try{return iwo(a,l,d.object.textEditorModel,Ee.lift(r),o,Er.None)}finally{d.dispose()}});uo.registerCommand("_executeFormatDocumentProvider",async function(e,...t){const[n,r]=t;Oo(vi.isUri(n));const o=e.get(Dg),s=e.get(S1),a=e.get(Nn),l=await o.createModelReference(n);try{return rwo(s,a,l.object.textEditorModel,r,Er.None)}finally{l.dispose()}});uo.registerCommand("_executeFormatOnTypeProvider",async function(e,...t){const[n,r,o,s]=t;Oo(vi.isUri(n)),Oo(it.isIPosition(r)),Oo(typeof o=="string");const a=e.get(Dg),l=e.get(S1),d=e.get(Nn),u=await a.createModelReference(n);try{return zRn(l,d,u.object.textEditorModel,it.lift(r),o,s,Er.None)}finally{u.dispose()}});var HRn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DZ=function(e,t){return function(n,r){t(n,r,e)}},Hj;let y0e=(Hj=class{constructor(t,n,r,o){this._editor=t,this._languageFeaturesService=n,this._workerService=r,this._accessibilitySignalService=o,this._disposables=new xt,this._sessionDisposables=new xt,this._disposables.add(n.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(t.onDidChangeModel(()=>this._update())),this._disposables.add(t.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(t.onDidChangeConfiguration(s=>{s.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65)||!this._editor.hasModel())return;const t=this._editor.getModel(),[n]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(t);if(!n||!n.autoFormatTriggerCharacters)return;const r=new Bme;for(const o of n.autoFormatTriggerCharacters)r.add(o.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(o=>{const s=o.charCodeAt(o.length-1);r.has(s)&&this._trigger(String.fromCharCode(s))}))}_trigger(t){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const n=this._editor.getModel(),r=this._editor.getPosition(),o=new ja,s=this._editor.onDidChangeModelContent(a=>{if(a.isFlush){o.cancel(),s.dispose();return}for(let l=0,d=a.changes.length;l{o.token.isCancellationRequested||yg(a)&&(this._accessibilitySignalService.playSignal(nm.format,{userGesture:!1}),CV.execute(this._editor,a,!0))}).finally(()=>{s.dispose()})}},Hj.ID="editor.contrib.autoFormat",Hj);y0e=HRn([DZ(1,Nn),DZ(2,S1),DZ(3,pL)],y0e);var $j;let C0e=($j=class{constructor(t,n,r){this.editor=t,this._languageFeaturesService=n,this._instantiationService=r,this._callOnDispose=new xt,this._callOnModel=new xt,this._callOnDispose.add(t.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(t.onDidChangeModel(()=>this._update())),this._callOnDispose.add(t.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(n.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(64)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:t})=>this._trigger(t)))}_trigger(t){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(VRn,this.editor,t,2,qb.None,Er.None,!1).catch(zi))}},$j.ID="editor.contrib.formatOnPaste",$j);C0e=HRn([DZ(1,Nn),DZ(2,Yn)],C0e);class owo extends Bn{constructor(){super({id:"editor.action.formatDocument",label:_t(1014,"Format Document"),precondition:Ft.and($e.notInCompositeEditor,$e.writable,$e.hasDocumentFormattingProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(t,n){if(n.hasModel()){const r=t.get(Yn);await t.get(V8).showWhile(r.invokeFunction(two,n,1,qb.None,Er.None,!0),250)}}}class swo extends Bn{constructor(){super({id:"editor.action.formatSelection",label:_t(1015,"Format Selection"),precondition:Ft.and($e.writable,$e.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2084),weight:100},contextMenuOpts:{when:$e.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(t,n){if(!n.hasModel())return;const r=t.get(Yn),o=n.getModel(),s=n.getSelections().map(l=>l.isEmpty()?new Ee(l.startLineNumber,1,l.startLineNumber,o.getLineMaxColumn(l.startLineNumber)):l);await t.get(V8).showWhile(r.invokeFunction(VRn,n,s,1,qb.None,Er.None,!0),250)}}mo(y0e.ID,y0e,2);mo(C0e.ID,C0e,2);un(owo);un(swo);uo.registerCommand("editor.action.format",async e=>{const t=e.get(yo).getFocusedCodeEditor();if(!t||!t.hasModel())return;const n=e.get(ba);t.getSelection().isEmpty()?await n.executeCommand("editor.action.formatDocument"):await n.executeCommand("editor.action.formatSelection")});var awo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Lxe=function(e,t){return function(n,r){t(n,r,e)}};class yN{remove(){var t;(t=this.parent)==null||t.children.delete(this.id)}static findId(t,n){let r;typeof t=="string"?r=`${n.id}/${t}`:(r=`${n.id}/${t.name}`,n.children.get(r)!==void 0&&(r=`${n.id}/${t.name}_${t.range.startLineNumber}_${t.range.startColumn}`));let o=r;for(let s=0;n.children.get(o)!==void 0;s++)o=`${r}_${s}`;return o}static empty(t){return t.children.size===0}}class GWe extends yN{constructor(t,n,r){super(),this.id=t,this.parent=n,this.symbol=r,this.children=new Map}}class $Rn extends yN{constructor(t,n,r,o){super(),this.id=t,this.parent=n,this.label=r,this.order=o,this.children=new Map}}class rS extends yN{static create(t,n,r){const o=new ja(r),s=new rS(n.uri),a=t.ordered(n),l=a.map((u,h)=>{const g=yN.findId(`provider_${h}`,s),m=new $Rn(g,s,u.displayName??"Unknown Outline Provider",h);return Promise.resolve(u.provideDocumentSymbols(n,o.token)).then(v=>{for(const f of v||[])rS._makeOutlineElement(f,m);return m},v=>(Nc(v),m)).then(v=>{yN.empty(v)?v.remove():s._groups.set(g,v)})}),d=t.onDidChange(()=>{const u=t.ordered(n);Na(u,a)||o.cancel()});return Promise.all(l).then(()=>o.token.isCancellationRequested&&!r.isCancellationRequested?rS.create(t,n,r):s._compact()).finally(()=>{o.dispose(),d.dispose(),o.dispose()})}static _makeOutlineElement(t,n){const r=yN.findId(t,n),o=new GWe(r,n,t);if(t.children)for(const s of t.children)rS._makeOutlineElement(s,o);n.children.set(o.id,o)}constructor(t){super(),this.uri=t,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let t=0;for(const[n,r]of this._groups)r.children.size===0?this._groups.delete(n):t+=1;if(t!==1)this.children=this._groups;else{const n=to.first(this._groups.values());for(const[,r]of n.children)r.parent=this,this.children.set(r.id,r)}return this}getTopLevelSymbols(){const t=[];for(const n of this.children.values())n instanceof GWe?t.push(n.symbol):t.push(...to.map(n.children.values(),r=>r.symbol));return t.sort((n,r)=>Ee.compareRangesUsingStarts(n.range,r.range))}asListOfDocumentSymbols(){const t=this.getTopLevelSymbols(),n=[];return rS._flattenDocumentSymbols(n,t,""),n.sort((r,o)=>it.compare(Ee.getStartPosition(r.range),Ee.getStartPosition(o.range))||it.compare(Ee.getEndPosition(o.range),Ee.getEndPosition(r.range)))}static _flattenDocumentSymbols(t,n,r){for(const o of n)t.push({kind:o.kind,tags:o.tags,name:o.name,detail:o.detail,containerName:o.containerName||r,range:o.range,selectionRange:o.selectionRange,children:void 0}),o.children&&rS._flattenDocumentSymbols(t,o.children,o.name)}}const ore=Cr("IOutlineModelService");let YWe=class{constructor(t,n,r){this._languageFeaturesService=t,this._disposables=new xt,this._cache=new wp(15,.7),this._debounceInformation=n.for(t.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(r.onModelRemoved(o=>{this._cache.delete(o.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(t,n){const r=this._languageFeaturesService.documentSymbolProvider,o=r.ordered(t);let s=this._cache.get(t.id);if(!s||s.versionId!==t.getVersionId()||!Na(s.provider,o)){const l=new ja;s={versionId:t.getVersionId(),provider:o,promiseCnt:0,source:l,promise:rS.create(r,t,l.token),model:void 0},this._cache.set(t.id,s);const d=Date.now();s.promise.then(u=>{s.model=u,this._debounceInformation.update(t,Date.now()-d)}).catch(u=>{this._cache.delete(t.id)})}if(s.model)return s.model;s.promiseCnt+=1;const a=n.onCancellationRequested(()=>{--s.promiseCnt===0&&(s.source.cancel(),this._cache.delete(t.id))});try{return await s.promise}finally{a.dispose()}}};YWe=awo([Lxe(0,Nn),Lxe(1,CA),Lxe(2,ml)],YWe);zr(ore,YWe,1);uo.registerCommand("_executeDocumentSymbolProvider",async function(e,...t){const[n]=t;Oo(vi.isUri(n));const r=e.get(ore),s=await e.get(Dg).createModelReference(n);try{return(await r.getOrCreate(s.object.textEditorModel,Er.None)).getTopLevelSymbols()}finally{s.dispose()}});const R3e=new class{constructor(){this._implementations=[]}register(t){return this._implementations.push(t),{dispose:()=>{const n=this._implementations.indexOf(t);n!==-1&&this._implementations.splice(n,1)}}}getImplementations(){return this._implementations}};var lwo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},cwo=function(e,t){return function(n,r){t(n,r,e)}};function dwo(e){return e instanceof XRn?e._instance:e}let XRn=class{constructor(t){this.instantiationService=t}init(...t){}};function uwo(e){return e.get()}let Xyt=class extends XRn{constructor(t,n){super(n),this.init(t)}};Xyt=lwo([cwo(1,Yn)],Xyt);class sre{validateOrThrow(t){const n=this.validate(t);if(n.error)throw new Error(n.error.message);return n.content}}class I3e extends sre{constructor(t){super(),this.type=t}validate(t){return typeof t!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof t}`}}:{content:t,error:void 0}}getJSONSchema(){return{type:this.type}}}const hwo=new I3e("string");function fwo(){return hwo}new I3e("number");const gwo=new I3e("boolean");function Gyt(){return gwo}new I3e("object");class GRn extends sre{validate(t){return t!==void 0?{content:void 0,error:{message:`Expected undefined, but got ${typeof t}`}}:{content:void 0,error:void 0}}getJSONSchema(){return{}}}function mwo(){return new GRn}class ZWe{constructor(t){this.validator=t}}function xxe(e){return new ZWe(e)}class kwo extends sre{constructor(t){super(),this.properties=t}validate(t){if(typeof t!="object"||t===null)return{content:void 0,error:{message:"Expected object"}};const n={};for(const r in this.properties){const o=this.properties[r],s=t[r],a=o instanceof ZWe,l=a?o.validator:o;if(a&&s===void 0)continue;const{content:d,error:u}=l.validate(s);if(u)return{content:void 0,error:{message:`Error in property '${r}': ${u.message}`}};n[r]=d}return{content:n,error:void 0}}getJSONSchema(){const t=[],n={};for(const[o,s]of Object.entries(this.properties)){const a=s instanceof ZWe,l=a?s.validator:s;n[o]=l.getJSONSchema(),a||t.push(o)}return{type:"object",properties:n,...t.length>0?{required:t}:{}}}}function vwo(e){return new kwo(e)}class Awo extends sre{constructor(t){super(),this.validators=t}validate(t){let n;for(const r of this.validators){const{content:o,error:s}=r.validate(t);if(!s)return{content:o,error:void 0};n=s}return{content:void 0,error:n}}getJSONSchema(){return{oneOf:ato(this.validators,t=>{if(!(t instanceof GRn))return t.getJSONSchema()})}}}function pwo(...e){return new Awo(e)}class bwo extends sre{constructor(t,n){super(),this._ref=t,this._validator=n}validate(t){return this._validator.validate(t)}getJSONSchema(){return{$ref:this._ref}}}function wwo(e,t){return new bwo(e,t)}const _r={Visible:Ktt,HasFocusedSuggestion:new yn("suggestWidgetHasFocusedSuggestion",!1,U(1455,"Whether any suggestion is focused")),DetailsVisible:new yn("suggestWidgetDetailsVisible",!1,U(1456,"Whether suggestion details are visible")),MultipleSuggestions:new yn("suggestWidgetMultipleSuggestions",!1,U(1457,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new yn("suggestionMakesTextEdit",!0,U(1458,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new yn("acceptSuggestionOnEnter",!0,U(1459,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new yn("suggestionHasInsertAndReplaceRange",!1,U(1460,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new yn("suggestionInsertMode",void 0,{type:"string",description:U(1461,"Whether the default behaviour is to insert or replace")}),CanResolve:new yn("suggestionCanResolve",!1,U(1462,"Whether the current suggestion supports to resolve further details"))},j9=new Wn("suggestWidgetStatusBar");let Owo=class{constructor(t,n,r,o){var s;this.position=t,this.completion=n,this.container=r,this.provider=o,this.isInvalid=!1,this.score=q4.Default,this.distance=0,this.textLabel=typeof n.label=="string"?n.label:(s=n.label)==null?void 0:s.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),this.extensionId=n.extensionId,Ee.isIRange(n.range)?(this.editStart=new it(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new it(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new it(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||Ee.spansMultipleLines(n.range)||n.range.startLineNumber!==t.lineNumber):(this.editStart=new it(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new it(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new it(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||Ee.spansMultipleLines(n.range.insert)||Ee.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==t.lineNumber||n.range.replace.startLineNumber!==t.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn),typeof o.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(t){if(!this._resolveCache){const n=t.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),r=new vu(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,t)).then(o=>{Object.assign(this.completion,o),this._resolveDuration=r.elapsed()},o=>{C2(o)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{n.dispose()})}return this._resolveCache}};const iAe=class iAe{constructor(t=2,n=new Set,r=new Set,o=new Map,s=!0){this.snippetSortOrder=t,this.kindFilter=n,this.providerFilter=r,this.providerItemsToReuse=o,this.showDeprecated=s}};iAe.default=new iAe;let JJ=iAe;class ywo{constructor(t,n,r,o){this.items=t,this.needsClipboard=n,this.durations=r,this.disposable=o}}async function Bnt(e,t,n,r=JJ.default,o={triggerKind:0},s=Er.None){const a=new vu;n=n.clone();const l=t.getWordAtPosition(n),d=l?new Ee(n.lineNumber,l.startColumn,n.lineNumber,l.endColumn):Ee.fromPositions(n),u={replace:d,insert:d.setEndPosition(n.lineNumber,n.column)},h=[],g=new xt,m=[];let v=!1;const f=(A,p,b)=>{var O;let w=!1;if(!p)return w;for(const y of p.suggestions)if(!r.kindFilter.has(y.kind)){if(!r.showDeprecated&&((O=y==null?void 0:y.tags)!=null&&O.includes(1)))continue;y.range||(y.range=u),y.sortText||(y.sortText=typeof y.label=="string"?y.label:y.label.label),!v&&y.insertTextRules&&y.insertTextRules&4&&(v=wR.guessNeedsClipboard(y.insertText)),h.push(new Owo(n,y,p,A)),w=!0}return AI(p)&&g.add(p),m.push({providerName:A._debugDisplayName??"unknown_provider",elapsedProvider:p.duration??-1,elapsedOverall:b.elapsed()}),w},k=(async()=>{})();for(const A of e.orderedGroups(t)){let p=!1;if(await Promise.all(A.map(async b=>{if(r.providerItemsToReuse.has(b)){const w=r.providerItemsToReuse.get(b);w.forEach(O=>h.push(O)),p=p||w.length>0;return}if(!(r.providerFilter.size>0&&!r.providerFilter.has(b)))try{const w=new vu,O=await b.provideCompletionItems(t,n,o,s);p=f(b,O,w)||p}catch(w){Nc(w)}})),p||s.isCancellationRequested)break}return await k,s.isCancellationRequested?(g.dispose(),Promise.reject(new lA)):new ywo(h.sort(Swo(r.snippetSortOrder)),v,{entries:m,elapsed:a.elapsed()},g)}function Rnt(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLowt.sortTextLow)return 1}return e.textLabelt.textLabel?1:e.completion.kind-t.completion.kind}function Cwo(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return-1;if(t.completion.kind===28)return 1}return Rnt(e,t)}function _wo(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return 1;if(t.completion.kind===28)return-1}return Rnt(e,t)}const M3e=new Map;M3e.set(0,Cwo);M3e.set(2,_wo);M3e.set(1,Rnt);function Swo(e){return M3e.get(e)}uo.registerCommand("_executeCompletionItemProvider",async(e,...t)=>{const[n,r,o,s]=t;Oo(vi.isUri(n)),Oo(it.isIPosition(r)),Oo(typeof o=="string"||!o),Oo(typeof s=="number"||!s);const{completionProvider:a}=e.get(Nn),l=await e.get(Dg).createModelReference(n);try{const d={incomplete:!1,suggestions:[]},u=[],h=l.object.textEditorModel.validatePosition(r),g=await Bnt(a,l.object.textEditorModel,h,void 0,{triggerCharacter:o??void 0,triggerKind:o?1:0});for(const m of g.items)u.length<(s??0)&&u.push(m.resolve(Er.None)),d.incomplete=d.incomplete||m.container.incomplete,d.suggestions.push(m.completion);try{return await Promise.all(u),d}finally{setTimeout(()=>g.disposable.dispose(),100)}}finally{l.dispose()}});function Lwo(e,t){var n;(n=e.getContribution("editor.contrib.suggestController"))==null||n.triggerSuggest(new Set().add(t),void 0,!0)}class CN{static isAllOff(t){return t.other==="off"&&t.comments==="off"&&t.strings==="off"}static isAllOn(t){return t.other==="on"&&t.comments==="on"&&t.strings==="on"}static valueFor(t,n){switch(n){case 1:return t.comments;case 2:return t.strings;default:return t.other}}}const Sk=class Sk{};Sk.inlineSuggestionVisible=new yn("inlineSuggestionVisible",!1,U(1192,"Whether an inline suggestion is visible")),Sk.inlineSuggestionHasIndentation=new yn("inlineSuggestionHasIndentation",!1,U(1193,"Whether the inline suggestion starts with whitespace")),Sk.inlineSuggestionHasIndentationLessThanTabSize=new yn("inlineSuggestionHasIndentationLessThanTabSize",!0,U(1194,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),Sk.suppressSuggestions=new yn("inlineSuggestionSuppressSuggestions",void 0,U(1195,"Whether suggestions should be suppressed for the current suggestion")),Sk.cursorBeforeGhostText=new yn("cursorBeforeGhostText",!1,U(1196,"Whether the cursor is at ghost text")),Sk.cursorInIndentation=new yn("cursorInIndentation",!1,U(1197,"Whether the cursor is in indentation")),Sk.hasSelection=new yn("editor.hasSelection",!1,U(1198,"Whether the editor has a selection")),Sk.cursorAtInlineEdit=new yn("cursorAtInlineEdit",!1,U(1199,"Whether the cursor is at an inline edit")),Sk.inlineEditVisible=new yn("inlineEditIsVisible",!1,U(1200,"Whether an inline edit is visible")),Sk.tabShouldJumpToInlineEdit=new yn("tabShouldJumpToInlineEdit",!1,U(1201,"Whether tab should jump to an inline edit.")),Sk.tabShouldAcceptInlineEdit=new yn("tabShouldAcceptInlineEdit",!1,U(1202,"Whether tab should accept the inline edit.")),Sk.inInlineEditsPreviewEditor=new yn("inInlineEditsPreviewEditor",!0,U(1203,"Whether the current code editor is showing an inline edits preview"));let Ns=Sk;class xwo{constructor(t,n,r){this._selection=t,this._cursors=n,this._selectionId=null,this._trimInRegexesAndStrings=r}getEditOperations(t,n){const r=Ewo(t,this._cursors,this._trimInRegexesAndStrings);for(let o=0,s=r.length;ol.lineNumber===d.lineNumber?l.column-d.column:l.lineNumber-d.lineNumber);for(let l=t.length-2;l>=0;l--)t[l].lineNumber===t[l+1].lineNumber&&t.splice(l,1);const r=[];let o=0,s=0;const a=t.length;for(let l=1,d=e.getLineCount();l<=d;l++){const u=e.getLineContent(l),h=u.length+1;let g=0;if(s1e5?`${r.substr(0,1e5)}…`:r;this._type.textContent=a,this._type.title=a,k0(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(a))}else uh(this._type),this._type.title="",tm(this._type),this.domNode.classList.add("no-type");if(uh(this._docs),typeof o=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=o;else if(o){this._docs.classList.add("markdown-docs"),uh(this._docs);const a=this._markdownRendererService.render(o,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(a.element),this._renderDisposeable.add(a)}this.domNode.classList.toggle("detail-and-doc",!!r&&!!o),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=a=>{a.preventDefault(),a.stopPropagation()},this._close.onclick=a=>{a.preventDefault(),a.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(t,n){const r=new cs(t,n);cs.equals(r,this._size)||(this._size=r,Nto(this.domNode,t,n)),this._scrollbar.scanDomNode()}scrollDown(t=8){this._body.scrollTop+=t}scrollUp(t=8){this._body.scrollTop-=t}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};pVe=Dyo([BCt(1,Dl),BCt(2,Cp)],pVe);class Byo{constructor(t,n){this.widget=t,this._editor=n,this.allowEditorOverflow=!0,this._disposables=new xt,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new Ytt,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let r,o,s=0,a=0;this._disposables.add(this._resizable.onDidWillResize(()=>{r=this._topLeft,o=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(l=>{if(r&&o){this.widget.layout(l.dimension.width,l.dimension.height);let d=!1;l.west&&(a=o.width-l.dimension.width,d=!0),l.north&&(s=o.height-l.dimension.height,d=!0),d&&this._applyTopLeft({top:r.top+s,left:r.left+a})}l.done&&(r=void 0,o=void 0,s=0,a=0,this._userSize=l.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(t=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),t&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(t,n){const r=t.getBoundingClientRect();this._anchorBox=r,this._preferAlignAtTop=n,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,n)}_placeAtAnchor(t,n,r){const o=O6(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),a=new cs(220,2*s.lineHeight),l=t.top,d=function(){const y=o.width-(t.left+t.width+s.borderWidth+s.horizontalPadding),C=-s.borderWidth+t.left+t.width,_=new cs(y,o.height-t.top-s.borderHeight-s.verticalPadding),S=_.with(void 0,t.top+t.height-s.borderHeight-s.verticalPadding);return{top:l,left:C,fit:y-n.width,maxSizeTop:_,maxSizeBottom:S,minSize:a.with(Math.min(y,a.width))}}(),u=function(){const y=t.left-s.borderWidth-s.horizontalPadding,C=Math.max(s.horizontalPadding,t.left-n.width-s.borderWidth),_=new cs(y,o.height-t.top-s.borderHeight-s.verticalPadding),S=_.with(void 0,t.top+t.height-s.borderHeight-s.verticalPadding);return{top:l,left:C,fit:y-n.width,maxSizeTop:_,maxSizeBottom:S,minSize:a.with(Math.min(y,a.width))}}(),h=function(){const y=t.left,C=-s.borderWidth+t.top+t.height,_=new cs(t.width-s.borderHeight,o.height-t.top-t.height-s.verticalPadding);return{top:C,left:y,fit:_.height-n.height,maxSizeBottom:_,maxSizeTop:_,minSize:a.with(_.width)}}(),g=[d,u,h],m=g.find(y=>y.fit>=0)??g.sort((y,C)=>C.fit-y.fit)[0],v=t.top+t.height-s.borderHeight;let f,k=n.height;const A=Math.max(m.maxSizeTop.height,m.maxSizeBottom.height);k>A&&(k=A);let p;r?k<=m.maxSizeTop.height?(f=!0,p=m.maxSizeTop):(f=!1,p=m.maxSizeBottom):k<=m.maxSizeBottom.height?(f=!1,p=m.maxSizeBottom):(f=!0,p=m.maxSizeTop);let{top:b,left:w}=m;!f&&k>t.height&&(b=v-k);const O=this._editor.getDomNode();if(O){const y=O.getBoundingClientRect();b-=y.top,w-=y.left}this._applyTopLeft({left:w,top:b}),this._resizable.enableSashes(!f,m===d,f,m!==d),this._resizable.minSize=m.minSize,this._resizable.maxSize=p,this._resizable.layout(k,Math.min(p.width,n.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(t){this._topLeft=t,this._editor.layoutOverlayWidget(this)}}const RCt=Cr("fileService");var XO;(function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"})(XO||(XO={}));const Ryo=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function sce(e,t,n,r,o){if(fi.isThemeIcon(o))return[`codicon-${o.id}`,"predefined-file-icon"];if(vi.isUri(o))return[];const s=r===XO.ROOT_FOLDER?["rootfolder-icon"]:r===XO.FOLDER?["folder-icon"]:["file-icon"];if(n){let a;if(n.scheme===Ci.data)a=_6.parseMetaData(n).get(_6.META_DATA_LABEL);else{const l=n.path.match(Ryo);l?(a=ace(l[2].toLowerCase()),l[1]&&s.push(`${ace(l[1].toLowerCase())}-name-dir-icon`)):a=ace(n.authority.toLowerCase())}if(r===XO.ROOT_FOLDER)s.push(`${a}-root-name-folder-icon`);else if(r===XO.FOLDER)s.push(`${a}-name-folder-icon`);else{if(a){if(s.push(`${a}-name-file-icon`),s.push("name-file-icon"),a.length<=255){const d=a.split(".");for(let u=1;u=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Qxe=function(e,t){return function(n,r){t(n,r,e)}};const Pyo=Da("suggest-more-info",zt.chevronRight,U(1492,"Icon for more information in the suggest widget."));var jb;const Fyo=new(jb=class{extract(t,n){if(t.textLabel.match(jb._regexStrict))return n[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(jb._regexStrict))return n[0]=t.completion.detail,!0;if(t.completion.documentation){const r=typeof t.completion.documentation=="string"?t.completion.documentation:t.completion.documentation.value,o=jb._regexRelaxed.exec(r);if(o&&(o.index===0||o.index+o[0].length===r.length))return n[0]=o[0],!0}return!1}},jb._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,jb._regexStrict=new RegExp(`^${jb._regexRelaxed.source}$`,"i"),jb);let bVe=class{constructor(t,n,r,o){this._editor=t,this._modelService=n,this._languageService=r,this._themeService=o,this._onDidToggleDetails=new at,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(t){const n=new xt,r=t;r.classList.add("show-file-icons");const o=Xt(t,tn(".icon")),s=Xt(o,tn("span.colorspan")),a=Xt(t,tn(".contents")),l=Xt(a,tn(".main")),d=Xt(l,tn(".icon-label.codicon")),u=Xt(l,tn("span.left")),h=Xt(l,tn("span.right")),g=new GJ(u,{supportHighlights:!0,supportIcons:!0});n.add(g);const m=Xt(u,tn("span.signature-label")),v=Xt(u,tn("span.qualifier-label")),f=Xt(h,tn("span.details-label")),k=Xt(h,tn("span.readMore"+fi.asCSSSelector(Pyo)));return k.title=U(1493,"Read More"),{root:r,left:u,right:h,icon:o,colorspan:s,iconLabel:g,iconContainer:d,parametersLabel:m,qualifierLabel:v,detailsLabel:f,readMore:k,disposables:n,configureFont:()=>{const p=this._editor.getOptions(),b=p.get(59),w=b.getMassagedFontFamily(),O=b.fontFeatureSettings,y=b.fontVariationSettings,C=p.get(135)||b.fontSize,_=p.get(136)||b.lineHeight,S=b.fontWeight,L=b.letterSpacing,E=`${C}px`,T=`${_}px`,D=`${L}px`;r.style.fontSize=E,r.style.fontWeight=S,r.style.letterSpacing=D,l.style.fontFamily=w,l.style.fontFeatureSettings=O,l.style.fontVariationSettings=y,l.style.lineHeight=T,o.style.height=T,o.style.width=T,k.style.height=T,k.style.width=T}}}renderElement(t,n,r){r.configureFont();const{completion:o}=t;r.colorspan.style.backgroundColor="";const s={labelEscapeNewLines:!0,matches:Uie(t.score)},a=[];if(o.kind===19&&Fyo.extract(t,a))r.icon.className="icon customcolor",r.iconContainer.className="icon hide",r.colorspan.style.backgroundColor=a[0];else if(o.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){r.icon.className="icon hide",r.iconContainer.className="icon hide";const l=sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:t.textLabel}),XO.FILE),d=sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:o.detail}),XO.FILE);s.extraClasses=l.length>d.length?l:d}else o.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(r.icon.className="icon hide",r.iconContainer.className="icon hide",s.extraClasses=[sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:t.textLabel}),XO.FOLDER),sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:o.detail}),XO.FOLDER)].flat()):(r.icon.className="icon hide",r.iconContainer.className="",r.iconContainer.classList.add("suggest-icon",...fi.asClassNameArray(dV.toIcon(o.kind))));o.tags&&o.tags.indexOf(1)>=0&&(s.extraClasses=(s.extraClasses||[]).concat(["deprecated"]),s.matches=[]),r.iconLabel.setLabel(t.textLabel,void 0,s),typeof o.label=="string"?(r.parametersLabel.textContent="",r.detailsLabel.textContent=Dxe(o.detail||""),r.root.classList.add("string-label")):(r.parametersLabel.textContent=Dxe(o.label.detail||""),r.detailsLabel.textContent=Dxe(o.label.description||""),r.root.classList.remove("string-label")),this._editor.getOption(134).showInlineDetails?k0(r.detailsLabel):tm(r.detailsLabel),Fnt(t)?(r.right.classList.add("can-expand-details"),k0(r.readMore),r.readMore.onmousedown=l=>{l.stopPropagation(),l.preventDefault()},r.readMore.onclick=l=>{l.stopPropagation(),l.preventDefault(),this._onDidToggleDetails.fire()}):(r.right.classList.remove("can-expand-details"),tm(r.readMore),r.readMore.onmousedown=null,r.readMore.onclick=null)}disposeTemplate(t){t.disposables.dispose()}};bVe=Myo([Qxe(1,ml),Qxe(2,nc),Qxe(3,Dl)],bVe);function Dxe(e){return e.replace(/\r\n|\r|\n/g,"")}var Nyo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},lce=function(e,t){return function(n,r){t(n,r,e)}},RF;Ve("editorSuggestWidget.background",Gk,U(1473,"Background color of the suggest widget."));Ve("editorSuggestWidget.border",pet,U(1474,"Border color of the suggest widget."));const Uyo=Ve("editorSuggestWidget.foreground",Ky,U(1475,"Foreground color of the suggest widget."));Ve("editorSuggestWidget.selectedForeground",sJ,U(1476,"Foreground color of the selected entry in the suggest widget."));Ve("editorSuggestWidget.selectedIconForeground",Qet,U(1477,"Icon foreground color of the selected entry in the suggest widget."));const jyo=Ve("editorSuggestWidget.selectedBackground",aJ,U(1478,"Background color of the selected entry in the suggest widget."));Ve("editorSuggestWidget.highlightForeground",gN,U(1479,"Color of the match highlights in the suggest widget."));Ve("editorSuggestWidget.focusHighlightForeground",Zso,U(1480,"Color of the match highlights in the suggest widget when an item is focused."));Ve("editorSuggestWidgetStatus.foreground",Zi(Uyo,.5),U(1481,"Foreground color of the suggest widget status."));class Wyo{constructor(t,n){this._service=t,this._key=`suggestWidget.size/${n.getEditorType()}/${n instanceof X8}`}restore(){const t=this._service.get(this._key,0)??"";try{const n=JSON.parse(t);if(cs.is(n))return cs.lift(n)}catch{}}store(t){this._service.store(this._key,JSON.stringify(t),0,1)}reset(){this._service.remove(this._key,0)}}var r6;let wVe=(r6=class{constructor(t,n,r,o,s){this.editor=t,this._storageService=n,this._state=0,this._isAuto=!1,this._pendingLayout=new ts,this._pendingShowDetails=new ts,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new I0,this._disposables=new xt,this._onDidSelect=new rR,this._onDidFocus=new rR,this._onDidHide=new at,this._onDidShow=new at,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new at,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new Ytt,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new Vyo(this,t),this._persistedSize=new Wyo(n,t);class a{constructor(v,f,k=!1,A=!1){this.persistedSize=v,this.currentSize=f,this.persistHeight=k,this.persistWidth=A}}let l;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),l=new a(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(m=>{var v,f;if(this._resize(m.dimension.width,m.dimension.height),l&&(l.persistHeight=l.persistHeight||!!m.north||!!m.south,l.persistWidth=l.persistWidth||!!m.east||!!m.west),!!m.done){if(l){const{itemHeight:k,defaultSize:A}=this.getLayoutInfo(),p=Math.round(k/2);let{width:b,height:w}=this.element.size;(!l.persistHeight||Math.abs(l.currentSize.height-w)<=p)&&(w=((v=l.persistedSize)==null?void 0:v.height)??A.height),(!l.persistWidth||Math.abs(l.currentSize.width-b)<=p)&&(b=((f=l.persistedSize)==null?void 0:f.width)??A.width),this._persistedSize.store(new cs(b,w))}this._contentWidget.unlockPreference(),l=void 0}})),this._messageElement=Xt(this.element.domNode,tn(".message")),this._listElement=Xt(this.element.domNode,tn(".tree"));const d=this._disposables.add(s.createInstance(pVe,this.editor));d.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new Byo(d,this.editor);const u=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);u();const h=s.createInstance(bVe,this.editor);this._disposables.add(h),this._disposables.add(h.onDidToggleDetails(()=>this.toggleDetails())),this._list=new _2("SuggestWidget",this._listElement,{getHeight:m=>this.getLayoutInfo().itemHeight,getTemplateId:m=>"suggestion"},[h],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>mh?"listitem":"option",getWidgetAriaLabel:()=>U(1484,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:m=>{let v=m.textLabel;const f=dV.toLabel(m.completion.kind);if(typeof m.completion.label!="string"){const{detail:b,description:w}=m.completion.label;b&&w?v=U(1485,"{0} {1}, {2}, {3}",v,b,w,f):b?v=U(1486,"{0} {1}, {2}",v,b,f):w&&(v=U(1487,"{0}, {1}, {2}",v,w,f))}else v=U(1488,"{0}, {1}",v,f);if(!m.isResolved||!this._isDetailsVisible())return v;const{documentation:k,detail:A}=m.completion,p=oR("{0}{1}",A||"",k?typeof k=="string"?k:k.value:"");return U(1489,"{0}, docs: {1}",v,p)}}}),this._list.style(TI({listInactiveFocusBackground:jyo,listInactiveFocusOutline:Va})),this._status=s.createInstance(AVe,this.element.domNode,j9);const g=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);g(),this._disposables.add(this._list.onMouseDown(m=>this._onListMouseDownOrTap(m))),this._disposables.add(this._list.onTap(m=>this._onListMouseDownOrTap(m))),this._disposables.add(this._list.onDidChangeSelection(m=>this._onListSelection(m))),this._disposables.add(this._list.onDidChangeFocus(m=>this._onListFocus(m))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(m=>{m.hasChanged(134)&&(g(),u()),this._completionModel&&(m.hasChanged(59)||m.hasChanged(135)||m.hasChanged(136))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=_r.Visible.bindTo(r),this._ctxSuggestWidgetDetailsVisible=_r.DetailsVisible.bindTo(r),this._ctxSuggestWidgetMultipleSuggestions=_r.MultipleSuggestions.bindTo(r),this._ctxSuggestWidgetHasFocusedSuggestion=_r.HasFocusedSuggestion.bindTo(r),this._disposables.add(wc(this._details.widget.domNode,"keydown",m=>{this._onDetailsKeydown.fire(m)})),this._disposables.add(this.editor.onMouseDown(m=>this._onEditorMouseDown(m)))}dispose(){var t;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(t=this._loadingTimeout)==null||t.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(t){this._details.widget.domNode.contains(t.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(t.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(t){typeof t.element>"u"||typeof t.index>"u"||(t.browserEvent.preventDefault(),t.browserEvent.stopPropagation(),this._select(t.element,t.index))}_onListSelection(t){t.elements.length&&this._select(t.elements[0],t.indexes[0])}_select(t,n){const r=this._completionModel;r&&(this._onDidSelect.fire({item:t,index:n,model:r}),this.editor.focus())}_onListFocus(t){var o;if(this._ignoreFocusEvents)return;if(this._state===5&&this._setState(3),!t.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const n=t.elements[0],r=t.indexes[0];n!==this._focusedItem&&((o=this._currentSuggestionDetails)==null||o.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=n,this._list.reveal(r),this._currentSuggestionDetails=Fd(async s=>{const a=B8(()=>{this._isDetailsVisible()&&this._showDetails(!0,!1)},250),l=s.onCancellationRequested(()=>a.dispose());try{return await n.resolve(s)}finally{a.dispose(),l.dispose()}}),this._currentSuggestionDetails.then(()=>{r>=this._list.length||n!==this._list.element(r)||(this._ignoreFocusEvents=!0,this._list.splice(r,1,[n]),this._list.setFocus([r]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this._showDetails(!1,!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:this._list.getElementID(r)}))}).catch(zi)),this._onDidFocus.fire({item:n,index:r,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",t===4),this.element.domNode.classList.remove("message"),t){case 0:tm(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=RF.LOADING_MESSAGE,tm(this._listElement,this._status.element),k0(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,A3(RF.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=RF.NO_SUGGESTIONS_MESSAGE,tm(this._listElement,this._status.element),k0(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,A3(RF.NO_SUGGESTIONS_MESSAGE);break;case 3:tm(this._messageElement),k0(this._listElement,this._status.element),this._show();break;case 4:tm(this._messageElement),k0(this._listElement,this._status.element),this._show();break;case 5:tm(this._messageElement),k0(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(t,n){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!t,this._isAuto||(this._loadingTimeout=B8(()=>this._setState(1),n)))}showSuggestions(t,n,r,o,s){var d,u;if(this._contentWidget.setPosition(this.editor.getPosition()),(d=this._loadingTimeout)==null||d.dispose(),(u=this._currentSuggestionDetails)==null||u.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==t&&(this._completionModel=t),r&&this._state!==2&&this._state!==0){this._setState(4);return}const a=this._completionModel.items.length,l=a===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(a>1),l){this._setState(o?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(r?4:3),this._list.reveal(n,0,n===0?0:this.getLayoutInfo().itemHeight*.33),this._list.setFocus(s?[]:[n])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Lme(ii(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._list.setFocus(this._list.getFocus()),this._setState(3)):this._state===3&&(this._setState(5),this._isDetailsVisible()?this._details.widget.focus():this.toggleDetails(!0))}toggleDetails(t=!1){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(Fnt(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this._showDetails(!1,t))}_showDetails(t,n){this._pendingShowDetails.value=Lme(ii(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let r=!1;t?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details"),n&&(this._details.widget.focus(),r=!0)),r||this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this._showDetails(!1,!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var r;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(r=this._loadingTimeout)==null||r.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),n=Math.ceil(this.getLayoutInfo().itemHeight*4.3);t&&t.heightd&&(s=d);const u=this._completionModel?this._completionModel.stats.pLabelLen*r.typicalHalfwidthCharacterWidth:s,h=r.statusBarHeight+this._list.contentHeight+r.borderHeight,g=r.itemHeight+r.statusBarHeight,m=Kl(this.editor.getDomNode()),v=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),f=m.top+v.top+v.height,k=Math.min(n.height-f-r.verticalPadding,h),A=m.top+v.top-r.verticalPadding,p=Math.min(A,h);let b=Math.min(Math.max(p,k)+r.borderHeight,h);o===((a=this._cappedHeight)==null?void 0:a.capped)&&(o=this._cappedHeight.wanted),ob&&(o=b),o>k&&p>k||this._forceRenderingAbove&&A>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),b=p):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),b=k),this.element.preferredSize=new cs(u,r.defaultSize.height),this.element.maxSize=new cs(d,b),this.element.minSize=new cs(220,g),this._cappedHeight=o===h?{wanted:((l=this._cappedHeight)==null?void 0:l.wanted)??t.height,capped:o}:void 0}this._resize(s,o)}_resize(t,n){const{width:r,height:o}=this.element.maxSize;t=Math.min(r,t),n=Math.min(o,n);const{statusBarHeight:s}=this.getLayoutInfo();this._list.layout(n-s,t),this._listElement.style.height=`${n-s}px`,this.element.layout(n,t),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var t;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((t=this._contentWidget.getPosition())==null?void 0:t.preference[0])===2)}getLayoutInfo(){const t=this.editor.getOption(59),n=Zg(this.editor.getOption(136)||t.lineHeight,8,1e3),r=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:n,o=this._details.widget.getLayoutInfo().borderWidth,s=2*o;return{itemHeight:n,statusBarHeight:r,borderWidth:o,borderHeight:s,typicalHalfwidthCharacterWidth:t.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new cs(430,r+12*n)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(t){this._storageService.store("expandSuggestionDocs",t,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}},RF=r6,r6.LOADING_MESSAGE=U(1482,"Loading..."),r6.NO_SUGGESTIONS_MESSAGE=U(1483,"No suggestions."),r6);wVe=RF=Nyo([lce(1,Bg),lce(2,Qi),lce(3,Dl),lce(4,Yn)],wVe);class Vyo{constructor(t,n){this._widget=t,this._editor=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:t,width:n}=this._widget.element.size,{borderWidth:r,horizontalPadding:o}=this._widget.getLayoutInfo();return new cs(n+2*r+o,t+2*r)}afterRender(t){this._widget._afterRender(t)}setPreference(t){this._preferenceLocked||(this._preference=t)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(t){this._position=t}}var zyo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},MP=function(e,t){return function(n,r){t(n,r,e)}},OVe;class Hyo{constructor(t,n){if(this._model=t,this._position=n,this._decorationOptions=Gi.register({description:"suggest-line-suffix",stickiness:1}),t.getLineMaxColumn(n.lineNumber)!==n.column){const o=t.getOffsetAt(n),s=t.getPositionAt(o+1);t.changeDecorations(a=>{this._marker&&a.removeDecoration(this._marker),this._marker=a.addDecoration(Ee.fromPositions(n,s),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(t=>{t.removeDecoration(this._marker),this._marker=void 0})}delta(t){if(this._model.isDisposed()||this._position.lineNumber!==t.lineNumber)return 0;if(this._marker){const n=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(n.getStartPosition())-this._model.getOffsetAt(t)}else return this._model.getLineMaxColumn(t.lineNumber)-t.column}}var lB;let Kb=(lB=class{static get(t){return t.getContribution(OVe.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(t,n,r,o,s,a,l){this._memoryService=n,this._commandService=r,this._contextKeyService=o,this._instantiationService=s,this._logService=a,this._telemetryService=l,this._lineSuffix=new ts,this._toDispose=new xt,this._selectors=new $yo(g=>g.priority),this._onWillInsertSuggestItem=new at,this._wantsForceRenderingAbove=!1,this.editor=t,this.model=s.createInstance(V0e,this.editor),this._selectors.register({priority:0,select:(g,m,v)=>this._memoryService.select(g,m,v)});const d=_r.InsertMode.bindTo(o);d.set(t.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>d.set(t.getOption(134).insertMode))),this.widget=this._toDispose.add(new K8e(ii(t.getDomNode()),()=>{const g=this._instantiationService.createInstance(wVe,this.editor);this._toDispose.add(g),this._toDispose.add(g.onDidSelect(A=>this._insertSuggestion(A,0),this));const m=new Lyo(this.editor,g,this.model,A=>this._insertSuggestion(A,2));this._toDispose.add(m);const v=_r.MakesTextEdit.bindTo(this._contextKeyService),f=_r.HasInsertAndReplaceRange.bindTo(this._contextKeyService),k=_r.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(Hn(()=>{v.reset(),f.reset(),k.reset()})),this._toDispose.add(g.onDidFocus(({item:A})=>{const p=this.editor.getPosition(),b=A.editStart.column,w=p.column;let O=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!A.completion.additionalTextEdits&&!(A.completion.insertTextRules&4)&&w-b===A.completion.insertText.length&&(O=this.editor.getModel().getValueInRange({startLineNumber:p.lineNumber,startColumn:b,endLineNumber:p.lineNumber,endColumn:w})!==A.completion.insertText),v.set(O),f.set(!it.equals(A.editInsertEnd,A.editReplaceEnd)),k.set(!!A.provider.resolveCompletionItem||!!A.completion.documentation||A.completion.detail!==A.completion.label)})),this._toDispose.add(g.onDetailsKeyDown(A=>{if(A.toKeyCodeChord().equals(new D8(!0,!1,!1,!1,33))||Tr&&A.toKeyCodeChord().equals(new D8(!1,!1,!1,!0,33))){A.stopPropagation();return}A.toKeyCodeChord().isModifierKey()||this.editor.focus()})),this._wantsForceRenderingAbove&&g.forceRenderingAbove(),g})),this._overtypingCapturer=this._toDispose.add(new K8e(ii(t.getDomNode()),()=>this._toDispose.add(new vVe(this.editor,this.model)))),this._alternatives=this._toDispose.add(new K8e(ii(t.getDomNode()),()=>this._toDispose.add(new _V(this.editor,this._contextKeyService)))),this._toDispose.add(s.createInstance(U0e,t)),this._toDispose.add(this.model.onDidTrigger(g=>{this.widget.value.showTriggered(g.auto,g.shy?250:50),this._lineSuffix.value=new Hyo(this.editor.getModel(),g.position)})),this._toDispose.add(this.model.onDidSuggest(g=>{if(g.triggerOptions.shy)return;let m=-1;for(const f of this._selectors.itemsOrderedByPriorityDesc)if(m=f.select(this.editor.getModel(),this.editor.getPosition(),g.completionModel.items),m!==-1)break;if(m===-1&&(m=0),this.model.state===0)return;let v=!1;if(g.triggerOptions.auto){const f=this.editor.getOption(134);f.selectionMode==="never"||f.selectionMode==="always"?v=f.selectionMode==="never":f.selectionMode==="whenTriggerCharacter"?v=g.triggerOptions.triggerKind!==1:f.selectionMode==="whenQuickSuggestion"&&(v=g.triggerOptions.triggerKind===1&&!g.triggerOptions.refilter)}this.widget.value.showSuggestions(g.completionModel,m,g.isFrozen,g.triggerOptions.auto,v)})),this._toDispose.add(this.model.onDidCancel(g=>{g.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const u=_r.AcceptSuggestionsOnEnter.bindTo(o),h=()=>{const g=this.editor.getOption(1);u.set(g==="on"||g==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>h())),h()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(t,n){var f;if(!t||!t.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const r=xg.get(this.editor);if(!r)return;this._onWillInsertSuggestItem.fire({item:t.item});const o=this.editor.getModel(),s=o.getAlternativeVersionId(),{item:a}=t,l=[],d=new ja;n&1||this.editor.pushUndoStop();const u=this.getOverwriteInfo(a,!!(n&8));this._memoryService.memorize(o,this.editor.getPosition(),a);const h=a.isResolved;let g=-1,m=-1;if(Array.isArray(a.completion.additionalTextEdits)){this.model.cancel();const k=O3.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",a.completion.additionalTextEdits.map(A=>{let p=Ee.lift(A.range);if(p.startLineNumber===a.position.lineNumber&&p.startColumn>a.position.column){const b=this.editor.getPosition().column-a.position.column,w=b,O=Ee.spansMultipleLines(p)?0:b;p=new Ee(p.startLineNumber,p.startColumn+w,p.endLineNumber,p.endColumn+O)}return $l.replaceMove(p,A.text)})),k.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!h){const k=new vu;let A;const p=o.onDidChangeContent(y=>{if(y.isFlush){d.cancel(),p.dispose();return}for(const C of y.changes){const _=Ee.getEndPosition(C.range);(!A||it.isBefore(_,A))&&(A=_)}}),b=n;n|=2;let w=!1;const O=this.editor.onWillType(()=>{O.dispose(),w=!0,b&2||this.editor.pushUndoStop()});l.push(a.resolve(d.token).then(()=>{if(!a.completion.additionalTextEdits||d.token.isCancellationRequested)return;if(A&&a.completion.additionalTextEdits.some(C=>it.isBefore(A,Ee.getStartPosition(C.range))))return!1;w&&this.editor.pushUndoStop();const y=O3.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",a.completion.additionalTextEdits.map(C=>$l.replaceMove(Ee.lift(C.range),C.text))),y.restoreRelativeVerticalPositionOfCursor(this.editor),(w||!(b&2))&&this.editor.pushUndoStop(),!0}).then(y=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",k.elapsed(),y),m=y===!0?1:y===!1?0:-2}).finally(()=>{p.dispose(),O.dispose()}))}let{insertText:v}=a.completion;if(a.completion.insertTextRules&4||(v=wR.escape(v)),this.model.cancel(),r.insert(v,{overwriteBefore:u.overwriteBefore,overwriteAfter:u.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(a.completion.insertTextRules&1),clipboardText:t.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:Af.suggest({providerId:r3e.fromExtensionId((f=a.extensionId)==null?void 0:f.value)})}),n&2||this.editor.pushUndoStop(),a.completion.command)if(a.completion.command.id===z0e.id)this.model.trigger({auto:!0,retrigger:!0});else{const k=new vu;l.push(this._commandService.executeCommand(a.completion.command.id,...a.completion.command.arguments?[...a.completion.command.arguments]:[]).catch(A=>{a.completion.extensionId?Nc(A):zi(A)}).finally(()=>{g=k.elapsed()}))}n&4&&this._alternatives.value.set(t,k=>{for(d.cancel();o.canUndo();){s!==o.getAlternativeVersionId()&&o.undo(),this._insertSuggestion(k,3|(n&8?8:0));break}}),this._alertCompletionItem(a),Promise.all(l).finally(()=>{this._reportSuggestionAcceptedTelemetry(a,o,h,g,m,t.index,t.model.items),this.model.clear(),d.dispose()})}_reportSuggestionAcceptedTelemetry(t,n,r,o,s,a,l){var m;if(Math.random()>1e-4)return;const d=new Map;for(let v=0;v1?u[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:((m=t.extensionId)==null?void 0:m.value)??"unknown",providerId:t.provider._debugDisplayName??"unknown",kind:t.completion.kind,basenameHash:Lie(hA(n.uri)).toString(16),languageId:n.getLanguageId(),fileExtension:Bno(n.uri),resolveInfo:t.provider.resolveCompletionItem?r?1:0:-1,resolveDuration:t.resolveDuration,commandDuration:o,additionalEditsAsync:s,index:a,firstIndex:g})}getOverwriteInfo(t,n){Oo(this.editor.hasModel());let r=this.editor.getOption(134).insertMode==="replace";n&&(r=!r);const o=t.position.column-t.editStart.column,s=(r?t.editReplaceEnd.column:t.editInsertEnd.column)-t.position.column,a=this.editor.getPosition().column-t.position.column,l=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:o+a,overwriteAfter:s+l}}_alertCompletionItem(t){if(yg(t.completion.additionalTextEdits)){const n=U(1463,"Accepting '{0}' made {1} additional edits",t.textLabel,t.completion.additionalTextEdits.length);um(n)}}triggerSuggest(t,n,r){this.editor.hasModel()&&(this.model.trigger({auto:n??!1,completionOptions:{providerFilter:t,kindFilter:r?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(t){if(!this.editor.hasModel())return;const n=this.editor.getPosition(),r=()=>{n.equals(this.editor.getPosition())&&this._commandService.executeCommand(t.fallback)},o=s=>{if(s.completion.insertTextRules&4||s.completion.additionalTextEdits)return!0;const a=this.editor.getPosition(),l=s.editStart.column,d=a.column;return d-l!==s.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:a.lineNumber,startColumn:l,endLineNumber:a.lineNumber,endColumn:d})!==s.completion.insertText};an.once(this.model.onDidTrigger)(s=>{const a=[];an.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{us(a),r()},void 0,a),this.model.onDidSuggest(({completionModel:l})=>{if(us(a),l.items.length===0){r();return}const d=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),l.items),u=l.items[d];if(!o(u)){r();return}this.editor.pushUndoStop(),this._insertSuggestion({index:d,item:u,model:l},7)},void 0,a)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(n,0),this.editor.focus()}acceptSelectedSuggestion(t,n){const r=this.widget.value.getFocusedItem();let o=0;t&&(o|=4),n&&(o|=8),this._insertSuggestion(r,o)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.isInitialized?this.widget.value.forceRenderingAbove():this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){this.widget.isInitialized?this.widget.value.stopForceRenderingAbove():this._wantsForceRenderingAbove=!1}registerSelector(t){return this._selectors.register(t)}},OVe=lB,lB.ID="editor.contrib.suggestController",lB);Kb=OVe=zyo([MP(1,N3e),MP(2,ba),MP(3,Qi),MP(4,Yn),MP(5,va),MP(6,Nf)],Kb);class $yo{constructor(t){this.prioritySelector=t,this._items=new Array}register(t){if(this._items.indexOf(t)!==-1)throw new Error("Value is already registered");return this._items.push(t),this._items.sort((n,r)=>this.prioritySelector(r)-this.prioritySelector(n)),{dispose:()=>{const n=this._items.indexOf(t);n>=0&&this._items.splice(n,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}const fAe=class fAe extends Bn{constructor(){super({id:fAe.id,label:_t(1471,"Trigger Suggest"),precondition:Ft.and($e.writable,$e.hasCompletionItemProvider,_r.Visible.toNegated()),kbOpts:{kbExpr:$e.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(t,n,r){const o=Kb.get(n);if(!o)return;let s;r&&typeof r=="object"&&r.auto===!0&&(s=!0),o.triggerSuggest(void 0,s,void 0)}};fAe.id="editor.action.triggerSuggest";let z0e=fAe;mo(Kb.ID,Kb,2);un(z0e);const m2=190,bm=$d.bindToContribution(Kb.get);On(new bm({id:"acceptSelectedSuggestion",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:Ft.and(_r.Visible,$e.textInputFocus),weight:m2},{primary:3,kbExpr:Ft.and(_r.Visible,$e.textInputFocus,_r.AcceptSuggestionsOnEnter,_r.MakesTextEdit),weight:m2}],menuOpts:[{menuId:j9,title:U(1464,"Insert"),group:"left",order:1,when:_r.HasInsertAndReplaceRange.toNegated()},{menuId:j9,title:U(1465,"Insert"),group:"left",order:1,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("insert"))},{menuId:j9,title:U(1466,"Replace"),group:"left",order:1,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("replace"))}]}));On(new bm({id:"acceptAlternativeSelectedSuggestion",precondition:Ft.and(_r.Visible,$e.textInputFocus,_r.HasFocusedSuggestion),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:j9,group:"left",order:2,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("insert")),title:U(1467,"Replace")},{menuId:j9,group:"left",order:2,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("replace")),title:U(1468,"Insert")}]}));co.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");On(new bm({id:"hideSuggestWidget",precondition:_r.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:9,secondary:[1033]}}));On(new bm({id:"selectNextSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}}));On(new bm({id:"selectNextPageSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:12,secondary:[2060]}}));On(new bm({id:"selectLastSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectLastSuggestion()}));On(new bm({id:"selectPrevSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));On(new bm({id:"selectPrevPageSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:11,secondary:[2059]}}));On(new bm({id:"selectFirstSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectFirstSuggestion()}));On(new bm({id:"focusSuggestion",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion.negate()),handler:e=>e.focusSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));On(new bm({id:"focusAndAcceptSuggestion",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion.negate()),handler:e=>{e.focusSuggestion(),e.acceptSelectedSuggestion(!0,!1)}}));On(new bm({id:"toggleSuggestionDetails",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion),handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:j9,group:"right",order:1,when:Ft.and(_r.DetailsVisible,_r.CanResolve),title:U(1469,"Show Less")},{menuId:j9,group:"right",order:1,when:Ft.and(_r.DetailsVisible.toNegated(),_r.CanResolve),title:U(1470,"Show More")}]}));On(new bm({id:"toggleExplainMode",precondition:_r.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));On(new bm({id:"toggleSuggestionFocus",precondition:_r.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2570,mac:{primary:778}}}));On(new bm({id:"insertBestCompletion",precondition:Ft.and($e.textInputFocus,Ft.equals("config.editor.tabCompletion","on"),U0e.AtEnd,_r.Visible.toNegated(),_V.OtherSuggestions.toNegated(),xg.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest(Pd(t)?{fallback:"tab",...t}:{fallback:"tab"})},kbOpts:{weight:m2,primary:2}}));On(new bm({id:"insertNextSuggestion",precondition:Ft.and($e.textInputFocus,Ft.equals("config.editor.tabCompletion","on"),_V.OtherSuggestions,_r.Visible.toNegated(),xg.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2}}));On(new bm({id:"insertPrevSuggestion",precondition:Ft.and($e.textInputFocus,Ft.equals("config.editor.tabCompletion","on"),_V.OtherSuggestions,_r.Visible.toNegated(),xg.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:1026}}));un(class extends Bn{constructor(){super({id:"editor.action.resetSuggestSize",label:_t(1472,"Reset Suggest Widget Size"),precondition:void 0})}run(e,t){var n;(n=Kb.get(t))==null||n.resetWidgetSize()}});class Xyo extends ft{get selectedItem(){return this._currentSuggestItemInfo}constructor(t,n,r){super(),this.editor=t,this.suggestControllerPreselector=n,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new at),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(t.onKeyDown(s=>{s.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(t.onKeyUp(s=>{s.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const o=Kb.get(this.editor);if(o){this._register(o.registerSelector({priority:100,select:(l,d,u)=>{const h=this.editor.getModel();if(!h)return-1;const g=this.suggestControllerPreselector(),m=g?IS(g,h):void 0;if(!m)return-1;const v=it.lift(d),f=u.map((A,p)=>{const b=FZ.fromSuggestion(o,h,v,A,this.isShiftKeyPressed),w=IS(b.getSingleTextEdit(),h),O=nIn(m,w);return{index:p,valid:O,prefixLength:w.text.length,suggestItem:A}}).filter(A=>A&&A.valid&&A.prefixLength>0),k=Met(f,qh(A=>A.prefixLength,T0));return k?k.index:-1}}));let s=!1;const a=()=>{s||(s=!0,this._register(o.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(o.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(o.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(an.once(o.model.onDidTrigger)(l=>{a()})),this._register(o.onWillInsertSuggestItem(l=>{const d=this.editor.getPosition(),u=this.editor.getModel();if(!d||!u)return;const h=FZ.fromSuggestion(o,u,d,l.item,this.isShiftKeyPressed);this.onWillAccept(h)}))}this.update(this._isActive)}update(t){const n=this.getSuggestItemInfo();(this._isActive!==t||!Gyo(this._currentSuggestItemInfo,n))&&(this._isActive=t,this._currentSuggestItemInfo=n,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const t=Kb.get(this.editor);if(!t||!this.isSuggestWidgetVisible)return;const n=t.widget.value.getFocusedItem(),r=this.editor.getPosition(),o=this.editor.getModel();if(!(!n||!r||!o))return FZ.fromSuggestion(t,o,r,n.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const t=Kb.get(this.editor);t==null||t.stopForceRenderingAbove()}forceRenderingAbove(){const t=Kb.get(this.editor);t==null||t.forceRenderingAbove()}}class FZ{static fromSuggestion(t,n,r,o,s){let{insertText:a}=o.completion,l=!1;if(o.completion.insertTextRules&4){const u=new wR().parse(a);u.children.length<100&&R0e.adjustWhitespace(n,r,!0,u),a=u.toString(),l=!0}const d=t.getOverwriteInfo(o,s);return new FZ(Ee.fromPositions(r.delta(0,-d.overwriteBefore),r.delta(0,Math.max(d.overwriteAfter,0))),a,o.completion.kind,l,o.container.incomplete??!1)}constructor(t,n,r,o,s){this.range=t,this.insertText=n,this.completionItemKind=r,this.isSnippetText=o,this.listIncomplete=s}equals(t){return this.range.equalsRange(t.range)&&this.insertText===t.insertText&&this.completionItemKind===t.completionItemKind&&this.isSnippetText===t.isSnippetText}toSelectedSuggestionInfo(){return new ATn(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new Mc(this.range,this.insertText)}}function Gyo(e,t){return e===t?!0:!e||!t?!1:e.equals(t)}class Yyo extends ft{constructor(t,n,r){super(),this._editorObs=t,this._handleSuggestAccepted=n,this._suggestControllerPreselector=r,this._suggestWidgetAdaptor=this._register(new Xyo(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),o=>this._editorObs.forceUpdate(s=>{this._handleSuggestAccepted(o)}))),this.selectedItem=Ko(this,o=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(s=>o(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class Zyo{constructor(t,n){this.lineNumber=t,this.columnRange=n}}class ICt{constructor(t,n){if(this.startColumn=t,this.endColumnExclusive=n,t>n)throw new ui(`startColumn ${t} cannot be after endColumnExclusive ${n}`)}toRange(t){return new Ee(t,this.startColumn,t,this.endColumnExclusive)}equals(t){return this.startColumn===t.startColumn&&this.endColumnExclusive===t.endColumnExclusive}toZeroBasedOffsetRange(){return new Xn(this.startColumn-1,this.endColumnExclusive-1)}}class bQ{static fromLineTokens(t){const n=[];for(let r=0;r({text:r.text,metadata:r.metadata})),t)}map(t){const n=[];let r=0;for(const o of this._tokenInfo){const s=new Xn(r,r+o.text.length);n.push(t(s,o)),r+=o.text.length}return n}slice(t){const n=[];let r=0;for(const o of this._tokenInfo){const s=r,a=s+o.text.length;if(a>t.start){if(s>=t.endExclusive)break;const l=Math.max(0,t.start-s),d=Math.max(0,a-t.endExclusive);n.push(new MCt(o.text.slice(l,o.text.length-d),o.metadata))}r+=o.text.length}return bQ.create(n)}append(t){const n=this._tokenInfo.concat(t._tokenInfo);return bQ.create(n)}}class MCt{constructor(t,n){this.text=t,this.metadata=n}}var qyo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Kyo=function(e,t){return function(n,r){t(n,r,e)}};const uIn="ghost-text";var cB;let ree=(cB=class extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._model=n,this._options=r,this._shouldKeepCursorStable=o,this._isClickable=s,this._languageService=a,this._isDisposed=Ti(this,!1),this._editorObs=hl(this._editor),this._warningState=Rt(l=>{const d=this._model.ghostText.read(l);if(!d)return;const u=this._model.warning.read(l);if(u)return{lineNumber:d.lineNumber,position:new it(d.lineNumber,d.parts[0].column),icon:u.icon}}),this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._useSyntaxHighlighting=this._options.map(l=>l.syntaxHighlightingEnabled),this._extraClassNames=Rt(this,l=>{const d=[...this._options.read(l).extraClasses??[]];return this._useSyntaxHighlighting.read(l)&&d.push("syntax-highlighted"),this._warningState.read(l)&&d.push("warning"),d.map(h=>` ${h}`).join("")}),this.uiState=Rt(this,l=>{var T,D;if(this._isDisposed.read(l))return;const d=this._editorObs.model.read(l);if(d!==this._model.targetTextModel.read(l))return;const u=this._model.ghostText.read(l);if(!u)return;const h=u instanceof eVe?u.columnRange:void 0,g=this._useSyntaxHighlighting.read(l),m=this._extraClassNames.read(l),{inlineTexts:v,additionalLines:f,hiddenRange:k,additionalLinesOriginalSuffix:A}=Jyo(u,d,uIn+m),p=d.getLineContent(u.lineNumber),b=new W8(v.map(P=>ch.insert(P.column-1,P.text))),w=g?d.tokenization.tokenizeLinesAt(u.lineNumber,[b.apply(p),...f.map(P=>P.content)]):void 0,O=b.getNewRanges(),y=v.map((P,Q)=>{var M;return{...P,tokens:(M=w==null?void 0:w[0])==null?void 0:M.getTokensInRange(O[Q])}}),C=f.map((P,Q)=>{let M=(w==null?void 0:w[Q+1])??uc.createEmpty(P.content,this._languageService.languageIdCodec);if(Q===f.length-1&&A){const R=bQ.fromLineTokens(d.tokenization.getLineTokens(A.lineNumber)).slice(A.columnRange.toZeroBasedOffsetRange());M=bQ.fromLineTokens(M).append(R).toLineTokens(M.languageIdCodec)}return{content:M,decorations:P.decorations}}),_=(T=this._editor.getSelection())==null?void 0:T.getStartPosition().column,S=y.filter(P=>P.text!==""),L=S.length!==0,E={cursorColumnDistance:(L?S[0].column:1)-_,cursorLineDistance:L?0:f.findIndex(P=>P.content!=="")+1,lineCountOriginal:L?1:0,lineCountModified:f.length+(L?1:0),characterCountOriginal:0,characterCountModified:Sme(S.map(P=>P.text.length))+Sme(C.map(P=>P.content.getTextLength())),disjointReplacements:S.length+(f.length>0?1:0),sameShapeReplacements:S.length>1&&C.length===0?S.every(P=>P.text===S[0].text):void 0};return(D=this._model.handleInlineCompletionShown.read(l))==null||D(E),{replacedRange:h,inlineTexts:y,additionalLines:C,hiddenRange:k,lineNumber:u.lineNumber,additionalReservedLineCount:this._model.minReservedLineCount.read(l),targetTextModel:d,syntaxHighlightingEnabled:g}}),this.decorations=Rt(this,l=>{const d=this.uiState.read(l);if(!d)return[];const u=[],h=this._extraClassNames.read(l);d.replacedRange&&u.push({range:d.replacedRange.toRange(d.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+h,description:"GhostTextReplacement"}}),d.hiddenRange&&u.push({range:d.hiddenRange.toRange(d.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const g of d.inlineTexts)u.push({range:Ee.fromPositions(new it(d.lineNumber,g.column)),options:{description:"ghost-text-decoration",after:{content:g.text,tokens:g.tokens,inlineClassName:(g.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+h+g.lineDecorations.map(m=>" "+m.className).join(" "),cursorStops:Bv.Left,attachedData:new Bxe(this)},showIfCollapsed:!0}});return u}),this._additionalLinesWidget=this._register(new eCo(this._editor,Rt(l=>{const d=this.uiState.read(l);return d?{lineNumber:d.lineNumber,additionalLines:d.additionalLines,minReservedLineCount:d.additionalReservedLineCount,targetTextModel:d.targetTextModel}:void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered(l=>{var d;return l.target.type===6&&((d=l.target.detail.injectedText)==null?void 0:d.options.attachedData)instanceof Bxe&&l.target.detail.injectedText.options.attachedData.owner===this},this._store),this.isHovered=Rt(this,l=>this._isDisposed.read(l)?!1:this._isInlineTextHovered.read(l)||this._additionalLinesWidget.isHovered.read(l)),this.height=Rt(this,l=>this._editorObs.getOption(75).read(l)+(this._additionalLinesWidget.viewZoneHeight.read(l)??0)),this._register(Hn(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this.decorations)),this._isClickable&&(this._register(this._additionalLinesWidget.onDidClick(l=>this._onDidClick.fire(l))),this._register(this._editor.onMouseUp(l=>{var u;if(l.target.type!==6)return;const d=(u=l.target.detail.injectedText)==null?void 0:u.options.attachedData;d instanceof Bxe&&d.owner===this&&this._onDidClick.fire(l.event)}))),this._register(Ef((l,d)=>{}))}static getWarningWidgetContext(t){const n=t.ghostTextViewWarningWidgetData;if(n)return n;if(t.parentElement)return this.getWarningWidgetContext(t.parentElement)}ownsViewZone(t){return this._additionalLinesWidget.viewZoneId===t}},cB.hot=l3e(cB),cB);ree=qyo([Kyo(5,nc)],ree);class Bxe{constructor(t){this.owner=t}}function Jyo(e,t,n){const r=[],o=[];function s(g,m){if(o.length>0){const v=o[o.length-1];m&&v.decorations.push(new wg(v.content.length+1,v.content.length+1+g[0].line.length,m,0)),v.content+=g[0].line,g=g.slice(1)}for(const v of g)o.push({content:v.line,decorations:m?[new wg(1,v.line.length+1,m,0),...v.lineDecorations]:[...v.lineDecorations]})}const a=t.getLineContent(e.lineNumber);let l,d=0;for(const g of e.parts){let m=g.lines;l===void 0?(r.push({column:g.column,text:m[0].line,preview:g.preview,lineDecorations:m[0].lineDecorations}),m=m.slice(1)):s([{line:a.substring(d,g.column-1),lineDecorations:[]}],void 0),m.length>0&&(s(m,n),l===void 0&&g.column<=a.length&&(l=g.column)),d=g.column-1}let u;l!==void 0&&(u=new Zyo(e.lineNumber,new ICt(d+1,a.length+1)));const h=l!==void 0?new ICt(l,a.length+1):void 0;return{inlineTexts:r,additionalLines:o,hiddenRange:h,additionalLinesOriginalSuffix:u}}class eCo extends ft{get viewZoneId(){var t;return(t=this._viewZoneInfo)==null?void 0:t.viewZoneId}get viewZoneHeight(){return this._viewZoneHeight}constructor(t,n,r,o){super(),this._editor=t,this._lines=n,this._shouldKeepCursorStable=r,this._isClickable=o,this._viewZoneHeight=Ti("viewZoneHeight",void 0),this.editorOptionsChanged=A0("editorOptionChanged",an.filter(this._editor.onDidChangeConfiguration,s=>s.hasChanged(40)||s.hasChanged(133)||s.hasChanged(113)||s.hasChanged(108)||s.hasChanged(60)||s.hasChanged(59)||s.hasChanged(75))),this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new ts),this.isHovered=hl(this._editor).isTargetHovered(s=>PCt(s.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof gR&&this._shouldKeepCursorStable&&this._register(this._editor.onBeforeExecuteEdit(s=>this.hasBeenAccepted=s.source==="inlineSuggestion.accept")),this._register(Oi(s=>{const a=this._lines.read(s);this.editorOptionsChanged.read(s),a?(this.hasBeenAccepted=!1,this.updateLines(a.lineNumber,a.additionalLines,a.minReservedLineCount)):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones(t=>{this.removeActiveViewZone(t)})}updateLines(t,n,r){const o=this._editor.getModel();if(!o)return;const{tabSize:s}=o.getOptions();this._editor.changeViewZones(a=>{const l=new xt;this.removeActiveViewZone(a);const d=Math.max(n.length,r);if(d>0){const u=document.createElement("div");tCo(u,s,n,this._editor.getOptions(),this._isClickable),this._isClickable&&(l.add(wt(u,"mousedown",h=>{h.preventDefault()})),l.add(wt(u,"click",h=>{PCt(h.target)&&this._onDidClick.fire(new Xh(ii(h),h))}))),this.addViewZone(a,t,d,u)}this._viewZoneListener.value=l})}addViewZone(t,n,r,o){const s=t.addZone({afterLineNumber:n,heightInLines:r,domNode:o,afterColumnAffinity:1,onComputedHeight:a=>{this._viewZoneHeight.set(a,void 0)}});this.keepCursorStable(n,r),this._viewZoneInfo={viewZoneId:s,heightInLines:r,lineNumber:n}}removeActiveViewZone(t){this._viewZoneInfo&&(t.removeZone(this._viewZoneInfo.viewZoneId),this.hasBeenAccepted||this.keepCursorStable(this._viewZoneInfo.lineNumber,-this._viewZoneInfo.heightInLines),this._viewZoneInfo=void 0,this._viewZoneHeight.set(void 0,void 0))}keepCursorStable(t,n){var o,s;if(!this._shouldKeepCursorStable)return;const r=(s=(o=this._editor.getSelection())==null?void 0:o.getStartPosition())==null?void 0:s.lineNumber;r!==void 0&&t`);for(let A=0,p=n.length;A');const O=w.getLineContent(),y=Sie(O),C=ZW(O);tH(new AL(h.isMonospace&&!s,h.canUseHalfwidthRightwardsArrow,O,!1,y,C,0,w,b.decorations,t,0,h.spaceWidth,h.middotWidth,h.wsmiddotWidth,a,l,d,u!==F8.OFF,null,null,0),v),v.appendString("")}v.appendString(""),Fu(e,h);const f=v.build(),k=FCt?FCt.createHTML(f):f;e.innerHTML=k}const FCt=Jy("editorGhostText",{createHTML:e=>e}),gAe=class gAe{constructor(t){this.replacements=t,PK(wie(t,(n,r)=>n.lineRange.endLineNumberExclusive<=r.lineRange.startLineNumber))}toString(){return this.replacements.map(t=>t.toString()).join(",")}getNewLineRanges(){const t=[];let n=0;for(const r of this.replacements)t.push(Ei.ofLength(r.lineRange.startLineNumber+n,r.newLines.length)),n+=r.newLines.length-r.lineRange.length;return t}};gAe.empty=new gAe([]);let yVe=gAe;class H0e{static fromSingleTextEdit(t,n){const r=P0(t.text);let o=t.range.startLineNumber;const s=n.getValueOfRange(Ee.fromPositions(new it(t.range.startLineNumber,1),t.range.getStartPosition()));r[0]=s+r[0];let a=t.range.endLineNumber+1;const l=n.getTransformer().getLineLength(t.range.endLineNumber)+1,d=n.getValueOfRange(Ee.fromPositions(t.range.getEndPosition(),new it(t.range.endLineNumber,l)));r[r.length-1]=r[r.length-1]+d;const u=t.range.startColumn===n.getTransformer().getLineLength(t.range.startLineNumber)+1,h=t.range.endColumn===1;return u&&r[0].length===s.length&&(o++,r.shift()),r.length>0&&o${JSON.stringify(this.newLines)}`}toLineEdit(){return new yVe([this])}}class hIn{get lineEdit(){return this.edit.replacements.length===0?new H0e(new Ei(1,1),[]):H0e.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText)}get originalLineRange(){return this.lineEdit.lineRange}get modifiedLineRange(){return this.lineEdit.toLineEdit().getNewLineRanges()[0]}get displayRange(){return this.originalText.lineRange.intersect(this.originalLineRange.join(Ei.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(t,n,r,o,s,a){this.originalText=t,this.edit=n,this.cursorPosition=r,this.multiCursorPositions=o,this.commands=s,this.inlineCompletion=a}}class fIn{constructor(t,n,r){this._model=t,this.inlineEdit=n,this.tabAction=r,this.action=this.inlineEdit.inlineCompletion.action,this.displayName=this.inlineEdit.inlineCompletion.source.provider.displayName??U(1219,"Inline Edit"),this.extensionCommands=this.inlineEdit.inlineCompletion.source.inlineSuggestions.commands??[],this.isInDiffEditor=this._model.isInDiffEditor,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.showCollapsed=this._model.showCollapsed}accept(){this._model.accept()}jump(){this._model.jump()}handleInlineEditShown(t,n){this._model.handleInlineSuggestionShown(this.inlineEdit.inlineCompletion,t,n)}}class nCo{constructor(t){this._model=t,this.onDidAccept=this._model.onDidAccept,this.inAcceptFlow=this._model.inAcceptFlow}}class iCo{constructor(t,n,r,o){this.lineRange=r;const s=hl(t),a=Rt(this,l=>s.isFocused.read(l)&&o.showInlineEditMenu?wf.Accept:wf.Inactive);this.model=new fIn(n,new hIn(new g9(""),new V4([o.getSingleTextEdit()]),n.primaryPosition.get(),n.allPositions.get(),o.source.inlineSuggestions.commands??[],o),a)}}class Vs{static fromPoints(t,n){return new Vs(t.x,t.y,n.x,n.y)}static fromPointSize(t,n){return new Vs(t.x,t.y,t.x+n.x,t.y+n.y)}static fromLeftTopRightBottom(t,n,r,o){return new Vs(t,n,r,o)}static fromLeftTopWidthHeight(t,n,r,o){return new Vs(t,n,t+r,n+o)}static fromRanges(t,n){return new Vs(t.start,n.start,t.endExclusive,n.endExclusive)}static hull(t){let n=Number.MAX_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER;for(const a of t)n=Math.min(n,a.left),r=Math.min(r,a.top),o=Math.max(o,a.right),s=Math.max(s,a.bottom);return new Vs(n,r,o,s)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(t,n,r,o){if(this.left=t,this.top=n,this.right=r,this.bottom=o,t>r)throw new ui("Invalid arguments: Horizontally offset by "+(t-r));if(n>o)throw new ui("Invalid arguments: Vertically offset by "+(n-o))}withMargin(t,n,r,o){let s,a,l,d;return n===void 0&&r===void 0&&o===void 0?s=a=l=d=t:r===void 0&&o===void 0?(s=a=n,l=d=t):(s=o,a=n,l=t,d=r),new Vs(this.left-s,this.top-l,this.right+a,this.bottom+d)}intersectVertical(t){const n=Math.max(this.top,t.start),r=Math.min(this.bottom,t.endExclusive);return new Vs(this.left,n,this.right,Math.max(n,r))}intersectHorizontal(t){const n=Math.max(this.left,t.start),r=Math.min(this.right,t.endExclusive);return new Vs(n,this.top,Math.max(n,r),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(t){const n=Math.max(this.left,t.left),r=Math.min(this.right,t.right),o=Math.max(this.top,t.top),s=Math.min(this.bottom,t.bottom);if(!(n>r||o>s))return new Vs(n,o,r,s)}containsRect(t){return this.left<=t.left&&this.top<=t.top&&this.right>=t.right&&this.bottom>=t.bottom}containsPoint(t){return this.left<=t.x&&this.top<=t.y&&this.right>=t.x&&this.bottom>=t.y}moveToBeContainedIn(t){const n=this.width,r=this.height;let o=this.left,s=this.top;return ot.right&&(o=t.right-n),st.bottom&&(s=t.bottom-r),new Vs(o,s,o+n,s+r)}withWidth(t){return new Vs(this.left,this.top,this.left+t,this.bottom)}withHeight(t){return new Vs(this.left,this.top,this.right,this.top+t)}withTop(t){return new Vs(this.left,t,this.right,this.bottom)}withLeft(t){return new Vs(t,this.top,this.right,this.bottom)}translateX(t){return new Vs(this.left+t,this.top,this.right+t,this.bottom)}translateY(t){return new Vs(this.left,this.top+t,this.right,this.bottom+t)}getLeftBottom(){return new cu(this.left,this.bottom)}getRightBottom(){return new cu(this.right,this.bottom)}getRightTop(){return new cu(this.right,this.top)}toStyles(){return{position:"absolute",left:`${this.left}px`,top:`${this.top}px`,width:`${this.width}px`,height:`${this.height}px`}}}class NZ{constructor(t,n,r,o=null){this.startLineNumbers=t,this.endLineNumbers=n,this.lastLineRelativePosition=r,this.showEndForLine=o}equals(t){return!!t&&this.lastLineRelativePosition===t.lastLineRelativePosition&&this.showEndForLine===t.showEndForLine&&Na(this.startLineNumbers,t.startLineNumbers)&&Na(this.endLineNumbers,t.endLineNumbers)}static get Empty(){return new NZ([],[],0)}}const NCt=Jy("stickyScrollViewLayer",{createHTML:e=>e}),Rxe="data-sticky-line-index",UCt="data-sticky-is-line",rCo="data-sticky-is-line-number",jCt="data-sticky-is-folding-icon";class oCo extends ft{get height(){return this._height}constructor(t){super(),this._foldingIconStore=this._register(new xt),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new at),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=t,this._lineHeight=t.getOption(75),this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",t instanceof X8),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);const n=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(131)&&n(),r.hasChanged(75)&&(this._lineHeight=this._editor.getOption(75))})),this._register(this._editor.onDidScrollChange(r=>{r.scrollLeftChanged&&n(),r.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{n(),this._updateWidgetWidth()})),n(),this._register(this._editor.onDidLayoutChange(r=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(t){return this._renderedStickyLines.find(n=>n.lineNumber===t)}getCurrentLines(){return this._lineNumbers}setState(t,n,r){const o=!this._state&&!t,s=this._state&&this._state.equals(t);if(r===void 0&&(o||s))return;const a=this._findRenderingData(t),l=this._lineNumbers;this._lineNumbers=a.lineNumbers,this._lastLineRelativePosition=a.lastLineRelativePosition;const d=this._findIndexToRebuildFrom(l,this._lineNumbers,r);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,n,d),this._state=t}_findRenderingData(t){if(!t)return{lineNumbers:[],lastLineRelativePosition:0};const n=[...t.startLineNumbers];t.showEndForLine!==null&&(n[t.showEndForLine]=t.endLineNumbers[t.showEndForLine]);let r=0;for(let o=0;o!t.includes(s));return o===-1?0:o}_updateWidgetWidth(){const t=this._editor.getLayoutInfo(),n=t.contentLeft;this._lineNumbersDomNode.style.width=`${n}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-t.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${t.width-t.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(t){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${t?.5:0}s`)}_setFoldingIconsVisibility(t){for(const n of this._renderedStickyLines){const r=n.foldingIcon;r&&r.setVisible(t?!0:r.isCollapsed)}}async _renderRootNode(t,n,r,o){const s=this._editor._getViewModel();if(!s){this._clearWidget();return}if(t.length===0){this._clearWidget();return}const a=[],l=t[t.length-1];let d=0;for(let h=0;hh.scrollWidth))+u.verticalScrollbarWidth,this._renderedStickyLines=a,this._setHeight(d+n),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let t=0;t{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(wt(this._lineNumbersDomNode,rn.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(t,n,r,o,s,a,l){const d=t.coordinatesConverter.convertModelPositionToViewPosition(new it(r,1)).lineNumber,u=t.getViewLineRenderingData(d),h=this._editor.getOption(76),g=this._editor.getOption(117).verticalScrollbarSize;let m;try{m=wg.filter(u.inlineDecorations,d,u.minColumn,u.maxColumn)}catch{m=[]}const v=this._editor.getLineHeightForPosition(new it(r,1)),f=t.getTextDirection(r),k=new AL(!0,!0,u.content,u.continuesWithWrappedLine,u.isBasicASCII,u.containsRTL,0,u.tokens,m,u.tabSize,u.startVisibleColumn,1,1,1,500,"none",!0,!0,null,f,g),A=new sE(2e3),p=tH(k,A);let b;NCt?b=NCt.createHTML(A.build()):b=A.build();const w=document.createElement("span");w.setAttribute(Rxe,String(n)),w.setAttribute(UCt,""),w.setAttribute("role","listitem"),w.tabIndex=0,w.className="sticky-line-content",w.classList.add(`stickyLine${r}`),w.style.lineHeight=`${v}px`,w.innerHTML=b;const O=document.createElement("span");O.setAttribute(Rxe,String(n)),O.setAttribute(rCo,""),O.className="sticky-line-number",O.style.lineHeight=`${v}px`;const y=l.contentLeft;O.style.width=`${y}px`;const C=document.createElement("span");h.renderType===1||h.renderType===3&&r%10===0?C.innerText=r.toString():h.renderType===2&&(C.innerText=Math.abs(r-this._editor.getPosition().lineNumber).toString()),C.className="sticky-line-number-inner",C.style.width=`${l.lineNumbersWidth}px`,C.style.paddingLeft=`${l.lineNumbersLeft}px`,O.appendChild(C);const _=this._renderFoldingIconForLine(a,r);_&&(O.appendChild(_.domNode),_.domNode.style.left=`${l.lineNumbersWidth+l.lineNumbersLeft}px`,_.domNode.style.lineHeight=`${v}px`),this._editor.applyFontInfo(w),this._editor.applyFontInfo(O),O.style.lineHeight=`${v}px`,w.style.lineHeight=`${v}px`,O.style.height=`${v}px`,w.style.height=`${v}px`;const S=new sCo(n,r,w,O,_,p.characterMapping,w.scrollWidth,v);return this._updatePosition(S,o,s)}_updatePosition(t,n,r){var a;const o=t.lineDomNode,s=t.lineNumberDomNode;if(r){const l="0";o.style.zIndex=l,s.style.zIndex=l;const d=`${n+this._lastLineRelativePosition+((a=t.foldingIcon)!=null&&a.isCollapsed?1:0)}px`;o.style.top=d,s.style.top=d}else{const l="1";o.style.zIndex=l,s.style.zIndex=l,o.style.top=`${n}px`,s.style.top=`${n}px`}return t}_renderFoldingIconForLine(t,n){const r=this._editor.getOption(126);if(!t||r==="never")return;const o=t.regions,s=o.findRange(n),a=o.getStartLineNumber(s);if(!(n===a))return;const d=o.isCollapsed(s),u=new aCo(d,a,o.getEndLineNumber(s),this._lineHeight);return u.setVisible(this._isOnGlyphMargin?!0:d||r==="always"),u.domNode.setAttribute(jCt,""),u}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(t){0<=t&&t0)return null;const n=this._getRenderedStickyLineFromChildDomNode(t);if(!n)return null;const r=rV(n.characterMapping,t,0);return new it(n.lineNumber,r)}getLineNumberFromChildDomNode(t){var n;return((n=this._getRenderedStickyLineFromChildDomNode(t))==null?void 0:n.lineNumber)??null}_getRenderedStickyLineFromChildDomNode(t){const n=this.getLineIndexFromChildDomNode(t);return n===null||n<0||n>=this._renderedStickyLines.length?null:this._renderedStickyLines[n]}getLineIndexFromChildDomNode(t){const n=this._getAttributeValue(t,Rxe);return n?parseInt(n,10):null}isInStickyLine(t){return this._getAttributeValue(t,UCt)!==void 0}isInFoldingIconDomNode(t){return this._getAttributeValue(t,jCt)!==void 0}_getAttributeValue(t,n){for(;t&&t!==this._rootDomNode;){const r=t.getAttribute(n);if(r!==null)return r;t=t.parentElement}}}class sCo{constructor(t,n,r,o,s,a,l,d){this.index=t,this.lineNumber=n,this.lineDomNode=r,this.lineNumberDomNode=o,this.foldingIcon=s,this.characterMapping=a,this.scrollWidth=l,this.height=d}}class aCo{constructor(t,n,r,o){this.isCollapsed=t,this.foldingStartLine=n,this.foldingEndLine=r,this.dimension=o,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${o}px`,this.domNode.style.lineHeight=`${o}px`,this.domNode.className=fi.asClassName(t?w0e:b0e)}setVisible(t){this.domNode.style.cursor=t?"pointer":"default",this.domNode.style.opacity=t?"1":"0"}}class UZ{constructor(t,n){this.startLineNumber=t,this.endLineNumber=n}}class $0e{constructor(t,n,r){this.range=t,this.children=n,this.parent=r}}class gIn{constructor(t,n,r,o){this.uri=t,this.version=n,this.element=r,this.outlineProviderId=o}}var U3e=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},oee=function(e,t){return function(n,r){t(n,r,e)}},jZ;(function(e){e.OUTLINE_MODEL="outlineModel",e.FOLDING_PROVIDER_MODEL="foldingProviderModel",e.INDENTATION_MODEL="indentationModel"})(jZ||(jZ={}));var O9;(function(e){e[e.VALID=0]="VALID",e[e.INVALID=1]="INVALID",e[e.CANCELED=2]="CANCELED"})(O9||(O9={}));let CVe=class extends ft{constructor(t,n,r,o){switch(super(),this._editor=t,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new dA(300)),this._updateOperation=this._register(new xt),this._editor.getOption(131).defaultModel){case jZ.OUTLINE_MODEL:this._modelProviders.push(new _Ve(this._editor,o));case jZ.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new LVe(this._editor,n,o));case jZ.INDENTATION_MODEL:this._modelProviders.push(new SVe(this._editor,r));break}}dispose(){this._modelProviders.forEach(t=>t.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(t){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const n of this._modelProviders){const{statusPromise:r,modelPromise:o}=n.computeStickyModel(t);this._modelPromise=o;const s=await r;if(this._modelPromise!==o)return null;switch(s){case O9.CANCELED:return this._updateOperation.clear(),null;case O9.VALID:return n.stickyModel}}return null}).catch(n=>(zi(n),null))}};CVe=U3e([oee(2,Yn),oee(3,Nn)],CVe);class mIn extends ft{constructor(t){super(),this._editor=t,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,O9.INVALID}computeStickyModel(t){if(t.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const n=Fd(r=>this.createModelFromProvider(r));return{statusPromise:n.then(r=>this.isModelValid(r)?t.isCancellationRequested?O9.CANCELED:(this._stickyModel=this.createStickyModel(t,r),O9.VALID):this._invalid()).then(void 0,r=>(zi(r),O9.CANCELED)),modelPromise:n}}isModelValid(t){return!0}isProviderValid(){return!0}}let _Ve=class extends mIn{constructor(t,n){super(t),this._languageFeaturesService=n}createModelFromProvider(t){return rS.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),t)}createStickyModel(t,n){var a;const{stickyOutlineElement:r,providerID:o}=this._stickyModelFromOutlineModel(n,(a=this._stickyModel)==null?void 0:a.outlineProviderId),s=this._editor.getModel();return new gIn(s.uri,s.getVersionId(),r,o)}isModelValid(t){return t&&t.children.size>0}_stickyModelFromOutlineModel(t,n){let r;if(to.first(t.children.values())instanceof $Rn){const l=to.find(t.children.values(),d=>d.id===n);if(l)r=l.children;else{let d="",u=-1,h;for(const[g,m]of t.children.entries()){const v=this._findSumOfRangesOfGroup(m);v>u&&(h=m,u=v,d=m.id)}n=d,r=h.children}}else r=t.children;const o=[],s=Array.from(r.values()).sort((l,d)=>{const u=new UZ(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber),h=new UZ(d.symbol.range.startLineNumber,d.symbol.range.endLineNumber);return this._comparator(u,h)});for(const l of s)o.push(this._stickyModelFromOutlineElement(l,l.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new $0e(void 0,o,void 0),providerID:n}}_stickyModelFromOutlineElement(t,n){const r=[];for(const s of t.children.values())if(s.symbol.selectionRange.startLineNumber!==s.symbol.range.endLineNumber)if(s.symbol.selectionRange.startLineNumber!==n)r.push(this._stickyModelFromOutlineElement(s,s.symbol.selectionRange.startLineNumber));else for(const a of s.children.values())r.push(this._stickyModelFromOutlineElement(a,s.symbol.selectionRange.startLineNumber));r.sort((s,a)=>this._comparator(s.range,a.range));const o=new UZ(t.symbol.selectionRange.startLineNumber,t.symbol.range.endLineNumber);return new $0e(o,r,void 0)}_comparator(t,n){return t.startLineNumber!==n.startLineNumber?t.startLineNumber-n.startLineNumber:n.endLineNumber-t.endLineNumber}_findSumOfRangesOfGroup(t){let n=0;for(const r of t.children.values())n+=this._findSumOfRangesOfGroup(r);return t instanceof GWe?n+t.symbol.range.endLineNumber-t.symbol.selectionRange.startLineNumber:n}};_Ve=U3e([oee(1,Nn)],_Ve);class kIn extends mIn{constructor(t){super(t),this._foldingLimitReporter=this._register(new URn(t))}createStickyModel(t,n){const r=this._fromFoldingRegions(n),o=this._editor.getModel();return new gIn(o.uri,o.getVersionId(),r,void 0)}isModelValid(t){return t!==null}_fromFoldingRegions(t){const n=t.length,r=[],o=new $0e(void 0,[],void 0);for(let s=0;s{this._updateProvider(t,n)})),this._updateProvider(t,n)}_updateProvider(t,n){const r=R6.getFoldingRangeProviders(this._languageFeaturesService,t.getModel());r.length!==0&&(this.provider.value=new Dnt(t.getModel(),r,n,this._foldingLimitReporter,void 0))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(t){var n;return((n=this.provider.value)==null?void 0:n.compute(t))??null}};LVe=U3e([oee(2,Nn)],LVe);var lCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},WCt=function(e,t){return function(n,r){t(n,r,e)}};class cCo{constructor(t,n,r,o){this.startLineNumber=t,this.endLineNumber=n,this.top=r,this.height=o}}let xVe=class extends ft{constructor(t,n,r){super(),this._languageFeaturesService=n,this._languageConfigurationService=r,this._onDidChangeStickyScroll=this._register(new at),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new xt),this._updateSoon=this._register(new Es(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(o=>{o.hasChanged(131)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(131).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(Hn(()=>{var n;(n=this._stickyModelProvider)==null||n.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var t;return(t=this._model)==null?void 0:t.version}updateStickyModelProvider(){var t;(t=this._stickyModelProvider)==null||t.dispose(),this._stickyModelProvider=null,this._editor.hasModel()&&(this._stickyModelProvider=new CVe(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var t;(t=this._cts)==null||t.dispose(!0),this._cts=new ja,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(t){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const n=await this._stickyModelProvider.update(t);t.isCancellationRequested||(this._model=n)}getCandidateStickyLinesIntersecting(t){var r;if(!((r=this._model)!=null&&r.element))return[];const n=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(t,this._model.element,n,0,0,-1),this.filterHiddenRanges(n)}getCandidateStickyLinesIntersectingFromStickyModel(t,n,r,o,s,a){const l=this._editor.getModel();if(!l||n.children.length===0)return;let d=a;const u=[];for(let m=0;mm-v)),g=this.updateIndex(yme(u,t.endLineNumber,(m,v)=>m-v));for(let m=h;m<=g;m++){const v=n.children[m];if(!v||!v.range)continue;const{startLineNumber:f,endLineNumber:k}=v.range;if(k>f+1&&t.startLineNumber<=k+1&&f-1<=t.endLineNumber&&f!==d&&l.isValidRange(new Ee(f,1,k,1))){d=f;const A=this._editor.getLineHeightForPosition(new it(f,1));r.push(new cCo(f,k-1,s,A)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,v,r,o+1,s+A,f)}}}filterHiddenRanges(t){var r;const n=(r=this._editor._getViewModel())==null?void 0:r.getHiddenAreas();return n?t.filter(o=>!n.some(s=>o.startLineNumber>=s.startLineNumber&&o.endLineNumber<=s.endLineNumber+1)):t}updateIndex(t){return t===-1?0:t<0?-t-2:t}};xVe=lCo([WCt(1,Nn),WCt(2,kl)],xVe);var dCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},PP=function(e,t){return function(n,r){t(n,r,e)}},EVe,dB;let fp=(dB=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._editor=t,this._contextMenuService=n,this._languageFeaturesService=r,this._instaService=o,this._contextKeyService=l,this._sessionStore=new xt,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new at),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new oCo(this._editor),this._stickyLineCandidateProvider=new xVe(this._editor,r,s),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=NZ.Empty;const d=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight(h=>{h.changes.forEach(g=>{const m=g.lineNumber;this._widgetState.startLineNumbers.includes(m)&&this._renderStickyScroll(m)})})),this._register(this._editor.onDidChangeFont(h=>{h.changes.forEach(g=>{const m=g.lineNumber;this._widgetState.startLineNumbers.includes(m)&&this._renderStickyScroll(m)})})),this._register(this._editor.onDidChangeConfiguration(h=>{this._readConfigurationChange(h)})),this._register(wt(d,rn.CONTEXT_MENU,async h=>{this._onContextMenu(ii(d),h)})),this._stickyScrollFocusedContextKey=$e.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=$e.stickyScrollVisible.bindTo(this._contextKeyService);const u=this._register(uA(d));this._register(u.onDidBlur(h=>{this._positionRevealed===!1&&d.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(u.onDidFocus(h=>{this.focus()})),this._registerMouseListeners(),this._register(wt(d,rn.MOUSE_DOWN,h=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight(h=>{this._onDidChangeStickyScrollHeight.fire(h)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(t){return t.getContribution(EVe.ID)}_disposeFocusStickyScrollStore(){var t;this._stickyScrollFocusedContextKey.set(!1),(t=this._focusDisposableStore)==null||t.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new xt,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(t){this._focusedStickyElementIndex=t?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const t=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:t[this._focusedStickyElementIndex],column:1})}_revealPosition(t){this._reveaInEditor(t,()=>this._editor.revealPosition(t))}_revealLineInCenterIfOutsideViewport(t){this._reveaInEditor(t,()=>this._editor.revealLineInCenterIfOutsideViewport(t.lineNumber,0))}_reveaInEditor(t,n){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,n(),this._editor.setSelection(Ee.fromPositions(t)),this._editor.focus()}_registerMouseListeners(){const t=this._register(new xt),n=this._register(new y3e(this._editor,{extractLineNumberFromMouseEvent:s=>{const a=this._stickyScrollWidget.getEditorPositionFromNode(s.target.element);return a?a.lineNumber:0}})),r=s=>{if(!this._editor.hasModel()||s.target.type!==12||s.target.detail!==this._stickyScrollWidget.getId())return null;const a=s.target.element;if(!a||a.innerText!==a.innerHTML)return null;const l=this._stickyScrollWidget.getEditorPositionFromNode(a);return l?{range:new Ee(l.lineNumber,l.column,l.lineNumber,l.column+a.innerText.length),textElement:a}:null},o=this._stickyScrollWidget.getDomNode();this._register(wc(o,rn.CLICK,s=>{if(s.ctrlKey||s.altKey||s.metaKey||!s.leftButton)return;if(s.shiftKey){const u=this._stickyScrollWidget.getLineIndexFromChildDomNode(s.target);if(u===null)return;const h=new it(this._endLineNumbers[u],1);this._revealLineInCenterIfOutsideViewport(h);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(s.target)){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(s.target);this._toggleFoldingRegionForLine(u);return}if(!this._stickyScrollWidget.isInStickyLine(s.target))return;let d=this._stickyScrollWidget.getEditorPositionFromNode(s.target);if(!d){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(s.target);if(u===null)return;d=new it(u,1)}this._revealPosition(d)})),this._register(wt(Ls,rn.MOUSE_MOVE,s=>{this._mouseTarget=s.target,this._onMouseMoveOrKeyDown(s)})),this._register(wt(Ls,rn.KEY_DOWN,s=>{this._onMouseMoveOrKeyDown(s)})),this._register(wt(Ls,rn.KEY_UP,()=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(n.onMouseMoveOrRelevantKeyDown(([s,a])=>{const l=r(s);if(!l||!s.hasTriggerModifier||!this._editor.hasModel()){t.clear();return}const{range:d,textElement:u}=l;if(!d.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=d,t.clear();else if(u.style.textDecoration==="underline")return;const h=new ja;t.add(Hn(()=>h.dispose(!0)));let g;nre(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new it(d.startLineNumber,d.startColumn+1),!1,h.token).then(m=>{if(!h.token.isCancellationRequested)if(m.length!==0){this._candidateDefinitionsLength=m.length;const v=u;g!==v?(t.clear(),g=v,g.style.textDecoration="underline",t.add(Hn(()=>{g.style.textDecoration="none"}))):g||(g=v,g.style.textDecoration="underline",t.add(Hn(()=>{g.style.textDecoration="none"})))}else t.clear()})})),this._register(n.onCancel(()=>{t.clear()})),this._register(n.onExecute(async s=>{if(s.target.type!==12||s.target.detail!==this._stickyScrollWidget.getId())return;const a=this._stickyScrollWidget.getEditorPositionFromNode(s.target.element);a&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:a.lineNumber,column:1})),this._instaService.invokeFunction(_Rn,s,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(t,n){const r=new Xh(t,n);this._contextMenuService.showContextMenu({menuId:Wn.StickyScrollContext,getAnchor:()=>r})}_onMouseMoveOrKeyDown(t){if(!t.shiftKey||!this._mouseTarget||!ec(this._mouseTarget))return;const n=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);n===null||this._showEndForLine===n||(this._showEndForLine=n,this._renderStickyScroll())}_toggleFoldingRegionForLine(t){if(!this._foldingModel||t===null)return;const n=this._stickyScrollWidget.getRenderedStickyLine(t),r=n==null?void 0:n.foldingIcon;if(!r)return;xnt(this._foldingModel,1,[t]),r.isCollapsed=!r.isCollapsed;const o=(r.isCollapsed?this._editor.getTopForLineNumber(r.foldingEndLine):this._editor.getTopForLineNumber(r.foldingStartLine))-this._editor.getOption(75)*n.index+1;this._editor.setScrollTop(o),this._renderStickyScroll(t)}_readConfiguration(){const t=this._editor.getOption(131);if(t.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else t.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(r=>{r.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(r=>this._onTokensChange(r))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(76).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(t){(t.hasChanged(131)||t.hasChanged(81)||t.hasChanged(75)||t.hasChanged(126)||t.hasChanged(76))&&this._readConfiguration(),(t.hasChanged(76)||t.hasChanged(52)||t.hasChanged(126))&&this._renderStickyScroll(0)}_needsUpdate(t){const n=this._stickyScrollWidget.getCurrentLines();for(const r of n)for(const o of t.ranges)if(r>=o.fromLineNumber&&r<=o.toLineNumber)return!0;return!1}_onTokensChange(t){this._needsUpdate(t)&&this._renderStickyScroll(0)}_onDidResize(){const n=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(n*.25),this._renderStickyScroll(0)}async _renderStickyScroll(t){const n=this._editor.getModel();if(!n||n.isTooLargeForTokenization()){this._resetState();return}const r=this._updateAndGetMinRebuildFromLine(t),o=this._stickyLineCandidateProvider.getVersionId();if(o===void 0||o===n.getVersionId())if(!this._focused)await this._updateState(r);else if(this._focusedStickyElementIndex===-1)await this._updateState(r),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const a=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(r),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(a)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(t){if(t!==void 0){const n=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(t,n)}return this._minRebuildFromLine}async _updateState(t){var r;this._minRebuildFromLine=void 0,this._foldingModel=await((r=R6.get(this._editor))==null?void 0:r.getFoldingModel())??void 0,this._widgetState=this.findScrollWidgetState();const n=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(n),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=NZ.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const t=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),n=this._editor.getScrollTop();let r=0;const o=[],s=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new UZ(a[0].startLineNumber,a[a.length-1].endLineNumber),d=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const u of d){const h=u.startLineNumber,g=u.endLineNumber,m=u.top,v=m+u.height,f=this._editor.getTopForLineNumber(h)-n,k=this._editor.getBottomForLineNumber(g)-n;if(m>f&&m<=k&&(o.push(h),s.push(g+1),v>k&&(r=k-v)),o.length===t)break}}return this._endLineNumbers=s,new NZ(o,s,r,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},EVe=dB,dB.ID="store.contrib.stickyScrollController",dB);fp=EVe=dCo([PP(1,S2),PP(2,Nn),PP(3,Yn),PP(4,kl),PP(5,CA),PP(6,Qi)],fp);const WZ=Ve("inlineEdit.originalBackground",Zi(h9,.2),U(1220,"Background color for the original text in inline edits."),!0),vIn=Ve("inlineEdit.modifiedBackground",Zi(cQ,.3),U(1221,"Background color for the modified text in inline edits."),!0);Ve("inlineEdit.originalChangedLineBackground",Zi(h9,.8),U(1222,"Background color for the changed lines in the original text of inline edits."),!0);const uCo=Ve("inlineEdit.originalChangedTextBackground",Zi(h9,.8),U(1223,"Overlay color for the changed text in the original text of inline edits."),!0),hCo=Ve("inlineEdit.modifiedChangedLineBackground",{light:Zi(gle,.7),dark:Zi(gle,.7),hcDark:gle,hcLight:gle},U(1224,"Background color for the changed lines in the modified text of inline edits."),!0),fCo=Ve("inlineEdit.modifiedChangedTextBackground",Zi(cQ,.7),U(1225,"Overlay color for the changed text in the modified text of inline edits."),!0),gCo=Ve("inlineEdit.gutterIndicator.primaryForeground",Ybe,U(1226,"Foreground color for the primary inline edit gutter indicator.")),_N=Ve("inlineEdit.gutterIndicator.primaryBorder",dQ,U(1227,"Border color for the primary inline edit gutter indicator.")),AIn=Ve("inlineEdit.gutterIndicator.primaryBackground",{light:Zi(_N,.5),dark:Zi(_N,.4),hcDark:Zi(_N,.4),hcLight:Zi(_N,.5)},U(1228,"Background color for the primary inline edit gutter indicator.")),mCo=Ve("inlineEdit.gutterIndicator.secondaryForeground",Q7n,U(1229,"Foreground color for the secondary inline edit gutter indicator.")),pIn=Ve("inlineEdit.gutterIndicator.secondaryBorder",Gme,U(1230,"Border color for the secondary inline edit gutter indicator.")),bIn=Ve("inlineEdit.gutterIndicator.secondaryBackground",pIn,U(1231,"Background color for the secondary inline edit gutter indicator.")),kCo=Ve("inlineEdit.gutterIndicator.successfulForeground",Ybe,U(1232,"Foreground color for the successful inline edit gutter indicator.")),wIn=Ve("inlineEdit.gutterIndicator.successfulBorder",dQ,U(1233,"Border color for the successful inline edit gutter indicator.")),OIn=Ve("inlineEdit.gutterIndicator.successfulBackground",wIn,U(1234,"Background color for the successful inline edit gutter indicator.")),vCo=Ve("inlineEdit.gutterIndicator.background",{hcDark:Zi("tab.inactiveBackground",.5),hcLight:Zi("tab.inactiveBackground",.5),dark:Zi("tab.inactiveBackground",.5),light:"#5f5f5f18"},U(1235,"Background color for the inline edit gutter indicator.")),$G=Ve("inlineEdit.originalBorder",{light:h9,dark:h9,hcDark:h9,hcLight:h9},U(1236,"Border color for the original text in inline edits.")),XG=Ve("inlineEdit.modifiedBorder",{light:l1(cQ,.6),dark:cQ,hcDark:cQ,hcLight:cQ},U(1237,"Border color for the modified text in inline edits.")),ACo=Ve("inlineEdit.tabWillAcceptModifiedBorder",{light:l1(XG,0),dark:l1(XG,0),hcDark:l1(XG,0),hcLight:l1(XG,0)},U(1238,"Modified border color for the inline edits widget when tab will accept it.")),pCo=Ve("inlineEdit.tabWillAcceptOriginalBorder",{light:l1($G,0),dark:l1($G,0),hcDark:l1($G,0),hcLight:l1($G,0)},U(1239,"Original border color for the inline edits widget over the original text when tab will accept it."));function see(e){return e.map(t=>t===wf.Accept?ACo:XG)}function j3e(e){return e.map(t=>t===wf.Accept?pCo:$G)}function gv(e,t){let n;typeof e=="string"?n=Ixe(e,t):n=e.map((o,s)=>Ixe(o,t).read(s));const r=Ixe(Oc,t);return n.map((o,s)=>o.makeOpaque(r.read(s)))}function Ixe(e,t){return gEn({owner:{observeColor:e},equalsFn:(n,r)=>n.equals(r),debugName:()=>`observeColor(${e})`},t.onDidColorThemeChange,()=>{const n=t.getColorTheme().getColor(e);if(!n)throw new ui(`Missing color: ${e}`);return n})}function y9(e,t,n){e.layoutInfo.read(n),e.value.read(n);const r=e.model.read(n);if(!r)return 0;let o=0;e.scrollTop.read(n);for(let a=t.startLineNumber;ar.getLineContent(a));return o<5&&s.some(a=>a.length>0)&&r.uri.scheme!=="file"&&console.error("unexpected width"),o}function bCo(e,t,n){return e.layoutInfo.read(n),e.value.read(n),e.model.read(n)?(e.scrollTop.read(n),e.editor.getOffsetForColumn(t.lineNumber,t.column)):0}function Nnt(e,t,n,r,o=void 0){const s=r.getModel();if(!s)return{prefixTrim:0,prefixLeftOffset:0};const a=e.map(m=>m.isSingleLine()?m.startColumn-1:0),l=t.mapToLineArray(m=>EUe(s.getLineContent(m))),d=n.filter(m=>m!=="").map(m=>EUe(m)),u=Math.min(...a,...l,...d);let h;if(s.getLineIndentColumn(t.startLineNumber)>=u+1)hl(r).scrollTop.read(o),h=r.getOffsetForColumn(t.startLineNumber,u+1);else if(n.length>0)h=Unt(n[0].slice(0,u),r,s);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:u,prefixLeftOffset:h}}function Unt(e,t,n){const r=t.getOption(59).typicalHalfwidthCharacterWidth,o=n.getOptions().tabSize*r,s=e.split(" ").length-1;return(e.length-s)*r+s*o}function jnt(e){const t=e.layoutInfoContentLeft,n=Rt({name:"editor.validOverlay.width"},o=>{const s=e.layoutInfoMinimap.read(o).minimapLeft!==0,a=e.layoutInfoWidth.read(o)-t.read(o);if(s){const l=e.layoutInfoMinimap.read(o).minimapWidth+e.layoutInfoVerticalScrollbarWidth.read(o);return a-l}return a}),r=Rt({name:"editor.validOverlay.height"},o=>e.layoutInfoHeight.read(o)+e.contentHeight.read(o));return Rt({name:"editor.validOverlay"},o=>Vs.fromLeftTopWidthHeight(t.read(o),0,n.read(o),r.read(o)))}function wCo(e,t){const n=[];for(const r of e){const o=t.mapRange(r.modifiedRange);n.push(new im(r.originalRange,o))}return n}function Mxe(...e){return e.filter(t=>typeof t=="string").join(" ")}function OCo(e,t){return new Ee(t.lineNumber,t.column+e.start,t.lineNumber,t.column+e.endExclusive)}function yCo(e,t){let n=0;e:for(let r=0,o=e.length;ryCo(r[a-1],n)),T0);return t.forEach(a=>{const l=CCo(r[a-1],s,n);o.push(new Mc(OCo(new Xn(0,l),new it(a,1)),""))}),new V4(o)}class TVe{constructor(){this._data=""}moveTo(t){return this._data+=`M ${t.x} ${t.y} `,this}lineTo(t){return this._data+=`L ${t.x} ${t.y} `,this}build(){return this._data}}function By(e){const t=vL(void 0,(n,r)=>e.read(n)||r);return Vh({debugName:()=>`${e.debugName}.mapOutFalsy`},n=>{if(t.read(n),!!e.read(n))return t})}function Pv(e,t=Hd.ofCaller()){return{left:Rt({name:"editor.validOverlay.left"},n=>e(n).left,t),top:Rt({name:"editor.validOverlay.top"},n=>e(n).top,t),width:Rt({name:"editor.validOverlay.width"},n=>e(n).right-e(n).left,t),height:Rt({name:"editor.validOverlay.height"},n=>e(n).bottom-e(n).top,t)}}var SCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Pxe=function(e,t){return function(n,r){t(n,r,e)}};let QVe=class{constructor(t,n,r,o,s,a){this._model=t,this._close=n,this._editorObs=r,this._contextKeyService=o,this._keybindingService=s,this._commandService=a,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map(l=>l.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){const t=Ti("active",void 0),n=m=>({title:m.title,icon:m.icon,keybinding:typeof m.commandId=="string"?this._getKeybinding(m.commandArgs?void 0:m.commandId):Rt(this,v=>typeof m.commandId=="string"?void 0:this._getKeybinding(m.commandArgs?void 0:m.commandId.read(v)).read(v)),isActive:t.map(v=>v===m.id),onHoverChange:v=>t.set(v?m.id:void 0,void 0),onAction:()=>(this._close(!0),this._commandService.executeCommand(typeof m.commandId=="string"?m.commandId:m.commandId.get(),...m.commandArgs??[]))}),r=xCo(this._model.displayName),o=C7(n({id:"gotoAndAccept",title:`${U(1212,"Go To")} / ${U(1213,"Accept")}`,icon:zt.check,commandId:WJ})),s=C7(n({id:"reject",title:U(1214,"Reject"),icon:zt.close,commandId:kBn})),a=this._model.extensionCommands.map((m,v)=>C7(n({id:m.command.id+"_"+v,title:m.command.title,icon:m.icon??zt.symbolEvent,commandId:m.command.id,commandArgs:m.command.arguments}))),l=this._inlineEditsShowCollapsed.map(m=>C7(n(m?{id:"showExpanded",title:U(1215,"Show Expanded"),icon:zt.expandAll,commandId:Xje}:{id:"showCollapsed",title:U(1216,"Show Collapsed"),icon:zt.collapseAll,commandId:Xje}))),d=C7(n({id:"snooze",title:U(1217,"Snooze"),icon:zt.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),u=C7(n({id:"settings",title:U(1218,"Settings"),icon:zt.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),h=this._model.action?[this._model.action]:[],g=h.length>0?ECo(h.map(m=>({id:m.id,label:m.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(m.id,...m.arguments??[]),class:void 0,tooltip:m.tooltip??m.title})),{hoverDelegate:jko}):void 0;return LCo([r,o,s,l,a.length?VCt():void 0,d,u,...a,g?VCt():void 0,g])}_getKeybinding(t){return t?Ko(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(t)):ca(void 0)}};QVe=SCo([Pxe(3,Qi),Pxe(4,Do),Pxe(5,ba)],QVe);function LCo(e){return cr.div({class:"content",style:{margin:4,minWidth:180}},e)}function xCo(e){return cr.div({class:"header",style:{color:en(O7n),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[e])}function C7(e){return Rt({name:"inlineEdits.option"},t=>{var n;return cr.div({class:["monaco-menu-option",(n=e.isActive)==null?void 0:n.map(r=>r&&"active")],onmouseenter:()=>{var r;return(r=e.onHoverChange)==null?void 0:r.call(e,!0)},onmouseleave:()=>{var r;return(r=e.onHoverChange)==null?void 0:r.call(e,!1)},onclick:e.onAction,onkeydown:r=>{var o;r.key==="Enter"&&((o=e.onAction)==null||o.call(e))},tabIndex:0,style:{borderRadius:3}},[cr.elem("span",{style:{fontSize:16,display:"flex"}},[fi.isThemeIcon(e.icon)?y3(e.icon):e.icon.map(r=>y3(r))]),cr.elem("span",{},[e.title]),cr.div({style:{marginLeft:"auto"},ref:r=>{const o=t.store.add(new cH(r,b0,{disableTitle:!0,...fDn,keybindingLabelShadow:void 0,keybindingLabelForeground:en(O7n),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));t.store.add(Oi(s=>{o.set(e.keybinding.read(s))}))}})])})}function ECo(e,t){return Rt({name:"inlineEdits.actionBar"},n=>cr.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[cr.div({ref:r=>{n.store.add(new g1(r,t)).push(e,{icon:!1,label:!0})}})]))}function VCt(){return cr.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:en(rao),padding:"2px 0"}},cr.div({style:{borderBottom:`1px solid ${en(wet)}`}}))}var TCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},cce=function(e,t){return function(n,r){t(n,r,e)}};let DVe=class extends ft{get model(){const t=this._model.get();if(!t)throw new ui("Inline Edit Model not available");return t}constructor(t,n,r,o,s,a,l,d,u,h){super(),this._editorObs=t,this._originalRange=n,this._verticalOffset=r,this._model=o,this._isHoveringOverInlineEdit=s,this._focusIsInMenu=a,this._hoverService=l,this._instantiationService=d,this._accessibilityService=u,this._tabAction=Rt(this,g=>{const m=this._model.read(g);return m?m.tabAction.read(g):wf.Inactive}),this._hoverVisible=Ti(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=Ti(this,!1),this._isHoveredOverIconDebounced=wbt(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._isHoveredOverInlineEditDebounced=wbt(this._isHoveringOverInlineEdit,100),this._gutterIndicatorStyles=this._tabAction.map(this,(g,m)=>{switch(g){case wf.Inactive:return{background:gv(bIn,h).read(m).toString(),foreground:gv(mCo,h).read(m).toString(),border:gv(pIn,h).read(m).toString()};case wf.Jump:return{background:gv(AIn,h).read(m).toString(),foreground:gv(gCo,h).read(m).toString(),border:gv(_N,h).read(m).toString()};case wf.Accept:return{background:gv(OIn,h).read(m).toString(),foreground:gv(kCo,h).read(m).toString(),border:gv(wIn,h).read(m).toString()};default:bie()}}),this._originalRangeObs=By(this._originalRange),this._state=Rt(this,g=>{const m=this._originalRangeObs.read(g);if(m)return{range:m,lineOffsetRange:this._editorObs.observeLineOffsetRange(m,g.store)}}),this._stickyScrollController=fp.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Ko(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):ca(0),this._lineNumberToRender=Rt(this,g=>{var f;if(this._verticalOffset.read(g)!==0)return"";const m=(f=this._originalRange.read(g))==null?void 0:f.startLineNumber,v=this._editorObs.getOption(76).read(g);if(m===void 0||v.renderType===0)return"";if(v.renderType===3){const k=this._editorObs.cursorPosition.read(g);return m%10===0||k&&k.lineNumber===m?m.toString():""}if(v.renderType===2){const k=this._editorObs.cursorPosition.read(g);if(!k)return"";const A=Math.abs(m-k.lineNumber);return A===0?m.toString():A.toString()}return v.renderType===4?v.renderFn?v.renderFn(m):"":m.toString()}),this._availableWidthForIcon=Rt(this,g=>{const m=this._editorObs.editor.getModel(),v=this._editorObs.editor,f=this._editorObs.layoutInfo.read(g),k=f.decorationsLeft+f.decorationsWidth-f.glyphMarginLeft;if(!m||k<=0)return()=>0;if(f.lineNumbersLeft===0)return()=>k;const A=this._editorObs.getOption(76).read(g);if(A.renderType===2||A.renderType===0)return()=>k;const p=v.getOption(59).typicalHalfwidthCharacterWidth,b=f.lineNumbersLeft+f.lineNumbersWidth,O=(m.getLineCount()+1).toString().length,y=[];for(let C=1;C<=O;C++){const _=10**(C-1),S=v.getTopForLineNumber(_),L=C*p,E=Math.min(k,Math.max(0,b-L-f.glyphMarginLeft));y.push({firstLineNumberWithDigitCount:_,topOfLineNumber:S,usableWidthLeftOfLineNumber:E})}return C=>{for(let _=y.length-1;_>=0;_--)if(C>=y[_].topOfLineNumber)return y[_].usableWidthLeftOfLineNumber;throw new ui("Could not find avilable width for icon")}}),this._layout=Rt(this,g=>{const m=this._state.read(g);if(!m)return;const v=this._editorObs.layoutInfo.read(g),f=this._editorObs.observeLineHeightForLine(m.range.map(H=>H.startLineNumber)).read(g),k=2,A=v.decorationsLeft+v.decorationsWidth-v.glyphMarginLeft-2*k,p=v.height-2*k,b=Vs.fromLeftTopWidthHeight(k,k,A,p),w=b.withTop(this._stickyScrollHeight.read(g)),O=b.withTop(w.top+k),y=m.lineOffsetRange.read(g),C=Vs.fromRanges(Xn.fromTo(O.left,O.right),y),_=f,S=this._verticalOffset.read(g),L=C.withHeight(_).translateY(S),E=w.containsRect(L),T=this._tabAction.map(H=>H===wf.Accept?zt.keyboardTab:zt.arrowRight),D=Rt(this,H=>{if(this._isHoveredOverIconDebounced.read(H)||this._isHoveredOverInlineEditDebounced.read(H))return zt.check;if(this._tabAction.read(H)===wf.Accept)return zt.keyboardTab;const $=this._editorObs.cursorLineNumber.read(H)??0,G=m.range.read(H).startLineNumber;return $<=G?zt.keyboardTabAbove:zt.keyboardTabBelow}),P=22,Q=16,M=H=>{const $=this._availableWidthForIcon.read(void 0)(H.bottom+this._editorObs.editor.getScrollTop())-k;return Math.max(Math.min($,P),Q)};if(E){const H=L;let $;v.lineNumbersWidth===0?$=Math.min(Math.max(v.lineNumbersLeft-b.left,0),H.width-P):$=Math.max(v.lineNumbersLeft+v.lineNumbersWidth-b.left,0);const G=H.withWidth($),q=Math.max(Math.min(v.decorationsWidth,P),Q),re=H.withWidth(q).translateX($);return{gutterEditArea:C,icon:D,iconDirection:"right",iconRect:re,pillRect:H,lineNumberRect:G}}const B=b.intersect(C);if(B&&B.height>=_){const H=L.moveToBeContainedIn(O).moveToBeContainedIn(B),$=H.withWidth(M(H));return{gutterEditArea:C,icon:D,iconDirection:"right",iconRect:$,pillRect:$}}const I=L.moveToBeContainedIn(b),F=I.withWidth(M(I)),j=F,W=F.top!!g),this._indicator=cr.div({class:"inline-edits-view-gutter-indicator",onclick:()=>{const g=this._layout.get(),m=(g==null?void 0:g.icon.get())===zt.check;this._editorObs.editor.focus(),m?this.model.accept():this.model.jump()},tabIndex:0,style:{position:"absolute",overflow:"visible"}},By(this._layout).map(g=>g?[cr.div({style:{position:"absolute",background:en(vCo),borderRadius:"4px",...Pv(m=>g.read(m).gutterEditArea)}}),cr.div({class:"icon",ref:this._iconRef,onmouseenter:()=>{this._showHover()},style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map(m=>m.background),"--vscodeIconForeground":this._gutterIndicatorStyles.map(m=>m.foreground),border:this._gutterIndicatorStyles.map(m=>`1px solid ${m.border}`),boxSizing:"border-box",borderRadius:"4px",display:"flex",justifyContent:"flex-end",transition:"background-color 0.2s ease-in-out, width 0.2s ease-in-out",...Pv(m=>g.read(m).pillRect)}},[cr.div({className:"line-number",style:{lineHeight:g.map(m=>m.lineNumberRect?m.lineNumberRect.height:0),display:g.map(m=>m.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:g.map(m=>m.lineNumberRect?m.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map(m=>m.foreground)}},this._lineNumberToRender),cr.div({style:{rotate:g.map(m=>`${QCo(m.iconDirection)}deg`),transition:"rotate 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",marginRight:g.map(m=>{var v;return m.pillRect.width-m.iconRect.width-(((v=m.lineNumberRect)==null?void 0:v.width)??0)}),width:g.map(m=>m.iconRect.width)}},[g.map((m,v)=>y3(m.icon.read(v)))])])]:[])).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._indicator.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:ca(0)})),this._register(this._editorObs.editor.onMouseMove(g=>{if(this._state.get()===void 0)return;const f=this._iconRef.element.getBoundingClientRect(),k=Vs.fromLeftTopWidthHeight(f.left,f.top,f.width,f.height),A=new cu(g.event.posx,g.event.posy);this._isHoveredOverIcon.set(k.containsPoint(A),void 0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(c3(this._isHoveredOverInlineEditDebounced,g=>{g&&this.triggerAnimation()})),this._register(Oi(g=>{this._indicator.readEffect(g),this._indicator.element&&this._editorObs.editor.applyFontInfo(this._indicator.element)}))}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map(n=>n.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;const t=new xt,n=t.add(this._instantiationService.createInstance(QVe,this.model,s=>{s&&this._editorObs.editor.focus(),o==null||o.dispose()},this._editorObs).toDisposableLiveElement()),r=t.add(uA(n.element));t.add(r.onDidBlur(()=>this._focusIsInMenu.set(!1,void 0))),t.add(r.onDidFocus(()=>this._focusIsInMenu.set(!0,void 0))),t.add(Hn(()=>this._focusIsInMenu.set(!1,void 0)));const o=this._hoverService.showInstantHover({target:this._iconRef.element,content:n.element});o?(this._hoverVisible.set(!0,void 0),t.add(this._editorObs.editor.onDidScrollChange(()=>o.dispose())),t.add(o.onDispose(()=>{this._hoverVisible.set(!1,void 0),t.dispose()}))):t.dispose()}};DVe=TCo([cce(6,pm),cce(7,Yn),cce(8,vh),cce(9,Dl)],DVe);function QCo(e){switch(e){case"top":return 90;case"bottom":return-90;case"right":return 0}}var DCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},zCt=function(e,t){return function(n,r){t(n,r,e)}},Ck;(function(e){e.FirstTime="firstTime",e.SecondTime="secondTime",e.Active="active"})(Ck||(Ck={}));let BVe=class extends ft{constructor(t,n,r,o,s,a){super(),this._host=t,this._model=n,this._indicator=r,this._collapsedView=o,this._storageService=s,this._configurationService=a,this._disposables=this._register(new ts),this._setupDone=Ti({name:"setupDone"},!1),this._activeCompletionId=Rt(l=>{const d=this._model.read(l);if(!d||!this._setupDone.read(l))return;const u=this._indicator.read(l);if(!(!u||!u.isVisible.read(l)))return d.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===Ck.Active)return;const t=new xt;let n=!1,r=!1,o=0,s=0;return t.add(Sdo(this._activeCompletionId,async(a,l,d,u)=>{var g,m;if(a===void 0)return;let h=this.getNewUserType();switch(h){case Ck.FirstTime:{(o++>=5||n)&&(h=Ck.SecondTime,this.setNewUserType(h));break}case Ck.SecondTime:{s++>=3&&r&&(h=Ck.Active,this.setNewUserType(h));break}}switch(h){case Ck.FirstTime:{for(let v=0;v<3&&!u.isCancellationRequested;v++)await((g=this._indicator.get())==null?void 0:g.triggerAnimation()),await Cy(500);break}case Ck.SecondTime:{(m=this._indicator.get())==null||m.triggerAnimation();break}}})),t.add(Oi(a=>{this._collapsedView.isVisible.read(a)&&this.getNewUserType()!==Ck.Active&&this._collapsedView.triggerAnimation()})),t.add(Ef((a,l)=>{const d=this._indicator.read(a);d&&l.add(c3(d.isHoveredOverIcon,async u=>{u&&(n=!0)}))})),t.add(Ef((a,l)=>{const d=this._host.read(a);d&&l.add(d.onDidAccept(()=>{r=!0}))})),t}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,Ck.FirstTime)}setNewUserType(t){switch(t){case Ck.FirstTime:throw new ui("UserKind should not be set to first time");case Ck.SecondTime:break;case Ck.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",t,-1,0)}_initializeDebugSetting(){const t="editor.inlineSuggest.edits.resetNewUserExperience";return this._configurationService.getValue(t)&&this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(t)&&this._configurationService.getValue(t)&&(this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience())})}};BVe=DCo([zCt(4,Bg),zCt(5,ar)],BVe);var BCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},RCo=function(e,t){return function(n,r){t(n,r,e)}};let RVe=class extends ft{constructor(t,n,r){super(),this._editor=t,this._edit=n,this._accessibilityService=r,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._iconRef=cr.ref(),this.isHovered=ca(!1),this._editorObs=hl(this._editor);const s=this._edit.map(u=>(u==null?void 0:u.edit.replacements[0])??null).map(u=>u?IS(u,this._editor.getModel()).range.getStartPosition():null),a=this._editorObs.observePosition(s,this._store),l=Rt(u=>{const h=a.read(u);if(!h)return null;const g=this._editorObs.layoutInfoContentLeft.read(u),m=this._editorObs.scrollLeft.read(u);return new cu(g+h.x-m,h.y)}),d=cr.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(l)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:d,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:ca(0)})),this.isVisible=this._edit.map((u,h)=>!!u&&l.read(h)!==null)}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:.2,transform:"translateY(1px)"},{offset:.36,transform:"translateY(-1px)"},{offset:.52,transform:"translateY(1px)"},{offset:.68,transform:"translateY(-1px)"},{offset:.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2e3}).finished}getCollapsedIndicator(t){const n=this._editorObs.layoutInfoContentLeft,r=t.map((s,a)=>s?s.deltaX(-n.read(a)):null),o=this.createIconPath(r);return cr.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Pv(s=>jnt(this._editorObs).read(s)),overflow:"hidden",pointerEvents:"none"}},[cr.svgElem("path",{class:"collapsedViewPath",d:o,fill:en(_N)})])}createIconPath(t){return t.map(s=>{if(!s)return new TVe().build();const a=s.deltaX(-6/2).deltaY(-1),l=a.deltaX(6),d=a.deltaY(1),u=l.deltaY(1),h=d.deltaX(6/2).deltaY(3);return new TVe().moveTo(a).lineTo(l).lineTo(u).lineTo(h).lineTo(d).lineTo(a).build()})}};RVe=BCo([RCo(2,vh)],RVe);var ICo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},HCt=function(e,t){return function(n,r){t(n,r,e)}};const dce=14,Fxe=0,ZC=4,uce=4,$Ct=2;let IVe=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._languageService=s,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._isHovered=Ti(this,!1),this.isHovered=this._isHovered,this._viewRef=cr.ref(),this._editorObs=hl(this._editor);const a=r.map((h,g)=>{let m;switch(h){case wf.Inactive:m=bIn;break;case wf.Jump:m=AIn;break;case wf.Accept:m=OIn;break}return{border:gv(m,o).read(g).toString(),background:en(Oc)}}),l=n.map(h=>h?this.getState(h):void 0),d=l.map(h=>h?this.getRendering(h,a):void 0);this.minEditorScrollHeight=Rt(this,h=>{const g=l.read(h);return g?g.rect.read(h).bottom+this._editor.getScrollTop():0});const u=cr.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[d]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:u.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:vL(this,(h,g)=>{const m=l.read(h);if(!m)return g??0;const v=m.rect.map(f=>f.right).read(h)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(h)+ZC-this._editorObs.layoutInfoContentLeft.read(h);return Math.max(g??0,v)}).recomputeInitiallyAndOnChange(this._store)})),this._register(Oi(h=>{if(!d.read(h)){this._isHovered.set(!1,void 0);return}this._isHovered.set(u.isHovered.read(h),void 0)}))}fitsInsideViewport(t,n,r){const o=this._editorObs.layoutInfoWidth.read(r),s=this._editorObs.layoutInfoContentLeft.read(r),a=this._editor.getLayoutInfo().verticalScrollbarWidth,l=this._editorObs.layoutInfoMinimap.read(r).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(r).minimapWidth:0,d=y9(this._editorObs,t,void 0),u=Unt(n,this._editor,this._editor.getModel()),h=ZC+dce;return d+u+h{var b;const d=t.range.startLineNumber,u=t.range.endLineNumber,h=t.range.startColumn,g=t.range.endColumn,m=((b=this._editor.getModel())==null?void 0:b.getLineCount())??0,v=y9(this._editorObs,new Ei(d,d+1),l),f=d+1<=m?y9(this._editorObs,new Ei(d+1,d+2),l):void 0,k=d-1>=1?y9(this._editorObs,new Ei(d-1,d),l):void 0,A=this._editor.getOffsetForColumn(d,h),p=this._editor.getOffsetForColumn(u,g);return{lineWidth:v,lineWidthBelow:f,lineWidthAbove:k,startContentLeftOffset:A,endContentLeftOffset:p}}),r=t.range.startLineNumber,o=t.range.endLineNumber,s=this.fitsInsideViewport(new Ei(r,o+1),t.content,void 0);return{rect:Rt(this,l=>{const d=this._editorObs.getOption(59).read(l).typicalHalfwidthCharacterWidth,{lineWidth:u,lineWidthBelow:h,lineWidthAbove:g,startContentLeftOffset:m,endContentLeftOffset:v}=n.read(l),f=this._editorObs.layoutInfoContentLeft.read(l),k=this._editorObs.observeLineHeightForLine(r).recomputeInitiallyAndOnChange(l.store).read(l),A=this._editorObs.scrollTop.read(l),p=this._editorObs.scrollLeft.read(l);let b;r===o&&v+5*d>=u&&s?b="end":h!==void 0&&h+dce-uce-ZCu.withMargin(0,ZC));return cr.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Pv(u=>l.read(u)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:n.map(u=>`1px solid ${u.border}`),borderRadius:"4px",backgroundColor:n.map(u=>u.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:u=>{u.preventDefault()},onclick:u=>{this._onDidClick.fire(new Xh(ii(u),u))}},[r])}};IVe=ICo([HCt(3,Dl),HCt(4,nc)],IVe);const MCo=0,PCo=0,Nxe=1,FCo=1,NCo=3,Uxe=4;class UCo extends ft{constructor(t,n,r,o){super(),this._editor=t,this._edit=n,this._uiState=r,this._tabAction=o,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._display=Rt(this,l=>this._uiState.read(l)?"block":"none"),this._editorMaxContentWidthInRange=Rt(this,l=>{const d=this._originalDisplayRange.read(l);return d?(this._editorObs.versionId.read(l),vL(this,(u,h)=>{const g=y9(this._editorObs,d,u);return Math.max(g,h??0)})):ca(0)}).map((l,d)=>l.read(d)),this._maxPrefixTrim=Rt(this,l=>{const d=this._uiState.read(l);return d?Nnt(d.deletions,d.originalRange,[],this._editor):{prefixTrim:0,prefixLeftOffset:0}}),this._editorLayoutInfo=Rt(this,l=>{const d=this._edit.read(l);if(!d||!this._uiState.read(l))return null;const h=this._editorObs.layoutInfo.read(l),g=this._editorObs.scrollLeft.read(l),m=this._editorObs.getOption(59).map(w=>w.typicalHalfwidthCharacterWidth).read(l),v=h.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(l),m)-g,f=d.originalLineRange,k=this._originalVerticalStartPosition.read(l)??this._editor.getTopForLineNumber(f.startLineNumber)-this._editorObs.scrollTop.read(l),A=this._originalVerticalEndPosition.read(l)??this._editor.getTopForLineNumber(f.endLineNumberExclusive)-this._editorObs.scrollTop.read(l),p=h.contentLeft+this._maxPrefixTrim.read(l).prefixLeftOffset-g;return v<=p?null:{codeRect:Vs.fromLeftTopRightBottom(p,k,v,A).withMargin(PCo,MCo),contentLeft:h.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=cr.div({style:{pointerEvents:"none"}},Rt(this,l=>{const d=By(this._editorLayoutInfo).read(l);if(!d)return;const u=d.map(v=>Vs.fromLeftTopRightBottom(v.contentLeft-Uxe-Nxe,v.codeRect.top,v.contentLeft,v.codeRect.bottom)),h=Rt(this,v=>{const f=d.read(v).codeRect,k=u.read(v);return f.intersectHorizontal(new Xn(k.left,Number.MAX_SAFE_INTEGER))}),g=this._uiState.map(v=>v!=null&&v.inDiffEditor?NCo:FCo).read(l),m=h.map(v=>v.withMargin(g,g));return[cr.div({class:"originalSeparatorDeletion",style:{...m.read(l).toStyles(),borderRadius:`${Uxe}px`,border:`${Nxe+g}px solid ${en(Oc)}`,boxSizing:"border-box"}}),cr.div({class:"originalOverlayDeletion",style:{...h.read(l).toStyles(),borderRadius:`${Uxe}px`,border:j3e(this._tabAction).map(v=>`${Nxe}px solid ${en(v)}`),boxSizing:"border-box",backgroundColor:en(WZ)}}),cr.div({class:"originalOverlayHiderDeletion",style:{...u.read(l).toStyles(),backgroundColor:en(Oc)}})]})).keepUpdated(this._store),this._nonOverflowView=cr.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=ca(!1),this._editorObs=hl(this._editor);const s=Rt(this,l=>{const d=this._edit.read(l);return d?new it(d.originalLineRange.startLineNumber,1):null}),a=Rt(this,l=>{const d=this._edit.read(l);return d?new it(d.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map(l=>l==null?void 0:l.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(s,this._store).map(l=>l==null?void 0:l.y),this._originalVerticalEndPosition=this._editorObs.observePosition(a,this._store).map(l=>l==null?void 0:l.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:Rt(this,l=>{const d=this._editorLayoutInfo.read(l);return d===null?0:d.codeRect.width})}))}}var jCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},XCt=function(e,t){return function(n,r){t(n,r,e)}};const DX=1,WCo=1,VCo=3,jxe=4;let MVe=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._input=n,this._tabAction=r,this._languageService=s,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._state=Rt(this,a=>{const l=this._input.read(a);if(!l)return;const d=this._editor.getModel(),u=d.getEOL();if(l.startColumn===1&&l.lineNumber>1&&d.getLineLength(l.lineNumber)!==0&&l.text.endsWith(u)&&!l.text.startsWith(u)){const h=d.getLineLength(l.lineNumber-1)+1;return{lineNumber:l.lineNumber-1,column:h,text:u+l.text.slice(0,-u.length)}}return{lineNumber:l.lineNumber,column:l.startColumn,text:l.text}}),this._trimVertically=Rt(this,a=>{const l=this._state.read(a),d=l==null?void 0:l.text;if(!d||d.trim()==="")return{topOffset:0,bottomOffset:0,linesTop:0,linesBottom:0};const u=this._editor.getLineHeightForPosition(new it(l.lineNumber,1)),h=this._editor.getModel().getEOL();let g=0,m=0,v=0;for(;vv&&d.endsWith(h,f);f-=h.length)m+=1;return{topOffset:g*u,bottomOffset:m*u,linesTop:g,linesBottom:m}}),this._maxPrefixTrim=Rt(this,a=>{const l=this._state.read(a);if(!l)return{prefixLeftOffset:0,prefixTrim:0};const d=this._editor.getModel(),u=d.getEOL(),h=this._trimVertically.read(a),g=l.text.split(u),m=g.slice(h.linesTop,g.length-h.linesBottom);h.linesTop===0&&(m[0]=d.getLineContent(l.lineNumber)+m[0]);const v=new Ei(l.lineNumber,l.lineNumber+(h.linesTop>0?0:1));return Nnt([],v,m,this._editor)}),this._ghostText=Rt(a=>{const l=this._state.read(a),d=this._maxPrefixTrim.read(a);if(!l)return;const h=this._editor.getModel().getEOL(),m=l.text.split(h).map((v,f)=>new AD(new Ee(f+1,f===0?1:d.prefixTrim+1,f+1,v.length+1),"modified-background",0));return new nee(l.lineNumber,[new M0e(l.column,l.text,!1,m)])}),this._display=Rt(this,a=>this._state.read(a)?"block":"none"),this._editorMaxContentWidthInRange=Rt(this,a=>{const l=this._state.read(a);if(!l)return 0;this._editorObs.versionId.read(a);const d=this._editor.getModel(),u=d.getEOL(),h=l.text.startsWith(u)?"":d.getValueInRange(new Ee(l.lineNumber,1,l.lineNumber,l.column)),g=d.getValueInRange(new Ee(l.lineNumber,l.column,l.lineNumber,d.getLineLength(l.lineNumber)+1)),v=(h+l.text+g).split(u),f=o8.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),k=v.map(A=>{var w;const p=(w=d.tokenization.tokenizeLinesAt(l.lineNumber,[A]))==null?void 0:w[0];let b;return p?b=e8.fromLineTokens(p).toLineTokens(A,this._languageService.languageIdCodec):b=uc.createEmpty(A,this._languageService.languageIdCodec),$ie(new Xie([b]),f,[],tn("div"),!0).minWidthInPx});return Math.max(...k)}),this.startLineOffset=this._trimVertically.map(a=>a.topOffset),this.originalLines=this._state.map(a=>a?new Ei(a.lineNumber,Math.min(a.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=Rt(this,a=>{this._ghostText.read(a);const l=this._state.read(a);if(!l)return null;this._editorObs.observePosition(Ti(this,new it(l.lineNumber,l.column)),a.store).read(a);const d=this._editorObs.layoutInfo.read(a),u=this._editorObs.scrollLeft.read(a),h=this._editorObs.layoutInfoVerticalScrollbarWidth.read(a),g=d.contentLeft+this._editorMaxContentWidthInRange.read(a)-u,m=this._maxPrefixTrim.read(a).prefixLeftOffset??0,v=d.contentLeft+m-u;if(g<=v)return null;const{topOffset:f,bottomOffset:k}=this._trimVertically.read(a),A=this._editorObs.scrollTop.read(a),p=this._ghostTextView.height.read(a)-f-k,b=this._editor.getTopForLineNumber(l.lineNumber)-A+f,w=b+p,O=new Vs(v,b,g,w);return{overlay:O,startsAtContentLeft:m===0,contentLeft:d.contentLeft,minContentWidthRequired:m+O.width+h}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=cr.div({style:{pointerEvents:"none"}},Rt(this,a=>{const l=By(this._overlayLayout).read(a);if(!l)return;const d=l.map(m=>Vs.fromLeftTopRightBottom(m.contentLeft-jxe-DX,m.overlay.top,m.contentLeft,m.overlay.bottom)).read(a),u=this._input.map(m=>m!=null&&m.inDiffEditor?VCo:WCo).read(a),h=l.map(m=>m.overlay.withMargin(0,DX,0,m.startsAtContentLeft?0:DX).intersectHorizontal(new Xn(d.left,Number.MAX_SAFE_INTEGER))),g=h.map(m=>m.withMargin(u,u));return[cr.div({class:"originalUnderlayInsertion",style:{...g.read(a).toStyles(),borderRadius:jxe,border:`${DX+u}px solid ${en(Oc)}`,boxSizing:"border-box"}}),cr.div({class:"originalOverlayInsertion",style:{...h.read(a).toStyles(),borderRadius:jxe,border:see(this._tabAction).map(m=>`${DX}px solid ${en(m)}`),boxSizing:"border-box",backgroundColor:en(vIn)}}),cr.div({class:"originalOverlayHiderInsertion",style:{...d.toStyles(),backgroundColor:en(Oc)}})]})).keepUpdated(this._store),this._view=cr.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=hl(this._editor),this._ghostTextView=this._register(o.createInstance(ree,this._editor,{ghostText:this._ghostText,minReservedLineCount:ca(0),targetTextModel:this._editorObs.model.map(a=>a??void 0),warning:ca(void 0),handleInlineCompletionShown:ca(()=>{})},Ti(this,{syntaxHighlightingEnabled:!0,extraClasses:["inline-edit"]}),!0,!0)),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick(a=>{this._onDidClick.fire(a)})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:Rt(this,a=>{const l=this._overlayLayout.read(a);return l===null?0:l.minContentWidthRequired})}))}};MVe=jCo([XCt(3,Yn),XCt(4,nc)],MVe);var zCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},GCt=function(e,t){return function(n,r){t(n,r,e)}};let PVe=class extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._edit=n,this._isInDiffEditor=r,this._tabAction=o,this._languageService=s,this._themeService=a,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((l,d)=>l?Nnt(l.replacements.flatMap(u=>[u.originalRange,u.modifiedRange]),l.originalRange,l.modifiedLines,this._editor.editor,d):void 0),this._modifiedLineElements=Rt(this,l=>{var A;const d=[];let u=0;const h=this._maxPrefixTrim.read(l),g=this._edit.read(l);if(!g||!h)return;const m=h.prefixTrim,v=HCo(g.replacements.map(p=>p.modifiedRange)).map(p=>new Ee(p.startLineNumber,p.startColumn-m,p.endLineNumber,p.endColumn-m)),f=this._editor.model.get(),k=g.modifiedRange.startLineNumber;for(let p=0;pE.startLineNumber===w)){const E=Math.min(L.endColumn,O.length+1);_.push(new AD(new Ee(1,L.startColumn,1,E),"inlineCompletions-modified-bubble",0))}const S=$ie(new Xie([C]),o8.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),_,b,!0);this._editor.getOption(59).read(l),u=Math.max(u,S.minWidthInPx),d.push(b)}return{lines:d,requiredWidth:u}}),this._layout=Rt(this,l=>{const d=this._modifiedLineElements.read(l),u=this._maxPrefixTrim.read(l),h=this._edit.read(l);if(!d||!u||!h)return;const{prefixLeftOffset:g}=u,{requiredWidth:m}=d,v=this._editor.observeLineHeightsForLineRange(h.originalRange).read(l),f=(()=>{const B=v.slice(0,h.modifiedRange.length);for(;B.lengththis._editor.editor.getOffsetForColumn(B,O.getLineMaxColumn(B))-g),C=Math.max(...y,m),_=h.originalRange.startLineNumber,S=h.originalRange.endLineNumberExclusive-1,L=this._editor.editor.getTopForLineNumber(_)-b,E=this._editor.editor.getBottomForLineNumber(S)-b,T=Vs.fromLeftTopWidthHeight(w+g,L,C,E-L),D=Vs.fromLeftTopWidthHeight(T.left,T.bottom,T.width,f.reduce((B,R)=>B+R,0)),P=Vs.hull([T,D]),Q=P.intersectVertical(new Xn(T.bottom,Number.MAX_SAFE_INTEGER)),M=new Vs(Q.left,Q.top,Q.right,Q.bottom);return{originalLinesOverlay:T,modifiedLinesOverlay:D,background:P,lowerBackground:Q,lowerText:M,modifiedLineHeights:f,minContentWidthRequired:g+C+A}}),this._viewZoneInfo=Rt(l=>{if(!this._editor.getOption(71).map(v=>v.edits.allowCodeShifting==="always").read(l))return;const u=this._layout.read(l),h=this._edit.read(l);if(!u||!h)return;const g=u.lowerBackground.height,m=h.originalRange.endLineNumberExclusive;return{height:g,lineNumber:m}}),this.minEditorScrollHeight=Rt(this,l=>{const d=By(this._layout).read(l);return!d||this._viewZoneInfo.read(l)!==void 0?0:d.read(l).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=cr.div({class:"line-replacement"},[Rt(this,l=>{const d=By(this._layout).read(l),u=this._modifiedLineElements.read(l);if(!d||!u)return[];const h=d.read(l),g=this._editor.layoutInfoContentLeft.read(l),m=this._isInDiffEditor.read(l)?3:1;u.lines.forEach((k,A)=>{k.style.width=`${h.lowerText.width}px`,k.style.height=`${h.modifiedLineHeights[A]}px`,k.style.position="relative"});const v=see(this._tabAction).read(l),f=j3e(this._tabAction).read(l);return[cr.div({style:{position:"absolute",...Pv(k=>jnt(this._editor).read(k)),overflow:"hidden",pointerEvents:"none"}},[cr.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Pv(k=>d.read(k).background.translateX(-g).withMargin(m)),borderRadius:"4px",border:`${m+1}px solid ${en(Oc)}`,boxSizing:"border-box",pointerEvents:"none"}}),cr.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Pv(k=>d.read(k).background.translateX(-g)),borderRadius:"4px",border:gv(f,this._themeService).map(k=>`1px solid ${k.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:en(WZ)}}),cr.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Pv(k=>d.read(k).lowerBackground.translateX(-g)),borderRadius:"0 0 4px 4px",background:en(Oc),boxShadow:`${en(zbe)} 0 6px 6px -6px`,border:`1px solid ${en(v)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:k=>{k.preventDefault()},onclick:k=>this._onDidClick.fire(new Xh(ii(k),k))},[cr.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:en(hCo)}})]),cr.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Pv(k=>d.read(k).lowerText.translateX(-g)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:"0 0 4px 4px",overflow:"hidden"}},[...u.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered(l=>this._isMouseOverWidget(l),this._store),this._previousViewZoneInfo=void 0,this._register(Hn(()=>this._editor.editor.changeViewZones(l=>this.removePreviousViewZone(l)))),this._register(Oto(this._viewZoneInfo,({lastValue:l,newValue:d})=>{l===d||(l==null?void 0:l.height)===(d==null?void 0:d.height)&&(l==null?void 0:l.lineNumber)===(d==null?void 0:d.lineNumber)||this._editor.editor.changeViewZones(u=>{this.removePreviousViewZone(u),d&&this.addViewZone(d,u)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:Rt(this,l=>{var d;return((d=this._layout.read(l))==null?void 0:d.minContentWidthRequired)??0}),position:ca({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(t){const n=this._layout.get();return!n||!(t.event instanceof U8)?!1:n.lowerBackground.containsPoint(new cu(t.event.relativePos.x,t.event.relativePos.y))}removePreviousViewZone(t){if(!this._previousViewZoneInfo)return;t.removeZone(this._previousViewZoneInfo.id);const n=this._editor.cursorLineNumber.get();n!==null&&n>=this._previousViewZoneInfo.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height),this._previousViewZoneInfo=void 0}addViewZone(t,n){const r=n.addZone({afterLineNumber:t.lineNumber-1,heightInPx:t.height,domNode:tn("div")});this._previousViewZoneInfo={height:t.height,lineNumber:t.lineNumber,id:r};const o=this._editor.cursorLineNumber.get();o!==null&&o>=t.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()+t.height)}};PVe=zCo([GCt(4,nc),GCt(5,Dl)],PVe);function HCo(e){const t=[];for(;e.length;){let n=e.shift();n.startLineNumber!==n.endLineNumber&&(e.push(new Ee(n.startLineNumber+1,1,n.endLineNumber,n.endColumn)),n=new Ee(n.startLineNumber,n.startColumn,n.startLineNumber,Number.MAX_SAFE_INTEGER)),t.push(n)}return t}var $Co=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},YCt=function(e,t){return function(n,r){t(n,r,e)}};const FP=0,BX=0,Gp=1,XCo=1,GCo=3,qC=4,Wxe=20,ZCt=12;let X0e=class extends ft{static fitsInsideViewport(t,n,r,o){const s=hl(t),a=s.layoutInfoWidth.read(o),l=s.layoutInfoContentLeft.read(o),d=t.getLayoutInfo().verticalScrollbarWidth,u=s.layoutInfoMinimap.read(o).minimapLeft!==0?s.layoutInfoMinimap.read(o).minimapWidth:0,h=y9(s,r.displayRange,void 0),g=r.lineEdit.newLines.reduce((f,k)=>Math.max(f,Unt(k,t,n)),0),m=Wxe,v=ZCt+2*Gp;return h+g+m+vthis._uiState.read(u)?"block":"none"),this.previewRef=cr.ref();const d=this._uiState.map(u=>u!=null&&u.isInDiffEditor?GCo:XCo);this._editorContainer=cr.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:u=>{u.preventDefault()},onclick:u=>{this._onDidClick.fire(new Xh(ii(u),u))}},[cr.div({class:"preview",style:{pointerEvents:"none"},ref:this.previewRef})]).keepUpdated(this._store),this.isHovered=this._editorContainer.didMouseMoveDuringHover,this.previewEditor=this._register(this._instantiationService.createInstance(X8,this.previewRef.element,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},rulers:[],padding:{top:0,bottom:0},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[Ns.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=hl(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=Rt(this,u=>{this._editorContainer.readEffect(u),this._previewEditorObs.model.read(u),this._display.read(u),this._nonOverflowView&&(this._nonOverflowView.element.style.display=this._display.read(u));const h=this._uiState.read(u),g=this._edit.read(u);if(!h||!g)return;const m=g.originalLineRange,v=[];m.startLineNumber>1&&v.push(new Ee(1,1,m.startLineNumber-1,1)),m.startLineNumber+h.newTextLineCount{f.forEach(p=>A.removeZone(p)),k>0&&this._activeViewZones.push(A.addZone({afterLineNumber:m.startLineNumber+h.newTextLineCount-1,heightInLines:k,showInHiddenAreas:!0,domNode:tn("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=Rt(this,u=>{const h=this._edit.read(u);return h?(this._updatePreviewEditor.read(u),y9(this._previewEditorObs,h.modifiedLineRange,u)):0}),this._cursorPosIfTouchesEdit=Rt(this,u=>{const h=this._editorObs.cursorPosition.read(u),g=this._edit.read(u);if(!(!g||!h))return g.modifiedLineRange.contains(h.lineNumber)?h:void 0}),this._originalStartPosition=Rt(this,u=>{const h=this._edit.read(u);return h?new it(h.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=Rt(this,u=>{const h=this._edit.read(u);return h?new it(h.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map(u=>u==null?void 0:u.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map(u=>u==null?void 0:u.y),this._originalDisplayRange=this._edit.map(u=>u==null?void 0:u.displayRange),this._editorMaxContentWidthInRange=Rt(this,u=>{const h=this._originalDisplayRange.read(u);return h?(this._editorObs.versionId.read(u),vL(this,(g,m)=>{const v=y9(this._editorObs,h,g);return Math.max(v,m??0)})):ca(0)}).map((u,h)=>u.read(h)),this._previewEditorLayoutInfo=Rt(this,u=>{const h=this._edit.read(u);if(!h||!this._uiState.read(u))return null;const m=h.originalLineRange,v=this._editorObs.scrollLeft.read(u),f=this._editorMaxContentWidthInRange.read(u),k=this._editorObs.layoutInfo.read(u),A=this._previewEditorWidth.read(u),p=k.contentWidth-k.verticalScrollbarWidth,b=this._editor.getContainerDomNode().getBoundingClientRect(),w=k.contentLeft+k.contentWidth+b.left,O=ii(this._editor.getContainerDomNode()).innerWidth-w,y=ii(this._editor.getContainerDomNode()).innerWidth-b.right,C=Math.min(k.contentWidth*.3,A,100),_=0,S=_+O,L=this._cursorPosIfTouchesEdit.read(u),E=Math.max(p+v-_-Math.max(0,C-S),Math.min(L?bCo(this._editorObs,L,u)+50:0,p+v)),T=Math.min(f+Wxe,E),D=f+Wxe+A+70,P=E-T;let Q,M;T>v?(Q=0,M=k.contentLeft+T-v):(Q=v-T,M=k.contentLeft);const B=this._originalVerticalStartPosition.read(u)??this._editor.getTopForLineNumber(m.startLineNumber)-this._editorObs.scrollTop.read(u),R=this._originalVerticalEndPosition.read(u)??this._editor.getBottomForLineNumber(m.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(u),I=k.contentLeft-v;let F=Vs.fromLeftTopRightBottom(I,B,M,R);const j=F.height===0;j||(F=F.withMargin(BX,FP));const H=this._previewEditorObs.observeLineHeightsForLineRange(h.modifiedLineRange).read(u).reduce((se,le)=>se+le,0),$=R-B,G=Math.max($,H),q=P===0,re=0,J=Math.min(A+ZCt,y+k.width-k.contentLeft-re);let oe=Vs.fromLeftTopWidthHeight(F.right+re,B,J,G);return j?oe=oe.withMargin(BX,FP).translateY(BX):oe=oe.withMargin(BX,FP).translateX(FP+Gp),{codeRect:F,editRect:oe,codeScrollLeft:v,contentLeft:k.contentLeft,isInsertion:j,maxContentWidth:D,shouldShowShadow:q,desiredPreviewEditorScrollLeft:Q,previewEditorWidth:J}}),this._stickyScrollController=fp.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Ko(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):ca(0),this._shouldOverflow=Rt(this,u=>!1),this._originalBackgroundColor=Ko(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(WZ)??Dt.transparent),this._backgroundSvg=cr.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[cr.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:Rt(this,u=>{const h=this._previewEditorLayoutInfo.read(u);if(!(!h||this._originalBackgroundColor.read(u).isTransparent()))return new TVe().moveTo(h.codeRect.getRightTop()).lineTo(h.codeRect.getRightTop().deltaX(1e3)).lineTo(h.codeRect.getRightBottom().deltaX(1e3)).lineTo(h.codeRect.getRightBottom()).build()}),style:{fill:A7n(Oc,"transparent")}})]).keepUpdated(this._store),this._originalOverlay=cr.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map(u=>u!=null&&u.isInsertion?"none":"block")}},Rt(this,u=>{const h=By(this._previewEditorLayoutInfo).read(u);if(!h)return;const g=d.read(u),m=j3e(this._tabAction).map(C=>`${Gp}px solid ${en(C)}`),v=`${Gp+g}px solid ${en(Oc)}`,f=h.read(u).codeScrollLeft!==0,k=h.map(C=>C.codeRect.bottomVs.fromLeftTopRightBottom(C.contentLeft-qC-Gp,C.codeRect.top,C.contentLeft,C.codeRect.bottom+A)).read(u),b=new Xn(p.left,Number.MAX_SAFE_INTEGER),w=h.map(C=>C.codeRect.intersectHorizontal(b)),O=w.map(C=>C.withMargin(g,0,g,g).intersectHorizontal(b)),y=w.map(C=>Vs.fromLeftTopWidthHeight(C.right-A+Gp,C.bottom-Gp,A,A).intersectHorizontal(b));return[cr.div({class:"originalSeparatorSideBySide",style:{...O.read(u).toStyles(),boxSizing:"border-box",borderRadius:`${qC}px 0 0 ${qC}px`,borderTop:v,borderBottom:v,borderLeft:f?"none":v}}),cr.div({class:"originalOverlaySideBySide",style:{...w.read(u).toStyles(),boxSizing:"border-box",borderRadius:`${qC}px 0 0 ${qC}px`,borderTop:m,borderBottom:m,borderLeft:f?"none":m,backgroundColor:en(WZ)}}),cr.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:k.map(C=>C?"block":"none"),...y.read(u).toStyles()}},[cr.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:gv(WZ,this._themeService).map(C=>C.toString())}}),cr.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:m,borderRight:m,borderRadius:"0 100% 0 0",backgroundColor:en(Oc)}})]),cr.div({class:"originalOverlaySideBySideHider",style:{...p.toStyles(),backgroundColor:en(Oc)}})]})).keepUpdated(this._store),this._modifiedOverlay=cr.div({style:{pointerEvents:"none"}},Rt(this,u=>{const h=By(this._previewEditorLayoutInfo).read(u);if(!h)return;const g=h.map(w=>w.codeRect.bottom`0 ${qC}px ${qC}px ${w?qC:0}px`),f=gv(see(this._tabAction),this._themeService).map(w=>`1px solid ${w.toString()}`),k=`${Gp+m}px solid ${en(Oc)}`,A=h.map(w=>w.editRect.withMargin(0,Gp)),p=A.map(w=>w.withMargin(m,m,m,0)),b=Rt(this,w=>{const O=A.read(w),y=h.read(w);return!y.isInsertion||y.contentLeft>=O.left?Vs.fromLeftTopWidthHeight(O.left,O.top,0,0):new Vs(y.contentLeft,O.top,O.left,O.top+Gp*2)});return[cr.div({class:"modifiedInsertionSideBySide",style:{...b.read(u).toStyles(),backgroundColor:see(this._tabAction).map(w=>en(w))}}),cr.div({class:"modifiedSeparatorSideBySide",style:{...p.read(u).toStyles(),borderRadius:v,borderTop:k,borderBottom:k,borderRight:k,boxSizing:"border-box"}}),cr.div({class:"modifiedOverlaySideBySide",style:{...A.read(u).toStyles(),borderRadius:v,border:f,boxSizing:"border-box",backgroundColor:en(vIn)}})]})).keepUpdated(this._store),this._nonOverflowView=cr.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,Rt(this,u=>this._shouldOverflow.read(u)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:Rt(this,u=>{var g;const h=(g=this._previewEditorLayoutInfo.read(u))==null?void 0:g.maxContentWidth;return h===void 0?0:h})})),this.previewEditor.setModel(this._previewTextModel),this._register(Oi(u=>{const h=this._previewEditorLayoutInfo.read(u);if(!h)return;const g=h.editRect.withMargin(-BX,-FP);this.previewEditor.layout({height:g.height,width:h.previewEditorWidth+15}),this._editorContainer.element.style.top=`${g.top}px`,this._editorContainer.element.style.left=`${g.left}px`,this._editorContainer.element.style.width=`${h.previewEditorWidth+FP}px`})),this._register(Oi(u=>{const h=this._previewEditorLayoutInfo.read(u);h&&this._previewEditorObs.editor.setScrollLeft(h.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};X0e=$Co([YCt(5,Yn),YCt(6,Dl)],X0e);var YCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},ZCo=function(e,t){return function(n,r){t(n,r,e)}};const KC=1;var Xj;let SN=(Xj=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._edit=n,this._tabAction=r,this._languageService=o,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(ca(this._edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(ca(this._edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._hoverableElement=Ti(this,null),this.isHovered=this._hoverableElement.map((a,l)=>(a==null?void 0:a.didMouseMoveDuringHover.read(l))??!1),this._renderTextEffect=Rt(this,a=>{var f;const l=this._editor.model.get(),d=l.getLineContent(this._edit.range.startLineNumber),u=ch.replace(new Xn(this._edit.range.startColumn-1,this._edit.range.endColumn-1),this._edit.text),h=u.replace(d),g=(f=l.tokenization.tokenizeLinesAt(this._edit.range.startLineNumber,[h]))==null?void 0:f[0];let m;g?m=e8.fromLineTokens(g).slice(u.getRangeAfterReplace()).toLineTokens(this._edit.text,this._languageService.languageIdCodec):m=uc.createEmpty(this._edit.text,this._languageService.languageIdCodec);const v=$ie(new Xie([m]),o8.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${v.minWidthInPx}px`});const s=this._editor.observeLineHeightForPosition(this._edit.range.getStartPosition());this._layout=Rt(this,a=>{this._renderTextEffect.read(a);const l=this._start.read(a),d=this._end.read(a);if(!l||!d||l.x>d.x||l.y>d.y)return;const u=s.read(a),h=this._editor.scrollLeft.read(a),g=this._editor.getOption(59).read(a).typicalHalfwidthCharacterWidth,m=3*g,v=4,f=new cu(m,v),k=Vs.fromPoints(l,d).withHeight(u).translateX(-h),A=Vs.fromPointSize(k.getLeftBottom().add(f),new cu(this._edit.text.length*g,k.height)),p=A.withLeft(k.left);return{originalLine:k,modifiedLine:A,lowerBackground:p,lineHeight:u}}),this.minEditorScrollHeight=Rt(this,a=>{const l=By(this._layout).read(a);return l?l.read(a).modifiedLine.bottom+KC+this._editor.editor.getScrollTop():0}),this._root=cr.div({class:"word-replacement"},[Rt(this,a=>{const l=By(this._layout).read(a);if(!l)return[];const d=j3e(this._tabAction).map(h=>en(h)).read(a),u=see(this._tabAction).map(h=>en(h)).read(a);return[cr.div({style:{position:"absolute",...Pv(h=>jnt(this._editor).read(h)),overflow:"hidden",pointerEvents:"none"}},[cr.div({style:{position:"absolute",...Pv(h=>l.read(h).lowerBackground.withMargin(KC,2*KC,KC,0)),background:en(Oc),cursor:"pointer",pointerEvents:"auto"},onmousedown:h=>{h.preventDefault()},onmouseup:h=>this._onDidClick.fire(new Xh(ii(h),h)),obsRef:h=>{this._hoverableElement.set(h,void 0)}}),cr.div({style:{position:"absolute",...Pv(h=>l.read(h).modifiedLine.withMargin(KC,2*KC)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",boxSizing:"border-box",borderRadius:"4px",border:`${KC}px solid ${u}`,background:en(fCo),display:"flex",justifyContent:"center",alignItems:"center",outline:`2px solid ${en(Oc)}`}},[this._line]),cr.div({style:{position:"absolute",...Pv(h=>l.read(h).originalLine.withMargin(KC)),boxSizing:"border-box",borderRadius:"4px",border:`${KC}px solid ${d}`,background:en(uCo),pointerEvents:"none"}},[]),cr.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:l.map(h=>h.modifiedLine.left-16),top:l.map(h=>h.modifiedLine.top+Math.round((h.lineHeight-14-5)/2))}},[cr.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:en(c3t)}),cr.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:en(c3t)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:ca(0),position:ca({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}},Xj.MAX_LENGTH=100,Xj);SN=YCo([ZCo(3,nc)],SN);class qCo extends ft{constructor(t,n,r){super(),this._originalEditor=t,this._state=n,this._modifiedTextModel=r,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this.isHovered=hl(this._originalEditor).isTargetHovered(s=>{var a;return s.target.type===6&&((a=s.target.detail.injectedText)==null?void 0:a.options.attachedData)instanceof Vxe&&s.target.detail.injectedText.options.attachedData.owner===this},this._store),this._tokenizationFinished=e_o(this._modifiedTextModel),this._decorations=Rt(this,s=>{var C,_;const a=this._state.read(s);if(!a)return;const l=a.modifiedText,d=a.mode==="insertionInline",u=a.diff.length===1&&((C=a.diff[0].innerChanges)==null?void 0:C.length)===1,h=!0,g=[],m=[],v=Gi.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),f=Gi.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),k=Gi.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),A=Gi.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),p=Gi.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),b=Gi.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),w=Gi.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),O=a.mode!=="sideBySide"&&a.mode!=="deletion"&&a.mode!=="insertionInline"&&a.mode!=="lineReplacement",y=a.mode==="lineReplacement";for(const S of a.diff)if(O&&(S.original.isEmpty||g.push({range:S.original.toInclusiveRange(),options:f}),S.modified.isEmpty||m.push({range:S.modified.toInclusiveRange(),options:v})),S.modified.isEmpty||S.original.isEmpty)S.original.isEmpty||g.push({range:S.original.toInclusiveRange(),options:k}),S.modified.isEmpty||m.push({range:S.modified.toInclusiveRange(),options:A});else{const L=d&&KCo(S);for(const E of S.innerChanges||[]){if(S.original.contains(E.originalRange.startLineNumber)&&!(y&&E.originalRange.isEmpty())){const T=(_=this._originalEditor.getModel())==null?void 0:_.getValueInRange(E.originalRange,1);g.push({range:E.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Mxe("inlineCompletions-char-delete",E.originalRange.isSingleLine()&&a.mode==="insertionInline"&&"single-line-inline",E.originalRange.isEmpty()&&"empty",(E.originalRange.isEmpty()&&u||a.mode==="deletion"&&T===` +`,o=new bf().appendCodeblock("empty",a),r=`Provider: ${t.provider._debugDisplayName}`}if(!n&&!Fnt(t)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),r){const a=r.length>1e5?`${r.substr(0,1e5)}…`:r;this._type.textContent=a,this._type.title=a,k0(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(a))}else uh(this._type),this._type.title="",tm(this._type),this.domNode.classList.add("no-type");if(uh(this._docs),typeof o=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=o;else if(o){this._docs.classList.add("markdown-docs"),uh(this._docs);const a=this._markdownRendererService.render(o,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(a.element),this._renderDisposeable.add(a)}this.domNode.classList.toggle("detail-and-doc",!!r&&!!o),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=a=>{a.preventDefault(),a.stopPropagation()},this._close.onclick=a=>{a.preventDefault(),a.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(t,n){const r=new cs(t,n);cs.equals(r,this._size)||(this._size=r,Nto(this.domNode,t,n)),this._scrollbar.scanDomNode()}scrollDown(t=8){this._body.scrollTop+=t}scrollUp(t=8){this._body.scrollTop-=t}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};pVe=Dyo([BCt(1,Dl),BCt(2,Cp)],pVe);class Byo{constructor(t,n){this.widget=t,this._editor=n,this.allowEditorOverflow=!0,this._disposables=new xt,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new Ytt,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let r,o,s=0,a=0;this._disposables.add(this._resizable.onDidWillResize(()=>{r=this._topLeft,o=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(l=>{if(r&&o){this.widget.layout(l.dimension.width,l.dimension.height);let d=!1;l.west&&(a=o.width-l.dimension.width,d=!0),l.north&&(s=o.height-l.dimension.height,d=!0),d&&this._applyTopLeft({top:r.top+s,left:r.left+a})}l.done&&(r=void 0,o=void 0,s=0,a=0,this._userSize=l.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(t=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),t&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(t,n){const r=t.getBoundingClientRect();this._anchorBox=r,this._preferAlignAtTop=n,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,n)}_placeAtAnchor(t,n,r){const o=O6(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),a=new cs(220,2*s.lineHeight),l=t.top,d=function(){const y=o.width-(t.left+t.width+s.borderWidth+s.horizontalPadding),C=-s.borderWidth+t.left+t.width,_=new cs(y,o.height-t.top-s.borderHeight-s.verticalPadding),S=_.with(void 0,t.top+t.height-s.borderHeight-s.verticalPadding);return{top:l,left:C,fit:y-n.width,maxSizeTop:_,maxSizeBottom:S,minSize:a.with(Math.min(y,a.width))}}(),u=function(){const y=t.left-s.borderWidth-s.horizontalPadding,C=Math.max(s.horizontalPadding,t.left-n.width-s.borderWidth),_=new cs(y,o.height-t.top-s.borderHeight-s.verticalPadding),S=_.with(void 0,t.top+t.height-s.borderHeight-s.verticalPadding);return{top:l,left:C,fit:y-n.width,maxSizeTop:_,maxSizeBottom:S,minSize:a.with(Math.min(y,a.width))}}(),h=function(){const y=t.left,C=-s.borderWidth+t.top+t.height,_=new cs(t.width-s.borderHeight,o.height-t.top-t.height-s.verticalPadding);return{top:C,left:y,fit:_.height-n.height,maxSizeBottom:_,maxSizeTop:_,minSize:a.with(_.width)}}(),g=[d,u,h],m=g.find(y=>y.fit>=0)??g.sort((y,C)=>C.fit-y.fit)[0],v=t.top+t.height-s.borderHeight;let f,k=n.height;const A=Math.max(m.maxSizeTop.height,m.maxSizeBottom.height);k>A&&(k=A);let p;r?k<=m.maxSizeTop.height?(f=!0,p=m.maxSizeTop):(f=!1,p=m.maxSizeBottom):k<=m.maxSizeBottom.height?(f=!1,p=m.maxSizeBottom):(f=!0,p=m.maxSizeTop);let{top:b,left:w}=m;!f&&k>t.height&&(b=v-k);const O=this._editor.getDomNode();if(O){const y=O.getBoundingClientRect();b-=y.top,w-=y.left}this._applyTopLeft({left:w,top:b}),this._resizable.enableSashes(!f,m===d,f,m!==d),this._resizable.minSize=m.minSize,this._resizable.maxSize=p,this._resizable.layout(k,Math.min(p.width,n.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(t){this._topLeft=t,this._editor.layoutOverlayWidget(this)}}const RCt=Cr("fileService");var XO;(function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"})(XO||(XO={}));const Ryo=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function sce(e,t,n,r,o){if(fi.isThemeIcon(o))return[`codicon-${o.id}`,"predefined-file-icon"];if(vi.isUri(o))return[];const s=r===XO.ROOT_FOLDER?["rootfolder-icon"]:r===XO.FOLDER?["folder-icon"]:["file-icon"];if(n){let a;if(n.scheme===Ci.data)a=_6.parseMetaData(n).get(_6.META_DATA_LABEL);else{const l=n.path.match(Ryo);l?(a=ace(l[2].toLowerCase()),l[1]&&s.push(`${ace(l[1].toLowerCase())}-name-dir-icon`)):a=ace(n.authority.toLowerCase())}if(r===XO.ROOT_FOLDER)s.push(`${a}-root-name-folder-icon`);else if(r===XO.FOLDER)s.push(`${a}-name-folder-icon`);else{if(a){if(s.push(`${a}-name-file-icon`),s.push("name-file-icon"),a.length<=255){const d=a.split(".");for(let u=1;u=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Qxe=function(e,t){return function(n,r){t(n,r,e)}};const Pyo=Da("suggest-more-info",zt.chevronRight,U(1492,"Icon for more information in the suggest widget."));var jb;const Fyo=new(jb=class{extract(t,n){if(t.textLabel.match(jb._regexStrict))return n[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(jb._regexStrict))return n[0]=t.completion.detail,!0;if(t.completion.documentation){const r=typeof t.completion.documentation=="string"?t.completion.documentation:t.completion.documentation.value,o=jb._regexRelaxed.exec(r);if(o&&(o.index===0||o.index+o[0].length===r.length))return n[0]=o[0],!0}return!1}},jb._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,jb._regexStrict=new RegExp(`^${jb._regexRelaxed.source}$`,"i"),jb);let bVe=class{constructor(t,n,r,o){this._editor=t,this._modelService=n,this._languageService=r,this._themeService=o,this._onDidToggleDetails=new at,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(t){const n=new xt,r=t;r.classList.add("show-file-icons");const o=Xt(t,tn(".icon")),s=Xt(o,tn("span.colorspan")),a=Xt(t,tn(".contents")),l=Xt(a,tn(".main")),d=Xt(l,tn(".icon-label.codicon")),u=Xt(l,tn("span.left")),h=Xt(l,tn("span.right")),g=new GJ(u,{supportHighlights:!0,supportIcons:!0});n.add(g);const m=Xt(u,tn("span.signature-label")),v=Xt(u,tn("span.qualifier-label")),f=Xt(h,tn("span.details-label")),k=Xt(h,tn("span.readMore"+fi.asCSSSelector(Pyo)));return k.title=U(1493,"Read More"),{root:r,left:u,right:h,icon:o,colorspan:s,iconLabel:g,iconContainer:d,parametersLabel:m,qualifierLabel:v,detailsLabel:f,readMore:k,disposables:n,configureFont:()=>{const p=this._editor.getOptions(),b=p.get(59),w=b.getMassagedFontFamily(),O=b.fontFeatureSettings,y=b.fontVariationSettings,C=p.get(135)||b.fontSize,_=p.get(136)||b.lineHeight,S=b.fontWeight,L=b.letterSpacing,E=`${C}px`,T=`${_}px`,D=`${L}px`;r.style.fontSize=E,r.style.fontWeight=S,r.style.letterSpacing=D,l.style.fontFamily=w,l.style.fontFeatureSettings=O,l.style.fontVariationSettings=y,l.style.lineHeight=T,o.style.height=T,o.style.width=T,k.style.height=T,k.style.width=T}}}renderElement(t,n,r){r.configureFont();const{completion:o}=t;r.colorspan.style.backgroundColor="";const s={labelEscapeNewLines:!0,matches:Uie(t.score)},a=[];if(o.kind===19&&Fyo.extract(t,a))r.icon.className="icon customcolor",r.iconContainer.className="icon hide",r.colorspan.style.backgroundColor=a[0];else if(o.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){r.icon.className="icon hide",r.iconContainer.className="icon hide";const l=sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:t.textLabel}),XO.FILE),d=sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:o.detail}),XO.FILE);s.extraClasses=l.length>d.length?l:d}else o.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(r.icon.className="icon hide",r.iconContainer.className="icon hide",s.extraClasses=[sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:t.textLabel}),XO.FOLDER),sce(this._modelService,this._languageService,vi.from({scheme:"fake",path:o.detail}),XO.FOLDER)].flat()):(r.icon.className="icon hide",r.iconContainer.className="",r.iconContainer.classList.add("suggest-icon",...fi.asClassNameArray(dV.toIcon(o.kind))));o.tags&&o.tags.indexOf(1)>=0&&(s.extraClasses=(s.extraClasses||[]).concat(["deprecated"]),s.matches=[]),r.iconLabel.setLabel(t.textLabel,void 0,s),typeof o.label=="string"?(r.parametersLabel.textContent="",r.detailsLabel.textContent=Dxe(o.detail||""),r.root.classList.add("string-label")):(r.parametersLabel.textContent=Dxe(o.label.detail||""),r.detailsLabel.textContent=Dxe(o.label.description||""),r.root.classList.remove("string-label")),this._editor.getOption(134).showInlineDetails?k0(r.detailsLabel):tm(r.detailsLabel),Fnt(t)?(r.right.classList.add("can-expand-details"),k0(r.readMore),r.readMore.onmousedown=l=>{l.stopPropagation(),l.preventDefault()},r.readMore.onclick=l=>{l.stopPropagation(),l.preventDefault(),this._onDidToggleDetails.fire()}):(r.right.classList.remove("can-expand-details"),tm(r.readMore),r.readMore.onmousedown=null,r.readMore.onclick=null)}disposeTemplate(t){t.disposables.dispose()}};bVe=Myo([Qxe(1,ml),Qxe(2,nc),Qxe(3,Dl)],bVe);function Dxe(e){return e.replace(/\r\n|\r|\n/g,"")}var Nyo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},lce=function(e,t){return function(n,r){t(n,r,e)}},RF;Ve("editorSuggestWidget.background",Gk,U(1473,"Background color of the suggest widget."));Ve("editorSuggestWidget.border",pet,U(1474,"Border color of the suggest widget."));const Uyo=Ve("editorSuggestWidget.foreground",Ky,U(1475,"Foreground color of the suggest widget."));Ve("editorSuggestWidget.selectedForeground",sJ,U(1476,"Foreground color of the selected entry in the suggest widget."));Ve("editorSuggestWidget.selectedIconForeground",Qet,U(1477,"Icon foreground color of the selected entry in the suggest widget."));const jyo=Ve("editorSuggestWidget.selectedBackground",aJ,U(1478,"Background color of the selected entry in the suggest widget."));Ve("editorSuggestWidget.highlightForeground",gN,U(1479,"Color of the match highlights in the suggest widget."));Ve("editorSuggestWidget.focusHighlightForeground",Zso,U(1480,"Color of the match highlights in the suggest widget when an item is focused."));Ve("editorSuggestWidgetStatus.foreground",Zi(Uyo,.5),U(1481,"Foreground color of the suggest widget status."));class Wyo{constructor(t,n){this._service=t,this._key=`suggestWidget.size/${n.getEditorType()}/${n instanceof X8}`}restore(){const t=this._service.get(this._key,0)??"";try{const n=JSON.parse(t);if(cs.is(n))return cs.lift(n)}catch{}}store(t){this._service.store(this._key,JSON.stringify(t),0,1)}reset(){this._service.remove(this._key,0)}}var r6;let wVe=(r6=class{constructor(t,n,r,o,s){this.editor=t,this._storageService=n,this._state=0,this._isAuto=!1,this._pendingLayout=new ts,this._pendingShowDetails=new ts,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new I0,this._disposables=new xt,this._onDidSelect=new rR,this._onDidFocus=new rR,this._onDidHide=new at,this._onDidShow=new at,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new at,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new Ytt,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new Vyo(this,t),this._persistedSize=new Wyo(n,t);class a{constructor(v,f,k=!1,A=!1){this.persistedSize=v,this.currentSize=f,this.persistHeight=k,this.persistWidth=A}}let l;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),l=new a(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(m=>{var v,f;if(this._resize(m.dimension.width,m.dimension.height),l&&(l.persistHeight=l.persistHeight||!!m.north||!!m.south,l.persistWidth=l.persistWidth||!!m.east||!!m.west),!!m.done){if(l){const{itemHeight:k,defaultSize:A}=this.getLayoutInfo(),p=Math.round(k/2);let{width:b,height:w}=this.element.size;(!l.persistHeight||Math.abs(l.currentSize.height-w)<=p)&&(w=((v=l.persistedSize)==null?void 0:v.height)??A.height),(!l.persistWidth||Math.abs(l.currentSize.width-b)<=p)&&(b=((f=l.persistedSize)==null?void 0:f.width)??A.width),this._persistedSize.store(new cs(b,w))}this._contentWidget.unlockPreference(),l=void 0}})),this._messageElement=Xt(this.element.domNode,tn(".message")),this._listElement=Xt(this.element.domNode,tn(".tree"));const d=this._disposables.add(s.createInstance(pVe,this.editor));d.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new Byo(d,this.editor);const u=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);u();const h=s.createInstance(bVe,this.editor);this._disposables.add(h),this._disposables.add(h.onDidToggleDetails(()=>this.toggleDetails())),this._list=new _2("SuggestWidget",this._listElement,{getHeight:m=>this.getLayoutInfo().itemHeight,getTemplateId:m=>"suggestion"},[h],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>mh?"listitem":"option",getWidgetAriaLabel:()=>U(1484,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:m=>{let v=m.textLabel;const f=dV.toLabel(m.completion.kind);if(typeof m.completion.label!="string"){const{detail:b,description:w}=m.completion.label;b&&w?v=U(1485,"{0} {1}, {2}, {3}",v,b,w,f):b?v=U(1486,"{0} {1}, {2}",v,b,f):w&&(v=U(1487,"{0}, {1}, {2}",v,w,f))}else v=U(1488,"{0}, {1}",v,f);if(!m.isResolved||!this._isDetailsVisible())return v;const{documentation:k,detail:A}=m.completion,p=oR("{0}{1}",A||"",k?typeof k=="string"?k:k.value:"");return U(1489,"{0}, docs: {1}",v,p)}}}),this._list.style(TI({listInactiveFocusBackground:jyo,listInactiveFocusOutline:Va})),this._status=s.createInstance(AVe,this.element.domNode,j9);const g=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);g(),this._disposables.add(this._list.onMouseDown(m=>this._onListMouseDownOrTap(m))),this._disposables.add(this._list.onTap(m=>this._onListMouseDownOrTap(m))),this._disposables.add(this._list.onDidChangeSelection(m=>this._onListSelection(m))),this._disposables.add(this._list.onDidChangeFocus(m=>this._onListFocus(m))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(m=>{m.hasChanged(134)&&(g(),u()),this._completionModel&&(m.hasChanged(59)||m.hasChanged(135)||m.hasChanged(136))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=_r.Visible.bindTo(r),this._ctxSuggestWidgetDetailsVisible=_r.DetailsVisible.bindTo(r),this._ctxSuggestWidgetMultipleSuggestions=_r.MultipleSuggestions.bindTo(r),this._ctxSuggestWidgetHasFocusedSuggestion=_r.HasFocusedSuggestion.bindTo(r),this._disposables.add(wc(this._details.widget.domNode,"keydown",m=>{this._onDetailsKeydown.fire(m)})),this._disposables.add(this.editor.onMouseDown(m=>this._onEditorMouseDown(m)))}dispose(){var t;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(t=this._loadingTimeout)==null||t.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(t){this._details.widget.domNode.contains(t.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(t.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(t){typeof t.element>"u"||typeof t.index>"u"||(t.browserEvent.preventDefault(),t.browserEvent.stopPropagation(),this._select(t.element,t.index))}_onListSelection(t){t.elements.length&&this._select(t.elements[0],t.indexes[0])}_select(t,n){const r=this._completionModel;r&&(this._onDidSelect.fire({item:t,index:n,model:r}),this.editor.focus())}_onListFocus(t){var o;if(this._ignoreFocusEvents)return;if(this._state===5&&this._setState(3),!t.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const n=t.elements[0],r=t.indexes[0];n!==this._focusedItem&&((o=this._currentSuggestionDetails)==null||o.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=n,this._list.reveal(r),this._currentSuggestionDetails=Fd(async s=>{const a=B8(()=>{this._isDetailsVisible()&&this._showDetails(!0,!1)},250),l=s.onCancellationRequested(()=>a.dispose());try{return await n.resolve(s)}finally{a.dispose(),l.dispose()}}),this._currentSuggestionDetails.then(()=>{r>=this._list.length||n!==this._list.element(r)||(this._ignoreFocusEvents=!0,this._list.splice(r,1,[n]),this._list.setFocus([r]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this._showDetails(!1,!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:this._list.getElementID(r)}))}).catch(zi)),this._onDidFocus.fire({item:n,index:r,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",t===4),this.element.domNode.classList.remove("message"),t){case 0:tm(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=RF.LOADING_MESSAGE,tm(this._listElement,this._status.element),k0(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,A3(RF.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=RF.NO_SUGGESTIONS_MESSAGE,tm(this._listElement,this._status.element),k0(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,A3(RF.NO_SUGGESTIONS_MESSAGE);break;case 3:tm(this._messageElement),k0(this._listElement,this._status.element),this._show();break;case 4:tm(this._messageElement),k0(this._listElement,this._status.element),this._show();break;case 5:tm(this._messageElement),k0(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(t,n){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!t,this._isAuto||(this._loadingTimeout=B8(()=>this._setState(1),n)))}showSuggestions(t,n,r,o,s){var d,u;if(this._contentWidget.setPosition(this.editor.getPosition()),(d=this._loadingTimeout)==null||d.dispose(),(u=this._currentSuggestionDetails)==null||u.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==t&&(this._completionModel=t),r&&this._state!==2&&this._state!==0){this._setState(4);return}const a=this._completionModel.items.length,l=a===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(a>1),l){this._setState(o?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(r?4:3),this._list.reveal(n,0,n===0?0:this.getLayoutInfo().itemHeight*.33),this._list.setFocus(s?[]:[n])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Lme(ii(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._list.setFocus(this._list.getFocus()),this._setState(3)):this._state===3&&(this._setState(5),this._isDetailsVisible()?this._details.widget.focus():this.toggleDetails(!0))}toggleDetails(t=!1){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(Fnt(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this._showDetails(!1,t))}_showDetails(t,n){this._pendingShowDetails.value=Lme(ii(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let r=!1;t?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details"),n&&(this._details.widget.focus(),r=!0)),r||this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this._showDetails(!1,!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var r;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(r=this._loadingTimeout)==null||r.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),n=Math.ceil(this.getLayoutInfo().itemHeight*4.3);t&&t.heightd&&(s=d);const u=this._completionModel?this._completionModel.stats.pLabelLen*r.typicalHalfwidthCharacterWidth:s,h=r.statusBarHeight+this._list.contentHeight+r.borderHeight,g=r.itemHeight+r.statusBarHeight,m=Kl(this.editor.getDomNode()),v=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),f=m.top+v.top+v.height,k=Math.min(n.height-f-r.verticalPadding,h),A=m.top+v.top-r.verticalPadding,p=Math.min(A,h);let b=Math.min(Math.max(p,k)+r.borderHeight,h);o===((a=this._cappedHeight)==null?void 0:a.capped)&&(o=this._cappedHeight.wanted),ob&&(o=b),o>k&&p>k||this._forceRenderingAbove&&A>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),b=p):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),b=k),this.element.preferredSize=new cs(u,r.defaultSize.height),this.element.maxSize=new cs(d,b),this.element.minSize=new cs(220,g),this._cappedHeight=o===h?{wanted:((l=this._cappedHeight)==null?void 0:l.wanted)??t.height,capped:o}:void 0}this._resize(s,o)}_resize(t,n){const{width:r,height:o}=this.element.maxSize;t=Math.min(r,t),n=Math.min(o,n);const{statusBarHeight:s}=this.getLayoutInfo();this._list.layout(n-s,t),this._listElement.style.height=`${n-s}px`,this.element.layout(n,t),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var t;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((t=this._contentWidget.getPosition())==null?void 0:t.preference[0])===2)}getLayoutInfo(){const t=this.editor.getOption(59),n=Zg(this.editor.getOption(136)||t.lineHeight,8,1e3),r=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:n,o=this._details.widget.getLayoutInfo().borderWidth,s=2*o;return{itemHeight:n,statusBarHeight:r,borderWidth:o,borderHeight:s,typicalHalfwidthCharacterWidth:t.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new cs(430,r+12*n)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(t){this._storageService.store("expandSuggestionDocs",t,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}},RF=r6,r6.LOADING_MESSAGE=U(1482,"Loading..."),r6.NO_SUGGESTIONS_MESSAGE=U(1483,"No suggestions."),r6);wVe=RF=Nyo([lce(1,Bg),lce(2,Qi),lce(3,Dl),lce(4,Yn)],wVe);class Vyo{constructor(t,n){this._widget=t,this._editor=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:t,width:n}=this._widget.element.size,{borderWidth:r,horizontalPadding:o}=this._widget.getLayoutInfo();return new cs(n+2*r+o,t+2*r)}afterRender(t){this._widget._afterRender(t)}setPreference(t){this._preferenceLocked||(this._preference=t)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(t){this._position=t}}var zyo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},MP=function(e,t){return function(n,r){t(n,r,e)}},OVe;class Hyo{constructor(t,n){if(this._model=t,this._position=n,this._decorationOptions=Gi.register({description:"suggest-line-suffix",stickiness:1}),t.getLineMaxColumn(n.lineNumber)!==n.column){const o=t.getOffsetAt(n),s=t.getPositionAt(o+1);t.changeDecorations(a=>{this._marker&&a.removeDecoration(this._marker),this._marker=a.addDecoration(Ee.fromPositions(n,s),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(t=>{t.removeDecoration(this._marker),this._marker=void 0})}delta(t){if(this._model.isDisposed()||this._position.lineNumber!==t.lineNumber)return 0;if(this._marker){const n=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(n.getStartPosition())-this._model.getOffsetAt(t)}else return this._model.getLineMaxColumn(t.lineNumber)-t.column}}var lB;let Kb=(lB=class{static get(t){return t.getContribution(OVe.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(t,n,r,o,s,a,l){this._memoryService=n,this._commandService=r,this._contextKeyService=o,this._instantiationService=s,this._logService=a,this._telemetryService=l,this._lineSuffix=new ts,this._toDispose=new xt,this._selectors=new $yo(g=>g.priority),this._onWillInsertSuggestItem=new at,this._wantsForceRenderingAbove=!1,this.editor=t,this.model=s.createInstance(V0e,this.editor),this._selectors.register({priority:0,select:(g,m,v)=>this._memoryService.select(g,m,v)});const d=_r.InsertMode.bindTo(o);d.set(t.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>d.set(t.getOption(134).insertMode))),this.widget=this._toDispose.add(new K8e(ii(t.getDomNode()),()=>{const g=this._instantiationService.createInstance(wVe,this.editor);this._toDispose.add(g),this._toDispose.add(g.onDidSelect(A=>this._insertSuggestion(A,0),this));const m=new Lyo(this.editor,g,this.model,A=>this._insertSuggestion(A,2));this._toDispose.add(m);const v=_r.MakesTextEdit.bindTo(this._contextKeyService),f=_r.HasInsertAndReplaceRange.bindTo(this._contextKeyService),k=_r.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(Hn(()=>{v.reset(),f.reset(),k.reset()})),this._toDispose.add(g.onDidFocus(({item:A})=>{const p=this.editor.getPosition(),b=A.editStart.column,w=p.column;let O=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!A.completion.additionalTextEdits&&!(A.completion.insertTextRules&4)&&w-b===A.completion.insertText.length&&(O=this.editor.getModel().getValueInRange({startLineNumber:p.lineNumber,startColumn:b,endLineNumber:p.lineNumber,endColumn:w})!==A.completion.insertText),v.set(O),f.set(!it.equals(A.editInsertEnd,A.editReplaceEnd)),k.set(!!A.provider.resolveCompletionItem||!!A.completion.documentation||A.completion.detail!==A.completion.label)})),this._toDispose.add(g.onDetailsKeyDown(A=>{if(A.toKeyCodeChord().equals(new D8(!0,!1,!1,!1,33))||Tr&&A.toKeyCodeChord().equals(new D8(!1,!1,!1,!0,33))){A.stopPropagation();return}A.toKeyCodeChord().isModifierKey()||this.editor.focus()})),this._wantsForceRenderingAbove&&g.forceRenderingAbove(),g})),this._overtypingCapturer=this._toDispose.add(new K8e(ii(t.getDomNode()),()=>this._toDispose.add(new vVe(this.editor,this.model)))),this._alternatives=this._toDispose.add(new K8e(ii(t.getDomNode()),()=>this._toDispose.add(new _V(this.editor,this._contextKeyService)))),this._toDispose.add(s.createInstance(U0e,t)),this._toDispose.add(this.model.onDidTrigger(g=>{this.widget.value.showTriggered(g.auto,g.shy?250:50),this._lineSuffix.value=new Hyo(this.editor.getModel(),g.position)})),this._toDispose.add(this.model.onDidSuggest(g=>{if(g.triggerOptions.shy)return;let m=-1;for(const f of this._selectors.itemsOrderedByPriorityDesc)if(m=f.select(this.editor.getModel(),this.editor.getPosition(),g.completionModel.items),m!==-1)break;if(m===-1&&(m=0),this.model.state===0)return;let v=!1;if(g.triggerOptions.auto){const f=this.editor.getOption(134);f.selectionMode==="never"||f.selectionMode==="always"?v=f.selectionMode==="never":f.selectionMode==="whenTriggerCharacter"?v=g.triggerOptions.triggerKind!==1:f.selectionMode==="whenQuickSuggestion"&&(v=g.triggerOptions.triggerKind===1&&!g.triggerOptions.refilter)}this.widget.value.showSuggestions(g.completionModel,m,g.isFrozen,g.triggerOptions.auto,v)})),this._toDispose.add(this.model.onDidCancel(g=>{g.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const u=_r.AcceptSuggestionsOnEnter.bindTo(o),h=()=>{const g=this.editor.getOption(1);u.set(g==="on"||g==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>h())),h()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(t,n){var f;if(!t||!t.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const r=xg.get(this.editor);if(!r)return;this._onWillInsertSuggestItem.fire({item:t.item});const o=this.editor.getModel(),s=o.getAlternativeVersionId(),{item:a}=t,l=[],d=new ja;n&1||this.editor.pushUndoStop();const u=this.getOverwriteInfo(a,!!(n&8));this._memoryService.memorize(o,this.editor.getPosition(),a);const h=a.isResolved;let g=-1,m=-1;if(Array.isArray(a.completion.additionalTextEdits)){this.model.cancel();const k=O3.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",a.completion.additionalTextEdits.map(A=>{let p=Ee.lift(A.range);if(p.startLineNumber===a.position.lineNumber&&p.startColumn>a.position.column){const b=this.editor.getPosition().column-a.position.column,w=b,O=Ee.spansMultipleLines(p)?0:b;p=new Ee(p.startLineNumber,p.startColumn+w,p.endLineNumber,p.endColumn+O)}return $l.replaceMove(p,A.text)})),k.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!h){const k=new vu;let A;const p=o.onDidChangeContent(y=>{if(y.isFlush){d.cancel(),p.dispose();return}for(const C of y.changes){const _=Ee.getEndPosition(C.range);(!A||it.isBefore(_,A))&&(A=_)}}),b=n;n|=2;let w=!1;const O=this.editor.onWillType(()=>{O.dispose(),w=!0,b&2||this.editor.pushUndoStop()});l.push(a.resolve(d.token).then(()=>{if(!a.completion.additionalTextEdits||d.token.isCancellationRequested)return;if(A&&a.completion.additionalTextEdits.some(C=>it.isBefore(A,Ee.getStartPosition(C.range))))return!1;w&&this.editor.pushUndoStop();const y=O3.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",a.completion.additionalTextEdits.map(C=>$l.replaceMove(Ee.lift(C.range),C.text))),y.restoreRelativeVerticalPositionOfCursor(this.editor),(w||!(b&2))&&this.editor.pushUndoStop(),!0}).then(y=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",k.elapsed(),y),m=y===!0?1:y===!1?0:-2}).finally(()=>{p.dispose(),O.dispose()}))}let{insertText:v}=a.completion;if(a.completion.insertTextRules&4||(v=wR.escape(v)),this.model.cancel(),r.insert(v,{overwriteBefore:u.overwriteBefore,overwriteAfter:u.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(a.completion.insertTextRules&1),clipboardText:t.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:Af.suggest({providerId:r3e.fromExtensionId((f=a.extensionId)==null?void 0:f.value)})}),n&2||this.editor.pushUndoStop(),a.completion.command)if(a.completion.command.id===z0e.id)this.model.trigger({auto:!0,retrigger:!0});else{const k=new vu;l.push(this._commandService.executeCommand(a.completion.command.id,...a.completion.command.arguments?[...a.completion.command.arguments]:[]).catch(A=>{a.completion.extensionId?Nc(A):zi(A)}).finally(()=>{g=k.elapsed()}))}n&4&&this._alternatives.value.set(t,k=>{for(d.cancel();o.canUndo();){s!==o.getAlternativeVersionId()&&o.undo(),this._insertSuggestion(k,3|(n&8?8:0));break}}),this._alertCompletionItem(a),Promise.all(l).finally(()=>{this._reportSuggestionAcceptedTelemetry(a,o,h,g,m,t.index,t.model.items),this.model.clear(),d.dispose()})}_reportSuggestionAcceptedTelemetry(t,n,r,o,s,a,l){var m;if(Math.random()>1e-4)return;const d=new Map;for(let v=0;v1?u[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:((m=t.extensionId)==null?void 0:m.value)??"unknown",providerId:t.provider._debugDisplayName??"unknown",kind:t.completion.kind,basenameHash:Lie(hA(n.uri)).toString(16),languageId:n.getLanguageId(),fileExtension:Bno(n.uri),resolveInfo:t.provider.resolveCompletionItem?r?1:0:-1,resolveDuration:t.resolveDuration,commandDuration:o,additionalEditsAsync:s,index:a,firstIndex:g})}getOverwriteInfo(t,n){Oo(this.editor.hasModel());let r=this.editor.getOption(134).insertMode==="replace";n&&(r=!r);const o=t.position.column-t.editStart.column,s=(r?t.editReplaceEnd.column:t.editInsertEnd.column)-t.position.column,a=this.editor.getPosition().column-t.position.column,l=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:o+a,overwriteAfter:s+l}}_alertCompletionItem(t){if(yg(t.completion.additionalTextEdits)){const n=U(1463,"Accepting '{0}' made {1} additional edits",t.textLabel,t.completion.additionalTextEdits.length);um(n)}}triggerSuggest(t,n,r){this.editor.hasModel()&&(this.model.trigger({auto:n??!1,completionOptions:{providerFilter:t,kindFilter:r?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(t){if(!this.editor.hasModel())return;const n=this.editor.getPosition(),r=()=>{n.equals(this.editor.getPosition())&&this._commandService.executeCommand(t.fallback)},o=s=>{if(s.completion.insertTextRules&4||s.completion.additionalTextEdits)return!0;const a=this.editor.getPosition(),l=s.editStart.column,d=a.column;return d-l!==s.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:a.lineNumber,startColumn:l,endLineNumber:a.lineNumber,endColumn:d})!==s.completion.insertText};an.once(this.model.onDidTrigger)(s=>{const a=[];an.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{us(a),r()},void 0,a),this.model.onDidSuggest(({completionModel:l})=>{if(us(a),l.items.length===0){r();return}const d=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),l.items),u=l.items[d];if(!o(u)){r();return}this.editor.pushUndoStop(),this._insertSuggestion({index:d,item:u,model:l},7)},void 0,a)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(n,0),this.editor.focus()}acceptSelectedSuggestion(t,n){const r=this.widget.value.getFocusedItem();let o=0;t&&(o|=4),n&&(o|=8),this._insertSuggestion(r,o)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.isInitialized?this.widget.value.forceRenderingAbove():this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){this.widget.isInitialized?this.widget.value.stopForceRenderingAbove():this._wantsForceRenderingAbove=!1}registerSelector(t){return this._selectors.register(t)}},OVe=lB,lB.ID="editor.contrib.suggestController",lB);Kb=OVe=zyo([MP(1,N3e),MP(2,ba),MP(3,Qi),MP(4,Yn),MP(5,va),MP(6,Nf)],Kb);class $yo{constructor(t){this.prioritySelector=t,this._items=new Array}register(t){if(this._items.indexOf(t)!==-1)throw new Error("Value is already registered");return this._items.push(t),this._items.sort((n,r)=>this.prioritySelector(r)-this.prioritySelector(n)),{dispose:()=>{const n=this._items.indexOf(t);n>=0&&this._items.splice(n,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}const fAe=class fAe extends Bn{constructor(){super({id:fAe.id,label:_t(1471,"Trigger Suggest"),precondition:Ft.and($e.writable,$e.hasCompletionItemProvider,_r.Visible.toNegated()),kbOpts:{kbExpr:$e.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(t,n,r){const o=Kb.get(n);if(!o)return;let s;r&&typeof r=="object"&&r.auto===!0&&(s=!0),o.triggerSuggest(void 0,s,void 0)}};fAe.id="editor.action.triggerSuggest";let z0e=fAe;mo(Kb.ID,Kb,2);un(z0e);const m2=190,bm=$d.bindToContribution(Kb.get);On(new bm({id:"acceptSelectedSuggestion",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:Ft.and(_r.Visible,$e.textInputFocus),weight:m2},{primary:3,kbExpr:Ft.and(_r.Visible,$e.textInputFocus,_r.AcceptSuggestionsOnEnter,_r.MakesTextEdit),weight:m2}],menuOpts:[{menuId:j9,title:U(1464,"Insert"),group:"left",order:1,when:_r.HasInsertAndReplaceRange.toNegated()},{menuId:j9,title:U(1465,"Insert"),group:"left",order:1,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("insert"))},{menuId:j9,title:U(1466,"Replace"),group:"left",order:1,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("replace"))}]}));On(new bm({id:"acceptAlternativeSelectedSuggestion",precondition:Ft.and(_r.Visible,$e.textInputFocus,_r.HasFocusedSuggestion),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:j9,group:"left",order:2,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("insert")),title:U(1467,"Replace")},{menuId:j9,group:"left",order:2,when:Ft.and(_r.HasInsertAndReplaceRange,_r.InsertMode.isEqualTo("replace")),title:U(1468,"Insert")}]}));uo.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");On(new bm({id:"hideSuggestWidget",precondition:_r.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:9,secondary:[1033]}}));On(new bm({id:"selectNextSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}}));On(new bm({id:"selectNextPageSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:12,secondary:[2060]}}));On(new bm({id:"selectLastSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectLastSuggestion()}));On(new bm({id:"selectPrevSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));On(new bm({id:"selectPrevPageSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:11,secondary:[2059]}}));On(new bm({id:"selectFirstSuggestion",precondition:Ft.and(_r.Visible,Ft.or(_r.MultipleSuggestions,_r.HasFocusedSuggestion.negate())),handler:e=>e.selectFirstSuggestion()}));On(new bm({id:"focusSuggestion",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion.negate()),handler:e=>e.focusSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));On(new bm({id:"focusAndAcceptSuggestion",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion.negate()),handler:e=>{e.focusSuggestion(),e.acceptSelectedSuggestion(!0,!1)}}));On(new bm({id:"toggleSuggestionDetails",precondition:Ft.and(_r.Visible,_r.HasFocusedSuggestion),handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:j9,group:"right",order:1,when:Ft.and(_r.DetailsVisible,_r.CanResolve),title:U(1469,"Show Less")},{menuId:j9,group:"right",order:1,when:Ft.and(_r.DetailsVisible.toNegated(),_r.CanResolve),title:U(1470,"Show More")}]}));On(new bm({id:"toggleExplainMode",precondition:_r.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));On(new bm({id:"toggleSuggestionFocus",precondition:_r.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2570,mac:{primary:778}}}));On(new bm({id:"insertBestCompletion",precondition:Ft.and($e.textInputFocus,Ft.equals("config.editor.tabCompletion","on"),U0e.AtEnd,_r.Visible.toNegated(),_V.OtherSuggestions.toNegated(),xg.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest(Pd(t)?{fallback:"tab",...t}:{fallback:"tab"})},kbOpts:{weight:m2,primary:2}}));On(new bm({id:"insertNextSuggestion",precondition:Ft.and($e.textInputFocus,Ft.equals("config.editor.tabCompletion","on"),_V.OtherSuggestions,_r.Visible.toNegated(),xg.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:2}}));On(new bm({id:"insertPrevSuggestion",precondition:Ft.and($e.textInputFocus,Ft.equals("config.editor.tabCompletion","on"),_V.OtherSuggestions,_r.Visible.toNegated(),xg.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:m2,kbExpr:$e.textInputFocus,primary:1026}}));un(class extends Bn{constructor(){super({id:"editor.action.resetSuggestSize",label:_t(1472,"Reset Suggest Widget Size"),precondition:void 0})}run(e,t){var n;(n=Kb.get(t))==null||n.resetWidgetSize()}});class Xyo extends ft{get selectedItem(){return this._currentSuggestItemInfo}constructor(t,n,r){super(),this.editor=t,this.suggestControllerPreselector=n,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new at),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(t.onKeyDown(s=>{s.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(t.onKeyUp(s=>{s.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const o=Kb.get(this.editor);if(o){this._register(o.registerSelector({priority:100,select:(l,d,u)=>{const h=this.editor.getModel();if(!h)return-1;const g=this.suggestControllerPreselector(),m=g?IS(g,h):void 0;if(!m)return-1;const v=it.lift(d),f=u.map((A,p)=>{const b=FZ.fromSuggestion(o,h,v,A,this.isShiftKeyPressed),w=IS(b.getSingleTextEdit(),h),O=nIn(m,w);return{index:p,valid:O,prefixLength:w.text.length,suggestItem:A}}).filter(A=>A&&A.valid&&A.prefixLength>0),k=Met(f,qh(A=>A.prefixLength,T0));return k?k.index:-1}}));let s=!1;const a=()=>{s||(s=!0,this._register(o.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(o.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(o.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(an.once(o.model.onDidTrigger)(l=>{a()})),this._register(o.onWillInsertSuggestItem(l=>{const d=this.editor.getPosition(),u=this.editor.getModel();if(!d||!u)return;const h=FZ.fromSuggestion(o,u,d,l.item,this.isShiftKeyPressed);this.onWillAccept(h)}))}this.update(this._isActive)}update(t){const n=this.getSuggestItemInfo();(this._isActive!==t||!Gyo(this._currentSuggestItemInfo,n))&&(this._isActive=t,this._currentSuggestItemInfo=n,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const t=Kb.get(this.editor);if(!t||!this.isSuggestWidgetVisible)return;const n=t.widget.value.getFocusedItem(),r=this.editor.getPosition(),o=this.editor.getModel();if(!(!n||!r||!o))return FZ.fromSuggestion(t,o,r,n.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const t=Kb.get(this.editor);t==null||t.stopForceRenderingAbove()}forceRenderingAbove(){const t=Kb.get(this.editor);t==null||t.forceRenderingAbove()}}class FZ{static fromSuggestion(t,n,r,o,s){let{insertText:a}=o.completion,l=!1;if(o.completion.insertTextRules&4){const u=new wR().parse(a);u.children.length<100&&R0e.adjustWhitespace(n,r,!0,u),a=u.toString(),l=!0}const d=t.getOverwriteInfo(o,s);return new FZ(Ee.fromPositions(r.delta(0,-d.overwriteBefore),r.delta(0,Math.max(d.overwriteAfter,0))),a,o.completion.kind,l,o.container.incomplete??!1)}constructor(t,n,r,o,s){this.range=t,this.insertText=n,this.completionItemKind=r,this.isSnippetText=o,this.listIncomplete=s}equals(t){return this.range.equalsRange(t.range)&&this.insertText===t.insertText&&this.completionItemKind===t.completionItemKind&&this.isSnippetText===t.isSnippetText}toSelectedSuggestionInfo(){return new ATn(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new Mc(this.range,this.insertText)}}function Gyo(e,t){return e===t?!0:!e||!t?!1:e.equals(t)}class Yyo extends ft{constructor(t,n,r){super(),this._editorObs=t,this._handleSuggestAccepted=n,this._suggestControllerPreselector=r,this._suggestWidgetAdaptor=this._register(new Xyo(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),o=>this._editorObs.forceUpdate(s=>{this._handleSuggestAccepted(o)}))),this.selectedItem=Ko(this,o=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(s=>o(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class Zyo{constructor(t,n){this.lineNumber=t,this.columnRange=n}}class ICt{constructor(t,n){if(this.startColumn=t,this.endColumnExclusive=n,t>n)throw new ui(`startColumn ${t} cannot be after endColumnExclusive ${n}`)}toRange(t){return new Ee(t,this.startColumn,t,this.endColumnExclusive)}equals(t){return this.startColumn===t.startColumn&&this.endColumnExclusive===t.endColumnExclusive}toZeroBasedOffsetRange(){return new Xn(this.startColumn-1,this.endColumnExclusive-1)}}class bQ{static fromLineTokens(t){const n=[];for(let r=0;r({text:r.text,metadata:r.metadata})),t)}map(t){const n=[];let r=0;for(const o of this._tokenInfo){const s=new Xn(r,r+o.text.length);n.push(t(s,o)),r+=o.text.length}return n}slice(t){const n=[];let r=0;for(const o of this._tokenInfo){const s=r,a=s+o.text.length;if(a>t.start){if(s>=t.endExclusive)break;const l=Math.max(0,t.start-s),d=Math.max(0,a-t.endExclusive);n.push(new MCt(o.text.slice(l,o.text.length-d),o.metadata))}r+=o.text.length}return bQ.create(n)}append(t){const n=this._tokenInfo.concat(t._tokenInfo);return bQ.create(n)}}class MCt{constructor(t,n){this.text=t,this.metadata=n}}var qyo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Kyo=function(e,t){return function(n,r){t(n,r,e)}};const uIn="ghost-text";var cB;let ree=(cB=class extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._model=n,this._options=r,this._shouldKeepCursorStable=o,this._isClickable=s,this._languageService=a,this._isDisposed=Ti(this,!1),this._editorObs=hl(this._editor),this._warningState=Rt(l=>{const d=this._model.ghostText.read(l);if(!d)return;const u=this._model.warning.read(l);if(u)return{lineNumber:d.lineNumber,position:new it(d.lineNumber,d.parts[0].column),icon:u.icon}}),this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._useSyntaxHighlighting=this._options.map(l=>l.syntaxHighlightingEnabled),this._extraClassNames=Rt(this,l=>{const d=[...this._options.read(l).extraClasses??[]];return this._useSyntaxHighlighting.read(l)&&d.push("syntax-highlighted"),this._warningState.read(l)&&d.push("warning"),d.map(h=>` ${h}`).join("")}),this.uiState=Rt(this,l=>{var T,D;if(this._isDisposed.read(l))return;const d=this._editorObs.model.read(l);if(d!==this._model.targetTextModel.read(l))return;const u=this._model.ghostText.read(l);if(!u)return;const h=u instanceof eVe?u.columnRange:void 0,g=this._useSyntaxHighlighting.read(l),m=this._extraClassNames.read(l),{inlineTexts:v,additionalLines:f,hiddenRange:k,additionalLinesOriginalSuffix:A}=Jyo(u,d,uIn+m),p=d.getLineContent(u.lineNumber),b=new W8(v.map(P=>ch.insert(P.column-1,P.text))),w=g?d.tokenization.tokenizeLinesAt(u.lineNumber,[b.apply(p),...f.map(P=>P.content)]):void 0,O=b.getNewRanges(),y=v.map((P,Q)=>{var M;return{...P,tokens:(M=w==null?void 0:w[0])==null?void 0:M.getTokensInRange(O[Q])}}),C=f.map((P,Q)=>{let M=(w==null?void 0:w[Q+1])??uc.createEmpty(P.content,this._languageService.languageIdCodec);if(Q===f.length-1&&A){const R=bQ.fromLineTokens(d.tokenization.getLineTokens(A.lineNumber)).slice(A.columnRange.toZeroBasedOffsetRange());M=bQ.fromLineTokens(M).append(R).toLineTokens(M.languageIdCodec)}return{content:M,decorations:P.decorations}}),_=(T=this._editor.getSelection())==null?void 0:T.getStartPosition().column,S=y.filter(P=>P.text!==""),L=S.length!==0,E={cursorColumnDistance:(L?S[0].column:1)-_,cursorLineDistance:L?0:f.findIndex(P=>P.content!=="")+1,lineCountOriginal:L?1:0,lineCountModified:f.length+(L?1:0),characterCountOriginal:0,characterCountModified:Sme(S.map(P=>P.text.length))+Sme(C.map(P=>P.content.getTextLength())),disjointReplacements:S.length+(f.length>0?1:0),sameShapeReplacements:S.length>1&&C.length===0?S.every(P=>P.text===S[0].text):void 0};return(D=this._model.handleInlineCompletionShown.read(l))==null||D(E),{replacedRange:h,inlineTexts:y,additionalLines:C,hiddenRange:k,lineNumber:u.lineNumber,additionalReservedLineCount:this._model.minReservedLineCount.read(l),targetTextModel:d,syntaxHighlightingEnabled:g}}),this.decorations=Rt(this,l=>{const d=this.uiState.read(l);if(!d)return[];const u=[],h=this._extraClassNames.read(l);d.replacedRange&&u.push({range:d.replacedRange.toRange(d.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+h,description:"GhostTextReplacement"}}),d.hiddenRange&&u.push({range:d.hiddenRange.toRange(d.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const g of d.inlineTexts)u.push({range:Ee.fromPositions(new it(d.lineNumber,g.column)),options:{description:"ghost-text-decoration",after:{content:g.text,tokens:g.tokens,inlineClassName:(g.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+h+g.lineDecorations.map(m=>" "+m.className).join(" "),cursorStops:Bv.Left,attachedData:new Bxe(this)},showIfCollapsed:!0}});return u}),this._additionalLinesWidget=this._register(new eCo(this._editor,Rt(l=>{const d=this.uiState.read(l);return d?{lineNumber:d.lineNumber,additionalLines:d.additionalLines,minReservedLineCount:d.additionalReservedLineCount,targetTextModel:d.targetTextModel}:void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered(l=>{var d;return l.target.type===6&&((d=l.target.detail.injectedText)==null?void 0:d.options.attachedData)instanceof Bxe&&l.target.detail.injectedText.options.attachedData.owner===this},this._store),this.isHovered=Rt(this,l=>this._isDisposed.read(l)?!1:this._isInlineTextHovered.read(l)||this._additionalLinesWidget.isHovered.read(l)),this.height=Rt(this,l=>this._editorObs.getOption(75).read(l)+(this._additionalLinesWidget.viewZoneHeight.read(l)??0)),this._register(Hn(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this.decorations)),this._isClickable&&(this._register(this._additionalLinesWidget.onDidClick(l=>this._onDidClick.fire(l))),this._register(this._editor.onMouseUp(l=>{var u;if(l.target.type!==6)return;const d=(u=l.target.detail.injectedText)==null?void 0:u.options.attachedData;d instanceof Bxe&&d.owner===this&&this._onDidClick.fire(l.event)}))),this._register(Ef((l,d)=>{}))}static getWarningWidgetContext(t){const n=t.ghostTextViewWarningWidgetData;if(n)return n;if(t.parentElement)return this.getWarningWidgetContext(t.parentElement)}ownsViewZone(t){return this._additionalLinesWidget.viewZoneId===t}},cB.hot=l3e(cB),cB);ree=qyo([Kyo(5,nc)],ree);class Bxe{constructor(t){this.owner=t}}function Jyo(e,t,n){const r=[],o=[];function s(g,m){if(o.length>0){const v=o[o.length-1];m&&v.decorations.push(new wg(v.content.length+1,v.content.length+1+g[0].line.length,m,0)),v.content+=g[0].line,g=g.slice(1)}for(const v of g)o.push({content:v.line,decorations:m?[new wg(1,v.line.length+1,m,0),...v.lineDecorations]:[...v.lineDecorations]})}const a=t.getLineContent(e.lineNumber);let l,d=0;for(const g of e.parts){let m=g.lines;l===void 0?(r.push({column:g.column,text:m[0].line,preview:g.preview,lineDecorations:m[0].lineDecorations}),m=m.slice(1)):s([{line:a.substring(d,g.column-1),lineDecorations:[]}],void 0),m.length>0&&(s(m,n),l===void 0&&g.column<=a.length&&(l=g.column)),d=g.column-1}let u;l!==void 0&&(u=new Zyo(e.lineNumber,new ICt(d+1,a.length+1)));const h=l!==void 0?new ICt(l,a.length+1):void 0;return{inlineTexts:r,additionalLines:o,hiddenRange:h,additionalLinesOriginalSuffix:u}}class eCo extends ft{get viewZoneId(){var t;return(t=this._viewZoneInfo)==null?void 0:t.viewZoneId}get viewZoneHeight(){return this._viewZoneHeight}constructor(t,n,r,o){super(),this._editor=t,this._lines=n,this._shouldKeepCursorStable=r,this._isClickable=o,this._viewZoneHeight=Ti("viewZoneHeight",void 0),this.editorOptionsChanged=A0("editorOptionChanged",an.filter(this._editor.onDidChangeConfiguration,s=>s.hasChanged(40)||s.hasChanged(133)||s.hasChanged(113)||s.hasChanged(108)||s.hasChanged(60)||s.hasChanged(59)||s.hasChanged(75))),this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new ts),this.isHovered=hl(this._editor).isTargetHovered(s=>PCt(s.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof gR&&this._shouldKeepCursorStable&&this._register(this._editor.onBeforeExecuteEdit(s=>this.hasBeenAccepted=s.source==="inlineSuggestion.accept")),this._register(Oi(s=>{const a=this._lines.read(s);this.editorOptionsChanged.read(s),a?(this.hasBeenAccepted=!1,this.updateLines(a.lineNumber,a.additionalLines,a.minReservedLineCount)):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones(t=>{this.removeActiveViewZone(t)})}updateLines(t,n,r){const o=this._editor.getModel();if(!o)return;const{tabSize:s}=o.getOptions();this._editor.changeViewZones(a=>{const l=new xt;this.removeActiveViewZone(a);const d=Math.max(n.length,r);if(d>0){const u=document.createElement("div");tCo(u,s,n,this._editor.getOptions(),this._isClickable),this._isClickable&&(l.add(wt(u,"mousedown",h=>{h.preventDefault()})),l.add(wt(u,"click",h=>{PCt(h.target)&&this._onDidClick.fire(new Xh(ii(h),h))}))),this.addViewZone(a,t,d,u)}this._viewZoneListener.value=l})}addViewZone(t,n,r,o){const s=t.addZone({afterLineNumber:n,heightInLines:r,domNode:o,afterColumnAffinity:1,onComputedHeight:a=>{this._viewZoneHeight.set(a,void 0)}});this.keepCursorStable(n,r),this._viewZoneInfo={viewZoneId:s,heightInLines:r,lineNumber:n}}removeActiveViewZone(t){this._viewZoneInfo&&(t.removeZone(this._viewZoneInfo.viewZoneId),this.hasBeenAccepted||this.keepCursorStable(this._viewZoneInfo.lineNumber,-this._viewZoneInfo.heightInLines),this._viewZoneInfo=void 0,this._viewZoneHeight.set(void 0,void 0))}keepCursorStable(t,n){var o,s;if(!this._shouldKeepCursorStable)return;const r=(s=(o=this._editor.getSelection())==null?void 0:o.getStartPosition())==null?void 0:s.lineNumber;r!==void 0&&t`);for(let A=0,p=n.length;A');const O=w.getLineContent(),y=Sie(O),C=ZW(O);tH(new AL(h.isMonospace&&!s,h.canUseHalfwidthRightwardsArrow,O,!1,y,C,0,w,b.decorations,t,0,h.spaceWidth,h.middotWidth,h.wsmiddotWidth,a,l,d,u!==F8.OFF,null,null,0),v),v.appendString("")}v.appendString(""),Fu(e,h);const f=v.build(),k=FCt?FCt.createHTML(f):f;e.innerHTML=k}const FCt=Jy("editorGhostText",{createHTML:e=>e}),gAe=class gAe{constructor(t){this.replacements=t,PK(wie(t,(n,r)=>n.lineRange.endLineNumberExclusive<=r.lineRange.startLineNumber))}toString(){return this.replacements.map(t=>t.toString()).join(",")}getNewLineRanges(){const t=[];let n=0;for(const r of this.replacements)t.push(Ei.ofLength(r.lineRange.startLineNumber+n,r.newLines.length)),n+=r.newLines.length-r.lineRange.length;return t}};gAe.empty=new gAe([]);let yVe=gAe;class H0e{static fromSingleTextEdit(t,n){const r=P0(t.text);let o=t.range.startLineNumber;const s=n.getValueOfRange(Ee.fromPositions(new it(t.range.startLineNumber,1),t.range.getStartPosition()));r[0]=s+r[0];let a=t.range.endLineNumber+1;const l=n.getTransformer().getLineLength(t.range.endLineNumber)+1,d=n.getValueOfRange(Ee.fromPositions(t.range.getEndPosition(),new it(t.range.endLineNumber,l)));r[r.length-1]=r[r.length-1]+d;const u=t.range.startColumn===n.getTransformer().getLineLength(t.range.startLineNumber)+1,h=t.range.endColumn===1;return u&&r[0].length===s.length&&(o++,r.shift()),r.length>0&&o${JSON.stringify(this.newLines)}`}toLineEdit(){return new yVe([this])}}class hIn{get lineEdit(){return this.edit.replacements.length===0?new H0e(new Ei(1,1),[]):H0e.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText)}get originalLineRange(){return this.lineEdit.lineRange}get modifiedLineRange(){return this.lineEdit.toLineEdit().getNewLineRanges()[0]}get displayRange(){return this.originalText.lineRange.intersect(this.originalLineRange.join(Ei.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(t,n,r,o,s,a){this.originalText=t,this.edit=n,this.cursorPosition=r,this.multiCursorPositions=o,this.commands=s,this.inlineCompletion=a}}class fIn{constructor(t,n,r){this._model=t,this.inlineEdit=n,this.tabAction=r,this.action=this.inlineEdit.inlineCompletion.action,this.displayName=this.inlineEdit.inlineCompletion.source.provider.displayName??U(1219,"Inline Edit"),this.extensionCommands=this.inlineEdit.inlineCompletion.source.inlineSuggestions.commands??[],this.isInDiffEditor=this._model.isInDiffEditor,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.showCollapsed=this._model.showCollapsed}accept(){this._model.accept()}jump(){this._model.jump()}handleInlineEditShown(t,n){this._model.handleInlineSuggestionShown(this.inlineEdit.inlineCompletion,t,n)}}class nCo{constructor(t){this._model=t,this.onDidAccept=this._model.onDidAccept,this.inAcceptFlow=this._model.inAcceptFlow}}class iCo{constructor(t,n,r,o){this.lineRange=r;const s=hl(t),a=Rt(this,l=>s.isFocused.read(l)&&o.showInlineEditMenu?wf.Accept:wf.Inactive);this.model=new fIn(n,new hIn(new g9(""),new V4([o.getSingleTextEdit()]),n.primaryPosition.get(),n.allPositions.get(),o.source.inlineSuggestions.commands??[],o),a)}}class Vs{static fromPoints(t,n){return new Vs(t.x,t.y,n.x,n.y)}static fromPointSize(t,n){return new Vs(t.x,t.y,t.x+n.x,t.y+n.y)}static fromLeftTopRightBottom(t,n,r,o){return new Vs(t,n,r,o)}static fromLeftTopWidthHeight(t,n,r,o){return new Vs(t,n,t+r,n+o)}static fromRanges(t,n){return new Vs(t.start,n.start,t.endExclusive,n.endExclusive)}static hull(t){let n=Number.MAX_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER;for(const a of t)n=Math.min(n,a.left),r=Math.min(r,a.top),o=Math.max(o,a.right),s=Math.max(s,a.bottom);return new Vs(n,r,o,s)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(t,n,r,o){if(this.left=t,this.top=n,this.right=r,this.bottom=o,t>r)throw new ui("Invalid arguments: Horizontally offset by "+(t-r));if(n>o)throw new ui("Invalid arguments: Vertically offset by "+(n-o))}withMargin(t,n,r,o){let s,a,l,d;return n===void 0&&r===void 0&&o===void 0?s=a=l=d=t:r===void 0&&o===void 0?(s=a=n,l=d=t):(s=o,a=n,l=t,d=r),new Vs(this.left-s,this.top-l,this.right+a,this.bottom+d)}intersectVertical(t){const n=Math.max(this.top,t.start),r=Math.min(this.bottom,t.endExclusive);return new Vs(this.left,n,this.right,Math.max(n,r))}intersectHorizontal(t){const n=Math.max(this.left,t.start),r=Math.min(this.right,t.endExclusive);return new Vs(n,this.top,Math.max(n,r),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(t){const n=Math.max(this.left,t.left),r=Math.min(this.right,t.right),o=Math.max(this.top,t.top),s=Math.min(this.bottom,t.bottom);if(!(n>r||o>s))return new Vs(n,o,r,s)}containsRect(t){return this.left<=t.left&&this.top<=t.top&&this.right>=t.right&&this.bottom>=t.bottom}containsPoint(t){return this.left<=t.x&&this.top<=t.y&&this.right>=t.x&&this.bottom>=t.y}moveToBeContainedIn(t){const n=this.width,r=this.height;let o=this.left,s=this.top;return ot.right&&(o=t.right-n),st.bottom&&(s=t.bottom-r),new Vs(o,s,o+n,s+r)}withWidth(t){return new Vs(this.left,this.top,this.left+t,this.bottom)}withHeight(t){return new Vs(this.left,this.top,this.right,this.top+t)}withTop(t){return new Vs(this.left,t,this.right,this.bottom)}withLeft(t){return new Vs(t,this.top,this.right,this.bottom)}translateX(t){return new Vs(this.left+t,this.top,this.right+t,this.bottom)}translateY(t){return new Vs(this.left,this.top+t,this.right,this.bottom+t)}getLeftBottom(){return new cu(this.left,this.bottom)}getRightBottom(){return new cu(this.right,this.bottom)}getRightTop(){return new cu(this.right,this.top)}toStyles(){return{position:"absolute",left:`${this.left}px`,top:`${this.top}px`,width:`${this.width}px`,height:`${this.height}px`}}}class NZ{constructor(t,n,r,o=null){this.startLineNumbers=t,this.endLineNumbers=n,this.lastLineRelativePosition=r,this.showEndForLine=o}equals(t){return!!t&&this.lastLineRelativePosition===t.lastLineRelativePosition&&this.showEndForLine===t.showEndForLine&&Na(this.startLineNumbers,t.startLineNumbers)&&Na(this.endLineNumbers,t.endLineNumbers)}static get Empty(){return new NZ([],[],0)}}const NCt=Jy("stickyScrollViewLayer",{createHTML:e=>e}),Rxe="data-sticky-line-index",UCt="data-sticky-is-line",rCo="data-sticky-is-line-number",jCt="data-sticky-is-folding-icon";class oCo extends ft{get height(){return this._height}constructor(t){super(),this._foldingIconStore=this._register(new xt),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new at),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=t,this._lineHeight=t.getOption(75),this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",t instanceof X8),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);const n=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(131)&&n(),r.hasChanged(75)&&(this._lineHeight=this._editor.getOption(75))})),this._register(this._editor.onDidScrollChange(r=>{r.scrollLeftChanged&&n(),r.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{n(),this._updateWidgetWidth()})),n(),this._register(this._editor.onDidLayoutChange(r=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(t){return this._renderedStickyLines.find(n=>n.lineNumber===t)}getCurrentLines(){return this._lineNumbers}setState(t,n,r){const o=!this._state&&!t,s=this._state&&this._state.equals(t);if(r===void 0&&(o||s))return;const a=this._findRenderingData(t),l=this._lineNumbers;this._lineNumbers=a.lineNumbers,this._lastLineRelativePosition=a.lastLineRelativePosition;const d=this._findIndexToRebuildFrom(l,this._lineNumbers,r);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,n,d),this._state=t}_findRenderingData(t){if(!t)return{lineNumbers:[],lastLineRelativePosition:0};const n=[...t.startLineNumbers];t.showEndForLine!==null&&(n[t.showEndForLine]=t.endLineNumbers[t.showEndForLine]);let r=0;for(let o=0;o!t.includes(s));return o===-1?0:o}_updateWidgetWidth(){const t=this._editor.getLayoutInfo(),n=t.contentLeft;this._lineNumbersDomNode.style.width=`${n}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-t.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${t.width-t.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(t){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${t?.5:0}s`)}_setFoldingIconsVisibility(t){for(const n of this._renderedStickyLines){const r=n.foldingIcon;r&&r.setVisible(t?!0:r.isCollapsed)}}async _renderRootNode(t,n,r,o){const s=this._editor._getViewModel();if(!s){this._clearWidget();return}if(t.length===0){this._clearWidget();return}const a=[],l=t[t.length-1];let d=0;for(let h=0;hh.scrollWidth))+u.verticalScrollbarWidth,this._renderedStickyLines=a,this._setHeight(d+n),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let t=0;t{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(wt(this._lineNumbersDomNode,rn.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(t,n,r,o,s,a,l){const d=t.coordinatesConverter.convertModelPositionToViewPosition(new it(r,1)).lineNumber,u=t.getViewLineRenderingData(d),h=this._editor.getOption(76),g=this._editor.getOption(117).verticalScrollbarSize;let m;try{m=wg.filter(u.inlineDecorations,d,u.minColumn,u.maxColumn)}catch{m=[]}const v=this._editor.getLineHeightForPosition(new it(r,1)),f=t.getTextDirection(r),k=new AL(!0,!0,u.content,u.continuesWithWrappedLine,u.isBasicASCII,u.containsRTL,0,u.tokens,m,u.tabSize,u.startVisibleColumn,1,1,1,500,"none",!0,!0,null,f,g),A=new sE(2e3),p=tH(k,A);let b;NCt?b=NCt.createHTML(A.build()):b=A.build();const w=document.createElement("span");w.setAttribute(Rxe,String(n)),w.setAttribute(UCt,""),w.setAttribute("role","listitem"),w.tabIndex=0,w.className="sticky-line-content",w.classList.add(`stickyLine${r}`),w.style.lineHeight=`${v}px`,w.innerHTML=b;const O=document.createElement("span");O.setAttribute(Rxe,String(n)),O.setAttribute(rCo,""),O.className="sticky-line-number",O.style.lineHeight=`${v}px`;const y=l.contentLeft;O.style.width=`${y}px`;const C=document.createElement("span");h.renderType===1||h.renderType===3&&r%10===0?C.innerText=r.toString():h.renderType===2&&(C.innerText=Math.abs(r-this._editor.getPosition().lineNumber).toString()),C.className="sticky-line-number-inner",C.style.width=`${l.lineNumbersWidth}px`,C.style.paddingLeft=`${l.lineNumbersLeft}px`,O.appendChild(C);const _=this._renderFoldingIconForLine(a,r);_&&(O.appendChild(_.domNode),_.domNode.style.left=`${l.lineNumbersWidth+l.lineNumbersLeft}px`,_.domNode.style.lineHeight=`${v}px`),this._editor.applyFontInfo(w),this._editor.applyFontInfo(O),O.style.lineHeight=`${v}px`,w.style.lineHeight=`${v}px`,O.style.height=`${v}px`,w.style.height=`${v}px`;const S=new sCo(n,r,w,O,_,p.characterMapping,w.scrollWidth,v);return this._updatePosition(S,o,s)}_updatePosition(t,n,r){var a;const o=t.lineDomNode,s=t.lineNumberDomNode;if(r){const l="0";o.style.zIndex=l,s.style.zIndex=l;const d=`${n+this._lastLineRelativePosition+((a=t.foldingIcon)!=null&&a.isCollapsed?1:0)}px`;o.style.top=d,s.style.top=d}else{const l="1";o.style.zIndex=l,s.style.zIndex=l,o.style.top=`${n}px`,s.style.top=`${n}px`}return t}_renderFoldingIconForLine(t,n){const r=this._editor.getOption(126);if(!t||r==="never")return;const o=t.regions,s=o.findRange(n),a=o.getStartLineNumber(s);if(!(n===a))return;const d=o.isCollapsed(s),u=new aCo(d,a,o.getEndLineNumber(s),this._lineHeight);return u.setVisible(this._isOnGlyphMargin?!0:d||r==="always"),u.domNode.setAttribute(jCt,""),u}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(t){0<=t&&t0)return null;const n=this._getRenderedStickyLineFromChildDomNode(t);if(!n)return null;const r=rV(n.characterMapping,t,0);return new it(n.lineNumber,r)}getLineNumberFromChildDomNode(t){var n;return((n=this._getRenderedStickyLineFromChildDomNode(t))==null?void 0:n.lineNumber)??null}_getRenderedStickyLineFromChildDomNode(t){const n=this.getLineIndexFromChildDomNode(t);return n===null||n<0||n>=this._renderedStickyLines.length?null:this._renderedStickyLines[n]}getLineIndexFromChildDomNode(t){const n=this._getAttributeValue(t,Rxe);return n?parseInt(n,10):null}isInStickyLine(t){return this._getAttributeValue(t,UCt)!==void 0}isInFoldingIconDomNode(t){return this._getAttributeValue(t,jCt)!==void 0}_getAttributeValue(t,n){for(;t&&t!==this._rootDomNode;){const r=t.getAttribute(n);if(r!==null)return r;t=t.parentElement}}}class sCo{constructor(t,n,r,o,s,a,l,d){this.index=t,this.lineNumber=n,this.lineDomNode=r,this.lineNumberDomNode=o,this.foldingIcon=s,this.characterMapping=a,this.scrollWidth=l,this.height=d}}class aCo{constructor(t,n,r,o){this.isCollapsed=t,this.foldingStartLine=n,this.foldingEndLine=r,this.dimension=o,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${o}px`,this.domNode.style.lineHeight=`${o}px`,this.domNode.className=fi.asClassName(t?w0e:b0e)}setVisible(t){this.domNode.style.cursor=t?"pointer":"default",this.domNode.style.opacity=t?"1":"0"}}class UZ{constructor(t,n){this.startLineNumber=t,this.endLineNumber=n}}class $0e{constructor(t,n,r){this.range=t,this.children=n,this.parent=r}}class gIn{constructor(t,n,r,o){this.uri=t,this.version=n,this.element=r,this.outlineProviderId=o}}var U3e=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},oee=function(e,t){return function(n,r){t(n,r,e)}},jZ;(function(e){e.OUTLINE_MODEL="outlineModel",e.FOLDING_PROVIDER_MODEL="foldingProviderModel",e.INDENTATION_MODEL="indentationModel"})(jZ||(jZ={}));var O9;(function(e){e[e.VALID=0]="VALID",e[e.INVALID=1]="INVALID",e[e.CANCELED=2]="CANCELED"})(O9||(O9={}));let CVe=class extends ft{constructor(t,n,r,o){switch(super(),this._editor=t,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new dA(300)),this._updateOperation=this._register(new xt),this._editor.getOption(131).defaultModel){case jZ.OUTLINE_MODEL:this._modelProviders.push(new _Ve(this._editor,o));case jZ.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new LVe(this._editor,n,o));case jZ.INDENTATION_MODEL:this._modelProviders.push(new SVe(this._editor,r));break}}dispose(){this._modelProviders.forEach(t=>t.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(t){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const n of this._modelProviders){const{statusPromise:r,modelPromise:o}=n.computeStickyModel(t);this._modelPromise=o;const s=await r;if(this._modelPromise!==o)return null;switch(s){case O9.CANCELED:return this._updateOperation.clear(),null;case O9.VALID:return n.stickyModel}}return null}).catch(n=>(zi(n),null))}};CVe=U3e([oee(2,Yn),oee(3,Nn)],CVe);class mIn extends ft{constructor(t){super(),this._editor=t,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,O9.INVALID}computeStickyModel(t){if(t.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const n=Fd(r=>this.createModelFromProvider(r));return{statusPromise:n.then(r=>this.isModelValid(r)?t.isCancellationRequested?O9.CANCELED:(this._stickyModel=this.createStickyModel(t,r),O9.VALID):this._invalid()).then(void 0,r=>(zi(r),O9.CANCELED)),modelPromise:n}}isModelValid(t){return!0}isProviderValid(){return!0}}let _Ve=class extends mIn{constructor(t,n){super(t),this._languageFeaturesService=n}createModelFromProvider(t){return rS.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),t)}createStickyModel(t,n){var a;const{stickyOutlineElement:r,providerID:o}=this._stickyModelFromOutlineModel(n,(a=this._stickyModel)==null?void 0:a.outlineProviderId),s=this._editor.getModel();return new gIn(s.uri,s.getVersionId(),r,o)}isModelValid(t){return t&&t.children.size>0}_stickyModelFromOutlineModel(t,n){let r;if(to.first(t.children.values())instanceof $Rn){const l=to.find(t.children.values(),d=>d.id===n);if(l)r=l.children;else{let d="",u=-1,h;for(const[g,m]of t.children.entries()){const v=this._findSumOfRangesOfGroup(m);v>u&&(h=m,u=v,d=m.id)}n=d,r=h.children}}else r=t.children;const o=[],s=Array.from(r.values()).sort((l,d)=>{const u=new UZ(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber),h=new UZ(d.symbol.range.startLineNumber,d.symbol.range.endLineNumber);return this._comparator(u,h)});for(const l of s)o.push(this._stickyModelFromOutlineElement(l,l.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new $0e(void 0,o,void 0),providerID:n}}_stickyModelFromOutlineElement(t,n){const r=[];for(const s of t.children.values())if(s.symbol.selectionRange.startLineNumber!==s.symbol.range.endLineNumber)if(s.symbol.selectionRange.startLineNumber!==n)r.push(this._stickyModelFromOutlineElement(s,s.symbol.selectionRange.startLineNumber));else for(const a of s.children.values())r.push(this._stickyModelFromOutlineElement(a,s.symbol.selectionRange.startLineNumber));r.sort((s,a)=>this._comparator(s.range,a.range));const o=new UZ(t.symbol.selectionRange.startLineNumber,t.symbol.range.endLineNumber);return new $0e(o,r,void 0)}_comparator(t,n){return t.startLineNumber!==n.startLineNumber?t.startLineNumber-n.startLineNumber:n.endLineNumber-t.endLineNumber}_findSumOfRangesOfGroup(t){let n=0;for(const r of t.children.values())n+=this._findSumOfRangesOfGroup(r);return t instanceof GWe?n+t.symbol.range.endLineNumber-t.symbol.selectionRange.startLineNumber:n}};_Ve=U3e([oee(1,Nn)],_Ve);class kIn extends mIn{constructor(t){super(t),this._foldingLimitReporter=this._register(new URn(t))}createStickyModel(t,n){const r=this._fromFoldingRegions(n),o=this._editor.getModel();return new gIn(o.uri,o.getVersionId(),r,void 0)}isModelValid(t){return t!==null}_fromFoldingRegions(t){const n=t.length,r=[],o=new $0e(void 0,[],void 0);for(let s=0;s{this._updateProvider(t,n)})),this._updateProvider(t,n)}_updateProvider(t,n){const r=R6.getFoldingRangeProviders(this._languageFeaturesService,t.getModel());r.length!==0&&(this.provider.value=new Dnt(t.getModel(),r,n,this._foldingLimitReporter,void 0))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(t){var n;return((n=this.provider.value)==null?void 0:n.compute(t))??null}};LVe=U3e([oee(2,Nn)],LVe);var lCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},WCt=function(e,t){return function(n,r){t(n,r,e)}};class cCo{constructor(t,n,r,o){this.startLineNumber=t,this.endLineNumber=n,this.top=r,this.height=o}}let xVe=class extends ft{constructor(t,n,r){super(),this._languageFeaturesService=n,this._languageConfigurationService=r,this._onDidChangeStickyScroll=this._register(new at),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new xt),this._updateSoon=this._register(new Es(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(o=>{o.hasChanged(131)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(131).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(Hn(()=>{var n;(n=this._stickyModelProvider)==null||n.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var t;return(t=this._model)==null?void 0:t.version}updateStickyModelProvider(){var t;(t=this._stickyModelProvider)==null||t.dispose(),this._stickyModelProvider=null,this._editor.hasModel()&&(this._stickyModelProvider=new CVe(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var t;(t=this._cts)==null||t.dispose(!0),this._cts=new ja,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(t){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const n=await this._stickyModelProvider.update(t);t.isCancellationRequested||(this._model=n)}getCandidateStickyLinesIntersecting(t){var r;if(!((r=this._model)!=null&&r.element))return[];const n=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(t,this._model.element,n,0,0,-1),this.filterHiddenRanges(n)}getCandidateStickyLinesIntersectingFromStickyModel(t,n,r,o,s,a){const l=this._editor.getModel();if(!l||n.children.length===0)return;let d=a;const u=[];for(let m=0;mm-v)),g=this.updateIndex(yme(u,t.endLineNumber,(m,v)=>m-v));for(let m=h;m<=g;m++){const v=n.children[m];if(!v||!v.range)continue;const{startLineNumber:f,endLineNumber:k}=v.range;if(k>f+1&&t.startLineNumber<=k+1&&f-1<=t.endLineNumber&&f!==d&&l.isValidRange(new Ee(f,1,k,1))){d=f;const A=this._editor.getLineHeightForPosition(new it(f,1));r.push(new cCo(f,k-1,s,A)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,v,r,o+1,s+A,f)}}}filterHiddenRanges(t){var r;const n=(r=this._editor._getViewModel())==null?void 0:r.getHiddenAreas();return n?t.filter(o=>!n.some(s=>o.startLineNumber>=s.startLineNumber&&o.endLineNumber<=s.endLineNumber+1)):t}updateIndex(t){return t===-1?0:t<0?-t-2:t}};xVe=lCo([WCt(1,Nn),WCt(2,kl)],xVe);var dCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},PP=function(e,t){return function(n,r){t(n,r,e)}},EVe,dB;let fp=(dB=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._editor=t,this._contextMenuService=n,this._languageFeaturesService=r,this._instaService=o,this._contextKeyService=l,this._sessionStore=new xt,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new at),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new oCo(this._editor),this._stickyLineCandidateProvider=new xVe(this._editor,r,s),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=NZ.Empty;const d=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight(h=>{h.changes.forEach(g=>{const m=g.lineNumber;this._widgetState.startLineNumbers.includes(m)&&this._renderStickyScroll(m)})})),this._register(this._editor.onDidChangeFont(h=>{h.changes.forEach(g=>{const m=g.lineNumber;this._widgetState.startLineNumbers.includes(m)&&this._renderStickyScroll(m)})})),this._register(this._editor.onDidChangeConfiguration(h=>{this._readConfigurationChange(h)})),this._register(wt(d,rn.CONTEXT_MENU,async h=>{this._onContextMenu(ii(d),h)})),this._stickyScrollFocusedContextKey=$e.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=$e.stickyScrollVisible.bindTo(this._contextKeyService);const u=this._register(uA(d));this._register(u.onDidBlur(h=>{this._positionRevealed===!1&&d.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(u.onDidFocus(h=>{this.focus()})),this._registerMouseListeners(),this._register(wt(d,rn.MOUSE_DOWN,h=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight(h=>{this._onDidChangeStickyScrollHeight.fire(h)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(t){return t.getContribution(EVe.ID)}_disposeFocusStickyScrollStore(){var t;this._stickyScrollFocusedContextKey.set(!1),(t=this._focusDisposableStore)==null||t.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new xt,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(t){this._focusedStickyElementIndex=t?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const t=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:t[this._focusedStickyElementIndex],column:1})}_revealPosition(t){this._reveaInEditor(t,()=>this._editor.revealPosition(t))}_revealLineInCenterIfOutsideViewport(t){this._reveaInEditor(t,()=>this._editor.revealLineInCenterIfOutsideViewport(t.lineNumber,0))}_reveaInEditor(t,n){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,n(),this._editor.setSelection(Ee.fromPositions(t)),this._editor.focus()}_registerMouseListeners(){const t=this._register(new xt),n=this._register(new y3e(this._editor,{extractLineNumberFromMouseEvent:s=>{const a=this._stickyScrollWidget.getEditorPositionFromNode(s.target.element);return a?a.lineNumber:0}})),r=s=>{if(!this._editor.hasModel()||s.target.type!==12||s.target.detail!==this._stickyScrollWidget.getId())return null;const a=s.target.element;if(!a||a.innerText!==a.innerHTML)return null;const l=this._stickyScrollWidget.getEditorPositionFromNode(a);return l?{range:new Ee(l.lineNumber,l.column,l.lineNumber,l.column+a.innerText.length),textElement:a}:null},o=this._stickyScrollWidget.getDomNode();this._register(wc(o,rn.CLICK,s=>{if(s.ctrlKey||s.altKey||s.metaKey||!s.leftButton)return;if(s.shiftKey){const u=this._stickyScrollWidget.getLineIndexFromChildDomNode(s.target);if(u===null)return;const h=new it(this._endLineNumbers[u],1);this._revealLineInCenterIfOutsideViewport(h);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(s.target)){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(s.target);this._toggleFoldingRegionForLine(u);return}if(!this._stickyScrollWidget.isInStickyLine(s.target))return;let d=this._stickyScrollWidget.getEditorPositionFromNode(s.target);if(!d){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(s.target);if(u===null)return;d=new it(u,1)}this._revealPosition(d)})),this._register(wt(Ls,rn.MOUSE_MOVE,s=>{this._mouseTarget=s.target,this._onMouseMoveOrKeyDown(s)})),this._register(wt(Ls,rn.KEY_DOWN,s=>{this._onMouseMoveOrKeyDown(s)})),this._register(wt(Ls,rn.KEY_UP,()=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(n.onMouseMoveOrRelevantKeyDown(([s,a])=>{const l=r(s);if(!l||!s.hasTriggerModifier||!this._editor.hasModel()){t.clear();return}const{range:d,textElement:u}=l;if(!d.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=d,t.clear();else if(u.style.textDecoration==="underline")return;const h=new ja;t.add(Hn(()=>h.dispose(!0)));let g;nre(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new it(d.startLineNumber,d.startColumn+1),!1,h.token).then(m=>{if(!h.token.isCancellationRequested)if(m.length!==0){this._candidateDefinitionsLength=m.length;const v=u;g!==v?(t.clear(),g=v,g.style.textDecoration="underline",t.add(Hn(()=>{g.style.textDecoration="none"}))):g||(g=v,g.style.textDecoration="underline",t.add(Hn(()=>{g.style.textDecoration="none"})))}else t.clear()})})),this._register(n.onCancel(()=>{t.clear()})),this._register(n.onExecute(async s=>{if(s.target.type!==12||s.target.detail!==this._stickyScrollWidget.getId())return;const a=this._stickyScrollWidget.getEditorPositionFromNode(s.target.element);a&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:a.lineNumber,column:1})),this._instaService.invokeFunction(_Rn,s,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(t,n){const r=new Xh(t,n);this._contextMenuService.showContextMenu({menuId:Wn.StickyScrollContext,getAnchor:()=>r})}_onMouseMoveOrKeyDown(t){if(!t.shiftKey||!this._mouseTarget||!ec(this._mouseTarget))return;const n=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);n===null||this._showEndForLine===n||(this._showEndForLine=n,this._renderStickyScroll())}_toggleFoldingRegionForLine(t){if(!this._foldingModel||t===null)return;const n=this._stickyScrollWidget.getRenderedStickyLine(t),r=n==null?void 0:n.foldingIcon;if(!r)return;xnt(this._foldingModel,1,[t]),r.isCollapsed=!r.isCollapsed;const o=(r.isCollapsed?this._editor.getTopForLineNumber(r.foldingEndLine):this._editor.getTopForLineNumber(r.foldingStartLine))-this._editor.getOption(75)*n.index+1;this._editor.setScrollTop(o),this._renderStickyScroll(t)}_readConfiguration(){const t=this._editor.getOption(131);if(t.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else t.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(r=>{r.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(r=>this._onTokensChange(r))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(76).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(t){(t.hasChanged(131)||t.hasChanged(81)||t.hasChanged(75)||t.hasChanged(126)||t.hasChanged(76))&&this._readConfiguration(),(t.hasChanged(76)||t.hasChanged(52)||t.hasChanged(126))&&this._renderStickyScroll(0)}_needsUpdate(t){const n=this._stickyScrollWidget.getCurrentLines();for(const r of n)for(const o of t.ranges)if(r>=o.fromLineNumber&&r<=o.toLineNumber)return!0;return!1}_onTokensChange(t){this._needsUpdate(t)&&this._renderStickyScroll(0)}_onDidResize(){const n=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(n*.25),this._renderStickyScroll(0)}async _renderStickyScroll(t){const n=this._editor.getModel();if(!n||n.isTooLargeForTokenization()){this._resetState();return}const r=this._updateAndGetMinRebuildFromLine(t),o=this._stickyLineCandidateProvider.getVersionId();if(o===void 0||o===n.getVersionId())if(!this._focused)await this._updateState(r);else if(this._focusedStickyElementIndex===-1)await this._updateState(r),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const a=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(r),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(a)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(t){if(t!==void 0){const n=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(t,n)}return this._minRebuildFromLine}async _updateState(t){var r;this._minRebuildFromLine=void 0,this._foldingModel=await((r=R6.get(this._editor))==null?void 0:r.getFoldingModel())??void 0,this._widgetState=this.findScrollWidgetState();const n=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(n),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=NZ.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const t=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),n=this._editor.getScrollTop();let r=0;const o=[],s=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new UZ(a[0].startLineNumber,a[a.length-1].endLineNumber),d=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const u of d){const h=u.startLineNumber,g=u.endLineNumber,m=u.top,v=m+u.height,f=this._editor.getTopForLineNumber(h)-n,k=this._editor.getBottomForLineNumber(g)-n;if(m>f&&m<=k&&(o.push(h),s.push(g+1),v>k&&(r=k-v)),o.length===t)break}}return this._endLineNumbers=s,new NZ(o,s,r,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},EVe=dB,dB.ID="store.contrib.stickyScrollController",dB);fp=EVe=dCo([PP(1,S2),PP(2,Nn),PP(3,Yn),PP(4,kl),PP(5,CA),PP(6,Qi)],fp);const WZ=Ve("inlineEdit.originalBackground",Zi(h9,.2),U(1220,"Background color for the original text in inline edits."),!0),vIn=Ve("inlineEdit.modifiedBackground",Zi(cQ,.3),U(1221,"Background color for the modified text in inline edits."),!0);Ve("inlineEdit.originalChangedLineBackground",Zi(h9,.8),U(1222,"Background color for the changed lines in the original text of inline edits."),!0);const uCo=Ve("inlineEdit.originalChangedTextBackground",Zi(h9,.8),U(1223,"Overlay color for the changed text in the original text of inline edits."),!0),hCo=Ve("inlineEdit.modifiedChangedLineBackground",{light:Zi(gle,.7),dark:Zi(gle,.7),hcDark:gle,hcLight:gle},U(1224,"Background color for the changed lines in the modified text of inline edits."),!0),fCo=Ve("inlineEdit.modifiedChangedTextBackground",Zi(cQ,.7),U(1225,"Overlay color for the changed text in the modified text of inline edits."),!0),gCo=Ve("inlineEdit.gutterIndicator.primaryForeground",Ybe,U(1226,"Foreground color for the primary inline edit gutter indicator.")),_N=Ve("inlineEdit.gutterIndicator.primaryBorder",dQ,U(1227,"Border color for the primary inline edit gutter indicator.")),AIn=Ve("inlineEdit.gutterIndicator.primaryBackground",{light:Zi(_N,.5),dark:Zi(_N,.4),hcDark:Zi(_N,.4),hcLight:Zi(_N,.5)},U(1228,"Background color for the primary inline edit gutter indicator.")),mCo=Ve("inlineEdit.gutterIndicator.secondaryForeground",Q7n,U(1229,"Foreground color for the secondary inline edit gutter indicator.")),pIn=Ve("inlineEdit.gutterIndicator.secondaryBorder",Gme,U(1230,"Border color for the secondary inline edit gutter indicator.")),bIn=Ve("inlineEdit.gutterIndicator.secondaryBackground",pIn,U(1231,"Background color for the secondary inline edit gutter indicator.")),kCo=Ve("inlineEdit.gutterIndicator.successfulForeground",Ybe,U(1232,"Foreground color for the successful inline edit gutter indicator.")),wIn=Ve("inlineEdit.gutterIndicator.successfulBorder",dQ,U(1233,"Border color for the successful inline edit gutter indicator.")),OIn=Ve("inlineEdit.gutterIndicator.successfulBackground",wIn,U(1234,"Background color for the successful inline edit gutter indicator.")),vCo=Ve("inlineEdit.gutterIndicator.background",{hcDark:Zi("tab.inactiveBackground",.5),hcLight:Zi("tab.inactiveBackground",.5),dark:Zi("tab.inactiveBackground",.5),light:"#5f5f5f18"},U(1235,"Background color for the inline edit gutter indicator.")),$G=Ve("inlineEdit.originalBorder",{light:h9,dark:h9,hcDark:h9,hcLight:h9},U(1236,"Border color for the original text in inline edits.")),XG=Ve("inlineEdit.modifiedBorder",{light:l1(cQ,.6),dark:cQ,hcDark:cQ,hcLight:cQ},U(1237,"Border color for the modified text in inline edits.")),ACo=Ve("inlineEdit.tabWillAcceptModifiedBorder",{light:l1(XG,0),dark:l1(XG,0),hcDark:l1(XG,0),hcLight:l1(XG,0)},U(1238,"Modified border color for the inline edits widget when tab will accept it.")),pCo=Ve("inlineEdit.tabWillAcceptOriginalBorder",{light:l1($G,0),dark:l1($G,0),hcDark:l1($G,0),hcLight:l1($G,0)},U(1239,"Original border color for the inline edits widget over the original text when tab will accept it."));function see(e){return e.map(t=>t===wf.Accept?ACo:XG)}function j3e(e){return e.map(t=>t===wf.Accept?pCo:$G)}function gv(e,t){let n;typeof e=="string"?n=Ixe(e,t):n=e.map((o,s)=>Ixe(o,t).read(s));const r=Ixe(Oc,t);return n.map((o,s)=>o.makeOpaque(r.read(s)))}function Ixe(e,t){return gEn({owner:{observeColor:e},equalsFn:(n,r)=>n.equals(r),debugName:()=>`observeColor(${e})`},t.onDidColorThemeChange,()=>{const n=t.getColorTheme().getColor(e);if(!n)throw new ui(`Missing color: ${e}`);return n})}function y9(e,t,n){e.layoutInfo.read(n),e.value.read(n);const r=e.model.read(n);if(!r)return 0;let o=0;e.scrollTop.read(n);for(let a=t.startLineNumber;ar.getLineContent(a));return o<5&&s.some(a=>a.length>0)&&r.uri.scheme!=="file"&&console.error("unexpected width"),o}function bCo(e,t,n){return e.layoutInfo.read(n),e.value.read(n),e.model.read(n)?(e.scrollTop.read(n),e.editor.getOffsetForColumn(t.lineNumber,t.column)):0}function Nnt(e,t,n,r,o=void 0){const s=r.getModel();if(!s)return{prefixTrim:0,prefixLeftOffset:0};const a=e.map(m=>m.isSingleLine()?m.startColumn-1:0),l=t.mapToLineArray(m=>EUe(s.getLineContent(m))),d=n.filter(m=>m!=="").map(m=>EUe(m)),u=Math.min(...a,...l,...d);let h;if(s.getLineIndentColumn(t.startLineNumber)>=u+1)hl(r).scrollTop.read(o),h=r.getOffsetForColumn(t.startLineNumber,u+1);else if(n.length>0)h=Unt(n[0].slice(0,u),r,s);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:u,prefixLeftOffset:h}}function Unt(e,t,n){const r=t.getOption(59).typicalHalfwidthCharacterWidth,o=n.getOptions().tabSize*r,s=e.split(" ").length-1;return(e.length-s)*r+s*o}function jnt(e){const t=e.layoutInfoContentLeft,n=Rt({name:"editor.validOverlay.width"},o=>{const s=e.layoutInfoMinimap.read(o).minimapLeft!==0,a=e.layoutInfoWidth.read(o)-t.read(o);if(s){const l=e.layoutInfoMinimap.read(o).minimapWidth+e.layoutInfoVerticalScrollbarWidth.read(o);return a-l}return a}),r=Rt({name:"editor.validOverlay.height"},o=>e.layoutInfoHeight.read(o)+e.contentHeight.read(o));return Rt({name:"editor.validOverlay"},o=>Vs.fromLeftTopWidthHeight(t.read(o),0,n.read(o),r.read(o)))}function wCo(e,t){const n=[];for(const r of e){const o=t.mapRange(r.modifiedRange);n.push(new im(r.originalRange,o))}return n}function Mxe(...e){return e.filter(t=>typeof t=="string").join(" ")}function OCo(e,t){return new Ee(t.lineNumber,t.column+e.start,t.lineNumber,t.column+e.endExclusive)}function yCo(e,t){let n=0;e:for(let r=0,o=e.length;ryCo(r[a-1],n)),T0);return t.forEach(a=>{const l=CCo(r[a-1],s,n);o.push(new Mc(OCo(new Xn(0,l),new it(a,1)),""))}),new V4(o)}class TVe{constructor(){this._data=""}moveTo(t){return this._data+=`M ${t.x} ${t.y} `,this}lineTo(t){return this._data+=`L ${t.x} ${t.y} `,this}build(){return this._data}}function By(e){const t=vL(void 0,(n,r)=>e.read(n)||r);return Vh({debugName:()=>`${e.debugName}.mapOutFalsy`},n=>{if(t.read(n),!!e.read(n))return t})}function Pv(e,t=Hd.ofCaller()){return{left:Rt({name:"editor.validOverlay.left"},n=>e(n).left,t),top:Rt({name:"editor.validOverlay.top"},n=>e(n).top,t),width:Rt({name:"editor.validOverlay.width"},n=>e(n).right-e(n).left,t),height:Rt({name:"editor.validOverlay.height"},n=>e(n).bottom-e(n).top,t)}}var SCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Pxe=function(e,t){return function(n,r){t(n,r,e)}};let QVe=class{constructor(t,n,r,o,s,a){this._model=t,this._close=n,this._editorObs=r,this._contextKeyService=o,this._keybindingService=s,this._commandService=a,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map(l=>l.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){const t=Ti("active",void 0),n=m=>({title:m.title,icon:m.icon,keybinding:typeof m.commandId=="string"?this._getKeybinding(m.commandArgs?void 0:m.commandId):Rt(this,v=>typeof m.commandId=="string"?void 0:this._getKeybinding(m.commandArgs?void 0:m.commandId.read(v)).read(v)),isActive:t.map(v=>v===m.id),onHoverChange:v=>t.set(v?m.id:void 0,void 0),onAction:()=>(this._close(!0),this._commandService.executeCommand(typeof m.commandId=="string"?m.commandId:m.commandId.get(),...m.commandArgs??[]))}),r=xCo(this._model.displayName),o=C7(n({id:"gotoAndAccept",title:`${U(1212,"Go To")} / ${U(1213,"Accept")}`,icon:zt.check,commandId:WJ})),s=C7(n({id:"reject",title:U(1214,"Reject"),icon:zt.close,commandId:kBn})),a=this._model.extensionCommands.map((m,v)=>C7(n({id:m.command.id+"_"+v,title:m.command.title,icon:m.icon??zt.symbolEvent,commandId:m.command.id,commandArgs:m.command.arguments}))),l=this._inlineEditsShowCollapsed.map(m=>C7(n(m?{id:"showExpanded",title:U(1215,"Show Expanded"),icon:zt.expandAll,commandId:Xje}:{id:"showCollapsed",title:U(1216,"Show Collapsed"),icon:zt.collapseAll,commandId:Xje}))),d=C7(n({id:"snooze",title:U(1217,"Snooze"),icon:zt.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),u=C7(n({id:"settings",title:U(1218,"Settings"),icon:zt.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),h=this._model.action?[this._model.action]:[],g=h.length>0?ECo(h.map(m=>({id:m.id,label:m.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(m.id,...m.arguments??[]),class:void 0,tooltip:m.tooltip??m.title})),{hoverDelegate:jko}):void 0;return LCo([r,o,s,l,a.length?VCt():void 0,d,u,...a,g?VCt():void 0,g])}_getKeybinding(t){return t?Ko(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(t)):ca(void 0)}};QVe=SCo([Pxe(3,Qi),Pxe(4,Do),Pxe(5,ba)],QVe);function LCo(e){return cr.div({class:"content",style:{margin:4,minWidth:180}},e)}function xCo(e){return cr.div({class:"header",style:{color:en(O7n),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[e])}function C7(e){return Rt({name:"inlineEdits.option"},t=>{var n;return cr.div({class:["monaco-menu-option",(n=e.isActive)==null?void 0:n.map(r=>r&&"active")],onmouseenter:()=>{var r;return(r=e.onHoverChange)==null?void 0:r.call(e,!0)},onmouseleave:()=>{var r;return(r=e.onHoverChange)==null?void 0:r.call(e,!1)},onclick:e.onAction,onkeydown:r=>{var o;r.key==="Enter"&&((o=e.onAction)==null||o.call(e))},tabIndex:0,style:{borderRadius:3}},[cr.elem("span",{style:{fontSize:16,display:"flex"}},[fi.isThemeIcon(e.icon)?y3(e.icon):e.icon.map(r=>y3(r))]),cr.elem("span",{},[e.title]),cr.div({style:{marginLeft:"auto"},ref:r=>{const o=t.store.add(new cH(r,b0,{disableTitle:!0,...fDn,keybindingLabelShadow:void 0,keybindingLabelForeground:en(O7n),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));t.store.add(Oi(s=>{o.set(e.keybinding.read(s))}))}})])})}function ECo(e,t){return Rt({name:"inlineEdits.actionBar"},n=>cr.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[cr.div({ref:r=>{n.store.add(new g1(r,t)).push(e,{icon:!1,label:!0})}})]))}function VCt(){return cr.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:en(rao),padding:"2px 0"}},cr.div({style:{borderBottom:`1px solid ${en(wet)}`}}))}var TCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},cce=function(e,t){return function(n,r){t(n,r,e)}};let DVe=class extends ft{get model(){const t=this._model.get();if(!t)throw new ui("Inline Edit Model not available");return t}constructor(t,n,r,o,s,a,l,d,u,h){super(),this._editorObs=t,this._originalRange=n,this._verticalOffset=r,this._model=o,this._isHoveringOverInlineEdit=s,this._focusIsInMenu=a,this._hoverService=l,this._instantiationService=d,this._accessibilityService=u,this._tabAction=Rt(this,g=>{const m=this._model.read(g);return m?m.tabAction.read(g):wf.Inactive}),this._hoverVisible=Ti(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=Ti(this,!1),this._isHoveredOverIconDebounced=wbt(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._isHoveredOverInlineEditDebounced=wbt(this._isHoveringOverInlineEdit,100),this._gutterIndicatorStyles=this._tabAction.map(this,(g,m)=>{switch(g){case wf.Inactive:return{background:gv(bIn,h).read(m).toString(),foreground:gv(mCo,h).read(m).toString(),border:gv(pIn,h).read(m).toString()};case wf.Jump:return{background:gv(AIn,h).read(m).toString(),foreground:gv(gCo,h).read(m).toString(),border:gv(_N,h).read(m).toString()};case wf.Accept:return{background:gv(OIn,h).read(m).toString(),foreground:gv(kCo,h).read(m).toString(),border:gv(wIn,h).read(m).toString()};default:bie()}}),this._originalRangeObs=By(this._originalRange),this._state=Rt(this,g=>{const m=this._originalRangeObs.read(g);if(m)return{range:m,lineOffsetRange:this._editorObs.observeLineOffsetRange(m,g.store)}}),this._stickyScrollController=fp.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Ko(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):ca(0),this._lineNumberToRender=Rt(this,g=>{var f;if(this._verticalOffset.read(g)!==0)return"";const m=(f=this._originalRange.read(g))==null?void 0:f.startLineNumber,v=this._editorObs.getOption(76).read(g);if(m===void 0||v.renderType===0)return"";if(v.renderType===3){const k=this._editorObs.cursorPosition.read(g);return m%10===0||k&&k.lineNumber===m?m.toString():""}if(v.renderType===2){const k=this._editorObs.cursorPosition.read(g);if(!k)return"";const A=Math.abs(m-k.lineNumber);return A===0?m.toString():A.toString()}return v.renderType===4?v.renderFn?v.renderFn(m):"":m.toString()}),this._availableWidthForIcon=Rt(this,g=>{const m=this._editorObs.editor.getModel(),v=this._editorObs.editor,f=this._editorObs.layoutInfo.read(g),k=f.decorationsLeft+f.decorationsWidth-f.glyphMarginLeft;if(!m||k<=0)return()=>0;if(f.lineNumbersLeft===0)return()=>k;const A=this._editorObs.getOption(76).read(g);if(A.renderType===2||A.renderType===0)return()=>k;const p=v.getOption(59).typicalHalfwidthCharacterWidth,b=f.lineNumbersLeft+f.lineNumbersWidth,O=(m.getLineCount()+1).toString().length,y=[];for(let C=1;C<=O;C++){const _=10**(C-1),S=v.getTopForLineNumber(_),L=C*p,E=Math.min(k,Math.max(0,b-L-f.glyphMarginLeft));y.push({firstLineNumberWithDigitCount:_,topOfLineNumber:S,usableWidthLeftOfLineNumber:E})}return C=>{for(let _=y.length-1;_>=0;_--)if(C>=y[_].topOfLineNumber)return y[_].usableWidthLeftOfLineNumber;throw new ui("Could not find avilable width for icon")}}),this._layout=Rt(this,g=>{const m=this._state.read(g);if(!m)return;const v=this._editorObs.layoutInfo.read(g),f=this._editorObs.observeLineHeightForLine(m.range.map(H=>H.startLineNumber)).read(g),k=2,A=v.decorationsLeft+v.decorationsWidth-v.glyphMarginLeft-2*k,p=v.height-2*k,b=Vs.fromLeftTopWidthHeight(k,k,A,p),w=b.withTop(this._stickyScrollHeight.read(g)),O=b.withTop(w.top+k),y=m.lineOffsetRange.read(g),C=Vs.fromRanges(Xn.fromTo(O.left,O.right),y),_=f,S=this._verticalOffset.read(g),L=C.withHeight(_).translateY(S),E=w.containsRect(L),T=this._tabAction.map(H=>H===wf.Accept?zt.keyboardTab:zt.arrowRight),D=Rt(this,H=>{if(this._isHoveredOverIconDebounced.read(H)||this._isHoveredOverInlineEditDebounced.read(H))return zt.check;if(this._tabAction.read(H)===wf.Accept)return zt.keyboardTab;const $=this._editorObs.cursorLineNumber.read(H)??0,G=m.range.read(H).startLineNumber;return $<=G?zt.keyboardTabAbove:zt.keyboardTabBelow}),P=22,Q=16,M=H=>{const $=this._availableWidthForIcon.read(void 0)(H.bottom+this._editorObs.editor.getScrollTop())-k;return Math.max(Math.min($,P),Q)};if(E){const H=L;let $;v.lineNumbersWidth===0?$=Math.min(Math.max(v.lineNumbersLeft-b.left,0),H.width-P):$=Math.max(v.lineNumbersLeft+v.lineNumbersWidth-b.left,0);const G=H.withWidth($),q=Math.max(Math.min(v.decorationsWidth,P),Q),re=H.withWidth(q).translateX($);return{gutterEditArea:C,icon:D,iconDirection:"right",iconRect:re,pillRect:H,lineNumberRect:G}}const B=b.intersect(C);if(B&&B.height>=_){const H=L.moveToBeContainedIn(O).moveToBeContainedIn(B),$=H.withWidth(M(H));return{gutterEditArea:C,icon:D,iconDirection:"right",iconRect:$,pillRect:$}}const I=L.moveToBeContainedIn(b),F=I.withWidth(M(I)),j=F,W=F.top!!g),this._indicator=cr.div({class:"inline-edits-view-gutter-indicator",onclick:()=>{const g=this._layout.get(),m=(g==null?void 0:g.icon.get())===zt.check;this._editorObs.editor.focus(),m?this.model.accept():this.model.jump()},tabIndex:0,style:{position:"absolute",overflow:"visible"}},By(this._layout).map(g=>g?[cr.div({style:{position:"absolute",background:en(vCo),borderRadius:"4px",...Pv(m=>g.read(m).gutterEditArea)}}),cr.div({class:"icon",ref:this._iconRef,onmouseenter:()=>{this._showHover()},style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map(m=>m.background),"--vscodeIconForeground":this._gutterIndicatorStyles.map(m=>m.foreground),border:this._gutterIndicatorStyles.map(m=>`1px solid ${m.border}`),boxSizing:"border-box",borderRadius:"4px",display:"flex",justifyContent:"flex-end",transition:"background-color 0.2s ease-in-out, width 0.2s ease-in-out",...Pv(m=>g.read(m).pillRect)}},[cr.div({className:"line-number",style:{lineHeight:g.map(m=>m.lineNumberRect?m.lineNumberRect.height:0),display:g.map(m=>m.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:g.map(m=>m.lineNumberRect?m.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map(m=>m.foreground)}},this._lineNumberToRender),cr.div({style:{rotate:g.map(m=>`${QCo(m.iconDirection)}deg`),transition:"rotate 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",marginRight:g.map(m=>{var v;return m.pillRect.width-m.iconRect.width-(((v=m.lineNumberRect)==null?void 0:v.width)??0)}),width:g.map(m=>m.iconRect.width)}},[g.map((m,v)=>y3(m.icon.read(v)))])])]:[])).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._indicator.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:ca(0)})),this._register(this._editorObs.editor.onMouseMove(g=>{if(this._state.get()===void 0)return;const f=this._iconRef.element.getBoundingClientRect(),k=Vs.fromLeftTopWidthHeight(f.left,f.top,f.width,f.height),A=new cu(g.event.posx,g.event.posy);this._isHoveredOverIcon.set(k.containsPoint(A),void 0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(c3(this._isHoveredOverInlineEditDebounced,g=>{g&&this.triggerAnimation()})),this._register(Oi(g=>{this._indicator.readEffect(g),this._indicator.element&&this._editorObs.editor.applyFontInfo(this._indicator.element)}))}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map(n=>n.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;const t=new xt,n=t.add(this._instantiationService.createInstance(QVe,this.model,s=>{s&&this._editorObs.editor.focus(),o==null||o.dispose()},this._editorObs).toDisposableLiveElement()),r=t.add(uA(n.element));t.add(r.onDidBlur(()=>this._focusIsInMenu.set(!1,void 0))),t.add(r.onDidFocus(()=>this._focusIsInMenu.set(!0,void 0))),t.add(Hn(()=>this._focusIsInMenu.set(!1,void 0)));const o=this._hoverService.showInstantHover({target:this._iconRef.element,content:n.element});o?(this._hoverVisible.set(!0,void 0),t.add(this._editorObs.editor.onDidScrollChange(()=>o.dispose())),t.add(o.onDispose(()=>{this._hoverVisible.set(!1,void 0),t.dispose()}))):t.dispose()}};DVe=TCo([cce(6,pm),cce(7,Yn),cce(8,vh),cce(9,Dl)],DVe);function QCo(e){switch(e){case"top":return 90;case"bottom":return-90;case"right":return 0}}var DCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},zCt=function(e,t){return function(n,r){t(n,r,e)}},Ck;(function(e){e.FirstTime="firstTime",e.SecondTime="secondTime",e.Active="active"})(Ck||(Ck={}));let BVe=class extends ft{constructor(t,n,r,o,s,a){super(),this._host=t,this._model=n,this._indicator=r,this._collapsedView=o,this._storageService=s,this._configurationService=a,this._disposables=this._register(new ts),this._setupDone=Ti({name:"setupDone"},!1),this._activeCompletionId=Rt(l=>{const d=this._model.read(l);if(!d||!this._setupDone.read(l))return;const u=this._indicator.read(l);if(!(!u||!u.isVisible.read(l)))return d.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===Ck.Active)return;const t=new xt;let n=!1,r=!1,o=0,s=0;return t.add(Sdo(this._activeCompletionId,async(a,l,d,u)=>{var g,m;if(a===void 0)return;let h=this.getNewUserType();switch(h){case Ck.FirstTime:{(o++>=5||n)&&(h=Ck.SecondTime,this.setNewUserType(h));break}case Ck.SecondTime:{s++>=3&&r&&(h=Ck.Active,this.setNewUserType(h));break}}switch(h){case Ck.FirstTime:{for(let v=0;v<3&&!u.isCancellationRequested;v++)await((g=this._indicator.get())==null?void 0:g.triggerAnimation()),await Cy(500);break}case Ck.SecondTime:{(m=this._indicator.get())==null||m.triggerAnimation();break}}})),t.add(Oi(a=>{this._collapsedView.isVisible.read(a)&&this.getNewUserType()!==Ck.Active&&this._collapsedView.triggerAnimation()})),t.add(Ef((a,l)=>{const d=this._indicator.read(a);d&&l.add(c3(d.isHoveredOverIcon,async u=>{u&&(n=!0)}))})),t.add(Ef((a,l)=>{const d=this._host.read(a);d&&l.add(d.onDidAccept(()=>{r=!0}))})),t}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,Ck.FirstTime)}setNewUserType(t){switch(t){case Ck.FirstTime:throw new ui("UserKind should not be set to first time");case Ck.SecondTime:break;case Ck.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",t,-1,0)}_initializeDebugSetting(){const t="editor.inlineSuggest.edits.resetNewUserExperience";return this._configurationService.getValue(t)&&this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(t)&&this._configurationService.getValue(t)&&(this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience())})}};BVe=DCo([zCt(4,Bg),zCt(5,ar)],BVe);var BCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},RCo=function(e,t){return function(n,r){t(n,r,e)}};let RVe=class extends ft{constructor(t,n,r){super(),this._editor=t,this._edit=n,this._accessibilityService=r,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._iconRef=cr.ref(),this.isHovered=ca(!1),this._editorObs=hl(this._editor);const s=this._edit.map(u=>(u==null?void 0:u.edit.replacements[0])??null).map(u=>u?IS(u,this._editor.getModel()).range.getStartPosition():null),a=this._editorObs.observePosition(s,this._store),l=Rt(u=>{const h=a.read(u);if(!h)return null;const g=this._editorObs.layoutInfoContentLeft.read(u),m=this._editorObs.scrollLeft.read(u);return new cu(g+h.x-m,h.y)}),d=cr.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(l)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:d,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:ca(0)})),this.isVisible=this._edit.map((u,h)=>!!u&&l.read(h)!==null)}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:.2,transform:"translateY(1px)"},{offset:.36,transform:"translateY(-1px)"},{offset:.52,transform:"translateY(1px)"},{offset:.68,transform:"translateY(-1px)"},{offset:.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2e3}).finished}getCollapsedIndicator(t){const n=this._editorObs.layoutInfoContentLeft,r=t.map((s,a)=>s?s.deltaX(-n.read(a)):null),o=this.createIconPath(r);return cr.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Pv(s=>jnt(this._editorObs).read(s)),overflow:"hidden",pointerEvents:"none"}},[cr.svgElem("path",{class:"collapsedViewPath",d:o,fill:en(_N)})])}createIconPath(t){return t.map(s=>{if(!s)return new TVe().build();const a=s.deltaX(-6/2).deltaY(-1),l=a.deltaX(6),d=a.deltaY(1),u=l.deltaY(1),h=d.deltaX(6/2).deltaY(3);return new TVe().moveTo(a).lineTo(l).lineTo(u).lineTo(h).lineTo(d).lineTo(a).build()})}};RVe=BCo([RCo(2,vh)],RVe);var ICo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},HCt=function(e,t){return function(n,r){t(n,r,e)}};const dce=14,Fxe=0,ZC=4,uce=4,$Ct=2;let IVe=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._languageService=s,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._isHovered=Ti(this,!1),this.isHovered=this._isHovered,this._viewRef=cr.ref(),this._editorObs=hl(this._editor);const a=r.map((h,g)=>{let m;switch(h){case wf.Inactive:m=bIn;break;case wf.Jump:m=AIn;break;case wf.Accept:m=OIn;break}return{border:gv(m,o).read(g).toString(),background:en(Oc)}}),l=n.map(h=>h?this.getState(h):void 0),d=l.map(h=>h?this.getRendering(h,a):void 0);this.minEditorScrollHeight=Rt(this,h=>{const g=l.read(h);return g?g.rect.read(h).bottom+this._editor.getScrollTop():0});const u=cr.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[d]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:u.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:vL(this,(h,g)=>{const m=l.read(h);if(!m)return g??0;const v=m.rect.map(f=>f.right).read(h)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(h)+ZC-this._editorObs.layoutInfoContentLeft.read(h);return Math.max(g??0,v)}).recomputeInitiallyAndOnChange(this._store)})),this._register(Oi(h=>{if(!d.read(h)){this._isHovered.set(!1,void 0);return}this._isHovered.set(u.isHovered.read(h),void 0)}))}fitsInsideViewport(t,n,r){const o=this._editorObs.layoutInfoWidth.read(r),s=this._editorObs.layoutInfoContentLeft.read(r),a=this._editor.getLayoutInfo().verticalScrollbarWidth,l=this._editorObs.layoutInfoMinimap.read(r).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(r).minimapWidth:0,d=y9(this._editorObs,t,void 0),u=Unt(n,this._editor,this._editor.getModel()),h=ZC+dce;return d+u+h{var b;const d=t.range.startLineNumber,u=t.range.endLineNumber,h=t.range.startColumn,g=t.range.endColumn,m=((b=this._editor.getModel())==null?void 0:b.getLineCount())??0,v=y9(this._editorObs,new Ei(d,d+1),l),f=d+1<=m?y9(this._editorObs,new Ei(d+1,d+2),l):void 0,k=d-1>=1?y9(this._editorObs,new Ei(d-1,d),l):void 0,A=this._editor.getOffsetForColumn(d,h),p=this._editor.getOffsetForColumn(u,g);return{lineWidth:v,lineWidthBelow:f,lineWidthAbove:k,startContentLeftOffset:A,endContentLeftOffset:p}}),r=t.range.startLineNumber,o=t.range.endLineNumber,s=this.fitsInsideViewport(new Ei(r,o+1),t.content,void 0);return{rect:Rt(this,l=>{const d=this._editorObs.getOption(59).read(l).typicalHalfwidthCharacterWidth,{lineWidth:u,lineWidthBelow:h,lineWidthAbove:g,startContentLeftOffset:m,endContentLeftOffset:v}=n.read(l),f=this._editorObs.layoutInfoContentLeft.read(l),k=this._editorObs.observeLineHeightForLine(r).recomputeInitiallyAndOnChange(l.store).read(l),A=this._editorObs.scrollTop.read(l),p=this._editorObs.scrollLeft.read(l);let b;r===o&&v+5*d>=u&&s?b="end":h!==void 0&&h+dce-uce-ZCu.withMargin(0,ZC));return cr.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Pv(u=>l.read(u)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:n.map(u=>`1px solid ${u.border}`),borderRadius:"4px",backgroundColor:n.map(u=>u.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:u=>{u.preventDefault()},onclick:u=>{this._onDidClick.fire(new Xh(ii(u),u))}},[r])}};IVe=ICo([HCt(3,Dl),HCt(4,nc)],IVe);const MCo=0,PCo=0,Nxe=1,FCo=1,NCo=3,Uxe=4;class UCo extends ft{constructor(t,n,r,o){super(),this._editor=t,this._edit=n,this._uiState=r,this._tabAction=o,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._display=Rt(this,l=>this._uiState.read(l)?"block":"none"),this._editorMaxContentWidthInRange=Rt(this,l=>{const d=this._originalDisplayRange.read(l);return d?(this._editorObs.versionId.read(l),vL(this,(u,h)=>{const g=y9(this._editorObs,d,u);return Math.max(g,h??0)})):ca(0)}).map((l,d)=>l.read(d)),this._maxPrefixTrim=Rt(this,l=>{const d=this._uiState.read(l);return d?Nnt(d.deletions,d.originalRange,[],this._editor):{prefixTrim:0,prefixLeftOffset:0}}),this._editorLayoutInfo=Rt(this,l=>{const d=this._edit.read(l);if(!d||!this._uiState.read(l))return null;const h=this._editorObs.layoutInfo.read(l),g=this._editorObs.scrollLeft.read(l),m=this._editorObs.getOption(59).map(w=>w.typicalHalfwidthCharacterWidth).read(l),v=h.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(l),m)-g,f=d.originalLineRange,k=this._originalVerticalStartPosition.read(l)??this._editor.getTopForLineNumber(f.startLineNumber)-this._editorObs.scrollTop.read(l),A=this._originalVerticalEndPosition.read(l)??this._editor.getTopForLineNumber(f.endLineNumberExclusive)-this._editorObs.scrollTop.read(l),p=h.contentLeft+this._maxPrefixTrim.read(l).prefixLeftOffset-g;return v<=p?null:{codeRect:Vs.fromLeftTopRightBottom(p,k,v,A).withMargin(PCo,MCo),contentLeft:h.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=cr.div({style:{pointerEvents:"none"}},Rt(this,l=>{const d=By(this._editorLayoutInfo).read(l);if(!d)return;const u=d.map(v=>Vs.fromLeftTopRightBottom(v.contentLeft-Uxe-Nxe,v.codeRect.top,v.contentLeft,v.codeRect.bottom)),h=Rt(this,v=>{const f=d.read(v).codeRect,k=u.read(v);return f.intersectHorizontal(new Xn(k.left,Number.MAX_SAFE_INTEGER))}),g=this._uiState.map(v=>v!=null&&v.inDiffEditor?NCo:FCo).read(l),m=h.map(v=>v.withMargin(g,g));return[cr.div({class:"originalSeparatorDeletion",style:{...m.read(l).toStyles(),borderRadius:`${Uxe}px`,border:`${Nxe+g}px solid ${en(Oc)}`,boxSizing:"border-box"}}),cr.div({class:"originalOverlayDeletion",style:{...h.read(l).toStyles(),borderRadius:`${Uxe}px`,border:j3e(this._tabAction).map(v=>`${Nxe}px solid ${en(v)}`),boxSizing:"border-box",backgroundColor:en(WZ)}}),cr.div({class:"originalOverlayHiderDeletion",style:{...u.read(l).toStyles(),backgroundColor:en(Oc)}})]})).keepUpdated(this._store),this._nonOverflowView=cr.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=ca(!1),this._editorObs=hl(this._editor);const s=Rt(this,l=>{const d=this._edit.read(l);return d?new it(d.originalLineRange.startLineNumber,1):null}),a=Rt(this,l=>{const d=this._edit.read(l);return d?new it(d.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map(l=>l==null?void 0:l.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(s,this._store).map(l=>l==null?void 0:l.y),this._originalVerticalEndPosition=this._editorObs.observePosition(a,this._store).map(l=>l==null?void 0:l.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:Rt(this,l=>{const d=this._editorLayoutInfo.read(l);return d===null?0:d.codeRect.width})}))}}var jCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},XCt=function(e,t){return function(n,r){t(n,r,e)}};const DX=1,WCo=1,VCo=3,jxe=4;let MVe=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._input=n,this._tabAction=r,this._languageService=s,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._state=Rt(this,a=>{const l=this._input.read(a);if(!l)return;const d=this._editor.getModel(),u=d.getEOL();if(l.startColumn===1&&l.lineNumber>1&&d.getLineLength(l.lineNumber)!==0&&l.text.endsWith(u)&&!l.text.startsWith(u)){const h=d.getLineLength(l.lineNumber-1)+1;return{lineNumber:l.lineNumber-1,column:h,text:u+l.text.slice(0,-u.length)}}return{lineNumber:l.lineNumber,column:l.startColumn,text:l.text}}),this._trimVertically=Rt(this,a=>{const l=this._state.read(a),d=l==null?void 0:l.text;if(!d||d.trim()==="")return{topOffset:0,bottomOffset:0,linesTop:0,linesBottom:0};const u=this._editor.getLineHeightForPosition(new it(l.lineNumber,1)),h=this._editor.getModel().getEOL();let g=0,m=0,v=0;for(;vv&&d.endsWith(h,f);f-=h.length)m+=1;return{topOffset:g*u,bottomOffset:m*u,linesTop:g,linesBottom:m}}),this._maxPrefixTrim=Rt(this,a=>{const l=this._state.read(a);if(!l)return{prefixLeftOffset:0,prefixTrim:0};const d=this._editor.getModel(),u=d.getEOL(),h=this._trimVertically.read(a),g=l.text.split(u),m=g.slice(h.linesTop,g.length-h.linesBottom);h.linesTop===0&&(m[0]=d.getLineContent(l.lineNumber)+m[0]);const v=new Ei(l.lineNumber,l.lineNumber+(h.linesTop>0?0:1));return Nnt([],v,m,this._editor)}),this._ghostText=Rt(a=>{const l=this._state.read(a),d=this._maxPrefixTrim.read(a);if(!l)return;const h=this._editor.getModel().getEOL(),m=l.text.split(h).map((v,f)=>new AD(new Ee(f+1,f===0?1:d.prefixTrim+1,f+1,v.length+1),"modified-background",0));return new nee(l.lineNumber,[new M0e(l.column,l.text,!1,m)])}),this._display=Rt(this,a=>this._state.read(a)?"block":"none"),this._editorMaxContentWidthInRange=Rt(this,a=>{const l=this._state.read(a);if(!l)return 0;this._editorObs.versionId.read(a);const d=this._editor.getModel(),u=d.getEOL(),h=l.text.startsWith(u)?"":d.getValueInRange(new Ee(l.lineNumber,1,l.lineNumber,l.column)),g=d.getValueInRange(new Ee(l.lineNumber,l.column,l.lineNumber,d.getLineLength(l.lineNumber)+1)),v=(h+l.text+g).split(u),f=o8.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),k=v.map(A=>{var w;const p=(w=d.tokenization.tokenizeLinesAt(l.lineNumber,[A]))==null?void 0:w[0];let b;return p?b=e8.fromLineTokens(p).toLineTokens(A,this._languageService.languageIdCodec):b=uc.createEmpty(A,this._languageService.languageIdCodec),$ie(new Xie([b]),f,[],tn("div"),!0).minWidthInPx});return Math.max(...k)}),this.startLineOffset=this._trimVertically.map(a=>a.topOffset),this.originalLines=this._state.map(a=>a?new Ei(a.lineNumber,Math.min(a.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=Rt(this,a=>{this._ghostText.read(a);const l=this._state.read(a);if(!l)return null;this._editorObs.observePosition(Ti(this,new it(l.lineNumber,l.column)),a.store).read(a);const d=this._editorObs.layoutInfo.read(a),u=this._editorObs.scrollLeft.read(a),h=this._editorObs.layoutInfoVerticalScrollbarWidth.read(a),g=d.contentLeft+this._editorMaxContentWidthInRange.read(a)-u,m=this._maxPrefixTrim.read(a).prefixLeftOffset??0,v=d.contentLeft+m-u;if(g<=v)return null;const{topOffset:f,bottomOffset:k}=this._trimVertically.read(a),A=this._editorObs.scrollTop.read(a),p=this._ghostTextView.height.read(a)-f-k,b=this._editor.getTopForLineNumber(l.lineNumber)-A+f,w=b+p,O=new Vs(v,b,g,w);return{overlay:O,startsAtContentLeft:m===0,contentLeft:d.contentLeft,minContentWidthRequired:m+O.width+h}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=cr.div({style:{pointerEvents:"none"}},Rt(this,a=>{const l=By(this._overlayLayout).read(a);if(!l)return;const d=l.map(m=>Vs.fromLeftTopRightBottom(m.contentLeft-jxe-DX,m.overlay.top,m.contentLeft,m.overlay.bottom)).read(a),u=this._input.map(m=>m!=null&&m.inDiffEditor?VCo:WCo).read(a),h=l.map(m=>m.overlay.withMargin(0,DX,0,m.startsAtContentLeft?0:DX).intersectHorizontal(new Xn(d.left,Number.MAX_SAFE_INTEGER))),g=h.map(m=>m.withMargin(u,u));return[cr.div({class:"originalUnderlayInsertion",style:{...g.read(a).toStyles(),borderRadius:jxe,border:`${DX+u}px solid ${en(Oc)}`,boxSizing:"border-box"}}),cr.div({class:"originalOverlayInsertion",style:{...h.read(a).toStyles(),borderRadius:jxe,border:see(this._tabAction).map(m=>`${DX}px solid ${en(m)}`),boxSizing:"border-box",backgroundColor:en(vIn)}}),cr.div({class:"originalOverlayHiderInsertion",style:{...d.toStyles(),backgroundColor:en(Oc)}})]})).keepUpdated(this._store),this._view=cr.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=hl(this._editor),this._ghostTextView=this._register(o.createInstance(ree,this._editor,{ghostText:this._ghostText,minReservedLineCount:ca(0),targetTextModel:this._editorObs.model.map(a=>a??void 0),warning:ca(void 0),handleInlineCompletionShown:ca(()=>{})},Ti(this,{syntaxHighlightingEnabled:!0,extraClasses:["inline-edit"]}),!0,!0)),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick(a=>{this._onDidClick.fire(a)})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:Rt(this,a=>{const l=this._overlayLayout.read(a);return l===null?0:l.minContentWidthRequired})}))}};MVe=jCo([XCt(3,Yn),XCt(4,nc)],MVe);var zCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},GCt=function(e,t){return function(n,r){t(n,r,e)}};let PVe=class extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._edit=n,this._isInDiffEditor=r,this._tabAction=o,this._languageService=s,this._themeService=a,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((l,d)=>l?Nnt(l.replacements.flatMap(u=>[u.originalRange,u.modifiedRange]),l.originalRange,l.modifiedLines,this._editor.editor,d):void 0),this._modifiedLineElements=Rt(this,l=>{var A;const d=[];let u=0;const h=this._maxPrefixTrim.read(l),g=this._edit.read(l);if(!g||!h)return;const m=h.prefixTrim,v=HCo(g.replacements.map(p=>p.modifiedRange)).map(p=>new Ee(p.startLineNumber,p.startColumn-m,p.endLineNumber,p.endColumn-m)),f=this._editor.model.get(),k=g.modifiedRange.startLineNumber;for(let p=0;pE.startLineNumber===w)){const E=Math.min(L.endColumn,O.length+1);_.push(new AD(new Ee(1,L.startColumn,1,E),"inlineCompletions-modified-bubble",0))}const S=$ie(new Xie([C]),o8.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),_,b,!0);this._editor.getOption(59).read(l),u=Math.max(u,S.minWidthInPx),d.push(b)}return{lines:d,requiredWidth:u}}),this._layout=Rt(this,l=>{const d=this._modifiedLineElements.read(l),u=this._maxPrefixTrim.read(l),h=this._edit.read(l);if(!d||!u||!h)return;const{prefixLeftOffset:g}=u,{requiredWidth:m}=d,v=this._editor.observeLineHeightsForLineRange(h.originalRange).read(l),f=(()=>{const B=v.slice(0,h.modifiedRange.length);for(;B.lengththis._editor.editor.getOffsetForColumn(B,O.getLineMaxColumn(B))-g),C=Math.max(...y,m),_=h.originalRange.startLineNumber,S=h.originalRange.endLineNumberExclusive-1,L=this._editor.editor.getTopForLineNumber(_)-b,E=this._editor.editor.getBottomForLineNumber(S)-b,T=Vs.fromLeftTopWidthHeight(w+g,L,C,E-L),D=Vs.fromLeftTopWidthHeight(T.left,T.bottom,T.width,f.reduce((B,R)=>B+R,0)),P=Vs.hull([T,D]),Q=P.intersectVertical(new Xn(T.bottom,Number.MAX_SAFE_INTEGER)),M=new Vs(Q.left,Q.top,Q.right,Q.bottom);return{originalLinesOverlay:T,modifiedLinesOverlay:D,background:P,lowerBackground:Q,lowerText:M,modifiedLineHeights:f,minContentWidthRequired:g+C+A}}),this._viewZoneInfo=Rt(l=>{if(!this._editor.getOption(71).map(v=>v.edits.allowCodeShifting==="always").read(l))return;const u=this._layout.read(l),h=this._edit.read(l);if(!u||!h)return;const g=u.lowerBackground.height,m=h.originalRange.endLineNumberExclusive;return{height:g,lineNumber:m}}),this.minEditorScrollHeight=Rt(this,l=>{const d=By(this._layout).read(l);return!d||this._viewZoneInfo.read(l)!==void 0?0:d.read(l).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=cr.div({class:"line-replacement"},[Rt(this,l=>{const d=By(this._layout).read(l),u=this._modifiedLineElements.read(l);if(!d||!u)return[];const h=d.read(l),g=this._editor.layoutInfoContentLeft.read(l),m=this._isInDiffEditor.read(l)?3:1;u.lines.forEach((k,A)=>{k.style.width=`${h.lowerText.width}px`,k.style.height=`${h.modifiedLineHeights[A]}px`,k.style.position="relative"});const v=see(this._tabAction).read(l),f=j3e(this._tabAction).read(l);return[cr.div({style:{position:"absolute",...Pv(k=>jnt(this._editor).read(k)),overflow:"hidden",pointerEvents:"none"}},[cr.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Pv(k=>d.read(k).background.translateX(-g).withMargin(m)),borderRadius:"4px",border:`${m+1}px solid ${en(Oc)}`,boxSizing:"border-box",pointerEvents:"none"}}),cr.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Pv(k=>d.read(k).background.translateX(-g)),borderRadius:"4px",border:gv(f,this._themeService).map(k=>`1px solid ${k.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:en(WZ)}}),cr.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Pv(k=>d.read(k).lowerBackground.translateX(-g)),borderRadius:"0 0 4px 4px",background:en(Oc),boxShadow:`${en(zbe)} 0 6px 6px -6px`,border:`1px solid ${en(v)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:k=>{k.preventDefault()},onclick:k=>this._onDidClick.fire(new Xh(ii(k),k))},[cr.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:en(hCo)}})]),cr.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Pv(k=>d.read(k).lowerText.translateX(-g)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:"0 0 4px 4px",overflow:"hidden"}},[...u.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered(l=>this._isMouseOverWidget(l),this._store),this._previousViewZoneInfo=void 0,this._register(Hn(()=>this._editor.editor.changeViewZones(l=>this.removePreviousViewZone(l)))),this._register(Oto(this._viewZoneInfo,({lastValue:l,newValue:d})=>{l===d||(l==null?void 0:l.height)===(d==null?void 0:d.height)&&(l==null?void 0:l.lineNumber)===(d==null?void 0:d.lineNumber)||this._editor.editor.changeViewZones(u=>{this.removePreviousViewZone(u),d&&this.addViewZone(d,u)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:Rt(this,l=>{var d;return((d=this._layout.read(l))==null?void 0:d.minContentWidthRequired)??0}),position:ca({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(t){const n=this._layout.get();return!n||!(t.event instanceof U8)?!1:n.lowerBackground.containsPoint(new cu(t.event.relativePos.x,t.event.relativePos.y))}removePreviousViewZone(t){if(!this._previousViewZoneInfo)return;t.removeZone(this._previousViewZoneInfo.id);const n=this._editor.cursorLineNumber.get();n!==null&&n>=this._previousViewZoneInfo.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height),this._previousViewZoneInfo=void 0}addViewZone(t,n){const r=n.addZone({afterLineNumber:t.lineNumber-1,heightInPx:t.height,domNode:tn("div")});this._previousViewZoneInfo={height:t.height,lineNumber:t.lineNumber,id:r};const o=this._editor.cursorLineNumber.get();o!==null&&o>=t.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()+t.height)}};PVe=zCo([GCt(4,nc),GCt(5,Dl)],PVe);function HCo(e){const t=[];for(;e.length;){let n=e.shift();n.startLineNumber!==n.endLineNumber&&(e.push(new Ee(n.startLineNumber+1,1,n.endLineNumber,n.endColumn)),n=new Ee(n.startLineNumber,n.startColumn,n.startLineNumber,Number.MAX_SAFE_INTEGER)),t.push(n)}return t}var $Co=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},YCt=function(e,t){return function(n,r){t(n,r,e)}};const FP=0,BX=0,Gp=1,XCo=1,GCo=3,qC=4,Wxe=20,ZCt=12;let X0e=class extends ft{static fitsInsideViewport(t,n,r,o){const s=hl(t),a=s.layoutInfoWidth.read(o),l=s.layoutInfoContentLeft.read(o),d=t.getLayoutInfo().verticalScrollbarWidth,u=s.layoutInfoMinimap.read(o).minimapLeft!==0?s.layoutInfoMinimap.read(o).minimapWidth:0,h=y9(s,r.displayRange,void 0),g=r.lineEdit.newLines.reduce((f,k)=>Math.max(f,Unt(k,t,n)),0),m=Wxe,v=ZCt+2*Gp;return h+g+m+vthis._uiState.read(u)?"block":"none"),this.previewRef=cr.ref();const d=this._uiState.map(u=>u!=null&&u.isInDiffEditor?GCo:XCo);this._editorContainer=cr.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:u=>{u.preventDefault()},onclick:u=>{this._onDidClick.fire(new Xh(ii(u),u))}},[cr.div({class:"preview",style:{pointerEvents:"none"},ref:this.previewRef})]).keepUpdated(this._store),this.isHovered=this._editorContainer.didMouseMoveDuringHover,this.previewEditor=this._register(this._instantiationService.createInstance(X8,this.previewRef.element,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},rulers:[],padding:{top:0,bottom:0},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[Ns.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=hl(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=Rt(this,u=>{this._editorContainer.readEffect(u),this._previewEditorObs.model.read(u),this._display.read(u),this._nonOverflowView&&(this._nonOverflowView.element.style.display=this._display.read(u));const h=this._uiState.read(u),g=this._edit.read(u);if(!h||!g)return;const m=g.originalLineRange,v=[];m.startLineNumber>1&&v.push(new Ee(1,1,m.startLineNumber-1,1)),m.startLineNumber+h.newTextLineCount{f.forEach(p=>A.removeZone(p)),k>0&&this._activeViewZones.push(A.addZone({afterLineNumber:m.startLineNumber+h.newTextLineCount-1,heightInLines:k,showInHiddenAreas:!0,domNode:tn("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=Rt(this,u=>{const h=this._edit.read(u);return h?(this._updatePreviewEditor.read(u),y9(this._previewEditorObs,h.modifiedLineRange,u)):0}),this._cursorPosIfTouchesEdit=Rt(this,u=>{const h=this._editorObs.cursorPosition.read(u),g=this._edit.read(u);if(!(!g||!h))return g.modifiedLineRange.contains(h.lineNumber)?h:void 0}),this._originalStartPosition=Rt(this,u=>{const h=this._edit.read(u);return h?new it(h.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=Rt(this,u=>{const h=this._edit.read(u);return h?new it(h.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map(u=>u==null?void 0:u.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map(u=>u==null?void 0:u.y),this._originalDisplayRange=this._edit.map(u=>u==null?void 0:u.displayRange),this._editorMaxContentWidthInRange=Rt(this,u=>{const h=this._originalDisplayRange.read(u);return h?(this._editorObs.versionId.read(u),vL(this,(g,m)=>{const v=y9(this._editorObs,h,g);return Math.max(v,m??0)})):ca(0)}).map((u,h)=>u.read(h)),this._previewEditorLayoutInfo=Rt(this,u=>{const h=this._edit.read(u);if(!h||!this._uiState.read(u))return null;const m=h.originalLineRange,v=this._editorObs.scrollLeft.read(u),f=this._editorMaxContentWidthInRange.read(u),k=this._editorObs.layoutInfo.read(u),A=this._previewEditorWidth.read(u),p=k.contentWidth-k.verticalScrollbarWidth,b=this._editor.getContainerDomNode().getBoundingClientRect(),w=k.contentLeft+k.contentWidth+b.left,O=ii(this._editor.getContainerDomNode()).innerWidth-w,y=ii(this._editor.getContainerDomNode()).innerWidth-b.right,C=Math.min(k.contentWidth*.3,A,100),_=0,S=_+O,L=this._cursorPosIfTouchesEdit.read(u),E=Math.max(p+v-_-Math.max(0,C-S),Math.min(L?bCo(this._editorObs,L,u)+50:0,p+v)),T=Math.min(f+Wxe,E),D=f+Wxe+A+70,P=E-T;let Q,M;T>v?(Q=0,M=k.contentLeft+T-v):(Q=v-T,M=k.contentLeft);const B=this._originalVerticalStartPosition.read(u)??this._editor.getTopForLineNumber(m.startLineNumber)-this._editorObs.scrollTop.read(u),R=this._originalVerticalEndPosition.read(u)??this._editor.getBottomForLineNumber(m.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(u),I=k.contentLeft-v;let F=Vs.fromLeftTopRightBottom(I,B,M,R);const j=F.height===0;j||(F=F.withMargin(BX,FP));const H=this._previewEditorObs.observeLineHeightsForLineRange(h.modifiedLineRange).read(u).reduce((se,le)=>se+le,0),$=R-B,G=Math.max($,H),q=P===0,re=0,J=Math.min(A+ZCt,y+k.width-k.contentLeft-re);let oe=Vs.fromLeftTopWidthHeight(F.right+re,B,J,G);return j?oe=oe.withMargin(BX,FP).translateY(BX):oe=oe.withMargin(BX,FP).translateX(FP+Gp),{codeRect:F,editRect:oe,codeScrollLeft:v,contentLeft:k.contentLeft,isInsertion:j,maxContentWidth:D,shouldShowShadow:q,desiredPreviewEditorScrollLeft:Q,previewEditorWidth:J}}),this._stickyScrollController=fp.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Ko(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):ca(0),this._shouldOverflow=Rt(this,u=>!1),this._originalBackgroundColor=Ko(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(WZ)??Dt.transparent),this._backgroundSvg=cr.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[cr.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:Rt(this,u=>{const h=this._previewEditorLayoutInfo.read(u);if(!(!h||this._originalBackgroundColor.read(u).isTransparent()))return new TVe().moveTo(h.codeRect.getRightTop()).lineTo(h.codeRect.getRightTop().deltaX(1e3)).lineTo(h.codeRect.getRightBottom().deltaX(1e3)).lineTo(h.codeRect.getRightBottom()).build()}),style:{fill:A7n(Oc,"transparent")}})]).keepUpdated(this._store),this._originalOverlay=cr.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map(u=>u!=null&&u.isInsertion?"none":"block")}},Rt(this,u=>{const h=By(this._previewEditorLayoutInfo).read(u);if(!h)return;const g=d.read(u),m=j3e(this._tabAction).map(C=>`${Gp}px solid ${en(C)}`),v=`${Gp+g}px solid ${en(Oc)}`,f=h.read(u).codeScrollLeft!==0,k=h.map(C=>C.codeRect.bottomVs.fromLeftTopRightBottom(C.contentLeft-qC-Gp,C.codeRect.top,C.contentLeft,C.codeRect.bottom+A)).read(u),b=new Xn(p.left,Number.MAX_SAFE_INTEGER),w=h.map(C=>C.codeRect.intersectHorizontal(b)),O=w.map(C=>C.withMargin(g,0,g,g).intersectHorizontal(b)),y=w.map(C=>Vs.fromLeftTopWidthHeight(C.right-A+Gp,C.bottom-Gp,A,A).intersectHorizontal(b));return[cr.div({class:"originalSeparatorSideBySide",style:{...O.read(u).toStyles(),boxSizing:"border-box",borderRadius:`${qC}px 0 0 ${qC}px`,borderTop:v,borderBottom:v,borderLeft:f?"none":v}}),cr.div({class:"originalOverlaySideBySide",style:{...w.read(u).toStyles(),boxSizing:"border-box",borderRadius:`${qC}px 0 0 ${qC}px`,borderTop:m,borderBottom:m,borderLeft:f?"none":m,backgroundColor:en(WZ)}}),cr.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:k.map(C=>C?"block":"none"),...y.read(u).toStyles()}},[cr.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:gv(WZ,this._themeService).map(C=>C.toString())}}),cr.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:m,borderRight:m,borderRadius:"0 100% 0 0",backgroundColor:en(Oc)}})]),cr.div({class:"originalOverlaySideBySideHider",style:{...p.toStyles(),backgroundColor:en(Oc)}})]})).keepUpdated(this._store),this._modifiedOverlay=cr.div({style:{pointerEvents:"none"}},Rt(this,u=>{const h=By(this._previewEditorLayoutInfo).read(u);if(!h)return;const g=h.map(w=>w.codeRect.bottom`0 ${qC}px ${qC}px ${w?qC:0}px`),f=gv(see(this._tabAction),this._themeService).map(w=>`1px solid ${w.toString()}`),k=`${Gp+m}px solid ${en(Oc)}`,A=h.map(w=>w.editRect.withMargin(0,Gp)),p=A.map(w=>w.withMargin(m,m,m,0)),b=Rt(this,w=>{const O=A.read(w),y=h.read(w);return!y.isInsertion||y.contentLeft>=O.left?Vs.fromLeftTopWidthHeight(O.left,O.top,0,0):new Vs(y.contentLeft,O.top,O.left,O.top+Gp*2)});return[cr.div({class:"modifiedInsertionSideBySide",style:{...b.read(u).toStyles(),backgroundColor:see(this._tabAction).map(w=>en(w))}}),cr.div({class:"modifiedSeparatorSideBySide",style:{...p.read(u).toStyles(),borderRadius:v,borderTop:k,borderBottom:k,borderRight:k,boxSizing:"border-box"}}),cr.div({class:"modifiedOverlaySideBySide",style:{...A.read(u).toStyles(),borderRadius:v,border:f,boxSizing:"border-box",backgroundColor:en(vIn)}})]})).keepUpdated(this._store),this._nonOverflowView=cr.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,Rt(this,u=>this._shouldOverflow.read(u)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:ca(null),allowEditorOverflow:!1,minContentWidthInPx:Rt(this,u=>{var g;const h=(g=this._previewEditorLayoutInfo.read(u))==null?void 0:g.maxContentWidth;return h===void 0?0:h})})),this.previewEditor.setModel(this._previewTextModel),this._register(Oi(u=>{const h=this._previewEditorLayoutInfo.read(u);if(!h)return;const g=h.editRect.withMargin(-BX,-FP);this.previewEditor.layout({height:g.height,width:h.previewEditorWidth+15}),this._editorContainer.element.style.top=`${g.top}px`,this._editorContainer.element.style.left=`${g.left}px`,this._editorContainer.element.style.width=`${h.previewEditorWidth+FP}px`})),this._register(Oi(u=>{const h=this._previewEditorLayoutInfo.read(u);h&&this._previewEditorObs.editor.setScrollLeft(h.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};X0e=$Co([YCt(5,Yn),YCt(6,Dl)],X0e);var YCo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},ZCo=function(e,t){return function(n,r){t(n,r,e)}};const KC=1;var Xj;let SN=(Xj=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._edit=n,this._tabAction=r,this._languageService=o,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(ca(this._edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(ca(this._edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._hoverableElement=Ti(this,null),this.isHovered=this._hoverableElement.map((a,l)=>(a==null?void 0:a.didMouseMoveDuringHover.read(l))??!1),this._renderTextEffect=Rt(this,a=>{var f;const l=this._editor.model.get(),d=l.getLineContent(this._edit.range.startLineNumber),u=ch.replace(new Xn(this._edit.range.startColumn-1,this._edit.range.endColumn-1),this._edit.text),h=u.replace(d),g=(f=l.tokenization.tokenizeLinesAt(this._edit.range.startLineNumber,[h]))==null?void 0:f[0];let m;g?m=e8.fromLineTokens(g).slice(u.getRangeAfterReplace()).toLineTokens(this._edit.text,this._languageService.languageIdCodec):m=uc.createEmpty(this._edit.text,this._languageService.languageIdCodec);const v=$ie(new Xie([m]),o8.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${v.minWidthInPx}px`});const s=this._editor.observeLineHeightForPosition(this._edit.range.getStartPosition());this._layout=Rt(this,a=>{this._renderTextEffect.read(a);const l=this._start.read(a),d=this._end.read(a);if(!l||!d||l.x>d.x||l.y>d.y)return;const u=s.read(a),h=this._editor.scrollLeft.read(a),g=this._editor.getOption(59).read(a).typicalHalfwidthCharacterWidth,m=3*g,v=4,f=new cu(m,v),k=Vs.fromPoints(l,d).withHeight(u).translateX(-h),A=Vs.fromPointSize(k.getLeftBottom().add(f),new cu(this._edit.text.length*g,k.height)),p=A.withLeft(k.left);return{originalLine:k,modifiedLine:A,lowerBackground:p,lineHeight:u}}),this.minEditorScrollHeight=Rt(this,a=>{const l=By(this._layout).read(a);return l?l.read(a).modifiedLine.bottom+KC+this._editor.editor.getScrollTop():0}),this._root=cr.div({class:"word-replacement"},[Rt(this,a=>{const l=By(this._layout).read(a);if(!l)return[];const d=j3e(this._tabAction).map(h=>en(h)).read(a),u=see(this._tabAction).map(h=>en(h)).read(a);return[cr.div({style:{position:"absolute",...Pv(h=>jnt(this._editor).read(h)),overflow:"hidden",pointerEvents:"none"}},[cr.div({style:{position:"absolute",...Pv(h=>l.read(h).lowerBackground.withMargin(KC,2*KC,KC,0)),background:en(Oc),cursor:"pointer",pointerEvents:"auto"},onmousedown:h=>{h.preventDefault()},onmouseup:h=>this._onDidClick.fire(new Xh(ii(h),h)),obsRef:h=>{this._hoverableElement.set(h,void 0)}}),cr.div({style:{position:"absolute",...Pv(h=>l.read(h).modifiedLine.withMargin(KC,2*KC)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",boxSizing:"border-box",borderRadius:"4px",border:`${KC}px solid ${u}`,background:en(fCo),display:"flex",justifyContent:"center",alignItems:"center",outline:`2px solid ${en(Oc)}`}},[this._line]),cr.div({style:{position:"absolute",...Pv(h=>l.read(h).originalLine.withMargin(KC)),boxSizing:"border-box",borderRadius:"4px",border:`${KC}px solid ${d}`,background:en(uCo),pointerEvents:"none"}},[]),cr.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:l.map(h=>h.modifiedLine.left-16),top:l.map(h=>h.modifiedLine.top+Math.round((h.lineHeight-14-5)/2))}},[cr.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:en(c3t)}),cr.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:en(c3t)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:ca(0),position:ca({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}},Xj.MAX_LENGTH=100,Xj);SN=YCo([ZCo(3,nc)],SN);class qCo extends ft{constructor(t,n,r){super(),this._originalEditor=t,this._state=n,this._modifiedTextModel=r,this._onDidClick=this._register(new at),this.onDidClick=this._onDidClick.event,this.isHovered=hl(this._originalEditor).isTargetHovered(s=>{var a;return s.target.type===6&&((a=s.target.detail.injectedText)==null?void 0:a.options.attachedData)instanceof Vxe&&s.target.detail.injectedText.options.attachedData.owner===this},this._store),this._tokenizationFinished=e_o(this._modifiedTextModel),this._decorations=Rt(this,s=>{var C,_;const a=this._state.read(s);if(!a)return;const l=a.modifiedText,d=a.mode==="insertionInline",u=a.diff.length===1&&((C=a.diff[0].innerChanges)==null?void 0:C.length)===1,h=!0,g=[],m=[],v=Gi.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),f=Gi.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),k=Gi.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),A=Gi.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),p=Gi.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),b=Gi.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),w=Gi.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),O=a.mode!=="sideBySide"&&a.mode!=="deletion"&&a.mode!=="insertionInline"&&a.mode!=="lineReplacement",y=a.mode==="lineReplacement";for(const S of a.diff)if(O&&(S.original.isEmpty||g.push({range:S.original.toInclusiveRange(),options:f}),S.modified.isEmpty||m.push({range:S.modified.toInclusiveRange(),options:v})),S.modified.isEmpty||S.original.isEmpty)S.original.isEmpty||g.push({range:S.original.toInclusiveRange(),options:k}),S.modified.isEmpty||m.push({range:S.modified.toInclusiveRange(),options:A});else{const L=d&&KCo(S);for(const E of S.innerChanges||[]){if(S.original.contains(E.originalRange.startLineNumber)&&!(y&&E.originalRange.isEmpty())){const T=(_=this._originalEditor.getModel())==null?void 0:_.getValueInRange(E.originalRange,1);g.push({range:E.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Mxe("inlineCompletions-char-delete",E.originalRange.isSingleLine()&&a.mode==="insertionInline"&&"single-line-inline",E.originalRange.isEmpty()&&"empty",(E.originalRange.isEmpty()&&u||a.mode==="deletion"&&T===` `)&&h&&!L&&"diff-range-empty"),inlineClassName:L?Mxe("strike-through","inlineCompletions"):null,zIndex:1}})}if(S.modified.contains(E.modifiedRange.startLineNumber)&&m.push({range:E.modifiedRange,options:E.modifiedRange.isEmpty()&&h&&!L&&u?b:p}),L){const T=l.getValueOfRange(E.modifiedRange),D=T.length>3?[{text:T.slice(0,1),extraClasses:["start"],offsetRange:new Xn(E.modifiedRange.startColumn-1,E.modifiedRange.startColumn)},{text:T.slice(1,-1),extraClasses:[],offsetRange:new Xn(E.modifiedRange.startColumn,E.modifiedRange.endColumn-2)},{text:T.slice(-1),extraClasses:["end"],offsetRange:new Xn(E.modifiedRange.endColumn-2,E.modifiedRange.endColumn-1)}]:[{text:T,extraClasses:["start","end"],offsetRange:new Xn(E.modifiedRange.startColumn-1,E.modifiedRange.endColumn)}];this._tokenizationFinished.read(s);const P=this._modifiedTextModel.tokenization.getLineTokens(E.modifiedRange.startLineNumber);for(const{text:Q,extraClasses:M,offsetRange:B}of D)g.push({range:Ee.fromPositions(E.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:P.getTokensInRange(B),content:Q,inlineClassName:Mxe("inlineCompletions-char-insert",E.modifiedRange.isSingleLine()&&a.mode==="insertionInline"&&"single-line-inline",...M),cursorStops:Bv.None,attachedData:new Vxe(this)},zIndex:2,showIfCollapsed:!0}})}}}if(a.isInDiffEditor)for(const S of a.diff)S.original.isEmpty||g.push({range:S.original.toExclusiveRange(),options:w});return{originalDecorations:g,modifiedDecorations:m}}),this._register(hl(this._originalEditor).setDecorations(this._decorations.map(s=>(s==null?void 0:s.originalDecorations)??[])));const o=this._state.map(s=>s==null?void 0:s.modifiedCodeEditor);this._register(Ef((s,a)=>{const l=o.read(s);l&&a.add(hl(l).setDecorations(this._decorations.map(d=>(d==null?void 0:d.modifiedDecorations)??[])))})),this._register(this._originalEditor.onMouseUp(s=>{var l;if(s.target.type!==6)return;const a=(l=s.target.detail.injectedText)==null?void 0:l.options.attachedData;a instanceof Vxe&&a.owner===this&&this._onDidClick.fire(s.event)}))}}class Vxe{constructor(t){this.owner=t}}function KCo(e){return e.innerChanges?e.innerChanges.every(t=>E1e(t.modifiedRange)&&E1e(t.originalRange)):!1}let JCo=0;function e_o(e){return Ko(e.onDidChangeTokens,()=>JCo++)}var t_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},n_o=function(e,t){return function(n,r){t(n,r,e)}};let FVe=class extends ft{constructor(t,n,r,o,s,a){super(),this._editor=t,this._host=n,this._model=r,this._ghostTextIndicator=o,this._focusIsInMenu=s,this._instantiationService=a,this._editorObs=hl(this._editor),this._tabAction=Rt(h=>{var g;return((g=this._model.read(h))==null?void 0:g.tabAction.read(h))??wf.Inactive}),this._constructorDone=Ti(this,!1),this._uiState=Rt(this,h=>{var b,w;const g=this._model.read(h);if(!g||!this._constructorDone.read(h))return;const m=g.inlineEdit;let v=im.fromEdit(m.edit),f=m.edit.apply(m.originalText),k=L1e(v,m.originalText,new g9(f)),A=this.determineRenderState(g,h,k,new g9(f));if(!A){zi(new Error(`unable to determine view: tried to render ${(b=this._previousView)==null?void 0:b.view}`));return}if(A.kind===Yo.SideBySide){const O=_Co(f,m.modifiedLineRange,d.getOptions().tabSize);f=O.applyToString(f),v=wCo(v,O),k=L1e(v,m.originalText,new g9(f))}return this._previewTextModel.setLanguage(this._editor.getModel().getLanguageId()),this._previewTextModel.getValue()!==f&&this._previewTextModel.setValue(f),g.showCollapsed.read(h)&&!((w=this._indicator.read(h))!=null&&w.isHoverVisible.read(h))&&(A={kind:Yo.Collapsed,viewData:A.viewData}),g.handleInlineEditShown(A.kind,A.viewData),{state:A,diff:k,edit:m,newText:f,newTextLineCount:m.modifiedLineRange.length,isInDiffEditor:g.isInDiffEditor}}),this._previewTextModel=this._register(this._instantiationService.createInstance(fR,"",this._editor.getModel().getLanguageId(),{...fR.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._indicatorCyclicDependencyCircuitBreaker=Ti(this,!1),this._indicator=Rt(this,h=>{if(!this._indicatorCyclicDependencyCircuitBreaker.read(h))return;const g=Vh({owner:this,equalsFn:oQ(zJe())},v=>{var A,p,b;const f=this._ghostTextIndicator.read(v);if(f)return f.lineRange;const k=this._uiState.read(v);if(k){if(((A=k.state)==null?void 0:A.kind)==="custom"){const w=(p=k.state.displayLocation)==null?void 0:p.range;if(!w)throw new ui("custom view should have a range");return new Ei(w.startLineNumber,w.endLineNumber)}return((b=k.state)==null?void 0:b.kind)==="insertionMultiLine"?this._insertion.originalLines.read(v):k.edit.displayRange}}),m=Rt(this,v=>{const f=this._model.read(v);if(f)return f;const k=this._ghostTextIndicator.read(v);return k?k.model:f});return h.store.add(this._instantiationService.createInstance(DVe,this._editorObs,g,this._gutterIndicatorOffset,m,this._inlineEditsIsHovered,this._focusIsInMenu))}),this._inlineEditsIsHovered=Rt(this,h=>this._sideBySide.isHovered.read(h)||this._wordReplacementViews.read(h).some(g=>g.isHovered.read(h))||this._deletion.isHovered.read(h)||this._inlineDiffView.isHovered.read(h)||this._lineReplacementView.isHovered.read(h)||this._insertion.isHovered.read(h)||this._customView.isHovered.read(h)),this._gutterIndicatorOffset=Rt(this,h=>{var m,v;if(((v=(m=this._uiState.read(h))==null?void 0:m.state)==null?void 0:v.kind)==="insertionMultiLine")return this._insertion.startLineOffset.read(h);const g=this._ghostTextIndicator.read(h);return g?o_o(g,this._editor):0}),this._sideBySide=this._register(this._instantiationService.createInstance(X0e,this._editor,this._model.map(h=>h==null?void 0:h.inlineEdit),this._previewTextModel,this._uiState.map(h=>{var g;return h&&((g=h.state)==null?void 0:g.kind)===Yo.SideBySide?{newTextLineCount:h.newTextLineCount,isInDiffEditor:h.isInDiffEditor}:void 0}),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(UCo,this._editor,this._model.map(h=>h==null?void 0:h.inlineEdit),this._uiState.map(h=>{var g;return h&&((g=h.state)==null?void 0:g.kind)===Yo.Deletion?{originalRange:h.state.originalRange,deletions:h.state.deletions,inDiffEditor:h.isInDiffEditor}:void 0}),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(MVe,this._editor,this._uiState.map(h=>{var g;return h&&((g=h.state)==null?void 0:g.kind)===Yo.InsertionMultiLine?{lineNumber:h.state.lineNumber,startColumn:h.state.column,text:h.state.text,inDiffEditor:h.isInDiffEditor}:void 0}),this._tabAction)),this._inlineDiffViewState=Rt(this,h=>{const g=this._uiState.read(h);if(!(!g||!g.state)&&!(g.state.kind==="wordReplacements"||g.state.kind==="insertionMultiLine"||g.state.kind==="collapsed"||g.state.kind==="custom"))return{modifiedText:new g9(g.newText),diff:g.diff,mode:g.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,isInDiffEditor:g.isInDiffEditor}}),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(RVe,this._editor,this._model.map((h,g)=>{var m,v;return((v=(m=this._uiState.read(g))==null?void 0:m.state)==null?void 0:v.kind)==="collapsed"?h==null?void 0:h.inlineEdit:void 0}))),this._customView=this._register(this._instantiationService.createInstance(IVe,this._editor,this._model.map((h,g)=>{var m,v;return((v=(m=this._uiState.read(g))==null?void 0:m.state)==null?void 0:v.kind)==="custom"?h==null?void 0:h.displayLocation:void 0}),this._tabAction)),this._inlineDiffView=this._register(new qCo(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._wordReplacementViews=XJe(this,this._uiState.map(h=>{var g;return((g=h==null?void 0:h.state)==null?void 0:g.kind)==="wordReplacements"?h.state.replacements:[]}),(h,g)=>g.add(this._instantiationService.createInstance(SN,this._editorObs,h,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(PVe,this._editorObs,this._uiState.map(h=>{var g;return((g=h==null?void 0:h.state)==null?void 0:g.kind)===Yo.LineReplacement?{originalRange:h.state.originalRange,modifiedRange:h.state.modifiedRange,modifiedLines:h.state.modifiedLines,replacements:h.state.replacements}:void 0}),this._uiState.map(h=>(h==null?void 0:h.isInDiffEditor)??!1),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map(h=>h.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map(h=>h.edits.renderSideBySide),this._register(Ef((h,g)=>{const m=this._model.read(h);m&&g.add(an.any(this._sideBySide.onDidClick,this._deletion.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(h).map(v=>v.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)(v=>{this._viewHasBeenShownLongerThan(350)&&(v.preventDefault(),m.accept())}))})),this._indicator.recomputeInitiallyAndOnChange(this._store),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store),this._indicatorCyclicDependencyCircuitBreaker.set(!0,void 0),this._register(this._instantiationService.createInstance(BVe,this._host,this._model,this._indicator,this._inlineCollapsedView));const l=Rt(this,h=>Math.max(...this._wordReplacementViews.read(h).map(g=>g.minEditorScrollHeight.read(h)),this._lineReplacementView.minEditorScrollHeight.read(h),this._customView.minEditorScrollHeight.read(h))).recomputeInitiallyAndOnChange(this._store),d=this._editor.getModel();let u;this._register(Oi(h=>{const g=l.read(h);this._editor.changeViewZones(m=>{const v=this._editor.getScrollHeight(),f=g-v+1;f!==0&&u&&(m.removeZone(u),u=void 0),!(f<=0)&&(u=m.addZone({afterLineNumber:d.getLineCount(),heightInPx:f,domNode:tn("div.minScrollHeightViewZone")}))})})),this._constructorDone.set(!0,void 0)}getCacheId(t){return t.inlineEdit.inlineCompletion.identity.id}determineView(t,n,r,o){var m,v,f,k,A;const s=t.inlineEdit,a=((m=this._previousView)==null?void 0:m.id)===this.getCacheId(t)&&!((v=t.displayLocation)!=null&&v.jumpToEdit),l=((f=this._previousView)==null?void 0:f.editorWidth)!==this._editorObs.layoutInfoWidth.read(n)&&(((k=this._previousView)==null?void 0:k.view)===Yo.SideBySide||((A=this._previousView)==null?void 0:A.view)===Yo.LineReplacement);if(a&&!l)return this._previousView.view;if(t.inlineEdit.inlineCompletion instanceof GU&&t.inlineEdit.inlineCompletion.uri||t.displayLocation&&!t.inlineEdit.inlineCompletion.identity.jumpedTo.read(n))return Yo.Custom;const d=s.originalLineRange.length,u=s.modifiedLineRange.length,h=r.flatMap(p=>p.innerChanges??[]),g=h.length===1;if(!t.isInDiffEditor){if(g&&this._useCodeShifting.read(n)!=="never"&&yIn(r))return i_o(r,s.cursorPosition)?Yo.InsertionInline:Yo.LineReplacement;if(KCt(h,s,o))return Yo.Deletion;if(qCt(r)&&this._useCodeShifting.read(n)==="always")return Yo.InsertionMultiLine;if(h.every(b=>Ud.ofRange(b.originalRange).columnCounto.getValueOfRange(O.modifiedRange)),w=h.map(O=>t.inlineEdit.originalText.getValueOfRange(O.originalRange));if(!b.some(O=>O.includes(" "))&&!w.some(O=>O.includes(" "))&&(!h.some(O=>O.originalRange.isEmpty())||!JCt(h.map(O=>new Mc(O.originalRange,"")),s.originalText).some(O=>O.range.isEmpty()&&Ud.ofRange(O.range).columnCount0&&u>0)return d===1&&u===1&&!t.isInDiffEditor?Yo.LineReplacement:this._renderSideBySide.read(n)!=="never"&&X0e.fitsInsideViewport(this._editor,this._previewTextModel,s,n)?Yo.SideBySide:Yo.LineReplacement;if(t.isInDiffEditor){if(KCt(h,s,o))return Yo.Deletion;if(qCt(r)&&this._useCodeShifting.read(n)==="always")return Yo.InsertionMultiLine}return Yo.SideBySide}determineRenderState(t,n,r,o){const s=t.inlineEdit;let a=this.determineView(t,n,r,o);if(this._willRenderAboveCursor(n,s,a))switch(a){case Yo.LineReplacement:case Yo.WordReplacements:a=Yo.SideBySide;break}this._previousView={id:this.getCacheId(t),view:a,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now()};const l=r.flatMap(f=>f.innerChanges??[]),d=this._editor.getModel(),u=l.map(f=>({originalRange:f.originalRange,modifiedRange:f.modifiedRange,original:d.getValueInRange(f.originalRange),modified:o.getValueOfRange(f.modifiedRange)})),h=s.cursorPosition,g=u.length===0?!1:u[0].modified.startsWith(d.getEOL()),m={cursorColumnDistance:s.edit.replacements.length===0?0:s.edit.replacements[0].range.getStartPosition().column-h.column,cursorLineDistance:s.lineEdit.lineRange.startLineNumber-h.lineNumber+(g&&s.lineEdit.lineRange.startLineNumber>=h.lineNumber?1:0),lineCountOriginal:s.lineEdit.lineRange.length,lineCountModified:s.lineEdit.newLines.length,characterCountOriginal:u.reduce((f,k)=>f+k.original.length,0),characterCountModified:u.reduce((f,k)=>f+k.modified.length,0),disjointReplacements:u.length,sameShapeReplacements:u.every(f=>f.original===u[0].original&&f.modified===u[0].modified)};switch(a){case Yo.InsertionInline:return{kind:Yo.InsertionInline,viewData:m};case Yo.SideBySide:return{kind:Yo.SideBySide,viewData:m};case Yo.Collapsed:return{kind:Yo.Collapsed,viewData:m};case Yo.Custom:return{kind:Yo.Custom,displayLocation:t.displayLocation,viewData:m}}if(a===Yo.Deletion)return{kind:Yo.Deletion,originalRange:s.originalLineRange,deletions:l.map(f=>f.originalRange),viewData:m};if(a===Yo.InsertionMultiLine){const f=l[0];return{kind:Yo.InsertionMultiLine,lineNumber:f.originalRange.startLineNumber,column:f.originalRange.startColumn,text:o.getValueOfRange(f.modifiedRange),viewData:m}}const v=u.map(f=>new Mc(f.originalRange,f.modified));if(v.length!==0){if(a===Yo.WordReplacements){let f=r_o(v,s.originalText);return f.some(k=>k.range.isEmpty())&&(f=JCt(v,s.originalText)),{kind:Yo.WordReplacements,replacements:f,viewData:m}}if(a===Yo.LineReplacement)return{kind:Yo.LineReplacement,originalRange:s.originalLineRange,modifiedRange:s.modifiedLineRange,modifiedLines:s.modifiedLineRange.mapToLineArray(f=>o.getLineAt(f)),replacements:l.map(f=>({originalRange:f.originalRange,modifiedRange:f.modifiedRange})),viewData:m}}}_willRenderAboveCursor(t,n,r){if(this._useCodeShifting.read(t)==="always")return!1;for(const s of n.multiCursorPositions)if(r===Yo.WordReplacements&&s.lineNumber===n.originalLineRange.startLineNumber+1||r===Yo.LineReplacement&&s.lineNumber>=n.originalLineRange.endLineNumberExclusive&&s.lineNumber=t}};FVe=t_o([n_o(5,Yn)],FVe);function yIn(e){return e.every(n=>n.innerChanges.every(r=>t(r)));function t(n){return!(!n.originalRange.isEmpty()||!(n.modifiedRange.startLineNumber===n.modifiedRange.endLineNumber))}}function i_o(e,t){if(!t||!yIn(e))return!1;const n=t;return e.every(o=>o.innerChanges.every(s=>r(s)));function r(o){const s=o.originalRange.getStartPosition();return!!(n.isBeforeOrEqual(s)||s.lineNumberr.innerChanges??[]);if(t.length!==1)return!1;const n=t[0];return!(!n.originalRange.isEmpty()||n.modifiedRange.startLineNumber===n.modifiedRange.endLineNumber)}function KCt(e,t,n){return e.map(o=>({original:t.originalText.getValueOfRange(o.originalRange),modified:n.getValueOfRange(o.modifiedRange)})).every(({original:o,modified:s})=>s.trim()===""&&o.length>0&&(o.length>s.length||o.trim()!==""))}function r_o(e,t){return CIn(e,t,n=>/^[a-zA-Z]$/.test(n))}function JCt(e,t){return CIn(e,t,n=>!/^\s$/.test(n))}function CIn(e,t,n){const r=[];e.sort((s,a)=>Ee.compareRangesUsingStarts(s.range,a.range));for(const s of e){let a=s.range.startColumn-1,l=s.range.endColumn-2,d="",u="";const h=t.getLineAt(s.range.startLineNumber),g=t.getLineAt(s.range.endLineNumber);if(o(h[a]))for(;o(h[a-1]);)d=h[a-1]+d,a--;if(o(g[l])||l0&&Ee.areIntersectingOrTouching(r[r.length-1].range,m.range)&&(m=Mc.joinReplacements([r.pop(),m],t)),r.push(m)}function o(s){return s===void 0?!1:n(s)}return r}function o_o(e,t){const n=e.model.inlineEdit.edit.replacements;if(n.length!==1)return 0;const r=t.getModel();if(!r)return 0;const o=r.getEOL(),s=n[0];if(s.range.isEmpty()&&s.text.startsWith(o)){const a=t.getLineHeightForPosition(s.range.getStartPosition());return s_o(s.text,o)*a}return 0}function s_o(e,t){if(!t.length)return 0;let n=0,r=0;for(;e.startsWith(t,r);)n++,r+=t.length;return n}var a_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},l_o=function(e,t){return function(n,r){t(n,r,e)}},uB;let NVe=(uB=class extends ft{constructor(t,n,r,o,s){super(),this._editor=t,this._edit=n,this._model=r,this._focusIsInMenu=o,this._inlineEdit=Rt(this,a=>{var f;const l=this._model.read(a);if(!l)return;const d=this._edit.read(a);if(!d)return;const u=this._editor.getModel();if(!u)return;const h=(f=l.inlineEditState.read(void 0))==null?void 0:f.inlineCompletion.updatedEdit;if(!h)return;const g=h.replacements.map(k=>{const A=Ee.fromPositions(u.getPositionAt(k.replaceRange.start),u.getPositionAt(k.replaceRange.endExclusive));return new Mc(A,k.newText)}),m=new V4(g),v=new AR(u);return new hIn(v,m,l.primaryPosition.read(void 0),l.allPositions.read(void 0),d.commands,d.inlineCompletion)}),this._inlineEditModel=Rt(this,a=>{const l=this._model.read(a);if(!l)return;const d=this._inlineEdit.read(a);if(!d)return;const u=Rt(this,h=>{if(this._editorObs.isFocused.read(h)){if(l.tabShouldJumpToInlineEdit.read(h))return wf.Jump;if(l.tabShouldAcceptInlineEdit.read(h))return wf.Accept}return wf.Inactive});return new fIn(l,d,u)}),this._inlineEditHost=Rt(this,a=>{const l=this._model.read(a);if(l)return new nCo(l)}),this._ghostTextIndicator=Rt(this,a=>{const l=this._model.read(a);if(!l)return;const d=l.inlineCompletionState.read(a);if(!d)return;const u=d.inlineCompletion;if(!u||!u.showInlineEditMenu)return;const h=Ei.ofLength(d.primaryGhostText.lineNumber,1);return new iCo(this._editor,l,h,u)}),this._editorObs=hl(this._editor),this._register(s.createInstance(FVe,this._editor,this._inlineEditHost,this._inlineEditModel,this._ghostTextIndicator,this._focusIsInMenu))}},uB.hot=l3e(uB),uB);NVe=a_o([l_o(4,Yn)],NVe);var c_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},d_o=function(e,t){return function(n,r){t(n,r,e)}};let UVe=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._model=n,this._focusIsInMenu=r,this._instantiationService=o,this._ghostTexts=Rt(this,s=>{const a=this._model.read(s);return(a==null?void 0:a.ghostTexts.read(s))??[]}),this._stablizedGhostTexts=hOo(this._ghostTexts,this._store),this._editorObs=hl(this._editor),this._ghostTextWidgets=XJe(this,this._stablizedGhostTexts,(s,a)=>vv(l=>this._instantiationService.createInstance(ree.hot.read(l),this._editor,{ghostText:s,warning:this._model.map((d,u)=>{var g;const h=(g=d==null?void 0:d.warning)==null?void 0:g.read(u);return h?{icon:h.icon}:void 0}),minReservedLineCount:ca(0),targetTextModel:this._model.map(d=>d==null?void 0:d.textModel),handleInlineCompletionShown:this._model.map((d,u)=>{var g;const h=(g=d==null?void 0:d.inlineCompletionState.read(u))==null?void 0:g.inlineCompletion;return h?m=>d.handleInlineSuggestionShown(h,Yo.GhostText,m):()=>{}})},this._editorObs.getOption(71).map(d=>({syntaxHighlightingEnabled:d.syntaxHighlightingEnabled})),!1,!1)).recomputeInitiallyAndOnChange(a)).recomputeInitiallyAndOnChange(this._store),this._inlineEdit=Rt(this,s=>{var a,l;return(l=(a=this._model.read(s))==null?void 0:a.inlineEditState.read(s))==null?void 0:l.inlineEdit}),this._everHadInlineEdit=vL(this,(s,a)=>{var l,d,u;return a||!!this._inlineEdit.read(s)||!!((u=(d=(l=this._model.read(s))==null?void 0:l.inlineCompletionState.read(s))==null?void 0:d.inlineCompletion)!=null&&u.showInlineEditMenu)}),this._inlineEditWidget=vv(s=>{if(this._everHadInlineEdit.read(s))return this._instantiationService.createInstance(NVe.hot.read(s),this._editor,this._inlineEdit,this._model,this._focusIsInMenu)}).recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map(s=>s.fontFamily),this._register(Too(Rt(s=>` .monaco-editor .ghost-text-decoration, .monaco-editor .ghost-text-decoration-preview, @@ -2361,13 +2361,13 @@ ${d} // `;return await r.writeText(u),{reproCase:u}}}var b_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},hce=function(e,t){return function(n,r){t(n,r,e)}};class w_o{constructor(t,n,r){this.owner=t,this.range=n,this.controller=r}isValidForHoverAnchor(t){return t.type===1&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let HVe=class{constructor(t,n,r,o,s){this._editor=t,this.accessibilityService=n,this._instantiationService=r,this._telemetryService=o,this._markdownRendererService=s,this.hoverOrdinal=4}suggestHoverAnchor(t){const n=W0.get(this._editor);if(!n)return null;const r=t.target;if(r.type===8){const o=r.detail;if(n.shouldShowHoverAtViewZone(o.viewZoneId))return new jG(1e3,this,Ee.fromPositions(this._editor.getModel().validatePosition(o.positionBefore||o.position)),t.event.posx,t.event.posy,!1)}if(r.type===7&&n.shouldShowHoverAt(r.range))return new jG(1e3,this,r.range,t.event.posx,t.event.posy,!1);if(r.type===6&&r.detail.mightBeForeignElement&&n.shouldShowHoverAt(r.range))return new jG(1e3,this,r.range,t.event.posx,t.event.posy,!1);if(r.type===9&&r.element){const o=ree.getWarningWidgetContext(r.element);if(o&&n.shouldShowHoverAt(o.range))return new jG(1e3,this,o.range,t.event.posx,t.event.posy,!1)}return null}computeSync(t,n){if(this._editor.getOption(71).showToolbar!=="onHover")return[];const r=W0.get(this._editor);return r&&r.shouldShowHoverAt(t.range)?[new w_o(this,t.range,r)]:[]}renderHoverParts(t,n){const r=new xt,o=n[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12)&&r.add(this.renderScreenReaderText(t,o));const s=o.controller.model.get(),a=document.createElement("div");t.fragment.appendChild(a),r.add(Ef((d,u)=>{const h=u.add(this._instantiationService.createInstance(AV.hot.read(d),this._editor,!1,ca(null),s.selectedInlineCompletionIndex,s.inlineCompletionsCount,s.activeCommands,s.warning,()=>{t.onContentsChanged()}));a.replaceChildren(h.getDomNode())})),s.triggerExplicitly();const l={hoverPart:o,hoverElement:a,dispose(){r.dispose()}};return new SR([l])}getAccessibleContent(t){return U(1205,"There are inline completions here")}renderScreenReaderText(t,n){const r=new xt,o=tn,s=o("div.hover-row.markdown-hover"),a=Xt(s,o("div.hover-contents",{"aria-live":"assertive"})),l=d=>{const u=U(1206,"Suggestion:"),h=r.add(this._markdownRendererService.render(new bf().appendText(u).appendCodeblock("text",d),{context:this._editor,asyncRenderCallback:()=>{a.className="hover-contents code-hover-contents",t.onContentsChanged()}}));a.replaceChildren(h.element)};return r.add(Oi(d=>{var h;const u=(h=n.controller.model.read(d))==null?void 0:h.primaryGhostText.read(d);if(u){const g=this._editor.getModel().getLineContent(u.lineNumber);l(u.renderForScreenReader(g))}else mu(a)})),t.fragment.appendChild(s),r}};HVe=b_o([hce(1,vh),hce(2,Yn),hce(3,Nf),hce(4,Cp)],HVe);class O_o{}mo(W0.ID,uwo(W0.hot),3);un(g_o);un(jVe);un(WVe);un(m_o);un(k_o);un(v_o);un(VVe);un(G0e);un(A_o);ys(zVe);un(p_o);ys(dVe);ys(uVe);BI.register(HVe);R3e.register(new O_o);var y_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},zxe=function(e,t){return function(n,r){t(n,r,e)}},GG,o6;let aee=(o6=class{constructor(t,n,r,o){this.textModelResolverService=n,this.languageService=r,this.languageFeaturesService=o,this.toUnhook=new xt,this.toUnhookForKeyboard=new xt,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t,this.linkDecorations=this.editor.createDecorationsCollection();const s=new y3e(t);this.toUnhook.add(s),this.toUnhook.add(s.onMouseMoveOrRelevantKeyDown(([a,l])=>{this.startFindDefinitionFromMouse(a,l??void 0)})),this.toUnhook.add(s.onExecute(a=>{this.isEnabled(a)&&this.gotoDefinition(a.target.position,a.hasSideBySideModifier).catch(l=>{zi(l)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(s.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(t){return t.getContribution(GG.ID)}async startFindDefinitionFromCursor(t){await this.startFindDefinition(t),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(n=>{n&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(t,n){if(t.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(t,n)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const r=t.target.position;this.startFindDefinition(r)}async startFindDefinition(t){var a;this.toUnhookForKeyboard.clear();const n=t?(a=this.editor.getModel())==null?void 0:a.getWordAtPosition(t):null;if(!n){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===n.startColumn&&this.currentWordAtPosition.endColumn===n.endColumn&&this.currentWordAtPosition.word===n.word)return;this.currentWordAtPosition=n;const r=new RDn(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=Fd(l=>this.findDefinition(t,l));let o;try{o=await this.previousPromise}catch(l){zi(l);return}if(!o||!o.length||!r.validate(this.editor)){this.removeLinkDecorations();return}const s=o[0].originSelectionRange?Ee.lift(o[0].originSelectionRange):new Ee(t.lineNumber,n.startColumn,t.lineNumber,n.endColumn);if(o.length>1){let l=s;for(const{originSelectionRange:d}of o)d&&(l=Ee.plusRange(l,d));this.addDecoration(l,new bf().appendText(U(1077,"Click to show {0} definitions.",o.length)))}else{const l=o[0];return l.uri?this.textModelResolverService.createModelReference(l.uri).then(d=>{if(!d.object||!d.object.textEditorModel){d.dispose();return}const{object:{textEditorModel:u}}=d,{startLineNumber:h}=l.range;if(h<1||h>u.getLineCount()){d.dispose();return}const g=this.getPreviewValue(u,h,l),m=this.languageService.guessLanguageIdByFilepathOrFirstLine(u.uri);this.addDecoration(s,g?new bf().appendCodeblock(m||"",g):void 0),d.dispose()}):void 0}}getPreviewValue(t,n,r){let o=r.range;return o.endLineNumber-o.startLineNumber>=GG.MAX_SOURCE_PREVIEW_LINES&&(o=this.getPreviewRangeBasedOnIndentation(t,n)),o=t.validateRange(o),this.stripIndentationFromPreviewRange(t,n,o)}stripIndentationFromPreviewRange(t,n,r){let s=t.getLineFirstNonWhitespaceColumn(n);for(let l=n+1;l{const o=!n&&this.editor.getOption(101)&&!this.isInPeekEditor(r);return new rre({openToSide:n,openInPeek:o,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(r)})}isInPeekEditor(t){const n=t.get(Qi);return b1.inPeekEditor.getValue(n)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}},GG=o6,o6.ID="editor.contrib.gotodefinitionatposition",o6.MAX_SOURCE_PREVIEW_LINES=8,o6);aee=GG=y_o([zxe(1,Dg),zxe(2,nc),zxe(3,Nn)],aee);mo(aee.ID,aee,2);class C_o extends Bn{constructor(){super({id:"editor.action.debugEditorGpuRenderer",label:_t(1101,"Developer: Debug Editor GPU Renderer"),precondition:Ft.true()})}async run(t,n){const r=t.get(Yn),s=await t.get(Rf).pick([{label:U(1098,"Log Texture Atlas Stats"),id:"logTextureAtlasStats"},{label:U(1099,"Save Texture Atlas"),id:"saveTextureAtlas"},{label:U(1100,"Draw Glyph"),id:"drawGlyph"}],{canPickMany:!1});if(s)switch(s.id){case"logTextureAtlasStats":r.invokeFunction(a=>{const l=a.get(va),d=mg.atlas;if(!mg.atlas){l.error("No texture atlas found");return}const u=d.getStats();l.info(["Texture atlas stats",...u].join(` -`))});break;case"saveTextureAtlas":r.invokeFunction(async a=>{const l=a.get(H8),d=a.get(RCt),u=l.getWorkspace().folders;if(u.length>0){const h=mg.atlas,g=[];for(const[m,v]of h.pages.entries())g.push(d.writeFile(vi.joinPath(u[0].uri,`textureAtlasPage${m}_actual.png`),B9.wrap(new Uint8Array(await(await v.source.convertToBlob()).arrayBuffer()))),d.writeFile(vi.joinPath(u[0].uri,`textureAtlasPage${m}_usage.png`),B9.wrap(new Uint8Array(await(await v.getUsagePreview()).arrayBuffer()))));await Promise.all(g)}});break;case"drawGlyph":r.invokeFunction(async a=>{var E,T,D;const l=a.get(ar),d=a.get(RCt),u=a.get(Rf),g=a.get(H8).getWorkspace().folders;if(g.length===0)return;const m=mg.atlas,v=l.getValue("editor.fontFamily"),f=l.getValue("editor.fontSize"),k=new vJ(f,v,vs().devicePixelRatio,mg.decorationStyleCache);let A=await u.input({prompt:"Enter a character to draw (prefix with 0x for code point))"});if(!A)return;const p=(T=(E=A.match(/0x(?[0-9a-f]+)/i))==null?void 0:E.groups)==null?void 0:T.codePoint;p!==void 0&&(A=String.fromCodePoint(parseInt(p,16)));const b=0,O=m.getGlyph(k,A,b,0,0);if(!O)return;const y=(D=m.pages[O.pageIndex].source.getContext("2d"))==null?void 0:D.getImageData(O.x,O.y,O.w,O.h);if(!y)return;const C=new OffscreenCanvas(y.width,y.height);uR(C.getContext("2d")).putImageData(y,0,0);const S=await C.convertToBlob({type:"image/png"}),L=vi.joinPath(g[0].uri,`glyph_${A}_${b}_${f}px_${v.replaceAll(/[,\\\/\.'\s]/g,"_")}.png`);await d.writeFile(L,B9.wrap(new Uint8Array(await S.arrayBuffer())))});break}}}un(C_o);var ub;(function(e){e.NoAutoFocus="noAutoFocus",e.FocusIfVisible="focusIfVisible",e.AutoFocusImmediately="autoFocusImmediately"})(ub||(ub={}));class __o extends Bn{constructor(){super({id:fBn,label:_t(1107,"Show or Focus Hover"),metadata:{description:_t(1108,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[ub.NoAutoFocus,ub.FocusIfVisible,ub.AutoFocusImmediately],enumDescriptions:[U(1104,"The hover will not automatically take focus."),U(1105,"The hover will take focus only if it is already visible."),U(1106,"The hover will automatically take focus when it appears.")],default:ub.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2087),weight:100}})}run(t,n,r){if(!n.hasModel())return;const o=If.get(n);if(!o)return;const s=r==null?void 0:r.focus;let a=ub.FocusIfVisible;Object.values(ub).includes(s)?a=s:typeof s=="boolean"&&s&&(a=ub.AutoFocusImmediately);const l=u=>{const h=n.getPosition(),g=new Ee(h.lineNumber,h.column,h.lineNumber,h.column);o.showContentHover(g,1,2,u)},d=n.getOption(2)===2;o.isHoverVisible?a!==ub.NoAutoFocus?o.focus():l(d):l(d||a===ub.AutoFocusImmediately)}}class S_o extends Bn{constructor(){super({id:Yvo,label:_t(1109,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:_t(1110,"Show the definition preview hover in the editor.")}})}run(t,n){const r=If.get(n);if(!r)return;const o=n.getPosition();if(!o)return;const s=new Ee(o.lineNumber,o.column,o.lineNumber,o.column),a=aee.get(n);if(!a)return;a.startFindDefinitionFromCursor(o).then(()=>{r.showContentHover(s,1,2,!0)})}}class L_o extends Bn{constructor(){super({id:Zvo,label:_t(1111,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(t,n){var r;(r=If.get(n))==null||r.hideContentHover()}}class x_o extends Bn{constructor(){super({id:qvo,label:_t(1112,"Scroll Up Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:16,weight:100},metadata:{description:_t(1113,"Scroll up the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollUp()}}class E_o extends Bn{constructor(){super({id:Kvo,label:_t(1114,"Scroll Down Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:18,weight:100},metadata:{description:_t(1115,"Scroll down the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollDown()}}class T_o extends Bn{constructor(){super({id:Jvo,label:_t(1116,"Scroll Left Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:15,weight:100},metadata:{description:_t(1117,"Scroll left the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollLeft()}}class Q_o extends Bn{constructor(){super({id:eAo,label:_t(1118,"Scroll Right Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:17,weight:100},metadata:{description:_t(1119,"Scroll right the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollRight()}}class D_o extends Bn{constructor(){super({id:tAo,label:_t(1120,"Page Up Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:_t(1121,"Page up the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.pageUp()}}class B_o extends Bn{constructor(){super({id:nAo,label:_t(1122,"Page Down Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:_t(1123,"Page down the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.pageDown()}}class R_o extends Bn{constructor(){super({id:iAo,label:_t(1124,"Go To Top Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:_t(1125,"Go to the top of the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.goToTop()}}class I_o extends Bn{constructor(){super({id:rAo,label:_t(1126,"Go To Bottom Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:_t(1127,"Go to the bottom of the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.goToBottom()}}class M_o extends Bn{constructor(){super({id:A3e,label:oAo,alias:"Increase Hover Verbosity Level",precondition:$e.hoverVisible})}run(t,n,r){const o=If.get(n);if(!o)return;const s=(r==null?void 0:r.index)!==void 0?r.index:o.focusedHoverPartIndex();o.updateHoverVerbosityLevel(d0.Increase,s,r==null?void 0:r.focus)}}class P_o extends Bn{constructor(){super({id:p3e,label:sAo,alias:"Decrease Hover Verbosity Level",precondition:$e.hoverVisible})}run(t,n,r){var a;const o=If.get(n);if(!o)return;const s=(r==null?void 0:r.index)!==void 0?r.index:o.focusedHoverPartIndex();(a=If.get(n))==null||a.updateHoverVerbosityLevel(d0.Decrease,s,r==null?void 0:r.focus)}}class F_o{constructor(t){this._editor=t}computeSync(t){var a;const n=l=>({value:l}),r=this._editor.getLineDecorations(t.lineNumber),o=[],s=t.laneOrLine==="lineNo";if(!r)return o;for(const l of r){const d=((a=l.options.glyphMargin)==null?void 0:a.position)??p3.Center;if(!s&&d!==t.laneOrLine)continue;const u=s?l.options.lineNumberHoverMessage:l.options.glyphMarginHoverMessage;!u||fV(u)||o.push(...WJe(u).map(n))}return o}}var N_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},U_o=function(e,t){return function(n,r){t(n,r,e)}},$Ve;const t_t=tn;var hB;let XVe=(hB=class extends ft{constructor(t,n){super(),this._markdownRendererService=n,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new xt),this._editor=t,this._isVisible=!1,this._messages=[],this._hover=this._register(new Ztt(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new vBn(this._editor,new F_o(this._editor))),this._register(this._hoverOperation.onResult(r=>this._withResult(r))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(59)&&this._updateFont()})),this._register(wc(this._hover.containerDomNode,"mouseleave",r=>{this._onMouseLeave(r)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return $Ve.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(n=>this._editor.applyFontInfo(n))}_onModelDecorationsChanged(){this._isVisible&&this._hoverComputerOptions&&(this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions))}showsOrWillShow(t){const n=t.target;return n.type===2&&n.detail.glyphMarginLane?(this._startShowingAt(n.position.lineNumber,n.detail.glyphMarginLane),!0):n.type===3?(this._startShowingAt(n.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(t,n){this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===t&&this._hoverComputerOptions.laneOrLine===n||(this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:t,laneOrLine:n},this._hoverOperation.start(0,this._hoverComputerOptions))}hide(){this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(t){this._messages=t.value,this._messages.length>0?this._renderMessages(t.options.lineNumber,t.options.laneOrLine,this._messages):this.hide()}_renderMessages(t,n,r){this._renderDisposeables.clear();const o=document.createDocumentFragment();for(const s of r){const a=t_t("div.hover-row.markdown-hover"),l=Xt(a,t_t("div.hover-contents")),d=this._renderDisposeables.add(this._markdownRendererService.render(s.value,{context:this._editor}));l.appendChild(d.element),o.appendChild(a)}this._updateContents(o),this._showAt(t,n)}_updateContents(t){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(t),this._updateFont()}_showAt(t,n){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const r=this._editor.getLayoutInfo(),o=this._editor.getTopForLineNumber(t),s=this._editor.getScrollTop(),a=this._editor.getOption(75),l=this._hover.containerDomNode.clientHeight,d=o-s-(l-a)/2,u=r.glyphMarginLeft+r.glyphMarginWidth+(n==="lineNo"?r.lineNumbersWidth:0),g=r.height-l,m=Math.max(0,Math.min(Math.round(d),g));if(this._editor.getOption(51)){const f=this._editor.getDomNode();if(f){const k=Kl(f);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${k.left+u}px`,this._hover.containerDomNode.style.top=`${k.top+m}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${u}px`,this._hover.containerDomNode.style.top=`${m}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(t){const n=this._editor.getDomNode();(!n||!b3e(n,t.x,t.y))&&this.hide()}},$Ve=hB,hB.ID="editor.contrib.modesGlyphHoverWidget",hB);XVe=$Ve=N_o([U_o(1,Cp)],XVe);var j_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},W_o=function(e,t){return function(n,r){t(n,r,e)}},Gj;let Y0e=(Gj=class extends ft{constructor(t,n){super(),this._editor=t,this._instantiationService=n,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new xt,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new Es(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){const t=this._editor.getOption(69);this._hoverSettings={enabled:t.enabled,sticky:t.sticky,hidingDelay:t.hidingDelay},t.enabled?(this._listenersStore.add(this._editor.onMouseDown(n=>this._onEditorMouseDown(n))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))):(this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))),this._listenersStore.add(this._editor.onMouseLeave(n=>this._onEditorMouseLeave(n))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(n=>this._onEditorScrollChanged(n)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(t){(t.scrollTopChanged||t.scrollLeftChanged)&&this.hideGlyphHover()}_onEditorMouseDown(t){this._hoverState.mouseDown=!0,!this._isMouseOnGlyphHoverWidget(t)&&this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(t){var r;const n=(r=this._glyphWidget)==null?void 0:r.getDomNode();return n?b3e(n,t.event.posx,t.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(t){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(t))||this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(t){const n=this._hoverSettings.sticky,r=this._isMouseOnGlyphHoverWidget(t);return n&&r}_onEditorMouseMove(t){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=t,this._shouldNotRecomputeCurrentHoverWidget(t)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(t)}_reactToEditorMouseMove(t){!t||this._tryShowHoverWidget(t)||this.hideGlyphHover()}_tryShowHoverWidget(t){return this._getOrCreateGlyphWidget().showsOrWillShow(t)}_onKeyDown(t){this._editor.hasModel()&&(t.keyCode===5||t.keyCode===6||t.keyCode===57||t.keyCode===4||this.hideGlyphHover())}hideGlyphHover(){var t;(t=this._glyphWidget)==null||t.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(XVe,this._editor)),this._glyphWidget}dispose(){var t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(t=this._glyphWidget)==null||t.dispose()}},Gj.ID="editor.contrib.marginHover",Gj);Y0e=j_o([W_o(1,Yn)],Y0e);class V_o{}class z_o{}class H_o{}mo(If.ID,If,2);mo(Y0e.ID,Y0e,2);un(__o);un(S_o);un(L_o);un(x_o);un(E_o);un(T_o);un(Q_o);un(D_o);un(B_o);un(R_o);un(I_o);un(M_o);un(P_o);BI.register(zJ);BI.register(EWe);yA((e,t)=>{const n=e.getColor(wet);n&&(t.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${n.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${n.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${n.transparent(.5)}; }`))});R3e.register(new V_o);R3e.register(new z_o);R3e.register(new H_o);function _In(e,t,n,r){if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return[];const o=t.getLanguageConfiguration(e.getLanguageId()).indentRulesSupport;if(!o)return[];const s=new det(e,o,t);for(r=Math.min(r,e.getLineCount());n<=r&&s.shouldIgnore(n);)n++;if(n>r-1)return[];const{tabSize:a,indentSize:l,insertSpaces:d}=e.getOptions(),u=(k,A)=>(A=A||1,gA.shiftIndent(k,k.length+A,a,l,d)),h=(k,A)=>(A=A||1,gA.unshiftIndent(k,k.length+A,a,l,d)),g=[],m=e.getLineContent(n);let v=Ys(m),f=v;s.shouldIncrease(n)?(f=u(f),v=u(v)):s.shouldIndentNextLine(n)&&(f=u(f)),n++;for(let k=n;k<=r;k++){if($_o(e,k))continue;const A=e.getLineContent(k),p=Ys(A),b=f;s.shouldDecrease(k,b)&&(f=h(f),v=h(v)),p!==f&&g.push($l.replaceMove(new Qn(k,1,k,p.length+1),tet(f,l,d))),!s.shouldIgnore(k)&&(s.shouldIncrease(k,b)?(v=u(v),f=v):s.shouldIndentNextLine(k,b)?f=u(f):f=v)}return g}function $_o(e,t){return e.tokenization.isCheapToTokenize(t)?e.tokenization.getLineTokens(t).getStandardTokenType(0)===2:!1}var X_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},G_o=function(e,t){return function(n,r){t(n,r,e)}};const bAe=class bAe extends Bn{constructor(){super({id:bAe.ID,label:_t(1148,"Convert Indentation to Spaces"),precondition:$e.writable,metadata:{description:_t(1149,"Convert the tab indentation to spaces.")}})}run(t,n){const r=n.getModel();if(!r)return;const o=r.getOptions(),s=n.getSelection();if(!s)return;const a=new J_o(s,o.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[a]),n.pushUndoStop(),r.updateOptions({insertSpaces:!0})}};bAe.ID="editor.action.indentationToSpaces";let GVe=bAe;const wAe=class wAe extends Bn{constructor(){super({id:wAe.ID,label:_t(1150,"Convert Indentation to Tabs"),precondition:$e.writable,metadata:{description:_t(1151,"Convert the spaces indentation to tabs.")}})}run(t,n){const r=n.getModel();if(!r)return;const o=r.getOptions(),s=n.getSelection();if(!s)return;const a=new eSo(s,o.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[a]),n.pushUndoStop(),r.updateOptions({insertSpaces:!1})}};wAe.ID="editor.action.indentationToTabs";let YVe=wAe;class Wnt extends Bn{constructor(t,n,r){super(r),this.insertSpaces=t,this.displaySizeOnly=n}run(t,n){const r=t.get(Rf),o=t.get(ml),s=n.getModel();if(!s)return;const a=o.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget),l=s.getOptions(),d=[1,2,3,4,5,6,7,8].map(h=>({id:h.toString(),label:h.toString(),description:h===a.tabSize&&h===l.tabSize?U(1144,"Configured Tab Size"):h===a.tabSize?U(1145,"Default Tab Size"):h===l.tabSize?U(1146,"Current Tab Size"):void 0})),u=Math.min(s.getOptions().tabSize-1,7);setTimeout(()=>{r.pick(d,{placeHolder:U(1147,"Select Tab Size for Current File"),activeItem:d[u]}).then(h=>{if(h&&s&&!s.isDisposed()){const g=parseInt(h.label,10);this.displaySizeOnly?s.updateOptions({tabSize:g}):s.updateOptions({tabSize:g,indentSize:g,insertSpaces:this.insertSpaces})}})},50)}}const OAe=class OAe extends Wnt{constructor(){super(!1,!1,{id:OAe.ID,label:_t(1152,"Indent Using Tabs"),precondition:void 0,metadata:{description:_t(1153,"Use indentation with tabs.")}})}};OAe.ID="editor.action.indentUsingTabs";let ZVe=OAe;const yAe=class yAe extends Wnt{constructor(){super(!0,!1,{id:yAe.ID,label:_t(1154,"Indent Using Spaces"),precondition:void 0,metadata:{description:_t(1155,"Use indentation with spaces.")}})}};yAe.ID="editor.action.indentUsingSpaces";let qVe=yAe;const CAe=class CAe extends Wnt{constructor(){super(!0,!0,{id:CAe.ID,label:_t(1156,"Change Tab Display Size"),precondition:void 0,metadata:{description:_t(1157,"Change the space size equivalent of the tab.")}})}};CAe.ID="editor.action.changeTabDisplaySize";let KVe=CAe;const _Ae=class _Ae extends Bn{constructor(){super({id:_Ae.ID,label:_t(1158,"Detect Indentation from Content"),precondition:void 0,metadata:{description:_t(1159,"Detect the indentation from content.")}})}run(t,n){const r=t.get(ml),o=n.getModel();if(!o)return;const s=r.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget);o.detectIndentation(s.insertSpaces,s.tabSize)}};_Ae.ID="editor.action.detectIndentation";let JVe=_Ae;class Y_o extends Bn{constructor(){super({id:"editor.action.reindentlines",label:_t(1160,"Reindent Lines"),precondition:$e.writable,metadata:{description:_t(1161,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(t,n){const r=t.get(kl),o=n.getModel();if(!o)return;const s=_In(o,r,1,o.getLineCount());s.length>0&&(n.pushUndoStop(),n.executeEdits(this.id,s),n.pushUndoStop())}}class Z_o extends Bn{constructor(){super({id:"editor.action.reindentselectedlines",label:_t(1162,"Reindent Selected Lines"),precondition:$e.writable,metadata:{description:_t(1163,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(t,n){const r=t.get(kl),o=n.getModel();if(!o)return;const s=n.getSelections();if(s===null)return;const a=[];for(const l of s){let d=l.startLineNumber,u=l.endLineNumber;if(d!==u&&l.endColumn===1&&u--,d===1){if(d===u)continue}else d--;const h=_In(o,r,d,u);a.push(...h)}a.length>0&&(n.pushUndoStop(),n.executeEdits(this.id,a),n.pushUndoStop())}}class q_o{constructor(t,n){this._initialSelection=n,this._edits=[],this._selectionId=null;for(const r of t)r.range&&typeof r.text=="string"&&this._edits.push(r)}getEditOperations(t,n){for(const o of this._edits)n.addEditOperation(Ee.lift(o.range),o.text);let r=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(r=!0,this._selectionId=n.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(r=!0,this._selectionId=n.trackSelection(this._initialSelection,!1))),r||(this._selectionId=n.trackSelection(this._initialSelection))}computeCursorState(t,n){return n.getTrackedSelection(this._selectionId)}}var Yj;let Z0e=(Yj=class{constructor(t,n){this.editor=t,this._languageConfigurationService=n,this.callOnDispose=new xt,this.callOnModel=new xt,this.callOnDispose.add(t.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(t.onDidChangeModel(()=>this.update())),this.callOnDispose.add(t.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(!this.editor.getOption(17)||this.editor.getOption(16)<4)&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:t})=>{this.trigger(t)}))}trigger(t){const n=this.editor.getSelections();if(n===null||n.length>1)return;const r=this.editor.getModel();if(!r||this.rangeContainsOnlyWhitespaceCharacters(r,t)||!this.editor.getOption(18)&&K_o(r,t)||!r.tokenization.isCheapToTokenize(t.getStartPosition().lineNumber))return;const s=this.editor.getOption(16),{tabSize:a,indentSize:l,insertSpaces:d}=r.getOptions(),u=[],h={shiftIndent:f=>gA.shiftIndent(f,f.length+1,a,l,d),unshiftIndent:f=>gA.unshiftIndent(f,f.length+1,a,l,d)};let g=t.startLineNumber,m=r.getLineContent(g);if(!/\S/.test(m.substring(0,t.startColumn-1))){const f=dZ(s,r,r.getLanguageId(),g,h,this._languageConfigurationService);if(f!==null){const k=Ys(m),A=r0(f,a),p=r0(k,a);if(A!==p){const b=BZ(A,a,d);u.push({range:new Ee(g,1,g,k.length+1),text:b}),m=b+m.substring(k.length)}else{const b=l7n(r,g,this._languageConfigurationService);if(b===0||b===8)return}}}const v=g;for(;gr.tokenization.getLineTokens(A),getLanguageId:()=>r.getLanguageId(),getLanguageIdAtPosition:(A,p)=>r.getLanguageIdAtPosition(A,p)},getLineContent:A=>A===v?m:r.getLineContent(A)},r.getLanguageId(),g+1,h,this._languageConfigurationService);if(k!==null){const A=r0(k,a),p=r0(Ys(r.getLineContent(g+1)),a);if(A!==p){const b=A-p;for(let w=g+1;w<=t.endLineNumber;w++){const O=r.getLineContent(w),y=Ys(O),_=r0(y,a)+b,S=BZ(_,a,d);S!==y&&u.push({range:new Ee(w,1,w,y.length+1),text:S})}}}}if(u.length>0){this.editor.pushUndoStop();const f=new q_o(u,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",f),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(t,n){const r=s=>s.trim().length===0;let o=!0;if(n.startLineNumber===n.endLineNumber){const a=t.getLineContent(n.startLineNumber).substring(n.startColumn-1,n.endColumn-1);o=r(a)}else for(let s=n.startLineNumber;s<=n.endLineNumber;s++){const a=t.getLineContent(s);if(s===n.startLineNumber){const l=a.substring(n.startColumn-1);o=r(l)}else if(s===n.endLineNumber){const l=a.substring(0,n.endColumn-1);o=r(l)}else o=t.getLineFirstNonWhitespaceColumn(s)===0;if(!o)break}return o}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}},Yj.ID="editor.contrib.autoIndentOnPaste",Yj);Z0e=X_o([G_o(1,kl)],Z0e);function K_o(e,t){const n=r=>Wio(e,r)===2;return n(t.getStartPosition())||n(t.getEndPosition())}function SIn(e,t,n,r){if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return;let o="";for(let a=0;a=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},iSo=function(e,t){return function(n,r){t(n,r,e)}},Che,s6;let SV=(s6=class{static get(t){return t.getContribution(Che.ID)}constructor(t,n){this.editor=t,this.editorWorkerService=n,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(t,n){var d;(d=this.currentRequest)==null||d.cancel();const r=this.editor.getSelection(),o=this.editor.getModel();if(!o||!r)return;let s=r;if(s.startLineNumber!==s.endLineNumber)return;const a=new RDn(this.editor,5),l=o.uri;return this.editorWorkerService.canNavigateValueSet(l)?(this.currentRequest=Fd(u=>this.editorWorkerService.navigateValueSet(l,s,n)),this.currentRequest.then(u=>{var f;if(!u||!u.range||!u.value||!a.validate(this.editor))return;const h=Ee.lift(u.range);let g=u.range;const m=u.value.length-(s.endColumn-s.startColumn);g={startLineNumber:g.startLineNumber,startColumn:g.startColumn,endLineNumber:g.endLineNumber,endColumn:g.startColumn+u.value.length},m>1&&(s=new Qn(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+m-1));const v=new tSo(h,s,u.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,v),this.editor.pushUndoStop(),this.decorations.set([{range:g,options:Che.DECORATION}]),(f=this.decorationRemover)==null||f.cancel(),this.decorationRemover=Cy(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(zi)}).catch(zi)):Promise.resolve(void 0)}},Che=s6,s6.ID="editor.contrib.inPlaceReplaceController",s6.DECORATION=Gi.register({description:"in-place-replace",className:"valueSetReplacement"}),s6);SV=Che=nSo([iSo(1,S1)],SV);class rSo extends Bn{constructor(){super({id:"editor.action.inPlaceReplace.up",label:_t(1240,"Replace with Previous Value"),precondition:$e.writable,kbOpts:{kbExpr:$e.editorTextFocus,primary:3159,weight:100}})}run(t,n){const r=SV.get(n);return r?r.run(this.id,!1):Promise.resolve(void 0)}}class oSo extends Bn{constructor(){super({id:"editor.action.inPlaceReplace.down",label:_t(1241,"Replace with Next Value"),precondition:$e.writable,kbOpts:{kbExpr:$e.editorTextFocus,primary:3161,weight:100}})}run(t,n){const r=SV.get(n);return r?r.run(this.id,!0):Promise.resolve(void 0)}}mo(SV.ID,SV,4);un(rSo);un(oSo);class sSo{constructor(t){this._selection=t,this._selectionId=null}getEditOperations(t,n){const r=aSo(t);r&&n.addEditOperation(r.range,r.text),this._selectionId=n.trackSelection(this._selection)}computeCursorState(t,n){return n.getTrackedSelection(this._selectionId)}}function aSo(e){const t=e.getLineCount(),n=e.getLineContent(t),r=Z4(n)===-1;if(!(!t||r))return $l.insert(new it(t,e.getLineMaxColumn(t)),e.getEOL())}const SAe=class SAe extends Bn{constructor(){super({id:SAe.ID,label:_t(1242,"Insert Final New Line"),precondition:$e.writable})}run(t,n,r){const o=n.getSelection();if(o===null)return;const s=new sSo(o);n.pushUndoStop(),n.executeCommands(this.id,[s]),n.pushUndoStop()}};SAe.ID="editor.action.insertFinalNewLine";let eze=SAe;un(eze);class lSo extends Bn{constructor(){super({id:"expandLineSelection",label:_t(1243,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:$e.textInputFocus,primary:2090}})}run(t,n,r){if(r=r||{},!n.hasModel())return;const o=n._getViewModel();o.model.pushStackElement(),o.setCursorStates(r.source,3,th.expandLineSelection(o,o.getCursorStates())),o.revealAllCursors(r.source,!0)}}un(lSo);var cSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},fce=function(e,t){return function(n,r){t(n,r,e)}},_he;const LIn=new yn("LinkedEditingInputVisible",!1),dSo="linked-editing-decoration";var a6;let LV=(a6=class extends ft{static get(t){return t.getContribution(_he.ID)}constructor(t,n,r,o,s){super(),this.languageConfigurationService=o,this._syncRangesToken=0,this._localToDispose=this._register(new xt),this._editor=t,this._providers=r.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=LIn.bindTo(n),this._debounceInformation=s.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new xt),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(78)||a.hasChanged(106))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(t){const n=this._editor.getModel(),r=n!==null&&(this._editor.getOption(78)||this._editor.getOption(106))&&this._providers.has(n);if(r===this._enabled&&!t||(this._enabled=r,this.clearRanges(),this._localToDispose.clear(),!r||n===null))return;this._localToDispose.add(an.runAndSubscribe(n.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition()}));const o=new dA(this._debounceInformation.get(n)),s=()=>{this._rangeUpdateTriggerPromise=o.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(n))},a=new dA(0),l=d=>{this._rangeSyncTriggerPromise=a.trigger(()=>this._syncRanges(d))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{s()})),this._localToDispose.add(this._editor.onDidChangeModelContent(d=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const u=this._currentDecorations.getRange(0);if(u&&d.changes.every(h=>u.intersectRanges(h.range))){l(this._syncRangesToken);return}}s()})),this._localToDispose.add({dispose:()=>{o.dispose(),a.dispose()}}),this.updateRanges()}_syncRanges(t){if(!this._editor.hasModel()||t!==this._syncRangesToken||this._currentDecorations.length===0)return;const n=this._editor.getModel(),r=this._currentDecorations.getRange(0);if(!r||r.startLineNumber!==r.endLineNumber)return this.clearRanges();const o=n.getValueInRange(r);if(this._currentWordPattern){const a=o.match(this._currentWordPattern);if((a?a[0].length:0)!==o.length)return this.clearRanges()}const s=[];for(let a=1,l=this._currentDecorations.length;a1){this.clearRanges();return}const r=this._editor.getModel(),o=r.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===o){if(n.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const l=this._currentDecorations.getRange(0);if(l&&l.containsPosition(n))return}}if(!((a=this._currentRequestPosition)!=null&&a.equals(n))){const l=this._currentDecorations.getRange(0);l!=null&&l.containsPosition(n)||this.clearRanges()}this._currentRequestPosition=n,this._currentRequestModelVersion=o;const s=this._currentRequestCts=new ja;try{const l=new vu(!1),d=await xIn(this._providers,r,n,s.token);if(this._debounceInformation.update(r,l.elapsed()),s!==this._currentRequestCts||(this._currentRequestCts=null,o!==r.getVersionId()))return;let u=[];d!=null&&d.ranges&&(u=d.ranges),this._currentWordPattern=(d==null?void 0:d.wordPattern)||this._languageWordPattern;let h=!1;for(let m=0,v=u.length;m({range:m,options:_he.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(g),this._syncRangesToken++}catch(l){C2(l)||zi(l),(this._currentRequestCts===s||!this._currentRequestCts)&&this.clearRanges()}}},_he=a6,a6.ID="editor.contrib.linkedEditing",a6.DECORATION=Gi.register({description:"linked-editing",stickiness:0,className:dSo}),a6);LV=_he=cSo([fce(1,Qi),fce(2,Nn),fce(3,kl),fce(4,CA)],LV);class uSo extends Bn{constructor(){super({id:"editor.action.linkedEditing",label:_t(1276,"Start Linked Editing"),precondition:Ft.and($e.writable,$e.hasRenameProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:3132,weight:100}})}runCommand(t,n){const r=t.get(yo),[o,s]=Array.isArray(n)&&n||[void 0,void 0];return vi.isUri(o)&&it.isIPosition(s)?r.openCodeEditor({resource:o},r.getActiveCodeEditor()).then(a=>{a&&(a.setPosition(s),a.invokeWithinContext(l=>(this.reportTelemetry(l,a),this.run(l,a))))},zi):super.runCommand(t,n)}run(t,n){const r=LV.get(n);return r?Promise.resolve(r.updateRanges(!0)):Promise.resolve()}}const hSo=$d.bindToContribution(LV.get);On(new hSo({id:"cancelLinkedEditingInput",precondition:LIn,handler:e=>e.clearRanges(),kbOpts:{kbExpr:$e.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function xIn(e,t,n,r){const o=e.ordered(t);return EJe(o.map(s=>async()=>{try{return await s.provideLinkedEditingRanges(t,n,r)}catch(a){Nc(a);return}}),s=>!!s&&yg(s==null?void 0:s.ranges))}Ve("editor.linkedEditingBackground",{dark:Dt.fromHex("#f00").transparent(.3),light:Dt.fromHex("#f00").transparent(.3),hcDark:Dt.fromHex("#f00").transparent(.3),hcLight:Dt.white},U(1275,"Background color when the editor auto renames on type."));_1("_executeLinkedEditingProvider",(e,t,n)=>{const{linkedEditingRangeProvider:r}=e.get(Nn);return xIn(r,t,n,Er.None)});mo(LV.ID,LV,1);un(uSo);let fSo=class{constructor(t,n){this._link=t,this._provider=n}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(t){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,t)).then(n=>(this._link=n||this._link,this._link.url?this.resolve(t):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}};const xq=class xq{constructor(t){this._disposables=new xt;let n=[];for(const[r,o]of t){const s=r.links.map(a=>new fSo(a,o));n=xq._union(n,s),AI(r)&&(this._disposables??(this._disposables=new xt),this._disposables.add(r))}this.links=n}dispose(){var t;(t=this._disposables)==null||t.dispose(),this.links.length=0}static _union(t,n){const r=[];let o,s,a,l;for(o=0,a=0,s=t.length,l=n.length;o{try{const d=await a.provideLinks(t,n);d&&(r[l]=[d,a])}catch(d){Nc(d)}});await Promise.all(o);let s=new q0e(P3(r));return n.isCancellationRequested&&(s.dispose(),s=q0e.Empty),s}co.registerCommand("_executeLinkProvider",async(e,...t)=>{let[n,r]=t;Oo(n instanceof vi),typeof r!="number"&&(r=0);const{linkProvider:o}=e.get(Nn),s=e.get(ml).getModel(n);if(!s)return[];const a=await EIn(o,s,Er.None);if(!a)return[];for(let d=0;d=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gce=function(e,t){return function(n,r){t(n,r,e)}},tze,fB;let lee=(fB=class extends ft{static get(t){return t.getContribution(tze.ID)}constructor(t,n,r,o,s){super(),this.editor=t,this.openerService=n,this.notificationService=r,this.languageFeaturesService=o,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=s.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new Es(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const a=this._register(new y3e(t));this._register(a.onMouseMoveOrRelevantKeyDown(([l,d])=>{this._onEditorMouseMove(l,d)})),this._register(a.onExecute(l=>{this.onEditorMouseUp(l)})),this._register(a.onCancel(l=>{this.cleanUpActiveLinkDecoration()})),this._register(t.onDidChangeConfiguration(l=>{l.hasChanged(79)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(t.onDidChangeModelContent(l=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(t.onDidChangeModel(l=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(t.onDidChangeModelLanguage(l=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(l=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;const t=this.editor.getModel();if(!t.isTooLargeForSyncing()&&this.providers.has(t)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=Fd(n=>EIn(this.providers,t,n));try{const n=new vu(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(t,n.elapsed()),t.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(n){zi(n)}finally{this.computePromise=null}}}updateDecorations(t){const n=this.editor.getOption(86)==="altKey",r=[],o=Object.keys(this.currentOccurrences);for(const a of o){const l=this.currentOccurrences[a];r.push(l.decorationId)}const s=[];if(t)for(const a of t)s.push(YU.decoration(a,n));this.editor.changeDecorations(a=>{const l=a.deltaDecorations(r,s);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let d=0,u=l.length;d{o.activate(s,r),this.activeLinkDecorationId=o.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const t=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){const n=this.currentOccurrences[this.activeLinkDecorationId];n&&this.editor.changeDecorations(r=>{n.deactivate(r,t)}),this.activeLinkDecorationId=null}}onEditorMouseUp(t){if(!this.isEnabled(t))return;const n=this.getLinkOccurrence(t.target.position);n&&this.openLinkOccurrence(n,t.hasSideBySideModifier,!0)}openLinkOccurrence(t,n,r=!1){if(!this.openerService)return;const{link:o}=t;o.resolve(Er.None).then(s=>{if(typeof s=="string"&&this.editor.hasModel()){const a=this.editor.getModel().uri;if(a.scheme===Ci.file&&s.startsWith(`${Ci.file}:`)){const l=vi.parse(s);if(l.scheme===Ci.file){const d=Ew(l);let u=null;d.startsWith("/./")||d.startsWith("\\.\\")?u=`.${d.substr(1)}`:(d.startsWith("//./")||d.startsWith("\\\\.\\"))&&(u=`.${d.substr(2)}`),u&&(s=MEn(a,u))}}}return this.openerService.open(s,{openToSide:n,fromUserGesture:r,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},s=>{const a=s instanceof Error?s.message:s;a==="invalid"?this.notificationService.warn(U(1277,"Failed to open this link because it is not well-formed: {0}",o.url.toString())):a==="missing"?this.notificationService.warn(U(1278,"Failed to open this link because its target is missing.")):zi(s)})}getLinkOccurrence(t){if(!this.editor.hasModel()||!t)return null;const n=this.editor.getModel().getDecorationsInRange({startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:t.lineNumber,endColumn:t.column},0,!0);for(const r of n){const o=this.currentOccurrences[r.id];if(o)return o}return null}isEnabled(t,n){return!!(t.target.type===6&&(t.hasTriggerModifier||n&&n.keyCodeIsTriggerKey||t.isMiddleClick&&t.mouseMiddleClickAction==="openLink"))}stop(){var t;this.computeLinks.cancel(),this.activeLinksList&&((t=this.activeLinksList)==null||t.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}},tze=fB,fB.ID="editor.linkDetector",fB);lee=tze=gSo([gce(1,OL),gce(2,ic),gce(3,Nn),gce(4,CA)],lee);const n_t={general:Gi.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:Gi.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class YU{static decoration(t,n){return{range:t.range,options:YU._getOptions(t,n,!1)}}static _getOptions(t,n,r){const o={...r?n_t.active:n_t.general};return o.hoverMessage=mSo(t,n),o}constructor(t,n){this.link=t,this.decorationId=n}activate(t,n){t.changeDecorationOptions(this.decorationId,YU._getOptions(this.link,n,!0))}deactivate(t,n){t.changeDecorationOptions(this.decorationId,YU._getOptions(this.link,n,!1))}}function mSo(e,t){const n=e.url&&/^command:/i.test(e.url.toString()),r=e.tooltip?e.tooltip:n?U(1279,"Execute command"):U(1280,"Follow link"),o=t?Tr?U(1281,"cmd + click"):U(1282,"ctrl + click"):Tr?U(1283,"option + click"):U(1284,"alt + click");if(e.url){let s="";if(/^command:/i.test(e.url.toString())){const l=e.url.toString().match(/^command:([^?#]+)/);if(l){const d=l[1];s=U(1285,"Execute command {0}",d)}}return new bf("",!0).appendLink(e.url.toString(!0).replace(/ /g,"%20"),r,s).appendMarkdown(` (${o})`)}else return new bf().appendText(`${r} (${o})`)}class kSo extends Bn{constructor(){super({id:"editor.action.openLink",label:_t(1286,"Open Link"),precondition:void 0})}run(t,n){const r=lee.get(n);if(!r||!n.hasModel())return;const o=n.getSelections();for(const s of o){const a=r.getLinkOccurrence(s.getEndPosition());a&&r.openLinkOccurrence(a,!1)}}}mo(lee.ID,lee,1);un(kSo);const pat=class pat extends ft{constructor(t){super(),this._editor=t,this._register(this._editor.onMouseDown(n=>{const r=this._editor.getOption(133);r>=0&&n.target.type===6&&n.target.position.column>=r&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};pat.ID="editor.contrib.longLinesHelper";let K0e=pat;mo(K0e.ID,K0e,2);const bat=class bat extends ft{constructor(t){super(),this._editor=t;const n=hl(this._editor),r=n.getOption(171);this._register(Oi(o=>{if(!r.read(o))return;const s=n.domNode.read(o);if(!s)return;const a=o.store.add(YJe("scrollingSession",void 0));o.store.add(this._editor.onMouseDown(d=>{if(a.read(void 0)){a.set(void 0,void 0);return}if(!d.event.middleButton)return;d.event.stopPropagation(),d.event.preventDefault();const h=new xt,g=new cu(d.event.posx,d.event.posy),v=vSo(ii(s),g,h).map(A=>A.subtract(g).withThreshold(5)),f=s.getBoundingClientRect(),k=new cu(g.x-f.left,g.y-f.top);a.set({mouseDeltaAfterThreshold:v,initialMousePosInEditor:k,didScroll:!1,dispose:()=>h.dispose()},void 0),h.add(this._editor.onMouseUp(A=>{const p=a.read(void 0);p&&p.didScroll&&a.set(void 0,void 0)})),h.add(this._editor.onKeyDown(A=>{a.set(void 0,void 0)}))})),o.store.add(Oi(d=>{const u=a.read(d);if(!u)return;let h=Date.now();d.store.add(Oi(m=>{I0e.instance.invalidateOnNextAnimationFrame(m);const v=Date.now(),f=v-h;h=v;const k=u.mouseDeltaAfterThreshold.read(void 0),A=f/32,p=k.scale(A),b=new cu(this._editor.getScrollLeft(),this._editor.getScrollTop());this._editor.setScrollPosition(ASo(b.add(p))),p.isZero()||(u.didScroll=!0)}));const g=Rt(m=>{const v=u.mouseDeltaAfterThreshold.read(m);let f="";return f+=v.y<0?"n":v.y>0?"s":"",f+=v.x<0?"w":v.x>0?"e":"",f});d.store.add(Oi(m=>{s.setAttribute("data-scroll-direction",g.read(m))}))}));const l=o.store.add(cr.div({class:["scroll-editor-on-middle-click-dot",a.map(d=>d?"":"hidden")],style:{left:a.map(d=>d?d.initialMousePosInEditor.x:0),top:a.map(d=>d?d.initialMousePosInEditor.y:0)}}).toDisposableLiveElement());o.store.add(bN(s,l.element)),o.store.add(Oi(d=>{const u=a.read(d);s.classList.toggle("scroll-editor-on-middle-click-editor",!!u)}))}))}};bat.ID="editor.contrib.middleScroll";let J0e=bat;function vSo(e,t,n){const r=Ti("pos",t);return n.add(wt(e,"mousemove",o=>{r.set(new cu(o.pageX,o.pageY),void 0)})),r}function ASo(e){return{scrollLeft:e.x,scrollTop:e.y}}mo(J0e.ID,J0e,2);const pSo=Ve("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},U(1563,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);Ve("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},U(1564,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);Ve("editor.wordHighlightTextBackground",pSo,U(1565,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const bSo=Ve("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Va,hcLight:Va},U(1566,"Border color of a symbol during read-access, like reading a variable."));Ve("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Va,hcLight:Va},U(1567,"Border color of a symbol during write-access, like writing to a variable."));Ve("editor.wordHighlightTextBorder",bSo,U(1568,"Border color of a textual occurrence for a symbol."));const wSo=Ve("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",U(1569,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),OSo=Ve("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",U(1570,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),ySo=Ve("editorOverviewRuler.wordHighlightTextForeground",x7n,U(1571,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),CSo=Gi.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:zl(OSo),position:r2.Center},minimap:{color:zl(Xbe),position:1}}),_So=Gi.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:zl(ySo),position:r2.Center},minimap:{color:zl(Xbe),position:1}}),SSo=Gi.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:zl(x7n),position:r2.Center},minimap:{color:zl(Xbe),position:1}}),LSo=Gi.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),xSo=Gi.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:zl(wSo),position:r2.Center},minimap:{color:zl(Xbe),position:1}});function ESo(e){return e===uV.Write?CSo:e===uV.Text?_So:xSo}function TSo(e){return e?LSo:SSo}yA((e,t)=>{const n=e.getColor(bet);n&&t.addRule(`.monaco-editor .selectionHighlight { background-color: ${n.transparent(.5)}; }`)});var QSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DSo=function(e,t){return function(n,r){t(n,r,e)}},nze;function hE(e,t){const n=t.filter(r=>!e.find(o=>o.equals(r)));if(n.length>=1){const r=n.map(s=>`line ${s.viewState.position.lineNumber} column ${s.viewState.position.column}`).join(", "),o=n.length===1?U(1288,"Cursor added: {0}",r):U(1289,"Cursors added: {0}",r);A3(o)}}class BSo extends Bn{constructor(){super({id:"editor.action.insertCursorAbove",label:_t(1298,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1290,"&&Add Cursor Above"),order:2}})}run(t,n,r){if(!n.hasModel())return;let o=!0;r&&r.logicalLine===!1&&(o=!1);const s=n._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const a=s.getCursorStates();s.setCursorStates(r.source,3,th.addCursorUp(s,a,o)),s.revealTopMostCursor(r.source),hE(a,s.getCursorStates())}}class RSo extends Bn{constructor(){super({id:"editor.action.insertCursorBelow",label:_t(1299,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1291,"A&&dd Cursor Below"),order:3}})}run(t,n,r){if(!n.hasModel())return;let o=!0;r&&r.logicalLine===!1&&(o=!1);const s=n._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const a=s.getCursorStates();s.setCursorStates(r.source,3,th.addCursorDown(s,a,o)),s.revealBottomMostCursor(r.source),hE(a,s.getCursorStates())}}class ISo extends Bn{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:_t(1300,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1292,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(t,n,r){if(!t.isEmpty()){for(let o=t.startLineNumber;o1&&r.push(new Qn(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn))}}run(t,n){if(!n.hasModel())return;const r=n.getModel(),o=n.getSelections(),s=n._getViewModel(),a=s.getCursorStates(),l=[];o.forEach(d=>this.getCursorsForSelection(d,r,l)),l.length>0&&n.setSelections(l),hE(a,s.getCursorStates())}}class MSo extends Bn{constructor(){super({id:"editor.action.addCursorsToBottom",label:_t(1301,"Add Cursors to Bottom"),precondition:void 0})}run(t,n){if(!n.hasModel())return;const r=n.getSelections(),o=n.getModel().getLineCount(),s=[];for(let d=r[0].startLineNumber;d<=o;d++)s.push(new Qn(d,r[0].startColumn,d,r[0].endColumn));const a=n._getViewModel(),l=a.getCursorStates();s.length>0&&n.setSelections(s),hE(l,a.getCursorStates())}}class PSo extends Bn{constructor(){super({id:"editor.action.addCursorsToTop",label:_t(1302,"Add Cursors to Top"),precondition:void 0})}run(t,n){if(!n.hasModel())return;const r=n.getSelections(),o=[];for(let l=r[0].startLineNumber;l>=1;l--)o.push(new Qn(l,r[0].startColumn,l,r[0].endColumn));const s=n._getViewModel(),a=s.getCursorStates();o.length>0&&n.setSelections(o),hE(a,s.getCursorStates())}}class mce{constructor(t,n,r){this.selections=t,this.revealRange=n,this.revealScrollType=r}}class cee{static create(t,n){if(!t.hasModel())return null;const r=n.getState();if(!t.hasTextFocus()&&r.isRevealed&&r.searchString.length>0)return new cee(t,n,!1,r.searchString,r.wholeWord,r.matchCase,null);let o=!1,s,a;const l=t.getSelections();l.length===1&&l[0].isEmpty()?(o=!0,s=!0,a=!0):(s=r.wholeWord,a=r.matchCase);const d=t.getSelection();let u,h=null;if(d.isEmpty()){const g=t.getConfiguredWordAtPosition(d.getStartPosition());if(!g)return null;u=g.word,h=new Qn(d.startLineNumber,g.startColumn,d.startLineNumber,g.endColumn)}else u=t.getModel().getValueInRange(d).replace(/\r\n/g,` -`);return new cee(t,n,o,u,s,a,h)}constructor(t,n,r,o,s,a,l){this._editor=t,this.findController=n,this.isDisconnectedFromFindController=r,this.searchText=o,this.wholeWord=s,this.matchCase=a,this.currentMatch=l}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.concat(t),t,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.slice(0,n.length-1).concat(t),t,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const o=this.currentMatch;return this.currentMatch=null,o}this.findController.highlightFindOptions();const t=this._editor.getSelections(),n=t[t.length-1],r=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return r?new Qn(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.concat(t),t,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.slice(0,n.length-1).concat(t),t,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const o=this.currentMatch;return this.currentMatch=null,o}this.findController.highlightFindOptions();const t=this._editor.getSelections(),n=t[t.length-1],r=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return r?new Qn(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn):null}selectAll(t){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const n=this._editor.getModel();return t?n.findMatches(this.searchText,t,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824):n.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}const LAe=class LAe extends ft{static get(t){return t.getContribution(LAe.ID)}constructor(t){super(),this._sessionDispose=this._register(new xt),this._editor=t,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(t){if(!this._session){const n=cee.create(this._editor,t);if(!n)return;this._session=n;const r={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(r.wholeWordOverride=1,r.matchCaseOverride=1,r.isRegexOverride=2),t.getState().change(r,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(o=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(t.getState().onFindReplaceStateChange(o=>{(o.matchCase||o.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const t={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(t,!1)}this._session=null}_setSelections(t){this._ignoreSelectionChange=!0,this._editor.setSelections(t),this._ignoreSelectionChange=!1}_expandEmptyToWord(t,n){if(!n.isEmpty())return n;const r=this._editor.getConfiguredWordAtPosition(n.getStartPosition());return r?new Qn(n.startLineNumber,r.startColumn,n.startLineNumber,r.endColumn):n}_applySessionResult(t){t&&(this._setSelections(t.selections),t.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(t.revealRange,t.revealScrollType))}getSession(t){return this._session}addSelectionToNextFindMatch(t){if(this._editor.hasModel()){if(!this._session){const n=this._editor.getSelections();if(n.length>1){const o=t.getState().matchCase;if(!TIn(this._editor.getModel(),n,o)){const a=this._editor.getModel(),l=[];for(let d=0,u=n.length;d0&&r.isRegex){const o=this._editor.getModel();r.searchScope?n=o.findMatches(r.searchString,r.searchScope,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(148):null,!1,1073741824):n=o.findMatches(r.searchString,!0,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(t),!this._session)return;n=this._session.selectAll(r.searchScope)}if(n.length>0){const o=this._editor.getSelection();for(let s=0,a=n.length;snew Qn(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn)))}}};LAe.ID="editor.contrib.multiCursorController";let xV=LAe;class hH extends Bn{run(t,n){const r=xV.get(n);if(!r)return;const o=n._getViewModel();if(o){const s=o.getCursorStates(),a=w1.get(n);if(a)this._run(r,a);else{const l=t.get(Yn).createInstance(w1,n);this._run(r,l),l.dispose()}hE(s,o.getCursorStates())}}}class FSo extends hH{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:_t(1303,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:2082,weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1293,"Add &&Next Occurrence"),order:5}})}_run(t,n){t.addSelectionToNextFindMatch(n)}}class NSo extends hH{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:_t(1304,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1294,"Add P&&revious Occurrence"),order:6}})}_run(t,n){t.addSelectionToPreviousFindMatch(n)}}class USo extends hH{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:_t(1305,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:Uc(2089,2082),weight:100}})}_run(t,n){t.moveSelectionToNextFindMatch(n)}}class jSo extends hH{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:_t(1306,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(t,n){t.moveSelectionToPreviousFindMatch(n)}}class WSo extends hH{constructor(){super({id:"editor.action.selectHighlights",label:_t(1307,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:3114,weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1295,"Select All &&Occurrences"),order:7}})}_run(t,n){t.selectAll(n)}}class VSo extends hH{constructor(){super({id:"editor.action.changeAll",label:_t(1308,"Change All Occurrences"),precondition:Ft.and($e.writable,$e.editorTextFocus),kbOpts:{kbExpr:$e.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(t,n){t.selectAll(n)}}class zSo{constructor(t,n,r,o,s){this._model=t,this._searchText=n,this._matchCase=r,this._wordSeparators=o,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),s&&this._model===s._model&&this._searchText===s._searchText&&this._matchCase===s._matchCase&&this._wordSeparators===s._wordSeparators&&this._modelVersionId===s._modelVersionId&&(this._cachedFindMatches=s._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(t=>t.range),this._cachedFindMatches.sort(Ee.compareRangesUsingStarts)),this._cachedFindMatches}}var gB;let eke=(gB=class extends ft{constructor(t,n){super(),this._languageFeaturesService=n,this.editor=t,this._isEnabled=t.getOption(122),this._isEnabledMultiline=t.getOption(124),this._maxLength=t.getOption(123),this._decorations=t.createDecorationsCollection(),this.updateSoon=this._register(new Es(()=>this._update(),300)),this.state=null,this._register(t.onDidChangeConfiguration(o=>{this._isEnabled=t.getOption(122),this._isEnabledMultiline=t.getOption(124),this._maxLength=t.getOption(123)})),this._register(t.onDidChangeCursorSelection(o=>{this._isEnabled&&(o.selection.isEmpty()?o.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(t.onDidChangeModel(o=>{this._setState(null)})),this._register(t.onDidChangeModelContent(o=>{this._isEnabled&&this.updateSoon.schedule()}));const r=w1.get(t);r&&this._register(r.getState().onFindReplaceStateChange(o=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(nze._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(t,n,r,o,s){if(!n||!s.hasModel())return null;if(!r){const g=s.getSelection();if(g.startLineNumber!==g.endLineNumber)return null}const a=xV.get(s);if(!a)return null;const l=w1.get(s);if(!l)return null;let d=a.getSession(l);if(!d){const g=s.getSelections();if(g.length>1){const v=l.getState().matchCase;if(!TIn(s.getModel(),g,v))return null}d=cee.create(s,l)}if(!d||d.currentMatch||/^[ \t]+$/.test(d.searchText)||o>0&&d.searchText.length>o)return null;const u=l.getState(),h=u.matchCase;if(u.isRevealed){let g=u.searchString;h||(g=g.toLowerCase());let m=d.searchText;if(h||(m=m.toLowerCase()),g===m&&d.matchCase===u.matchCase&&d.wholeWord===u.wholeWord&&!u.isRegex)return null}return new zSo(s.getModel(),d.searchText,d.matchCase,d.wholeWord?s.getOption(148):null,t)}_setState(t){if(this.state=t,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const n=this.editor.getModel();if(n.isTooLargeForTokenization())return;const r=this.state.findMatches(),o=this.editor.getSelections();o.sort(Ee.compareRangesUsingStarts);const s=[];for(let u=0,h=0,g=r.length,m=o.length;u=m)s.push(v),u++;else{const f=Ee.compareRangesUsingStarts(v,o[h]);f<0?((o[h].isEmpty()||!Ee.areIntersecting(v,o[h]))&&s.push(v),u++):(f>0||u++,h++)}}const a=this.editor.getOption(90)!=="off",l=this._languageFeaturesService.documentHighlightProvider.has(n)&&a,d=s.map(u=>({range:u,options:TSo(l)}));this._decorations.set(d)}dispose(){this._setState(null),super.dispose()}},nze=gB,gB.ID="editor.contrib.selectionHighlighter",gB);eke=nze=QSo([DSo(1,Nn)],eke);function TIn(e,t,n){const r=i_t(e,t[0],!n);for(let o=1,s=t.length;o{const[n,r,o]=t;Oo(vi.isUri(n)),Oo(it.isIPosition(r)),Oo(typeof o=="string"||!o);const s=e.get(Nn),a=await e.get(Dg).createModelReference(n);try{const l=await QIn(s.signatureHelpProvider,a.object.textEditorModel,it.lift(r),{triggerKind:ly.Invoke,isRetrigger:!1,triggerCharacter:o},Er.None);return l?(setTimeout(()=>l.dispose(),0),l.value):void 0}finally{a.dispose()}});var l5;(function(e){e.Default={type:0};class t{constructor(o,s){this.request=o,this.previouslyActiveHints=s,this.type=2}}e.Pending=t;class n{constructor(o){this.hints=o,this.type=1}}e.Active=n})(l5||(l5={}));const xAe=class xAe extends ft{constructor(t,n,r=xAe.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new at),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=l5.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ts),this.triggerChars=new Bme,this.retriggerChars=new Bme,this.triggerId=0,this.editor=t,this.providers=n,this.throttledDelayer=new dA(r),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(o=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(o=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(o=>this.onCursorChange(o))),this._register(this.editor.onDidChangeModelContent(o=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(o=>this.onDidType(o))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(t){this._state.type===2&&this._state.request.cancel(),this._state=t}cancel(t=!1){this.state=l5.Default,this.throttledDelayer.cancel(),t||this._onChangedHints.fire(void 0)}trigger(t,n){const r=this.editor.getModel();if(!r||!this.providers.has(r))return;const o=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger(()=>this.doTrigger(o),n).catch(zi)}next(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,n=this.state.hints.activeSignature,r=n%t===t-1,o=this.editor.getOption(98).cycle;if((t<2||r)&&!o){this.cancel();return}this.updateActiveSignature(r&&o?0:n+1)}previous(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,n=this.state.hints.activeSignature,r=n===0,o=this.editor.getOption(98).cycle;if((t<2||r)&&!o){this.cancel();return}this.updateActiveSignature(r&&o?t-1:n-1)}updateActiveSignature(t){this.state.type===1&&(this.state=new l5.Active({...this.state.hints,activeSignature:t}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){const n=this.state.type===1||this.state.type===2,r=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const o=this._pendingTriggers.reduce(XSo);this._pendingTriggers=[];const s={triggerKind:o.triggerKind,triggerCharacter:o.triggerCharacter,isRetrigger:n,activeSignatureHelp:r};if(!this.editor.hasModel())return!1;const a=this.editor.getModel(),l=this.editor.getPosition();this.state=new l5.Pending(Fd(d=>QIn(this.providers,a,l,s,d)),r);try{const d=await this.state.request;return t!==this.triggerId?(d==null||d.dispose(),!1):!d||!d.value.signatures||d.value.signatures.length===0?(d==null||d.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new l5.Active(d.value),this._lastSignatureHelpResult.value=d,this._onChangedHints.fire(this.state.hints),!0)}catch(d){return t===this.triggerId&&(this.state=l5.Default),zi(d),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const t=this.editor.getModel();if(t)for(const n of this.providers.ordered(t)){for(const r of n.signatureHelpTriggerCharacters||[])if(r.length){const o=r.charCodeAt(0);this.triggerChars.add(o),this.retriggerChars.add(o)}for(const r of n.signatureHelpRetriggerCharacters||[])r.length&&this.retriggerChars.add(r.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;const n=t.length-1,r=t.charCodeAt(n);(this.triggerChars.has(r)||this.isTriggered&&this.retriggerChars.has(r))&&this.trigger({triggerKind:ly.TriggerCharacter,triggerCharacter:t.charAt(n)})}onCursorChange(t){t.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:ly.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:ly.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(98).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};xAe.DEFAULT_DELAY=120;let ize=xAe;function XSo(e,t){switch(t.triggerKind){case ly.Invoke:return t;case ly.ContentChange:return e;case ly.TriggerCharacter:default:return t}}var GSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},r_t=function(e,t){return function(n,r){t(n,r,e)}},rze;const fk=tn,YSo=Da("parameter-hints-next",zt.chevronDown,U(1312,"Icon for show next parameter hint.")),ZSo=Da("parameter-hints-previous",zt.chevronUp,U(1313,"Icon for show previous parameter hint."));var mB;let oze=(mB=class extends ft{constructor(t,n,r,o){super(),this.editor=t,this.model=n,this.markdownRendererService=o,this.renderDisposeables=this._register(new xt),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=RR.Visible.bindTo(r),this.keyMultipleSignatures=RR.MultipleSignatures.bindTo(r)}createParameterHintDOMNodes(){const t=fk(".editor-widget.parameter-hints-widget"),n=Xt(t,fk(".phwrapper"));n.tabIndex=-1;const r=Xt(n,fk(".controls")),o=Xt(r,fk(".button"+fi.asCSSSelector(ZSo))),s=Xt(r,fk(".overloads")),a=Xt(r,fk(".button"+fi.asCSSSelector(YSo)));this._register(wt(o,"click",m=>{Qo.stop(m),this.previous()})),this._register(wt(a,"click",m=>{Qo.stop(m),this.next()}));const l=fk(".body"),d=new Mie(l,{alwaysConsumeMouseWheel:!0});this._register(d),n.appendChild(d.getDomNode());const u=Xt(l,fk(".signature")),h=Xt(l,fk(".docs"));t.style.userSelect="text",this.domNodes={element:t,signature:u,overloads:s,docs:h,scrollbar:d},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(m=>{this.visible&&this.editor.layoutContentWidget(this)}));const g=()=>{if(!this.domNodes)return;const m=this.editor.getOption(59),v=this.domNodes.element;v.style.fontSize=`${m.fontSize}px`,v.style.lineHeight=`${m.lineHeight/m.fontSize}`,v.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",m.fontFamily),v.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",f1.fontFamily)};g(),this._register(an.chain(this.editor.onDidChangeConfiguration.bind(this.editor),m=>m.filter(v=>v.hasChanged(59)))(g)),this._register(this.editor.onDidLayoutChange(m=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var t;(t=this.domNodes)==null||t.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var t;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(t=this.domNodes)==null||t.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(t){if(this.renderDisposeables.clear(),!this.domNodes)return;const n=t.signatures.length>1;this.domNodes.element.classList.toggle("multiple",n),this.keyMultipleSignatures.set(n),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const r=t.signatures[t.activeSignature];if(!r)return;const o=Xt(this.domNodes.signature,fk(".code")),s=r.parameters.length>0,a=r.activeParameter??t.activeParameter;if(s)this.renderParameters(o,r,a);else{const u=Xt(o,fk("span"));u.textContent=r.label}const l=r.parameters[a];if(l!=null&&l.documentation){const u=fk("span.documentation");if(typeof l.documentation=="string")u.textContent=l.documentation;else{const h=this.renderMarkdownDocs(l.documentation);u.appendChild(h.element)}Xt(this.domNodes.docs,fk("p",{},u))}if(r.documentation!==void 0)if(typeof r.documentation=="string")Xt(this.domNodes.docs,fk("p",{},r.documentation));else{const u=this.renderMarkdownDocs(r.documentation);Xt(this.domNodes.docs,u.element)}const d=this.hasDocs(r,l);if(this.domNodes.signature.classList.toggle("has-docs",d),this.domNodes.docs.classList.toggle("empty",!d),this.domNodes.overloads.textContent=String(t.activeSignature+1).padStart(t.signatures.length.toString().length,"0")+"/"+t.signatures.length,l){let u="";const h=r.parameters[a];Array.isArray(h.label)?u=r.label.substring(h.label[0],h.label[1]):u=h.label,h.documentation&&(u+=typeof h.documentation=="string"?`, ${h.documentation}`:`, ${h.documentation.value}`),r.documentation&&(u+=typeof r.documentation=="string"?`, ${r.documentation}`:`, ${r.documentation.value}`),this.announcedLabel!==u&&(um(U(1314,"{0}, hint",u)),this.announcedLabel=u)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(t){const n=this.renderDisposeables.add(this.markdownRendererService.render(t,{context:this.editor,asyncRenderCallback:()=>{var r;(r=this.domNodes)==null||r.scrollbar.scanDomNode()}}));return n.element.classList.add("markdown-docs"),n}hasDocs(t,n){return!!(n&&typeof n.documentation=="string"&&a9(n.documentation).length>0||n&&typeof n.documentation=="object"&&a9(n.documentation).value.length>0||t.documentation&&typeof t.documentation=="string"&&a9(t.documentation).length>0||t.documentation&&typeof t.documentation=="object"&&a9(t.documentation.value).length>0)}renderParameters(t,n,r){const[o,s]=this.getParameterLabelOffsets(n,r),a=document.createElement("span");a.textContent=n.label.substring(0,o);const l=document.createElement("span");l.textContent=n.label.substring(o,s),l.className="parameter active";const d=document.createElement("span");d.textContent=n.label.substring(s),Xt(t,a,l,d)}getParameterLabelOffsets(t,n){const r=t.parameters[n];if(r){if(Array.isArray(r.label))return r.label;if(r.label.length){const o=new RegExp(`(\\W|^)${M0(r.label)}(?=\\W|$)`,"g");o.test(t.label);const s=o.lastIndex-r.label.length;return s>=0?[s,o.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return rze.ID}updateMaxHeight(){if(!this.domNodes)return;const n=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=n;const r=this.domNodes.element.getElementsByClassName("phwrapper");r.length&&(r[0].style.maxHeight=n)}},rze=mB,mB.ID="editor.widget.parameterHintsWidget",mB);oze=rze=GSo([r_t(2,Qi),r_t(3,Cp)],oze);Ve("editorHoverWidget.highlightForeground",gN,U(1315,"Foreground color of the active item in the parameter hint."));var qSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},o_t=function(e,t){return function(n,r){t(n,r,e)}},sze,kB;let EV=(kB=class extends ft{static get(t){return t.getContribution(sze.ID)}constructor(t,n,r){super(),this.editor=t,this.model=this._register(new ize(t,r.signatureHelpProvider)),this._register(this.model.onChangedHints(o=>{var s;o?(this.widget.value.show(),this.widget.value.render(o)):(s=this.widget.rawValue)==null||s.hide()})),this.widget=new zh(()=>this._register(n.createInstance(oze,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var t;(t=this.widget.rawValue)==null||t.previous()}next(){var t;(t=this.widget.rawValue)==null||t.next()}trigger(t){this.model.trigger(t,0)}},sze=kB,kB.ID="editor.controller.parameterHints",kB);EV=sze=qSo([o_t(1,Yn),o_t(2,Nn)],EV);class KSo extends Bn{constructor(){super({id:"editor.action.triggerParameterHints",label:_t(1311,"Trigger Parameter Hints"),precondition:$e.hasSignatureHelpProvider,kbOpts:{kbExpr:$e.editorTextFocus,primary:3082,weight:100}})}run(t,n){const r=EV.get(n);r==null||r.trigger({triggerKind:ly.Invoke})}}mo(EV.ID,EV,2);un(KSo);const Vnt=175,znt=$d.bindToContribution(EV.get);On(new znt({id:"closeParameterHints",precondition:RR.Visible,handler:e=>e.cancel(),kbOpts:{weight:Vnt,kbExpr:$e.focus,primary:9,secondary:[1033]}}));On(new znt({id:"showPrevParameterHint",precondition:Ft.and(RR.Visible,RR.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:Vnt,kbExpr:$e.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));On(new znt({id:"showNextParameterHint",precondition:Ft.and(RR.Visible,RR.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:Vnt,kbExpr:$e.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));const wat=class wat extends ft{constructor(t){super(),this._editor=t,this._editorObs=hl(this._editor),this._placeholderText=this._editorObs.getOption(100),this._state=Vh({owner:this,equalsFn:lNe},n=>{const r=this._placeholderText.read(n);if(r&&this._editorObs.valueIsEmpty.read(n))return{placeholder:r}}),this._shouldViewBeAlive=JSo(this,n=>{var r;return((r=this._state.read(n))==null?void 0:r.placeholder)!==void 0}),this._view=Rt(n=>{if(!this._shouldViewBeAlive.read(n))return;const r=wo("div.editorPlaceholder");n.store.add(Oi(o=>{const s=this._state.read(o),a=(s==null?void 0:s.placeholder)!==void 0;r.root.style.display=a?"block":"none",r.root.innerText=(s==null?void 0:s.placeholder)??""})),n.store.add(Oi(o=>{const s=this._editorObs.layoutInfo.read(o);r.root.style.left=`${s.contentLeft}px`,r.root.style.width=s.contentWidth-s.verticalScrollbarWidth+"px",r.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),n.store.add(Oi(o=>{r.root.style.fontFamily=this._editorObs.getOption(58).read(o),r.root.style.fontSize=this._editorObs.getOption(61).read(o)+"px",r.root.style.lineHeight=this._editorObs.getOption(75).read(o)+"px"})),n.store.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:ca(0),position:ca(null),domNode:r.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};wat.ID="editor.contrib.placeholderText";let tke=wat;function JSo(e,t){return vL(e,(n,r)=>r===!0?!0:t(n))}var e8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},t8o=function(e,t){return function(n,r){t(n,r,e)}};class n8o{constructor(t){this.instantiationService=t}init(...t){}}function i8o(e){return e()}let s_t=class extends n8o{constructor(t,n){super(n),this.init(t)}};s_t=e8o([t8o(1,Yn)],s_t);mo(tke.ID,i8o(()=>tke),0);Ve("editor.placeholder.foreground",Hlo,U(1334,"Foreground color of the placeholder text in the editor."));const W3e=Cr("textResourceConfigurationService"),DIn=Cr("textResourcePropertiesService");var r8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},kce=function(e,t){return function(n,r){t(n,r,e)}};const fH=new yn("renameInputVisible",!1,U(1391,"Whether the rename input widget is visible"));new yn("renameInputFocused",!1,U(1392,"Whether the rename input widget is focused"));let aze=class{constructor(t,n,r,o,s,a){this._editor=t,this._acceptKeybindings=n,this._themeService=r,this._keybindingService=o,this._logService=a,this.allowEditorOverflow=!0,this._disposables=new xt,this._visibleContextKey=fH.bindTo(s),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new vu,this._inputWithButton=new o8o,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(59)&&this._updateFont()})),this._disposables.add(r.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new Hnt(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:t=>{this._inputWithButton.input.value=t,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var t,n,r;((t=this._renameCandidateListView)==null?void 0:t.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),this._timeBeforeFirstInputFieldEdit??(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((n=this._renameCandidateProvidersCts)==null?void 0:n.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(r=this._renameCandidateListView)==null||r.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(t){if(!this._domNode)return;const n=t.getColor(Jz),r=t.getColor(Cet);this._domNode.style.backgroundColor=String(t.getColor(Gk)??""),this._domNode.style.boxShadow=n?` 0 0 8px 2px ${n}`:"",this._domNode.style.border=r?`1px solid ${r}`:"",this._domNode.style.color=String(t.getColor(E7n)??"");const o=t.getColor(T7n);this._inputWithButton.domNode.style.backgroundColor=String(t.getColor(jNe)??""),this._inputWithButton.input.style.backgroundColor=String(t.getColor(jNe)??""),this._inputWithButton.domNode.style.borderWidth=o?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=o?"solid":"none",this._inputWithButton.domNode.style.borderColor=(o==null?void 0:o.toString())??"none"}_updateFont(){if(this._domNode===void 0)return;Oo(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const t=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(t.fontSize)}px`}_computeLabelFontSize(t){return t*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const t=O6(this.getDomNode().ownerDocument.body),n=Kl(this._editor.getDomNode()),r=this._getTopForPosition();this._nPxAvailableAbove=r+n.top,this._nPxAvailableBelow=t.height-this._nPxAvailableAbove;const o=this._editor.getOption(75),{totalHeight:s}=dee.getLayoutInfo({lineHeight:o}),a=this._nPxAvailableBelow>s*6?[2,1]:[1,2];return{position:this._position,preference:a}}beforeRender(){var r,o;const[t,n]=this._acceptKeybindings;return this._label.innerText=U(1393,"{0} to Rename, {1} to Preview",(r=this._keybindingService.lookupKeybinding(t))==null?void 0:r.getLabel(),(o=this._keybindingService.lookupKeybinding(n))==null?void 0:o.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(t){if(t===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Oo(this._renameCandidateListView),Oo(this._nPxAvailableAbove!==void 0),Oo(this._nPxAvailableBelow!==void 0);const n=ES(this._inputWithButton.domNode),r=ES(this._label);let o;t===2?o=this._nPxAvailableBelow:o=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:o-r-n,width:s0(this._inputWithButton.domNode)})}acceptInput(t){var n;this._trace("invoking acceptInput"),(n=this._currentAcceptInput)==null||n.call(this,t)}cancelInput(t,n){var r;(r=this._currentCancelInput)==null||r.call(this,t)}focusNextRenameSuggestion(){var t;(t=this._renameCandidateListView)!=null&&t.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var t;(t=this._renameCandidateListView)!=null&&t.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(t,n,r,o,s){const{start:a,end:l}=this._getSelection(t,n);this._renameCts=s;const d=new xt;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,o===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=o,this._requestRenameCandidates(n,!1),d.add(wt(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(n,!0))),d.add(wt(this._inputWithButton.button,rn.KEY_DOWN,h=>{const g=new Us(h);(g.equals(3)||g.equals(10))&&(g.stopPropagation(),g.preventDefault(),this._requestRenameCandidates(n,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",r),this._position=new it(t.startLineNumber,t.startColumn),this._currentName=n,this._inputWithButton.input.value=n,this._inputWithButton.input.setAttribute("selectionStart",a.toString()),this._inputWithButton.input.setAttribute("selectionEnd",l.toString()),this._inputWithButton.input.size=Math.max((t.endColumn-t.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),d.add(Hn(()=>{this._renameCts=void 0,s.dispose(!0)})),d.add(Hn(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),d.add(Hn(()=>this._candidates.clear()));const u=new pI;return u.p.finally(()=>{d.dispose(),this._hide()}),this._currentCancelInput=h=>{var g;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(g=this._renameCandidateListView)==null||g.clearCandidates(),u.complete(h),!0},this._currentAcceptInput=h=>{this._trace("invoking _currentAcceptInput"),Oo(this._renameCandidateListView!==void 0);const g=this._renameCandidateListView.nCandidates;let m,v;const f=this._renameCandidateListView.focusedCandidate;if(f!==void 0?(this._trace("using new name from renameSuggestion"),m=f,v={k:"renameSuggestion"}):(this._trace("using new name from inputField"),m=this._inputWithButton.input.value,v=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),m===n||m.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),u.complete({newName:m,wantsPreview:r&&h,stats:{source:v,nRenameSuggestions:g,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},d.add(s.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),d.add(this._editor.onDidBlurEditorWidget(()=>{var h;return this.cancelInput(!((h=this._domNode)!=null&&h.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show(),u.p}_requestRenameCandidates(t,n){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),Oo(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new ja;const r=n?fJ.Invoke:fJ.Automatic,o=this._requestRenameCandidatesOnce(r,this._renameCandidateProvidersCts.token);if(o.length===0){this._inputWithButton.setSparkleButton();return}n||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(o,t,this._renameCts.token)}}_getSelection(t,n){Oo(this._editor.hasModel());const r=this._editor.getSelection();let o=0,s=n.length;return!Ee.isEmpty(r)&&!Ee.spansMultipleLines(r)&&Ee.containsRange(t,r)&&(o=Math.max(0,r.startColumn-t.startColumn),s=Math.min(t.endColumn,r.endColumn)-t.startColumn),{start:o,end:s}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(t,n,r){const o=(...u)=>this._trace("_updateRenameCandidates",...u);o("start");const s=await YW(Promise.allSettled(t),r);if(this._inputWithButton.setSparkleButton(),s===void 0){o("returning early - received updateRenameCandidates results - undefined");return}const a=s.flatMap(u=>u.status==="fulfilled"&&Ru(u.value)?u.value:[]);o(`received updateRenameCandidates results - total (unfiltered) ${a.length} candidates.`);const l=M8(a,u=>u.newSymbolName);o(`distinct candidates - ${l.length} candidates.`);const d=l.filter(({newSymbolName:u})=>u.trim().length>0&&u!==this._inputWithButton.input.value&&u!==n&&!this._candidates.has(u));if(o(`valid distinct candidates - ${a.length} candidates.`),d.forEach(u=>this._candidates.add(u.newSymbolName)),d.length<1){o("returning early - no valid distinct candidates");return}o("setting candidates"),this._renameCandidateListView.setCandidates(d),o("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const t=this._editor.getVisibleRanges();let n;return t.length>0?n=t[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),n=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(n)}_trace(...t){this._logService.trace("RenameWidget",...t)}};aze=r8o([kce(2,Dl),kce(3,Do),kce(4,Qi),kce(5,va)],aze);class Hnt{constructor(t,n){this._disposables=new xt,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=n.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=n.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",t.appendChild(this._listContainer),this._listWidget=Hnt._createListWidget(this._listContainer,this._candidateViewHeight,n.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus(r=>{r.elements.length===1&&n.onFocusChange(r.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection(r=>{r.elements.length===1&&n.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur(r=>{this._listWidget.setFocus([])})),this._listWidget.style(TI({listInactiveFocusForeground:sJ,listInactiveFocusBackground:aJ}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:t,width:n}){this._availableHeight=t,this._minimumWidth=n}setCandidates(t){this._listWidget.splice(0,0,t);const n=this._pickListHeight(this._listWidget.length),r=this._pickListWidth(t);this._listWidget.layout(n,r),this._listContainer.style.height=`${n}px`,this._listContainer.style.width=`${r}px`,A3(U(1394,"Received {0} rename suggestions",t.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const t=this._listWidget.getSelectedElements()[0];if(t!==void 0)return t.newSymbolName;const n=this._listWidget.getFocusedElements()[0];if(n!==void 0)return n.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const t=this._listWidget.getFocus();if(t.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(t[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const t=this._listWidget.getFocus();if(t.length===0){this._listWidget.focusLast();const n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}else{if(t[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:t}=dee.getLayoutInfo({lineHeight:this._lineHeight});return t}_pickListHeight(t){const n=this._candidateViewHeight*t;return Math.min(n,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(t){const n=Math.ceil(Math.max(...t.map(o=>o.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+n+10)}static _createListWidget(t,n,r){const o=new class{getTemplateId(a){return"candidate"}getHeight(a){return n}},s=new class{constructor(){this.templateId="candidate"}renderTemplate(a){return new dee(a,r)}renderElement(a,l,d){d.populate(a)}disposeTemplate(a){a.dispose()}};return new _2("NewSymbolNameCandidates",t,o,[s],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class o8o{constructor(){this._buttonHoverContent="",this._onDidInputChange=new at,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new xt}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",U(1395,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=U(1396,"Generate New Name Suggestions"),this._buttonCancelHoverText=U(1397,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add(yp().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(wt(this.input,rn.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(wt(this.input,rn.KEY_DOWN,t=>{const n=new Us(t);(n.keyCode===15||n.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(wt(this.input,rn.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(wt(this.input,rn.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(wt(this.input,rn.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return Oo(this._inputNode),this._inputNode}get button(){return Oo(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??(this._sparkleIcon=y3(zt.sparkle)),uh(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHoverContent=this._buttonGenHoverText,this.input.focus()}setStopButton(){this._buttonState="stop",this._stopIcon??(this._stopIcon=y3(zt.stopCircle)),uh(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHoverContent=this._buttonCancelHoverText,this.input.focus()}dispose(){this._disposables.dispose()}}const Eq=class Eq{constructor(t,n){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${n.lineHeight}px`,this._domNode.style.padding=`${Eq._PADDING}px`;const r=document.createElement("div");r.style.display="flex",r.style.alignItems="center",r.style.width=r.style.height=`${n.lineHeight*.8}px`,this._domNode.appendChild(r),this._icon=y3(zt.sparkle),this._icon.style.display="none",r.appendChild(this._icon),this._label=document.createElement("div"),Fu(this._label,n),this._domNode.appendChild(this._label),t.appendChild(this._domNode)}populate(t){this._updateIcon(t),this._updateLabel(t)}_updateIcon(t){var r;const n=!!((r=t.tags)!=null&&r.includes(KNe.AIGenerated));this._icon.style.display=n?"inherit":"none"}_updateLabel(t){this._label.innerText=t.newSymbolName}static getLayoutInfo({lineHeight:t}){return{totalHeight:t+Eq._PADDING*2}}dispose(){}};Eq._PADDING=2;let dee=Eq;var s8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_7=function(e,t){return function(n,r){t(n,r,e)}},lze;class $nt{constructor(t,n,r){this.model=t,this.position=n,this._providerRenameIdx=0,this._providers=r.ordered(t)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(t){const n=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?n.join(` +`))});break;case"saveTextureAtlas":r.invokeFunction(async a=>{const l=a.get(H8),d=a.get(RCt),u=l.getWorkspace().folders;if(u.length>0){const h=mg.atlas,g=[];for(const[m,v]of h.pages.entries())g.push(d.writeFile(vi.joinPath(u[0].uri,`textureAtlasPage${m}_actual.png`),B9.wrap(new Uint8Array(await(await v.source.convertToBlob()).arrayBuffer()))),d.writeFile(vi.joinPath(u[0].uri,`textureAtlasPage${m}_usage.png`),B9.wrap(new Uint8Array(await(await v.getUsagePreview()).arrayBuffer()))));await Promise.all(g)}});break;case"drawGlyph":r.invokeFunction(async a=>{var E,T,D;const l=a.get(ar),d=a.get(RCt),u=a.get(Rf),g=a.get(H8).getWorkspace().folders;if(g.length===0)return;const m=mg.atlas,v=l.getValue("editor.fontFamily"),f=l.getValue("editor.fontSize"),k=new vJ(f,v,vs().devicePixelRatio,mg.decorationStyleCache);let A=await u.input({prompt:"Enter a character to draw (prefix with 0x for code point))"});if(!A)return;const p=(T=(E=A.match(/0x(?[0-9a-f]+)/i))==null?void 0:E.groups)==null?void 0:T.codePoint;p!==void 0&&(A=String.fromCodePoint(parseInt(p,16)));const b=0,O=m.getGlyph(k,A,b,0,0);if(!O)return;const y=(D=m.pages[O.pageIndex].source.getContext("2d"))==null?void 0:D.getImageData(O.x,O.y,O.w,O.h);if(!y)return;const C=new OffscreenCanvas(y.width,y.height);uR(C.getContext("2d")).putImageData(y,0,0);const S=await C.convertToBlob({type:"image/png"}),L=vi.joinPath(g[0].uri,`glyph_${A}_${b}_${f}px_${v.replaceAll(/[,\\\/\.'\s]/g,"_")}.png`);await d.writeFile(L,B9.wrap(new Uint8Array(await S.arrayBuffer())))});break}}}un(C_o);var ub;(function(e){e.NoAutoFocus="noAutoFocus",e.FocusIfVisible="focusIfVisible",e.AutoFocusImmediately="autoFocusImmediately"})(ub||(ub={}));class __o extends Bn{constructor(){super({id:fBn,label:_t(1107,"Show or Focus Hover"),metadata:{description:_t(1108,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[ub.NoAutoFocus,ub.FocusIfVisible,ub.AutoFocusImmediately],enumDescriptions:[U(1104,"The hover will not automatically take focus."),U(1105,"The hover will take focus only if it is already visible."),U(1106,"The hover will automatically take focus when it appears.")],default:ub.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:Uc(2089,2087),weight:100}})}run(t,n,r){if(!n.hasModel())return;const o=If.get(n);if(!o)return;const s=r==null?void 0:r.focus;let a=ub.FocusIfVisible;Object.values(ub).includes(s)?a=s:typeof s=="boolean"&&s&&(a=ub.AutoFocusImmediately);const l=u=>{const h=n.getPosition(),g=new Ee(h.lineNumber,h.column,h.lineNumber,h.column);o.showContentHover(g,1,2,u)},d=n.getOption(2)===2;o.isHoverVisible?a!==ub.NoAutoFocus?o.focus():l(d):l(d||a===ub.AutoFocusImmediately)}}class S_o extends Bn{constructor(){super({id:Yvo,label:_t(1109,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:_t(1110,"Show the definition preview hover in the editor.")}})}run(t,n){const r=If.get(n);if(!r)return;const o=n.getPosition();if(!o)return;const s=new Ee(o.lineNumber,o.column,o.lineNumber,o.column),a=aee.get(n);if(!a)return;a.startFindDefinitionFromCursor(o).then(()=>{r.showContentHover(s,1,2,!0)})}}class L_o extends Bn{constructor(){super({id:Zvo,label:_t(1111,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(t,n){var r;(r=If.get(n))==null||r.hideContentHover()}}class x_o extends Bn{constructor(){super({id:qvo,label:_t(1112,"Scroll Up Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:16,weight:100},metadata:{description:_t(1113,"Scroll up the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollUp()}}class E_o extends Bn{constructor(){super({id:Kvo,label:_t(1114,"Scroll Down Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:18,weight:100},metadata:{description:_t(1115,"Scroll down the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollDown()}}class T_o extends Bn{constructor(){super({id:Jvo,label:_t(1116,"Scroll Left Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:15,weight:100},metadata:{description:_t(1117,"Scroll left the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollLeft()}}class Q_o extends Bn{constructor(){super({id:eAo,label:_t(1118,"Scroll Right Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:17,weight:100},metadata:{description:_t(1119,"Scroll right the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.scrollRight()}}class D_o extends Bn{constructor(){super({id:tAo,label:_t(1120,"Page Up Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:_t(1121,"Page up the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.pageUp()}}class B_o extends Bn{constructor(){super({id:nAo,label:_t(1122,"Page Down Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:_t(1123,"Page down the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.pageDown()}}class R_o extends Bn{constructor(){super({id:iAo,label:_t(1124,"Go To Top Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:_t(1125,"Go to the top of the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.goToTop()}}class I_o extends Bn{constructor(){super({id:rAo,label:_t(1126,"Go To Bottom Hover"),precondition:$e.hoverFocused,kbOpts:{kbExpr:$e.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:_t(1127,"Go to the bottom of the editor hover.")}})}run(t,n){const r=If.get(n);r&&r.goToBottom()}}class M_o extends Bn{constructor(){super({id:A3e,label:oAo,alias:"Increase Hover Verbosity Level",precondition:$e.hoverVisible})}run(t,n,r){const o=If.get(n);if(!o)return;const s=(r==null?void 0:r.index)!==void 0?r.index:o.focusedHoverPartIndex();o.updateHoverVerbosityLevel(d0.Increase,s,r==null?void 0:r.focus)}}class P_o extends Bn{constructor(){super({id:p3e,label:sAo,alias:"Decrease Hover Verbosity Level",precondition:$e.hoverVisible})}run(t,n,r){var a;const o=If.get(n);if(!o)return;const s=(r==null?void 0:r.index)!==void 0?r.index:o.focusedHoverPartIndex();(a=If.get(n))==null||a.updateHoverVerbosityLevel(d0.Decrease,s,r==null?void 0:r.focus)}}class F_o{constructor(t){this._editor=t}computeSync(t){var a;const n=l=>({value:l}),r=this._editor.getLineDecorations(t.lineNumber),o=[],s=t.laneOrLine==="lineNo";if(!r)return o;for(const l of r){const d=((a=l.options.glyphMargin)==null?void 0:a.position)??p3.Center;if(!s&&d!==t.laneOrLine)continue;const u=s?l.options.lineNumberHoverMessage:l.options.glyphMarginHoverMessage;!u||fV(u)||o.push(...WJe(u).map(n))}return o}}var N_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},U_o=function(e,t){return function(n,r){t(n,r,e)}},$Ve;const t_t=tn;var hB;let XVe=(hB=class extends ft{constructor(t,n){super(),this._markdownRendererService=n,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new xt),this._editor=t,this._isVisible=!1,this._messages=[],this._hover=this._register(new Ztt(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new vBn(this._editor,new F_o(this._editor))),this._register(this._hoverOperation.onResult(r=>this._withResult(r))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(59)&&this._updateFont()})),this._register(wc(this._hover.containerDomNode,"mouseleave",r=>{this._onMouseLeave(r)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return $Ve.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(n=>this._editor.applyFontInfo(n))}_onModelDecorationsChanged(){this._isVisible&&this._hoverComputerOptions&&(this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions))}showsOrWillShow(t){const n=t.target;return n.type===2&&n.detail.glyphMarginLane?(this._startShowingAt(n.position.lineNumber,n.detail.glyphMarginLane),!0):n.type===3?(this._startShowingAt(n.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(t,n){this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===t&&this._hoverComputerOptions.laneOrLine===n||(this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:t,laneOrLine:n},this._hoverOperation.start(0,this._hoverComputerOptions))}hide(){this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(t){this._messages=t.value,this._messages.length>0?this._renderMessages(t.options.lineNumber,t.options.laneOrLine,this._messages):this.hide()}_renderMessages(t,n,r){this._renderDisposeables.clear();const o=document.createDocumentFragment();for(const s of r){const a=t_t("div.hover-row.markdown-hover"),l=Xt(a,t_t("div.hover-contents")),d=this._renderDisposeables.add(this._markdownRendererService.render(s.value,{context:this._editor}));l.appendChild(d.element),o.appendChild(a)}this._updateContents(o),this._showAt(t,n)}_updateContents(t){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(t),this._updateFont()}_showAt(t,n){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const r=this._editor.getLayoutInfo(),o=this._editor.getTopForLineNumber(t),s=this._editor.getScrollTop(),a=this._editor.getOption(75),l=this._hover.containerDomNode.clientHeight,d=o-s-(l-a)/2,u=r.glyphMarginLeft+r.glyphMarginWidth+(n==="lineNo"?r.lineNumbersWidth:0),g=r.height-l,m=Math.max(0,Math.min(Math.round(d),g));if(this._editor.getOption(51)){const f=this._editor.getDomNode();if(f){const k=Kl(f);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${k.left+u}px`,this._hover.containerDomNode.style.top=`${k.top+m}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${u}px`,this._hover.containerDomNode.style.top=`${m}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(t){const n=this._editor.getDomNode();(!n||!b3e(n,t.x,t.y))&&this.hide()}},$Ve=hB,hB.ID="editor.contrib.modesGlyphHoverWidget",hB);XVe=$Ve=N_o([U_o(1,Cp)],XVe);var j_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},W_o=function(e,t){return function(n,r){t(n,r,e)}},Gj;let Y0e=(Gj=class extends ft{constructor(t,n){super(),this._editor=t,this._instantiationService=n,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new xt,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new Es(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){const t=this._editor.getOption(69);this._hoverSettings={enabled:t.enabled,sticky:t.sticky,hidingDelay:t.hidingDelay},t.enabled?(this._listenersStore.add(this._editor.onMouseDown(n=>this._onEditorMouseDown(n))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))):(this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))),this._listenersStore.add(this._editor.onMouseLeave(n=>this._onEditorMouseLeave(n))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(n=>this._onEditorScrollChanged(n)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(t){(t.scrollTopChanged||t.scrollLeftChanged)&&this.hideGlyphHover()}_onEditorMouseDown(t){this._hoverState.mouseDown=!0,!this._isMouseOnGlyphHoverWidget(t)&&this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(t){var r;const n=(r=this._glyphWidget)==null?void 0:r.getDomNode();return n?b3e(n,t.event.posx,t.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(t){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(t))||this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(t){const n=this._hoverSettings.sticky,r=this._isMouseOnGlyphHoverWidget(t);return n&&r}_onEditorMouseMove(t){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=t,this._shouldNotRecomputeCurrentHoverWidget(t)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(t)}_reactToEditorMouseMove(t){!t||this._tryShowHoverWidget(t)||this.hideGlyphHover()}_tryShowHoverWidget(t){return this._getOrCreateGlyphWidget().showsOrWillShow(t)}_onKeyDown(t){this._editor.hasModel()&&(t.keyCode===5||t.keyCode===6||t.keyCode===57||t.keyCode===4||this.hideGlyphHover())}hideGlyphHover(){var t;(t=this._glyphWidget)==null||t.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(XVe,this._editor)),this._glyphWidget}dispose(){var t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(t=this._glyphWidget)==null||t.dispose()}},Gj.ID="editor.contrib.marginHover",Gj);Y0e=j_o([W_o(1,Yn)],Y0e);class V_o{}class z_o{}class H_o{}mo(If.ID,If,2);mo(Y0e.ID,Y0e,2);un(__o);un(S_o);un(L_o);un(x_o);un(E_o);un(T_o);un(Q_o);un(D_o);un(B_o);un(R_o);un(I_o);un(M_o);un(P_o);BI.register(zJ);BI.register(EWe);yA((e,t)=>{const n=e.getColor(wet);n&&(t.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${n.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${n.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${n.transparent(.5)}; }`))});R3e.register(new V_o);R3e.register(new z_o);R3e.register(new H_o);function _In(e,t,n,r){if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return[];const o=t.getLanguageConfiguration(e.getLanguageId()).indentRulesSupport;if(!o)return[];const s=new det(e,o,t);for(r=Math.min(r,e.getLineCount());n<=r&&s.shouldIgnore(n);)n++;if(n>r-1)return[];const{tabSize:a,indentSize:l,insertSpaces:d}=e.getOptions(),u=(k,A)=>(A=A||1,gA.shiftIndent(k,k.length+A,a,l,d)),h=(k,A)=>(A=A||1,gA.unshiftIndent(k,k.length+A,a,l,d)),g=[],m=e.getLineContent(n);let v=Ys(m),f=v;s.shouldIncrease(n)?(f=u(f),v=u(v)):s.shouldIndentNextLine(n)&&(f=u(f)),n++;for(let k=n;k<=r;k++){if($_o(e,k))continue;const A=e.getLineContent(k),p=Ys(A),b=f;s.shouldDecrease(k,b)&&(f=h(f),v=h(v)),p!==f&&g.push($l.replaceMove(new Qn(k,1,k,p.length+1),tet(f,l,d))),!s.shouldIgnore(k)&&(s.shouldIncrease(k,b)?(v=u(v),f=v):s.shouldIndentNextLine(k,b)?f=u(f):f=v)}return g}function $_o(e,t){return e.tokenization.isCheapToTokenize(t)?e.tokenization.getLineTokens(t).getStandardTokenType(0)===2:!1}var X_o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},G_o=function(e,t){return function(n,r){t(n,r,e)}};const bAe=class bAe extends Bn{constructor(){super({id:bAe.ID,label:_t(1148,"Convert Indentation to Spaces"),precondition:$e.writable,metadata:{description:_t(1149,"Convert the tab indentation to spaces.")}})}run(t,n){const r=n.getModel();if(!r)return;const o=r.getOptions(),s=n.getSelection();if(!s)return;const a=new J_o(s,o.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[a]),n.pushUndoStop(),r.updateOptions({insertSpaces:!0})}};bAe.ID="editor.action.indentationToSpaces";let GVe=bAe;const wAe=class wAe extends Bn{constructor(){super({id:wAe.ID,label:_t(1150,"Convert Indentation to Tabs"),precondition:$e.writable,metadata:{description:_t(1151,"Convert the spaces indentation to tabs.")}})}run(t,n){const r=n.getModel();if(!r)return;const o=r.getOptions(),s=n.getSelection();if(!s)return;const a=new eSo(s,o.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[a]),n.pushUndoStop(),r.updateOptions({insertSpaces:!1})}};wAe.ID="editor.action.indentationToTabs";let YVe=wAe;class Wnt extends Bn{constructor(t,n,r){super(r),this.insertSpaces=t,this.displaySizeOnly=n}run(t,n){const r=t.get(Rf),o=t.get(ml),s=n.getModel();if(!s)return;const a=o.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget),l=s.getOptions(),d=[1,2,3,4,5,6,7,8].map(h=>({id:h.toString(),label:h.toString(),description:h===a.tabSize&&h===l.tabSize?U(1144,"Configured Tab Size"):h===a.tabSize?U(1145,"Default Tab Size"):h===l.tabSize?U(1146,"Current Tab Size"):void 0})),u=Math.min(s.getOptions().tabSize-1,7);setTimeout(()=>{r.pick(d,{placeHolder:U(1147,"Select Tab Size for Current File"),activeItem:d[u]}).then(h=>{if(h&&s&&!s.isDisposed()){const g=parseInt(h.label,10);this.displaySizeOnly?s.updateOptions({tabSize:g}):s.updateOptions({tabSize:g,indentSize:g,insertSpaces:this.insertSpaces})}})},50)}}const OAe=class OAe extends Wnt{constructor(){super(!1,!1,{id:OAe.ID,label:_t(1152,"Indent Using Tabs"),precondition:void 0,metadata:{description:_t(1153,"Use indentation with tabs.")}})}};OAe.ID="editor.action.indentUsingTabs";let ZVe=OAe;const yAe=class yAe extends Wnt{constructor(){super(!0,!1,{id:yAe.ID,label:_t(1154,"Indent Using Spaces"),precondition:void 0,metadata:{description:_t(1155,"Use indentation with spaces.")}})}};yAe.ID="editor.action.indentUsingSpaces";let qVe=yAe;const CAe=class CAe extends Wnt{constructor(){super(!0,!0,{id:CAe.ID,label:_t(1156,"Change Tab Display Size"),precondition:void 0,metadata:{description:_t(1157,"Change the space size equivalent of the tab.")}})}};CAe.ID="editor.action.changeTabDisplaySize";let KVe=CAe;const _Ae=class _Ae extends Bn{constructor(){super({id:_Ae.ID,label:_t(1158,"Detect Indentation from Content"),precondition:void 0,metadata:{description:_t(1159,"Detect the indentation from content.")}})}run(t,n){const r=t.get(ml),o=n.getModel();if(!o)return;const s=r.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget);o.detectIndentation(s.insertSpaces,s.tabSize)}};_Ae.ID="editor.action.detectIndentation";let JVe=_Ae;class Y_o extends Bn{constructor(){super({id:"editor.action.reindentlines",label:_t(1160,"Reindent Lines"),precondition:$e.writable,metadata:{description:_t(1161,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(t,n){const r=t.get(kl),o=n.getModel();if(!o)return;const s=_In(o,r,1,o.getLineCount());s.length>0&&(n.pushUndoStop(),n.executeEdits(this.id,s),n.pushUndoStop())}}class Z_o extends Bn{constructor(){super({id:"editor.action.reindentselectedlines",label:_t(1162,"Reindent Selected Lines"),precondition:$e.writable,metadata:{description:_t(1163,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(t,n){const r=t.get(kl),o=n.getModel();if(!o)return;const s=n.getSelections();if(s===null)return;const a=[];for(const l of s){let d=l.startLineNumber,u=l.endLineNumber;if(d!==u&&l.endColumn===1&&u--,d===1){if(d===u)continue}else d--;const h=_In(o,r,d,u);a.push(...h)}a.length>0&&(n.pushUndoStop(),n.executeEdits(this.id,a),n.pushUndoStop())}}class q_o{constructor(t,n){this._initialSelection=n,this._edits=[],this._selectionId=null;for(const r of t)r.range&&typeof r.text=="string"&&this._edits.push(r)}getEditOperations(t,n){for(const o of this._edits)n.addEditOperation(Ee.lift(o.range),o.text);let r=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(r=!0,this._selectionId=n.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(r=!0,this._selectionId=n.trackSelection(this._initialSelection,!1))),r||(this._selectionId=n.trackSelection(this._initialSelection))}computeCursorState(t,n){return n.getTrackedSelection(this._selectionId)}}var Yj;let Z0e=(Yj=class{constructor(t,n){this.editor=t,this._languageConfigurationService=n,this.callOnDispose=new xt,this.callOnModel=new xt,this.callOnDispose.add(t.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(t.onDidChangeModel(()=>this.update())),this.callOnDispose.add(t.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(!this.editor.getOption(17)||this.editor.getOption(16)<4)&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:t})=>{this.trigger(t)}))}trigger(t){const n=this.editor.getSelections();if(n===null||n.length>1)return;const r=this.editor.getModel();if(!r||this.rangeContainsOnlyWhitespaceCharacters(r,t)||!this.editor.getOption(18)&&K_o(r,t)||!r.tokenization.isCheapToTokenize(t.getStartPosition().lineNumber))return;const s=this.editor.getOption(16),{tabSize:a,indentSize:l,insertSpaces:d}=r.getOptions(),u=[],h={shiftIndent:f=>gA.shiftIndent(f,f.length+1,a,l,d),unshiftIndent:f=>gA.unshiftIndent(f,f.length+1,a,l,d)};let g=t.startLineNumber,m=r.getLineContent(g);if(!/\S/.test(m.substring(0,t.startColumn-1))){const f=dZ(s,r,r.getLanguageId(),g,h,this._languageConfigurationService);if(f!==null){const k=Ys(m),A=r0(f,a),p=r0(k,a);if(A!==p){const b=BZ(A,a,d);u.push({range:new Ee(g,1,g,k.length+1),text:b}),m=b+m.substring(k.length)}else{const b=l7n(r,g,this._languageConfigurationService);if(b===0||b===8)return}}}const v=g;for(;gr.tokenization.getLineTokens(A),getLanguageId:()=>r.getLanguageId(),getLanguageIdAtPosition:(A,p)=>r.getLanguageIdAtPosition(A,p)},getLineContent:A=>A===v?m:r.getLineContent(A)},r.getLanguageId(),g+1,h,this._languageConfigurationService);if(k!==null){const A=r0(k,a),p=r0(Ys(r.getLineContent(g+1)),a);if(A!==p){const b=A-p;for(let w=g+1;w<=t.endLineNumber;w++){const O=r.getLineContent(w),y=Ys(O),_=r0(y,a)+b,S=BZ(_,a,d);S!==y&&u.push({range:new Ee(w,1,w,y.length+1),text:S})}}}}if(u.length>0){this.editor.pushUndoStop();const f=new q_o(u,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",f),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(t,n){const r=s=>s.trim().length===0;let o=!0;if(n.startLineNumber===n.endLineNumber){const a=t.getLineContent(n.startLineNumber).substring(n.startColumn-1,n.endColumn-1);o=r(a)}else for(let s=n.startLineNumber;s<=n.endLineNumber;s++){const a=t.getLineContent(s);if(s===n.startLineNumber){const l=a.substring(n.startColumn-1);o=r(l)}else if(s===n.endLineNumber){const l=a.substring(0,n.endColumn-1);o=r(l)}else o=t.getLineFirstNonWhitespaceColumn(s)===0;if(!o)break}return o}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}},Yj.ID="editor.contrib.autoIndentOnPaste",Yj);Z0e=X_o([G_o(1,kl)],Z0e);function K_o(e,t){const n=r=>Wio(e,r)===2;return n(t.getStartPosition())||n(t.getEndPosition())}function SIn(e,t,n,r){if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return;let o="";for(let a=0;a=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},iSo=function(e,t){return function(n,r){t(n,r,e)}},Che,s6;let SV=(s6=class{static get(t){return t.getContribution(Che.ID)}constructor(t,n){this.editor=t,this.editorWorkerService=n,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(t,n){var d;(d=this.currentRequest)==null||d.cancel();const r=this.editor.getSelection(),o=this.editor.getModel();if(!o||!r)return;let s=r;if(s.startLineNumber!==s.endLineNumber)return;const a=new RDn(this.editor,5),l=o.uri;return this.editorWorkerService.canNavigateValueSet(l)?(this.currentRequest=Fd(u=>this.editorWorkerService.navigateValueSet(l,s,n)),this.currentRequest.then(u=>{var f;if(!u||!u.range||!u.value||!a.validate(this.editor))return;const h=Ee.lift(u.range);let g=u.range;const m=u.value.length-(s.endColumn-s.startColumn);g={startLineNumber:g.startLineNumber,startColumn:g.startColumn,endLineNumber:g.endLineNumber,endColumn:g.startColumn+u.value.length},m>1&&(s=new Qn(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+m-1));const v=new tSo(h,s,u.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,v),this.editor.pushUndoStop(),this.decorations.set([{range:g,options:Che.DECORATION}]),(f=this.decorationRemover)==null||f.cancel(),this.decorationRemover=Cy(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(zi)}).catch(zi)):Promise.resolve(void 0)}},Che=s6,s6.ID="editor.contrib.inPlaceReplaceController",s6.DECORATION=Gi.register({description:"in-place-replace",className:"valueSetReplacement"}),s6);SV=Che=nSo([iSo(1,S1)],SV);class rSo extends Bn{constructor(){super({id:"editor.action.inPlaceReplace.up",label:_t(1240,"Replace with Previous Value"),precondition:$e.writable,kbOpts:{kbExpr:$e.editorTextFocus,primary:3159,weight:100}})}run(t,n){const r=SV.get(n);return r?r.run(this.id,!1):Promise.resolve(void 0)}}class oSo extends Bn{constructor(){super({id:"editor.action.inPlaceReplace.down",label:_t(1241,"Replace with Next Value"),precondition:$e.writable,kbOpts:{kbExpr:$e.editorTextFocus,primary:3161,weight:100}})}run(t,n){const r=SV.get(n);return r?r.run(this.id,!0):Promise.resolve(void 0)}}mo(SV.ID,SV,4);un(rSo);un(oSo);class sSo{constructor(t){this._selection=t,this._selectionId=null}getEditOperations(t,n){const r=aSo(t);r&&n.addEditOperation(r.range,r.text),this._selectionId=n.trackSelection(this._selection)}computeCursorState(t,n){return n.getTrackedSelection(this._selectionId)}}function aSo(e){const t=e.getLineCount(),n=e.getLineContent(t),r=Z4(n)===-1;if(!(!t||r))return $l.insert(new it(t,e.getLineMaxColumn(t)),e.getEOL())}const SAe=class SAe extends Bn{constructor(){super({id:SAe.ID,label:_t(1242,"Insert Final New Line"),precondition:$e.writable})}run(t,n,r){const o=n.getSelection();if(o===null)return;const s=new sSo(o);n.pushUndoStop(),n.executeCommands(this.id,[s]),n.pushUndoStop()}};SAe.ID="editor.action.insertFinalNewLine";let eze=SAe;un(eze);class lSo extends Bn{constructor(){super({id:"expandLineSelection",label:_t(1243,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:$e.textInputFocus,primary:2090}})}run(t,n,r){if(r=r||{},!n.hasModel())return;const o=n._getViewModel();o.model.pushStackElement(),o.setCursorStates(r.source,3,th.expandLineSelection(o,o.getCursorStates())),o.revealAllCursors(r.source,!0)}}un(lSo);var cSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},fce=function(e,t){return function(n,r){t(n,r,e)}},_he;const LIn=new yn("LinkedEditingInputVisible",!1),dSo="linked-editing-decoration";var a6;let LV=(a6=class extends ft{static get(t){return t.getContribution(_he.ID)}constructor(t,n,r,o,s){super(),this.languageConfigurationService=o,this._syncRangesToken=0,this._localToDispose=this._register(new xt),this._editor=t,this._providers=r.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=LIn.bindTo(n),this._debounceInformation=s.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new xt),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(78)||a.hasChanged(106))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(t){const n=this._editor.getModel(),r=n!==null&&(this._editor.getOption(78)||this._editor.getOption(106))&&this._providers.has(n);if(r===this._enabled&&!t||(this._enabled=r,this.clearRanges(),this._localToDispose.clear(),!r||n===null))return;this._localToDispose.add(an.runAndSubscribe(n.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition()}));const o=new dA(this._debounceInformation.get(n)),s=()=>{this._rangeUpdateTriggerPromise=o.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(n))},a=new dA(0),l=d=>{this._rangeSyncTriggerPromise=a.trigger(()=>this._syncRanges(d))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{s()})),this._localToDispose.add(this._editor.onDidChangeModelContent(d=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const u=this._currentDecorations.getRange(0);if(u&&d.changes.every(h=>u.intersectRanges(h.range))){l(this._syncRangesToken);return}}s()})),this._localToDispose.add({dispose:()=>{o.dispose(),a.dispose()}}),this.updateRanges()}_syncRanges(t){if(!this._editor.hasModel()||t!==this._syncRangesToken||this._currentDecorations.length===0)return;const n=this._editor.getModel(),r=this._currentDecorations.getRange(0);if(!r||r.startLineNumber!==r.endLineNumber)return this.clearRanges();const o=n.getValueInRange(r);if(this._currentWordPattern){const a=o.match(this._currentWordPattern);if((a?a[0].length:0)!==o.length)return this.clearRanges()}const s=[];for(let a=1,l=this._currentDecorations.length;a1){this.clearRanges();return}const r=this._editor.getModel(),o=r.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===o){if(n.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const l=this._currentDecorations.getRange(0);if(l&&l.containsPosition(n))return}}if(!((a=this._currentRequestPosition)!=null&&a.equals(n))){const l=this._currentDecorations.getRange(0);l!=null&&l.containsPosition(n)||this.clearRanges()}this._currentRequestPosition=n,this._currentRequestModelVersion=o;const s=this._currentRequestCts=new ja;try{const l=new vu(!1),d=await xIn(this._providers,r,n,s.token);if(this._debounceInformation.update(r,l.elapsed()),s!==this._currentRequestCts||(this._currentRequestCts=null,o!==r.getVersionId()))return;let u=[];d!=null&&d.ranges&&(u=d.ranges),this._currentWordPattern=(d==null?void 0:d.wordPattern)||this._languageWordPattern;let h=!1;for(let m=0,v=u.length;m({range:m,options:_he.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(g),this._syncRangesToken++}catch(l){C2(l)||zi(l),(this._currentRequestCts===s||!this._currentRequestCts)&&this.clearRanges()}}},_he=a6,a6.ID="editor.contrib.linkedEditing",a6.DECORATION=Gi.register({description:"linked-editing",stickiness:0,className:dSo}),a6);LV=_he=cSo([fce(1,Qi),fce(2,Nn),fce(3,kl),fce(4,CA)],LV);class uSo extends Bn{constructor(){super({id:"editor.action.linkedEditing",label:_t(1276,"Start Linked Editing"),precondition:Ft.and($e.writable,$e.hasRenameProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:3132,weight:100}})}runCommand(t,n){const r=t.get(yo),[o,s]=Array.isArray(n)&&n||[void 0,void 0];return vi.isUri(o)&&it.isIPosition(s)?r.openCodeEditor({resource:o},r.getActiveCodeEditor()).then(a=>{a&&(a.setPosition(s),a.invokeWithinContext(l=>(this.reportTelemetry(l,a),this.run(l,a))))},zi):super.runCommand(t,n)}run(t,n){const r=LV.get(n);return r?Promise.resolve(r.updateRanges(!0)):Promise.resolve()}}const hSo=$d.bindToContribution(LV.get);On(new hSo({id:"cancelLinkedEditingInput",precondition:LIn,handler:e=>e.clearRanges(),kbOpts:{kbExpr:$e.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function xIn(e,t,n,r){const o=e.ordered(t);return EJe(o.map(s=>async()=>{try{return await s.provideLinkedEditingRanges(t,n,r)}catch(a){Nc(a);return}}),s=>!!s&&yg(s==null?void 0:s.ranges))}Ve("editor.linkedEditingBackground",{dark:Dt.fromHex("#f00").transparent(.3),light:Dt.fromHex("#f00").transparent(.3),hcDark:Dt.fromHex("#f00").transparent(.3),hcLight:Dt.white},U(1275,"Background color when the editor auto renames on type."));_1("_executeLinkedEditingProvider",(e,t,n)=>{const{linkedEditingRangeProvider:r}=e.get(Nn);return xIn(r,t,n,Er.None)});mo(LV.ID,LV,1);un(uSo);let fSo=class{constructor(t,n){this._link=t,this._provider=n}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(t){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,t)).then(n=>(this._link=n||this._link,this._link.url?this.resolve(t):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}};const xq=class xq{constructor(t){this._disposables=new xt;let n=[];for(const[r,o]of t){const s=r.links.map(a=>new fSo(a,o));n=xq._union(n,s),AI(r)&&(this._disposables??(this._disposables=new xt),this._disposables.add(r))}this.links=n}dispose(){var t;(t=this._disposables)==null||t.dispose(),this.links.length=0}static _union(t,n){const r=[];let o,s,a,l;for(o=0,a=0,s=t.length,l=n.length;o{try{const d=await a.provideLinks(t,n);d&&(r[l]=[d,a])}catch(d){Nc(d)}});await Promise.all(o);let s=new q0e(P3(r));return n.isCancellationRequested&&(s.dispose(),s=q0e.Empty),s}uo.registerCommand("_executeLinkProvider",async(e,...t)=>{let[n,r]=t;Oo(n instanceof vi),typeof r!="number"&&(r=0);const{linkProvider:o}=e.get(Nn),s=e.get(ml).getModel(n);if(!s)return[];const a=await EIn(o,s,Er.None);if(!a)return[];for(let d=0;d=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gce=function(e,t){return function(n,r){t(n,r,e)}},tze,fB;let lee=(fB=class extends ft{static get(t){return t.getContribution(tze.ID)}constructor(t,n,r,o,s){super(),this.editor=t,this.openerService=n,this.notificationService=r,this.languageFeaturesService=o,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=s.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new Es(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const a=this._register(new y3e(t));this._register(a.onMouseMoveOrRelevantKeyDown(([l,d])=>{this._onEditorMouseMove(l,d)})),this._register(a.onExecute(l=>{this.onEditorMouseUp(l)})),this._register(a.onCancel(l=>{this.cleanUpActiveLinkDecoration()})),this._register(t.onDidChangeConfiguration(l=>{l.hasChanged(79)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(t.onDidChangeModelContent(l=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(t.onDidChangeModel(l=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(t.onDidChangeModelLanguage(l=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(l=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;const t=this.editor.getModel();if(!t.isTooLargeForSyncing()&&this.providers.has(t)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=Fd(n=>EIn(this.providers,t,n));try{const n=new vu(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(t,n.elapsed()),t.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(n){zi(n)}finally{this.computePromise=null}}}updateDecorations(t){const n=this.editor.getOption(86)==="altKey",r=[],o=Object.keys(this.currentOccurrences);for(const a of o){const l=this.currentOccurrences[a];r.push(l.decorationId)}const s=[];if(t)for(const a of t)s.push(YU.decoration(a,n));this.editor.changeDecorations(a=>{const l=a.deltaDecorations(r,s);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let d=0,u=l.length;d{o.activate(s,r),this.activeLinkDecorationId=o.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const t=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){const n=this.currentOccurrences[this.activeLinkDecorationId];n&&this.editor.changeDecorations(r=>{n.deactivate(r,t)}),this.activeLinkDecorationId=null}}onEditorMouseUp(t){if(!this.isEnabled(t))return;const n=this.getLinkOccurrence(t.target.position);n&&this.openLinkOccurrence(n,t.hasSideBySideModifier,!0)}openLinkOccurrence(t,n,r=!1){if(!this.openerService)return;const{link:o}=t;o.resolve(Er.None).then(s=>{if(typeof s=="string"&&this.editor.hasModel()){const a=this.editor.getModel().uri;if(a.scheme===Ci.file&&s.startsWith(`${Ci.file}:`)){const l=vi.parse(s);if(l.scheme===Ci.file){const d=Ew(l);let u=null;d.startsWith("/./")||d.startsWith("\\.\\")?u=`.${d.substr(1)}`:(d.startsWith("//./")||d.startsWith("\\\\.\\"))&&(u=`.${d.substr(2)}`),u&&(s=MEn(a,u))}}}return this.openerService.open(s,{openToSide:n,fromUserGesture:r,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},s=>{const a=s instanceof Error?s.message:s;a==="invalid"?this.notificationService.warn(U(1277,"Failed to open this link because it is not well-formed: {0}",o.url.toString())):a==="missing"?this.notificationService.warn(U(1278,"Failed to open this link because its target is missing.")):zi(s)})}getLinkOccurrence(t){if(!this.editor.hasModel()||!t)return null;const n=this.editor.getModel().getDecorationsInRange({startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:t.lineNumber,endColumn:t.column},0,!0);for(const r of n){const o=this.currentOccurrences[r.id];if(o)return o}return null}isEnabled(t,n){return!!(t.target.type===6&&(t.hasTriggerModifier||n&&n.keyCodeIsTriggerKey||t.isMiddleClick&&t.mouseMiddleClickAction==="openLink"))}stop(){var t;this.computeLinks.cancel(),this.activeLinksList&&((t=this.activeLinksList)==null||t.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}},tze=fB,fB.ID="editor.linkDetector",fB);lee=tze=gSo([gce(1,OL),gce(2,ic),gce(3,Nn),gce(4,CA)],lee);const n_t={general:Gi.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:Gi.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class YU{static decoration(t,n){return{range:t.range,options:YU._getOptions(t,n,!1)}}static _getOptions(t,n,r){const o={...r?n_t.active:n_t.general};return o.hoverMessage=mSo(t,n),o}constructor(t,n){this.link=t,this.decorationId=n}activate(t,n){t.changeDecorationOptions(this.decorationId,YU._getOptions(this.link,n,!0))}deactivate(t,n){t.changeDecorationOptions(this.decorationId,YU._getOptions(this.link,n,!1))}}function mSo(e,t){const n=e.url&&/^command:/i.test(e.url.toString()),r=e.tooltip?e.tooltip:n?U(1279,"Execute command"):U(1280,"Follow link"),o=t?Tr?U(1281,"cmd + click"):U(1282,"ctrl + click"):Tr?U(1283,"option + click"):U(1284,"alt + click");if(e.url){let s="";if(/^command:/i.test(e.url.toString())){const l=e.url.toString().match(/^command:([^?#]+)/);if(l){const d=l[1];s=U(1285,"Execute command {0}",d)}}return new bf("",!0).appendLink(e.url.toString(!0).replace(/ /g,"%20"),r,s).appendMarkdown(` (${o})`)}else return new bf().appendText(`${r} (${o})`)}class kSo extends Bn{constructor(){super({id:"editor.action.openLink",label:_t(1286,"Open Link"),precondition:void 0})}run(t,n){const r=lee.get(n);if(!r||!n.hasModel())return;const o=n.getSelections();for(const s of o){const a=r.getLinkOccurrence(s.getEndPosition());a&&r.openLinkOccurrence(a,!1)}}}mo(lee.ID,lee,1);un(kSo);const pat=class pat extends ft{constructor(t){super(),this._editor=t,this._register(this._editor.onMouseDown(n=>{const r=this._editor.getOption(133);r>=0&&n.target.type===6&&n.target.position.column>=r&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};pat.ID="editor.contrib.longLinesHelper";let K0e=pat;mo(K0e.ID,K0e,2);const bat=class bat extends ft{constructor(t){super(),this._editor=t;const n=hl(this._editor),r=n.getOption(171);this._register(Oi(o=>{if(!r.read(o))return;const s=n.domNode.read(o);if(!s)return;const a=o.store.add(YJe("scrollingSession",void 0));o.store.add(this._editor.onMouseDown(d=>{if(a.read(void 0)){a.set(void 0,void 0);return}if(!d.event.middleButton)return;d.event.stopPropagation(),d.event.preventDefault();const h=new xt,g=new cu(d.event.posx,d.event.posy),v=vSo(ii(s),g,h).map(A=>A.subtract(g).withThreshold(5)),f=s.getBoundingClientRect(),k=new cu(g.x-f.left,g.y-f.top);a.set({mouseDeltaAfterThreshold:v,initialMousePosInEditor:k,didScroll:!1,dispose:()=>h.dispose()},void 0),h.add(this._editor.onMouseUp(A=>{const p=a.read(void 0);p&&p.didScroll&&a.set(void 0,void 0)})),h.add(this._editor.onKeyDown(A=>{a.set(void 0,void 0)}))})),o.store.add(Oi(d=>{const u=a.read(d);if(!u)return;let h=Date.now();d.store.add(Oi(m=>{I0e.instance.invalidateOnNextAnimationFrame(m);const v=Date.now(),f=v-h;h=v;const k=u.mouseDeltaAfterThreshold.read(void 0),A=f/32,p=k.scale(A),b=new cu(this._editor.getScrollLeft(),this._editor.getScrollTop());this._editor.setScrollPosition(ASo(b.add(p))),p.isZero()||(u.didScroll=!0)}));const g=Rt(m=>{const v=u.mouseDeltaAfterThreshold.read(m);let f="";return f+=v.y<0?"n":v.y>0?"s":"",f+=v.x<0?"w":v.x>0?"e":"",f});d.store.add(Oi(m=>{s.setAttribute("data-scroll-direction",g.read(m))}))}));const l=o.store.add(cr.div({class:["scroll-editor-on-middle-click-dot",a.map(d=>d?"":"hidden")],style:{left:a.map(d=>d?d.initialMousePosInEditor.x:0),top:a.map(d=>d?d.initialMousePosInEditor.y:0)}}).toDisposableLiveElement());o.store.add(bN(s,l.element)),o.store.add(Oi(d=>{const u=a.read(d);s.classList.toggle("scroll-editor-on-middle-click-editor",!!u)}))}))}};bat.ID="editor.contrib.middleScroll";let J0e=bat;function vSo(e,t,n){const r=Ti("pos",t);return n.add(wt(e,"mousemove",o=>{r.set(new cu(o.pageX,o.pageY),void 0)})),r}function ASo(e){return{scrollLeft:e.x,scrollTop:e.y}}mo(J0e.ID,J0e,2);const pSo=Ve("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},U(1563,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);Ve("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},U(1564,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);Ve("editor.wordHighlightTextBackground",pSo,U(1565,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const bSo=Ve("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Va,hcLight:Va},U(1566,"Border color of a symbol during read-access, like reading a variable."));Ve("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Va,hcLight:Va},U(1567,"Border color of a symbol during write-access, like writing to a variable."));Ve("editor.wordHighlightTextBorder",bSo,U(1568,"Border color of a textual occurrence for a symbol."));const wSo=Ve("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",U(1569,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),OSo=Ve("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",U(1570,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),ySo=Ve("editorOverviewRuler.wordHighlightTextForeground",x7n,U(1571,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),CSo=Gi.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:zl(OSo),position:r2.Center},minimap:{color:zl(Xbe),position:1}}),_So=Gi.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:zl(ySo),position:r2.Center},minimap:{color:zl(Xbe),position:1}}),SSo=Gi.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:zl(x7n),position:r2.Center},minimap:{color:zl(Xbe),position:1}}),LSo=Gi.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),xSo=Gi.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:zl(wSo),position:r2.Center},minimap:{color:zl(Xbe),position:1}});function ESo(e){return e===uV.Write?CSo:e===uV.Text?_So:xSo}function TSo(e){return e?LSo:SSo}yA((e,t)=>{const n=e.getColor(bet);n&&t.addRule(`.monaco-editor .selectionHighlight { background-color: ${n.transparent(.5)}; }`)});var QSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},DSo=function(e,t){return function(n,r){t(n,r,e)}},nze;function hE(e,t){const n=t.filter(r=>!e.find(o=>o.equals(r)));if(n.length>=1){const r=n.map(s=>`line ${s.viewState.position.lineNumber} column ${s.viewState.position.column}`).join(", "),o=n.length===1?U(1288,"Cursor added: {0}",r):U(1289,"Cursors added: {0}",r);A3(o)}}class BSo extends Bn{constructor(){super({id:"editor.action.insertCursorAbove",label:_t(1298,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1290,"&&Add Cursor Above"),order:2}})}run(t,n,r){if(!n.hasModel())return;let o=!0;r&&r.logicalLine===!1&&(o=!1);const s=n._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const a=s.getCursorStates();s.setCursorStates(r.source,3,th.addCursorUp(s,a,o)),s.revealTopMostCursor(r.source),hE(a,s.getCursorStates())}}class RSo extends Bn{constructor(){super({id:"editor.action.insertCursorBelow",label:_t(1299,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1291,"A&&dd Cursor Below"),order:3}})}run(t,n,r){if(!n.hasModel())return;let o=!0;r&&r.logicalLine===!1&&(o=!1);const s=n._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const a=s.getCursorStates();s.setCursorStates(r.source,3,th.addCursorDown(s,a,o)),s.revealBottomMostCursor(r.source),hE(a,s.getCursorStates())}}class ISo extends Bn{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:_t(1300,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1292,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(t,n,r){if(!t.isEmpty()){for(let o=t.startLineNumber;o1&&r.push(new Qn(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn))}}run(t,n){if(!n.hasModel())return;const r=n.getModel(),o=n.getSelections(),s=n._getViewModel(),a=s.getCursorStates(),l=[];o.forEach(d=>this.getCursorsForSelection(d,r,l)),l.length>0&&n.setSelections(l),hE(a,s.getCursorStates())}}class MSo extends Bn{constructor(){super({id:"editor.action.addCursorsToBottom",label:_t(1301,"Add Cursors to Bottom"),precondition:void 0})}run(t,n){if(!n.hasModel())return;const r=n.getSelections(),o=n.getModel().getLineCount(),s=[];for(let d=r[0].startLineNumber;d<=o;d++)s.push(new Qn(d,r[0].startColumn,d,r[0].endColumn));const a=n._getViewModel(),l=a.getCursorStates();s.length>0&&n.setSelections(s),hE(l,a.getCursorStates())}}class PSo extends Bn{constructor(){super({id:"editor.action.addCursorsToTop",label:_t(1302,"Add Cursors to Top"),precondition:void 0})}run(t,n){if(!n.hasModel())return;const r=n.getSelections(),o=[];for(let l=r[0].startLineNumber;l>=1;l--)o.push(new Qn(l,r[0].startColumn,l,r[0].endColumn));const s=n._getViewModel(),a=s.getCursorStates();o.length>0&&n.setSelections(o),hE(a,s.getCursorStates())}}class mce{constructor(t,n,r){this.selections=t,this.revealRange=n,this.revealScrollType=r}}class cee{static create(t,n){if(!t.hasModel())return null;const r=n.getState();if(!t.hasTextFocus()&&r.isRevealed&&r.searchString.length>0)return new cee(t,n,!1,r.searchString,r.wholeWord,r.matchCase,null);let o=!1,s,a;const l=t.getSelections();l.length===1&&l[0].isEmpty()?(o=!0,s=!0,a=!0):(s=r.wholeWord,a=r.matchCase);const d=t.getSelection();let u,h=null;if(d.isEmpty()){const g=t.getConfiguredWordAtPosition(d.getStartPosition());if(!g)return null;u=g.word,h=new Qn(d.startLineNumber,g.startColumn,d.startLineNumber,g.endColumn)}else u=t.getModel().getValueInRange(d).replace(/\r\n/g,` +`);return new cee(t,n,o,u,s,a,h)}constructor(t,n,r,o,s,a,l){this._editor=t,this.findController=n,this.isDisconnectedFromFindController=r,this.searchText=o,this.wholeWord=s,this.matchCase=a,this.currentMatch=l}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.concat(t),t,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.slice(0,n.length-1).concat(t),t,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const o=this.currentMatch;return this.currentMatch=null,o}this.findController.highlightFindOptions();const t=this._editor.getSelections(),n=t[t.length-1],r=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return r?new Qn(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.concat(t),t,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const n=this._editor.getSelections();return new mce(n.slice(0,n.length-1).concat(t),t,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const o=this.currentMatch;return this.currentMatch=null,o}this.findController.highlightFindOptions();const t=this._editor.getSelections(),n=t[t.length-1],r=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return r?new Qn(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn):null}selectAll(t){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const n=this._editor.getModel();return t?n.findMatches(this.searchText,t,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824):n.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}const LAe=class LAe extends ft{static get(t){return t.getContribution(LAe.ID)}constructor(t){super(),this._sessionDispose=this._register(new xt),this._editor=t,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(t){if(!this._session){const n=cee.create(this._editor,t);if(!n)return;this._session=n;const r={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(r.wholeWordOverride=1,r.matchCaseOverride=1,r.isRegexOverride=2),t.getState().change(r,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(o=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(t.getState().onFindReplaceStateChange(o=>{(o.matchCase||o.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const t={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(t,!1)}this._session=null}_setSelections(t){this._ignoreSelectionChange=!0,this._editor.setSelections(t),this._ignoreSelectionChange=!1}_expandEmptyToWord(t,n){if(!n.isEmpty())return n;const r=this._editor.getConfiguredWordAtPosition(n.getStartPosition());return r?new Qn(n.startLineNumber,r.startColumn,n.startLineNumber,r.endColumn):n}_applySessionResult(t){t&&(this._setSelections(t.selections),t.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(t.revealRange,t.revealScrollType))}getSession(t){return this._session}addSelectionToNextFindMatch(t){if(this._editor.hasModel()){if(!this._session){const n=this._editor.getSelections();if(n.length>1){const o=t.getState().matchCase;if(!TIn(this._editor.getModel(),n,o)){const a=this._editor.getModel(),l=[];for(let d=0,u=n.length;d0&&r.isRegex){const o=this._editor.getModel();r.searchScope?n=o.findMatches(r.searchString,r.searchScope,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(148):null,!1,1073741824):n=o.findMatches(r.searchString,!0,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(t),!this._session)return;n=this._session.selectAll(r.searchScope)}if(n.length>0){const o=this._editor.getSelection();for(let s=0,a=n.length;snew Qn(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn)))}}};LAe.ID="editor.contrib.multiCursorController";let xV=LAe;class hH extends Bn{run(t,n){const r=xV.get(n);if(!r)return;const o=n._getViewModel();if(o){const s=o.getCursorStates(),a=w1.get(n);if(a)this._run(r,a);else{const l=t.get(Yn).createInstance(w1,n);this._run(r,l),l.dispose()}hE(s,o.getCursorStates())}}}class FSo extends hH{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:_t(1303,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:2082,weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1293,"Add &&Next Occurrence"),order:5}})}_run(t,n){t.addSelectionToNextFindMatch(n)}}class NSo extends hH{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:_t(1304,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1294,"Add P&&revious Occurrence"),order:6}})}_run(t,n){t.addSelectionToPreviousFindMatch(n)}}class USo extends hH{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:_t(1305,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:Uc(2089,2082),weight:100}})}_run(t,n){t.moveSelectionToNextFindMatch(n)}}class jSo extends hH{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:_t(1306,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(t,n){t.moveSelectionToPreviousFindMatch(n)}}class WSo extends hH{constructor(){super({id:"editor.action.selectHighlights",label:_t(1307,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:3114,weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"3_multi",title:U(1295,"Select All &&Occurrences"),order:7}})}_run(t,n){t.selectAll(n)}}class VSo extends hH{constructor(){super({id:"editor.action.changeAll",label:_t(1308,"Change All Occurrences"),precondition:Ft.and($e.writable,$e.editorTextFocus),kbOpts:{kbExpr:$e.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(t,n){t.selectAll(n)}}class zSo{constructor(t,n,r,o,s){this._model=t,this._searchText=n,this._matchCase=r,this._wordSeparators=o,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),s&&this._model===s._model&&this._searchText===s._searchText&&this._matchCase===s._matchCase&&this._wordSeparators===s._wordSeparators&&this._modelVersionId===s._modelVersionId&&(this._cachedFindMatches=s._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(t=>t.range),this._cachedFindMatches.sort(Ee.compareRangesUsingStarts)),this._cachedFindMatches}}var gB;let eke=(gB=class extends ft{constructor(t,n){super(),this._languageFeaturesService=n,this.editor=t,this._isEnabled=t.getOption(122),this._isEnabledMultiline=t.getOption(124),this._maxLength=t.getOption(123),this._decorations=t.createDecorationsCollection(),this.updateSoon=this._register(new Es(()=>this._update(),300)),this.state=null,this._register(t.onDidChangeConfiguration(o=>{this._isEnabled=t.getOption(122),this._isEnabledMultiline=t.getOption(124),this._maxLength=t.getOption(123)})),this._register(t.onDidChangeCursorSelection(o=>{this._isEnabled&&(o.selection.isEmpty()?o.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(t.onDidChangeModel(o=>{this._setState(null)})),this._register(t.onDidChangeModelContent(o=>{this._isEnabled&&this.updateSoon.schedule()}));const r=w1.get(t);r&&this._register(r.getState().onFindReplaceStateChange(o=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(nze._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(t,n,r,o,s){if(!n||!s.hasModel())return null;if(!r){const g=s.getSelection();if(g.startLineNumber!==g.endLineNumber)return null}const a=xV.get(s);if(!a)return null;const l=w1.get(s);if(!l)return null;let d=a.getSession(l);if(!d){const g=s.getSelections();if(g.length>1){const v=l.getState().matchCase;if(!TIn(s.getModel(),g,v))return null}d=cee.create(s,l)}if(!d||d.currentMatch||/^[ \t]+$/.test(d.searchText)||o>0&&d.searchText.length>o)return null;const u=l.getState(),h=u.matchCase;if(u.isRevealed){let g=u.searchString;h||(g=g.toLowerCase());let m=d.searchText;if(h||(m=m.toLowerCase()),g===m&&d.matchCase===u.matchCase&&d.wholeWord===u.wholeWord&&!u.isRegex)return null}return new zSo(s.getModel(),d.searchText,d.matchCase,d.wholeWord?s.getOption(148):null,t)}_setState(t){if(this.state=t,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const n=this.editor.getModel();if(n.isTooLargeForTokenization())return;const r=this.state.findMatches(),o=this.editor.getSelections();o.sort(Ee.compareRangesUsingStarts);const s=[];for(let u=0,h=0,g=r.length,m=o.length;u=m)s.push(v),u++;else{const f=Ee.compareRangesUsingStarts(v,o[h]);f<0?((o[h].isEmpty()||!Ee.areIntersecting(v,o[h]))&&s.push(v),u++):(f>0||u++,h++)}}const a=this.editor.getOption(90)!=="off",l=this._languageFeaturesService.documentHighlightProvider.has(n)&&a,d=s.map(u=>({range:u,options:TSo(l)}));this._decorations.set(d)}dispose(){this._setState(null),super.dispose()}},nze=gB,gB.ID="editor.contrib.selectionHighlighter",gB);eke=nze=QSo([DSo(1,Nn)],eke);function TIn(e,t,n){const r=i_t(e,t[0],!n);for(let o=1,s=t.length;o{const[n,r,o]=t;Oo(vi.isUri(n)),Oo(it.isIPosition(r)),Oo(typeof o=="string"||!o);const s=e.get(Nn),a=await e.get(Dg).createModelReference(n);try{const l=await QIn(s.signatureHelpProvider,a.object.textEditorModel,it.lift(r),{triggerKind:ly.Invoke,isRetrigger:!1,triggerCharacter:o},Er.None);return l?(setTimeout(()=>l.dispose(),0),l.value):void 0}finally{a.dispose()}});var l5;(function(e){e.Default={type:0};class t{constructor(o,s){this.request=o,this.previouslyActiveHints=s,this.type=2}}e.Pending=t;class n{constructor(o){this.hints=o,this.type=1}}e.Active=n})(l5||(l5={}));const xAe=class xAe extends ft{constructor(t,n,r=xAe.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new at),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=l5.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ts),this.triggerChars=new Bme,this.retriggerChars=new Bme,this.triggerId=0,this.editor=t,this.providers=n,this.throttledDelayer=new dA(r),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(o=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(o=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(o=>this.onCursorChange(o))),this._register(this.editor.onDidChangeModelContent(o=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(o=>this.onDidType(o))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(t){this._state.type===2&&this._state.request.cancel(),this._state=t}cancel(t=!1){this.state=l5.Default,this.throttledDelayer.cancel(),t||this._onChangedHints.fire(void 0)}trigger(t,n){const r=this.editor.getModel();if(!r||!this.providers.has(r))return;const o=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger(()=>this.doTrigger(o),n).catch(zi)}next(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,n=this.state.hints.activeSignature,r=n%t===t-1,o=this.editor.getOption(98).cycle;if((t<2||r)&&!o){this.cancel();return}this.updateActiveSignature(r&&o?0:n+1)}previous(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,n=this.state.hints.activeSignature,r=n===0,o=this.editor.getOption(98).cycle;if((t<2||r)&&!o){this.cancel();return}this.updateActiveSignature(r&&o?t-1:n-1)}updateActiveSignature(t){this.state.type===1&&(this.state=new l5.Active({...this.state.hints,activeSignature:t}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){const n=this.state.type===1||this.state.type===2,r=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const o=this._pendingTriggers.reduce(XSo);this._pendingTriggers=[];const s={triggerKind:o.triggerKind,triggerCharacter:o.triggerCharacter,isRetrigger:n,activeSignatureHelp:r};if(!this.editor.hasModel())return!1;const a=this.editor.getModel(),l=this.editor.getPosition();this.state=new l5.Pending(Fd(d=>QIn(this.providers,a,l,s,d)),r);try{const d=await this.state.request;return t!==this.triggerId?(d==null||d.dispose(),!1):!d||!d.value.signatures||d.value.signatures.length===0?(d==null||d.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new l5.Active(d.value),this._lastSignatureHelpResult.value=d,this._onChangedHints.fire(this.state.hints),!0)}catch(d){return t===this.triggerId&&(this.state=l5.Default),zi(d),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const t=this.editor.getModel();if(t)for(const n of this.providers.ordered(t)){for(const r of n.signatureHelpTriggerCharacters||[])if(r.length){const o=r.charCodeAt(0);this.triggerChars.add(o),this.retriggerChars.add(o)}for(const r of n.signatureHelpRetriggerCharacters||[])r.length&&this.retriggerChars.add(r.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;const n=t.length-1,r=t.charCodeAt(n);(this.triggerChars.has(r)||this.isTriggered&&this.retriggerChars.has(r))&&this.trigger({triggerKind:ly.TriggerCharacter,triggerCharacter:t.charAt(n)})}onCursorChange(t){t.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:ly.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:ly.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(98).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};xAe.DEFAULT_DELAY=120;let ize=xAe;function XSo(e,t){switch(t.triggerKind){case ly.Invoke:return t;case ly.ContentChange:return e;case ly.TriggerCharacter:default:return t}}var GSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},r_t=function(e,t){return function(n,r){t(n,r,e)}},rze;const fk=tn,YSo=Da("parameter-hints-next",zt.chevronDown,U(1312,"Icon for show next parameter hint.")),ZSo=Da("parameter-hints-previous",zt.chevronUp,U(1313,"Icon for show previous parameter hint."));var mB;let oze=(mB=class extends ft{constructor(t,n,r,o){super(),this.editor=t,this.model=n,this.markdownRendererService=o,this.renderDisposeables=this._register(new xt),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=RR.Visible.bindTo(r),this.keyMultipleSignatures=RR.MultipleSignatures.bindTo(r)}createParameterHintDOMNodes(){const t=fk(".editor-widget.parameter-hints-widget"),n=Xt(t,fk(".phwrapper"));n.tabIndex=-1;const r=Xt(n,fk(".controls")),o=Xt(r,fk(".button"+fi.asCSSSelector(ZSo))),s=Xt(r,fk(".overloads")),a=Xt(r,fk(".button"+fi.asCSSSelector(YSo)));this._register(wt(o,"click",m=>{Qo.stop(m),this.previous()})),this._register(wt(a,"click",m=>{Qo.stop(m),this.next()}));const l=fk(".body"),d=new Mie(l,{alwaysConsumeMouseWheel:!0});this._register(d),n.appendChild(d.getDomNode());const u=Xt(l,fk(".signature")),h=Xt(l,fk(".docs"));t.style.userSelect="text",this.domNodes={element:t,signature:u,overloads:s,docs:h,scrollbar:d},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(m=>{this.visible&&this.editor.layoutContentWidget(this)}));const g=()=>{if(!this.domNodes)return;const m=this.editor.getOption(59),v=this.domNodes.element;v.style.fontSize=`${m.fontSize}px`,v.style.lineHeight=`${m.lineHeight/m.fontSize}`,v.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",m.fontFamily),v.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",f1.fontFamily)};g(),this._register(an.chain(this.editor.onDidChangeConfiguration.bind(this.editor),m=>m.filter(v=>v.hasChanged(59)))(g)),this._register(this.editor.onDidLayoutChange(m=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var t;(t=this.domNodes)==null||t.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var t;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(t=this.domNodes)==null||t.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(t){if(this.renderDisposeables.clear(),!this.domNodes)return;const n=t.signatures.length>1;this.domNodes.element.classList.toggle("multiple",n),this.keyMultipleSignatures.set(n),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const r=t.signatures[t.activeSignature];if(!r)return;const o=Xt(this.domNodes.signature,fk(".code")),s=r.parameters.length>0,a=r.activeParameter??t.activeParameter;if(s)this.renderParameters(o,r,a);else{const u=Xt(o,fk("span"));u.textContent=r.label}const l=r.parameters[a];if(l!=null&&l.documentation){const u=fk("span.documentation");if(typeof l.documentation=="string")u.textContent=l.documentation;else{const h=this.renderMarkdownDocs(l.documentation);u.appendChild(h.element)}Xt(this.domNodes.docs,fk("p",{},u))}if(r.documentation!==void 0)if(typeof r.documentation=="string")Xt(this.domNodes.docs,fk("p",{},r.documentation));else{const u=this.renderMarkdownDocs(r.documentation);Xt(this.domNodes.docs,u.element)}const d=this.hasDocs(r,l);if(this.domNodes.signature.classList.toggle("has-docs",d),this.domNodes.docs.classList.toggle("empty",!d),this.domNodes.overloads.textContent=String(t.activeSignature+1).padStart(t.signatures.length.toString().length,"0")+"/"+t.signatures.length,l){let u="";const h=r.parameters[a];Array.isArray(h.label)?u=r.label.substring(h.label[0],h.label[1]):u=h.label,h.documentation&&(u+=typeof h.documentation=="string"?`, ${h.documentation}`:`, ${h.documentation.value}`),r.documentation&&(u+=typeof r.documentation=="string"?`, ${r.documentation}`:`, ${r.documentation.value}`),this.announcedLabel!==u&&(um(U(1314,"{0}, hint",u)),this.announcedLabel=u)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(t){const n=this.renderDisposeables.add(this.markdownRendererService.render(t,{context:this.editor,asyncRenderCallback:()=>{var r;(r=this.domNodes)==null||r.scrollbar.scanDomNode()}}));return n.element.classList.add("markdown-docs"),n}hasDocs(t,n){return!!(n&&typeof n.documentation=="string"&&a9(n.documentation).length>0||n&&typeof n.documentation=="object"&&a9(n.documentation).value.length>0||t.documentation&&typeof t.documentation=="string"&&a9(t.documentation).length>0||t.documentation&&typeof t.documentation=="object"&&a9(t.documentation.value).length>0)}renderParameters(t,n,r){const[o,s]=this.getParameterLabelOffsets(n,r),a=document.createElement("span");a.textContent=n.label.substring(0,o);const l=document.createElement("span");l.textContent=n.label.substring(o,s),l.className="parameter active";const d=document.createElement("span");d.textContent=n.label.substring(s),Xt(t,a,l,d)}getParameterLabelOffsets(t,n){const r=t.parameters[n];if(r){if(Array.isArray(r.label))return r.label;if(r.label.length){const o=new RegExp(`(\\W|^)${M0(r.label)}(?=\\W|$)`,"g");o.test(t.label);const s=o.lastIndex-r.label.length;return s>=0?[s,o.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return rze.ID}updateMaxHeight(){if(!this.domNodes)return;const n=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=n;const r=this.domNodes.element.getElementsByClassName("phwrapper");r.length&&(r[0].style.maxHeight=n)}},rze=mB,mB.ID="editor.widget.parameterHintsWidget",mB);oze=rze=GSo([r_t(2,Qi),r_t(3,Cp)],oze);Ve("editorHoverWidget.highlightForeground",gN,U(1315,"Foreground color of the active item in the parameter hint."));var qSo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},o_t=function(e,t){return function(n,r){t(n,r,e)}},sze,kB;let EV=(kB=class extends ft{static get(t){return t.getContribution(sze.ID)}constructor(t,n,r){super(),this.editor=t,this.model=this._register(new ize(t,r.signatureHelpProvider)),this._register(this.model.onChangedHints(o=>{var s;o?(this.widget.value.show(),this.widget.value.render(o)):(s=this.widget.rawValue)==null||s.hide()})),this.widget=new zh(()=>this._register(n.createInstance(oze,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var t;(t=this.widget.rawValue)==null||t.previous()}next(){var t;(t=this.widget.rawValue)==null||t.next()}trigger(t){this.model.trigger(t,0)}},sze=kB,kB.ID="editor.controller.parameterHints",kB);EV=sze=qSo([o_t(1,Yn),o_t(2,Nn)],EV);class KSo extends Bn{constructor(){super({id:"editor.action.triggerParameterHints",label:_t(1311,"Trigger Parameter Hints"),precondition:$e.hasSignatureHelpProvider,kbOpts:{kbExpr:$e.editorTextFocus,primary:3082,weight:100}})}run(t,n){const r=EV.get(n);r==null||r.trigger({triggerKind:ly.Invoke})}}mo(EV.ID,EV,2);un(KSo);const Vnt=175,znt=$d.bindToContribution(EV.get);On(new znt({id:"closeParameterHints",precondition:RR.Visible,handler:e=>e.cancel(),kbOpts:{weight:Vnt,kbExpr:$e.focus,primary:9,secondary:[1033]}}));On(new znt({id:"showPrevParameterHint",precondition:Ft.and(RR.Visible,RR.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:Vnt,kbExpr:$e.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));On(new znt({id:"showNextParameterHint",precondition:Ft.and(RR.Visible,RR.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:Vnt,kbExpr:$e.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));const wat=class wat extends ft{constructor(t){super(),this._editor=t,this._editorObs=hl(this._editor),this._placeholderText=this._editorObs.getOption(100),this._state=Vh({owner:this,equalsFn:lNe},n=>{const r=this._placeholderText.read(n);if(r&&this._editorObs.valueIsEmpty.read(n))return{placeholder:r}}),this._shouldViewBeAlive=JSo(this,n=>{var r;return((r=this._state.read(n))==null?void 0:r.placeholder)!==void 0}),this._view=Rt(n=>{if(!this._shouldViewBeAlive.read(n))return;const r=wo("div.editorPlaceholder");n.store.add(Oi(o=>{const s=this._state.read(o),a=(s==null?void 0:s.placeholder)!==void 0;r.root.style.display=a?"block":"none",r.root.innerText=(s==null?void 0:s.placeholder)??""})),n.store.add(Oi(o=>{const s=this._editorObs.layoutInfo.read(o);r.root.style.left=`${s.contentLeft}px`,r.root.style.width=s.contentWidth-s.verticalScrollbarWidth+"px",r.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),n.store.add(Oi(o=>{r.root.style.fontFamily=this._editorObs.getOption(58).read(o),r.root.style.fontSize=this._editorObs.getOption(61).read(o)+"px",r.root.style.lineHeight=this._editorObs.getOption(75).read(o)+"px"})),n.store.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:ca(0),position:ca(null),domNode:r.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};wat.ID="editor.contrib.placeholderText";let tke=wat;function JSo(e,t){return vL(e,(n,r)=>r===!0?!0:t(n))}var e8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},t8o=function(e,t){return function(n,r){t(n,r,e)}};class n8o{constructor(t){this.instantiationService=t}init(...t){}}function i8o(e){return e()}let s_t=class extends n8o{constructor(t,n){super(n),this.init(t)}};s_t=e8o([t8o(1,Yn)],s_t);mo(tke.ID,i8o(()=>tke),0);Ve("editor.placeholder.foreground",Hlo,U(1334,"Foreground color of the placeholder text in the editor."));const W3e=Cr("textResourceConfigurationService"),DIn=Cr("textResourcePropertiesService");var r8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},kce=function(e,t){return function(n,r){t(n,r,e)}};const fH=new yn("renameInputVisible",!1,U(1391,"Whether the rename input widget is visible"));new yn("renameInputFocused",!1,U(1392,"Whether the rename input widget is focused"));let aze=class{constructor(t,n,r,o,s,a){this._editor=t,this._acceptKeybindings=n,this._themeService=r,this._keybindingService=o,this._logService=a,this.allowEditorOverflow=!0,this._disposables=new xt,this._visibleContextKey=fH.bindTo(s),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new vu,this._inputWithButton=new o8o,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(59)&&this._updateFont()})),this._disposables.add(r.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new Hnt(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:t=>{this._inputWithButton.input.value=t,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var t,n,r;((t=this._renameCandidateListView)==null?void 0:t.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),this._timeBeforeFirstInputFieldEdit??(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((n=this._renameCandidateProvidersCts)==null?void 0:n.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(r=this._renameCandidateListView)==null||r.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(t){if(!this._domNode)return;const n=t.getColor(Jz),r=t.getColor(Cet);this._domNode.style.backgroundColor=String(t.getColor(Gk)??""),this._domNode.style.boxShadow=n?` 0 0 8px 2px ${n}`:"",this._domNode.style.border=r?`1px solid ${r}`:"",this._domNode.style.color=String(t.getColor(E7n)??"");const o=t.getColor(T7n);this._inputWithButton.domNode.style.backgroundColor=String(t.getColor(jNe)??""),this._inputWithButton.input.style.backgroundColor=String(t.getColor(jNe)??""),this._inputWithButton.domNode.style.borderWidth=o?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=o?"solid":"none",this._inputWithButton.domNode.style.borderColor=(o==null?void 0:o.toString())??"none"}_updateFont(){if(this._domNode===void 0)return;Oo(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const t=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(t.fontSize)}px`}_computeLabelFontSize(t){return t*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const t=O6(this.getDomNode().ownerDocument.body),n=Kl(this._editor.getDomNode()),r=this._getTopForPosition();this._nPxAvailableAbove=r+n.top,this._nPxAvailableBelow=t.height-this._nPxAvailableAbove;const o=this._editor.getOption(75),{totalHeight:s}=dee.getLayoutInfo({lineHeight:o}),a=this._nPxAvailableBelow>s*6?[2,1]:[1,2];return{position:this._position,preference:a}}beforeRender(){var r,o;const[t,n]=this._acceptKeybindings;return this._label.innerText=U(1393,"{0} to Rename, {1} to Preview",(r=this._keybindingService.lookupKeybinding(t))==null?void 0:r.getLabel(),(o=this._keybindingService.lookupKeybinding(n))==null?void 0:o.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(t){if(t===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Oo(this._renameCandidateListView),Oo(this._nPxAvailableAbove!==void 0),Oo(this._nPxAvailableBelow!==void 0);const n=ES(this._inputWithButton.domNode),r=ES(this._label);let o;t===2?o=this._nPxAvailableBelow:o=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:o-r-n,width:s0(this._inputWithButton.domNode)})}acceptInput(t){var n;this._trace("invoking acceptInput"),(n=this._currentAcceptInput)==null||n.call(this,t)}cancelInput(t,n){var r;(r=this._currentCancelInput)==null||r.call(this,t)}focusNextRenameSuggestion(){var t;(t=this._renameCandidateListView)!=null&&t.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var t;(t=this._renameCandidateListView)!=null&&t.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(t,n,r,o,s){const{start:a,end:l}=this._getSelection(t,n);this._renameCts=s;const d=new xt;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,o===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=o,this._requestRenameCandidates(n,!1),d.add(wt(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(n,!0))),d.add(wt(this._inputWithButton.button,rn.KEY_DOWN,h=>{const g=new Us(h);(g.equals(3)||g.equals(10))&&(g.stopPropagation(),g.preventDefault(),this._requestRenameCandidates(n,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",r),this._position=new it(t.startLineNumber,t.startColumn),this._currentName=n,this._inputWithButton.input.value=n,this._inputWithButton.input.setAttribute("selectionStart",a.toString()),this._inputWithButton.input.setAttribute("selectionEnd",l.toString()),this._inputWithButton.input.size=Math.max((t.endColumn-t.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),d.add(Hn(()=>{this._renameCts=void 0,s.dispose(!0)})),d.add(Hn(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),d.add(Hn(()=>this._candidates.clear()));const u=new pI;return u.p.finally(()=>{d.dispose(),this._hide()}),this._currentCancelInput=h=>{var g;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(g=this._renameCandidateListView)==null||g.clearCandidates(),u.complete(h),!0},this._currentAcceptInput=h=>{this._trace("invoking _currentAcceptInput"),Oo(this._renameCandidateListView!==void 0);const g=this._renameCandidateListView.nCandidates;let m,v;const f=this._renameCandidateListView.focusedCandidate;if(f!==void 0?(this._trace("using new name from renameSuggestion"),m=f,v={k:"renameSuggestion"}):(this._trace("using new name from inputField"),m=this._inputWithButton.input.value,v=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),m===n||m.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),u.complete({newName:m,wantsPreview:r&&h,stats:{source:v,nRenameSuggestions:g,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},d.add(s.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),d.add(this._editor.onDidBlurEditorWidget(()=>{var h;return this.cancelInput(!((h=this._domNode)!=null&&h.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show(),u.p}_requestRenameCandidates(t,n){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),Oo(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new ja;const r=n?fJ.Invoke:fJ.Automatic,o=this._requestRenameCandidatesOnce(r,this._renameCandidateProvidersCts.token);if(o.length===0){this._inputWithButton.setSparkleButton();return}n||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(o,t,this._renameCts.token)}}_getSelection(t,n){Oo(this._editor.hasModel());const r=this._editor.getSelection();let o=0,s=n.length;return!Ee.isEmpty(r)&&!Ee.spansMultipleLines(r)&&Ee.containsRange(t,r)&&(o=Math.max(0,r.startColumn-t.startColumn),s=Math.min(t.endColumn,r.endColumn)-t.startColumn),{start:o,end:s}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(t,n,r){const o=(...u)=>this._trace("_updateRenameCandidates",...u);o("start");const s=await YW(Promise.allSettled(t),r);if(this._inputWithButton.setSparkleButton(),s===void 0){o("returning early - received updateRenameCandidates results - undefined");return}const a=s.flatMap(u=>u.status==="fulfilled"&&Ru(u.value)?u.value:[]);o(`received updateRenameCandidates results - total (unfiltered) ${a.length} candidates.`);const l=M8(a,u=>u.newSymbolName);o(`distinct candidates - ${l.length} candidates.`);const d=l.filter(({newSymbolName:u})=>u.trim().length>0&&u!==this._inputWithButton.input.value&&u!==n&&!this._candidates.has(u));if(o(`valid distinct candidates - ${a.length} candidates.`),d.forEach(u=>this._candidates.add(u.newSymbolName)),d.length<1){o("returning early - no valid distinct candidates");return}o("setting candidates"),this._renameCandidateListView.setCandidates(d),o("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const t=this._editor.getVisibleRanges();let n;return t.length>0?n=t[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),n=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(n)}_trace(...t){this._logService.trace("RenameWidget",...t)}};aze=r8o([kce(2,Dl),kce(3,Do),kce(4,Qi),kce(5,va)],aze);class Hnt{constructor(t,n){this._disposables=new xt,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=n.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=n.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",t.appendChild(this._listContainer),this._listWidget=Hnt._createListWidget(this._listContainer,this._candidateViewHeight,n.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus(r=>{r.elements.length===1&&n.onFocusChange(r.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection(r=>{r.elements.length===1&&n.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur(r=>{this._listWidget.setFocus([])})),this._listWidget.style(TI({listInactiveFocusForeground:sJ,listInactiveFocusBackground:aJ}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:t,width:n}){this._availableHeight=t,this._minimumWidth=n}setCandidates(t){this._listWidget.splice(0,0,t);const n=this._pickListHeight(this._listWidget.length),r=this._pickListWidth(t);this._listWidget.layout(n,r),this._listContainer.style.height=`${n}px`,this._listContainer.style.width=`${r}px`,A3(U(1394,"Received {0} rename suggestions",t.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const t=this._listWidget.getSelectedElements()[0];if(t!==void 0)return t.newSymbolName;const n=this._listWidget.getFocusedElements()[0];if(n!==void 0)return n.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const t=this._listWidget.getFocus();if(t.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(t[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const t=this._listWidget.getFocus();if(t.length===0){this._listWidget.focusLast();const n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}else{if(t[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:t}=dee.getLayoutInfo({lineHeight:this._lineHeight});return t}_pickListHeight(t){const n=this._candidateViewHeight*t;return Math.min(n,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(t){const n=Math.ceil(Math.max(...t.map(o=>o.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+n+10)}static _createListWidget(t,n,r){const o=new class{getTemplateId(a){return"candidate"}getHeight(a){return n}},s=new class{constructor(){this.templateId="candidate"}renderTemplate(a){return new dee(a,r)}renderElement(a,l,d){d.populate(a)}disposeTemplate(a){a.dispose()}};return new _2("NewSymbolNameCandidates",t,o,[s],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class o8o{constructor(){this._buttonHoverContent="",this._onDidInputChange=new at,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new xt}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",U(1395,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=U(1396,"Generate New Name Suggestions"),this._buttonCancelHoverText=U(1397,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add(yp().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(wt(this.input,rn.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(wt(this.input,rn.KEY_DOWN,t=>{const n=new Us(t);(n.keyCode===15||n.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(wt(this.input,rn.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(wt(this.input,rn.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(wt(this.input,rn.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return Oo(this._inputNode),this._inputNode}get button(){return Oo(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??(this._sparkleIcon=y3(zt.sparkle)),uh(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHoverContent=this._buttonGenHoverText,this.input.focus()}setStopButton(){this._buttonState="stop",this._stopIcon??(this._stopIcon=y3(zt.stopCircle)),uh(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHoverContent=this._buttonCancelHoverText,this.input.focus()}dispose(){this._disposables.dispose()}}const Eq=class Eq{constructor(t,n){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${n.lineHeight}px`,this._domNode.style.padding=`${Eq._PADDING}px`;const r=document.createElement("div");r.style.display="flex",r.style.alignItems="center",r.style.width=r.style.height=`${n.lineHeight*.8}px`,this._domNode.appendChild(r),this._icon=y3(zt.sparkle),this._icon.style.display="none",r.appendChild(this._icon),this._label=document.createElement("div"),Fu(this._label,n),this._domNode.appendChild(this._label),t.appendChild(this._domNode)}populate(t){this._updateIcon(t),this._updateLabel(t)}_updateIcon(t){var r;const n=!!((r=t.tags)!=null&&r.includes(KNe.AIGenerated));this._icon.style.display=n?"inherit":"none"}_updateLabel(t){this._label.innerText=t.newSymbolName}static getLayoutInfo({lineHeight:t}){return{totalHeight:t+Eq._PADDING*2}}dispose(){}};Eq._PADDING=2;let dee=Eq;var s8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_7=function(e,t){return function(n,r){t(n,r,e)}},lze;class $nt{constructor(t,n,r){this.model=t,this.position=n,this._providerRenameIdx=0,this._providers=r.ordered(t)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(t){const n=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?n.join(` `):void 0}:{range:Ee.fromPositions(this.position),text:"",rejectReason:n.length>0?n.join(` `):void 0}}async provideRenameEdits(t,n){return this._provideRenameEdits(t,this._providerRenameIdx,[],n)}async _provideRenameEdits(t,n,r,o){const s=this._providers[n];if(!s)return{edits:[],rejectReason:r.join(` -`)};const a=await s.provideRenameEdits(this.model,this.position,t,o);if(a){if(a.rejectReason)return this._provideRenameEdits(t,n+1,r.concat(a.rejectReason),o)}else return this._provideRenameEdits(t,n+1,r.concat(U(1380,"No result.")),o);return a}}async function a8o(e,t,n,r){const o=new $nt(t,n,e),s=await o.resolveRenameLocation(Er.None);return s!=null&&s.rejectReason?{edits:[],rejectReason:s.rejectReason}:o.provideRenameEdits(r,Er.None)}var vB;let I6=(vB=class{static get(t){return t.getContribution(lze.ID)}constructor(t,n,r,o,s,a,l,d){this.editor=t,this._instaService=n,this._notificationService=r,this._bulkEditService=o,this._progressService=s,this._logService=a,this._configService=l,this._languageFeaturesService=d,this._disposableStore=new xt,this._cts=new ja,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(aze,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var f,k;const t=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new ja,!this.editor.hasModel()){t("editor has no model");return}const n=this.editor.getPosition(),r=new $nt(this.editor.getModel(),n,this._languageFeaturesService.renameProvider);if(!r.hasProvider()){t("skeleton has no provider");return}const o=new z8(this.editor,5,void 0,this._cts.token);let s;try{t("resolving rename location");const A=r.resolveRenameLocation(o.token);this._progressService.showWhile(A,250),s=await A,t("resolved rename location")}catch(A){A instanceof lA?t("resolve rename location cancelled",JSON.stringify(A,null," ")):(t("resolve rename location failed",A instanceof Error?A:JSON.stringify(A,null," ")),(typeof A=="string"||i8(A))&&((f=D0.get(this.editor))==null||f.showMessage(A||U(1381,"An unknown error occurred while resolving rename location"),n)));return}finally{o.dispose()}if(!s){t("returning early - no loc");return}if(s.rejectReason){t(`returning early - rejected with reason: ${s.rejectReason}`,s.rejectReason),(k=D0.get(this.editor))==null||k.showMessage(s.rejectReason,n);return}if(o.token.isCancellationRequested){t("returning early - cts1 cancelled");return}const a=new z8(this.editor,5,s.range,this._cts.token),l=this.editor.getModel(),d=this._languageFeaturesService.newSymbolNamesProvider.all(l),u=await Promise.all(d.map(async A=>[A,await A.supportsAutomaticNewSymbolNamesTriggerKind??!1])),h=(A,p)=>{let b=u.slice();return A===fJ.Automatic&&(b=b.filter(([w,O])=>O)),b.map(([w])=>w.provideNewSymbolNames(l,s.range,A,p))};t("creating rename input field and awaiting its result");const g=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),m=await this._renameWidget.getInput(s.range,s.text,g,d.length>0?h:void 0,a);if(t("received response from rename input field"),typeof m=="boolean"){t(`returning early - rename input field response - ${m}`),m&&this.editor.focus(),a.dispose();return}this.editor.focus(),t("requesting rename edits");const v=YW(r.provideRenameEdits(m.newName,a.token),a.token).then(async A=>{if(!A){t("returning early - no rename edits result");return}if(!this.editor.hasModel()){t("returning early - no model after rename edits are provided");return}if(A.rejectReason){t(`returning early - rejected with reason: ${A.rejectReason}`),this._notificationService.info(A.rejectReason);return}this.editor.setSelection(Ee.fromPositions(this.editor.getSelection().getPosition())),t("applying edits"),this._bulkEditService.apply(A,{editor:this.editor,showPreview:m.wantsPreview,label:U(1382,"Renaming '{0}' to '{1}'",s==null?void 0:s.text,m.newName),code:"undoredo.rename",quotableLabel:U(1383,"Renaming {0} to {1}",s==null?void 0:s.text,m.newName),respectAutoSaveConfig:!0,reason:Af.rename()}).then(p=>{t("edits applied"),p.ariaSummary&&um(U(1384,"Successfully renamed '{0}' to '{1}'. Summary: {2}",s.text,m.newName,p.ariaSummary))}).catch(p=>{t(`error when applying edits ${JSON.stringify(p,null," ")}`),this._notificationService.error(U(1385,"Rename failed to apply edits")),this._logService.error(p)})},A=>{t("error when providing rename edits",JSON.stringify(A,null," ")),this._notificationService.error(U(1386,"Rename failed to compute edits")),this._logService.error(A)}).finally(()=>{a.dispose()});return t("returning rename operation"),this._progressService.showWhile(v,250),v}acceptRenameInput(t){this._renameWidget.acceptInput(t)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}},lze=vB,vB.ID="editor.contrib.renameController",vB);I6=lze=s8o([_7(1,Yn),_7(2,ic),_7(3,Yie),_7(4,V8),_7(5,va),_7(6,W3e),_7(7,Nn)],I6);class l8o extends Bn{constructor(){super({id:"editor.action.rename",label:_t(1388,"Rename Symbol"),precondition:Ft.and($e.writable,$e.hasRenameProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(t,n){const r=t.get(yo),[o,s]=Array.isArray(n)&&n||[void 0,void 0];return vi.isUri(o)&&it.isIPosition(s)?r.openCodeEditor({resource:o},r.getActiveCodeEditor()).then(a=>{a&&(a.setPosition(s),a.invokeWithinContext(l=>(this.reportTelemetry(l,a),this.run(l,a))))},zi):super.runCommand(t,n)}run(t,n){const r=t.get(va),o=I6.get(n);return o?(r.trace("[RenameAction] got controller, running..."),o.run()):(r.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}mo(I6.ID,I6,4);un(l8o);const Xnt=$d.bindToContribution(I6.get);On(new Xnt({id:"acceptRenameInput",precondition:fH,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:Ft.and($e.focus,Ft.not("isComposing")),primary:3}}));On(new Xnt({id:"acceptRenameInputWithPreview",precondition:Ft.and(fH,Ft.has("config.editor.rename.enablePreview")),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:Ft.and($e.focus,Ft.not("isComposing")),primary:2051}}));On(new Xnt({id:"cancelRenameInput",precondition:fH,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:$e.focus,primary:9,secondary:[1033]}}));ys(class extends zu{constructor(){super({id:"focusNextRenameSuggestion",title:{..._t(1389,"Focus Next Rename Suggestion")},precondition:fH,keybinding:[{primary:18,weight:199}]})}run(t){const n=t.get(yo).getFocusedCodeEditor();if(!n)return;const r=I6.get(n);r&&r.focusNextRenameSuggestion()}});ys(class extends zu{constructor(){super({id:"focusPreviousRenameSuggestion",title:{..._t(1390,"Focus Previous Rename Suggestion")},precondition:fH,keybinding:[{primary:16,weight:199}]})}run(t){const n=t.get(yo).getFocusedCodeEditor();if(!n)return;const r=I6.get(n);r&&r.focusPreviousRenameSuggestion()}});_1("_executeDocumentRenameProvider",function(e,t,n,...r){const[o]=r;Oo(typeof o=="string");const{renameProvider:s}=e.get(Nn);return a8o(s,t,n,o)});_1("_executePrepareRename",async function(e,t,n){const{renameProvider:r}=e.get(Nn),s=await new $nt(t,n,r).resolveRenameLocation(Er.None);if(s!=null&&s.rejectReason)throw new Error(s.rejectReason);return s});Ql.as(F3.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:U(1387,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var c8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},a_t=function(e,t){return function(n,r){t(n,r,e)}},Zj;let nke=(Zj=class extends ft{constructor(t,n,r){super(),this.editor=t,this.languageConfigurationService=n,this.editorWorkerService=r,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(t.getOption(81)),this.computePromise=null,this.currentOccurrences={},this._register(t.onDidChangeModel(o=>{this.currentOccurrences={},this.options=this.createOptions(t.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChangeModelLanguage(o=>{this.currentOccurrences={},this.options=this.createOptions(t.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(n.onDidChange(o=>{var a;const s=(a=this.editor.getModel())==null?void 0:a.getLanguageId();s&&o.affects(s)&&(this.currentOccurrences={},this.options=this.createOptions(t.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(t.onDidChangeConfiguration(o=>{this.options&&!o.hasChanged(81)||(this.options=this.createOptions(t.getOption(81)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(o=>{this.computeSectionHeaders.schedule()})),this._register(t.onDidChangeModelTokens(o=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new Es(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(t){if(!t||!this.editor.hasModel())return;const n=this.editor.getModel().getLanguageId();if(!n)return;const r=this.languageConfigurationService.getLanguageConfiguration(n).comments,o=this.languageConfigurationService.getLanguageConfiguration(n).foldingRules;if(!(!r&&!(o!=null&&o.markers)))return{foldingRules:o,markSectionHeaderRegex:t.markSectionHeaderRegex,findMarkSectionHeaders:t.showMarkSectionHeaders,findRegionSectionHeaders:t.showRegionSectionHeaders}}findSectionHeaders(){var r,o;if(!this.editor.hasModel()||!((r=this.options)!=null&&r.findMarkSectionHeaders)&&!((o=this.options)!=null&&o.findRegionSectionHeaders))return;const t=this.editor.getModel();if(t.isDisposed()||t.isTooLargeForSyncing())return;const n=t.getVersionId();this.editorWorkerService.findSectionHeaders(t.uri,this.options).then(s=>{t.isDisposed()||t.getVersionId()!==n||this.updateDecorations(s)})}updateDecorations(t){const n=this.editor.getModel();n&&(t=t.filter(s=>{if(!s.shouldBeInComments)return!0;const a=n.validateRange(s.range),l=n.tokenization.getLineTokens(a.startLineNumber),d=l.findTokenIndexAtOffset(a.startColumn-1),u=l.getStandardTokenType(d);return l.getLanguageId(d)===n.getLanguageId()&&u===1}));const r=Object.values(this.currentOccurrences).map(s=>s.decorationId),o=t.map(s=>d8o(s));this.editor.changeDecorations(s=>{const a=s.deltaDecorations(r,o);this.currentOccurrences={};for(let l=0,d=a.length;l=this._minimumTimeBetweenRuns&&(this._lastRun=n,t())}}class VZ{static create(t,n){return new VZ(t,new cze(n))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(t,n){this._startLineNumber=t,this._tokens=n,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(t){return this._startLineNumber<=t&&t<=this._endLineNumber?this._tokens.getLineTokens(t-this._startLineNumber):null}getRange(){const t=this._tokens.getRange();return t&&new Ee(this._startLineNumber+t.startLineNumber,t.startColumn,this._startLineNumber+t.endLineNumber,t.endColumn)}removeTokens(t){const n=t.startLineNumber-this._startLineNumber,r=t.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(n,t.startColumn-1,r,t.endColumn-1),this._updateEndLineNumber()}split(t){const n=t.startLineNumber-this._startLineNumber,r=t.endLineNumber-this._startLineNumber,[o,s,a]=this._tokens.split(n,t.startColumn-1,r,t.endColumn-1);return[new VZ(this._startLineNumber,o),new VZ(this._startLineNumber+a,s)]}applyEdit(t,n){const[r,o,s]=x6(n);this.acceptEdit(t,r,o,s,n.length>0?n.charCodeAt(0):0)}acceptEdit(t,n,r,o,s){this._acceptDeleteRange(t),this._acceptInsertText(new it(t.startLineNumber,t.startColumn),n,r,o,s),this._updateEndLineNumber()}_acceptDeleteRange(t){if(t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn)return;const n=t.startLineNumber-this._startLineNumber,r=t.endLineNumber-this._startLineNumber;if(r<0){const s=r-n;this._startLineNumber-=s;return}const o=this._tokens.getMaxDeltaLine();if(!(n>=o+1)){if(n<0&&r>=o+1){this._startLineNumber=0,this._tokens.clear();return}if(n<0){const s=-n;this._startLineNumber-=s,this._tokens.acceptDeleteRange(t.startColumn-1,0,0,r,t.endColumn-1)}else this._tokens.acceptDeleteRange(0,n,t.startColumn-1,r,t.endColumn-1)}}_acceptInsertText(t,n,r,o,s){if(n===0&&r===0)return;const a=t.lineNumber-this._startLineNumber;if(a<0){this._startLineNumber+=n;return}const l=this._tokens.getMaxDeltaLine();a>=l+1||this._tokens.acceptInsertText(a,t.column-1,n,r,o,s)}reportIfInvalid(t){this._tokens.reportIfInvalid(t,this._startLineNumber)}}const C5=class C5{constructor(t){this._tokens=t,this._tokenCount=t.length/4}toString(t){const n=[];for(let r=0;rt)r=o-1;else{let a=o;for(;a>n&&this._getDeltaLine(a-1)===t;)a--;let l=o;for(;lt||m===t&&f>=n)&&(mt||f===t&&A>=n){if(fs?k-=s-r:k=r;else if(v===n&&f===r)if(v===o&&k>s)k-=s-r;else{h=!0;continue}else if(vs)v=n,f=r,k=f+(k-s);else{h=!0;continue}else if(v>o){if(d===0&&!h){u=l;break}v-=d}else if(v===o&&f>=s)t&&v===0&&(f+=t,k+=t),v-=d,f-=s-r,k-=s-r;else throw new Error("Not possible!");const p=4*u;a[p]=v,a[p+1]=f,a[p+2]=k,a[p+3]=A,u++}this._tokenCount=u}acceptInsertText(t,n,r,o,s,a){const l=r===0&&o===1&&(a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122),d=this._tokens,u=this._tokenCount;for(let h=0;h{console.error("Invalid Semantic Tokens Data From Extension: lineNumber < 1")}):o>t.getLineCount()?C5._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: lineNumber > model.getLineCount()")}):this._getEndCharacter(r)>t.getLineLength(o)&&C5._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: end character > model.getLineLength(lineNumber)")})}}};C5._rateLimiter=new u8o(10/60);let cze=C5;class l_t{constructor(t){this._tokens=t}getCount(){return this._tokens.length/4}getStartCharacter(t){return this._tokens[4*t+1]}getEndCharacter(t){return this._tokens[4*t+2]}getMetadata(t){return this._tokens[4*t+3]}}var h8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Hxe=function(e,t){return function(n,r){t(n,r,e)}};let dze=class{constructor(t,n,r,o){this._legend=t,this._themeService=n,this._languageService=r,this._logService=o,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new uze}getMetadata(t,n,r){const o=this._languageService.languageIdCodec.encodeLanguageId(r),s=this._hashTable.get(t,n,o);let a;if(s)a=s.metadata;else{let l=this._legend.tokenTypes[t];const d=[];if(l){let u=n;for(let g=0;u>0&&g>1;const h=this._themeService.getColorTheme().getTokenStyleMetadata(l,d,r);if(typeof h>"u")a=2147483647;else{if(a=0,typeof h.italic<"u"){const g=(h.italic?1:0)<<11;a|=g|1}if(typeof h.bold<"u"){const g=(h.bold?2:0)<<11;a|=g|2}if(typeof h.underline<"u"){const g=(h.underline?4:0)<<11;a|=g|4}if(typeof h.strikethrough<"u"){const g=(h.strikethrough?8:0)<<11;a|=g|8}if(h.foreground){const g=h.foreground<<15;a|=g|16}a===0&&(a=2147483647)}}else a=2147483647,l="not-in-legend";this._hashTable.add(t,n,o,a)}return a}warnOverlappingSemanticTokens(t,n){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${t}, column ${n}`))}warnInvalidLengthSemanticTokens(t,n){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${t}, column ${n}`))}warnInvalidEditStart(t,n,r,o,s){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${t}, resultId: ${n}) at edit #${r}: The provided start offset ${o} is outside the previous data (length ${s}).`))}};dze=h8o([Hxe(1,Dl),Hxe(2,nc),Hxe(3,va)],dze);function BIn(e,t,n){const r=e.data,o=e.data.length/5|0,s=Math.max(Math.ceil(o/1024),400),a=[];let l=0,d=1,u=0;for(;lh&&r[5*b]===0;)b--;if(b-1===h){let w=g;for(;w+1C)t.warnOverlappingSemanticTokens(y,C+1);else{const T=t.getMetadata(L,E,n);T!==2147483647&&(f===0&&(f=y),m[v]=y-f,m[v+1]=C,m[v+2]=S,m[v+3]=T,v+=4,k=y,A=S)}d=y,u=C,l++}v!==m.length&&(m=m.subarray(0,v));const p=VZ.create(f,m);a.push(p)}return a}class f8o{constructor(t,n,r,o){this.tokenTypeIndex=t,this.tokenModifierSet=n,this.languageId=r,this.metadata=o,this.next=null}}const Y_=class Y_{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=Y_._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const s=this._elements;this._currentLengthIndex++,this._currentLength=Y_._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+10?n[0]:[]}async function PIn(e,t,n,r,o){const s=A8o(e,t),a=await Promise.all(s.map(async l=>{let d,u=null;try{d=await l.provideDocumentSemanticTokens(t,l===n?r:null,o)}catch(h){u=h,d=null}return(!d||!z3e(d)&&!IIn(d))&&(d=null),new v8o(l,d,u)}));for(const l of a){if(l.error)throw l.error;if(l.tokens)return l}return a.length>0?a[0]:null}function p8o(e,t){const n=e.orderedGroups(t);return n.length>0?n[0]:null}class b8o{constructor(t,n){this.provider=t,this.tokens=n}}function w8o(e,t){return e.has(t)}function FIn(e,t){const n=e.orderedGroups(t);return n.length>0?n[0]:[]}async function Gnt(e,t,n,r){const o=FIn(e,t),s=await Promise.all(o.map(async a=>{let l;try{l=await a.provideDocumentRangeSemanticTokens(t,n,r)}catch(d){Nc(d),l=null}return(!l||!z3e(l))&&(l=null),new b8o(a,l)}));for(const a of s)if(a.tokens)return a;return s.length>0?s[0]:null}co.registerCommand("_provideDocumentSemanticTokensLegend",async(e,...t)=>{const[n]=t;Oo(n instanceof vi);const r=e.get(ml).getModel(n);if(!r)return;const{documentSemanticTokensProvider:o}=e.get(Nn),s=p8o(o,r);return s?s[0].getLegend():e.get(ba).executeCommand("_provideDocumentRangeSemanticTokensLegend",n)});co.registerCommand("_provideDocumentSemanticTokens",async(e,...t)=>{const[n]=t;Oo(n instanceof vi);const r=e.get(ml).getModel(n);if(!r)return;const{documentSemanticTokensProvider:o}=e.get(Nn);if(!MIn(o,r))return e.get(ba).executeCommand("_provideDocumentRangeSemanticTokens",n,r.getFullModelRange());const s=await PIn(o,r,null,null,Er.None);if(!s)return;const{provider:a,tokens:l}=s;if(!l||!z3e(l))return;const d=RIn({id:0,type:"full",data:l.data});return l.resultId&&a.releaseDocumentSemanticTokens(l.resultId),d});co.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(e,...t)=>{const[n,r]=t;Oo(n instanceof vi);const o=e.get(ml).getModel(n);if(!o)return;const{documentRangeSemanticTokensProvider:s}=e.get(Nn),a=FIn(s,o);if(a.length===0)return;if(a.length===1)return a[0].getLegend();if(!r||!Ee.isIRange(r))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),a[0].getLegend();const l=await Gnt(s,o,Ee.lift(r),Er.None);if(l)return l.provider.getLegend()});co.registerCommand("_provideDocumentRangeSemanticTokens",async(e,...t)=>{const[n,r]=t;Oo(n instanceof vi),Oo(Ee.isIRange(r));const o=e.get(ml).getModel(n);if(!o)return;const{documentRangeSemanticTokensProvider:s}=e.get(Nn),a=await Gnt(s,o,Ee.lift(r),Er.None);if(!(!a||!a.tokens))return RIn({id:0,type:"full",data:a.tokens.data})});const Ynt="editor.semanticHighlighting";function She(e,t,n){var o;const r=(o=n.getValue(Ynt,{overrideIdentifier:e.getLanguageId(),resource:e.uri}))==null?void 0:o.enabled;return typeof r=="boolean"?r:t.getColorTheme().semanticHighlighting}var NIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gO=function(e,t){return function(n,r){t(n,r,e)}},zx;let hze=class extends ft{constructor(t,n,r,o,s,a){super(),this._watchers=new _c;const l=h=>{var g;(g=this._watchers.get(h.uri))==null||g.dispose(),this._watchers.set(h.uri,new fze(h,t,r,s,a))},d=(h,g)=>{g.dispose(),this._watchers.delete(h.uri)},u=()=>{for(const h of n.getModels()){const g=this._watchers.get(h.uri);She(h,r,o)?g||l(h):g&&d(h,g)}};n.getModels().forEach(h=>{She(h,r,o)&&l(h)}),this._register(n.onModelAdded(h=>{She(h,r,o)&&l(h)})),this._register(n.onModelRemoved(h=>{const g=this._watchers.get(h.uri);g&&d(h,g)})),this._register(o.onDidChangeConfiguration(h=>{h.affectsConfiguration(Ynt)&&u()})),this._register(r.onDidColorThemeChange(u))}dispose(){us(this._watchers.values()),this._watchers.clear(),super.dispose()}};hze=NIn([gO(0,V3e),gO(1,ml),gO(2,Dl),gO(3,ar),gO(4,CA),gO(5,Nn)],hze);var l6;let fze=(l6=class extends ft{constructor(t,n,r,o,s){super(),this._semanticTokensStylingService=n,this._isDisposed=!1,this._model=t,this._provider=s.documentSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentSemanticTokens",{min:zx.REQUEST_MIN_DELAY,max:zx.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Es(()=>this._fetchDocumentSemanticTokensNow(),zx.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const a=()=>{us(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const l of this._provider.all(t))typeof l.onDidChange=="function"&&this._documentProvidersChangeListeners.push(l.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};a(),this._register(this._provider.onDidChange(()=>{a(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(r.onDidColorThemeChange(l=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),us(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!MIn(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const t=new ja,n=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,r=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,o=PIn(this._provider,this._model,n,r,t.token);this._currentDocumentRequestCancellationTokenSource=t,this._providersChangedDuringRequest=!1;const s=[],a=this._model.onDidChangeContent(d=>{s.push(d)}),l=new vu(!1);o.then(d=>{if(this._debounceInformation.update(this._model,l.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,a.dispose(),!d)this._setDocumentSemanticTokens(null,null,null,s);else{const{provider:u,tokens:h}=d,g=this._semanticTokensStylingService.getStyling(u);this._setDocumentSemanticTokens(u,h||null,g,s)}},d=>{d&&(C2(d)||typeof d.message=="string"&&d.message.indexOf("busy")!==-1)||zi(d),this._currentDocumentRequestCancellationTokenSource=null,a.dispose(),(s.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(t,n,r,o,s){s=Math.min(s,r.length-o,t.length-n);for(let a=0;a{(o.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){t&&n&&t.releaseDocumentSemanticTokens(n.resultId);return}if(!t||!r){this._model.tokenization.setSemanticTokens(null,!1);return}if(!n){this._model.tokenization.setSemanticTokens(null,!0),a();return}if(IIn(n)){if(!s){this._model.tokenization.setSemanticTokens(null,!0);return}if(n.edits.length===0)n={resultId:n.resultId,data:s.data};else{let l=0;for(const m of n.edits)l+=(m.data?m.data.length:0)-m.deleteCount;const d=s.data,u=new Uint32Array(d.length+l);let h=d.length,g=u.length;for(let m=n.edits.length-1;m>=0;m--){const v=n.edits[m];if(v.start>d.length){r.warnInvalidEditStart(s.resultId,n.resultId,m,v.start,d.length),this._model.tokenization.setSemanticTokens(null,!0);return}const f=h-(v.start+v.deleteCount);f>0&&(zx._copy(d,h-f,u,g-f,f),g-=f),v.data&&(zx._copy(v.data,0,u,g-v.data.length,v.data.length),g-=v.data.length),h=v.start}h>0&&zx._copy(d,0,u,0,h),n={resultId:n.resultId,data:u}}}if(z3e(n)){this._currentDocumentResponse=new O8o(t,n.resultId,n.data);const l=BIn(n,r,this._model.getLanguageId());if(o.length>0)for(const d of o)for(const u of l)for(const h of d.changes)u.applyEdit(h.range,h.text);this._model.tokenization.setSemanticTokens(l,!0)}else this._model.tokenization.setSemanticTokens(null,!0);a()}},zx=l6,l6.REQUEST_MIN_DELAY=300,l6.REQUEST_MAX_DELAY=2e3,l6);fze=zx=NIn([gO(1,V3e),gO(2,Dl),gO(3,CA),gO(4,Nn)],fze);class O8o{constructor(t,n,r){this.provider=t,this.resultId=n,this.data=r}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}dH(hze);var y8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},RX=function(e,t){return function(n,r){t(n,r,e)}},qj;let ike=(qj=class extends ft{constructor(t,n,r,o,s,a){super(),this._semanticTokensStylingService=n,this._themeService=r,this._configurationService=o,this._editor=t,this._provider=a.documentRangeSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new Es(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[],this._rangeProvidersChangeListeners=[];const l=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))},d=()=>{var u;if(this._cleanupProviderListeners(),this._editor.hasModel()){const h=this._editor.getModel();for(const g of this._provider.all(h)){const m=(u=g.onDidChange)==null?void 0:u.call(g,()=>{this._cancelAll(),l()});m&&this._rangeProvidersChangeListeners.push(m)}}};this._register(this._editor.onDidScrollChange(()=>{l()})),this._register(this._editor.onDidChangeModel(()=>{d(),this._cancelAll(),l()})),this._register(this._editor.onDidChangeModelLanguage(()=>{d(),this._cancelAll(),l()})),this._register(this._editor.onDidChangeModelContent(u=>{this._cancelAll(),l()})),d(),this._register(this._provider.onDidChange(()=>{d(),this._cancelAll(),l()})),this._register(this._configurationService.onDidChangeConfiguration(u=>{u.affectsConfiguration(Ynt)&&(this._cancelAll(),l())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),l()})),l()}dispose(){this._cleanupProviderListeners(),super.dispose()}_cleanupProviderListeners(){us(this._rangeProvidersChangeListeners),this._rangeProvidersChangeListeners=[]}_cancelAll(){for(const t of this._outstandingRequests)t.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(t){for(let n=0,r=this._outstandingRequests.length;nthis._requestRange(t,r)))}_requestRange(t,n){const r=t.getVersionId(),o=Fd(a=>Promise.resolve(Gnt(this._provider,t,n,a))),s=new vu(!1);return o.then(a=>{if(this._debounceInformation.update(t,s.elapsed()),!a||!a.tokens||t.isDisposed()||t.getVersionId()!==r)return;const{provider:l,tokens:d}=a,u=this._semanticTokensStylingService.getStyling(l);t.tokenization.setPartialSemanticTokens(n,BIn(d,u,t.getLanguageId()))}).then(()=>this._removeOutstandingRequest(o),()=>this._removeOutstandingRequest(o)),o}},qj.ID="editor.contrib.viewportSemanticTokens",qj);ike=y8o([RX(1,V3e),RX(2,Dl),RX(3,ar),RX(4,CA),RX(5,Nn)],ike);mo(ike.ID,ike,1);class C8o{constructor(t=!0){this.selectSubwords=t}provideSelectionRanges(t,n){const r=[];for(const o of n){const s=[];r.push(s),this.selectSubwords&&this._addInWordRanges(s,t,o),this._addWordRanges(s,t,o),this._addWhitespaceLine(s,t,o),s.push({range:t.getFullModelRange()})}return r}_addInWordRanges(t,n,r){const o=n.getWordAtPosition(r);if(!o)return;const{word:s,startColumn:a}=o,l=r.column-a;let d=l,u=l,h=0;for(;d>=0;d--){const g=s.charCodeAt(d);if(d!==l&&(g===95||g===45))break;if(l9(g)&&dO(h))break;h=g}for(d+=1;u0&&n.getLineFirstNonWhitespaceColumn(r.lineNumber)===0&&n.getLineLastNonWhitespaceColumn(r.lineNumber)===0&&t.push({range:new Ee(r.lineNumber,1,r.lineNumber,n.getLineMaxColumn(r.lineNumber))})}}var _8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},S8o=function(e,t){return function(n,r){t(n,r,e)}},gze;class Znt{constructor(t,n){this.index=t,this.ranges=n}mov(t){const n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;const r=new Znt(n,this.ranges);return r.ranges[n].equalsRange(this.ranges[this.index])?r.mov(t):r}}var AB;let uee=(AB=class{static get(t){return t.getContribution(gze.ID)}constructor(t,n){this._editor=t,this._languageFeaturesService=n,this._ignoreSelection=!1}dispose(){var t;(t=this._selectionListener)==null||t.dispose()}async run(t){if(!this._editor.hasModel())return;const n=this._editor.getSelections(),r=this._editor.getModel();if(this._state||await jIn(this._languageFeaturesService.selectionRangeProvider,r,n.map(s=>s.getPosition()),this._editor.getOption(129),Er.None).then(s=>{var a;if(!(!yg(s)||s.length!==n.length)&&!(!this._editor.hasModel()||!Na(this._editor.getSelections(),n,(l,d)=>l.equalsSelection(d)))){for(let l=0;ld.containsPosition(n[l].getStartPosition())&&d.containsPosition(n[l].getEndPosition())),s[l].unshift(n[l]);this._state=s.map(l=>new Znt(0,l)),(a=this._selectionListener)==null||a.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var l;this._ignoreSelection||((l=this._selectionListener)==null||l.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(s=>s.mov(t));const o=this._state.map(s=>Qn.fromPositions(s.ranges[s.index].getStartPosition(),s.ranges[s.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(o)}finally{this._ignoreSelection=!1}}},gze=AB,AB.ID="editor.contrib.smartSelectController",AB);uee=gze=_8o([S8o(1,Nn)],uee);class UIn extends Bn{constructor(t,n){super(n),this._forward=t}async run(t,n){const r=uee.get(n);r&&await r.run(this._forward)}}class L8o extends UIn{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:_t(1400,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"1_basic",title:U(1398,"&&Expand Selection"),order:2}})}}co.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class x8o extends UIn{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:_t(1401,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"1_basic",title:U(1399,"&&Shrink Selection"),order:3}})}}mo(uee.ID,uee,4);un(L8o);un(x8o);async function jIn(e,t,n,r,o){const s=e.all(t).concat(new C8o(r.selectSubwords));s.length===1&&s.unshift(new j0e);const a=[],l=[];for(const d of s)a.push(Promise.resolve(d.provideSelectionRanges(t,n,o)).then(u=>{if(yg(u)&&u.length===n.length)for(let h=0;h{if(d.length===0)return[];d.sort((m,v)=>it.isBefore(m.getStartPosition(),v.getStartPosition())?1:it.isBefore(v.getStartPosition(),m.getStartPosition())||it.isBefore(m.getEndPosition(),v.getEndPosition())?-1:it.isBefore(v.getEndPosition(),m.getEndPosition())?1:0);const u=[];let h;for(const m of d)(!h||Ee.containsRange(m,h)&&!Ee.equalsRange(m,h))&&(u.push(m),h=m);if(!r.selectLeadingAndTrailingWhitespace)return u;const g=[u[0]];for(let m=1;mit.isIPosition(a)));const o=e.get(Nn).selectionRangeProvider,s=await e.get(Dg).createModelReference(n);try{return jIn(o,s.object.textEditorModel,r.map(it.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},Er.None)}finally{s.dispose()}});const mze=Object.freeze({View:_t(1638,"View"),Help:_t(1639,"Help"),Test:_t(1640,"Test"),File:_t(1641,"File"),Preferences:_t(1642,"Preferences"),Developer:_t(1643,"Developer")});class E8o extends Op{constructor(){super({id:"editor.action.toggleStickyScroll",title:{..._t(1448,"Toggle Editor Sticky Scroll"),mnemonicTitle:U(1444,"&&Toggle Editor Sticky Scroll")},metadata:{description:_t(1449,"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:mze.View,toggled:{condition:Ft.equals("config.editor.stickyScroll.enabled",!0),title:U(1445,"Sticky Scroll"),mnemonicTitle:U(1446,"&&Sticky Scroll")},menu:[{id:Wn.CommandPalette},{id:Wn.MenubarAppearanceMenu,group:"4_editor",order:3},{id:Wn.StickyScrollContext}]})}async runEditorCommand(t,n){var a;const r=t.get(ar),o=!r.getValue("editor.stickyScroll.enabled"),s=(a=fp.get(n))==null?void 0:a.isFocused();r.updateValue("editor.stickyScroll.enabled",o),s&&n.focus()}}const H3e=100;class T8o extends Op{constructor(){super({id:"editor.action.focusStickyScroll",title:{..._t(1450,"Focus Editor Sticky Scroll"),mnemonicTitle:U(1447,"&&Focus Editor Sticky Scroll")},precondition:Ft.and(Ft.has("config.editor.stickyScroll.enabled"),$e.stickyScrollVisible),menu:[{id:Wn.CommandPalette}]})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.focus()}}class Q8o extends Op{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:_t(1451,"Select the next editor sticky scroll line"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:18}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.focusNext()}}class D8o extends Op{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:_t(1452,"Select the previous sticky scroll line"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:16}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.focusPrevious()}}class B8o extends Op{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:_t(1453,"Go to the focused sticky scroll line"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:3}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.goToFocused()}}class R8o extends Op{constructor(){super({id:"editor.action.selectEditor",title:_t(1454,"Select Editor"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:9}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.selectEditor()}}mo(fp.ID,fp,1);ys(E8o);ys(T8o);ys(D8o);ys(Q8o);ys(B8o);ys(R8o);var WIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},YG=function(e,t){return function(n,r){t(n,r,e)}};class I8o{constructor(t,n,r,o,s,a,l){this.range=t,this.insertText=n,this.filterText=r,this.additionalTextEdits=o,this.command=s,this.gutterMenuLinkAction=a,this.completion=l}}let kze=class extends GJr{constructor(t,n,r,o,s,a){super(s.disposable),this.model=t,this.line=n,this.word=r,this.completionModel=o,this._suggestMemoryService=a}canBeReused(t,n,r){return this.model===t&&this.line===n&&this.word.word.length>0&&this.word.startColumn===r.startColumn&&this.word.endColumn=0&&l.resolve(Er.None)}return t}};kze=WIn([YG(5,N3e)],kze);let vze=class extends ft{constructor(t,n,r,o){super(),this._languageFeatureService=t,this._clipboardService=n,this._suggestMemoryService=r,this._editorService=o,this._store.add(t.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(t,n,r,o){var v;if(r.selectedSuggestionInfo)return;let s;for(const f of this._editorService.listCodeEditors())if(f.getModel()===t){s=f;break}if(!s)return;const a=s.getOption(102);if(CN.isAllOff(a))return;t.tokenization.tokenizeIfCheap(n.lineNumber);const l=t.tokenization.getLineTokens(n.lineNumber),d=l.getStandardTokenType(l.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(CN.valueFor(a,d)!=="inline")return;let u=t.getWordAtPosition(n),h;if(u!=null&&u.word||(h=this._getTriggerCharacterInfo(t,n)),!(u!=null&&u.word)&&!h||(u||(u=t.getWordUntilPosition(n)),u.endColumn!==n.column))return;let g;const m=t.getValueInRange(new Ee(n.lineNumber,1,n.lineNumber,n.column));if(!h&&((v=this._lastResult)!=null&&v.canBeReused(t,n.lineNumber,u))){const f=new DCt(m,n.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=f,this._lastResult.acquire(),g=this._lastResult}else{const f=await Bnt(this._languageFeatureService.completionProvider,t,n,new JJ(void 0,V0e.createSuggestFilter(s).itemKind,h==null?void 0:h.providers),h&&{triggerKind:1,triggerCharacter:h.ch},o);let k;f.needsClipboard&&(k=await this._clipboardService.readText());const A=new D5(f.items,n.column,new DCt(m,0),W0e.None,s.getOption(134),s.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},k);g=new kze(t,n.lineNumber,u,A,f,this._suggestMemoryService)}return this._lastResult=g,g}handleItemDidShow(t,n){n.completion.resolve(Er.None)}disposeInlineCompletions(t){t.release()}_getTriggerCharacterInfo(t,n){var s;const r=t.getValueInRange(Ee.fromPositions({lineNumber:n.lineNumber,column:n.column-1},n)),o=new Set;for(const a of this._languageFeatureService.completionProvider.all(t))(s=a.triggerCharacters)!=null&&s.includes(r)&&o.add(a);if(o.size!==0)return{providers:o,ch:r}}};vze=WIn([YG(0,Nn),YG(1,U0),YG(2,N3e),YG(3,yo)],vze);dH(vze);class M8o extends Bn{constructor(){super({id:"editor.action.forceRetokenize",label:_t(1532,"Developer: Force Retokenize"),precondition:void 0})}run(t,n){if(!n.hasModel())return;const r=n.getModel();r.tokenization.resetTokenization();const o=new vu;r.tokenization.forceTokenization(r.getLineCount()),o.stop(),console.log(`tokenization took ${o.elapsed()}`)}}un(M8o);const EAe=class EAe extends zu{constructor(){super({id:EAe.ID,title:_t(1530,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:_t(1531,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const n=!tV.getTabFocusMode();tV.setTabFocusMode(n),um(n?U(1528,"Pressing Tab will now move focus to the next focusable element"):U(1529,"Pressing Tab will now insert the tab character"))}};EAe.ID="editor.action.toggleTabFocusMode";let Aze=EAe;ys(Aze);class qnt{static computeUnicodeHighlights(t,n,r){const o=r?r.startLineNumber:1,s=r?r.endLineNumber:t.getLineCount(),a=new c_t(n),l=a.getCandidateCodePoints();let d;l==="allNonBasicAscii"?d=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):d=new RegExp(`${P8o(Array.from(l))}`,"g");const u=new AN(null,d),h=[];let g=!1,m,v=0,f=0,k=0;e:for(let A=o,p=s;A<=p;A++){const b=t.getLineContent(A),w=b.length;u.reset(0);do if(m=u.next(b),m){let O=m.index,y=m.index+m[0].length;if(O>0){const L=b.charCodeAt(O-1);Id(L)&&O--}if(y+1=1e3){g=!0;break e}h.push(new Ee(A,O+1,A,y+1))}}while(m)}return{ranges:h,hasMore:g,ambiguousCharacterCount:v,invisibleCharacterCount:f,nonBasicAsciiCharacterCount:k}}static computeUnicodeHighlightReason(t,n){const r=new c_t(n);switch(r.shouldHighlightNonBasicASCII(t,null)){case 0:return null;case 2:return{kind:1};case 3:{const s=t.codePointAt(0),a=r.ambiguousCharacters.getPrimaryConfusable(s),l=WK.getLocales().filter(d=>!WK.getInstance(new Set([...n.allowedLocales,d])).isAmbiguous(s));return{kind:0,confusableWith:String.fromCodePoint(a),notAmbiguousInLocales:l}}case 1:return{kind:2}}}}function P8o(e,t){return`[${M0(e.map(r=>String.fromCodePoint(r)).join(""))}]`}class c_t{constructor(t){this.options=t,this.allowedCodePoints=new Set(t.allowedCodePoints),this.ambiguousCharacters=WK.getInstance(new Set(t.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const t=new Set;if(this.options.invisibleCharacters)for(const n of aD.codePoints)d_t(String.fromCodePoint(n))||t.add(n);if(this.options.ambiguousCharacters)for(const n of this.ambiguousCharacters.getConfusableCodePoints())t.add(n);for(const n of this.allowedCodePoints)t.delete(n);return t}shouldHighlightNonBasicASCII(t,n){const r=t.codePointAt(0);if(this.allowedCodePoints.has(r))return 0;if(this.options.nonBasicASCII)return 1;let o=!1,s=!1;if(n)for(const a of n){const l=a.codePointAt(0),d=Sie(a);o=o||d,!d&&!this.ambiguousCharacters.isAmbiguous(l)&&!aD.isInvisibleCharacter(l)&&(s=!0)}return!o&&s?0:this.options.invisibleCharacters&&!d_t(t)&&aD.isInvisibleCharacter(r)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(r)?3:0}}function d_t(e){return e===" "||e===` +`)};const a=await s.provideRenameEdits(this.model,this.position,t,o);if(a){if(a.rejectReason)return this._provideRenameEdits(t,n+1,r.concat(a.rejectReason),o)}else return this._provideRenameEdits(t,n+1,r.concat(U(1380,"No result.")),o);return a}}async function a8o(e,t,n,r){const o=new $nt(t,n,e),s=await o.resolveRenameLocation(Er.None);return s!=null&&s.rejectReason?{edits:[],rejectReason:s.rejectReason}:o.provideRenameEdits(r,Er.None)}var vB;let I6=(vB=class{static get(t){return t.getContribution(lze.ID)}constructor(t,n,r,o,s,a,l,d){this.editor=t,this._instaService=n,this._notificationService=r,this._bulkEditService=o,this._progressService=s,this._logService=a,this._configService=l,this._languageFeaturesService=d,this._disposableStore=new xt,this._cts=new ja,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(aze,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var f,k;const t=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new ja,!this.editor.hasModel()){t("editor has no model");return}const n=this.editor.getPosition(),r=new $nt(this.editor.getModel(),n,this._languageFeaturesService.renameProvider);if(!r.hasProvider()){t("skeleton has no provider");return}const o=new z8(this.editor,5,void 0,this._cts.token);let s;try{t("resolving rename location");const A=r.resolveRenameLocation(o.token);this._progressService.showWhile(A,250),s=await A,t("resolved rename location")}catch(A){A instanceof lA?t("resolve rename location cancelled",JSON.stringify(A,null," ")):(t("resolve rename location failed",A instanceof Error?A:JSON.stringify(A,null," ")),(typeof A=="string"||i8(A))&&((f=D0.get(this.editor))==null||f.showMessage(A||U(1381,"An unknown error occurred while resolving rename location"),n)));return}finally{o.dispose()}if(!s){t("returning early - no loc");return}if(s.rejectReason){t(`returning early - rejected with reason: ${s.rejectReason}`,s.rejectReason),(k=D0.get(this.editor))==null||k.showMessage(s.rejectReason,n);return}if(o.token.isCancellationRequested){t("returning early - cts1 cancelled");return}const a=new z8(this.editor,5,s.range,this._cts.token),l=this.editor.getModel(),d=this._languageFeaturesService.newSymbolNamesProvider.all(l),u=await Promise.all(d.map(async A=>[A,await A.supportsAutomaticNewSymbolNamesTriggerKind??!1])),h=(A,p)=>{let b=u.slice();return A===fJ.Automatic&&(b=b.filter(([w,O])=>O)),b.map(([w])=>w.provideNewSymbolNames(l,s.range,A,p))};t("creating rename input field and awaiting its result");const g=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),m=await this._renameWidget.getInput(s.range,s.text,g,d.length>0?h:void 0,a);if(t("received response from rename input field"),typeof m=="boolean"){t(`returning early - rename input field response - ${m}`),m&&this.editor.focus(),a.dispose();return}this.editor.focus(),t("requesting rename edits");const v=YW(r.provideRenameEdits(m.newName,a.token),a.token).then(async A=>{if(!A){t("returning early - no rename edits result");return}if(!this.editor.hasModel()){t("returning early - no model after rename edits are provided");return}if(A.rejectReason){t(`returning early - rejected with reason: ${A.rejectReason}`),this._notificationService.info(A.rejectReason);return}this.editor.setSelection(Ee.fromPositions(this.editor.getSelection().getPosition())),t("applying edits"),this._bulkEditService.apply(A,{editor:this.editor,showPreview:m.wantsPreview,label:U(1382,"Renaming '{0}' to '{1}'",s==null?void 0:s.text,m.newName),code:"undoredo.rename",quotableLabel:U(1383,"Renaming {0} to {1}",s==null?void 0:s.text,m.newName),respectAutoSaveConfig:!0,reason:Af.rename()}).then(p=>{t("edits applied"),p.ariaSummary&&um(U(1384,"Successfully renamed '{0}' to '{1}'. Summary: {2}",s.text,m.newName,p.ariaSummary))}).catch(p=>{t(`error when applying edits ${JSON.stringify(p,null," ")}`),this._notificationService.error(U(1385,"Rename failed to apply edits")),this._logService.error(p)})},A=>{t("error when providing rename edits",JSON.stringify(A,null," ")),this._notificationService.error(U(1386,"Rename failed to compute edits")),this._logService.error(A)}).finally(()=>{a.dispose()});return t("returning rename operation"),this._progressService.showWhile(v,250),v}acceptRenameInput(t){this._renameWidget.acceptInput(t)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}},lze=vB,vB.ID="editor.contrib.renameController",vB);I6=lze=s8o([_7(1,Yn),_7(2,ic),_7(3,Yie),_7(4,V8),_7(5,va),_7(6,W3e),_7(7,Nn)],I6);class l8o extends Bn{constructor(){super({id:"editor.action.rename",label:_t(1388,"Rename Symbol"),precondition:Ft.and($e.writable,$e.hasRenameProvider),kbOpts:{kbExpr:$e.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(t,n){const r=t.get(yo),[o,s]=Array.isArray(n)&&n||[void 0,void 0];return vi.isUri(o)&&it.isIPosition(s)?r.openCodeEditor({resource:o},r.getActiveCodeEditor()).then(a=>{a&&(a.setPosition(s),a.invokeWithinContext(l=>(this.reportTelemetry(l,a),this.run(l,a))))},zi):super.runCommand(t,n)}run(t,n){const r=t.get(va),o=I6.get(n);return o?(r.trace("[RenameAction] got controller, running..."),o.run()):(r.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}mo(I6.ID,I6,4);un(l8o);const Xnt=$d.bindToContribution(I6.get);On(new Xnt({id:"acceptRenameInput",precondition:fH,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:Ft.and($e.focus,Ft.not("isComposing")),primary:3}}));On(new Xnt({id:"acceptRenameInputWithPreview",precondition:Ft.and(fH,Ft.has("config.editor.rename.enablePreview")),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:Ft.and($e.focus,Ft.not("isComposing")),primary:2051}}));On(new Xnt({id:"cancelRenameInput",precondition:fH,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:$e.focus,primary:9,secondary:[1033]}}));ys(class extends zu{constructor(){super({id:"focusNextRenameSuggestion",title:{..._t(1389,"Focus Next Rename Suggestion")},precondition:fH,keybinding:[{primary:18,weight:199}]})}run(t){const n=t.get(yo).getFocusedCodeEditor();if(!n)return;const r=I6.get(n);r&&r.focusNextRenameSuggestion()}});ys(class extends zu{constructor(){super({id:"focusPreviousRenameSuggestion",title:{..._t(1390,"Focus Previous Rename Suggestion")},precondition:fH,keybinding:[{primary:16,weight:199}]})}run(t){const n=t.get(yo).getFocusedCodeEditor();if(!n)return;const r=I6.get(n);r&&r.focusPreviousRenameSuggestion()}});_1("_executeDocumentRenameProvider",function(e,t,n,...r){const[o]=r;Oo(typeof o=="string");const{renameProvider:s}=e.get(Nn);return a8o(s,t,n,o)});_1("_executePrepareRename",async function(e,t,n){const{renameProvider:r}=e.get(Nn),s=await new $nt(t,n,r).resolveRenameLocation(Er.None);if(s!=null&&s.rejectReason)throw new Error(s.rejectReason);return s});Ql.as(F3.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:U(1387,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var c8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},a_t=function(e,t){return function(n,r){t(n,r,e)}},Zj;let nke=(Zj=class extends ft{constructor(t,n,r){super(),this.editor=t,this.languageConfigurationService=n,this.editorWorkerService=r,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(t.getOption(81)),this.computePromise=null,this.currentOccurrences={},this._register(t.onDidChangeModel(o=>{this.currentOccurrences={},this.options=this.createOptions(t.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChangeModelLanguage(o=>{this.currentOccurrences={},this.options=this.createOptions(t.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(n.onDidChange(o=>{var a;const s=(a=this.editor.getModel())==null?void 0:a.getLanguageId();s&&o.affects(s)&&(this.currentOccurrences={},this.options=this.createOptions(t.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(t.onDidChangeConfiguration(o=>{this.options&&!o.hasChanged(81)||(this.options=this.createOptions(t.getOption(81)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(o=>{this.computeSectionHeaders.schedule()})),this._register(t.onDidChangeModelTokens(o=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new Es(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(t){if(!t||!this.editor.hasModel())return;const n=this.editor.getModel().getLanguageId();if(!n)return;const r=this.languageConfigurationService.getLanguageConfiguration(n).comments,o=this.languageConfigurationService.getLanguageConfiguration(n).foldingRules;if(!(!r&&!(o!=null&&o.markers)))return{foldingRules:o,markSectionHeaderRegex:t.markSectionHeaderRegex,findMarkSectionHeaders:t.showMarkSectionHeaders,findRegionSectionHeaders:t.showRegionSectionHeaders}}findSectionHeaders(){var r,o;if(!this.editor.hasModel()||!((r=this.options)!=null&&r.findMarkSectionHeaders)&&!((o=this.options)!=null&&o.findRegionSectionHeaders))return;const t=this.editor.getModel();if(t.isDisposed()||t.isTooLargeForSyncing())return;const n=t.getVersionId();this.editorWorkerService.findSectionHeaders(t.uri,this.options).then(s=>{t.isDisposed()||t.getVersionId()!==n||this.updateDecorations(s)})}updateDecorations(t){const n=this.editor.getModel();n&&(t=t.filter(s=>{if(!s.shouldBeInComments)return!0;const a=n.validateRange(s.range),l=n.tokenization.getLineTokens(a.startLineNumber),d=l.findTokenIndexAtOffset(a.startColumn-1),u=l.getStandardTokenType(d);return l.getLanguageId(d)===n.getLanguageId()&&u===1}));const r=Object.values(this.currentOccurrences).map(s=>s.decorationId),o=t.map(s=>d8o(s));this.editor.changeDecorations(s=>{const a=s.deltaDecorations(r,o);this.currentOccurrences={};for(let l=0,d=a.length;l=this._minimumTimeBetweenRuns&&(this._lastRun=n,t())}}class VZ{static create(t,n){return new VZ(t,new cze(n))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(t,n){this._startLineNumber=t,this._tokens=n,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(t){return this._startLineNumber<=t&&t<=this._endLineNumber?this._tokens.getLineTokens(t-this._startLineNumber):null}getRange(){const t=this._tokens.getRange();return t&&new Ee(this._startLineNumber+t.startLineNumber,t.startColumn,this._startLineNumber+t.endLineNumber,t.endColumn)}removeTokens(t){const n=t.startLineNumber-this._startLineNumber,r=t.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(n,t.startColumn-1,r,t.endColumn-1),this._updateEndLineNumber()}split(t){const n=t.startLineNumber-this._startLineNumber,r=t.endLineNumber-this._startLineNumber,[o,s,a]=this._tokens.split(n,t.startColumn-1,r,t.endColumn-1);return[new VZ(this._startLineNumber,o),new VZ(this._startLineNumber+a,s)]}applyEdit(t,n){const[r,o,s]=x6(n);this.acceptEdit(t,r,o,s,n.length>0?n.charCodeAt(0):0)}acceptEdit(t,n,r,o,s){this._acceptDeleteRange(t),this._acceptInsertText(new it(t.startLineNumber,t.startColumn),n,r,o,s),this._updateEndLineNumber()}_acceptDeleteRange(t){if(t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn)return;const n=t.startLineNumber-this._startLineNumber,r=t.endLineNumber-this._startLineNumber;if(r<0){const s=r-n;this._startLineNumber-=s;return}const o=this._tokens.getMaxDeltaLine();if(!(n>=o+1)){if(n<0&&r>=o+1){this._startLineNumber=0,this._tokens.clear();return}if(n<0){const s=-n;this._startLineNumber-=s,this._tokens.acceptDeleteRange(t.startColumn-1,0,0,r,t.endColumn-1)}else this._tokens.acceptDeleteRange(0,n,t.startColumn-1,r,t.endColumn-1)}}_acceptInsertText(t,n,r,o,s){if(n===0&&r===0)return;const a=t.lineNumber-this._startLineNumber;if(a<0){this._startLineNumber+=n;return}const l=this._tokens.getMaxDeltaLine();a>=l+1||this._tokens.acceptInsertText(a,t.column-1,n,r,o,s)}reportIfInvalid(t){this._tokens.reportIfInvalid(t,this._startLineNumber)}}const C5=class C5{constructor(t){this._tokens=t,this._tokenCount=t.length/4}toString(t){const n=[];for(let r=0;rt)r=o-1;else{let a=o;for(;a>n&&this._getDeltaLine(a-1)===t;)a--;let l=o;for(;lt||m===t&&f>=n)&&(mt||f===t&&A>=n){if(fs?k-=s-r:k=r;else if(v===n&&f===r)if(v===o&&k>s)k-=s-r;else{h=!0;continue}else if(vs)v=n,f=r,k=f+(k-s);else{h=!0;continue}else if(v>o){if(d===0&&!h){u=l;break}v-=d}else if(v===o&&f>=s)t&&v===0&&(f+=t,k+=t),v-=d,f-=s-r,k-=s-r;else throw new Error("Not possible!");const p=4*u;a[p]=v,a[p+1]=f,a[p+2]=k,a[p+3]=A,u++}this._tokenCount=u}acceptInsertText(t,n,r,o,s,a){const l=r===0&&o===1&&(a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122),d=this._tokens,u=this._tokenCount;for(let h=0;h{console.error("Invalid Semantic Tokens Data From Extension: lineNumber < 1")}):o>t.getLineCount()?C5._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: lineNumber > model.getLineCount()")}):this._getEndCharacter(r)>t.getLineLength(o)&&C5._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: end character > model.getLineLength(lineNumber)")})}}};C5._rateLimiter=new u8o(10/60);let cze=C5;class l_t{constructor(t){this._tokens=t}getCount(){return this._tokens.length/4}getStartCharacter(t){return this._tokens[4*t+1]}getEndCharacter(t){return this._tokens[4*t+2]}getMetadata(t){return this._tokens[4*t+3]}}var h8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Hxe=function(e,t){return function(n,r){t(n,r,e)}};let dze=class{constructor(t,n,r,o){this._legend=t,this._themeService=n,this._languageService=r,this._logService=o,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new uze}getMetadata(t,n,r){const o=this._languageService.languageIdCodec.encodeLanguageId(r),s=this._hashTable.get(t,n,o);let a;if(s)a=s.metadata;else{let l=this._legend.tokenTypes[t];const d=[];if(l){let u=n;for(let g=0;u>0&&g>1;const h=this._themeService.getColorTheme().getTokenStyleMetadata(l,d,r);if(typeof h>"u")a=2147483647;else{if(a=0,typeof h.italic<"u"){const g=(h.italic?1:0)<<11;a|=g|1}if(typeof h.bold<"u"){const g=(h.bold?2:0)<<11;a|=g|2}if(typeof h.underline<"u"){const g=(h.underline?4:0)<<11;a|=g|4}if(typeof h.strikethrough<"u"){const g=(h.strikethrough?8:0)<<11;a|=g|8}if(h.foreground){const g=h.foreground<<15;a|=g|16}a===0&&(a=2147483647)}}else a=2147483647,l="not-in-legend";this._hashTable.add(t,n,o,a)}return a}warnOverlappingSemanticTokens(t,n){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${t}, column ${n}`))}warnInvalidLengthSemanticTokens(t,n){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${t}, column ${n}`))}warnInvalidEditStart(t,n,r,o,s){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${t}, resultId: ${n}) at edit #${r}: The provided start offset ${o} is outside the previous data (length ${s}).`))}};dze=h8o([Hxe(1,Dl),Hxe(2,nc),Hxe(3,va)],dze);function BIn(e,t,n){const r=e.data,o=e.data.length/5|0,s=Math.max(Math.ceil(o/1024),400),a=[];let l=0,d=1,u=0;for(;lh&&r[5*b]===0;)b--;if(b-1===h){let w=g;for(;w+1C)t.warnOverlappingSemanticTokens(y,C+1);else{const T=t.getMetadata(L,E,n);T!==2147483647&&(f===0&&(f=y),m[v]=y-f,m[v+1]=C,m[v+2]=S,m[v+3]=T,v+=4,k=y,A=S)}d=y,u=C,l++}v!==m.length&&(m=m.subarray(0,v));const p=VZ.create(f,m);a.push(p)}return a}class f8o{constructor(t,n,r,o){this.tokenTypeIndex=t,this.tokenModifierSet=n,this.languageId=r,this.metadata=o,this.next=null}}const Y_=class Y_{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=Y_._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const s=this._elements;this._currentLengthIndex++,this._currentLength=Y_._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+10?n[0]:[]}async function PIn(e,t,n,r,o){const s=A8o(e,t),a=await Promise.all(s.map(async l=>{let d,u=null;try{d=await l.provideDocumentSemanticTokens(t,l===n?r:null,o)}catch(h){u=h,d=null}return(!d||!z3e(d)&&!IIn(d))&&(d=null),new v8o(l,d,u)}));for(const l of a){if(l.error)throw l.error;if(l.tokens)return l}return a.length>0?a[0]:null}function p8o(e,t){const n=e.orderedGroups(t);return n.length>0?n[0]:null}class b8o{constructor(t,n){this.provider=t,this.tokens=n}}function w8o(e,t){return e.has(t)}function FIn(e,t){const n=e.orderedGroups(t);return n.length>0?n[0]:[]}async function Gnt(e,t,n,r){const o=FIn(e,t),s=await Promise.all(o.map(async a=>{let l;try{l=await a.provideDocumentRangeSemanticTokens(t,n,r)}catch(d){Nc(d),l=null}return(!l||!z3e(l))&&(l=null),new b8o(a,l)}));for(const a of s)if(a.tokens)return a;return s.length>0?s[0]:null}uo.registerCommand("_provideDocumentSemanticTokensLegend",async(e,...t)=>{const[n]=t;Oo(n instanceof vi);const r=e.get(ml).getModel(n);if(!r)return;const{documentSemanticTokensProvider:o}=e.get(Nn),s=p8o(o,r);return s?s[0].getLegend():e.get(ba).executeCommand("_provideDocumentRangeSemanticTokensLegend",n)});uo.registerCommand("_provideDocumentSemanticTokens",async(e,...t)=>{const[n]=t;Oo(n instanceof vi);const r=e.get(ml).getModel(n);if(!r)return;const{documentSemanticTokensProvider:o}=e.get(Nn);if(!MIn(o,r))return e.get(ba).executeCommand("_provideDocumentRangeSemanticTokens",n,r.getFullModelRange());const s=await PIn(o,r,null,null,Er.None);if(!s)return;const{provider:a,tokens:l}=s;if(!l||!z3e(l))return;const d=RIn({id:0,type:"full",data:l.data});return l.resultId&&a.releaseDocumentSemanticTokens(l.resultId),d});uo.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(e,...t)=>{const[n,r]=t;Oo(n instanceof vi);const o=e.get(ml).getModel(n);if(!o)return;const{documentRangeSemanticTokensProvider:s}=e.get(Nn),a=FIn(s,o);if(a.length===0)return;if(a.length===1)return a[0].getLegend();if(!r||!Ee.isIRange(r))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),a[0].getLegend();const l=await Gnt(s,o,Ee.lift(r),Er.None);if(l)return l.provider.getLegend()});uo.registerCommand("_provideDocumentRangeSemanticTokens",async(e,...t)=>{const[n,r]=t;Oo(n instanceof vi),Oo(Ee.isIRange(r));const o=e.get(ml).getModel(n);if(!o)return;const{documentRangeSemanticTokensProvider:s}=e.get(Nn),a=await Gnt(s,o,Ee.lift(r),Er.None);if(!(!a||!a.tokens))return RIn({id:0,type:"full",data:a.tokens.data})});const Ynt="editor.semanticHighlighting";function She(e,t,n){var o;const r=(o=n.getValue(Ynt,{overrideIdentifier:e.getLanguageId(),resource:e.uri}))==null?void 0:o.enabled;return typeof r=="boolean"?r:t.getColorTheme().semanticHighlighting}var NIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gO=function(e,t){return function(n,r){t(n,r,e)}},zx;let hze=class extends ft{constructor(t,n,r,o,s,a){super(),this._watchers=new _c;const l=h=>{var g;(g=this._watchers.get(h.uri))==null||g.dispose(),this._watchers.set(h.uri,new fze(h,t,r,s,a))},d=(h,g)=>{g.dispose(),this._watchers.delete(h.uri)},u=()=>{for(const h of n.getModels()){const g=this._watchers.get(h.uri);She(h,r,o)?g||l(h):g&&d(h,g)}};n.getModels().forEach(h=>{She(h,r,o)&&l(h)}),this._register(n.onModelAdded(h=>{She(h,r,o)&&l(h)})),this._register(n.onModelRemoved(h=>{const g=this._watchers.get(h.uri);g&&d(h,g)})),this._register(o.onDidChangeConfiguration(h=>{h.affectsConfiguration(Ynt)&&u()})),this._register(r.onDidColorThemeChange(u))}dispose(){us(this._watchers.values()),this._watchers.clear(),super.dispose()}};hze=NIn([gO(0,V3e),gO(1,ml),gO(2,Dl),gO(3,ar),gO(4,CA),gO(5,Nn)],hze);var l6;let fze=(l6=class extends ft{constructor(t,n,r,o,s){super(),this._semanticTokensStylingService=n,this._isDisposed=!1,this._model=t,this._provider=s.documentSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentSemanticTokens",{min:zx.REQUEST_MIN_DELAY,max:zx.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Es(()=>this._fetchDocumentSemanticTokensNow(),zx.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const a=()=>{us(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const l of this._provider.all(t))typeof l.onDidChange=="function"&&this._documentProvidersChangeListeners.push(l.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};a(),this._register(this._provider.onDidChange(()=>{a(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(r.onDidColorThemeChange(l=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),us(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!MIn(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const t=new ja,n=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,r=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,o=PIn(this._provider,this._model,n,r,t.token);this._currentDocumentRequestCancellationTokenSource=t,this._providersChangedDuringRequest=!1;const s=[],a=this._model.onDidChangeContent(d=>{s.push(d)}),l=new vu(!1);o.then(d=>{if(this._debounceInformation.update(this._model,l.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,a.dispose(),!d)this._setDocumentSemanticTokens(null,null,null,s);else{const{provider:u,tokens:h}=d,g=this._semanticTokensStylingService.getStyling(u);this._setDocumentSemanticTokens(u,h||null,g,s)}},d=>{d&&(C2(d)||typeof d.message=="string"&&d.message.indexOf("busy")!==-1)||zi(d),this._currentDocumentRequestCancellationTokenSource=null,a.dispose(),(s.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(t,n,r,o,s){s=Math.min(s,r.length-o,t.length-n);for(let a=0;a{(o.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){t&&n&&t.releaseDocumentSemanticTokens(n.resultId);return}if(!t||!r){this._model.tokenization.setSemanticTokens(null,!1);return}if(!n){this._model.tokenization.setSemanticTokens(null,!0),a();return}if(IIn(n)){if(!s){this._model.tokenization.setSemanticTokens(null,!0);return}if(n.edits.length===0)n={resultId:n.resultId,data:s.data};else{let l=0;for(const m of n.edits)l+=(m.data?m.data.length:0)-m.deleteCount;const d=s.data,u=new Uint32Array(d.length+l);let h=d.length,g=u.length;for(let m=n.edits.length-1;m>=0;m--){const v=n.edits[m];if(v.start>d.length){r.warnInvalidEditStart(s.resultId,n.resultId,m,v.start,d.length),this._model.tokenization.setSemanticTokens(null,!0);return}const f=h-(v.start+v.deleteCount);f>0&&(zx._copy(d,h-f,u,g-f,f),g-=f),v.data&&(zx._copy(v.data,0,u,g-v.data.length,v.data.length),g-=v.data.length),h=v.start}h>0&&zx._copy(d,0,u,0,h),n={resultId:n.resultId,data:u}}}if(z3e(n)){this._currentDocumentResponse=new O8o(t,n.resultId,n.data);const l=BIn(n,r,this._model.getLanguageId());if(o.length>0)for(const d of o)for(const u of l)for(const h of d.changes)u.applyEdit(h.range,h.text);this._model.tokenization.setSemanticTokens(l,!0)}else this._model.tokenization.setSemanticTokens(null,!0);a()}},zx=l6,l6.REQUEST_MIN_DELAY=300,l6.REQUEST_MAX_DELAY=2e3,l6);fze=zx=NIn([gO(1,V3e),gO(2,Dl),gO(3,CA),gO(4,Nn)],fze);class O8o{constructor(t,n,r){this.provider=t,this.resultId=n,this.data=r}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}dH(hze);var y8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},RX=function(e,t){return function(n,r){t(n,r,e)}},qj;let ike=(qj=class extends ft{constructor(t,n,r,o,s,a){super(),this._semanticTokensStylingService=n,this._themeService=r,this._configurationService=o,this._editor=t,this._provider=a.documentRangeSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new Es(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[],this._rangeProvidersChangeListeners=[];const l=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))},d=()=>{var u;if(this._cleanupProviderListeners(),this._editor.hasModel()){const h=this._editor.getModel();for(const g of this._provider.all(h)){const m=(u=g.onDidChange)==null?void 0:u.call(g,()=>{this._cancelAll(),l()});m&&this._rangeProvidersChangeListeners.push(m)}}};this._register(this._editor.onDidScrollChange(()=>{l()})),this._register(this._editor.onDidChangeModel(()=>{d(),this._cancelAll(),l()})),this._register(this._editor.onDidChangeModelLanguage(()=>{d(),this._cancelAll(),l()})),this._register(this._editor.onDidChangeModelContent(u=>{this._cancelAll(),l()})),d(),this._register(this._provider.onDidChange(()=>{d(),this._cancelAll(),l()})),this._register(this._configurationService.onDidChangeConfiguration(u=>{u.affectsConfiguration(Ynt)&&(this._cancelAll(),l())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),l()})),l()}dispose(){this._cleanupProviderListeners(),super.dispose()}_cleanupProviderListeners(){us(this._rangeProvidersChangeListeners),this._rangeProvidersChangeListeners=[]}_cancelAll(){for(const t of this._outstandingRequests)t.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(t){for(let n=0,r=this._outstandingRequests.length;nthis._requestRange(t,r)))}_requestRange(t,n){const r=t.getVersionId(),o=Fd(a=>Promise.resolve(Gnt(this._provider,t,n,a))),s=new vu(!1);return o.then(a=>{if(this._debounceInformation.update(t,s.elapsed()),!a||!a.tokens||t.isDisposed()||t.getVersionId()!==r)return;const{provider:l,tokens:d}=a,u=this._semanticTokensStylingService.getStyling(l);t.tokenization.setPartialSemanticTokens(n,BIn(d,u,t.getLanguageId()))}).then(()=>this._removeOutstandingRequest(o),()=>this._removeOutstandingRequest(o)),o}},qj.ID="editor.contrib.viewportSemanticTokens",qj);ike=y8o([RX(1,V3e),RX(2,Dl),RX(3,ar),RX(4,CA),RX(5,Nn)],ike);mo(ike.ID,ike,1);class C8o{constructor(t=!0){this.selectSubwords=t}provideSelectionRanges(t,n){const r=[];for(const o of n){const s=[];r.push(s),this.selectSubwords&&this._addInWordRanges(s,t,o),this._addWordRanges(s,t,o),this._addWhitespaceLine(s,t,o),s.push({range:t.getFullModelRange()})}return r}_addInWordRanges(t,n,r){const o=n.getWordAtPosition(r);if(!o)return;const{word:s,startColumn:a}=o,l=r.column-a;let d=l,u=l,h=0;for(;d>=0;d--){const g=s.charCodeAt(d);if(d!==l&&(g===95||g===45))break;if(l9(g)&&dO(h))break;h=g}for(d+=1;u0&&n.getLineFirstNonWhitespaceColumn(r.lineNumber)===0&&n.getLineLastNonWhitespaceColumn(r.lineNumber)===0&&t.push({range:new Ee(r.lineNumber,1,r.lineNumber,n.getLineMaxColumn(r.lineNumber))})}}var _8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},S8o=function(e,t){return function(n,r){t(n,r,e)}},gze;class Znt{constructor(t,n){this.index=t,this.ranges=n}mov(t){const n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;const r=new Znt(n,this.ranges);return r.ranges[n].equalsRange(this.ranges[this.index])?r.mov(t):r}}var AB;let uee=(AB=class{static get(t){return t.getContribution(gze.ID)}constructor(t,n){this._editor=t,this._languageFeaturesService=n,this._ignoreSelection=!1}dispose(){var t;(t=this._selectionListener)==null||t.dispose()}async run(t){if(!this._editor.hasModel())return;const n=this._editor.getSelections(),r=this._editor.getModel();if(this._state||await jIn(this._languageFeaturesService.selectionRangeProvider,r,n.map(s=>s.getPosition()),this._editor.getOption(129),Er.None).then(s=>{var a;if(!(!yg(s)||s.length!==n.length)&&!(!this._editor.hasModel()||!Na(this._editor.getSelections(),n,(l,d)=>l.equalsSelection(d)))){for(let l=0;ld.containsPosition(n[l].getStartPosition())&&d.containsPosition(n[l].getEndPosition())),s[l].unshift(n[l]);this._state=s.map(l=>new Znt(0,l)),(a=this._selectionListener)==null||a.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var l;this._ignoreSelection||((l=this._selectionListener)==null||l.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(s=>s.mov(t));const o=this._state.map(s=>Qn.fromPositions(s.ranges[s.index].getStartPosition(),s.ranges[s.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(o)}finally{this._ignoreSelection=!1}}},gze=AB,AB.ID="editor.contrib.smartSelectController",AB);uee=gze=_8o([S8o(1,Nn)],uee);class UIn extends Bn{constructor(t,n){super(n),this._forward=t}async run(t,n){const r=uee.get(n);r&&await r.run(this._forward)}}class L8o extends UIn{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:_t(1400,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"1_basic",title:U(1398,"&&Expand Selection"),order:2}})}}uo.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class x8o extends UIn{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:_t(1401,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:Wn.MenubarSelectionMenu,group:"1_basic",title:U(1399,"&&Shrink Selection"),order:3}})}}mo(uee.ID,uee,4);un(L8o);un(x8o);async function jIn(e,t,n,r,o){const s=e.all(t).concat(new C8o(r.selectSubwords));s.length===1&&s.unshift(new j0e);const a=[],l=[];for(const d of s)a.push(Promise.resolve(d.provideSelectionRanges(t,n,o)).then(u=>{if(yg(u)&&u.length===n.length)for(let h=0;h{if(d.length===0)return[];d.sort((m,v)=>it.isBefore(m.getStartPosition(),v.getStartPosition())?1:it.isBefore(v.getStartPosition(),m.getStartPosition())||it.isBefore(m.getEndPosition(),v.getEndPosition())?-1:it.isBefore(v.getEndPosition(),m.getEndPosition())?1:0);const u=[];let h;for(const m of d)(!h||Ee.containsRange(m,h)&&!Ee.equalsRange(m,h))&&(u.push(m),h=m);if(!r.selectLeadingAndTrailingWhitespace)return u;const g=[u[0]];for(let m=1;mit.isIPosition(a)));const o=e.get(Nn).selectionRangeProvider,s=await e.get(Dg).createModelReference(n);try{return jIn(o,s.object.textEditorModel,r.map(it.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},Er.None)}finally{s.dispose()}});const mze=Object.freeze({View:_t(1638,"View"),Help:_t(1639,"Help"),Test:_t(1640,"Test"),File:_t(1641,"File"),Preferences:_t(1642,"Preferences"),Developer:_t(1643,"Developer")});class E8o extends Op{constructor(){super({id:"editor.action.toggleStickyScroll",title:{..._t(1448,"Toggle Editor Sticky Scroll"),mnemonicTitle:U(1444,"&&Toggle Editor Sticky Scroll")},metadata:{description:_t(1449,"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:mze.View,toggled:{condition:Ft.equals("config.editor.stickyScroll.enabled",!0),title:U(1445,"Sticky Scroll"),mnemonicTitle:U(1446,"&&Sticky Scroll")},menu:[{id:Wn.CommandPalette},{id:Wn.MenubarAppearanceMenu,group:"4_editor",order:3},{id:Wn.StickyScrollContext}]})}async runEditorCommand(t,n){var a;const r=t.get(ar),o=!r.getValue("editor.stickyScroll.enabled"),s=(a=fp.get(n))==null?void 0:a.isFocused();r.updateValue("editor.stickyScroll.enabled",o),s&&n.focus()}}const H3e=100;class T8o extends Op{constructor(){super({id:"editor.action.focusStickyScroll",title:{..._t(1450,"Focus Editor Sticky Scroll"),mnemonicTitle:U(1447,"&&Focus Editor Sticky Scroll")},precondition:Ft.and(Ft.has("config.editor.stickyScroll.enabled"),$e.stickyScrollVisible),menu:[{id:Wn.CommandPalette}]})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.focus()}}class Q8o extends Op{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:_t(1451,"Select the next editor sticky scroll line"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:18}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.focusNext()}}class D8o extends Op{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:_t(1452,"Select the previous sticky scroll line"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:16}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.focusPrevious()}}class B8o extends Op{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:_t(1453,"Go to the focused sticky scroll line"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:3}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.goToFocused()}}class R8o extends Op{constructor(){super({id:"editor.action.selectEditor",title:_t(1454,"Select Editor"),precondition:$e.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:H3e,primary:9}})}runEditorCommand(t,n){var r;(r=fp.get(n))==null||r.selectEditor()}}mo(fp.ID,fp,1);ys(E8o);ys(T8o);ys(D8o);ys(Q8o);ys(B8o);ys(R8o);var WIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},YG=function(e,t){return function(n,r){t(n,r,e)}};class I8o{constructor(t,n,r,o,s,a,l){this.range=t,this.insertText=n,this.filterText=r,this.additionalTextEdits=o,this.command=s,this.gutterMenuLinkAction=a,this.completion=l}}let kze=class extends GJr{constructor(t,n,r,o,s,a){super(s.disposable),this.model=t,this.line=n,this.word=r,this.completionModel=o,this._suggestMemoryService=a}canBeReused(t,n,r){return this.model===t&&this.line===n&&this.word.word.length>0&&this.word.startColumn===r.startColumn&&this.word.endColumn=0&&l.resolve(Er.None)}return t}};kze=WIn([YG(5,N3e)],kze);let vze=class extends ft{constructor(t,n,r,o){super(),this._languageFeatureService=t,this._clipboardService=n,this._suggestMemoryService=r,this._editorService=o,this._store.add(t.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(t,n,r,o){var v;if(r.selectedSuggestionInfo)return;let s;for(const f of this._editorService.listCodeEditors())if(f.getModel()===t){s=f;break}if(!s)return;const a=s.getOption(102);if(CN.isAllOff(a))return;t.tokenization.tokenizeIfCheap(n.lineNumber);const l=t.tokenization.getLineTokens(n.lineNumber),d=l.getStandardTokenType(l.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(CN.valueFor(a,d)!=="inline")return;let u=t.getWordAtPosition(n),h;if(u!=null&&u.word||(h=this._getTriggerCharacterInfo(t,n)),!(u!=null&&u.word)&&!h||(u||(u=t.getWordUntilPosition(n)),u.endColumn!==n.column))return;let g;const m=t.getValueInRange(new Ee(n.lineNumber,1,n.lineNumber,n.column));if(!h&&((v=this._lastResult)!=null&&v.canBeReused(t,n.lineNumber,u))){const f=new DCt(m,n.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=f,this._lastResult.acquire(),g=this._lastResult}else{const f=await Bnt(this._languageFeatureService.completionProvider,t,n,new JJ(void 0,V0e.createSuggestFilter(s).itemKind,h==null?void 0:h.providers),h&&{triggerKind:1,triggerCharacter:h.ch},o);let k;f.needsClipboard&&(k=await this._clipboardService.readText());const A=new D5(f.items,n.column,new DCt(m,0),W0e.None,s.getOption(134),s.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},k);g=new kze(t,n.lineNumber,u,A,f,this._suggestMemoryService)}return this._lastResult=g,g}handleItemDidShow(t,n){n.completion.resolve(Er.None)}disposeInlineCompletions(t){t.release()}_getTriggerCharacterInfo(t,n){var s;const r=t.getValueInRange(Ee.fromPositions({lineNumber:n.lineNumber,column:n.column-1},n)),o=new Set;for(const a of this._languageFeatureService.completionProvider.all(t))(s=a.triggerCharacters)!=null&&s.includes(r)&&o.add(a);if(o.size!==0)return{providers:o,ch:r}}};vze=WIn([YG(0,Nn),YG(1,U0),YG(2,N3e),YG(3,yo)],vze);dH(vze);class M8o extends Bn{constructor(){super({id:"editor.action.forceRetokenize",label:_t(1532,"Developer: Force Retokenize"),precondition:void 0})}run(t,n){if(!n.hasModel())return;const r=n.getModel();r.tokenization.resetTokenization();const o=new vu;r.tokenization.forceTokenization(r.getLineCount()),o.stop(),console.log(`tokenization took ${o.elapsed()}`)}}un(M8o);const EAe=class EAe extends zu{constructor(){super({id:EAe.ID,title:_t(1530,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:_t(1531,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const n=!tV.getTabFocusMode();tV.setTabFocusMode(n),um(n?U(1528,"Pressing Tab will now move focus to the next focusable element"):U(1529,"Pressing Tab will now insert the tab character"))}};EAe.ID="editor.action.toggleTabFocusMode";let Aze=EAe;ys(Aze);class qnt{static computeUnicodeHighlights(t,n,r){const o=r?r.startLineNumber:1,s=r?r.endLineNumber:t.getLineCount(),a=new c_t(n),l=a.getCandidateCodePoints();let d;l==="allNonBasicAscii"?d=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):d=new RegExp(`${P8o(Array.from(l))}`,"g");const u=new AN(null,d),h=[];let g=!1,m,v=0,f=0,k=0;e:for(let A=o,p=s;A<=p;A++){const b=t.getLineContent(A),w=b.length;u.reset(0);do if(m=u.next(b),m){let O=m.index,y=m.index+m[0].length;if(O>0){const L=b.charCodeAt(O-1);Id(L)&&O--}if(y+1=1e3){g=!0;break e}h.push(new Ee(A,O+1,A,y+1))}}while(m)}return{ranges:h,hasMore:g,ambiguousCharacterCount:v,invisibleCharacterCount:f,nonBasicAsciiCharacterCount:k}}static computeUnicodeHighlightReason(t,n){const r=new c_t(n);switch(r.shouldHighlightNonBasicASCII(t,null)){case 0:return null;case 2:return{kind:1};case 3:{const s=t.codePointAt(0),a=r.ambiguousCharacters.getPrimaryConfusable(s),l=WK.getLocales().filter(d=>!WK.getInstance(new Set([...n.allowedLocales,d])).isAmbiguous(s));return{kind:0,confusableWith:String.fromCodePoint(a),notAmbiguousInLocales:l}}case 1:return{kind:2}}}}function P8o(e,t){return`[${M0(e.map(r=>String.fromCodePoint(r)).join(""))}]`}class c_t{constructor(t){this.options=t,this.allowedCodePoints=new Set(t.allowedCodePoints),this.ambiguousCharacters=WK.getInstance(new Set(t.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const t=new Set;if(this.options.invisibleCharacters)for(const n of aD.codePoints)d_t(String.fromCodePoint(n))||t.add(n);if(this.options.ambiguousCharacters)for(const n of this.ambiguousCharacters.getConfusableCodePoints())t.add(n);for(const n of this.allowedCodePoints)t.delete(n);return t}shouldHighlightNonBasicASCII(t,n){const r=t.codePointAt(0);if(this.allowedCodePoints.has(r))return 0;if(this.options.nonBasicASCII)return 1;let o=!1,s=!1;if(n)for(const a of n){const l=a.codePointAt(0),d=Sie(a);o=o||d,!d&&!this.ambiguousCharacters.isAmbiguous(l)&&!aD.isInvisibleCharacter(l)&&(s=!0)}return!o&&s?0:this.options.invisibleCharacters&&!d_t(t)&&aD.isInvisibleCharacter(r)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(r)?3:0}}function d_t(e){return e===" "||e===` `||e===" "}var F8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},u_t=function(e,t){return function(n,r){t(n,r,e)}};let pze=class extends ft{get enabled(){return this._enabled}set enabled(t){t?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=t}constructor(t,n,r={},o,s){super(),this._link=n,this._hoverService=o,this._enabled=!0,this.el=Xt(t,tn("a.monaco-link",{tabIndex:n.tabIndex??0,href:n.href},n.label)),this.hoverDelegate=r.hoverDelegate??eC("mouse"),this.setTooltip(n.title),this.el.setAttribute("role","button");const a=this._register(new ks(this.el,"click")),l=this._register(new ks(this.el,"keypress")),d=an.chain(l.event,g=>g.map(m=>new Us(m)).filter(m=>m.keyCode===3)),u=this._register(new ks(this.el,ma.Tap)).event;this._register(Bf.addTarget(this.el));const h=an.any(a.event,d,u);this._register(h(g=>{this.enabled&&(Qo.stop(g,!0),r!=null&&r.opener?r.opener(this._link.href):s.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(t){!this.hover&&t?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,t)):this.hover&&this.hover.update(t)}};pze=F8o([u_t(3,pm),u_t(4,OL)],pze);var VIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},bze=function(e,t){return function(n,r){t(n,r,e)}};const N8o=26;let wze=class extends ft{constructor(t,n){super(),this._editor=t,this.instantiationService=n,this.banner=this._register(this.instantiationService.createInstance(Oze))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(t){this.banner.show({...t,onClose:()=>{var n;this.hide(),(n=t.onClose)==null||n.call(t)}}),this._editor.setBanner(this.banner.element,N8o)}};wze=VIn([bze(1,Yn)],wze);let Oze=class extends ft{constructor(t,n){super(),this.instantiationService=t,this.markdownRendererService=n,this.element=tn("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(t){if(t.ariaLabel)return t.ariaLabel;if(typeof t.message=="string")return t.message}getBannerMessage(t){if(typeof t=="string"){const n=tn("span");return n.innerText=t,n}return this.markdownRendererService.render(t).element}clear(){uh(this.element)}show(t){uh(this.element);const n=this.getAriaLabel(t);n&&this.element.setAttribute("aria-label",n);const r=Xt(this.element,tn("div.icon-container"));r.setAttribute("aria-hidden","true"),t.icon&&r.appendChild(tn(`div${fi.asCSSSelector(t.icon)}`));const o=Xt(this.element,tn("div.message-container"));if(o.setAttribute("aria-hidden","true"),o.appendChild(this.getBannerMessage(t.message)),this.messageActionsContainer=Xt(this.element,tn("div.message-actions-container")),t.actions)for(const a of t.actions)this._register(this.instantiationService.createInstance(pze,this.messageActionsContainer,{...a,tabIndex:-1},{}));const s=Xt(this.element,tn("div.action-container"));this.actionBar=this._register(new g1(s)),this.actionBar.push(this._register(new n2("banner.close",U(1533,"Close Banner"),fi.asClassName(sDn),!0,()=>{typeof t.onClose=="function"&&t.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};Oze=VIn([bze(0,Yn),bze(1,Cp)],Oze);const zIn=Cr("workspaceTrustManagementService");var Knt=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},zZ=function(e,t){return function(n,r){t(n,r,e)}};const U8o=Da("extensions-warning-message",zt.warning,U(1534,"Icon shown with a warning message in the extensions editor."));var Kj;let hee=(Kj=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._editorWorkerService=n,this._workspaceTrustService=r,this._highlighter=null,this._bannerClosed=!1,this._updateState=s=>{if(s&&s.hasMore){if(this._bannerClosed)return;const a=Math.max(s.ambiguousCharacterCount,s.nonBasicAsciiCharacterCount,s.invisibleCharacterCount);let l;if(s.nonBasicAsciiCharacterCount>=a)l={message:U(1535,"This document contains many non-basic ASCII unicode characters"),command:new gee};else if(s.ambiguousCharacterCount>=a)l={message:U(1536,"This document contains many ambiguous unicode characters"),command:new IR};else if(s.invisibleCharacterCount>=a)l={message:U(1537,"This document contains many invisible unicode characters"),command:new fee};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:l.message,icon:U8o,actions:[{label:l.command.shortLabel,href:`command:${l.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(o.createInstance(wze,t)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=t.getOption(142),this._register(r.onDidChangeTrust(s=>{this._updateHighlighter()})),this._register(t.onDidChangeConfiguration(s=>{s.hasChanged(142)&&(this._options=t.getOption(142),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const t=j8o(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([t.nonBasicASCII,t.ambiguousCharacters,t.invisibleCharacters].every(r=>r===!1))return;const n={nonBasicASCII:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments,includeStrings:t.includeStrings,allowedCodePoints:Object.keys(t.allowedCharacters).map(r=>r.codePointAt(0)),allowedLocales:Object.keys(t.allowedLocales).map(r=>r==="_os"?yI.NumberFormat().value.resolvedOptions().locale:r==="_vscode"?QJr:r)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new yze(this._editor,n,this._updateState,this._editorWorkerService):this._highlighter=new W8o(this._editor,n,this._updateState)}getDecorationInfo(t){return this._highlighter?this._highlighter.getDecorationInfo(t):null}},Kj.ID="editor.contrib.unicodeHighlighter",Kj);hee=Knt([zZ(1,S1),zZ(2,zIn),zZ(3,Yn)],hee);function j8o(e,t){return{nonBasicASCII:t.nonBasicASCII===Ek?!e:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments===Ek?!e:t.includeComments,includeStrings:t.includeStrings===Ek?!e:t.includeStrings,allowedCharacters:t.allowedCharacters,allowedLocales:t.allowedLocales}}let yze=class extends ft{constructor(t,n,r,o){super(),this._editor=t,this._options=n,this._updateState=r,this._editorWorkerService=o,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Es(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const t=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(n=>{if(this._model.isDisposed()||this._model.getVersionId()!==t)return;this._updateState(n);const r=[];if(!n.hasMore)for(const o of n.ranges)r.push({range:o,options:rke.instance.getDecorationFromOptions(this._options)});this._decorations.set(r)})}getDecorationInfo(t){if(!this._decorations.has(t))return null;const n=this._editor.getModel();if(!Fet(n,t))return null;const r=n.getValueInRange(t.range);return{reason:$In(r,this._options),inComment:Net(n,t),inString:Uet(n,t)}}};yze=Knt([zZ(3,S1)],yze);class W8o extends ft{constructor(t,n,r){super(),this._editor=t,this._options=n,this._updateState=r,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Es(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const t=this._editor.getVisibleRanges(),n=[],r={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const o of t){const s=qnt.computeUnicodeHighlights(this._model,this._options,o);for(const a of s.ranges)r.ranges.push(a);r.ambiguousCharacterCount+=r.ambiguousCharacterCount,r.invisibleCharacterCount+=r.invisibleCharacterCount,r.nonBasicAsciiCharacterCount+=r.nonBasicAsciiCharacterCount,r.hasMore=r.hasMore||s.hasMore}if(!r.hasMore)for(const o of r.ranges)n.push({range:o,options:rke.instance.getDecorationFromOptions(this._options)});this._updateState(r),this._decorations.set(n)}getDecorationInfo(t){if(!this._decorations.has(t))return null;const n=this._editor.getModel(),r=n.getValueInRange(t.range);return Fet(n,t)?{reason:$In(r,this._options),inComment:Net(n,t),inString:Uet(n,t)}:null}}const HIn=U(1538,"Configure Unicode Highlight Options");let Cze=class{constructor(t,n){this._editor=t,this._markdownRendererService=n,this.hoverOrdinal=5}computeSync(t,n){if(!this._editor.hasModel()||t.type!==1)return[];const r=this._editor.getModel(),o=this._editor.getContribution(hee.ID);if(!o)return[];const s=[],a=new Set;let l=300;for(const d of n){const u=o.getDecorationInfo(d);if(!u)continue;const g=r.getValueInRange(d.range).codePointAt(0),m=$xe(g);let v;switch(u.reason.kind){case 0:{Sie(u.reason.confusableWith)?v=U(1539,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",m,$xe(u.reason.confusableWith.codePointAt(0))):v=U(1540,"The character {0} could be confused with the character {1}, which is more common in source code.",m,$xe(u.reason.confusableWith.codePointAt(0)));break}case 1:v=U(1541,"The character {0} is invisible.",m);break;case 2:v=U(1542,"The character {0} is not a basic ASCII character.",m);break}if(a.has(v))continue;a.add(v);const f={codePoint:g,reason:u.reason,inComment:u.inComment,inString:u.inString},k=U(1543,"Adjust settings"),A=yQn(oke.ID,f),p=new bf("",!0).appendMarkdown(v).appendText(" ").appendLink(A,k,HIn);s.push(new I4(this,d.range,[p],!1,l++))}return s}renderHoverParts(t,n){return k4o(t,n,this._editor,this._markdownRendererService)}getAccessibleContent(t){return t.contents.map(n=>n.value).join(` -`)}};Cze=Knt([zZ(1,Cp)],Cze);function _ze(e){return`U+${e.toString(16).padStart(4,"0")}`}function $xe(e){let t=`\`${_ze(e)}\``;return aD.isInvisibleCharacter(e)||(t+=` "${`${V8o(e)}`}"`),t}function V8o(e){return e===96?"`` ` ``":"`"+String.fromCodePoint(e)+"`"}function $In(e,t){return qnt.computeUnicodeHighlightReason(e,t)}const TAe=class TAe{constructor(){this.map=new Map}getDecorationFromOptions(t){return this.getDecoration(!t.includeComments,!t.includeStrings)}getDecoration(t,n){const r=`${t}${n}`;let o=this.map.get(r);return o||(o=Gi.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:t,hideInStringTokens:n}),this.map.set(r,o)),o}};TAe.instance=new TAe;let rke=TAe;class z8o extends Bn{constructor(){super({id:IR.ID,label:_t(1552,"Disable highlighting of characters in comments"),precondition:void 0}),this.shortLabel=U(1544,"Disable Highlight In Comments")}async run(t,n,r){const o=t.get(ar);o&&this.runAction(o)}async runAction(t){await t.updateValue(Jm.includeComments,!1,2)}}class H8o extends Bn{constructor(){super({id:IR.ID,label:_t(1553,"Disable highlighting of characters in strings"),precondition:void 0}),this.shortLabel=U(1545,"Disable Highlight In Strings")}async run(t,n,r){const o=t.get(ar);o&&this.runAction(o)}async runAction(t){await t.updateValue(Jm.includeStrings,!1,2)}}const QAe=class QAe extends zu{constructor(){super({id:QAe.ID,title:_t(1554,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1}),this.shortLabel=U(1546,"Disable Ambiguous Highlight")}async run(t,n,r){const o=t.get(ar);o&&this.runAction(o)}async runAction(t){await t.updateValue(Jm.ambiguousCharacters,!1,2)}};QAe.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";let IR=QAe;const DAe=class DAe extends zu{constructor(){super({id:DAe.ID,title:_t(1555,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1}),this.shortLabel=U(1547,"Disable Invisible Highlight")}async run(t,n,r){const o=t.get(ar);o&&this.runAction(o)}async runAction(t){await t.updateValue(Jm.invisibleCharacters,!1,2)}};DAe.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";let fee=DAe;const BAe=class BAe extends zu{constructor(){super({id:BAe.ID,title:_t(1556,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1}),this.shortLabel=U(1548,"Disable Non ASCII Highlight")}async run(t,n,r){const o=t.get(ar);o&&this.runAction(o)}async runAction(t){await t.updateValue(Jm.nonBasicASCII,!1,2)}};BAe.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";let gee=BAe;const RAe=class RAe extends zu{constructor(){super({id:RAe.ID,title:_t(1557,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(t,n){const{codePoint:r,reason:o,inString:s,inComment:a}=n,l=String.fromCodePoint(r),d=t.get(Rf),u=t.get(ar);function h(f){return aD.isInvisibleCharacter(f)?U(1549,"Exclude {0} (invisible character) from being highlighted",_ze(f)):U(1550,"Exclude {0} from being highlighted",`${_ze(f)} "${l}"`)}const g=[];if(o.kind===0)for(const f of o.notAmbiguousInLocales)g.push({label:U(1551,'Allow unicode characters that are more common in the language "{0}".',f),run:async()=>{X8o(u,[f])}});if(g.push({label:h(r),run:()=>$8o(u,[r])}),a){const f=new z8o;g.push({label:f.label,run:async()=>f.runAction(u)})}else if(s){const f=new H8o;g.push({label:f.label,run:async()=>f.runAction(u)})}function m(f){return typeof f.desc.title=="string"?f.desc.title:f.desc.title.value}if(o.kind===0){const f=new IR;g.push({label:m(f),run:async()=>f.runAction(u)})}else if(o.kind===1){const f=new fee;g.push({label:m(f),run:async()=>f.runAction(u)})}else if(o.kind===2){const f=new gee;g.push({label:m(f),run:async()=>f.runAction(u)})}else G8o(o);const v=await d.pick(g,{title:HIn});v&&await v.run()}};RAe.ID="editor.action.unicodeHighlight.showExcludeOptions";let oke=RAe;async function $8o(e,t){const n=e.getValue(Jm.allowedCharacters);let r;typeof n=="object"&&n?r=n:r={};for(const o of t)r[String.fromCodePoint(o)]=!0;await e.updateValue(Jm.allowedCharacters,r,2)}async function X8o(e,t){var o;const n=(o=e.inspect(Jm.allowedLocales).user)==null?void 0:o.value;let r;typeof n=="object"&&n?r=Object.assign({},n):r={};for(const s of t)r[s]=!0;await e.updateValue(Jm.allowedLocales,r,2)}function G8o(e){throw new Error(`Unexpected value: ${e}`)}ys(IR);ys(fee);ys(gee);ys(oke);mo(hee.ID,hee,1);BI.register(Cze);const are=Cr("dialogService");var Y8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},h_t=function(e,t){return function(n,r){t(n,r,e)}};const XIn="ignoreUnusualLineTerminators";function Z8o(e,t,n){e.setModelProperty(t.uri,XIn,n)}function q8o(e,t){return e.getModelProperty(t.uri,XIn)}var Jj;let ske=(Jj=class extends ft{constructor(t,n,r){super(),this._editor=t,this._dialogService=n,this._codeEditorService=r,this._isPresentingDialog=!1,this._config=this._editor.getOption(143),this._register(this._editor.onDidChangeConfiguration(o=>{o.hasChanged(143)&&(this._config=this._editor.getOption(143),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(o=>{o.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators()||q8o(this._codeEditorService,t)===!0||this._editor.getOption(104))return;if(this._config==="auto"){t.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let r;try{this._isPresentingDialog=!0,r=await this._dialogService.confirm({title:U(1558,"Unusual Line Terminators"),message:U(1559,"Detected unusual line terminators"),detail:U(1560,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",hA(t.uri)),primaryButton:U(1561,"&&Remove Unusual Line Terminators"),cancelButton:U(1562,"Ignore")})}finally{this._isPresentingDialog=!1}if(!r.confirmed){Z8o(this._codeEditorService,t,!0);return}t.removeUnusualLineTerminators(this._editor.getSelections())}},Jj.ID="editor.contrib.unusualLineTerminatorsDetector",Jj);ske=Y8o([h_t(1,are),h_t(2,yo)],ske);mo(ske.ID,ske,1);const vce="**",f_t="/",Lhe="[/\\\\]",xhe="[^/\\\\]",K8o=/\//g;function g_t(e,t){switch(e){case 0:return"";case 1:return`${xhe}*?`;default:return`(?:${Lhe}|${xhe}+${Lhe}${t?`|${Lhe}${xhe}+`:""})*?`}}function m_t(e,t){if(!e)return[];const n=[];let r=!1,o=!1,s="";for(const a of e){switch(a){case t:if(!r&&!o){n.push(s),s="";continue}break;case"{":r=!0;break;case"}":r=!1;break;case"[":o=!0;break;case"]":o=!1;break}s+=a}return s&&n.push(s),n}function GIn(e){if(!e)return"";let t="";const n=m_t(e,f_t);if(n.every(r=>r===vce))t=".*";else{let r=!1;n.forEach((o,s)=>{if(o===vce){if(r)return;t+=g_t(2,s===n.length-1)}else{let a=!1,l="",d=!1,u="";for(const h of o){if(h!=="}"&&a){l+=h;continue}if(d&&(h!=="]"||!u)){let g;h==="-"?g=h:(h==="^"||h==="!")&&!u?g="^":h===f_t?g="":g=M0(h),u+=g;continue}switch(h){case"{":a=!0;continue;case"[":d=!0;continue;case"}":{const m=`(?:${m_t(l,",").map(v=>GIn(v)).join("|")})`;t+=m,a=!1,l="";break}case"]":{t+="["+u+"]",d=!1,u="";break}case"?":t+=xhe;continue;case"*":t+=g_t(1);continue;default:t+=M0(h)}}sd===u,endsWith:r?Aeo:(d,u)=>d.endsWith(u),isEqualOrParent:(d,u)=>pNe(d,u,!v1||r)},s=`${r?n.toLowerCase():n}_${!!t.trimForExclusions}_${r}`;let a=k_t.get(s);if(a)return A_t(a,e,o);let l;return J8o.test(n)?a=oLo(n.substring(4),n,o):(l=eLo.exec(Xxe(n,o)))?a=sLo(l[1],n,o):(t.trimForExclusions?nLo:tLo).test(n)?a=aLo(n,o):(l=iLo.exec(Xxe(n,o)))?a=p_t(l[1].substring(1),n,!0,o):(l=rLo.exec(Xxe(n,o)))?a=p_t(l[1],n,!1,o):a=lLo(n,o),k_t.set(s,a),A_t(a,e,o)}function A_t(e,t,n){if(typeof t=="string")return e;const r=function(o,s){return n.isEqualOrParent(o,t.base)?e(_ie(o.substring(t.base.length),o3),s):null};return r.allBasenames=e.allBasenames,r.allPaths=e.allPaths,r.basenames=e.basenames,r.patterns=e.patterns,r}function Xxe(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substring(0,e.length-2):e}function oLo(e,t,n){return function(r,o){return typeof r=="string"&&n.endsWith(r,e)?t:null}}function sLo(e,t,n){const r=`/${e}`,o=`\\${e}`,s=function(l,d){return typeof l!="string"?null:d?n.equals(d,e)?t:null:n.equals(l,e)||n.endsWith(l,r)||n.endsWith(l,o)?t:null},a=[e];return s.basenames=a,s.patterns=[t],s.allBasenames=a,s}function aLo(e,t){const n=ZIn(e.slice(1,-1).split(",").map(l=>Jnt(l,t)).filter(l=>l!==uy),e),r=n.length;if(!r)return uy;if(r===1)return n[0];const o=function(l,d){for(let u=0,h=n.length;u!!l.allBasenames);s&&(o.allBasenames=s.allBasenames);const a=n.reduce((l,d)=>d.allPaths?l.concat(d.allPaths):l,[]);return a.length&&(o.allPaths=a),o}function p_t(e,t,n,r){const o=o3===Jc.sep,s=o?e:e.replace(K8o,o3),a=o3+s,l=Jc.sep+e;let d;return n?d=function(u,h){return typeof u=="string"&&(r.equals(u,s)||r.endsWith(u,a)||!o&&(r.equals(u,e)||r.endsWith(u,l)))?t:null}:d=function(u,h){return typeof u=="string"&&(r.equals(u,s)||!o&&r.equals(u,e))?t:null},d.allPaths=[(n?"*/":"./")+e],d}function lLo(e,t){try{const n=new RegExp(`^${GIn(e)}$`,t.ignoreCase?"i":void 0);return function(r){return n.lastIndex=0,typeof r=="string"&&n.test(r)?e:null}}catch{return uy}}function cLo(e,t,n){return!e||typeof t!="string"?!1:YIn(e,n)(t)}function YIn(e,t={}){if(!e)return v_t;if(typeof e=="string"||dLo(e)){const n=Jnt(e,t);if(n===uy)return v_t;const r=function(o,s){return!!n(o,s)};return n.allBasenames&&(r.allBasenames=n.allBasenames),n.allPaths&&(r.allPaths=n.allPaths),r}return uLo(e,t)}function dLo(e){const t=e;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function uLo(e,t){const n=ZIn(Object.getOwnPropertyNames(e).map(l=>hLo(l,e[l],t)).filter(l=>l!==uy)),r=n.length;if(!r)return uy;if(!n.some(l=>!!l.requiresSiblings)){if(r===1)return n[0];const l=function(h,g){let m;for(let v=0,f=n.length;v{for(const v of m){const f=await v;if(typeof f=="string")return f}return null})():null},d=n.find(h=>!!h.allBasenames);d&&(l.allBasenames=d.allBasenames);const u=n.reduce((h,g)=>g.allPaths?h.concat(g.allPaths):h,[]);return u.length&&(l.allPaths=u),l}const o=function(l,d,u){let h,g;for(let m=0,v=n.length;m{for(const m of g){const v=await m;if(typeof v=="string")return v}return null})():null},s=n.find(l=>!!l.allBasenames);s&&(o.allBasenames=s.allBasenames);const a=n.reduce((l,d)=>d.allPaths?l.concat(d.allPaths):l,[]);return a.length&&(o.allPaths=a),o}function hLo(e,t,n){if(t===!1)return uy;const r=Jnt(e,n);if(r===uy)return uy;if(typeof t=="boolean")return r;if(t){const o=t.when;if(typeof o=="string"){const s=(a,l,d,u)=>{if(!u||!r(a,l))return null;const h=o.replace("$(basename)",()=>d),g=u(h);return qFe(g)?g.then(m=>m?e:null):g?e:null};return s.requiresSiblings=!0,s}}return r}function ZIn(e,t){const n=e.filter(l=>!!l.basenames);if(n.length<2)return e;const r=n.reduce((l,d)=>{const u=d.basenames;return u?l.concat(u):l},[]);let o;if(t){o=[];for(let l=0,d=r.length;l{const u=d.patterns;return u?l.concat(u):l},[]);const s=function(l,d){if(typeof l!="string")return null;if(!d){let h;for(h=l.length;h>0;h--){const g=l.charCodeAt(h-1);if(g===47||g===92)break}d=l.substring(h)}const u=r.indexOf(d);return u!==-1?o[u]:null};s.basenames=r,s.patterns=o,s.allBasenames=r;const a=e.filter(l=>!l.basenames);return a.push(s),a}function eit(e,t,n,r,o,s){if(Array.isArray(e)){let a=0;for(const l of e){const d=eit(l,t,n,r,o,s);if(d===10)return d;d>a&&(a=d)}return a}else{if(typeof e=="string")return r?e==="*"?5:e===n?10:0:0;if(e){const{language:a,pattern:l,scheme:d,hasAccessToAllModels:u,notebookType:h}=e;if(!r&&!u)return 0;h&&o&&(t=o);let g=0;if(d)if(d===t.scheme)g=10;else if(d==="*")g=5;else return 0;if(a)if(a===n)g=10;else if(a==="*")g=Math.max(g,5);else return 0;if(h)if(h===s)g=10;else if(h==="*"&&s!==void 0)g=Math.max(g,5);else return 0;if(l){let m;if(typeof l=="string"?m=l:m={...l,base:J6n(l.base)},m===t.fsPath||cLo(m,t.fsPath))g=10;else return 0}return g}else return 0}}var fLo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gLo=function(e,t){return function(n,r){t(n,r,e)}};class b_t{constructor(){this.selector={language:"*"}}provideDocumentHighlights(t,n,r){const o=[],s=t.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});return s?t.isDisposed()?void 0:t.findMatches(s.word,!0,!1,!0,Ime,!1).map(l=>({range:l.range,kind:uV.Text})):Promise.resolve(o)}provideMultiDocumentHighlights(t,n,r,o){const s=new _c,a=t.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});if(!a)return Promise.resolve(s);for(const l of[t,...r]){if(l.isDisposed())continue;const u=l.findMatches(a.word,!0,!1,!0,Ime,!1).map(h=>({range:h.range,kind:uV.Text}));u&&s.set(l.uri,u)}return s}}let Sze=class extends ft{constructor(t){super(),this._register(t.documentHighlightProvider.register("*",new b_t)),this._register(t.multiDocumentHighlightProvider.register("*",new b_t))}};Sze=fLo([gLo(0,Nn)],Sze);var qIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},mO=function(e,t){return function(n,r){t(n,r,e)}},Pl,Lze;const tit=new yn("hasWordHighlights",!1);function KIn(e,t,n,r){const o=e.ordered(t);return EJe(o.map(s=>()=>Promise.resolve(s.provideDocumentHighlights(t,n,r)).then(void 0,Nc)),s=>s!=null).then(s=>{if(s){const a=new _c;return a.set(t.uri,s),a}return new _c})}function mLo(e,t,n,r,o){const s=e.ordered(t);return EJe(s.map(a=>()=>{const l=o.filter(d=>GEn(d)).filter(d=>eit(a.selector,d.uri,d.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(a.provideMultiDocumentHighlights(t,n,l,r)).then(void 0,Nc)}),a=>a!=null)}class JIn{constructor(t,n,r){this._model=t,this._selection=n,this._wordSeparators=r,this._wordRange=this._getCurrentWordRange(t,n),this._result=null}get result(){return this._result||(this._result=Fd(t=>this._compute(this._model,this._selection,this._wordSeparators,t))),this._result}_getCurrentWordRange(t,n){const r=t.getWordAtPosition(n.getPosition());return r?new Ee(n.startLineNumber,r.startColumn,n.startLineNumber,r.endColumn):null}cancel(){this.result.cancel()}}class kLo extends JIn{constructor(t,n,r,o){super(t,n,r),this._providers=o}_compute(t,n,r,o){return KIn(this._providers,t,n.getPosition(),o).then(s=>s||new _c)}}class vLo extends JIn{constructor(t,n,r,o,s){super(t,n,r),this._providers=o,this._otherModels=s}_compute(t,n,r,o){return mLo(this._providers,t,n.getPosition(),o,this._otherModels).then(s=>s||new _c)}}function ALo(e,t,n,r){return new kLo(t,n,r,e)}function pLo(e,t,n,r,o){return new vLo(t,n,r,e,o)}_1("_executeDocumentHighlights",async(e,t,n)=>{const r=e.get(Nn),o=await KIn(r.documentHighlightProvider,t,n,Er.None);return o==null?void 0:o.get(t.uri)});var c6;let xze=(c6=class{constructor(t,n,r,o,s,a,l,d){this.toUnhook=new xt,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new _c,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,this.runDelayer=this.toUnhook.add(new dA(50)),this.editor=t,this.providers=n,this.multiDocumentProviders=r,this.codeEditorService=a,this.textModelService=s,this.configurationService=l,this.logService=d,this._hasWordHighlights=tit.bindTo(o),this._ignorePositionChangeEvent=!1,this.occurrencesHighlightEnablement=this.editor.getOption(90),this.occurrencesHighlightDelay=this.configurationService.getValue("editor.occurrencesHighlightDelay"),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition(u=>{this._ignorePositionChangeEvent||this.occurrencesHighlightEnablement!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(u)})})),this.toUnhook.add(t.onDidFocusEditorText(u=>{this.occurrencesHighlightEnablement!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(t.onDidChangeModelContent(u=>{kbe(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(t.onDidChangeModel(u=>{!u.newModelUrl&&u.oldModelUrl?this._stopSingular():Pl.query&&this._run()})),this.toUnhook.add(t.onDidChangeConfiguration(u=>{var g,m;const h=this.editor.getOption(90);if(this.occurrencesHighlightEnablement!==h)switch(this.occurrencesHighlightEnablement=h,h){case"off":this._stopAll();break;case"singleFile":this._stopAll((m=(g=Pl.query)==null?void 0:g.modelInfo)==null?void 0:m.modelURI);break;case"multiFile":Pl.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",h);break}})),this.toUnhook.add(this.configurationService.onDidChangeConfiguration(u=>{if(u.affectsConfiguration("editor.occurrencesHighlightDelay")){const h=l.getValue("editor.occurrencesHighlightDelay");this.occurrencesHighlightDelay!==h&&(this.occurrencesHighlightDelay=h)}})),this.toUnhook.add(t.onDidBlurEditorWidget(()=>{var h,g;const u=this.codeEditorService.getFocusedCodeEditor();u?((h=u.getModel())==null?void 0:h.uri.scheme)===Ci.vscodeNotebookCell&&((g=this.editor.getModel())==null?void 0:g.uri.scheme)!==Ci.vscodeNotebookCell&&this._stopAll():this._stopAll()})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,Pl.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(t){this.occurrencesHighlightEnablement!=="off"&&(this.runDelayer.cancel(),this.runDelayer.trigger(()=>{this._run(!1,t)}))}stop(){this.occurrencesHighlightEnablement!=="off"&&this._stopAll()}_getSortedHighlights(){return this.decorations.getRanges().sort(Ee.compareRangesUsingStarts)}moveNext(){const t=this._getSortedHighlights(),r=(t.findIndex(s=>s.containsPosition(this.editor.getPosition()))+1)%t.length,o=t[r];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(o.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(o);const s=this._getWord();if(s){const a=this.editor.getModel().getLineContent(o.startLineNumber);um(`${a}, ${r+1} of ${t.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const t=this._getSortedHighlights(),r=(t.findIndex(s=>s.containsPosition(this.editor.getPosition()))-1+t.length)%t.length,o=t[r];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(o.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(o);const s=this._getWord();if(s){const a=this.editor.getModel().getLineContent(o.startLineNumber);um(`${a}, ${r+1} of ${t.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const t=Pl.storedDecorationIDs.get(this.editor.getModel().uri);t&&(this.editor.removeDecorations(t),Pl.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(t){const n=this.codeEditorService.listCodeEditors(),r=[];for(const o of n){if(!o.hasModel()||C6(o.getModel().uri,t))continue;const s=Pl.storedDecorationIDs.get(o.getModel().uri);if(!s)continue;o.removeDecorations(s),r.push(o.getModel().uri);const a=M6.get(o);a!=null&&a.wordHighlighter&&a.wordHighlighter.decorations.length>0&&(a.wordHighlighter.decorations.clear(),a.wordHighlighter.workerRequest=null,a.wordHighlighter._hasWordHighlights.set(!1))}for(const o of r)Pl.storedDecorationIDs.delete(o)}_stopSingular(){var t,n,r,o;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((t=this.editor.getModel())==null?void 0:t.uri.scheme)!==Ci.vscodeNotebookCell&&((r=(n=Pl.query)==null?void 0:n.modelInfo)==null?void 0:r.modelURI.scheme)!==Ci.vscodeNotebookCell?(Pl.query=null,this._run()):(o=Pl.query)!=null&&o.modelInfo&&(Pl.query.modelInfo=null)),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(t){this._removeAllDecorations(t),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(t){if(this.occurrencesHighlightEnablement==="off"){this._stopAll();return}if(t.source!=="api"&&t.reason!==3){this._stopAll();return}this._run()}_getWord(){const t=this.editor.getSelection(),n=t.startLineNumber,r=t.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:n,column:r})}getOtherModelsToHighlight(t){if(!t)return[];if(t.uri.scheme===Ci.vscodeNotebookCell){const s=[],a=this.codeEditorService.listCodeEditors();for(const l of a){const d=l.getModel();d&&d!==t&&d.uri.scheme===Ci.vscodeNotebookCell&&s.push(d)}return s}const r=[],o=this.codeEditorService.listCodeEditors();for(const s of o){if(!nnt(s))continue;const a=s.getModel();a&&t===a.modified&&r.push(a.modified)}if(r.length)return r;if(this.occurrencesHighlightEnablement==="singleFile")return[];for(const s of o){const a=s.getModel();a&&a!==t&&r.push(a)}return r}async _run(t,n){var o,s,a;if(this.editor.hasTextFocus()){const l=this.editor.getSelection();if(!l||l.startLineNumber!==l.endLineNumber){Pl.query=null,this._stopAll();return}const d=l.startColumn,u=l.endColumn,h=this._getWord();if(!h||h.startColumn>d||h.endColumn{l===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=h||[],this._beginRenderDecorations(n??this.occurrencesHighlightDelay))},zi)}catch(h){this.logService.error("Unexpected error during occurrence request. Log: ",h)}finally{u.dispose()}}else if(this.model.uri.scheme===Ci.vscodeNotebookCell){const l=++this.workerRequestTokenId;if(this.workerRequestCompleted=!1,!Pl.query||!Pl.query.modelInfo)return;const d=await this.textModelService.createModelReference(Pl.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(d.object.textEditorModel,Pl.query.modelInfo.selection,[this.model]),(a=this.workerRequest)==null||a.result.then(u=>{l===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=u||[],this._beginRenderDecorations(n??this.occurrencesHighlightDelay))},zi)}catch(u){this.logService.error("Unexpected error during occurrence request. Log: ",u)}finally{d.dispose()}}}computeWithModel(t,n,r){return r.length?pLo(this.multiDocumentProviders,t,n,this.editor.getOption(148),r):ALo(this.providers,t,n,this.editor.getOption(148))}_beginRenderDecorations(t){const n=new Date().getTime(),r=this.lastCursorPositionChangeTime+t;n>=r?(this.renderDecorationsTimer=void 0,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},r-n)}renderDecorations(){var n,r,o;this.renderDecorationsTimer=void 0;const t=this.codeEditorService.listCodeEditors();for(const s of t){const a=M6.get(s);if(!a)continue;const l=[],d=(n=s.getModel())==null?void 0:n.uri;if(d&&this.workerRequestValue.has(d)){const u=Pl.storedDecorationIDs.get(d),h=this.workerRequestValue.get(d);if(h)for(const m of h)m.range&&l.push({range:m.range,options:ESo(m.kind)});let g=[];s.changeDecorations(m=>{g=m.deltaDecorations(u??[],l)}),Pl.storedDecorationIDs=Pl.storedDecorationIDs.set(d,g),l.length>0&&((r=a.wordHighlighter)==null||r.decorations.set(l),(o=a.wordHighlighter)==null||o._hasWordHighlights.set(!0))}}this.workerRequest=null}dispose(){this._stopSingular(),this.toUnhook.dispose()}},Pl=c6,c6.storedDecorationIDs=new _c,c6.query=null,c6);xze=Pl=qIn([mO(4,Dg),mO(5,yo),mO(6,ar),mO(7,va)],xze);var pB;let M6=(pB=class extends ft{static get(t){return t.getContribution(Lze.ID)}constructor(t,n,r,o,s,a,l){super(),this._wordHighlighter=null;const d=()=>{t.hasModel()&&!t.getModel().isTooLargeForTokenization()&&t.getModel().uri.scheme!==Ci.accessibleView&&(this._wordHighlighter=new xze(t,r.documentHighlightProvider,r.multiDocumentHighlightProvider,n,s,o,a,l))};this._register(t.onDidChangeModel(u=>{var h,g;this._wordHighlighter&&(!u.newModelUrl&&((h=u.oldModelUrl)==null?void 0:h.scheme)!==Ci.vscodeNotebookCell&&((g=this.wordHighlighter)==null||g.stop()),this._wordHighlighter.dispose(),this._wordHighlighter=null),d()})),d()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var t;(t=this._wordHighlighter)==null||t.moveNext()}moveBack(){var t;(t=this._wordHighlighter)==null||t.moveBack()}restoreViewState(t){this._wordHighlighter&&t&&this._wordHighlighter.restore(250)}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},Lze=pB,pB.ID="editor.contrib.wordHighlighter",pB);M6=Lze=qIn([mO(1,Qi),mO(2,Nn),mO(3,yo),mO(4,Dg),mO(5,ar),mO(6,va)],M6);class eMn extends Bn{constructor(t,n){super(n),this._isNext=t}run(t,n){const r=M6.get(n);r&&(this._isNext?r.moveNext():r.moveBack())}}class bLo extends eMn{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:_t(1572,"Go to Next Symbol Highlight"),precondition:tit,kbOpts:{kbExpr:$e.editorTextFocus,primary:65,weight:100}})}}class wLo extends eMn{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:_t(1573,"Go to Previous Symbol Highlight"),precondition:tit,kbOpts:{kbExpr:$e.editorTextFocus,primary:1089,weight:100}})}}class OLo extends Bn{constructor(){super({id:"editor.action.wordHighlight.trigger",label:_t(1574,"Trigger Symbol Highlight"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:0,weight:100}})}run(t,n,r){const o=M6.get(n);o&&o.restoreViewState(!0)}}mo(M6.ID,M6,0);un(bLo);un(wLo);un(OLo);dH(Sze);class $3e extends $d{constructor(t){super(t),this._inSelectionMode=t.inSelectionMode,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,n,r){if(!n.hasModel())return;const o=fA(n.getOption(148),n.getOption(147)),s=n.getModel(),a=n.getSelections(),l=a.length>1,d=a.map(u=>{const h=new it(u.positionLineNumber,u.positionColumn),g=this._move(o,s,h,this._wordNavigationType,l);return this._moveTo(u,g,this._inSelectionMode)});if(s.pushStackElement(),n._getViewModel().setCursorStates("moveWordCommand",3,d.map(u=>So.fromModelSelection(u))),d.length===1){const u=new it(d[0].positionLineNumber,d[0].positionColumn);n.revealPosition(u,0)}}_moveTo(t,n,r){return r?new Qn(t.selectionStartLineNumber,t.selectionStartColumn,n.lineNumber,n.column):new Qn(n.lineNumber,n.column,n.lineNumber,n.column)}}class fE extends $3e{_move(t,n,r,o,s){return as.moveWordLeft(t,n,r,o,s)}}class gE extends $3e{_move(t,n,r,o,s){return as.moveWordRight(t,n,r,o)}}class yLo extends fE{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class CLo extends fE{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class _Lo extends fE{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:2063,mac:{primary:527},weight:100}})}}class SLo extends fE{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class LLo extends fE{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class xLo extends fE{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class ELo extends fE{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class TLo extends fE{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class QLo extends gE{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class DLo extends gE{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:2065,mac:{primary:529},weight:100}})}}class BLo extends gE{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class RLo extends gE{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class ILo extends gE{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class MLo extends gE{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class PLo extends gE{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class FLo extends gE{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class X3e extends $d{constructor(t){super({canTriggerInlineEdits:!0,...t}),this._whitespaceHeuristics=t.whitespaceHeuristics,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,n,r){const o=t==null?void 0:t.get(kl);if(!n.hasModel()||!o)return;const s=fA(n.getOption(148),n.getOption(147)),a=n.getModel(),l=n.getSelections(),d=n.getOption(10),u=n.getOption(15),h=o.getLanguageConfiguration(a.getLanguageId()).getAutoClosingPairs(),g=n._getViewModel(),m=l.map(v=>{const f=this._delete({wordSeparators:s,model:a,selection:v,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:n.getOption(13),autoClosingBrackets:d,autoClosingQuotes:u,autoClosingPairs:h,autoClosedCharacters:g.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Hh(f,"")});n.pushUndoStop(),n.executeCommands(this.id,m),n.pushUndoStop()}}class nit extends X3e{_delete(t,n){const r=as.deleteWordLeft(t,n);return r||new Ee(1,1,1,1)}}class iit extends X3e{_delete(t,n){const r=as.deleteWordRight(t,n);if(r)return r;const o=t.model.getLineCount(),s=t.model.getLineMaxColumn(o);return new Ee(o,s,o,s)}}class NLo extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:$e.writable})}}class ULo extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:$e.writable})}}class jLo extends nit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class WLo extends iit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:$e.writable})}}class VLo extends iit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:$e.writable})}}class zLo extends iit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class HLo extends Bn{constructor(){super({id:"deleteInsideWord",precondition:$e.writable,label:_t(1575,"Delete Word")})}run(t,n,r){if(!n.hasModel())return;const o=fA(n.getOption(148),n.getOption(147)),s=n.getModel(),l=n.getSelections().map(d=>{const u=as.deleteInsideWord(o,s,d);return new Hh(u,"")});n.pushUndoStop(),n.executeCommands(this.id,l),n.pushUndoStop()}}On(new yLo);On(new CLo);On(new _Lo);On(new SLo);On(new LLo);On(new xLo);On(new QLo);On(new DLo);On(new BLo);On(new RLo);On(new ILo);On(new MLo);On(new ELo);On(new TLo);On(new PLo);On(new FLo);On(new NLo);On(new ULo);On(new jLo);On(new WLo);On(new VLo);On(new zLo);un(HLo);class $Lo extends X3e{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(t,n){const r=Mbe.deleteWordPartLeft(t);return r||new Ee(1,1,1,1)}}class XLo extends X3e{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(t,n){const r=Mbe.deleteWordPartRight(t);if(r)return r;const o=t.model.getLineCount(),s=t.model.getLineMaxColumn(o);return new Ee(o,s,o,s)}}class tMn extends $3e{_move(t,n,r,o,s){return Mbe.moveWordPartLeft(t,n,r,s)}}class GLo extends tMn{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}co.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class YLo extends tMn{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}co.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class nMn extends $3e{_move(t,n,r,o,s){return Mbe.moveWordPartRight(t,n,r)}}class ZLo extends nMn{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class qLo extends nMn{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}On(new $Lo);On(new XLo);On(new GLo);On(new YLo);On(new ZLo);On(new qLo);const Oat=class Oat extends ft{constructor(t){super(),this.editor=t,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const t=D0.get(this.editor);if(t&&this.editor.hasModel()){let n=this.editor.getOptions().get(105);n||(this.editor.isSimpleWidget?n=new bf(U(1378,"Cannot edit in read-only input")):n=new bf(U(1379,"Cannot edit in read-only editor"))),t.showMessage(n,this.editor.getPosition())}}};Oat.ID="editor.contrib.readOnlyMessageController";let ake=Oat;mo(ake.ID,ake,2);var KLo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},w_t=function(e,t){return function(n,r){t(n,r,e)}};let Eze=class extends ft{constructor(t,n,r){super(),this._textModel=t,this._languageFeaturesService=n,this._outlineModelService=r,this._currentModel=Ti(this,void 0);const o=A0("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),s=A0("_textModel.onDidChangeContent",an.debounce(a=>this._textModel.onDidChangeContent(a),()=>{},100));this._register(Ef(async(a,l)=>{o.read(a),s.read(a);const d=l.add(new A0o),u=await this._outlineModelService.getOrCreate(this._textModel,d.token);l.isDisposed||this._currentModel.set(u,void 0)}))}getBreadcrumbItems(t,n){const r=this._currentModel.read(n);if(!r)return[];const o=r.asListOfDocumentSymbols().filter(s=>t.contains(s.range.startLineNumber)&&!t.contains(s.range.endLineNumber));return o.sort(cEn(qh(s=>s.range.endLineNumber-s.range.startLineNumber,T0))),o.map(s=>({name:s.name,kind:s.kind,startLineNumber:s.range.startLineNumber}))}};Eze=KLo([w_t(1,Nn),w_t(2,ore)],Eze);P1e.setBreadcrumbsSourceFactory((e,t)=>t.createInstance(Eze,e));var JLo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Gxe=function(e,t){return function(n,r){t(n,r,e)}},eW;let lke=(eW=class extends ft{constructor(t,n,r,o){super();const s=this._register(hl(t)),a=this._register(o.createMenu(Wn.EditorContent,t.contextKeyService)),l=Ko(this,a.onDidChange,()=>a.getActions().length===0);this._register(Oi(d=>{if(l.read(d))return;const h=wo("div.floating-menu-overlay-widget");h.root.style.height="28px";const g=n.createInstance(RJ,h.root,Wn.EditorContent,{actionViewItemProvider:(m,v)=>{if(!(m instanceof i2))return;const f=r.lookupKeybinding(m.id);if(f)return n.createInstance(class extends D6{updateLabel(){this.options.label&&this.label&&(this.label.textContent=`${this._commandAction.label} (${f.getLabel()})`)}},m,{...v,keybindingNotRenderedWithLabel:!0})},hiddenItemStrategy:0,menuOptions:{shouldForwardArgs:!0},telemetrySource:"editor.overlayToolbar",toolbarOptions:{primaryGroup:()=>!0,useSeparatorsInPrimaryActions:!0}});d.store.add(g),d.store.add(Oi(m=>{const v=s.model.read(m);g.context=v==null?void 0:v.uri})),d.store.add(s.createOverlayWidget({allowEditorOverflow:!1,domNode:h.root,minContentWidthInPx:ca(0),position:ca({preference:1})}))}))}},eW.ID="editor.contrib.floatingToolbar",eW);lke=JLo([Gxe(1,Yn),Gxe(2,Do),Gxe(3,wA)],lke);mo(lke.ID,lke,1);var Tze;(function(e){e.inspectTokensAction=U(786,"Developer: Inspect Tokens")})(Tze||(Tze={}));var cke;(function(e){e.gotoLineActionLabel=U(787,"Go to Line/Column...")})(cke||(cke={}));var Qze;(function(e){e.helpQuickAccessActionLabel=U(788,"Show all Quick Access Providers")})(Qze||(Qze={}));var dke;(function(e){e.quickCommandActionLabel=U(789,"Command Palette"),e.quickCommandHelp=U(790,"Show And Run Commands")})(dke||(dke={}));var mee;(function(e){e.quickOutlineActionLabel=U(791,"Go to Symbol..."),e.quickOutlineByCategoryActionLabel=U(792,"Go to Symbol by Category...")})(mee||(mee={}));var Dze;(function(e){e.editorViewAccessibleLabel=U(793,"Editor content")})(Dze||(Dze={}));var Bze;(function(e){e.toggleHighContrast=U(794,"Toggle High Contrast Theme")})(Bze||(Bze={}));var Rze;(function(e){e.bulkEditServiceSummary=U(795,"Made {0} edits in {1} files")})(Rze||(Rze={}));const yat=class yat extends ft{constructor(t){super(),this.editor=t,this.widget=null,cA&&(this._register(t.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const t=!this.editor.getOption(104);!this.widget&&t?this.widget=new Ize(this.editor):this.widget&&!t&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}};yat.ID="editor.contrib.iPadShowKeyboard";let uke=yat;const IAe=class IAe extends ft{constructor(t){super(),this.editor=t,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(wt(this._domNode,"touchstart",n=>{this.editor.focus()})),this._register(wt(this._domNode,"focus",n=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return IAe.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};IAe.ID="editor.contrib.ShowKeyboardWidget";let Ize=IAe;mo(uke.ID,uke,3);const L2=Cr("themeService");var exo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},O_t=function(e,t){return function(n,r){t(n,r,e)}},Mze,bB;let kee=(bB=class extends ft{static get(t){return t.getContribution(Mze.ID)}constructor(t,n,r){super(),this._editor=t,this._languageService=r,this._widget=null,this._register(this._editor.onDidChangeModel(o=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(o=>this.stop())),this._register(Hl.onDidChange(o=>this.stop())),this._register(this._editor.onKeyUp(o=>o.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new Pze(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}},Mze=bB,bB.ID="editor.contrib.inspectTokens",bB);kee=Mze=exo([O_t(1,L2),O_t(2,nc)],kee);class txo extends Bn{constructor(){super({id:"editor.action.inspectTokens",label:Tze.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(t,n){const r=kee.get(n);r==null||r.launch()}}function nxo(e){let t="";for(let n=0,r=e.length;nhV,tokenize:(o,s,a)=>ttt(t,a),tokenizeEncoded:(o,s,a)=>s3e(r,a)}}const MAe=class MAe extends ft{constructor(t,n){super(),this.allowEditorOverflow=!0,this._editor=t,this._languageService=n,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=ixo(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(r=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return MAe._ID}_compute(t){const n=this._getTokensAtLine(t.lineNumber);let r=0;for(let d=n.tokens1.length-1;d>=0;d--){const u=n.tokens1[d];if(t.column-1>=u.offset){r=d;break}}let o=0;for(let d=n.tokens2.length>>>1;d>=0;d--)if(t.column-1>=n.tokens2[d<<1]){o=d;break}const s=this._model.getLineContent(t.lineNumber);let a="";if(rr.prefix.length-n.prefix.length),Hn(()=>{this.providers.splice(this.providers.indexOf(t),1),this.defaultProvider===t&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return P3([this.defaultProvider,...this.providers])}getQuickAccessProvider(t){return t&&this.providers.find(r=>t.startsWith(r.prefix))||void 0||this.defaultProvider}}Ql.add(FI.Quickaccess,new rxo);var oxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},y_t=function(e,t){return function(n,r){t(n,r,e)}},ZG,wB;let Nze=(wB=class{constructor(t,n){this.quickInputService=t,this.keybindingService=n,this.registry=Ql.as(FI.Quickaccess)}provide(t){const n=new xt;return n.add(t.onDidAccept(()=>{const[r]=t.selectedItems;r&&this.quickInputService.quickAccess.show(r.prefix,{preserveValue:!0})})),n.add(t.onDidChangeValue(r=>{const o=this.registry.getQuickAccessProvider(r.substr(ZG.PREFIX.length));o&&o.prefix&&o.prefix!==ZG.PREFIX&&this.quickInputService.quickAccess.show(o.prefix,{preserveValue:!0})})),t.items=this.getQuickAccessProviders().filter(r=>r.prefix!==ZG.PREFIX),n}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((n,r)=>n.prefix.localeCompare(r.prefix)).flatMap(n=>this.createPicks(n))}createPicks(t){return t.helpEntries.map(n=>{const r=n.prefix||t.prefix,o=r||"…";return{prefix:r,label:o,keybinding:n.commandId?this.keybindingService.lookupKeybinding(n.commandId):void 0,ariaLabel:U(1747,"{0}, {1}",o,n.description),description:n.description}})}},ZG=wB,wB.PREFIX="?",wB);Nze=ZG=oxo([y_t(0,Rf),y_t(1,Do)],Nze);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:Nze,prefix:"",helpEntries:[{description:Qze.helpQuickAccessActionLabel}]});class iMn{constructor(t){this.options=t,this.rangeHighlightDecorationId=void 0}provide(t,n,r){var a;const o=new xt;t.canAcceptInBackground=!!((a=this.options)!=null&&a.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;const s=o.add(new ts);return s.value=this.doProvide(t,n,r),o.add(this.onDidActiveTextEditorControlChange(()=>{s.value=void 0,s.value=this.doProvide(t,n)})),o}doProvide(t,n,r){const o=new xt,s=this.activeTextEditorControl;if(s&&this.canProvideWithTextEditor(s)){const a={editor:s},l=HBn(s);if(l){let d=s.saveViewState()??void 0;o.add(l.onDidChangeCursorPosition(()=>{d=s.saveViewState()??void 0})),a.restoreViewState=()=>{d&&s===this.activeTextEditorControl&&s.restoreViewState(d)},o.add(iR(n.onCancellationRequested)(()=>{var u;return(u=a.restoreViewState)==null?void 0:u.call(a)}))}o.add(Hn(()=>this.clearDecorations(s))),o.add(this.provideWithTextEditor(a,t,n,r))}else o.add(this.provideWithoutTextEditor(t,n));return o}canProvideWithTextEditor(t){return!0}gotoLocation({editor:t},n){t.setSelection(n.range,"code.jump"),t.revealRangeInCenter(n.range,0),n.preserveFocus||t.focus();const r=t.getModel();r&&"getLineContent"in r&&A3(`${r.getLineContent(n.range.startLineNumber)}`)}getModel(t){var n;return nnt(t)?(n=t.getModel())==null?void 0:n.modified:t.getModel()}addDecorations(t,n){t.changeDecorations(r=>{const o=[];this.rangeHighlightDecorationId&&(o.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),o.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:n,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:zl(oTn),position:r2.Full}}}],[a,l]=r.deltaDecorations(o,s);this.rangeHighlightDecorationId={rangeHighlightId:a,overviewRulerDecorationId:l}})}clearDecorations(t){const n=this.rangeHighlightDecorationId;n&&(t.changeDecorations(r=>{r.deltaDecorations([n.overviewRulerDecorationId,n.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}const YT=class YT extends iMn{constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(YT.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(t){this.storageService.store(YT.ZERO_BASED_OFFSET_STORAGE_KEY,t,-1,0)}provideWithoutTextEditor(t){const n=U(1335,"Open a text editor first to go to a line.");return t.items=[{label:n}],t.ariaLabel=n,ft.None}provideWithTextEditor(t,n,r){const o=t.editor,s=new xt;s.add(n.onDidAccept(u=>{const[h]=n.selectedItems;if(h){if(!h.lineNumber)return;this.gotoLocation(t,{range:this.toRange(h.lineNumber,h.column),keyMods:n.keyMods,preserveFocus:u.inBackground}),u.inBackground||n.hide()}}));const a=()=>{const u=n.value.trim().substring(YT.PREFIX.length),{inOffsetMode:h,lineNumber:g,column:m,label:v}=this.parsePosition(o,u);if(l.visible=!!h,n.items=[{lineNumber:g,column:m,label:v}],n.ariaLabel=v,!g){this.clearDecorations(o);return}const f=this.toRange(g,m);o.revealRangeInCenter(f,0),this.addDecorations(o,f)},l=new yL({title:U(1336,"Use Zero-Based Offset"),icon:zt.indexZero,isChecked:this.useZeroBasedOffset,inputActiveOptionBorder:en(Die),inputActiveOptionForeground:en(Bie),inputActiveOptionBackground:en(eH)});s.add(l.onChange(()=>{this.useZeroBasedOffset=!this.useZeroBasedOffset,a()})),n.toggles=[l],a(),s.add(n.onDidChangeValue(()=>a()));const d=HBn(o);return d&&d.getOptions().get(76).renderType===2&&(d.updateOptions({lineNumbers:"on"}),s.add(Hn(()=>d.updateOptions({lineNumbers:"relative"})))),s}toRange(t=1,n=1){return{startLineNumber:t,startColumn:n,endLineNumber:t,endColumn:n}}parsePosition(t,n){var o,s;const r=this.getModel(t);if(!r)return{label:U(1337,"Open a text editor first to go to a line.")};if(n.startsWith(":")){let a=parseInt(n.substring(1),10);const l=r.getValueLength();if(isNaN(a))return{inOffsetMode:!0,label:this.useZeroBasedOffset?U(1338,"Type a character position to go to (from 0 to {0}).",l-1):U(1339,"Type a character position to go to (from 1 to {0}).",l)};{const d=a<0;this.useZeroBasedOffset||(a-=Math.sign(a)),d&&(a+=l);const u=r.getPositionAt(a);return{...u,inOffsetMode:!0,label:U(1340,"Press 'Enter' to go to line {0} at column {1}.",u.lineNumber,u.column)}}}else{const a=n.split(/,|:|#/),l=r.getLineCount();let d=parseInt((o=a[0])==null?void 0:o.trim(),10);if(a.length<1||isNaN(d))return{label:U(1341,"Type a line number to go to (from 1 to {0}).",l)};d=d>=0?d:l+1+d,d=Math.min(Math.max(1,d),l);const u=r.getLineMaxColumn(d);let h=parseInt((s=a[1])==null?void 0:s.trim(),10);return a.length<2||isNaN(h)?{lineNumber:d,column:1,label:a.length<2?U(1342,"Press 'Enter' to go to line {0} or enter : to add a column number.",d):U(1343,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",d,u)}:(h=h>=0?h:u+h,h=Math.min(Math.max(1,h),u),{lineNumber:d,column:h,label:U(1344,"Press 'Enter' to go to line {0} at column {1}.",d,h)})}}};YT.PREFIX=":",YT.ZERO_BASED_OFFSET_STORAGE_KEY="gotoLine.useZeroBasedOffset";let Uze=YT;var sxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},C_t=function(e,t){return function(n,r){t(n,r,e)}};let vee=class extends Uze{constructor(t,n){super(),this.editorService=t,this.storageService=n,this.onDidActiveTextEditorControlChange=an.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};vee=sxo([C_t(0,yo),C_t(1,Bg)],vee);var OB;let rMn=(OB=class extends Bn{constructor(){super({id:OB.ID,label:cke.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:2085,mac:{primary:293},weight:100}})}run(t){t.get(Rf).quickAccess.show(vee.PREFIX)}},OB.ID="editor.action.gotoLine",OB);un(rMn);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:vee,prefix:vee.PREFIX,helpEntries:[{description:cke.gotoLineActionLabel,commandId:rMn.ID}]});const oMn=[void 0,[]];function Yxe(e,t,n=0,r=0){const o=t;return o.values&&o.values.length>1?axo(e,o.values,n,r):sMn(e,t,n,r)}function axo(e,t,n,r){let o=0;const s=[];for(const a of t){const[l,d]=sMn(e,a,n,r);if(typeof l!="number")return oMn;o+=l,s.push(...d)}return[o,lxo(s)]}function sMn(e,t,n,r){const o=kR(t.original,t.originalLowercase,n,e,e.toLowerCase(),r,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return o?[o[0],Uie(o)]:oMn}function lxo(e){const t=e.sort((o,s)=>o.start-s.start),n=[];let r;for(const o of t)!r||!cxo(r,o)?(r=o,n.push(o)):(r.start=Math.min(r.start,o.start),r.end=Math.max(r.end,o.end));return n}function cxo(e,t){return!(e.end=0,a=__t(e);let l;const d=e.split(aMn);if(d.length>1)for(const u of d){const h=__t(u),{pathNormalized:g,normalized:m,normalizedLowercase:v}=S_t(u);m&&(l||(l=[]),l.push({original:u,originalLowercase:u.toLowerCase(),pathNormalized:g,normalized:m,normalizedLowercase:v,expectContiguousMatch:h}))}return{original:e,originalLowercase:t,pathNormalized:n,normalized:r,normalizedLowercase:o,values:l,containsPathSeparator:s,expectContiguousMatch:a}}function S_t(e){let t;mh?t=e.replace(/\//g,o3):t=e.replace(/\\/g,o3);const n=t.replace(/[\*\u2026\s"]/g,"");return{pathNormalized:t,normalized:n,normalizedLowercase:n.toLowerCase()}}function L_t(e){return Array.isArray(e)?jze(e.map(t=>t.original).join(aMn)):jze(e.original)}var dxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},x_t=function(e,t){return function(n,r){t(n,r,e)}},Ehe,Wb;let bD=(Wb=class extends iMn{constructor(t,n,r=Object.create(null)){super(r),this._languageFeaturesService=t,this._outlineModelService=n,this.options=r,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(t){return this.provideLabelPick(t,U(1345,"To go to a symbol, first open a text editor with symbol information.")),ft.None}provideWithTextEditor(t,n,r,o){const s=t.editor,a=this.getModel(s);return a?this._languageFeaturesService.documentSymbolProvider.has(a)?this.doProvideWithEditorSymbols(t,a,n,r,o):this.doProvideWithoutEditorSymbols(t,a,n,r):ft.None}doProvideWithoutEditorSymbols(t,n,r,o){const s=new xt;return this.provideLabelPick(r,U(1346,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(n,s)||o.isCancellationRequested||s.add(this.doProvideWithEditorSymbols(t,n,r,o)))(),s}provideLabelPick(t,n){t.items=[{label:n,index:0,kind:14}],t.ariaLabel=n}async waitForLanguageSymbolRegistry(t,n){if(this._languageFeaturesService.documentSymbolProvider.has(t))return!0;const r=new pI,o=n.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(t)&&(o.dispose(),r.complete(!0))}));return n.add(Hn(()=>r.complete(!1))),r.p}doProvideWithEditorSymbols(t,n,r,o,s){var g;const a=t.editor,l=new xt;l.add(r.onDidAccept(m=>{var f;const[v]=r.selectedItems;v&&v.range&&(this.gotoLocation(t,{range:v.range.selection,keyMods:r.keyMods,preserveFocus:m.inBackground}),(f=s==null?void 0:s.handleAccept)==null||f.call(s,v,m.inBackground),m.inBackground||r.hide())})),l.add(r.onDidTriggerItemButton(({item:m})=>{m&&m.range&&(this.gotoLocation(t,{range:m.range.selection,keyMods:r.keyMods,forceSideBySide:!0}),r.hide())}));const d=this.getDocumentSymbols(n,o),u=l.add(new ts),h=async m=>{var v;(v=u==null?void 0:u.value)==null||v.cancel(),r.busy=!1,u.value=new ja,r.busy=!0;try{const f=jze(r.value.substr(Ehe.PREFIX.length).trim()),k=await this.doGetSymbolPicks(d,f,void 0,u.value.token,n);if(o.isCancellationRequested)return;if(k.length>0){if(r.items=k,m&&f.original.length===0){const A=cJ(k,p=>!!(p.type!=="separator"&&p.range&&Ee.containsPosition(p.range.decoration,m)));A&&(r.activeItems=[A])}}else f.original.length>0?this.provideLabelPick(r,U(1347,"No matching editor symbols")):this.provideLabelPick(r,U(1348,"No editor symbols"))}finally{o.isCancellationRequested||(r.busy=!1)}};return l.add(r.onDidChangeValue(()=>h(void 0))),h((g=a.getSelection())==null?void 0:g.getPosition()),l.add(r.onDidChangeActive(()=>{const[m]=r.activeItems;m&&m.range&&(a.revealRangeInCenter(m.range.selection,0),this.addDecorations(a,m.range.decoration))})),l}async doGetSymbolPicks(t,n,r,o,s){var A,p;const a=await t;if(o.isCancellationRequested)return[];const l=n.original.indexOf(Ehe.SCOPE_PREFIX)===0,d=l?1:0;let u,h;n.values&&n.values.length>1?(u=L_t(n.values[0]),h=L_t(n.values.slice(1))):u=n;let g;const m=(p=(A=this.options)==null?void 0:A.openSideBySideDirection)==null?void 0:p.call(A);m&&(g=[{iconClass:m==="right"?fi.asClassName(zt.splitHorizontal):fi.asClassName(zt.splitVertical),tooltip:m==="right"?U(1349,"Open to the Side"):U(1350,"Open to the Bottom")}]);const v=[];for(let b=0;bd){let P=!1;if(u!==n&&([S,L]=Yxe(y,{...n,values:void 0},d,C),typeof S=="number"&&(P=!0)),typeof S!="number"&&([S,L]=Yxe(y,u,d,C),typeof S!="number"))continue;if(!P&&h){if(_&&h.original.length>0&&([E,T]=Yxe(_,h)),typeof E!="number")continue;typeof S=="number"&&(S+=E)}}const D=w.tags&&w.tags.indexOf(1)>=0;v.push({index:b,kind:w.kind,score:S,label:y,ariaLabel:Rco(w.name,w.kind),description:_,highlights:D?void 0:{label:L,description:T},range:{selection:Ee.collapseToStart(w.selectionRange),decoration:w.range},uri:s.uri,symbolName:O,strikethrough:D,buttons:g})}const f=v.sort((b,w)=>l?this.compareByKindAndScore(b,w):this.compareByScore(b,w));let k=[];if(l){let y=function(){w&&typeof b=="number"&&O>0&&(w.label=oR(qxe[b]||Zxe,O))},b,w,O=0;for(const C of f)b!==C.kind?(y(),b=C.kind,O=1,w={type:"separator"},k.push(w)):O++,k.push(C);y()}else f.length>0&&(k=[{label:U(1351,"symbols ({0})",v.length),type:"separator"},...f]);return k}compareByScore(t,n){if(typeof t.score!="number"&&typeof n.score=="number")return 1;if(typeof t.score=="number"&&typeof n.score!="number")return-1;if(typeof t.score=="number"&&typeof n.score=="number"){if(t.score>n.score)return-1;if(t.scoren.index?1:0}compareByKindAndScore(t,n){const r=qxe[t.kind]||Zxe,o=qxe[n.kind]||Zxe,s=r.localeCompare(o);return s===0?this.compareByScore(t,n):s}async getDocumentSymbols(t,n){const r=await this._outlineModelService.getOrCreate(t,n);return n.isCancellationRequested?[]:r.asListOfDocumentSymbols()}},Ehe=Wb,Wb.PREFIX="@",Wb.SCOPE_PREFIX=":",Wb.PREFIX_BY_CATEGORY=`${Wb.PREFIX}${Wb.SCOPE_PREFIX}`,Wb);bD=Ehe=dxo([x_t(0,Nn),x_t(1,ore)],bD);const Zxe=U(1352,"properties ({0})"),qxe={5:U(1353,"methods ({0})"),11:U(1354,"functions ({0})"),8:U(1355,"constructors ({0})"),12:U(1356,"variables ({0})"),4:U(1357,"classes ({0})"),22:U(1358,"structs ({0})"),23:U(1359,"events ({0})"),24:U(1360,"operators ({0})"),10:U(1361,"interfaces ({0})"),2:U(1362,"namespaces ({0})"),3:U(1363,"packages ({0})"),25:U(1364,"type parameters ({0})"),1:U(1365,"modules ({0})"),6:U(1366,"properties ({0})"),9:U(1367,"enumerations ({0})"),21:U(1368,"enumeration members ({0})"),14:U(1369,"strings ({0})"),0:U(1370,"files ({0})"),17:U(1371,"arrays ({0})"),15:U(1372,"numbers ({0})"),16:U(1373,"booleans ({0})"),18:U(1374,"objects ({0})"),19:U(1375,"keys ({0})"),7:U(1376,"fields ({0})"),13:U(1377,"constants ({0})")};var uxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Kxe=function(e,t){return function(n,r){t(n,r,e)}};let Wze=class extends bD{constructor(t,n,r){super(n,r),this.editorService=t,this.onDidActiveTextEditorControlChange=an.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Wze=uxo([Kxe(0,yo),Kxe(1,Nn),Kxe(2,ore)],Wze);const PAe=class PAe extends Bn{constructor(){super({id:PAe.ID,label:mee.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:$e.hasDocumentSymbolProvider,kbOpts:{kbExpr:$e.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(t){t.get(Rf).quickAccess.show(bD.PREFIX,{itemActivation:Qb.NONE})}};PAe.ID="editor.action.quickOutline";let hke=PAe;un(hke);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:Wze,prefix:bD.PREFIX,helpEntries:[{description:mee.quickOutlineActionLabel,prefix:bD.PREFIX,commandId:hke.ID},{description:mee.quickOutlineByCategoryActionLabel,prefix:bD.PREFIX_BY_CATEGORY}]});function hxo(e){const t=new Map;for(const n of e)t.set(n,(t.get(n)??0)+1);return t}class HZ{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(t,n){const r=this.computeEmbedding(t),o=new Map,s=[];for(const[a,l]of this.documents){if(n.isCancellationRequested)return[];for(const d of l.chunks){const u=this.computeSimilarityScore(d,r,o);u>0&&s.push({key:a,score:u})}}return s}static termFrequencies(t){return hxo(HZ.splitTerms(t))}static*splitTerms(t){const n=r=>r.toLowerCase();for(const[r]of t.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield n(r);const o=r.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(o.length>1)for(const s of o)s.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(s)&&(yield n(s))}}updateDocuments(t){for(const{key:n}of t)this.deleteDocument(n);for(const n of t){const r=[];for(const o of n.textChunks){const s=HZ.termFrequencies(o);for(const a of s.keys())this.chunkOccurrences.set(a,(this.chunkOccurrences.get(a)??0)+1);r.push({text:o,tf:s})}this.chunkCount+=r.length,this.documents.set(n.key,{chunks:r})}return this}deleteDocument(t){const n=this.documents.get(t);if(n){this.documents.delete(t),this.chunkCount-=n.chunks.length;for(const r of n.chunks)for(const o of r.tf.keys()){const s=this.chunkOccurrences.get(o);if(typeof s=="number"){const a=s-1;a<=0?this.chunkOccurrences.delete(o):this.chunkOccurrences.set(o,a)}}}}computeSimilarityScore(t,n,r){let o=0;for(const[s,a]of Object.entries(n)){const l=t.tf.get(s);if(!l)continue;let d=r.get(s);typeof d!="number"&&(d=this.computeIdf(s),r.set(s,d));const u=l*d;o+=u*a}return o}computeEmbedding(t){const n=HZ.termFrequencies(t);return this.computeTfidf(n)}computeIdf(t){const n=this.chunkOccurrences.get(t)??0;return n>0?Math.log((this.chunkCount+1)/n):0}computeTfidf(t){const n=Object.create(null);for(const[r,o]of t){const s=this.computeIdf(r);s>0&&(n[r]=o*s)}return n}}function fxo(e){var r;const t=e.slice(0);t.sort((o,s)=>s.score-o.score);const n=((r=t[0])==null?void 0:r.score)??0;if(n>0)for(const o of t)o.score/=n;return t}var LN;(function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"})(LN||(LN={}));function Jxe(e){const t=e;return Array.isArray(t.items)}function E_t(e){const t=e;return!!t.picks&&t.additionalPicks instanceof Promise}class gxo extends ft{constructor(t,n){super(),this.prefix=t,this.options=n}provide(t,n,r){var u;const o=new xt;t.canAcceptInBackground=!!((u=this.options)!=null&&u.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;let s;const a=o.add(new ts),l=async()=>{var A;s==null||s.dispose(!0),t.busy=!1;const h=a.value=new xt;s=h.add(new ja(n));const g=s.token;let m=t.value.substring(this.prefix.length);(A=this.options)!=null&&A.shouldSkipTrimPickFilter||(m=m.trim());const v=this._getPicks(m,h,g,r),f=(p,b)=>{var y;let w,O;if(Jxe(p)?(w=p.items,O=p.active):w=p,w.length===0){if(b)return!1;(m.length>0||t.hideInput)&&((y=this.options)!=null&&y.noResultsPick)&&(tR(this.options.noResultsPick)?w=[this.options.noResultsPick(m)]:w=[this.options.noResultsPick])}return t.items=w,O&&(t.activeItems=[O]),!0},k=async p=>{let b=!1,w=!1;await Promise.all([(async()=>{typeof p.mergeDelay=="number"&&(await Cy(p.mergeDelay),g.isCancellationRequested)||w||(b=f(p.picks,!0))})(),(async()=>{t.busy=!0;try{const O=await p.additionalPicks;if(g.isCancellationRequested)return;let y,C;Jxe(p.picks)?(y=p.picks.items,C=p.picks.active):y=p.picks;let _,S;if(Jxe(O)?(_=O.items,S=O.active):_=O,_.length>0||!b){let L;if(!C&&!S){const E=t.activeItems[0];E&&y.indexOf(E)!==-1&&(L=E)}f({items:[...y,..._],active:C||S||L})}}finally{g.isCancellationRequested||(t.busy=!1),w=!0}})()])};if(v!==null)if(E_t(v))await k(v);else if(!(v instanceof Promise))f(v);else{t.busy=!0;try{const p=await v;if(g.isCancellationRequested)return;E_t(p)?await k(p):f(p)}finally{g.isCancellationRequested||(t.busy=!1)}}};o.add(t.onDidChangeValue(()=>l())),l(),o.add(t.onDidAccept(h=>{var m;if(r!=null&&r.handleAccept){h.inBackground||t.hide(),(m=r.handleAccept)==null||m.call(r,t.activeItems[0],h.inBackground);return}const[g]=t.selectedItems;typeof(g==null?void 0:g.accept)=="function"&&(h.inBackground||t.hide(),g.accept(t.keyMods,h))}));const d=async(h,g)=>{var v;if(typeof g.trigger!="function")return;const m=((v=g.buttons)==null?void 0:v.indexOf(h))??-1;if(m>=0){const f=g.trigger(m,t.keyMods),k=typeof f=="number"?f:await f;if(n.isCancellationRequested)return;switch(k){case LN.NO_ACTION:break;case LN.CLOSE_PICKER:t.hide();break;case LN.REFRESH_PICKER:l();break;case LN.REMOVE_ITEM:{const A=t.items.indexOf(g);if(A!==-1){const p=t.items.slice(),b=p.splice(A,1),w=t.activeItems.filter(y=>y!==b[0]),O=t.keepScrollPosition;t.keepScrollPosition=!0,t.items=p,w&&(t.activeItems=w),t.keepScrollPosition=O}break}}}};return o.add(t.onDidTriggerItemButton(({button:h,item:g})=>d(h,g))),o.add(t.onDidTriggerSeparatorButton(({button:h,separator:g})=>d(h,g))),o}}new wp(1e4);const mxo=new wp(1e4);function kxo(e){return Axo(e,"NFD",mxo)}const vxo=/[^\u0000-\u0080]/;function Axo(e,t,n){if(!e)return e;const r=n.get(e);if(r)return r;let o;return vxo.test(e)?o=e.normalize(t):o=e,n.set(e,o),o}const pxo=function(){const e=/[\u0300-\u036f]/g;return function(t){return kxo(t).replace(e,"")}}();var lMn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},B5=function(e,t){return function(n,r){t(n,r,e)}},eT,hd,FO;let Vze=(FO=class extends gxo{constructor(t,n,r,o,s,a){super(eT.PREFIX,t),this.keybindingService=r,this.commandService=o,this.telemetryService=s,this.dialogService=a,this.commandsHistory=this._register(n.createInstance(zze)),this.options=t}async _getPicks(t,n,r,o){var f,k;const s=await this.getCommandPicks(r);if(r.isCancellationRequested)return[];const a=iR(()=>{const A=new HZ;A.updateDocuments(s.map(b=>({key:b.commandId,textChunks:[this.getTfIdfChunk(b)]})));const p=A.calculateScores(t,r);return fxo(p).filter(b=>b.score>eT.TFIDF_THRESHOLD).slice(0,eT.TFIDF_MAX_RESULTS)}),l=this.normalizeForFiltering(t),d=[];for(const A of s){A.labelNoAccents??(A.labelNoAccents=this.normalizeForFiltering(A.label));const p=eT.WORD_FILTER(l,A.labelNoAccents)??void 0;let b;if(A.commandAlias&&(A.aliasNoAccents??(A.aliasNoAccents=this.normalizeForFiltering(A.commandAlias)),b=eT.WORD_FILTER(l,A.aliasNoAccents)??void 0),p||b)A.highlights={label:p,detail:this.options.showAlias?b:void 0},d.push(A);else if(t===A.commandId)d.push(A);else if(t.length>=3){const w=a();if(r.isCancellationRequested)return[];const O=w.find(y=>y.key===A.commandId);O&&(A.tfIdfScore=O.score,d.push(A))}}const u=new Map;for(const A of d){const p=u.get(A.label);p?(A.description=A.commandId,p.description=p.commandId):u.set(A.label,A)}d.sort((A,p)=>{if(A.tfIdfScore&&p.tfIdfScore)return A.tfIdfScore===p.tfIdfScore?A.label.localeCompare(p.label):p.tfIdfScore-A.tfIdfScore;if(A.tfIdfScore)return 1;if(p.tfIdfScore)return-1;const b=this.commandsHistory.peek(A.commandId),w=this.commandsHistory.peek(p.commandId);if(b&&w)return b>w?-1:1;if(b)return-1;if(w)return 1;if(this.options.suggestedCommandIds){const C=this.options.suggestedCommandIds.has(A.commandId),_=this.options.suggestedCommandIds.has(p.commandId);if(C&&_)return 0;if(C)return-1;if(_)return 1}const O=A.commandCategory===mze.Developer.value,y=p.commandCategory===mze.Developer.value;return O&&!y?1:!O&&y?-1:A.label.localeCompare(p.label)});const h=[];let g=!1,m=!0,v=!!this.options.suggestedCommandIds;for(let A=0;A{var b;const A=await this.getAdditionalCommandPicks(s,d,t,r);if(r.isCancellationRequested)return[];const p=A.map(w=>this.toCommandPick(w,o));return m&&((b=p[0])==null?void 0:b.type)!=="separator"&&p.unshift({type:"separator",label:U(1744,"similar commands")}),p})()}:h}toCommandPick(t,n){if(t.type==="separator")return t;const r=this.keybindingService.lookupKeybinding(t.commandId),o=r?U(1745,"{0}, {1}",t.label,r.getAriaLabel()):t.label;return{...t,ariaLabel:o,detail:this.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:r,accept:async()=>{var s;this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:(n==null?void 0:n.from)??"quick open"});try{(s=t.args)!=null&&s.length?await this.commandService.executeCommand(t.commandId,...t.args):await this.commandService.executeCommand(t.commandId)}catch(a){C2(a)||this.dialogService.error(U(1746,"Command '{0}' resulted in an error",t.label),H1e(a))}}}}getTfIdfChunk({label:t,commandAlias:n,commandDescription:r}){let o=t;return n&&n!==t&&(o+=` - ${n}`),r&&r.value!==t&&(o+=` - ${r.value===r.original?r.value:`${r.value} (${r.original})`}`),o}normalizeForFiltering(t){const n=pxo(t);return n.length!==t.length?(this.telemetryService.publicLog2("QuickAccess:FilterLengthMismatch",{originalLength:t.length,normalizedLength:n.length}),t):n}},eT=FO,FO.PREFIX=">",FO.TFIDF_THRESHOLD=.5,FO.TFIDF_MAX_RESULTS=5,FO.WORD_FILTER=ctt(_J,Igo,hQn),FO);Vze=eT=lMn([B5(1,Yn),B5(2,Do),B5(3,ba),B5(4,Nf),B5(5,are)],Vze);var Vb;let zze=(Vb=class extends ft{constructor(t,n,r){super(),this.storageService=t,this.configurationService=n,this.logService=r,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(t=>this.updateConfiguration(t))),this._register(this.storageService.onWillSaveState(t=>{t.reason===F9.SHUTDOWN&&this.saveState()}))}updateConfiguration(t){t&&!t.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=hd.getConfiguredCommandHistoryLength(this.configurationService),hd.cache&&hd.cache.limit!==this.configuredCommandsHistoryLength&&(hd.cache.limit=this.configuredCommandsHistoryLength,hd.hasChanges=!0))}load(){const t=this.storageService.get(hd.PREF_KEY_CACHE,0);let n;if(t)try{n=JSON.parse(t)}catch(o){this.logService.error(`[CommandsHistory] invalid data: ${o}`)}const r=hd.cache=new wp(this.configuredCommandsHistoryLength,1);if(n){let o;n.usesLRU?o=n.entries:o=n.entries.sort((s,a)=>s.value-a.value),o.forEach(s=>r.set(s.key,s.value))}hd.counter=this.storageService.getNumber(hd.PREF_KEY_COUNTER,0,hd.counter)}push(t){hd.cache&&(hd.cache.set(t,hd.counter++),hd.hasChanges=!0)}peek(t){var n;return(n=hd.cache)==null?void 0:n.peek(t)}saveState(){if(!hd.cache||!hd.hasChanges)return;const t={usesLRU:!0,entries:[]};hd.cache.forEach((n,r)=>t.entries.push({key:r,value:n})),this.storageService.store(hd.PREF_KEY_CACHE,JSON.stringify(t),0,0),this.storageService.store(hd.PREF_KEY_COUNTER,hd.counter,0,0),hd.hasChanges=!1}static getConfiguredCommandHistoryLength(t){var o,s;const r=(s=(o=t.getValue().workbench)==null?void 0:o.commandPalette)==null?void 0:s.history;return typeof r=="number"?r:hd.DEFAULT_COMMANDS_HISTORY_LENGTH}},hd=Vb,Vb.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Vb.PREF_KEY_CACHE="commandPalette.mru.cache",Vb.PREF_KEY_COUNTER="commandPalette.mru.counter",Vb.counter=1,Vb.hasChanges=!1,Vb);zze=hd=lMn([B5(0,Bg),B5(1,ar),B5(2,va)],zze);class bxo extends Vze{constructor(t,n,r,o,s,a){super(t,n,r,o,s,a)}getCodeEditorCommandPicks(){var r;const t=this.activeTextEditorControl;if(!t)return[];const n=[];for(const o of t.getSupportedActions()){let s;(r=o.metadata)!=null&&r.description&&(Oko(o.metadata.description)?s=o.metadata.description:s={original:o.metadata.description,value:o.metadata.description}),n.push({commandId:o.id,commandAlias:o.alias,commandDescription:s,label:mtt(o.label)||o.id})}return n}}var wxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},NP=function(e,t){return function(n,r){t(n,r,e)}};let Aee=class extends bxo{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(t,n,r,o,s,a){super({showAlias:!1},t,r,o,s,a),this.codeEditorService=n}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};Aee=wxo([NP(0,Yn),NP(1,yo),NP(2,Do),NP(3,ba),NP(4,Nf),NP(5,are)],Aee);const FAe=class FAe extends Bn{constructor(){super({id:FAe.ID,label:dke.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(t){t.get(Rf).quickAccess.show(Aee.PREFIX)}};FAe.ID="editor.action.quickCommand";let fke=FAe;un(fke);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:Aee,prefix:Aee.PREFIX,helpEntries:[{description:dke.quickCommandHelp,commandId:fke.ID}]});var Oxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},UP=function(e,t){return function(n,r){t(n,r,e)}};let Hze=class extends QR{constructor(t,n,r,o,s,a,l){super(!0,t,n,r,o,s,a,l)}};Hze=Oxo([UP(1,Qi),UP(2,yo),UP(3,ic),UP(4,Yn),UP(5,Bg),UP(6,ar)],Hze);mo(QR.ID,Hze,4);class yxo{constructor(t,n,r,o,s){this._parsedThemeRuleBrand=void 0,this.token=t,this.index=n,this.fontStyle=r,this.foreground=o,this.background=s}}function Cxo(e){if(!e||!Array.isArray(e))return[];const t=[];let n=0;for(let r=0,o=e.length;r{const m=Txo(h.token,g.token);return m!==0?m:h.index-g.index});let n=0,r="000000",o="ffffff";for(;e.length>=1&&e[0].token==="";){const h=e.shift();h.fontStyle!==-1&&(n=h.fontStyle),h.foreground!==null&&(r=h.foreground),h.background!==null&&(o=h.background)}const s=new Lxo;for(const h of t)s.getId(h);const a=s.getId(r),l=s.getId(o),d=new rit(n,a,l),u=new oit(d);for(let h=0,g=e.length;h"u"){const o=this._match(n),s=Exo(n);r=(o.metadata|s<<8)>>>0,this._cache.set(n,r)}return(r|t<<0)>>>0}}const xxo=/\b(comment|string|regex|regexp)\b/;function Exo(e){const t=e.match(xxo);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function Txo(e,t){return et?1:0}class rit{constructor(t,n,r){this._themeTrieElementRuleBrand=void 0,this._fontStyle=t,this._foreground=n,this._background=r,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new rit(this._fontStyle,this._foreground,this._background)}acceptOverwrite(t,n,r){t!==-1&&(this._fontStyle=t),n!==0&&(this._foreground=n),r!==0&&(this._background=r),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class oit{constructor(t){this._themeTrieElementBrand=void 0,this._mainRule=t,this._children=new Map}match(t){if(t==="")return this._mainRule;const n=t.indexOf(".");let r,o;n===-1?(r=t,o=""):(r=t.substring(0,n),o=t.substring(n+1));const s=this._children.get(r);return typeof s<"u"?s.match(o):this._mainRule}insert(t,n,r,o){if(t===""){this._mainRule.acceptOverwrite(n,r,o);return}const s=t.indexOf(".");let a,l;s===-1?(a=t,l=""):(a=t.substring(0,s),l=t.substring(s+1));let d=this._children.get(a);typeof d>"u"&&(d=new oit(this._mainRule.clone()),this._children.set(a,d)),d.insert(l,n,r,o)}}function Qxo(e){const t=[];for(let n=1,r=e.length;n{X8o(u,[f])}});if(g.push({label:h(r),run:()=>$8o(u,[r])}),a){const f=new z8o;g.push({label:f.label,run:async()=>f.runAction(u)})}else if(s){const f=new H8o;g.push({label:f.label,run:async()=>f.runAction(u)})}function m(f){return typeof f.desc.title=="string"?f.desc.title:f.desc.title.value}if(o.kind===0){const f=new IR;g.push({label:m(f),run:async()=>f.runAction(u)})}else if(o.kind===1){const f=new fee;g.push({label:m(f),run:async()=>f.runAction(u)})}else if(o.kind===2){const f=new gee;g.push({label:m(f),run:async()=>f.runAction(u)})}else G8o(o);const v=await d.pick(g,{title:HIn});v&&await v.run()}};RAe.ID="editor.action.unicodeHighlight.showExcludeOptions";let oke=RAe;async function $8o(e,t){const n=e.getValue(Jm.allowedCharacters);let r;typeof n=="object"&&n?r=n:r={};for(const o of t)r[String.fromCodePoint(o)]=!0;await e.updateValue(Jm.allowedCharacters,r,2)}async function X8o(e,t){var o;const n=(o=e.inspect(Jm.allowedLocales).user)==null?void 0:o.value;let r;typeof n=="object"&&n?r=Object.assign({},n):r={};for(const s of t)r[s]=!0;await e.updateValue(Jm.allowedLocales,r,2)}function G8o(e){throw new Error(`Unexpected value: ${e}`)}ys(IR);ys(fee);ys(gee);ys(oke);mo(hee.ID,hee,1);BI.register(Cze);const are=Cr("dialogService");var Y8o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},h_t=function(e,t){return function(n,r){t(n,r,e)}};const XIn="ignoreUnusualLineTerminators";function Z8o(e,t,n){e.setModelProperty(t.uri,XIn,n)}function q8o(e,t){return e.getModelProperty(t.uri,XIn)}var Jj;let ske=(Jj=class extends ft{constructor(t,n,r){super(),this._editor=t,this._dialogService=n,this._codeEditorService=r,this._isPresentingDialog=!1,this._config=this._editor.getOption(143),this._register(this._editor.onDidChangeConfiguration(o=>{o.hasChanged(143)&&(this._config=this._editor.getOption(143),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(o=>{o.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators()||q8o(this._codeEditorService,t)===!0||this._editor.getOption(104))return;if(this._config==="auto"){t.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let r;try{this._isPresentingDialog=!0,r=await this._dialogService.confirm({title:U(1558,"Unusual Line Terminators"),message:U(1559,"Detected unusual line terminators"),detail:U(1560,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",hA(t.uri)),primaryButton:U(1561,"&&Remove Unusual Line Terminators"),cancelButton:U(1562,"Ignore")})}finally{this._isPresentingDialog=!1}if(!r.confirmed){Z8o(this._codeEditorService,t,!0);return}t.removeUnusualLineTerminators(this._editor.getSelections())}},Jj.ID="editor.contrib.unusualLineTerminatorsDetector",Jj);ske=Y8o([h_t(1,are),h_t(2,yo)],ske);mo(ske.ID,ske,1);const vce="**",f_t="/",Lhe="[/\\\\]",xhe="[^/\\\\]",K8o=/\//g;function g_t(e,t){switch(e){case 0:return"";case 1:return`${xhe}*?`;default:return`(?:${Lhe}|${xhe}+${Lhe}${t?`|${Lhe}${xhe}+`:""})*?`}}function m_t(e,t){if(!e)return[];const n=[];let r=!1,o=!1,s="";for(const a of e){switch(a){case t:if(!r&&!o){n.push(s),s="";continue}break;case"{":r=!0;break;case"}":r=!1;break;case"[":o=!0;break;case"]":o=!1;break}s+=a}return s&&n.push(s),n}function GIn(e){if(!e)return"";let t="";const n=m_t(e,f_t);if(n.every(r=>r===vce))t=".*";else{let r=!1;n.forEach((o,s)=>{if(o===vce){if(r)return;t+=g_t(2,s===n.length-1)}else{let a=!1,l="",d=!1,u="";for(const h of o){if(h!=="}"&&a){l+=h;continue}if(d&&(h!=="]"||!u)){let g;h==="-"?g=h:(h==="^"||h==="!")&&!u?g="^":h===f_t?g="":g=M0(h),u+=g;continue}switch(h){case"{":a=!0;continue;case"[":d=!0;continue;case"}":{const m=`(?:${m_t(l,",").map(v=>GIn(v)).join("|")})`;t+=m,a=!1,l="";break}case"]":{t+="["+u+"]",d=!1,u="";break}case"?":t+=xhe;continue;case"*":t+=g_t(1);continue;default:t+=M0(h)}}sd===u,endsWith:r?Aeo:(d,u)=>d.endsWith(u),isEqualOrParent:(d,u)=>pNe(d,u,!v1||r)},s=`${r?n.toLowerCase():n}_${!!t.trimForExclusions}_${r}`;let a=k_t.get(s);if(a)return A_t(a,e,o);let l;return J8o.test(n)?a=oLo(n.substring(4),n,o):(l=eLo.exec(Xxe(n,o)))?a=sLo(l[1],n,o):(t.trimForExclusions?nLo:tLo).test(n)?a=aLo(n,o):(l=iLo.exec(Xxe(n,o)))?a=p_t(l[1].substring(1),n,!0,o):(l=rLo.exec(Xxe(n,o)))?a=p_t(l[1],n,!1,o):a=lLo(n,o),k_t.set(s,a),A_t(a,e,o)}function A_t(e,t,n){if(typeof t=="string")return e;const r=function(o,s){return n.isEqualOrParent(o,t.base)?e(_ie(o.substring(t.base.length),o3),s):null};return r.allBasenames=e.allBasenames,r.allPaths=e.allPaths,r.basenames=e.basenames,r.patterns=e.patterns,r}function Xxe(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substring(0,e.length-2):e}function oLo(e,t,n){return function(r,o){return typeof r=="string"&&n.endsWith(r,e)?t:null}}function sLo(e,t,n){const r=`/${e}`,o=`\\${e}`,s=function(l,d){return typeof l!="string"?null:d?n.equals(d,e)?t:null:n.equals(l,e)||n.endsWith(l,r)||n.endsWith(l,o)?t:null},a=[e];return s.basenames=a,s.patterns=[t],s.allBasenames=a,s}function aLo(e,t){const n=ZIn(e.slice(1,-1).split(",").map(l=>Jnt(l,t)).filter(l=>l!==uy),e),r=n.length;if(!r)return uy;if(r===1)return n[0];const o=function(l,d){for(let u=0,h=n.length;u!!l.allBasenames);s&&(o.allBasenames=s.allBasenames);const a=n.reduce((l,d)=>d.allPaths?l.concat(d.allPaths):l,[]);return a.length&&(o.allPaths=a),o}function p_t(e,t,n,r){const o=o3===Jc.sep,s=o?e:e.replace(K8o,o3),a=o3+s,l=Jc.sep+e;let d;return n?d=function(u,h){return typeof u=="string"&&(r.equals(u,s)||r.endsWith(u,a)||!o&&(r.equals(u,e)||r.endsWith(u,l)))?t:null}:d=function(u,h){return typeof u=="string"&&(r.equals(u,s)||!o&&r.equals(u,e))?t:null},d.allPaths=[(n?"*/":"./")+e],d}function lLo(e,t){try{const n=new RegExp(`^${GIn(e)}$`,t.ignoreCase?"i":void 0);return function(r){return n.lastIndex=0,typeof r=="string"&&n.test(r)?e:null}}catch{return uy}}function cLo(e,t,n){return!e||typeof t!="string"?!1:YIn(e,n)(t)}function YIn(e,t={}){if(!e)return v_t;if(typeof e=="string"||dLo(e)){const n=Jnt(e,t);if(n===uy)return v_t;const r=function(o,s){return!!n(o,s)};return n.allBasenames&&(r.allBasenames=n.allBasenames),n.allPaths&&(r.allPaths=n.allPaths),r}return uLo(e,t)}function dLo(e){const t=e;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function uLo(e,t){const n=ZIn(Object.getOwnPropertyNames(e).map(l=>hLo(l,e[l],t)).filter(l=>l!==uy)),r=n.length;if(!r)return uy;if(!n.some(l=>!!l.requiresSiblings)){if(r===1)return n[0];const l=function(h,g){let m;for(let v=0,f=n.length;v{for(const v of m){const f=await v;if(typeof f=="string")return f}return null})():null},d=n.find(h=>!!h.allBasenames);d&&(l.allBasenames=d.allBasenames);const u=n.reduce((h,g)=>g.allPaths?h.concat(g.allPaths):h,[]);return u.length&&(l.allPaths=u),l}const o=function(l,d,u){let h,g;for(let m=0,v=n.length;m{for(const m of g){const v=await m;if(typeof v=="string")return v}return null})():null},s=n.find(l=>!!l.allBasenames);s&&(o.allBasenames=s.allBasenames);const a=n.reduce((l,d)=>d.allPaths?l.concat(d.allPaths):l,[]);return a.length&&(o.allPaths=a),o}function hLo(e,t,n){if(t===!1)return uy;const r=Jnt(e,n);if(r===uy)return uy;if(typeof t=="boolean")return r;if(t){const o=t.when;if(typeof o=="string"){const s=(a,l,d,u)=>{if(!u||!r(a,l))return null;const h=o.replace("$(basename)",()=>d),g=u(h);return qFe(g)?g.then(m=>m?e:null):g?e:null};return s.requiresSiblings=!0,s}}return r}function ZIn(e,t){const n=e.filter(l=>!!l.basenames);if(n.length<2)return e;const r=n.reduce((l,d)=>{const u=d.basenames;return u?l.concat(u):l},[]);let o;if(t){o=[];for(let l=0,d=r.length;l{const u=d.patterns;return u?l.concat(u):l},[]);const s=function(l,d){if(typeof l!="string")return null;if(!d){let h;for(h=l.length;h>0;h--){const g=l.charCodeAt(h-1);if(g===47||g===92)break}d=l.substring(h)}const u=r.indexOf(d);return u!==-1?o[u]:null};s.basenames=r,s.patterns=o,s.allBasenames=r;const a=e.filter(l=>!l.basenames);return a.push(s),a}function eit(e,t,n,r,o,s){if(Array.isArray(e)){let a=0;for(const l of e){const d=eit(l,t,n,r,o,s);if(d===10)return d;d>a&&(a=d)}return a}else{if(typeof e=="string")return r?e==="*"?5:e===n?10:0:0;if(e){const{language:a,pattern:l,scheme:d,hasAccessToAllModels:u,notebookType:h}=e;if(!r&&!u)return 0;h&&o&&(t=o);let g=0;if(d)if(d===t.scheme)g=10;else if(d==="*")g=5;else return 0;if(a)if(a===n)g=10;else if(a==="*")g=Math.max(g,5);else return 0;if(h)if(h===s)g=10;else if(h==="*"&&s!==void 0)g=Math.max(g,5);else return 0;if(l){let m;if(typeof l=="string"?m=l:m={...l,base:J6n(l.base)},m===t.fsPath||cLo(m,t.fsPath))g=10;else return 0}return g}else return 0}}var fLo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gLo=function(e,t){return function(n,r){t(n,r,e)}};class b_t{constructor(){this.selector={language:"*"}}provideDocumentHighlights(t,n,r){const o=[],s=t.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});return s?t.isDisposed()?void 0:t.findMatches(s.word,!0,!1,!0,Ime,!1).map(l=>({range:l.range,kind:uV.Text})):Promise.resolve(o)}provideMultiDocumentHighlights(t,n,r,o){const s=new _c,a=t.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});if(!a)return Promise.resolve(s);for(const l of[t,...r]){if(l.isDisposed())continue;const u=l.findMatches(a.word,!0,!1,!0,Ime,!1).map(h=>({range:h.range,kind:uV.Text}));u&&s.set(l.uri,u)}return s}}let Sze=class extends ft{constructor(t){super(),this._register(t.documentHighlightProvider.register("*",new b_t)),this._register(t.multiDocumentHighlightProvider.register("*",new b_t))}};Sze=fLo([gLo(0,Nn)],Sze);var qIn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},mO=function(e,t){return function(n,r){t(n,r,e)}},Pl,Lze;const tit=new yn("hasWordHighlights",!1);function KIn(e,t,n,r){const o=e.ordered(t);return EJe(o.map(s=>()=>Promise.resolve(s.provideDocumentHighlights(t,n,r)).then(void 0,Nc)),s=>s!=null).then(s=>{if(s){const a=new _c;return a.set(t.uri,s),a}return new _c})}function mLo(e,t,n,r,o){const s=e.ordered(t);return EJe(s.map(a=>()=>{const l=o.filter(d=>GEn(d)).filter(d=>eit(a.selector,d.uri,d.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(a.provideMultiDocumentHighlights(t,n,l,r)).then(void 0,Nc)}),a=>a!=null)}class JIn{constructor(t,n,r){this._model=t,this._selection=n,this._wordSeparators=r,this._wordRange=this._getCurrentWordRange(t,n),this._result=null}get result(){return this._result||(this._result=Fd(t=>this._compute(this._model,this._selection,this._wordSeparators,t))),this._result}_getCurrentWordRange(t,n){const r=t.getWordAtPosition(n.getPosition());return r?new Ee(n.startLineNumber,r.startColumn,n.startLineNumber,r.endColumn):null}cancel(){this.result.cancel()}}class kLo extends JIn{constructor(t,n,r,o){super(t,n,r),this._providers=o}_compute(t,n,r,o){return KIn(this._providers,t,n.getPosition(),o).then(s=>s||new _c)}}class vLo extends JIn{constructor(t,n,r,o,s){super(t,n,r),this._providers=o,this._otherModels=s}_compute(t,n,r,o){return mLo(this._providers,t,n.getPosition(),o,this._otherModels).then(s=>s||new _c)}}function ALo(e,t,n,r){return new kLo(t,n,r,e)}function pLo(e,t,n,r,o){return new vLo(t,n,r,e,o)}_1("_executeDocumentHighlights",async(e,t,n)=>{const r=e.get(Nn),o=await KIn(r.documentHighlightProvider,t,n,Er.None);return o==null?void 0:o.get(t.uri)});var c6;let xze=(c6=class{constructor(t,n,r,o,s,a,l,d){this.toUnhook=new xt,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new _c,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,this.runDelayer=this.toUnhook.add(new dA(50)),this.editor=t,this.providers=n,this.multiDocumentProviders=r,this.codeEditorService=a,this.textModelService=s,this.configurationService=l,this.logService=d,this._hasWordHighlights=tit.bindTo(o),this._ignorePositionChangeEvent=!1,this.occurrencesHighlightEnablement=this.editor.getOption(90),this.occurrencesHighlightDelay=this.configurationService.getValue("editor.occurrencesHighlightDelay"),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition(u=>{this._ignorePositionChangeEvent||this.occurrencesHighlightEnablement!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(u)})})),this.toUnhook.add(t.onDidFocusEditorText(u=>{this.occurrencesHighlightEnablement!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(t.onDidChangeModelContent(u=>{kbe(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(t.onDidChangeModel(u=>{!u.newModelUrl&&u.oldModelUrl?this._stopSingular():Pl.query&&this._run()})),this.toUnhook.add(t.onDidChangeConfiguration(u=>{var g,m;const h=this.editor.getOption(90);if(this.occurrencesHighlightEnablement!==h)switch(this.occurrencesHighlightEnablement=h,h){case"off":this._stopAll();break;case"singleFile":this._stopAll((m=(g=Pl.query)==null?void 0:g.modelInfo)==null?void 0:m.modelURI);break;case"multiFile":Pl.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",h);break}})),this.toUnhook.add(this.configurationService.onDidChangeConfiguration(u=>{if(u.affectsConfiguration("editor.occurrencesHighlightDelay")){const h=l.getValue("editor.occurrencesHighlightDelay");this.occurrencesHighlightDelay!==h&&(this.occurrencesHighlightDelay=h)}})),this.toUnhook.add(t.onDidBlurEditorWidget(()=>{var h,g;const u=this.codeEditorService.getFocusedCodeEditor();u?((h=u.getModel())==null?void 0:h.uri.scheme)===Ci.vscodeNotebookCell&&((g=this.editor.getModel())==null?void 0:g.uri.scheme)!==Ci.vscodeNotebookCell&&this._stopAll():this._stopAll()})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,Pl.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(t){this.occurrencesHighlightEnablement!=="off"&&(this.runDelayer.cancel(),this.runDelayer.trigger(()=>{this._run(!1,t)}))}stop(){this.occurrencesHighlightEnablement!=="off"&&this._stopAll()}_getSortedHighlights(){return this.decorations.getRanges().sort(Ee.compareRangesUsingStarts)}moveNext(){const t=this._getSortedHighlights(),r=(t.findIndex(s=>s.containsPosition(this.editor.getPosition()))+1)%t.length,o=t[r];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(o.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(o);const s=this._getWord();if(s){const a=this.editor.getModel().getLineContent(o.startLineNumber);um(`${a}, ${r+1} of ${t.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const t=this._getSortedHighlights(),r=(t.findIndex(s=>s.containsPosition(this.editor.getPosition()))-1+t.length)%t.length,o=t[r];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(o.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(o);const s=this._getWord();if(s){const a=this.editor.getModel().getLineContent(o.startLineNumber);um(`${a}, ${r+1} of ${t.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const t=Pl.storedDecorationIDs.get(this.editor.getModel().uri);t&&(this.editor.removeDecorations(t),Pl.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(t){const n=this.codeEditorService.listCodeEditors(),r=[];for(const o of n){if(!o.hasModel()||C6(o.getModel().uri,t))continue;const s=Pl.storedDecorationIDs.get(o.getModel().uri);if(!s)continue;o.removeDecorations(s),r.push(o.getModel().uri);const a=M6.get(o);a!=null&&a.wordHighlighter&&a.wordHighlighter.decorations.length>0&&(a.wordHighlighter.decorations.clear(),a.wordHighlighter.workerRequest=null,a.wordHighlighter._hasWordHighlights.set(!1))}for(const o of r)Pl.storedDecorationIDs.delete(o)}_stopSingular(){var t,n,r,o;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((t=this.editor.getModel())==null?void 0:t.uri.scheme)!==Ci.vscodeNotebookCell&&((r=(n=Pl.query)==null?void 0:n.modelInfo)==null?void 0:r.modelURI.scheme)!==Ci.vscodeNotebookCell?(Pl.query=null,this._run()):(o=Pl.query)!=null&&o.modelInfo&&(Pl.query.modelInfo=null)),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(t){this._removeAllDecorations(t),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(t){if(this.occurrencesHighlightEnablement==="off"){this._stopAll();return}if(t.source!=="api"&&t.reason!==3){this._stopAll();return}this._run()}_getWord(){const t=this.editor.getSelection(),n=t.startLineNumber,r=t.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:n,column:r})}getOtherModelsToHighlight(t){if(!t)return[];if(t.uri.scheme===Ci.vscodeNotebookCell){const s=[],a=this.codeEditorService.listCodeEditors();for(const l of a){const d=l.getModel();d&&d!==t&&d.uri.scheme===Ci.vscodeNotebookCell&&s.push(d)}return s}const r=[],o=this.codeEditorService.listCodeEditors();for(const s of o){if(!nnt(s))continue;const a=s.getModel();a&&t===a.modified&&r.push(a.modified)}if(r.length)return r;if(this.occurrencesHighlightEnablement==="singleFile")return[];for(const s of o){const a=s.getModel();a&&a!==t&&r.push(a)}return r}async _run(t,n){var o,s,a;if(this.editor.hasTextFocus()){const l=this.editor.getSelection();if(!l||l.startLineNumber!==l.endLineNumber){Pl.query=null,this._stopAll();return}const d=l.startColumn,u=l.endColumn,h=this._getWord();if(!h||h.startColumn>d||h.endColumn{l===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=h||[],this._beginRenderDecorations(n??this.occurrencesHighlightDelay))},zi)}catch(h){this.logService.error("Unexpected error during occurrence request. Log: ",h)}finally{u.dispose()}}else if(this.model.uri.scheme===Ci.vscodeNotebookCell){const l=++this.workerRequestTokenId;if(this.workerRequestCompleted=!1,!Pl.query||!Pl.query.modelInfo)return;const d=await this.textModelService.createModelReference(Pl.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(d.object.textEditorModel,Pl.query.modelInfo.selection,[this.model]),(a=this.workerRequest)==null||a.result.then(u=>{l===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=u||[],this._beginRenderDecorations(n??this.occurrencesHighlightDelay))},zi)}catch(u){this.logService.error("Unexpected error during occurrence request. Log: ",u)}finally{d.dispose()}}}computeWithModel(t,n,r){return r.length?pLo(this.multiDocumentProviders,t,n,this.editor.getOption(148),r):ALo(this.providers,t,n,this.editor.getOption(148))}_beginRenderDecorations(t){const n=new Date().getTime(),r=this.lastCursorPositionChangeTime+t;n>=r?(this.renderDecorationsTimer=void 0,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},r-n)}renderDecorations(){var n,r,o;this.renderDecorationsTimer=void 0;const t=this.codeEditorService.listCodeEditors();for(const s of t){const a=M6.get(s);if(!a)continue;const l=[],d=(n=s.getModel())==null?void 0:n.uri;if(d&&this.workerRequestValue.has(d)){const u=Pl.storedDecorationIDs.get(d),h=this.workerRequestValue.get(d);if(h)for(const m of h)m.range&&l.push({range:m.range,options:ESo(m.kind)});let g=[];s.changeDecorations(m=>{g=m.deltaDecorations(u??[],l)}),Pl.storedDecorationIDs=Pl.storedDecorationIDs.set(d,g),l.length>0&&((r=a.wordHighlighter)==null||r.decorations.set(l),(o=a.wordHighlighter)==null||o._hasWordHighlights.set(!0))}}this.workerRequest=null}dispose(){this._stopSingular(),this.toUnhook.dispose()}},Pl=c6,c6.storedDecorationIDs=new _c,c6.query=null,c6);xze=Pl=qIn([mO(4,Dg),mO(5,yo),mO(6,ar),mO(7,va)],xze);var pB;let M6=(pB=class extends ft{static get(t){return t.getContribution(Lze.ID)}constructor(t,n,r,o,s,a,l){super(),this._wordHighlighter=null;const d=()=>{t.hasModel()&&!t.getModel().isTooLargeForTokenization()&&t.getModel().uri.scheme!==Ci.accessibleView&&(this._wordHighlighter=new xze(t,r.documentHighlightProvider,r.multiDocumentHighlightProvider,n,s,o,a,l))};this._register(t.onDidChangeModel(u=>{var h,g;this._wordHighlighter&&(!u.newModelUrl&&((h=u.oldModelUrl)==null?void 0:h.scheme)!==Ci.vscodeNotebookCell&&((g=this.wordHighlighter)==null||g.stop()),this._wordHighlighter.dispose(),this._wordHighlighter=null),d()})),d()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var t;(t=this._wordHighlighter)==null||t.moveNext()}moveBack(){var t;(t=this._wordHighlighter)==null||t.moveBack()}restoreViewState(t){this._wordHighlighter&&t&&this._wordHighlighter.restore(250)}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},Lze=pB,pB.ID="editor.contrib.wordHighlighter",pB);M6=Lze=qIn([mO(1,Qi),mO(2,Nn),mO(3,yo),mO(4,Dg),mO(5,ar),mO(6,va)],M6);class eMn extends Bn{constructor(t,n){super(n),this._isNext=t}run(t,n){const r=M6.get(n);r&&(this._isNext?r.moveNext():r.moveBack())}}class bLo extends eMn{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:_t(1572,"Go to Next Symbol Highlight"),precondition:tit,kbOpts:{kbExpr:$e.editorTextFocus,primary:65,weight:100}})}}class wLo extends eMn{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:_t(1573,"Go to Previous Symbol Highlight"),precondition:tit,kbOpts:{kbExpr:$e.editorTextFocus,primary:1089,weight:100}})}}class OLo extends Bn{constructor(){super({id:"editor.action.wordHighlight.trigger",label:_t(1574,"Trigger Symbol Highlight"),precondition:void 0,kbOpts:{kbExpr:$e.editorTextFocus,primary:0,weight:100}})}run(t,n,r){const o=M6.get(n);o&&o.restoreViewState(!0)}}mo(M6.ID,M6,0);un(bLo);un(wLo);un(OLo);dH(Sze);class $3e extends $d{constructor(t){super(t),this._inSelectionMode=t.inSelectionMode,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,n,r){if(!n.hasModel())return;const o=fA(n.getOption(148),n.getOption(147)),s=n.getModel(),a=n.getSelections(),l=a.length>1,d=a.map(u=>{const h=new it(u.positionLineNumber,u.positionColumn),g=this._move(o,s,h,this._wordNavigationType,l);return this._moveTo(u,g,this._inSelectionMode)});if(s.pushStackElement(),n._getViewModel().setCursorStates("moveWordCommand",3,d.map(u=>So.fromModelSelection(u))),d.length===1){const u=new it(d[0].positionLineNumber,d[0].positionColumn);n.revealPosition(u,0)}}_moveTo(t,n,r){return r?new Qn(t.selectionStartLineNumber,t.selectionStartColumn,n.lineNumber,n.column):new Qn(n.lineNumber,n.column,n.lineNumber,n.column)}}class fE extends $3e{_move(t,n,r,o,s){return as.moveWordLeft(t,n,r,o,s)}}class gE extends $3e{_move(t,n,r,o,s){return as.moveWordRight(t,n,r,o)}}class yLo extends fE{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class CLo extends fE{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class _Lo extends fE{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:2063,mac:{primary:527},weight:100}})}}class SLo extends fE{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class LLo extends fE{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class xLo extends fE{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class ELo extends fE{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class TLo extends fE{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class QLo extends gE{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class DLo extends gE{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:2065,mac:{primary:529},weight:100}})}}class BLo extends gE{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class RLo extends gE{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class ILo extends gE{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:Ft.and($e.textInputFocus,(t=Ft.and(qz,C3e))==null?void 0:t.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class MLo extends gE{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class PLo extends gE{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class FLo extends gE{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(t,n,r,o,s){return super._move(fA(fg.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,o,s)}}class X3e extends $d{constructor(t){super({canTriggerInlineEdits:!0,...t}),this._whitespaceHeuristics=t.whitespaceHeuristics,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,n,r){const o=t==null?void 0:t.get(kl);if(!n.hasModel()||!o)return;const s=fA(n.getOption(148),n.getOption(147)),a=n.getModel(),l=n.getSelections(),d=n.getOption(10),u=n.getOption(15),h=o.getLanguageConfiguration(a.getLanguageId()).getAutoClosingPairs(),g=n._getViewModel(),m=l.map(v=>{const f=this._delete({wordSeparators:s,model:a,selection:v,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:n.getOption(13),autoClosingBrackets:d,autoClosingQuotes:u,autoClosingPairs:h,autoClosedCharacters:g.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Hh(f,"")});n.pushUndoStop(),n.executeCommands(this.id,m),n.pushUndoStop()}}class nit extends X3e{_delete(t,n){const r=as.deleteWordLeft(t,n);return r||new Ee(1,1,1,1)}}class iit extends X3e{_delete(t,n){const r=as.deleteWordRight(t,n);if(r)return r;const o=t.model.getLineCount(),s=t.model.getLineMaxColumn(o);return new Ee(o,s,o,s)}}class NLo extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:$e.writable})}}class ULo extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:$e.writable})}}class jLo extends nit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class WLo extends iit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:$e.writable})}}class VLo extends iit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:$e.writable})}}class zLo extends iit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class HLo extends Bn{constructor(){super({id:"deleteInsideWord",precondition:$e.writable,label:_t(1575,"Delete Word")})}run(t,n,r){if(!n.hasModel())return;const o=fA(n.getOption(148),n.getOption(147)),s=n.getModel(),l=n.getSelections().map(d=>{const u=as.deleteInsideWord(o,s,d);return new Hh(u,"")});n.pushUndoStop(),n.executeCommands(this.id,l),n.pushUndoStop()}}On(new yLo);On(new CLo);On(new _Lo);On(new SLo);On(new LLo);On(new xLo);On(new QLo);On(new DLo);On(new BLo);On(new RLo);On(new ILo);On(new MLo);On(new ELo);On(new TLo);On(new PLo);On(new FLo);On(new NLo);On(new ULo);On(new jLo);On(new WLo);On(new VLo);On(new zLo);un(HLo);class $Lo extends X3e{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(t,n){const r=Mbe.deleteWordPartLeft(t);return r||new Ee(1,1,1,1)}}class XLo extends X3e{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:$e.writable,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(t,n){const r=Mbe.deleteWordPartRight(t);if(r)return r;const o=t.model.getLineCount(),s=t.model.getLineMaxColumn(o);return new Ee(o,s,o,s)}}class tMn extends $3e{_move(t,n,r,o,s){return Mbe.moveWordPartLeft(t,n,r,s)}}class GLo extends tMn{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}uo.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class YLo extends tMn{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}uo.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class nMn extends $3e{_move(t,n,r,o,s){return Mbe.moveWordPartRight(t,n,r)}}class ZLo extends nMn{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class qLo extends nMn{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:$e.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}On(new $Lo);On(new XLo);On(new GLo);On(new YLo);On(new ZLo);On(new qLo);const Oat=class Oat extends ft{constructor(t){super(),this.editor=t,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const t=D0.get(this.editor);if(t&&this.editor.hasModel()){let n=this.editor.getOptions().get(105);n||(this.editor.isSimpleWidget?n=new bf(U(1378,"Cannot edit in read-only input")):n=new bf(U(1379,"Cannot edit in read-only editor"))),t.showMessage(n,this.editor.getPosition())}}};Oat.ID="editor.contrib.readOnlyMessageController";let ake=Oat;mo(ake.ID,ake,2);var KLo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},w_t=function(e,t){return function(n,r){t(n,r,e)}};let Eze=class extends ft{constructor(t,n,r){super(),this._textModel=t,this._languageFeaturesService=n,this._outlineModelService=r,this._currentModel=Ti(this,void 0);const o=A0("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),s=A0("_textModel.onDidChangeContent",an.debounce(a=>this._textModel.onDidChangeContent(a),()=>{},100));this._register(Ef(async(a,l)=>{o.read(a),s.read(a);const d=l.add(new A0o),u=await this._outlineModelService.getOrCreate(this._textModel,d.token);l.isDisposed||this._currentModel.set(u,void 0)}))}getBreadcrumbItems(t,n){const r=this._currentModel.read(n);if(!r)return[];const o=r.asListOfDocumentSymbols().filter(s=>t.contains(s.range.startLineNumber)&&!t.contains(s.range.endLineNumber));return o.sort(cEn(qh(s=>s.range.endLineNumber-s.range.startLineNumber,T0))),o.map(s=>({name:s.name,kind:s.kind,startLineNumber:s.range.startLineNumber}))}};Eze=KLo([w_t(1,Nn),w_t(2,ore)],Eze);P1e.setBreadcrumbsSourceFactory((e,t)=>t.createInstance(Eze,e));var JLo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Gxe=function(e,t){return function(n,r){t(n,r,e)}},eW;let lke=(eW=class extends ft{constructor(t,n,r,o){super();const s=this._register(hl(t)),a=this._register(o.createMenu(Wn.EditorContent,t.contextKeyService)),l=Ko(this,a.onDidChange,()=>a.getActions().length===0);this._register(Oi(d=>{if(l.read(d))return;const h=wo("div.floating-menu-overlay-widget");h.root.style.height="28px";const g=n.createInstance(RJ,h.root,Wn.EditorContent,{actionViewItemProvider:(m,v)=>{if(!(m instanceof i2))return;const f=r.lookupKeybinding(m.id);if(f)return n.createInstance(class extends D6{updateLabel(){this.options.label&&this.label&&(this.label.textContent=`${this._commandAction.label} (${f.getLabel()})`)}},m,{...v,keybindingNotRenderedWithLabel:!0})},hiddenItemStrategy:0,menuOptions:{shouldForwardArgs:!0},telemetrySource:"editor.overlayToolbar",toolbarOptions:{primaryGroup:()=>!0,useSeparatorsInPrimaryActions:!0}});d.store.add(g),d.store.add(Oi(m=>{const v=s.model.read(m);g.context=v==null?void 0:v.uri})),d.store.add(s.createOverlayWidget({allowEditorOverflow:!1,domNode:h.root,minContentWidthInPx:ca(0),position:ca({preference:1})}))}))}},eW.ID="editor.contrib.floatingToolbar",eW);lke=JLo([Gxe(1,Yn),Gxe(2,Do),Gxe(3,wA)],lke);mo(lke.ID,lke,1);var Tze;(function(e){e.inspectTokensAction=U(786,"Developer: Inspect Tokens")})(Tze||(Tze={}));var cke;(function(e){e.gotoLineActionLabel=U(787,"Go to Line/Column...")})(cke||(cke={}));var Qze;(function(e){e.helpQuickAccessActionLabel=U(788,"Show all Quick Access Providers")})(Qze||(Qze={}));var dke;(function(e){e.quickCommandActionLabel=U(789,"Command Palette"),e.quickCommandHelp=U(790,"Show And Run Commands")})(dke||(dke={}));var mee;(function(e){e.quickOutlineActionLabel=U(791,"Go to Symbol..."),e.quickOutlineByCategoryActionLabel=U(792,"Go to Symbol by Category...")})(mee||(mee={}));var Dze;(function(e){e.editorViewAccessibleLabel=U(793,"Editor content")})(Dze||(Dze={}));var Bze;(function(e){e.toggleHighContrast=U(794,"Toggle High Contrast Theme")})(Bze||(Bze={}));var Rze;(function(e){e.bulkEditServiceSummary=U(795,"Made {0} edits in {1} files")})(Rze||(Rze={}));const yat=class yat extends ft{constructor(t){super(),this.editor=t,this.widget=null,cA&&(this._register(t.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const t=!this.editor.getOption(104);!this.widget&&t?this.widget=new Ize(this.editor):this.widget&&!t&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}};yat.ID="editor.contrib.iPadShowKeyboard";let uke=yat;const IAe=class IAe extends ft{constructor(t){super(),this.editor=t,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(wt(this._domNode,"touchstart",n=>{this.editor.focus()})),this._register(wt(this._domNode,"focus",n=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return IAe.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};IAe.ID="editor.contrib.ShowKeyboardWidget";let Ize=IAe;mo(uke.ID,uke,3);const L2=Cr("themeService");var exo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},O_t=function(e,t){return function(n,r){t(n,r,e)}},Mze,bB;let kee=(bB=class extends ft{static get(t){return t.getContribution(Mze.ID)}constructor(t,n,r){super(),this._editor=t,this._languageService=r,this._widget=null,this._register(this._editor.onDidChangeModel(o=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(o=>this.stop())),this._register(Hl.onDidChange(o=>this.stop())),this._register(this._editor.onKeyUp(o=>o.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new Pze(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}},Mze=bB,bB.ID="editor.contrib.inspectTokens",bB);kee=Mze=exo([O_t(1,L2),O_t(2,nc)],kee);class txo extends Bn{constructor(){super({id:"editor.action.inspectTokens",label:Tze.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(t,n){const r=kee.get(n);r==null||r.launch()}}function nxo(e){let t="";for(let n=0,r=e.length;nhV,tokenize:(o,s,a)=>ttt(t,a),tokenizeEncoded:(o,s,a)=>s3e(r,a)}}const MAe=class MAe extends ft{constructor(t,n){super(),this.allowEditorOverflow=!0,this._editor=t,this._languageService=n,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=ixo(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(r=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return MAe._ID}_compute(t){const n=this._getTokensAtLine(t.lineNumber);let r=0;for(let d=n.tokens1.length-1;d>=0;d--){const u=n.tokens1[d];if(t.column-1>=u.offset){r=d;break}}let o=0;for(let d=n.tokens2.length>>>1;d>=0;d--)if(t.column-1>=n.tokens2[d<<1]){o=d;break}const s=this._model.getLineContent(t.lineNumber);let a="";if(rr.prefix.length-n.prefix.length),Hn(()=>{this.providers.splice(this.providers.indexOf(t),1),this.defaultProvider===t&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return P3([this.defaultProvider,...this.providers])}getQuickAccessProvider(t){return t&&this.providers.find(r=>t.startsWith(r.prefix))||void 0||this.defaultProvider}}Ql.add(FI.Quickaccess,new rxo);var oxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},y_t=function(e,t){return function(n,r){t(n,r,e)}},ZG,wB;let Nze=(wB=class{constructor(t,n){this.quickInputService=t,this.keybindingService=n,this.registry=Ql.as(FI.Quickaccess)}provide(t){const n=new xt;return n.add(t.onDidAccept(()=>{const[r]=t.selectedItems;r&&this.quickInputService.quickAccess.show(r.prefix,{preserveValue:!0})})),n.add(t.onDidChangeValue(r=>{const o=this.registry.getQuickAccessProvider(r.substr(ZG.PREFIX.length));o&&o.prefix&&o.prefix!==ZG.PREFIX&&this.quickInputService.quickAccess.show(o.prefix,{preserveValue:!0})})),t.items=this.getQuickAccessProviders().filter(r=>r.prefix!==ZG.PREFIX),n}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((n,r)=>n.prefix.localeCompare(r.prefix)).flatMap(n=>this.createPicks(n))}createPicks(t){return t.helpEntries.map(n=>{const r=n.prefix||t.prefix,o=r||"…";return{prefix:r,label:o,keybinding:n.commandId?this.keybindingService.lookupKeybinding(n.commandId):void 0,ariaLabel:U(1747,"{0}, {1}",o,n.description),description:n.description}})}},ZG=wB,wB.PREFIX="?",wB);Nze=ZG=oxo([y_t(0,Rf),y_t(1,Do)],Nze);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:Nze,prefix:"",helpEntries:[{description:Qze.helpQuickAccessActionLabel}]});class iMn{constructor(t){this.options=t,this.rangeHighlightDecorationId=void 0}provide(t,n,r){var a;const o=new xt;t.canAcceptInBackground=!!((a=this.options)!=null&&a.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;const s=o.add(new ts);return s.value=this.doProvide(t,n,r),o.add(this.onDidActiveTextEditorControlChange(()=>{s.value=void 0,s.value=this.doProvide(t,n)})),o}doProvide(t,n,r){const o=new xt,s=this.activeTextEditorControl;if(s&&this.canProvideWithTextEditor(s)){const a={editor:s},l=HBn(s);if(l){let d=s.saveViewState()??void 0;o.add(l.onDidChangeCursorPosition(()=>{d=s.saveViewState()??void 0})),a.restoreViewState=()=>{d&&s===this.activeTextEditorControl&&s.restoreViewState(d)},o.add(iR(n.onCancellationRequested)(()=>{var u;return(u=a.restoreViewState)==null?void 0:u.call(a)}))}o.add(Hn(()=>this.clearDecorations(s))),o.add(this.provideWithTextEditor(a,t,n,r))}else o.add(this.provideWithoutTextEditor(t,n));return o}canProvideWithTextEditor(t){return!0}gotoLocation({editor:t},n){t.setSelection(n.range,"code.jump"),t.revealRangeInCenter(n.range,0),n.preserveFocus||t.focus();const r=t.getModel();r&&"getLineContent"in r&&A3(`${r.getLineContent(n.range.startLineNumber)}`)}getModel(t){var n;return nnt(t)?(n=t.getModel())==null?void 0:n.modified:t.getModel()}addDecorations(t,n){t.changeDecorations(r=>{const o=[];this.rangeHighlightDecorationId&&(o.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),o.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:n,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:zl(oTn),position:r2.Full}}}],[a,l]=r.deltaDecorations(o,s);this.rangeHighlightDecorationId={rangeHighlightId:a,overviewRulerDecorationId:l}})}clearDecorations(t){const n=this.rangeHighlightDecorationId;n&&(t.changeDecorations(r=>{r.deltaDecorations([n.overviewRulerDecorationId,n.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}const YT=class YT extends iMn{constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(YT.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(t){this.storageService.store(YT.ZERO_BASED_OFFSET_STORAGE_KEY,t,-1,0)}provideWithoutTextEditor(t){const n=U(1335,"Open a text editor first to go to a line.");return t.items=[{label:n}],t.ariaLabel=n,ft.None}provideWithTextEditor(t,n,r){const o=t.editor,s=new xt;s.add(n.onDidAccept(u=>{const[h]=n.selectedItems;if(h){if(!h.lineNumber)return;this.gotoLocation(t,{range:this.toRange(h.lineNumber,h.column),keyMods:n.keyMods,preserveFocus:u.inBackground}),u.inBackground||n.hide()}}));const a=()=>{const u=n.value.trim().substring(YT.PREFIX.length),{inOffsetMode:h,lineNumber:g,column:m,label:v}=this.parsePosition(o,u);if(l.visible=!!h,n.items=[{lineNumber:g,column:m,label:v}],n.ariaLabel=v,!g){this.clearDecorations(o);return}const f=this.toRange(g,m);o.revealRangeInCenter(f,0),this.addDecorations(o,f)},l=new yL({title:U(1336,"Use Zero-Based Offset"),icon:zt.indexZero,isChecked:this.useZeroBasedOffset,inputActiveOptionBorder:en(Die),inputActiveOptionForeground:en(Bie),inputActiveOptionBackground:en(eH)});s.add(l.onChange(()=>{this.useZeroBasedOffset=!this.useZeroBasedOffset,a()})),n.toggles=[l],a(),s.add(n.onDidChangeValue(()=>a()));const d=HBn(o);return d&&d.getOptions().get(76).renderType===2&&(d.updateOptions({lineNumbers:"on"}),s.add(Hn(()=>d.updateOptions({lineNumbers:"relative"})))),s}toRange(t=1,n=1){return{startLineNumber:t,startColumn:n,endLineNumber:t,endColumn:n}}parsePosition(t,n){var o,s;const r=this.getModel(t);if(!r)return{label:U(1337,"Open a text editor first to go to a line.")};if(n.startsWith(":")){let a=parseInt(n.substring(1),10);const l=r.getValueLength();if(isNaN(a))return{inOffsetMode:!0,label:this.useZeroBasedOffset?U(1338,"Type a character position to go to (from 0 to {0}).",l-1):U(1339,"Type a character position to go to (from 1 to {0}).",l)};{const d=a<0;this.useZeroBasedOffset||(a-=Math.sign(a)),d&&(a+=l);const u=r.getPositionAt(a);return{...u,inOffsetMode:!0,label:U(1340,"Press 'Enter' to go to line {0} at column {1}.",u.lineNumber,u.column)}}}else{const a=n.split(/,|:|#/),l=r.getLineCount();let d=parseInt((o=a[0])==null?void 0:o.trim(),10);if(a.length<1||isNaN(d))return{label:U(1341,"Type a line number to go to (from 1 to {0}).",l)};d=d>=0?d:l+1+d,d=Math.min(Math.max(1,d),l);const u=r.getLineMaxColumn(d);let h=parseInt((s=a[1])==null?void 0:s.trim(),10);return a.length<2||isNaN(h)?{lineNumber:d,column:1,label:a.length<2?U(1342,"Press 'Enter' to go to line {0} or enter : to add a column number.",d):U(1343,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",d,u)}:(h=h>=0?h:u+h,h=Math.min(Math.max(1,h),u),{lineNumber:d,column:h,label:U(1344,"Press 'Enter' to go to line {0} at column {1}.",d,h)})}}};YT.PREFIX=":",YT.ZERO_BASED_OFFSET_STORAGE_KEY="gotoLine.useZeroBasedOffset";let Uze=YT;var sxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},C_t=function(e,t){return function(n,r){t(n,r,e)}};let vee=class extends Uze{constructor(t,n){super(),this.editorService=t,this.storageService=n,this.onDidActiveTextEditorControlChange=an.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};vee=sxo([C_t(0,yo),C_t(1,Bg)],vee);var OB;let rMn=(OB=class extends Bn{constructor(){super({id:OB.ID,label:cke.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:2085,mac:{primary:293},weight:100}})}run(t){t.get(Rf).quickAccess.show(vee.PREFIX)}},OB.ID="editor.action.gotoLine",OB);un(rMn);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:vee,prefix:vee.PREFIX,helpEntries:[{description:cke.gotoLineActionLabel,commandId:rMn.ID}]});const oMn=[void 0,[]];function Yxe(e,t,n=0,r=0){const o=t;return o.values&&o.values.length>1?axo(e,o.values,n,r):sMn(e,t,n,r)}function axo(e,t,n,r){let o=0;const s=[];for(const a of t){const[l,d]=sMn(e,a,n,r);if(typeof l!="number")return oMn;o+=l,s.push(...d)}return[o,lxo(s)]}function sMn(e,t,n,r){const o=kR(t.original,t.originalLowercase,n,e,e.toLowerCase(),r,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return o?[o[0],Uie(o)]:oMn}function lxo(e){const t=e.sort((o,s)=>o.start-s.start),n=[];let r;for(const o of t)!r||!cxo(r,o)?(r=o,n.push(o)):(r.start=Math.min(r.start,o.start),r.end=Math.max(r.end,o.end));return n}function cxo(e,t){return!(e.end=0,a=__t(e);let l;const d=e.split(aMn);if(d.length>1)for(const u of d){const h=__t(u),{pathNormalized:g,normalized:m,normalizedLowercase:v}=S_t(u);m&&(l||(l=[]),l.push({original:u,originalLowercase:u.toLowerCase(),pathNormalized:g,normalized:m,normalizedLowercase:v,expectContiguousMatch:h}))}return{original:e,originalLowercase:t,pathNormalized:n,normalized:r,normalizedLowercase:o,values:l,containsPathSeparator:s,expectContiguousMatch:a}}function S_t(e){let t;mh?t=e.replace(/\//g,o3):t=e.replace(/\\/g,o3);const n=t.replace(/[\*\u2026\s"]/g,"");return{pathNormalized:t,normalized:n,normalizedLowercase:n.toLowerCase()}}function L_t(e){return Array.isArray(e)?jze(e.map(t=>t.original).join(aMn)):jze(e.original)}var dxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},x_t=function(e,t){return function(n,r){t(n,r,e)}},Ehe,Wb;let bD=(Wb=class extends iMn{constructor(t,n,r=Object.create(null)){super(r),this._languageFeaturesService=t,this._outlineModelService=n,this.options=r,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(t){return this.provideLabelPick(t,U(1345,"To go to a symbol, first open a text editor with symbol information.")),ft.None}provideWithTextEditor(t,n,r,o){const s=t.editor,a=this.getModel(s);return a?this._languageFeaturesService.documentSymbolProvider.has(a)?this.doProvideWithEditorSymbols(t,a,n,r,o):this.doProvideWithoutEditorSymbols(t,a,n,r):ft.None}doProvideWithoutEditorSymbols(t,n,r,o){const s=new xt;return this.provideLabelPick(r,U(1346,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(n,s)||o.isCancellationRequested||s.add(this.doProvideWithEditorSymbols(t,n,r,o)))(),s}provideLabelPick(t,n){t.items=[{label:n,index:0,kind:14}],t.ariaLabel=n}async waitForLanguageSymbolRegistry(t,n){if(this._languageFeaturesService.documentSymbolProvider.has(t))return!0;const r=new pI,o=n.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(t)&&(o.dispose(),r.complete(!0))}));return n.add(Hn(()=>r.complete(!1))),r.p}doProvideWithEditorSymbols(t,n,r,o,s){var g;const a=t.editor,l=new xt;l.add(r.onDidAccept(m=>{var f;const[v]=r.selectedItems;v&&v.range&&(this.gotoLocation(t,{range:v.range.selection,keyMods:r.keyMods,preserveFocus:m.inBackground}),(f=s==null?void 0:s.handleAccept)==null||f.call(s,v,m.inBackground),m.inBackground||r.hide())})),l.add(r.onDidTriggerItemButton(({item:m})=>{m&&m.range&&(this.gotoLocation(t,{range:m.range.selection,keyMods:r.keyMods,forceSideBySide:!0}),r.hide())}));const d=this.getDocumentSymbols(n,o),u=l.add(new ts),h=async m=>{var v;(v=u==null?void 0:u.value)==null||v.cancel(),r.busy=!1,u.value=new ja,r.busy=!0;try{const f=jze(r.value.substr(Ehe.PREFIX.length).trim()),k=await this.doGetSymbolPicks(d,f,void 0,u.value.token,n);if(o.isCancellationRequested)return;if(k.length>0){if(r.items=k,m&&f.original.length===0){const A=cJ(k,p=>!!(p.type!=="separator"&&p.range&&Ee.containsPosition(p.range.decoration,m)));A&&(r.activeItems=[A])}}else f.original.length>0?this.provideLabelPick(r,U(1347,"No matching editor symbols")):this.provideLabelPick(r,U(1348,"No editor symbols"))}finally{o.isCancellationRequested||(r.busy=!1)}};return l.add(r.onDidChangeValue(()=>h(void 0))),h((g=a.getSelection())==null?void 0:g.getPosition()),l.add(r.onDidChangeActive(()=>{const[m]=r.activeItems;m&&m.range&&(a.revealRangeInCenter(m.range.selection,0),this.addDecorations(a,m.range.decoration))})),l}async doGetSymbolPicks(t,n,r,o,s){var A,p;const a=await t;if(o.isCancellationRequested)return[];const l=n.original.indexOf(Ehe.SCOPE_PREFIX)===0,d=l?1:0;let u,h;n.values&&n.values.length>1?(u=L_t(n.values[0]),h=L_t(n.values.slice(1))):u=n;let g;const m=(p=(A=this.options)==null?void 0:A.openSideBySideDirection)==null?void 0:p.call(A);m&&(g=[{iconClass:m==="right"?fi.asClassName(zt.splitHorizontal):fi.asClassName(zt.splitVertical),tooltip:m==="right"?U(1349,"Open to the Side"):U(1350,"Open to the Bottom")}]);const v=[];for(let b=0;bd){let P=!1;if(u!==n&&([S,L]=Yxe(y,{...n,values:void 0},d,C),typeof S=="number"&&(P=!0)),typeof S!="number"&&([S,L]=Yxe(y,u,d,C),typeof S!="number"))continue;if(!P&&h){if(_&&h.original.length>0&&([E,T]=Yxe(_,h)),typeof E!="number")continue;typeof S=="number"&&(S+=E)}}const D=w.tags&&w.tags.indexOf(1)>=0;v.push({index:b,kind:w.kind,score:S,label:y,ariaLabel:Rco(w.name,w.kind),description:_,highlights:D?void 0:{label:L,description:T},range:{selection:Ee.collapseToStart(w.selectionRange),decoration:w.range},uri:s.uri,symbolName:O,strikethrough:D,buttons:g})}const f=v.sort((b,w)=>l?this.compareByKindAndScore(b,w):this.compareByScore(b,w));let k=[];if(l){let y=function(){w&&typeof b=="number"&&O>0&&(w.label=oR(qxe[b]||Zxe,O))},b,w,O=0;for(const C of f)b!==C.kind?(y(),b=C.kind,O=1,w={type:"separator"},k.push(w)):O++,k.push(C);y()}else f.length>0&&(k=[{label:U(1351,"symbols ({0})",v.length),type:"separator"},...f]);return k}compareByScore(t,n){if(typeof t.score!="number"&&typeof n.score=="number")return 1;if(typeof t.score=="number"&&typeof n.score!="number")return-1;if(typeof t.score=="number"&&typeof n.score=="number"){if(t.score>n.score)return-1;if(t.scoren.index?1:0}compareByKindAndScore(t,n){const r=qxe[t.kind]||Zxe,o=qxe[n.kind]||Zxe,s=r.localeCompare(o);return s===0?this.compareByScore(t,n):s}async getDocumentSymbols(t,n){const r=await this._outlineModelService.getOrCreate(t,n);return n.isCancellationRequested?[]:r.asListOfDocumentSymbols()}},Ehe=Wb,Wb.PREFIX="@",Wb.SCOPE_PREFIX=":",Wb.PREFIX_BY_CATEGORY=`${Wb.PREFIX}${Wb.SCOPE_PREFIX}`,Wb);bD=Ehe=dxo([x_t(0,Nn),x_t(1,ore)],bD);const Zxe=U(1352,"properties ({0})"),qxe={5:U(1353,"methods ({0})"),11:U(1354,"functions ({0})"),8:U(1355,"constructors ({0})"),12:U(1356,"variables ({0})"),4:U(1357,"classes ({0})"),22:U(1358,"structs ({0})"),23:U(1359,"events ({0})"),24:U(1360,"operators ({0})"),10:U(1361,"interfaces ({0})"),2:U(1362,"namespaces ({0})"),3:U(1363,"packages ({0})"),25:U(1364,"type parameters ({0})"),1:U(1365,"modules ({0})"),6:U(1366,"properties ({0})"),9:U(1367,"enumerations ({0})"),21:U(1368,"enumeration members ({0})"),14:U(1369,"strings ({0})"),0:U(1370,"files ({0})"),17:U(1371,"arrays ({0})"),15:U(1372,"numbers ({0})"),16:U(1373,"booleans ({0})"),18:U(1374,"objects ({0})"),19:U(1375,"keys ({0})"),7:U(1376,"fields ({0})"),13:U(1377,"constants ({0})")};var uxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Kxe=function(e,t){return function(n,r){t(n,r,e)}};let Wze=class extends bD{constructor(t,n,r){super(n,r),this.editorService=t,this.onDidActiveTextEditorControlChange=an.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Wze=uxo([Kxe(0,yo),Kxe(1,Nn),Kxe(2,ore)],Wze);const PAe=class PAe extends Bn{constructor(){super({id:PAe.ID,label:mee.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:$e.hasDocumentSymbolProvider,kbOpts:{kbExpr:$e.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(t){t.get(Rf).quickAccess.show(bD.PREFIX,{itemActivation:Qb.NONE})}};PAe.ID="editor.action.quickOutline";let hke=PAe;un(hke);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:Wze,prefix:bD.PREFIX,helpEntries:[{description:mee.quickOutlineActionLabel,prefix:bD.PREFIX,commandId:hke.ID},{description:mee.quickOutlineByCategoryActionLabel,prefix:bD.PREFIX_BY_CATEGORY}]});function hxo(e){const t=new Map;for(const n of e)t.set(n,(t.get(n)??0)+1);return t}class HZ{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(t,n){const r=this.computeEmbedding(t),o=new Map,s=[];for(const[a,l]of this.documents){if(n.isCancellationRequested)return[];for(const d of l.chunks){const u=this.computeSimilarityScore(d,r,o);u>0&&s.push({key:a,score:u})}}return s}static termFrequencies(t){return hxo(HZ.splitTerms(t))}static*splitTerms(t){const n=r=>r.toLowerCase();for(const[r]of t.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield n(r);const o=r.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(o.length>1)for(const s of o)s.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(s)&&(yield n(s))}}updateDocuments(t){for(const{key:n}of t)this.deleteDocument(n);for(const n of t){const r=[];for(const o of n.textChunks){const s=HZ.termFrequencies(o);for(const a of s.keys())this.chunkOccurrences.set(a,(this.chunkOccurrences.get(a)??0)+1);r.push({text:o,tf:s})}this.chunkCount+=r.length,this.documents.set(n.key,{chunks:r})}return this}deleteDocument(t){const n=this.documents.get(t);if(n){this.documents.delete(t),this.chunkCount-=n.chunks.length;for(const r of n.chunks)for(const o of r.tf.keys()){const s=this.chunkOccurrences.get(o);if(typeof s=="number"){const a=s-1;a<=0?this.chunkOccurrences.delete(o):this.chunkOccurrences.set(o,a)}}}}computeSimilarityScore(t,n,r){let o=0;for(const[s,a]of Object.entries(n)){const l=t.tf.get(s);if(!l)continue;let d=r.get(s);typeof d!="number"&&(d=this.computeIdf(s),r.set(s,d));const u=l*d;o+=u*a}return o}computeEmbedding(t){const n=HZ.termFrequencies(t);return this.computeTfidf(n)}computeIdf(t){const n=this.chunkOccurrences.get(t)??0;return n>0?Math.log((this.chunkCount+1)/n):0}computeTfidf(t){const n=Object.create(null);for(const[r,o]of t){const s=this.computeIdf(r);s>0&&(n[r]=o*s)}return n}}function fxo(e){var r;const t=e.slice(0);t.sort((o,s)=>s.score-o.score);const n=((r=t[0])==null?void 0:r.score)??0;if(n>0)for(const o of t)o.score/=n;return t}var LN;(function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"})(LN||(LN={}));function Jxe(e){const t=e;return Array.isArray(t.items)}function E_t(e){const t=e;return!!t.picks&&t.additionalPicks instanceof Promise}class gxo extends ft{constructor(t,n){super(),this.prefix=t,this.options=n}provide(t,n,r){var u;const o=new xt;t.canAcceptInBackground=!!((u=this.options)!=null&&u.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;let s;const a=o.add(new ts),l=async()=>{var A;s==null||s.dispose(!0),t.busy=!1;const h=a.value=new xt;s=h.add(new ja(n));const g=s.token;let m=t.value.substring(this.prefix.length);(A=this.options)!=null&&A.shouldSkipTrimPickFilter||(m=m.trim());const v=this._getPicks(m,h,g,r),f=(p,b)=>{var y;let w,O;if(Jxe(p)?(w=p.items,O=p.active):w=p,w.length===0){if(b)return!1;(m.length>0||t.hideInput)&&((y=this.options)!=null&&y.noResultsPick)&&(tR(this.options.noResultsPick)?w=[this.options.noResultsPick(m)]:w=[this.options.noResultsPick])}return t.items=w,O&&(t.activeItems=[O]),!0},k=async p=>{let b=!1,w=!1;await Promise.all([(async()=>{typeof p.mergeDelay=="number"&&(await Cy(p.mergeDelay),g.isCancellationRequested)||w||(b=f(p.picks,!0))})(),(async()=>{t.busy=!0;try{const O=await p.additionalPicks;if(g.isCancellationRequested)return;let y,C;Jxe(p.picks)?(y=p.picks.items,C=p.picks.active):y=p.picks;let _,S;if(Jxe(O)?(_=O.items,S=O.active):_=O,_.length>0||!b){let L;if(!C&&!S){const E=t.activeItems[0];E&&y.indexOf(E)!==-1&&(L=E)}f({items:[...y,..._],active:C||S||L})}}finally{g.isCancellationRequested||(t.busy=!1),w=!0}})()])};if(v!==null)if(E_t(v))await k(v);else if(!(v instanceof Promise))f(v);else{t.busy=!0;try{const p=await v;if(g.isCancellationRequested)return;E_t(p)?await k(p):f(p)}finally{g.isCancellationRequested||(t.busy=!1)}}};o.add(t.onDidChangeValue(()=>l())),l(),o.add(t.onDidAccept(h=>{var m;if(r!=null&&r.handleAccept){h.inBackground||t.hide(),(m=r.handleAccept)==null||m.call(r,t.activeItems[0],h.inBackground);return}const[g]=t.selectedItems;typeof(g==null?void 0:g.accept)=="function"&&(h.inBackground||t.hide(),g.accept(t.keyMods,h))}));const d=async(h,g)=>{var v;if(typeof g.trigger!="function")return;const m=((v=g.buttons)==null?void 0:v.indexOf(h))??-1;if(m>=0){const f=g.trigger(m,t.keyMods),k=typeof f=="number"?f:await f;if(n.isCancellationRequested)return;switch(k){case LN.NO_ACTION:break;case LN.CLOSE_PICKER:t.hide();break;case LN.REFRESH_PICKER:l();break;case LN.REMOVE_ITEM:{const A=t.items.indexOf(g);if(A!==-1){const p=t.items.slice(),b=p.splice(A,1),w=t.activeItems.filter(y=>y!==b[0]),O=t.keepScrollPosition;t.keepScrollPosition=!0,t.items=p,w&&(t.activeItems=w),t.keepScrollPosition=O}break}}}};return o.add(t.onDidTriggerItemButton(({button:h,item:g})=>d(h,g))),o.add(t.onDidTriggerSeparatorButton(({button:h,separator:g})=>d(h,g))),o}}new wp(1e4);const mxo=new wp(1e4);function kxo(e){return Axo(e,"NFD",mxo)}const vxo=/[^\u0000-\u0080]/;function Axo(e,t,n){if(!e)return e;const r=n.get(e);if(r)return r;let o;return vxo.test(e)?o=e.normalize(t):o=e,n.set(e,o),o}const pxo=function(){const e=/[\u0300-\u036f]/g;return function(t){return kxo(t).replace(e,"")}}();var lMn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},B5=function(e,t){return function(n,r){t(n,r,e)}},eT,hd,FO;let Vze=(FO=class extends gxo{constructor(t,n,r,o,s,a){super(eT.PREFIX,t),this.keybindingService=r,this.commandService=o,this.telemetryService=s,this.dialogService=a,this.commandsHistory=this._register(n.createInstance(zze)),this.options=t}async _getPicks(t,n,r,o){var f,k;const s=await this.getCommandPicks(r);if(r.isCancellationRequested)return[];const a=iR(()=>{const A=new HZ;A.updateDocuments(s.map(b=>({key:b.commandId,textChunks:[this.getTfIdfChunk(b)]})));const p=A.calculateScores(t,r);return fxo(p).filter(b=>b.score>eT.TFIDF_THRESHOLD).slice(0,eT.TFIDF_MAX_RESULTS)}),l=this.normalizeForFiltering(t),d=[];for(const A of s){A.labelNoAccents??(A.labelNoAccents=this.normalizeForFiltering(A.label));const p=eT.WORD_FILTER(l,A.labelNoAccents)??void 0;let b;if(A.commandAlias&&(A.aliasNoAccents??(A.aliasNoAccents=this.normalizeForFiltering(A.commandAlias)),b=eT.WORD_FILTER(l,A.aliasNoAccents)??void 0),p||b)A.highlights={label:p,detail:this.options.showAlias?b:void 0},d.push(A);else if(t===A.commandId)d.push(A);else if(t.length>=3){const w=a();if(r.isCancellationRequested)return[];const O=w.find(y=>y.key===A.commandId);O&&(A.tfIdfScore=O.score,d.push(A))}}const u=new Map;for(const A of d){const p=u.get(A.label);p?(A.description=A.commandId,p.description=p.commandId):u.set(A.label,A)}d.sort((A,p)=>{if(A.tfIdfScore&&p.tfIdfScore)return A.tfIdfScore===p.tfIdfScore?A.label.localeCompare(p.label):p.tfIdfScore-A.tfIdfScore;if(A.tfIdfScore)return 1;if(p.tfIdfScore)return-1;const b=this.commandsHistory.peek(A.commandId),w=this.commandsHistory.peek(p.commandId);if(b&&w)return b>w?-1:1;if(b)return-1;if(w)return 1;if(this.options.suggestedCommandIds){const C=this.options.suggestedCommandIds.has(A.commandId),_=this.options.suggestedCommandIds.has(p.commandId);if(C&&_)return 0;if(C)return-1;if(_)return 1}const O=A.commandCategory===mze.Developer.value,y=p.commandCategory===mze.Developer.value;return O&&!y?1:!O&&y?-1:A.label.localeCompare(p.label)});const h=[];let g=!1,m=!0,v=!!this.options.suggestedCommandIds;for(let A=0;A{var b;const A=await this.getAdditionalCommandPicks(s,d,t,r);if(r.isCancellationRequested)return[];const p=A.map(w=>this.toCommandPick(w,o));return m&&((b=p[0])==null?void 0:b.type)!=="separator"&&p.unshift({type:"separator",label:U(1744,"similar commands")}),p})()}:h}toCommandPick(t,n){if(t.type==="separator")return t;const r=this.keybindingService.lookupKeybinding(t.commandId),o=r?U(1745,"{0}, {1}",t.label,r.getAriaLabel()):t.label;return{...t,ariaLabel:o,detail:this.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:r,accept:async()=>{var s;this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:(n==null?void 0:n.from)??"quick open"});try{(s=t.args)!=null&&s.length?await this.commandService.executeCommand(t.commandId,...t.args):await this.commandService.executeCommand(t.commandId)}catch(a){C2(a)||this.dialogService.error(U(1746,"Command '{0}' resulted in an error",t.label),H1e(a))}}}}getTfIdfChunk({label:t,commandAlias:n,commandDescription:r}){let o=t;return n&&n!==t&&(o+=` - ${n}`),r&&r.value!==t&&(o+=` - ${r.value===r.original?r.value:`${r.value} (${r.original})`}`),o}normalizeForFiltering(t){const n=pxo(t);return n.length!==t.length?(this.telemetryService.publicLog2("QuickAccess:FilterLengthMismatch",{originalLength:t.length,normalizedLength:n.length}),t):n}},eT=FO,FO.PREFIX=">",FO.TFIDF_THRESHOLD=.5,FO.TFIDF_MAX_RESULTS=5,FO.WORD_FILTER=ctt(_J,Igo,hQn),FO);Vze=eT=lMn([B5(1,Yn),B5(2,Do),B5(3,ba),B5(4,Nf),B5(5,are)],Vze);var Vb;let zze=(Vb=class extends ft{constructor(t,n,r){super(),this.storageService=t,this.configurationService=n,this.logService=r,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(t=>this.updateConfiguration(t))),this._register(this.storageService.onWillSaveState(t=>{t.reason===F9.SHUTDOWN&&this.saveState()}))}updateConfiguration(t){t&&!t.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=hd.getConfiguredCommandHistoryLength(this.configurationService),hd.cache&&hd.cache.limit!==this.configuredCommandsHistoryLength&&(hd.cache.limit=this.configuredCommandsHistoryLength,hd.hasChanges=!0))}load(){const t=this.storageService.get(hd.PREF_KEY_CACHE,0);let n;if(t)try{n=JSON.parse(t)}catch(o){this.logService.error(`[CommandsHistory] invalid data: ${o}`)}const r=hd.cache=new wp(this.configuredCommandsHistoryLength,1);if(n){let o;n.usesLRU?o=n.entries:o=n.entries.sort((s,a)=>s.value-a.value),o.forEach(s=>r.set(s.key,s.value))}hd.counter=this.storageService.getNumber(hd.PREF_KEY_COUNTER,0,hd.counter)}push(t){hd.cache&&(hd.cache.set(t,hd.counter++),hd.hasChanges=!0)}peek(t){var n;return(n=hd.cache)==null?void 0:n.peek(t)}saveState(){if(!hd.cache||!hd.hasChanges)return;const t={usesLRU:!0,entries:[]};hd.cache.forEach((n,r)=>t.entries.push({key:r,value:n})),this.storageService.store(hd.PREF_KEY_CACHE,JSON.stringify(t),0,0),this.storageService.store(hd.PREF_KEY_COUNTER,hd.counter,0,0),hd.hasChanges=!1}static getConfiguredCommandHistoryLength(t){var o,s;const r=(s=(o=t.getValue().workbench)==null?void 0:o.commandPalette)==null?void 0:s.history;return typeof r=="number"?r:hd.DEFAULT_COMMANDS_HISTORY_LENGTH}},hd=Vb,Vb.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Vb.PREF_KEY_CACHE="commandPalette.mru.cache",Vb.PREF_KEY_COUNTER="commandPalette.mru.counter",Vb.counter=1,Vb.hasChanges=!1,Vb);zze=hd=lMn([B5(0,Bg),B5(1,ar),B5(2,va)],zze);class bxo extends Vze{constructor(t,n,r,o,s,a){super(t,n,r,o,s,a)}getCodeEditorCommandPicks(){var r;const t=this.activeTextEditorControl;if(!t)return[];const n=[];for(const o of t.getSupportedActions()){let s;(r=o.metadata)!=null&&r.description&&(Oko(o.metadata.description)?s=o.metadata.description:s={original:o.metadata.description,value:o.metadata.description}),n.push({commandId:o.id,commandAlias:o.alias,commandDescription:s,label:mtt(o.label)||o.id})}return n}}var wxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},NP=function(e,t){return function(n,r){t(n,r,e)}};let Aee=class extends bxo{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(t,n,r,o,s,a){super({showAlias:!1},t,r,o,s,a),this.codeEditorService=n}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};Aee=wxo([NP(0,Yn),NP(1,yo),NP(2,Do),NP(3,ba),NP(4,Nf),NP(5,are)],Aee);const FAe=class FAe extends Bn{constructor(){super({id:FAe.ID,label:dke.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:$e.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(t){t.get(Rf).quickAccess.show(Aee.PREFIX)}};FAe.ID="editor.action.quickCommand";let fke=FAe;un(fke);Ql.as(FI.Quickaccess).registerQuickAccessProvider({ctor:Aee,prefix:Aee.PREFIX,helpEntries:[{description:dke.quickCommandHelp,commandId:fke.ID}]});var Oxo=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},UP=function(e,t){return function(n,r){t(n,r,e)}};let Hze=class extends QR{constructor(t,n,r,o,s,a,l){super(!0,t,n,r,o,s,a,l)}};Hze=Oxo([UP(1,Qi),UP(2,yo),UP(3,ic),UP(4,Yn),UP(5,Bg),UP(6,ar)],Hze);mo(QR.ID,Hze,4);class yxo{constructor(t,n,r,o,s){this._parsedThemeRuleBrand=void 0,this.token=t,this.index=n,this.fontStyle=r,this.foreground=o,this.background=s}}function Cxo(e){if(!e||!Array.isArray(e))return[];const t=[];let n=0;for(let r=0,o=e.length;r{const m=Txo(h.token,g.token);return m!==0?m:h.index-g.index});let n=0,r="000000",o="ffffff";for(;e.length>=1&&e[0].token==="";){const h=e.shift();h.fontStyle!==-1&&(n=h.fontStyle),h.foreground!==null&&(r=h.foreground),h.background!==null&&(o=h.background)}const s=new Lxo;for(const h of t)s.getId(h);const a=s.getId(r),l=s.getId(o),d=new rit(n,a,l),u=new oit(d);for(let h=0,g=e.length;h"u"){const o=this._match(n),s=Exo(n);r=(o.metadata|s<<8)>>>0,this._cache.set(n,r)}return(r|t<<0)>>>0}}const xxo=/\b(comment|string|regex|regexp)\b/;function Exo(e){const t=e.match(xxo);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function Txo(e,t){return et?1:0}class rit{constructor(t,n,r){this._themeTrieElementRuleBrand=void 0,this._fontStyle=t,this._foreground=n,this._background=r,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new rit(this._fontStyle,this._foreground,this._background)}acceptOverwrite(t,n,r){t!==-1&&(this._fontStyle=t),n!==0&&(this._foreground=n),r!==0&&(this._background=r),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class oit{constructor(t){this._themeTrieElementBrand=void 0,this._mainRule=t,this._children=new Map}match(t){if(t==="")return this._mainRule;const n=t.indexOf(".");let r,o;n===-1?(r=t,o=""):(r=t.substring(0,n),o=t.substring(n+1));const s=this._children.get(r);return typeof s<"u"?s.match(o):this._mainRule}insert(t,n,r,o){if(t===""){this._mainRule.acceptOverwrite(n,r,o);return}const s=t.indexOf(".");let a,l;s===-1?(a=t,l=""):(a=t.substring(0,s),l=t.substring(s+1));let d=this._children.get(a);typeof d>"u"&&(d=new oit(this._mainRule.clone()),this._children.set(a,d)),d.insert(l,n,r,o)}}function Qxo(e){const t=[];for(let n=1,r=e.length;nn.fire())),e&&t.add(e.onDidProductIconThemeChange(()=>n.fire())),{dispose:()=>t.dispose(),onDidChange:n.event,getCSS(){const o=e?e.getProductIconTheme():new dMn,s={},a=new PLe,l=new PLe;for(const d of r.getIcons()){const u=o.getIcon(d);if(!u)continue;const h=u.font,g=$1`--vscode-icon-${Qle(d.id)}-font-family`,m=$1`--vscode-icon-${Qle(d.id)}-content`;h?(s[h.id]=h.definition,l.push($1`${g}: ${mx(h.id)};`,$1`${m}: ${mx(u.fontCharacter)};`),a.push($1`.codicon-${Qle(d.id)}:before { content: ${mx(u.fontCharacter)}; font-family: ${mx(h.id)}; }`)):(l.push($1`${m}: ${mx(u.fontCharacter)}; ${g}: 'codicon';`),a.push($1`.codicon-${Qle(d.id)}:before { content: ${mx(u.fontCharacter)}; }`))}for(const d in s){const u=s[d],h=u.weight?$1`font-weight: ${Fwt(u.weight)};`:$1``,g=u.style?$1`font-style: ${Fwt(u.style)};`:$1``,m=new PLe;for(const v of u.src)m.push($1`${xy(v.location)} format(${mx(v.format)})`);a.push($1`@font-face { src: ${m.join(", ")}; font-family: ${mx(d)};${h}${g} font-display: block; }`)}return a.push($1`:root { ${l.join(" ")} }`),a.join(` `)}}}class dMn{getIcon(t){const n=iDn();let r=t.defaults;for(;fi.isThemeIcon(r);){const o=n.getIcon(r.id);if(!o)return;r=o.defaults}return r}}const bS="vs",ZU="vs-dark",wD="hc-black",OD="hc-light",uMn=Ql.as(p7n.ColorContribution),Pxo=Ql.as(eTn.ThemingContribution);class hMn{constructor(t,n){this.semanticHighlighting=!1,this.themeData=n;const r=n.base;t.length>0?(The(t)?this.id=t:this.id=r+" "+t,this.themeName=t):(this.id=r,this.themeName=r),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const t=new Map;for(const n in this.themeData.colors)t.set(n,Dt.fromHex(this.themeData.colors[n]));if(this.themeData.inherit){const n=$ze(this.themeData.base);for(const r in n.colors)t.has(r)||t.set(r,Dt.fromHex(n.colors[r]))}this.colors=t}return this.colors}getColor(t,n){const r=this.getColors().get(t);if(r)return r;if(n!==!1)return this.getDefault(t)}getDefault(t){let n=this.defaultColors[t];return n||(n=uMn.resolveDefaultColor(t,this),this.defaultColors[t]=n,n)}defines(t){return this.getColors().has(t)}get type(){switch(this.base){case bS:return zv.LIGHT;case wD:return zv.HIGH_CONTRAST_DARK;case OD:return zv.HIGH_CONTRAST_LIGHT;default:return zv.DARK}}get tokenTheme(){if(!this._tokenTheme){let t=[],n=[];if(this.themeData.inherit){const s=$ze(this.themeData.base);t=s.rules,s.encodedTokensColors&&(n=s.encodedTokensColors)}const r=this.themeData.colors["editor.foreground"],o=this.themeData.colors["editor.background"];if(r||o){const s={token:""};r&&(s.foreground=r),o&&(s.background=o),t.push(s)}t=t.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(n=this.themeData.encodedTokensColors),this._tokenTheme=cMn.createFromRawTokenTheme(t,n)}return this._tokenTheme}getTokenStyleMetadata(t,n,r){const s=this.tokenTheme._match([t].concat(n).join(".")).metadata,a=pf.getForeground(s),l=pf.getFontStyle(s);return{foreground:a,italic:!!(l&1),bold:!!(l&2),underline:!!(l&4),strikethrough:!!(l&8)}}get tokenColorMap(){return[]}}function The(e){return e===bS||e===ZU||e===wD||e===OD}function $ze(e){switch(e){case bS:return Dxo;case ZU:return Bxo;case wD:return Rxo;case OD:return Ixo}}function Ace(e){const t=$ze(e);return new hMn(e,t)}class Fxo extends ft{constructor(){super(),this._onColorThemeChange=this._register(new at),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new at),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new dMn,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(bS,Ace(bS)),this._knownThemes.set(ZU,Ace(ZU)),this._knownThemes.set(wD,Ace(wD)),this._knownThemes.set(OD,Ace(OD));const t=this._register(Mxo(this));this._codiconCSS=t.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} ${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(bS),this._onOSSchemeChanged(),this._register(t.onDidChange(()=>{this._codiconCSS=t.getCSS(),this._updateCSS()})),L6n(Ls,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(t){return xme(t)?this._registerShadowDomContainer(t):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=mA(void 0,t=>{t.className="monaco-colors",t.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),ft.None}_registerShadowDomContainer(t){const n=mA(t,r=>{r.className="monaco-colors",r.textContent=this._allCSS});return this._styleElements.push(n),{dispose:()=>{for(let r=0;r{r.base===t&&r.notifyBaseUpdated()}),this._theme.themeName===t&&this.setTheme(t)}getColorTheme(){return this._theme}setColorMapOverride(t){this._colorMapOverride=t,this._updateThemeOrColorMap()}setTheme(t){let n;this._knownThemes.has(t)?n=this._knownThemes.get(t):n=this._knownThemes.get(bS),this._updateActualTheme(n)}_updateActualTheme(t){!t||this._theme===t||(this._theme=t,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const t=Ls.matchMedia("(forced-colors: active)").matches;if(t!==l3(this._theme.type)){let n;j8(this._theme.type)?n=t?wD:ZU:n=t?OD:bS,this._updateActualTheme(this._knownThemes.get(n))}}}setAutoDetectHighContrast(t){this._autoDetectHighContrast=t,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const t=[],n={},r={addRule:a=>{n[a]||(t.push(a),n[a]=!0)}};Pxo.getThemingParticipants().forEach(a=>a(this._theme,r,this._environment));const o=[];for(const a of uMn.getColors()){const l=this._theme.getColor(a.id,!0);l&&o.push(`${Aet(a.id)}: ${l.toString()};`)}r.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${o.join(` @@ -2796,7 +2796,7 @@ ${iSt(zt.menuSubmenu)} `:`\r `}_shouldRestoreUndoStack(){const t=this._configurationService.getValue("files.restoreUndoStack");return typeof t=="boolean"?t:!0}getCreationOptions(t,n,r){const o=typeof t=="string"?t:t.languageId;let s=this._modelCreationOptionsByLanguageAndResource[o+n];if(!s){const a=this._configurationService.getValue("editor",{overrideIdentifier:o,resource:n}),l=this._getEOL(n,o);s=IF._readModelOptions({editor:a,eol:l},r),this._modelCreationOptionsByLanguageAndResource[o+n]=s}return s}_updateModelOptions(t){const n=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const r=Object.keys(this._models);for(let o=0,s=r.length;ot){const n=[];for(this._disposedModels.forEach(r=>{r.sharesUndoRedoStack||n.push(r)}),n.sort((r,o)=>r.time-o.time);n.length>0&&this._disposedModelsHeapSize>t;){const r=n.shift();this._removeDisposedModel(r.uri),r.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(r.initialUndoRedoSnapshot)}}}_createModelData(t,n,r,o){const s=this.getCreationOptions(n,r,o),a=this._instantiationService.createInstance(fR,t,n,s,r);if(r&&this._disposedModels.has(S7(r))){const u=this._removeDisposedModel(r),h=this._undoRedoService.getElements(r),g=this._getSHA1Computer(),m=g.canComputeSHA1(a)?g.computeSHA1(a)===u.sha1:!1;if(m||u.sharesUndoRedoStack){for(const v of h.past)iS(v)&&v.matchesResource(r)&&v.setModel(a);for(const v of h.future)iS(v)&&v.matchesResource(r)&&v.setModel(a);this._undoRedoService.setElementsValidFlag(r,!0,v=>iS(v)&&v.matchesResource(r)),m&&(a._overwriteVersionId(u.versionId),a._overwriteAlternativeVersionId(u.alternativeVersionId),a._overwriteInitialUndoRedoSnapshot(u.initialUndoRedoSnapshot))}else u.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(u.initialUndoRedoSnapshot)}const l=S7(a.uri);if(this._models[l])throw new Error("ModelService: Cannot add model because it already exists!");const d=new b9o(a,u=>this._onWillDispose(u),(u,h)=>this._onDidChangeLanguage(u,h));return this._models[l]=d,d}createModel(t,n,r,o=!1){let s;return n?s=this._createModelData(t,n,r,o):s=this._createModelData(t,o2,r,o),this._onModelAdded.fire(s.model),s.model}getModels(){const t=[],n=Object.keys(this._models);for(let r=0,o=n.length;r0||u.future.length>0){for(const h of u.past)iS(h)&&h.matchesResource(t.uri)&&(s=!0,a+=h.heapSize(t.uri),h.setModel(t.uri));for(const h of u.future)iS(h)&&h.matchesResource(t.uri)&&(s=!0,a+=h.heapSize(t.uri),h.setModel(t.uri))}}const l=IF.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,d=this._getSHA1Computer();if(s)if(!o&&(a>l||!d.canComputeSHA1(t))){const u=r.model.getInitialUndoRedoSnapshot();u!==null&&this._undoRedoService.restoreSnapshot(u)}else this._ensureDisposedModelsHeapSize(l-a),this._undoRedoService.setElementsValidFlag(t.uri,!1,u=>iS(u)&&u.matchesResource(t.uri)),this._insertDisposedModel(new O9o(t.uri,r.model.getInitialUndoRedoSnapshot(),Date.now(),o,a,d.computeSHA1(t),t.getVersionId(),t.getAlternativeVersionId()));else if(!o){const u=r.model.getInitialUndoRedoSnapshot();u!==null&&this._undoRedoService.restoreSnapshot(u)}delete this._models[n],r.dispose(),delete this._modelCreationOptionsByLanguageAndResource[t.getLanguageId()+t.uri],this._onModelRemoved.fire(t)}_onDidChangeLanguage(t,n){const r=n.oldLanguage,o=t.getLanguageId(),s=this.getCreationOptions(r,t.uri,t.isForSimpleWidget),a=this.getCreationOptions(o,t.uri,t.isForSimpleWidget);IF._setModelOptionsForModel(t,a,s),this._onModelModeChanged.fire({model:t,oldLanguageId:r})}_getSHA1Computer(){return new g$e}},IF=yB,yB.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024,yB);f$e=IF=p9o([Lce(0,ar),Lce(1,DIn),Lce(2,rtt),Lce(3,Yn)],f$e);const zAe=class zAe{canComputeSHA1(t){return t.getValueLength()<=zAe.MAX_MODEL_SIZE}computeSHA1(t){const n=new oNe,r=t.createSnapshot();let o;for(;o=r.read();)n.update(o);return n.digest()}};zAe.MAX_MODEL_SIZE=10*1024*1024;let g$e=zAe;var y9o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},oSt=function(e,t){return function(n,r){t(n,r,e)}};let m$e=class extends ft{constructor(t,n){super(),this.quickInputService=t,this.instantiationService=n,this.registry=Ql.as(FI.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0,this._register(Hn(()=>{var r;for(const o of this.mapProviderToDescriptor.values())AI(o)&&o.dispose();(r=this.visibleQuickAccess)==null||r.picker.dispose()}))}show(t="",n){this.doShowOrPick(t,!1,n)}doShowOrPick(t,n,r){var f,k;const[o,s]=this.getOrInstantiateProvider(t,r==null?void 0:r.enabledProviderPrefixes),a=this.visibleQuickAccess,l=a==null?void 0:a.descriptor;if(a&&s&&l===s){t!==s.prefix&&!(r!=null&&r.preserveValue)&&(a.picker.value=t),this.adjustValueSelection(a.picker,s,r);return}if(s&&!(r!=null&&r.preserveValue)){let A;if(a&&l&&l!==s){const p=a.value.substr(l.prefix.length);p&&(A=`${s.prefix}${p}`)}if(!A){const p=o==null?void 0:o.defaultFilterValue;p===Fze.LAST?A=this.lastAcceptedPickerValues.get(s):typeof p=="string"&&(A=`${s.prefix}${p}`)}typeof A=="string"&&(t=A)}const d=(f=a==null?void 0:a.picker)==null?void 0:f.valueSelection,u=(k=a==null?void 0:a.picker)==null?void 0:k.value,h=new xt,g=h.add(this.quickInputService.createQuickPick({useSeparators:!0}));g.value=t,this.adjustValueSelection(g,s,r),g.placeholder=(r==null?void 0:r.placeholder)??(s==null?void 0:s.placeholder),g.quickNavigate=r==null?void 0:r.quickNavigateConfiguration,g.hideInput=!!g.quickNavigate&&!a,(typeof(r==null?void 0:r.itemActivation)=="number"||r!=null&&r.quickNavigateConfiguration)&&(g.itemActivation=(r==null?void 0:r.itemActivation)??Qb.SECOND),g.contextKey=s==null?void 0:s.contextKey,g.filterValue=A=>A.substring(s?s.prefix.length:0);let m;n&&(m=new pI,h.add(an.once(g.onWillAccept)(A=>{A.veto(),g.hide()}))),h.add(this.registerPickerListeners(g,o,s,t,r));const v=h.add(new ja);if(o&&h.add(o.provide(g,v.token,r==null?void 0:r.providerOptions)),an.once(g.onDidHide)(()=>{g.selectedItems.length===0&&v.cancel(),h.dispose(),m==null||m.complete(g.selectedItems.slice(0))}),g.show(),d&&u===t&&(g.valueSelection=d),n)return m==null?void 0:m.p}adjustValueSelection(t,n,r){let o;r!=null&&r.preserveValue?o=[t.value.length,t.value.length]:o=[(n==null?void 0:n.prefix.length)??0,t.value.length],t.valueSelection=o}registerPickerListeners(t,n,r,o,s){const a=new xt,l=this.visibleQuickAccess={picker:t,descriptor:r,value:o};return a.add(Hn(()=>{l===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),a.add(t.onDidChangeValue(d=>{const[u]=this.getOrInstantiateProvider(d,s==null?void 0:s.enabledProviderPrefixes);u!==n?this.show(d,{enabledProviderPrefixes:s==null?void 0:s.enabledProviderPrefixes,preserveValue:!0,providerOptions:s==null?void 0:s.providerOptions}):l.value=d})),r&&a.add(t.onDidAccept(()=>{this.lastAcceptedPickerValues.set(r,t.value)})),a}getOrInstantiateProvider(t,n){const r=this.registry.getQuickAccessProvider(t);if(!r||n&&!(n!=null&&n.includes(r.prefix)))return[void 0,void 0];let o=this.mapProviderToDescriptor.get(r);return o||(o=this.instantiationService.createInstance(r.ctor),this.mapProviderToDescriptor.set(r,o)),[o,r]}};m$e=y9o([oSt(0,Rf),oSt(1,Yn)],m$e);var C9o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s};class xMn{constructor(t){this.nodes=t}toString(){return this.nodes.map(t=>typeof t=="string"?t:t.label).join("")}}C9o([mc],xMn.prototype,"toString",null);const _9o=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function S9o(e){const t=[];let n=0,r;for(;r=_9o.exec(e);){r.index-n>0&&t.push(e.substring(n,r.index));const[,o,s,,a]=r;a?t.push({label:o,href:s,title:a}):t.push({label:o,href:s}),n=r.index+r[0].length}return n{Vto(v)&&Qo.stop(v,!0),n.callback(s.href)},u=n.disposables.add(new ks(l,rn.CLICK)).event,h=n.disposables.add(new ks(l,rn.KEY_DOWN)).event,g=an.chain(h,v=>v.filter(f=>{const k=new Us(f);return k.equals(10)||k.equals(3)}));n.disposables.add(Bf.addTarget(l));const m=n.disposables.add(new ks(l,ma.Tap)).event;an.any(u,m,g)(d,null,n.disposables),t.appendChild(l)}}var T9o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},sSt=function(e,t){return function(n,r){t(n,r,e)}};const EMn="inQuickInput",Q9o=new yn(EMn,!1,U(1748,"Whether keyboard focus is inside the quick input control")),Y3e=Ft.has(EMn),D9o="quickInputAlignment",B9o=new yn(D9o,"top",U(1749,"The alignment of the quick input")),Oee="quickInputType",R9o=new yn(Oee,void 0,U(1750,"The type of the currently visible quick input")),TMn="cursorAtEndOfQuickInputBox",I9o=new yn(TMn,!1,U(1751,"Whether the cursor in the quick input is at the end of the input box")),M9o=Ft.has(TMn),k$e={iconClass:fi.asClassName(zt.quickInputBack),tooltip:U(1752,"Back")},HAe=class HAe extends ft{constructor(t){super(),this.ui=t,this._visible=Ti("visible",!1),this._widgetUpdated=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._leftButtons=[],this._rightButtons=[],this._inlineButtons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=HAe.noPromptMessage,this._severity=Sl.Ignore,this.onDidTriggerButtonEmitter=this._register(new at),this.onDidHideEmitter=this._register(new at),this.onWillHideEmitter=this._register(new at),this.onDisposeEmitter=this._register(new at),this.visibleDisposables=this._register(new xt),this.onDidHide=this.onDidHideEmitter.event}get visible(){return this._visible.get()}get title(){return this._title}set title(t){this._title=t,this.update()}get description(){return this._description}set description(t){this._description=t,this.update()}get step(){return this._steps}set step(t){this._steps=t,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(t){this._totalSteps=t,this.update()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this.update()}get contextKey(){return this._contextKey}set contextKey(t){this._contextKey=t,this.update()}get busy(){return this._busy}set busy(t){this._busy=t,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(t){const n=this._ignoreFocusOut!==t&&!cA;this._ignoreFocusOut=t&&!cA,n&&this.update()}get titleButtons(){return this._leftButtons.length?[...this._leftButtons,this._rightButtons]:this._rightButtons}get buttons(){return[...this._leftButtons,...this._rightButtons,...this._inlineButtons]}set buttons(t){this._leftButtons=t.filter(n=>n===k$e),this._rightButtons=t.filter(n=>n!==k$e&&n.location!==j1e.Inline),this._inlineButtons=t.filter(n=>n.location===j1e.Inline),this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(t){this._toggles=t??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(t){this._validationMessage=t,this.update()}get severity(){return this._severity}set severity(t){this._severity=t,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(t=>{this.buttons.indexOf(t)!==-1&&this.onDidTriggerButtonEmitter.fire(t)})),this.ui.show(this),this._visible.set(!0,void 0),this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(t=MJ.Other){this._visible.set(!1,void 0),this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:t})}willHide(t=MJ.Other){this.onWillHideEmitter.fire({reason:t})}update(){var o;if(!this.visible)return;const t=this.getTitle();t&&this.ui.title.textContent!==t?this.ui.title.textContent=t:!t&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText=" ");const n=this.getDescription();if(this.ui.description1.textContent!==n&&(this.ui.description1.textContent=n),this.ui.description2.textContent!==n&&(this.ui.description2.textContent=n),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?mu(this.ui.widget,this._widget):mu(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new I0,this.busyDelay.setIfNotSet(()=>{this.visible&&(this.ui.progressBar.infinite(),this.ui.progressBar.getContainer().removeAttribute("aria-hidden"))},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.ui.progressBar.getContainer().setAttribute("aria-hidden","true"),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const s=this._leftButtons.map((d,u)=>JU(d,`id-${u}`,async()=>this.onDidTriggerButtonEmitter.fire(d)));this.ui.leftActionBar.push(s,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const a=this._rightButtons.map((d,u)=>JU(d,`id-${u}`,async()=>this.onDidTriggerButtonEmitter.fire(d)));this.ui.rightActionBar.push(a,{icon:!0,label:!1}),this.ui.inlineActionBar.clear();const l=this._inlineButtons.map((d,u)=>JU(d,`id-${u}`,async()=>this.onDidTriggerButtonEmitter.fire(d)));this.ui.inlineActionBar.push(l,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const s=((o=this.toggles)==null?void 0:o.filter(l=>l instanceof yL))??[];this.ui.inputBox.toggles=s;const a=s.length*22;this.ui.countContainer.style.right=a>0?`${4+a}px`:"4px",this.ui.visibleCountContainer.style.right=a>0?`${4+a}px`:"4px"}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const r=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==r&&(this._lastValidationMessage=r,mu(this.ui.message),r&&E9o(r,this.ui.message,{callback:s=>{this.ui.linkOpenerDelegate(s)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?U(1754,"{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(t){if(this.ui.inputBox.showDecoration(t),t!==Sl.Ignore){const n=this.ui.inputBox.stylesForType(t);this.ui.message.style.color=n.foreground?`${n.foreground}`:"",this.ui.message.style.backgroundColor=n.background?`${n.background}`:"",this.ui.message.style.border=n.border?`1px solid ${n.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}};HAe.noPromptMessage=U(1753,"Press 'Enter' to confirm your input or 'Escape' to cancel");let yee=HAe;const $Ae=class $Ae extends yee{constructor(t){super(t),this._value="",this.onDidChangeValueEmitter=this._register(new at),this.onWillAcceptEmitter=this._register(new at),this.onDidAcceptEmitter=this._register(new at),this.onDidCustomEmitter=this._register(new at),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=Qb.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new at),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new at),this.onDidTriggerItemButtonEmitter=this._register(new at),this.onDidTriggerSeparatorButtonEmitter=this._register(new at),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this._focusEventBufferer=new Cie,this.type="quickPick",this.filterValue=n=>n,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event,this.noValidationMessage=void 0}get quickNavigate(){return this._quickNavigate}set quickNavigate(t){this._quickNavigate=t,this.update()}get value(){return this._value}set value(t){this.doSetValue(t)}doSetValue(t,n){this._value!==t&&(this._value=t,n||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(t){this._ariaLabel=t,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.update()}get prompt(){return this.noValidationMessage}set prompt(t){this.noValidationMessage=t,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(t){this.ui.list.scrollTop=t}set items(t){this._items=t,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(t){this._canSelectMany=t,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(t){this._canAcceptInBackground=t}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(t){this._matchOnDescription=t,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(t){this._matchOnDetail=t,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(t){this._matchOnLabel=t,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(t){this._matchOnLabelMode=t,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(t){this._sortByLabel=t,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(t){this._keepScrollPosition=t}get itemActivation(){return this._itemActivation}set itemActivation(t){this._itemActivation=t}get activeItems(){return this._activeItems}set activeItems(t){this._activeItems=t,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(t){this._selectedItems=t,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?A2o:this.ui.keyMods}get valueSelection(){const t=this.ui.inputBox.getSelection();if(t)return[t.start,t.end]}set valueSelection(t){this._valueSelection=t,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(t){this._customButton=t,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(t){this._customButtonLabel=t,this.update()}get customHover(){return this._customButtonHover}set customHover(t){this._customButtonHover=t,this.update()}get ok(){return this._ok}set ok(t){this._ok=t,this.update()}get okLabel(){return this._okLabel??U(1756,"OK")}set okLabel(t){this._okLabel=t,this.update()}get hideInput(){return!!this._hideInput}set hideInput(t){this._hideInput=t,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(Sa.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(t=>{this.doSetValue(t,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(t,n)=>n)(t=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&Na(t,this._activeItems,(n,r)=>n===r)||(this._activeItems=t,this.onDidChangeActiveEmitter.fire(t))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:t,event:n})=>{if(this.canSelectMany&&!t.some(r=>r.pickable===!1)){t.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&Na(t,this._selectedItems,(r,o)=>r===o)||(this._selectedItems=t,this.onDidChangeSelectionEmitter.fire(t),t.length&&this.handleAccept(qJe(n)&&n.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(t=>{!this.canSelectMany||!this.visible||this.selectedItemsToConfirm!==this._selectedItems&&Na(t,this._selectedItems,(n,r)=>n===r)||(this._selectedItems=t,this.onDidChangeSelectionEmitter.fire(t))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(t=>this.onDidTriggerItemButtonEmitter.fire(t))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(t=>this.onDidTriggerSeparatorButtonEmitter.fire(t))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(t){let n=!1;this.onWillAcceptEmitter.fire({veto:()=>n=!0}),n||this.onDidAcceptEmitter.fire({inBackground:t})}registerQuickNavigation(){return wt(this.ui.container,rn.KEY_UP,t=>{if(this.canSelectMany||!this._quickNavigate)return;const n=new Us(t),r=n.keyCode;this._quickNavigate.keybindings.some(a=>{const l=a.getChords();return l.length>1?!1:l[0].shiftKey&&r===4?!(n.ctrlKey||n.altKey||n.metaKey):!!(l[0].altKey&&r===6||l[0].ctrlKey&&r===5||l[0].metaKey&&r===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const t=this.keepScrollPosition?this.scrollTop:0,n=!!this.description,r={title:!!this.title||!!this.step||!!this.titleButtons.length,description:n,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||n,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage||!!this.prompt,customButton:this.customButton};this.ui.setVisibilities(r),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let o=this.ariaLabel;!o&&r.inputBox&&(o=this.placeholder,this.title&&(o=o?`${o} - ${this.title}`:this.title),o||(o=$Ae.DEFAULT_ARIA_LABEL)),this.ui.list.ariaLabel!==o&&(this.ui.list.ariaLabel=o??null),this.ui.inputBox.ariaLabel!==o&&(this.ui.inputBox.ariaLabel=o??"input"),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this._itemActivation){case Qb.NONE:this._itemActivation=Qb.FIRST;break;case Qb.SECOND:this.ui.list.focus(Sa.Second),this._itemActivation=Qb.FIRST;break;case Qb.LAST:this.ui.list.focus(Sa.Last),this._itemActivation=Qb.FIRST;break;default:this.trySelectFirst();break}})),this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.ok.label=this.okLabel||"",this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",r.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(Sa.First)),this.keepScrollPosition&&(this.scrollTop=t)}focus(t){this.ui.list.focus(t),this.canSelectMany&&this.ui.list.domFocus()}accept(t){t&&!this._canAcceptInBackground||(this.activeItems[0]&&!this._canSelectMany&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(t??!1))}};$Ae.DEFAULT_ARIA_LABEL=U(1755,"Type to narrow down results.");let GZ=$Ae;class P9o extends yee{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new at),this.onDidAcceptEmitter=this._register(new at),this.type="inputBox",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(t){this._value=t||"",this.update()}get valueSelection(){const t=this.ui.inputBox.getSelection();if(t)return[t.start,t.end]}set valueSelection(t){this._valueSelection=t,this.valueSelectionUpdated=!0,this.update()}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.update()}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){this._ariaLabel=t,this.update()}get password(){return this._password}set password(t){this._password=t,this.update()}get prompt(){return this._prompt}set prompt(t){this._prompt=t,this.noValidationMessage=t?U(1757,"{0} (Press 'Enter' to confirm or 'Escape' to cancel)",t):yee.noPromptMessage,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(t=>{t!==this.value&&(this._value=t,this.onDidValueChangeEmitter.fire(t))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}accept(){this.onDidAcceptEmitter.fire()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const t={title:!!this.title||!!this.step||!!this.titleButtons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(t),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password);let n=this.ariaLabel;!n&&t.inputBox&&(n=this.placeholder?this.title?`${this.placeholder} - ${this.title}`:this.placeholder:this.title?this.title:"input"),this.ui.inputBox.ariaLabel!==n&&(this.ui.inputBox.ariaLabel=n||"input")}}let v$e=class extends mV{constructor(t,n){super("mouse",void 0,r=>this.getOverrideOptions(r),t,n)}getOverrideOptions(t){const n=(ec(t.content)?t.content.textContent??"":typeof t.content=="string"?t.content:t.content.value).includes(` `);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:n,skipFadeInAnimation:!0}}}};v$e=T9o([sSt(0,ar),sSt(1,pm)],v$e);const aSt="done",lSt="active",a5e="infinite",l5e="infinite-long-running",cSt="discrete",XAe=class XAe extends ft{constructor(t,n){super(),this.progressSignal=this._register(new ts),this.workedVal=0,this.showDelayedScheduler=this._register(new Es(()=>k0(this.element),0)),this.longRunningScheduler=this._register(new Es(()=>this.infiniteLongRunning(),XAe.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(t,n)}create(t,n){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),t.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=(n==null?void 0:n.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(lSt,a5e,l5e,cSt),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel(),this.progressSignal.clear()}stop(){return this.doDone(!1)}doDone(t){return this.element.classList.add(aSt),this.element.classList.contains(a5e)?(this.bit.style.opacity="0",t?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",t?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(cSt,aSt,l5e),this.element.classList.add(lSt,a5e),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(l5e)}getContainer(){return this.element}};XAe.LONG_RUNNING_INFINITE_THRESHOLD=1e4;let A$e=XAe;const F9o=tn;class N9o extends ft{constructor(t,n,r){super(),this.parent=t,this.onDidChange=s=>this.findInput.onDidChange(s),this.container=Xt(this.parent,F9o(".quick-input-box")),this.findInput=this._register(new QBn(this.container,void 0,{label:"",inputBoxStyles:n,toggleStyles:r}));const o=this.findInput.inputBox.inputElement;o.role="textbox",o.ariaHasPopup="menu",o.ariaAutoComplete="list"}get onKeyDown(){return this.findInput.onKeyDown}get value(){return this.findInput.getValue()}set value(t){this.findInput.setValue(t)}select(t=null){this.findInput.inputBox.select(t)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(t){this.findInput.inputBox.setPlaceHolder(t)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(t){this.findInput.inputBox.inputElement.type=t?"password":"text"}set enabled(t){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!t)}set toggles(t){this.findInput.setAdditionalToggles(t)}get ariaLabel(){return this.findInput.inputBox.inputElement.getAttribute("aria-label")||""}set ariaLabel(t){this.findInput.inputBox.inputElement.setAttribute("aria-label",t)}hasFocus(){return this.findInput.inputBox.hasFocus()}setAttribute(t,n){this.findInput.inputBox.inputElement.setAttribute(t,n)}removeAttribute(t){this.findInput.inputBox.inputElement.removeAttribute(t)}showDecoration(t){t===Sl.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:t===Sl.Info?1:t===Sl.Warning?2:3,content:""})}stylesForType(t){return this.findInput.inputBox.stylesForType(t===Sl.Info?1:t===Sl.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}const dSt=new zh(()=>{const e=yI.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:e,collatorIsNumeric:e.resolvedOptions().numeric}});new zh(()=>({collator:yI.Collator(void 0,{numeric:!0}).value}));new zh(()=>({collator:yI.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function U9o(e,t,n=!1){const r=e||"",o=t||"",s=dSt.value.collator.compare(r,o);return dSt.value.collatorIsNumeric&&s===0&&r!==o?ro.length)return 1}return 0}var Z3e=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},p$e=function(e,t){return function(n,r){t(n,r,e)}},b$e;const Rw=tn;class QMn{constructor(t,n,r){this.index=t,this.hasCheckbox=n,this._hidden=!1,this._init=new zh(()=>{const o=r.label??"",s=hQ(o).text.trim(),a=r.ariaLabel||[o,this.saneDescription,this.saneDetail].map(l=>OQn(l)).filter(l=>!!l).join(", ");return{saneLabel:o,saneSortLabel:s,saneAriaLabel:a}}),this._saneDescription=r.description,this._saneTooltip=r.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(t){this._element=t}get hidden(){return this._hidden}set hidden(t){this._hidden=t}get saneDescription(){return this._saneDescription}set saneDescription(t){this._saneDescription=t}get saneDetail(){return this._saneDetail}set saneDetail(t){this._saneDetail=t}get saneTooltip(){return this._saneTooltip}set saneTooltip(t){this._saneTooltip=t}get labelHighlights(){return this._labelHighlights}set labelHighlights(t){this._labelHighlights=t}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(t){this._descriptionHighlights=t}get detailHighlights(){return this._detailHighlights}set detailHighlights(t){this._detailHighlights=t}}class Ch extends QMn{constructor(t,n,r,o,s,a,l){var d,u,h;super(t,r,a),this.childIndex=n,this.fireButtonTriggered=o,this._onChecked=s,this.item=a,this._separator=l,this._checked=!1,this.onChecked=r?an.map(an.filter(this._onChecked.event,g=>g.element===this),g=>g.checked):an.None,this._saneDetail=a.detail,this._labelHighlights=(d=a.highlights)==null?void 0:d.label,this._descriptionHighlights=(u=a.highlights)==null?void 0:u.description,this._detailHighlights=(h=a.highlights)==null?void 0:h.detail}get separator(){return this._separator}set separator(t){this._separator=t}get checked(){return this._checked}set checked(t){t!==this._checked&&(this._checked=t,this._onChecked.fire({element:this,checked:t}))}get checkboxDisabled(){return!!this.item.disabled}}var qw;(function(e){e[e.NONE=0]="NONE",e[e.MOUSE_HOVER=1]="MOUSE_HOVER",e[e.ACTIVE_ITEM=2]="ACTIVE_ITEM"})(qw||(qw={}));class tT extends QMn{constructor(t,n,r){super(t,!1,r),this.fireSeparatorButtonTriggered=n,this.separator=r,this.children=new Array,this.focusInsideSeparator=qw.NONE}}class V9o{getHeight(t){return t instanceof tT?30:t.saneDetail?44:22}getTemplateId(t){return t instanceof Ch?Cke.ID:_ke.ID}}class z9o{getWidgetAriaLabel(){return U(1770,"Quick Input")}getAriaLabel(t){var n;return(n=t.separator)!=null&&n.label?`${t.saneAriaLabel}, ${t.separator.label}`:t.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(t){return t.hasCheckbox?"checkbox":"option"}isChecked(t){if(!(!t.hasCheckbox||!(t instanceof Ch)))return{get value(){return t.checked},onDidChange:n=>t.onChecked(()=>n())}}}class DMn{constructor(t){this.hoverDelegate=t}renderTemplate(t){const n=Object.create(null);n.toDisposeElement=new xt,n.toDisposeTemplate=new xt,n.entry=Xt(t,Rw(".quick-input-list-entry"));const r=Xt(n.entry,Rw("label.quick-input-list-label"));n.outerLabel=r,n.checkbox=n.toDisposeTemplate.add(new ts),n.toDisposeTemplate.add(wc(r,rn.CLICK,u=>{if(n.checkbox.value&&!u.defaultPrevented&&n.checkbox.value.enabled){const h=!n.checkbox.value.checked;n.checkbox.value.checked=h,n.element.checked=h}}));const o=Xt(r,Rw(".quick-input-list-rows")),s=Xt(o,Rw(".quick-input-list-row")),a=Xt(o,Rw(".quick-input-list-row"));n.label=new GJ(s,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),n.toDisposeTemplate.add(n.label),n.icon=Obe(n.label.element,Rw(".quick-input-list-icon"));const l=Xt(s,Rw(".quick-input-list-entry-keybinding"));n.keybinding=new cH(l,b0),n.toDisposeTemplate.add(n.keybinding);const d=Xt(a,Rw(".quick-input-list-label-meta"));return n.detail=new GJ(d,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),n.toDisposeTemplate.add(n.detail),n.separator=Xt(n.entry,Rw(".quick-input-list-separator")),n.actionBar=new g1(n.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),n.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),n.toDisposeTemplate.add(n.actionBar),n}disposeTemplate(t){t.toDisposeElement.dispose(),t.toDisposeTemplate.dispose()}disposeElement(t,n,r){r.toDisposeElement.clear(),r.actionBar.clear()}}var CB;let Cke=(CB=class extends DMn{constructor(t,n){super(t),this.themeService=n,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return b$e.ID}ensureCheckbox(t,n){var o;if(!t.hasCheckbox){(o=n.checkbox.value)==null||o.domNode.remove(),n.checkbox.clear();return}let r=n.checkbox.value;r?r.setTitle(t.saneLabel):(r=new yBn(t.saneLabel,t.checked,{...Btt,size:15}),n.checkbox.value=r,n.outerLabel.prepend(r.domNode)),t.checkboxDisabled?r.disable():r.enable(),r.checked=t.checked,n.toDisposeElement.add(t.onChecked(s=>r.checked=s)),n.toDisposeElement.add(r.onChange(()=>t.checked=r.checked))}renderElement(t,n,r){var m;const o=t.element;r.element=o,o.element=r.entry??void 0;const s=o.item;o.element.classList.toggle("not-pickable",o.item.pickable===!1),this.ensureCheckbox(o,r);const{labelHighlights:a,descriptionHighlights:l,detailHighlights:d}=o;if(s.iconPath){const v=j8(this.themeService.getColorTheme().type)?s.iconPath.dark:s.iconPath.light??s.iconPath.dark,f=vi.revive(v);r.icon.className="quick-input-list-icon",r.icon.style.backgroundImage=xy(f)}else r.icon.style.backgroundImage="",r.icon.className=s.iconClass?`quick-input-list-icon ${s.iconClass}`:"";let u;!o.saneTooltip&&o.saneDescription&&(u={markdown:{value:Y4(o.saneDescription),supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDescription});const h={matches:a||[],descriptionTitle:u,descriptionMatches:l||[],labelEscapeNewLines:!0};if(h.extraClasses=s.iconClasses,h.italic=s.italic,h.strikethrough=s.strikethrough,r.entry.classList.remove("quick-input-list-separator-as-item"),r.label.setLabel(o.saneLabel,o.saneDescription,h),r.keybinding.set(s.keybinding),o.saneDetail){let v;o.saneTooltip||(v={markdown:{value:Y4(o.saneDetail),supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDetail}),r.detail.element.style.display="",r.detail.setLabel(o.saneDetail,void 0,{matches:d,title:v,labelEscapeNewLines:!0})}else r.detail.element.style.display="none";(m=o.separator)!=null&&m.label?(r.separator.textContent=o.separator.label,r.separator.style.display="",this.addItemWithSeparator(o)):r.separator.style.display="none",r.entry.classList.toggle("quick-input-list-separator-border",!!o.separator&&o.childIndex!==0);const g=s.buttons;g&&g.length?(r.actionBar.push(g.map((v,f)=>JU(v,`id-${f}`,()=>o.fireButtonTriggered({button:v,item:o.item}))),{icon:!0,label:!1}),r.entry.classList.add("has-actions")):r.entry.classList.remove("has-actions")}disposeElement(t,n,r){this.removeItemWithSeparator(t.element),super.disposeElement(t,n,r)}isItemWithSeparatorVisible(t){return this._itemsWithSeparatorsFrequency.has(t)}addItemWithSeparator(t){this._itemsWithSeparatorsFrequency.set(t,(this._itemsWithSeparatorsFrequency.get(t)||0)+1)}removeItemWithSeparator(t){const n=this._itemsWithSeparatorsFrequency.get(t)||0;n>1?this._itemsWithSeparatorsFrequency.set(t,n-1):this._itemsWithSeparatorsFrequency.delete(t)}},b$e=CB,CB.ID="quickpickitem",CB);Cke=b$e=Z3e([p$e(1,Dl)],Cke);const GAe=class GAe extends DMn{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}get templateId(){return GAe.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(t){return this._visibleSeparatorsFrequency.has(t)}renderElement(t,n,r){const o=t.element;r.element=o,o.element=r.entry??void 0,o.element.classList.toggle("focus-inside",!!o.focusInsideSeparator);const s=o.separator,{labelHighlights:a,descriptionHighlights:l}=o;r.icon.style.backgroundImage="",r.icon.className="";let d;!o.saneTooltip&&o.saneDescription&&(d={markdown:{value:Y4(o.saneDescription),supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDescription});const u={matches:a||[],descriptionTitle:d,descriptionMatches:l||[],labelEscapeNewLines:!0};r.entry.classList.add("quick-input-list-separator-as-item"),r.label.setLabel(o.saneLabel,o.saneDescription,u),r.separator.style.display="none",r.entry.classList.add("quick-input-list-separator-border");const h=s.buttons;h&&h.length?(r.actionBar.push(h.map((g,m)=>JU(g,`id-${m}`,()=>o.fireSeparatorButtonTriggered({button:g,separator:o.separator}))),{icon:!0,label:!1}),r.entry.classList.add("has-actions")):r.entry.classList.remove("has-actions"),this.addSeparator(o)}disposeElement(t,n,r){var o;this.removeSeparator(t.element),this.isSeparatorVisible(t.element)||(o=t.element.element)==null||o.classList.remove("focus-inside"),super.disposeElement(t,n,r)}addSeparator(t){this._visibleSeparatorsFrequency.set(t,(this._visibleSeparatorsFrequency.get(t)||0)+1)}removeSeparator(t){const n=this._visibleSeparatorsFrequency.get(t)||0;n>1?this._visibleSeparatorsFrequency.set(t,n-1):this._visibleSeparatorsFrequency.delete(t)}};GAe.ID="quickpickseparator";let _ke=GAe,Cee=class extends ft{constructor(t,n,r,o,s,a){super(),this.parent=t,this.hoverDelegate=n,this.linkOpenerDelegate=r,this.accessibilityService=a,this._onKeyDown=new at,this._onLeave=new at,this.onLeave=this._onLeave.event,this._visibleCountObservable=Ti("VisibleCount",0),this.onChangedVisibleCount=an.fromObservable(this._visibleCountObservable,this._store),this._allVisibleCheckedObservable=Ti("AllVisibleChecked",!1),this.onChangedAllVisibleChecked=an.fromObservable(this._allVisibleCheckedObservable,this._store),this._checkedCountObservable=Ti("CheckedCount",0),this.onChangedCheckedCount=an.fromObservable(this._checkedCountObservable,this._store),this._checkedElementsObservable=wZ({equalsFn:Na},new Array),this.onChangedCheckedElements=an.fromObservable(this._checkedElementsObservable,this._store),this._onButtonTriggered=new at,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new at,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new at,this._elementCheckedEventBufferer=new Cie,this._hasCheckboxes=!1,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new xt),this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._shouldLoop=!0,this._container=Xt(this.parent,Rw(".quick-input-list")),this._separatorRenderer=new _ke(n),this._itemRenderer=s.createInstance(Cke,n),this._tree=this._register(s.createInstance(u0e,"QuickInput",this._container,new V9o,[this._itemRenderer,this._separatorRenderer],{filter:{filter(l){return l.hidden?0:l instanceof tT?2:1}},sorter:{compare:(l,d)=>{if(!this.sortByLabel||!this._lastQueryString)return 0;const u=this._lastQueryString.toLowerCase();return $9o(l,d,u)}},accessibilityProvider:new z9o,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:xR.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=o,this._registerListeners()}get onDidChangeFocus(){return an.map(this._tree.onDidChangeFocus,t=>t.elements.filter(n=>n instanceof Ch).map(n=>n.item),this._store)}get onDidChangeSelection(){return an.map(this._tree.onDidChangeSelection,t=>({items:t.elements.filter(n=>n instanceof Ch).map(n=>n.item),event:t.browserEvent}),this._store)}get displayed(){return this._container.style.display!=="none"}set displayed(t){this._container.style.display=t?"":"none"}get scrollTop(){return this._tree.scrollTop}set scrollTop(t){this._tree.scrollTop=t}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(t){this._tree.ariaLabel=t??""}set enabled(t){this._tree.getHTMLElement().style.pointerEvents=t?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(t){this._matchOnDescription=t}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(t){this._matchOnDetail=t}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(t){this._matchOnLabel=t}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(t){this._matchOnLabelMode=t}get sortByLabel(){return this._sortByLabel}set sortByLabel(t){this._sortByLabel=t}get shouldLoop(){return this._shouldLoop}set shouldLoop(t){this._shouldLoop=t}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnTreeModelChanged(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(t=>{const n=new Us(t);switch(n.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(n)}))}_registerOnContainerClick(){this._register(wt(this._container,rn.CLICK,t=>{(t.x||t.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(wt(this._container,rn.AUXCLICK,t=>{t.button===1&&this._onLeave.fire()}))}_registerOnTreeModelChanged(){this._register(this._tree.onDidChangeModel(()=>{const t=this._itemElements.filter(n=>!n.hidden).length;this._visibleCountObservable.set(t,void 0),this._hasCheckboxes&&this._updateCheckedObservables()}))}_registerOnElementChecked(){this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event,(t,n)=>n)(t=>this._updateCheckedObservables()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(t=>{t.element&&(t.browserEvent.preventDefault(),this._tree.setSelection([t.element]))}))}_registerHoverListeners(){const t=this._register(new N6n(typeof this.hoverDelegate.delay=="function"?this.hoverDelegate.delay():this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async n=>{var r;if(_bt(n.browserEvent.target)){t.cancel();return}if(!(!_bt(n.browserEvent.relatedTarget)&&gu(n.browserEvent.relatedTarget,(r=n.element)==null?void 0:r.element)))try{await t.trigger(async()=>{n.element instanceof Ch&&this.showHover(n.element)})}catch(o){if(!C2(o))throw o}})),this._register(this._tree.onMouseOut(n=>{var r;gu(n.browserEvent.relatedTarget,(r=n.element)==null?void 0:r.element)||t.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(t=>{const n=t.elements[0]?this._tree.getParentElement(t.elements[0]):null;for(const r of this._separatorRenderer.visibleSeparators){const o=r===n;!!(r.focusInsideSeparator&qw.ACTIVE_ITEM)!==o&&(o?r.focusInsideSeparator|=qw.ACTIVE_ITEM:r.focusInsideSeparator&=~qw.ACTIVE_ITEM,this._tree.rerender(r))}})),this._register(this._tree.onMouseOver(t=>{const n=t.element?this._tree.getParentElement(t.element):null;for(const r of this._separatorRenderer.visibleSeparators){if(r!==n)continue;!!(r.focusInsideSeparator&qw.MOUSE_HOVER)||(r.focusInsideSeparator|=qw.MOUSE_HOVER,this._tree.rerender(r))}})),this._register(this._tree.onMouseOut(t=>{const n=t.element?this._tree.getParentElement(t.element):null;for(const r of this._separatorRenderer.visibleSeparators){if(r!==n)continue;!!(r.focusInsideSeparator&qw.MOUSE_HOVER)&&(r.focusInsideSeparator&=~qw.MOUSE_HOVER,this._tree.rerender(r))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(t=>{const n=t.elements.filter(r=>r instanceof Ch);n.length!==t.elements.length&&(t.elements.length===1&&t.elements[0]instanceof tT&&(this._tree.setFocus([t.elements[0].children[0]]),this._tree.reveal(t.elements[0],0)),this._tree.setSelection(n))}))}setAllVisibleChecked(t){this._elementCheckedEventBufferer.bufferEvents(()=>{this._itemElements.forEach(n=>{!n.hidden&&!n.checkboxDisabled&&n.item.pickable!==!1&&(n.checked=t)})})}setElements(t){this._elementDisposable.clear(),this._lastQueryString=void 0,this._inputElements=t,this._hasCheckboxes=this.parent.classList.contains("show-checkboxes");let n;this._itemElements=new Array,this._elementTree=t.reduce((r,o,s)=>{let a;if(o.type==="separator"){if(!o.buttons)return r;n=new tT(s,l=>this._onSeparatorButtonTriggered.fire(l),o),a=n}else{const l=s>0?t[s-1]:void 0;let d;l&&l.type==="separator"&&!l.buttons&&(d=l);const u=new Ch(s,n!=null&&n.children?n.children.length:s,this._hasCheckboxes&&o.pickable!==!1,h=>this._onButtonTriggered.fire(h),this._elementChecked,o,d);if(this._itemElements.push(u),n)return n.children.push(u),r;a=u}return r.push(a),r},new Array),this._setElementsToTree(this._elementTree),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const r=this._tree.getHTMLElement().querySelector(".monaco-list-row.focused"),o=r==null?void 0:r.parentNode;if(r&&o){const s=r.nextSibling;r.remove(),o.insertBefore(r,s)}},0)}setFocusedElements(t){const n=t.map(r=>this._itemElements.find(o=>o.item===r)).filter(r=>!!r).filter(r=>!r.hidden);if(this._tree.setFocus(n),t.length>0){const r=this._tree.getFocus()[0];r&&this._tree.reveal(r)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(t){const n=t.map(r=>this._itemElements.find(o=>o.item===r)).filter(r=>!!r);this._tree.setSelection(n)}getCheckedElements(){return this._itemElements.filter(t=>t.checked).map(t=>t.item)}setCheckedElements(t){this._elementCheckedEventBufferer.bufferEvents(()=>{const n=new Set;for(const r of t)n.add(r);for(const r of this._itemElements)r.checked=n.has(r.item)})}focus(t){var n;if(this._itemElements.length)switch(t===Sa.Second&&this._itemElements.length<2&&(t=Sa.First),t){case Sa.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,r=>r.element instanceof Ch);break;case Sa.Second:{this._tree.scrollTop=0;let r=!1;this._tree.focusFirst(void 0,o=>o.element instanceof Ch?r?!0:(r=!r,!1):!1);break}case Sa.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,r=>r.element instanceof Ch);break;case Sa.Next:{const r=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,s=>s.element instanceof Ch?(this._tree.reveal(s.element),!0):!1);const o=this._tree.getFocus();r.length&&r[0]===o[0]&&this._onLeave.fire();break}case Sa.Previous:{const r=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,s=>{if(!(s.element instanceof Ch))return!1;const a=this._tree.getParentElement(s.element);return a===null||a.children[0]!==s.element?this._tree.reveal(s.element):this._tree.reveal(a),!0});const o=this._tree.getFocus();r.length&&r[0]===o[0]&&this._onLeave.fire();break}case Sa.NextPage:this._tree.focusNextPage(void 0,r=>r.element instanceof Ch?(this._tree.reveal(r.element),!0):!1);break;case Sa.PreviousPage:this._tree.focusPreviousPage(void 0,r=>{if(!(r.element instanceof Ch))return!1;const o=this._tree.getParentElement(r.element);return o===null||o.children[0]!==r.element?this._tree.reveal(r.element):this._tree.reveal(o),!0});break;case Sa.NextSeparator:{let r=!1;const o=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,a=>{if(r)return!0;if(a.element instanceof tT)r=!0,this._separatorRenderer.isSeparatorVisible(a.element)?this._tree.reveal(a.element.children[0]):this._tree.reveal(a.element,0);else if(a.element instanceof Ch){if(a.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(a.element)?this._tree.reveal(a.element):this._tree.reveal(a.element,0),!0;if(a.element===this._elementTree[0])return this._tree.reveal(a.element,0),!0}return!1});const s=this._tree.getFocus()[0];o===s&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,a=>a.element instanceof Ch));break}case Sa.PreviousSeparator:{let r,o=!!((n=this._tree.getFocus()[0])!=null&&n.separator);this._tree.focusPrevious(void 0,!0,void 0,s=>{if(s.element instanceof tT)o?r||(this._separatorRenderer.isSeparatorVisible(s.element)?this._tree.reveal(s.element):this._tree.reveal(s.element,0),r=s.element.children[0]):o=!0;else if(s.element instanceof Ch&&!r){if(s.element.separator)this._itemRenderer.isItemWithSeparatorVisible(s.element)?this._tree.reveal(s.element):this._tree.reveal(s.element,0),r=s.element;else if(s.element===this._elementTree[0])return this._tree.reveal(s.element,0),!0}return!1}),r&&this._tree.setFocus([r]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(t){this._tree.getHTMLElement().style.maxHeight=t?`${Math.floor(t/44)*44+6}px`:"",this._tree.layout()}filter(t){if(this._lastQueryString=t,!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const n=t;if(t=t.trim(),!t||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(r=>{r.labelHighlights=void 0,r.descriptionHighlights=void 0,r.detailHighlights=void 0,r.hidden=!1;const o=r.index&&this._inputElements[r.index-1];r.item&&(r.separator=o&&o.type==="separator"&&!o.buttons?o:void 0)});else{let r;this._itemElements.forEach(o=>{let s;this.matchOnLabelMode==="fuzzy"?s=this.matchOnLabel?SZ(t,hQ(o.saneLabel))??void 0:void 0:s=this.matchOnLabel?H9o(n,hQ(o.saneLabel))??void 0:void 0;const a=this.matchOnDescription?SZ(t,hQ(o.saneDescription||""))??void 0:void 0,l=this.matchOnDetail?SZ(t,hQ(o.saneDetail||""))??void 0:void 0;if(s||a||l?(o.labelHighlights=s,o.descriptionHighlights=a,o.detailHighlights=l,o.hidden=!1):(o.labelHighlights=void 0,o.descriptionHighlights=void 0,o.detailHighlights=void 0,o.hidden=o.item?!o.item.alwaysShow:!0),o.item?o.separator=void 0:o.separator&&(o.hidden=!0),!this.sortByLabel){const d=o.index&&this._inputElements[o.index-1]||void 0;(d==null?void 0:d.type)==="separator"&&!d.buttons&&(r=d),r&&!o.hidden&&(o.separator=r,r=void 0)}})}return this._setElementsToTree(this._sortByLabel&&t?this._itemElements:this._elementTree),this._tree.layout(),!0}toggleCheckbox(){this._elementCheckedEventBufferer.bufferEvents(()=>{const t=this._tree.getFocus().filter(r=>r instanceof Ch),n=this._allVisibleChecked(t);for(const r of t)r.checkboxDisabled||(r.checked=!n)})}style(t){this._tree.style(t)}toggleHover(){const t=this._tree.getFocus()[0];if(!(t!=null&&t.saneTooltip)||!(t instanceof Ch))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(t);const n=new xt;n.add(this._tree.onDidChangeFocus(r=>{r.elements[0]instanceof Ch&&this.showHover(r.elements[0])})),this._lastHover&&n.add(this._lastHover),this._elementDisposable.add(n)}_setElementsToTree(t){const n=new Array;for(const r of t)r instanceof tT?n.push({element:r,collapsible:!1,collapsed:!1,children:r.children.map(o=>({element:o,collapsible:!1,collapsed:!1}))}):n.push({element:r,collapsible:!1,collapsed:!1});this._tree.setChildren(null,n)}_allVisibleChecked(t,n=!0){for(let r=0,o=t.length;r{this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements,!1),t);const n=this._itemElements.filter(r=>r.checked).length;this._checkedCountObservable.set(n,t),this._checkedElementsObservable.set(this.getCheckedElements(),t)})}showHover(t){var n,r,o;this._lastHover&&!this._lastHover.isDisposed&&((r=(n=this.hoverDelegate).onDidHideHover)==null||r.call(n),(o=this._lastHover)==null||o.dispose()),!(!t.element||!t.saneTooltip)&&(this._lastHover=this.hoverDelegate.showHover({content:t.saneTooltip,target:t.element,linkHandler:s=>{this.linkOpenerDelegate(s)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};Z3e([mc],Cee.prototype,"onDidChangeFocus",null);Z3e([mc],Cee.prototype,"onDidChangeSelection",null);Cee=Z3e([p$e(4,Yn),p$e(5,vh)],Cee);function H9o(e,t){const{text:n,iconOffsets:r}=t;if(!r||r.length===0)return uSt(e,n);const o=_ie(n," "),s=n.length-o.length,a=uSt(e,o);if(a)for(const l of a){const d=r[l.start+s]+s;l.start+=d,l.end+=d}return a}function uSt(e,t){const n=t.toLowerCase().indexOf(e.toLowerCase());return n!==-1?[{start:n,end:n+e.length}]:null}function $9o(e,t,n){const r=e.labelHighlights||[],o=t.labelHighlights||[];return r.length&&!o.length?-1:!r.length&&o.length?1:r.length===0&&o.length===0?0:j9o(e.saneSortLabel,t.saneSortLabel,n)}function X9o(e,t={}){Nu.registerCommandAndKeybindingRule({weight:200,when:Y3e,metadata:{description:U(1758,"Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")},...e,secondary:uit(e.primary,e.secondary??[],t)})}function qm(e,t={}){Nu.registerCommandAndKeybindingRule({weight:200,when:Ft.and(Ft.or(Ft.equals(Oee,"quickPick"),Ft.equals(Oee,"quickTree")),Y3e),metadata:{description:U(1759,"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")},...e,secondary:uit(e.primary,e.secondary??[],t)})}const _ee=Tr?256:2048;function uit(e,t,n={}){return n.withAltMod&&t.push(512+e),n.withCtrlMod&&(t.push(_ee+e),n.withAltMod&&t.push(512+_ee+e)),n.withCmdMod&&Tr&&(t.push(2048+e),n.withCtrlMod&&t.push(2304+e),n.withAltMod&&(t.push(2560+e),n.withCtrlMod&&t.push(2816+e))),t}function Mk(e,t){return n=>{const r=n.get(Rf).currentQuickInput;if(r)return t&&r.quickNavigate?r.focus(t):r.focus(e)}}qm({id:"quickInput.pageNext",primary:12,handler:Mk(Sa.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});qm({id:"quickInput.pagePrevious",primary:11,handler:Mk(Sa.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});qm({id:"quickInput.first",primary:_ee+14,handler:Mk(Sa.First)},{withAltMod:!0,withCmdMod:!0});qm({id:"quickInput.last",primary:_ee+13,handler:Mk(Sa.Last)},{withAltMod:!0,withCmdMod:!0});qm({id:"quickInput.next",primary:18,handler:Mk(Sa.Next)},{withCtrlMod:!0});qm({id:"quickInput.previous",primary:16,handler:Mk(Sa.Previous)},{withCtrlMod:!0});const hSt=U(1760,"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator."),fSt=U(1761,"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");Tr?(qm({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:2066,handler:Mk(Sa.NextSeparator,Sa.Next),metadata:{description:hSt}}),qm({id:"quickInput.nextSeparator",primary:2578,secondary:[2322],handler:Mk(Sa.NextSeparator)},{withCtrlMod:!0}),qm({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:2064,handler:Mk(Sa.PreviousSeparator,Sa.Previous),metadata:{description:fSt}}),qm({id:"quickInput.previousSeparator",primary:2576,secondary:[2320],handler:Mk(Sa.PreviousSeparator)},{withCtrlMod:!0})):(qm({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:530,handler:Mk(Sa.NextSeparator,Sa.Next),metadata:{description:hSt}}),qm({id:"quickInput.nextSeparator",primary:2578,handler:Mk(Sa.NextSeparator)}),qm({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:528,handler:Mk(Sa.PreviousSeparator,Sa.Previous),metadata:{description:fSt}}),qm({id:"quickInput.previousSeparator",primary:2576,handler:Mk(Sa.PreviousSeparator)}));Nu.registerCommandAndKeybindingRule({id:"quickInput.accept",primary:3,weight:200,when:Ft.and(Ft.notEquals(Oee,"quickWidget"),Y3e,Ft.not("isComposing")),metadata:{description:U(1762,"Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")},handler:e=>{const t=e.get(Rf).currentQuickInput;t==null||t.accept()},secondary:uit(3,[],{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0})});qm({id:"quickInput.acceptInBackground",when:Ft.and(Y3e,Ft.equals(Oee,"quickPick"),Ft.or(unt.negate(),M9o)),primary:17,weight:250,handler:e=>{const t=e.get(Rf).currentQuickInput;t==null||t.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});X9o({id:"quickInput.hide",primary:9,handler:e=>{const t=e.get(Rf).currentQuickInput;t==null||t.hide()}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});qm({id:"quickInput.toggleHover",primary:_ee|10,handler:e=>{e.get(Rf).toggleHover()}});var G9o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Y9o=function(e,t){return function(n,r){t(n,r,e)}},w$e;const FX=tn;var _B;let Ske=(_B=class extends ft{constructor(t,n,r,o){super(),this._hoverDelegate=t,this._buttonTriggeredEmitter=n,this.onCheckedEvent=r,this._themeService=o,this.templateId=w$e.ID}renderTemplate(t){const n=new xt,r=Xt(t,FX(".quick-input-tree-entry")),o=n.add(new CBn("",!1,{...Btt,size:15}));r.appendChild(o.domNode);const s=Xt(r,FX("label.quick-input-tree-label")),a=Xt(s,FX(".quick-input-tree-rows")),l=Xt(a,FX(".quick-input-tree-row")),d=Obe(l,FX(".quick-input-tree-icon")),u=n.add(new GJ(l,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this._hoverDelegate})),h=n.add(new g1(r,this._hoverDelegate?{hoverDelegate:this._hoverDelegate}:void 0));return h.domNode.classList.add("quick-input-tree-entry-action-bar"),{toDisposeTemplate:n,entry:r,checkbox:o,icon:d,label:u,actionBar:h,toDisposeElement:new xt}}renderElement(t,n,r,o){const s=r.toDisposeElement,a=t.element;if(a.pickable===!1?r.checkbox.domNode.style.display="none":(r.checkbox.domNode.style.display="",r.checkbox.checked=a.checked??!1,s.add(an.filter(this.onCheckedEvent,g=>g.item===a)(g=>r.checkbox.checked=g.checked)),a.disabled&&r.checkbox.disable()),a.iconPath){const g=j8(this._themeService.getColorTheme().type)?a.iconPath.dark:a.iconPath.light??a.iconPath.dark,m=vi.revive(g);r.icon.className="quick-input-tree-icon",r.icon.style.backgroundImage=xy(m)}else r.icon.style.backgroundImage="",r.icon.className=a.iconClass?`quick-input-tree-icon ${a.iconClass}`:"";const{labelHighlights:l,descriptionHighlights:d}=t.filterData||{};let u;a.description&&(u={markdown:{value:Y4(a.description),supportThemeIcons:!0},markdownNotSupportedFallback:a.description}),r.label.setLabel(a.label,a.description,{matches:l,descriptionMatches:d,extraClasses:a.iconClasses,italic:a.italic,strikethrough:a.strikethrough,labelEscapeNewLines:!0,descriptionTitle:u});const h=a.buttons;h&&h.length?(r.actionBar.push(h.map((g,m)=>JU(g,`tree-${m}`,()=>this._buttonTriggeredEmitter.fire({item:a,button:g}))),{icon:!0,label:!1}),r.entry.classList.add("has-actions")):r.entry.classList.remove("has-actions")}disposeElement(t,n,r,o){r.toDisposeElement.clear(),r.actionBar.clear()}disposeTemplate(t){t.toDisposeElement.dispose(),t.toDisposeTemplate.dispose()}},w$e=_B,_B.ID="quickInputTreeElement",_B);Ske=w$e=G9o([Y9o(3,Dl)],Ske);class Z9o{getHeight(t){return 22}getTemplateId(t){return Ske.ID}}function q9o(e){var s;let t=!1,n=!1,r=!1;for(const a of e){switch((s=a.element)==null?void 0:s.checked){case"mixed":r=!0;break;case!0:t=!0;break;default:n=!0;break}if(t&&n&&r)break}return n?r||t?"mixed":!1:r?"mixed":t}class K9o{constructor(t){this.onCheckedEvent=t}getWidgetAriaLabel(){return U(1772,"Quick Tree")}getAriaLabel(t){return t.ariaLabel||[t.label,t.description].map(n=>OQn(n)).filter(n=>!!n).join(", ")}getWidgetRole(){return"tree"}getRole(t){return"checkbox"}isChecked(t){return{get value(){return t.checked==="mixed"?"mixed":!!t.checked},onDidChange:n=>an.filter(this.onCheckedEvent,r=>r.item===t)(r=>n())}}}class J9o{constructor(){this.filterValue="",this.matchOnLabel=!0,this.matchOnDescription=!1}filter(t,n){if(!this.filterValue||!(this.matchOnLabel||this.matchOnDescription))return t.children?{visibility:2,data:{}}:{visibility:1,data:{}};const r=this.matchOnLabel?SZ(this.filterValue,hQ(t.label))??void 0:void 0,o=this.matchOnDescription?SZ(this.filterValue,hQ(t.description||""))??void 0:void 0;return{visibility:n===1||r||o?1:t.children?2:0,data:{labelHighlights:r,descriptionHighlights:o}}}}class e6o extends ft{constructor(){super(...arguments),this._sortByLabel=!0}get sortByLabel(){return this._sortByLabel}set sortByLabel(t){this._sortByLabel=t}compare(t,n){if(!this._sortByLabel)return 0;if(t.labeln.label)return 1;if(t.description&&n.description){if(t.descriptionn.description)return 1}else{if(t.description)return-1;if(n.description)return 1}return 0}}var t6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},n6o=function(e,t){return function(n,r){t(n,r,e)}};const i6o=tn;let O$e=class extends ft{constructor(t,n,r){super(),this.instantiationService=r,this._onDidTriggerButton=this._register(new at),this._onDidChangeCheckboxState=this._register(new at),this.onDidChangeCheckboxState=this._onDidChangeCheckboxState.event,this._onDidCheckedLeafItemsChange=this._register(new at),this._onLeave=new at,this.onLeave=this._onLeave.event,this._onDidAccept=this._register(new at),this.onDidAccept=this._onDidAccept.event,this._container=Xt(t,i6o(".quick-input-tree")),this._renderer=this._register(this.instantiationService.createInstance(Ske,n,this._onDidTriggerButton,this.onDidChangeCheckboxState)),this._filter=this.instantiationService.createInstance(J9o),this._sorter=this._register(new e6o),this._tree=this._register(this.instantiationService.createInstance(u0e,"QuickInputTree",this._container,new Z9o,[this._renderer],{accessibilityProvider:new K9o(this.onDidChangeCheckboxState),horizontalScrolling:!1,multipleSelectionSupport:!1,findWidgetEnabled:!1,alwaysConsumeMouseWheel:!0,hideTwistiesOfChildlessElements:!0,renderIndentGuides:xR.None,expandOnDoubleClick:!0,expandOnlyOnTwistieClick:!0,disableExpandOnSpacebar:!0,sorter:this._sorter,filter:this._filter})),this.registerOnOpenListener()}get tree(){return this._tree}get displayed(){return this._container.style.display!=="none"}set displayed(t){this._container.style.display=t?"":"none"}get sortByLabel(){return this._sorter.sortByLabel}set sortByLabel(t){this._sorter.sortByLabel=t,this._tree.resort(null,!0)}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}updateFilterOptions(t){t.matchOnLabel!==void 0&&(this._filter.matchOnLabel=t.matchOnLabel),t.matchOnDescription!==void 0&&(this._filter.matchOnDescription=t.matchOnDescription),this._tree.refilter()}layout(t){this._tree.getHTMLElement().style.maxHeight=t?`${Math.floor(t/44)*44+6}px`:"",this._tree.layout()}registerOnOpenListener(){this._register(this._tree.onDidOpen(t=>{const n=t.element;if(!n||n.disabled)return;if(n.pickable===!1){this._tree.setFocus([n]),this._onDidAccept.fire();return}const r=n.checked!==!0;if((n.checked??!1)===r)return;n.checked=r,this._tree.rerender(n);const o=new Set,s=[...this._tree.getNode(n).children];for(;s.length;){const l=s.shift();l!=null&&l.element&&!o.has(l.element)&&(o.add(l.element),(l.element.checked??!1)!==n.checked&&(l.element.checked=n.checked,this._tree.rerender(l.element)),s.push(...l.children))}let a=this._tree.getParentElement(n);for(;a;){const l=[...this._tree.getNode(a).children],d=q9o(l);(a.checked??!1)!==d&&(a.checked=d,this._tree.rerender(a)),a=this._tree.getParentElement(a)}this._onDidChangeCheckboxState.fire({item:n,checked:n.checked??!1}),this._onDidCheckedLeafItemsChange.fire(this.getCheckedLeafItems())}))}getCheckedLeafItems(){const t=new Set,n=[...this._tree.getNode().children],r=new Array;for(;n.length;){const o=n.shift();!(o!=null&&o.element)||t.has(o.element)||o.element.checked&&(t.add(o.element),n.push(...o.children),o.element.children||r.push(o.element))}return r}};O$e=t6o([n6o(2,Yn)],O$e);var BMn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},wQ=function(e,t){return function(n,r){t(n,r,e)}},y$e;const gk=tn,c5e="workbench.quickInput.viewState";var SB;let C$e=(SB=class extends ft{get currentQuickInput(){return this.controller??void 0}get container(){return this._container}constructor(t,n,r,o,s){super(),this.options=t,this.layoutService=n,this.instantiationService=r,this.storageService=s,this.enabled=!0,this.onDidAcceptEmitter=this._register(new at),this.onDidCustomEmitter=this._register(new at),this.onDidTriggerButtonEmitter=this._register(new at),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new at),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new at),this.onHide=this.onHideEmitter.event,this.inQuickInputContext=Q9o.bindTo(o),this.quickInputTypeContext=R9o.bindTo(o),this.endOfQuickInputBoxContext=I9o.bindTo(o),this.idPrefix=t.idPrefix,this._container=t.container,this.styles=t.styles,this._register(an.runAndSubscribe(xie,({window:a,disposables:l})=>this.registerKeyModsListeners(a,l),{window:Ls,disposables:this._store})),this._register(Bto(a=>{this.ui&&ii(this.ui.container)===a&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))})),this.viewState=this.loadViewState()}registerKeyModsListeners(t,n){const r=o=>{this.keyMods.ctrlCmd=o.ctrlKey||o.metaKey,this.keyMods.alt=o.altKey};for(const o of[rn.KEY_DOWN,rn.KEY_UP,rn.MOUSE_DOWN])n.add(wt(t,o,r,!0))}getUI(t){if(this.ui)return t&&ii(this._container)!==ii(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const n=Xt(this._container,gk(".quick-input-widget.show-file-icons"));n.tabIndex=-1,n.style.display="none";const r=mA(n),o=Xt(n,gk(".quick-input-titlebar")),s=this._register(new g1(o,{hoverDelegate:this.options.hoverDelegate}));s.domNode.classList.add("quick-input-left-action-bar");const a=Xt(o,gk(".quick-input-title")),l=this._register(new g1(o,{hoverDelegate:this.options.hoverDelegate}));l.domNode.classList.add("quick-input-right-action-bar");const d=Xt(n,gk(".quick-input-header")),u=this._register(new CBn(U(1763,"Toggle all checkboxes"),!1,{...Btt,size:15}));Xt(d,u.domNode),this._register(u.onChange(()=>{const M=u.checked;D.setAllVisibleChecked(M===!0)})),this._register(wt(u.domNode,rn.CLICK,M=>{(M.x||M.y)&&v.setFocus()}));const h=Xt(d,gk(".quick-input-description")),g=Xt(d,gk(".quick-input-and-message")),m=Xt(g,gk(".quick-input-filter")),v=this._register(new N9o(m,this.styles.inputBox,this.styles.toggle));v.setAttribute("aria-describedby",`${this.idPrefix}message`);const f=Xt(m,gk(".quick-input-visible-count"));f.setAttribute("aria-live","polite"),f.setAttribute("aria-atomic","true");const k=this._register(new dWe(f,{countFormat:U(1764,"{0} Results")},this.styles.countBadge)),A=Xt(m,gk(".quick-input-count"));A.setAttribute("aria-live","polite");const p=this._register(new dWe(A,{countFormat:U(1765,"{0} Selected")},this.styles.countBadge)),b=this._register(new g1(d,{hoverDelegate:this.options.hoverDelegate}));b.domNode.classList.add("quick-input-inline-action-bar");const w=Xt(d,gk(".quick-input-action")),O=this._register(new z1e(w,this.styles.button));O.label=U(1766,"OK"),this._register(O.onDidClick(M=>{this.onDidAcceptEmitter.fire()}));const y=Xt(d,gk(".quick-input-action")),C=this._register(new z1e(y,{...this.styles.button,supportIcons:!0}));C.label=U(1767,"Custom"),this._register(C.onDidClick(M=>{this.onDidCustomEmitter.fire()}));const _=Xt(g,gk(`#${this.idPrefix}message.quick-input-message`)),S=this._register(new A$e(n,this.styles.progressBar));S.getContainer().classList.add("quick-input-progress");const L=Xt(n,gk(".quick-input-html-widget"));L.tabIndex=-1;const E=Xt(n,gk(".quick-input-description")),T=this.idPrefix+"list",D=this._register(this.instantiationService.createInstance(Cee,n,this.options.hoverDelegate,this.options.linkOpenerDelegate,T));v.setAttribute("aria-controls",T),this._register(D.onDidChangeFocus(()=>{v.hasFocus()&&v.setAttribute("aria-activedescendant",D.getActiveDescendant()??"")})),this._register(D.onChangedAllVisibleChecked(M=>{u.checked=M})),this._register(D.onChangedVisibleCount(M=>{k.setCount(M)})),this._register(D.onChangedCheckedCount(M=>{Oie(()=>p.setCount(M))})),this._register(D.onLeave(()=>{setTimeout(()=>{this.controller&&(v.setFocus(),this.controller instanceof GZ&&this.controller.canSelectMany&&D.clearFocus())},0)}));const P=this._register(this.instantiationService.createInstance(O$e,n,this.options.hoverDelegate));this._register(P.tree.onDidChangeFocus(()=>{v.hasFocus()&&v.setAttribute("aria-activedescendant",P.getActiveDescendant()??"")})),this._register(P.onLeave(()=>{setTimeout(()=>{this.controller&&(v.setFocus(),P.tree.setFocus([]))},0)})),this._register(P.onDidAccept(()=>{this.onDidAcceptEmitter.fire()})),this._register(P.tree.onDidChangeContentHeight(()=>this.updateLayout()));const Q=uA(n);return this._register(Q),this._register(wt(n,rn.FOCUS,M=>{const B=this.getUI();if(gu(M.relatedTarget,B.inputContainer)){const R=B.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==R&&this.endOfQuickInputBoxContext.set(R)}gu(M.relatedTarget,B.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=ec(M.relatedTarget)?M.relatedTarget:void 0)},!0)),this._register(Q.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(MJ.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(v.onKeyDown(M=>{const B=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==B&&this.endOfQuickInputBoxContext.set(B),v.removeAttribute("aria-activedescendant")})),this._register(wt(n,rn.FOCUS,M=>{v.setFocus()})),this.dndController=this._register(this.instantiationService.createInstance(_$e,this._container,n,[{node:o,includeChildren:!0},{node:d,includeChildren:!1}],this.viewState)),this._register(Oi(M=>{var R;const B=(R=this.dndController)==null?void 0:R.dndViewState.read(M);B&&(B.top!==void 0&&B.left!==void 0?this.viewState={...this.viewState,top:B.top,left:B.left}:this.viewState=void 0,this.updateLayout(),B.done&&this.saveViewState(this.viewState))})),this.ui={container:n,styleSheet:r,leftActionBar:s,titleBar:o,title:a,description1:E,description2:h,widget:L,rightActionBar:l,inlineActionBar:b,checkAll:u,inputContainer:g,filterContainer:m,inputBox:v,visibleCountContainer:f,visibleCount:k,countContainer:A,count:p,okContainer:w,ok:O,message:_,customButtonContainer:y,customButton:C,list:D,tree:P,progressBar:S,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:M=>this.show(M),hide:()=>this.hide(),setVisibilities:M=>this.setVisibilities(M),setEnabled:M=>this.setEnabled(M),setContextKey:M=>this.options.setContextKey(M),linkOpenerDelegate:M=>this.options.linkOpenerDelegate(M)},this.updateStyles(),this.ui}reparentUI(t){var n;this.ui&&(this._container=t,Xt(this._container,this.ui.container),(n=this.dndController)==null||n.reparentUI(this._container))}pick(t,n={},r=Er.None){return new Promise((o,s)=>{let a=h=>{var g;a=o,(g=n.onKeyMods)==null||g.call(n,l.keyMods),o(h)};if(r.isCancellationRequested){a(void 0);return}const l=this.createQuickPick({useSeparators:!0});let d;const u=[l,l.onDidAccept(()=>{if(l.canSelectMany)a(l.selectedItems.slice()),l.hide();else{const h=l.activeItems[0];h&&(a(h),l.hide())}}),l.onDidChangeActive(h=>{const g=h[0];g&&n.onDidFocus&&n.onDidFocus(g)}),l.onDidChangeSelection(h=>{if(!l.canSelectMany){const g=h[0];g&&(a(g),l.hide())}}),l.onDidTriggerItemButton(h=>n.onDidTriggerItemButton&&n.onDidTriggerItemButton({...h,removeItem:()=>{const g=l.items.indexOf(h.item);if(g!==-1){const m=l.items.slice(),v=m.splice(g,1),f=l.activeItems.filter(A=>A!==v[0]),k=l.keepScrollPosition;l.keepScrollPosition=!0,l.items=m,f&&(l.activeItems=f),l.keepScrollPosition=k}}})),l.onDidTriggerSeparatorButton(h=>{var g;return(g=n.onDidTriggerSeparatorButton)==null?void 0:g.call(n,h)}),l.onDidChangeValue(h=>{d&&!h&&(l.activeItems.length!==1||l.activeItems[0]!==d)&&(l.activeItems=[d])}),r.onCancellationRequested(()=>{l.hide()}),l.onDidHide(()=>{us(u),a(void 0)})];l.title=n.title,n.value&&(l.value=n.value),l.canSelectMany=!!n.canPickMany,l.placeholder=n.placeHolder,l.prompt=n.prompt,l.ignoreFocusOut=!!n.ignoreFocusLost,l.matchOnDescription=!!n.matchOnDescription,l.matchOnDetail=!!n.matchOnDetail,n.sortByLabel!==void 0&&(l.sortByLabel=n.sortByLabel),l.matchOnLabel=n.matchOnLabel===void 0||n.matchOnLabel,l.quickNavigate=n.quickNavigate,l.hideInput=!!n.hideInput,l.contextKey=n.contextKey,l.busy=!0,Promise.all([t,n.activeItem]).then(([h,g])=>{d=g,l.busy=!1,l.items=h,l.canSelectMany&&(l.selectedItems=h.filter(m=>m.type!=="separator"&&m.picked)),d&&(l.activeItems=[d])}),l.show(),Promise.resolve(t).then(void 0,h=>{s(h),l.hide()})})}setValidationOnInput(t,n){n&&fu(n)?(t.severity=Sl.Error,t.validationMessage=n):n&&!fu(n)?(t.severity=n.severity,t.validationMessage=n.content):(t.severity=Sl.Ignore,t.validationMessage=void 0)}input(t={},n=Er.None){return new Promise(r=>{if(n.isCancellationRequested){r(void 0);return}const o=this.createInputBox(),s=t.validateInput||(()=>Promise.resolve(void 0)),a=an.debounce(o.onDidChangeValue,(h,g)=>g,100);let l=t.value||"",d=Promise.resolve(s(l));const u=[o,a(h=>{h!==l&&(d=Promise.resolve(s(h)),l=h),d.then(g=>{h===l&&this.setValidationOnInput(o,g)})}),o.onDidAccept(()=>{const h=o.value;h!==l&&(d=Promise.resolve(s(h)),l=h),d.then(g=>{!g||!fu(g)&&g.severity!==Sl.Error?(r(h),o.hide()):h===l&&this.setValidationOnInput(o,g)})}),n.onCancellationRequested(()=>{o.hide()}),o.onDidHide(()=>{us(u),r(void 0)})];o.title=t.title,o.value=t.value||"",o.valueSelection=t.valueSelection,o.prompt=t.prompt,o.placeholder=t.placeHolder,o.password=!!t.password,o.ignoreFocusOut=!!t.ignoreFocusLost,o.show()})}createQuickPick(t={useSeparators:!1}){const n=this.getUI(!0);return new GZ(n)}createInputBox(){const t=this.getUI(!0);return new P9o(t)}show(t){var s;const n=this.getUI(!0);this.onShowEmitter.fire();const r=this.controller;this.controller=t,r==null||r.didHide(),this.setEnabled(!0),n.leftActionBar.clear(),n.title.textContent="",n.description1.textContent="",n.description2.textContent="",mu(n.widget),n.rightActionBar.clear(),n.inlineActionBar.clear(),n.checkAll.checked=!1,n.inputBox.placeholder="",n.inputBox.password=!1,n.inputBox.showDecoration(Sl.Ignore),n.visibleCount.setCount(0),n.count.setCount(0),mu(n.message),n.progressBar.stop(),n.progressBar.getContainer().setAttribute("aria-hidden","true"),n.list.setElements([]),n.list.matchOnDescription=!1,n.list.matchOnDetail=!1,n.list.matchOnLabel=!0,n.list.sortByLabel=!0,n.tree.updateFilterOptions({matchOnDescription:!1,matchOnLabel:!0}),n.tree.sortByLabel=!0,n.ignoreFocusOut=!1,n.inputBox.toggles=void 0;const o=this.options.backKeybindingLabel();k$e.tooltip=o?U(1768,"Back ({0})",o):U(1769,"Back"),n.container.style.display="",this.updateLayout(),(s=this.dndController)==null||s.layoutContainer(),n.inputBox.setFocus(),this.quickInputTypeContext.set(t.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(t){const n=this.getUI();n.title.style.display=t.title?"":"none",n.description1.style.display=t.description&&(t.inputBox||t.checkAll)?"":"none",n.description2.style.display=t.description&&!(t.inputBox||t.checkAll)?"":"none",n.checkAll.domNode.style.display=t.checkAll?"":"none",n.inputContainer.style.display=t.inputBox?"":"none",n.filterContainer.style.display=t.inputBox?"":"none",n.visibleCountContainer.style.display=t.visibleCount?"":"none",n.countContainer.style.display=t.count?"":"none",n.okContainer.style.display=t.ok?"":"none",n.customButtonContainer.style.display=t.customButton?"":"none",n.message.style.display=t.message?"":"none",n.progressBar.getContainer().style.display=t.progressBar?"":"none",n.list.displayed=!!t.list,n.tree.displayed=!!t.tree,n.container.classList.toggle("show-checkboxes",!!t.checkBox),n.container.classList.toggle("hidden-input",!t.inputBox&&!t.description),this.updateLayout()}setEnabled(t){if(t!==this.enabled){this.enabled=t;const n=this.getUI();for(const r of n.leftActionBar.viewItems)r.action.enabled=t;for(const r of n.rightActionBar.viewItems)r.action.enabled=t;t?n.checkAll.enable():n.checkAll.disable(),n.inputBox.enabled=t,n.ok.enabled=t,n.list.enabled=t}}hide(t){var s;const n=this.controller;if(!n)return;n.willHide(t);const r=(s=this.ui)==null?void 0:s.container,o=r&&!yEn(r);if(this.controller=null,this.onHideEmitter.fire(),r&&(r.style.display="none"),!o){let a=this.previousFocusElement;for(;a&&!a.offsetParent;)a=a.parentElement??void 0;a!=null&&a.offsetParent?(a.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}n.didHide(t)}toggleHover(){this.isVisible()&&this.controller instanceof GZ&&this.getUI().list.toggleHover()}layout(t,n){this.dimension=t,this.titleBarOffset=n,this.updateLayout()}updateLayout(){var t,n;if(this.ui&&this.isVisible()){const r=this.ui.container.style,o=Math.min(this.dimension.width*.62,y$e.MAX_WIDTH);r.width=o+"px",r.top=`${(t=this.viewState)!=null&&t.top?Math.round(this.dimension.height*this.viewState.top):this.titleBarOffset}px`,r.left=`${Math.round(this.dimension.width*(((n=this.viewState)==null?void 0:n.left)??.5)-o/2)}px`,this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4),this.ui.tree.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(t){this.styles=t,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:t,quickInputBackground:n,quickInputForeground:r,widgetBorder:o,widgetShadow:s}=this.styles.widget;this.ui.titleBar.style.backgroundColor=t??"",this.ui.container.style.backgroundColor=n??"",this.ui.container.style.color=r??"",this.ui.container.style.border=o?`1px solid ${o}`:"",this.ui.container.style.boxShadow=s?`0 0 8px 2px ${s}`:"",this.ui.list.style(this.styles.list),this.ui.tree.tree.style(this.styles.list);const a=[];this.styles.pickerGroup.pickerGroupBorder&&a.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&a.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&a.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(a.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&a.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&a.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&a.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&a.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&a.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),a.push("}"));const l=a.join(` -`);l!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=l)}}loadViewState(){try{const t=JSON.parse(this.storageService.get(c5e,-1,"{}"));if(t.top!==void 0||t.left!==void 0)return t}catch{}}saveViewState(t){this.layoutService.activeContainer===this.layoutService.mainContainer&&(t!==void 0?this.storageService.store(c5e,JSON.stringify(t),-1,1):this.storageService.remove(c5e,-1))}},y$e=SB,SB.MAX_WIDTH=600,SB);C$e=y$e=BMn([wQ(1,tC),wQ(2,Yn),wQ(3,Qi),wQ(4,Bg)],C$e);let _$e=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._container=t,this._quickInputContainer=n,this._quickInputDragAreas=r,this._layoutService=s,this.configurationService=l,this.dndViewState=Ti(this,void 0),this._snapThreshold=20,this._snapLineHorizontalRatio=.25,this._quickInputAlignmentContext=B9o.bindTo(a);const d=Rko(this.configurationService)==="custom";this._controlsOnLeft=d&&z8e===1,this._controlsOnRight=d&&(z8e===3||z8e===2),this._registerLayoutListener(),this.registerMouseListeners(),this.dndViewState.set({...o,done:!0},void 0)}reparentUI(t){this._container=t}layoutContainer(t=this._layoutService.activeContainerDimension){const n=this.dndViewState.get(),r=this._quickInputContainer.getBoundingClientRect();if(n!=null&&n.top&&(n!=null&&n.left)){const o=Math.round(n.left*100)/100,s=t.width,a=r.width,l=o*s-a/2;this._layout(n.top*t.height,l)}}_registerLayoutListener(){this._register(an.filter(this._layoutService.onDidLayoutContainer,t=>t.container===this._container)(t=>this.layoutContainer(t.dimension)))}registerMouseListeners(){const t=this._quickInputContainer;this._register(Cbt(t,n=>{const r=new Xh(ii(t),n);r.detail===2&&this._quickInputDragAreas.some(({node:o,includeChildren:s})=>s?gu(r.target,o):r.target===o)&&this.dndViewState.set({top:void 0,left:void 0,done:!0},void 0)})),this._register(pEn(t,n=>{const r=ii(this._layoutService.activeContainer),o=new Xh(r,n);if(!this._quickInputDragAreas.some(({node:g,includeChildren:m})=>m?gu(o.target,g):o.target===g))return;const s=this._quickInputContainer.getBoundingClientRect(),a=o.browserEvent.clientX-s.left,l=o.browserEvent.clientY-s.top;let d=!1;const u=Fto(r,g=>{new Xh(r,g).preventDefault(),d||(d=!0),this._layout(g.clientY-l,g.clientX-a)}),h=Cbt(r,g=>{if(d){const m=this.dndViewState.get();this.dndViewState.set({top:m==null?void 0:m.top,left:m==null?void 0:m.left,done:!0},void 0)}u.dispose(),h.dispose()})}))}_layout(t,n){const r=this._getTopSnapValue(),o=this._getCenterYSnapValue(),s=this._getCenterXSnapValue();t=Math.max(0,Math.min(t,this._container.clientHeight-this._quickInputContainer.clientHeight)),t=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},NX=function(e,t){return function(n,r){t(n,r,e)}};let S$e=class extends ylo{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(m$e))),this._quickAccess}constructor(t,n,r,o,s){super(r),this.instantiationService=t,this.contextKeyService=n,this.layoutService=o,this.configurationService=s,this._onShow=this._register(new at),this._onHide=this._register(new at),this.contexts=new Map}createController(t=this.layoutService,n){const r={idPrefix:"quickInput_",container:t.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:s=>this.setContextKey(s),linkOpenerDelegate:s=>{this.instantiationService.invokeFunction(a=>{a.get(OL).open(s,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>t.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(v$e))},o=this._register(this.instantiationService.createInstance(C$e,{...r,...n}));return o.layout(t.activeContainerDimension,t.activeContainerOffset.quickPickTop),this._register(t.onDidLayoutActiveContainer(s=>{ii(t.activeContainer)===ii(o.container)&&o.layout(s,t.activeContainerOffset.quickPickTop)})),this._register(t.onDidChangeActiveContainer(()=>{o.isVisible()||o.layout(t.activeContainerDimension,t.activeContainerOffset.quickPickTop)})),this._register(o.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(o.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),o}setContextKey(t){let n;t&&(n=this.contexts.get(t),n||(n=new yn(t,!1).bindTo(this.contextKeyService),this.contexts.set(t,n))),!(n&&n.get())&&(this.resetContextKeys(),n==null||n.set(!0))}resetContextKeys(){this.contexts.forEach(t=>{t.get()&&t.reset()})}pick(t,n,r=Er.None){return this.controller.pick(t,n,r)}input(t={},n=Er.None){return this.controller.input(t,n)}createQuickPick(t={useSeparators:!1}){return this.controller.createQuickPick(t)}createInputBox(){return this.controller.createInputBox()}toggleHover(){this.hasController&&this.controller.toggleHover()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:en(mLe),quickInputForeground:en(hao),quickInputTitleBackground:en(fao),widgetBorder:en(Cet),widgetShadow:en(Jz)},inputBox:R1e,toggle:B1e,countBadge:gDn,button:Lko,progressBar:xko,keybindingLabel:fDn,list:TI({listBackground:mLe,listFocusBackground:aJ,listFocusForeground:sJ,listInactiveFocusForeground:sJ,listInactiveSelectionIconForeground:Qet,listInactiveFocusBackground:aJ,listFocusOutline:Va,listInactiveFocusOutline:Va,treeStickyScrollBackground:mLe}),pickerGroup:{pickerGroupBorder:en(gao),pickerGroupForeground:en(M7n)}}}};S$e=r6o([NX(0,Yn),NX(1,Qi),NX(2,Dl),NX(3,tC),NX(4,ar)],S$e);var RMn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},RT=function(e,t){return function(n,r){t(n,r,e)}};let L$e=class extends S$e{constructor(t,n,r,o,s,a){super(n,r,o,new ZHe(t.getContainerDomNode(),s),a),this.host=void 0;const l=See.get(t);if(l){const d=l.widget;this.host={_serviceBrand:void 0,get mainContainer(){return d.getDomNode()},getContainer(){return d.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[d.getDomNode()]},get activeContainer(){return d.getDomNode()},get mainContainerDimension(){return t.getLayoutInfo()},get activeContainerDimension(){return t.getLayoutInfo()},get onDidLayoutMainContainer(){return t.onDidLayoutChange},get onDidLayoutActiveContainer(){return t.onDidLayoutChange},get onDidLayoutContainer(){return an.map(t.onDidLayoutChange,u=>({container:d.getDomNode(),dimension:u}))},get onDidChangeActiveContainer(){return an.None},get onDidAddContainer(){return an.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>t.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};L$e=RMn([RT(1,Yn),RT(2,Qi),RT(3,Dl),RT(4,yo),RT(5,ar)],L$e);let x$e=class{get activeService(){const t=this.codeEditorService.getFocusedCodeEditor();if(!t)throw new Error("Quick input service needs a focused editor to work.");let n=this.mapEditorToService.get(t);if(!n){const r=n=this.instantiationService.createInstance(L$e,t);this.mapEditorToService.set(t,n),iR(t.onDidDispose)(()=>{r.dispose(),this.mapEditorToService.delete(t)})}return n}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(t,n){this.instantiationService=t,this.codeEditorService=n,this.mapEditorToService=new Map}pick(t,n,r=Er.None){return this.activeService.pick(t,n,r)}input(t,n){return this.activeService.input(t,n)}createQuickPick(t={useSeparators:!1}){return this.activeService.createQuickPick(t)}createInputBox(){return this.activeService.createInputBox()}toggleHover(){return this.activeService.toggleHover()}};x$e=RMn([RT(0,Yn),RT(1,yo)],x$e);const YAe=class YAe{static get(t){return t.getContribution(YAe.ID)}constructor(t){this.editor=t,this.widget=new E$e(this.editor)}dispose(){this.widget.dispose()}};YAe.ID="editor.controller.quickInput";let See=YAe;const ZAe=class ZAe{constructor(t){this.codeEditor=t,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return ZAe.ID}getDomNode(){return this.domNode}getPosition(){return{preference:{top:0,left:0}}}dispose(){this.codeEditor.removeOverlayWidget(this)}};ZAe.ID="editor.contrib.quickInputWidget";let E$e=ZAe;mo(See.ID,See,4);var o6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},d5e=function(e,t){return function(n,r){t(n,r,e)}};let T$e=class extends ft{constructor(t,n,r){super(),this._contextKeyService=t,this._layoutService=n,this._configurationService=r,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new at,this._onDidChangeReducedMotion=new at,this._onDidChangeLinkUnderline=new at,this._accessibilityModeEnabledContext=qz.bindTo(this._contextKeyService);const o=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration("editor.accessibilitySupport")&&(o(),this._onDidChangeScreenReaderOptimized.fire()),a.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),o(),this._register(this.onDidChangeScreenReaderOptimized(()=>o()));const s=Ls.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=s.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._linkUnderlinesEnabled=this._configurationService.getValue("accessibility.underlineLinks"),this.initReducedMotionListeners(s),this.initLinkUnderlineListeners()}initReducedMotionListeners(t){this._register(wt(t,"change",()=>{this._systemMotionReduced=t.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const n=()=>{const r=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("monaco-reduce-motion",r),this._layoutService.mainContainer.classList.toggle("monaco-enable-motion",!r)};n(),this._register(this.onDidChangeReducedMotion(()=>n()))}initLinkUnderlineListeners(){this._register(this._configurationService.onDidChangeConfiguration(n=>{if(n.affectsConfiguration("accessibility.underlineLinks")){const r=this._configurationService.getValue("accessibility.underlineLinks");this._linkUnderlinesEnabled=r,this._onDidChangeLinkUnderline.fire()}}));const t=()=>{const n=this._linkUnderlinesEnabled;this._layoutService.mainContainer.classList.toggle("underline-links",n)};t(),this._register(this.onDidChangeLinkUnderlines(()=>t()))}onDidChangeLinkUnderlines(t){return this._onDidChangeLinkUnderline.event(t)}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const t=this._configurationService.getValue("editor.accessibilitySupport");return t==="on"||t==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const t=this._configMotionReduced;return t==="on"||t==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};T$e=o6o([d5e(0,Qi),d5e(1,tC),d5e(2,ar)],T$e);var s6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gSt=function(e,t){return function(n,r){t(n,r,e)}},Q$e;const mSt="application/vnd.code.resources";var LB;let D$e=(LB=class extends ft{constructor(t,n){super(),this.layoutService=t,this.logService=n,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(eR||x6n)&&this.installWebKitWriteTextWorkaround(),this._register(an.runAndSubscribe(xie,({window:r,disposables:o})=>{o.add(wt(r.document,"copy",()=>this.clearResourcesState()))},{window:Ls,disposables:this._store}))}triggerPaste(){this.logService.trace("BrowserClipboardService#triggerPaste")}installWebKitWriteTextWorkaround(){const t=()=>{const n=new pI;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=n,vs().navigator.clipboard.write([new ClipboardItem({"text/plain":n.p})]).catch(async r=>{(!(r instanceof Error)||r.name!=="NotAllowedError"||!n.isRejected)&&this.logService.error(r)})};this._register(an.runAndSubscribe(this.layoutService.onDidAddContainer,({container:n,disposables:r})=>{r.add(wt(n,"click",t)),r.add(wt(n,"keydown",t))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(t,n){if(this.logService.trace("BrowserClipboardService#writeText called with type:",n," text.length:",t.length),this.clearResourcesState(),n){this.mapTextToType.set(n,t),this.logService.trace("BrowserClipboardService#writeText");return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(t);try{return this.logService.trace("before navigator.clipboard.writeText"),await vs().navigator.clipboard.writeText(t)}catch(r){console.error(r)}this.fallbackWriteText(t)}fallbackWriteText(t){this.logService.trace("BrowserClipboardService#fallbackWriteText");const n=Eie(),r=n.activeElement,o=n.body.appendChild(tn("textarea",{"aria-hidden":!0}));o.style.height="1px",o.style.width="1px",o.style.position="absolute",o.value=t,o.focus(),o.select(),n.execCommand("copy"),ec(r)&&r.focus(),o.remove()}async readText(t){if(this.logService.trace("BrowserClipboardService#readText called with type:",t),t){const n=this.mapTextToType.get(t)||"";return this.logService.trace("BrowserClipboardService#readText text.length:",n.length),n}try{const n=await vs().navigator.clipboard.readText();return this.logService.trace("BrowserClipboardService#readText text.length:",n.length),n}catch(n){console.error(n)}return""}async readFindText(){return this.findText}async writeFindText(t){this.findText=t}async readResources(){try{const n=await vs().navigator.clipboard.read();for(const r of n)if(r.types.includes(`web ${mSt}`)){const o=await r.getType(`web ${mSt}`);return JSON.parse(await o.text()).map(a=>vi.from(a))}}catch{}const t=await this.computeResourcesStateHash();return this.resourcesStateHash!==t&&this.clearResourcesState(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const t=await this.readText();return Lie(t.substring(0,Q$e.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearInternalState(){this.clearResourcesState()}clearResourcesState(){this.resources=[],this.resourcesStateHash=void 0}},Q$e=LB,LB.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,LB);D$e=Q$e=s6o([gSt(0,tC),gSt(1,va)],D$e);var a6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},l6o=function(e,t){return function(n,r){t(n,r,e)}};const YZ="data-keybinding-context";class hit{constructor(t,n){this._id=t,this._parent=n,this._value=Object.create(null),this._value._contextId=t}get value(){return{...this._value}}setValue(t,n){return this._value[t]!==n?(this._value[t]=n,!0):!1}removeValue(t){return t in this._value?(delete this._value[t],!0):!1}getValue(t){const n=this._value[t];return typeof n>"u"&&this._parent?this._parent.getValue(t):n}}const qAe=class qAe extends hit{constructor(){super(-1,null)}setValue(t,n){return!1}removeValue(t){return!1}getValue(t){}};qAe.INSTANCE=new qAe;let QV=qAe;const Bq=class Bq extends hit{constructor(t,n,r){super(t,null),this._configurationService=n,this._values=zU.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(o=>{if(o.source===7){const s=Array.from(this._values,([a])=>a);this._values.clear(),r.fire(new vSt(s))}else{const s=[];for(const a of o.affectedKeys){const l=`config.${a}`,d=this._values.findSuperstr(l);d!==void 0&&(s.push(...to.map(d,([u])=>u)),this._values.deleteSuperstr(l)),this._values.has(l)&&(s.push(l),this._values.delete(l))}r.fire(new vSt(s))}})}dispose(){this._listener.dispose()}getValue(t){if(t.indexOf(Bq._keyPrefix)!==0)return super.getValue(t);if(this._values.has(t))return this._values.get(t);const n=t.substr(Bq._keyPrefix.length),r=this._configurationService.getValue(n);let o;switch(typeof r){case"number":case"boolean":case"string":o=r;break;default:Array.isArray(r)?o=JSON.stringify(r):o=r}return this._values.set(t,o),o}setValue(t,n){return super.setValue(t,n)}removeValue(t){return super.removeValue(t)}};Bq._keyPrefix="config.";let B$e=Bq;class c6o{constructor(t,n,r){this._service=t,this._key=n,this._defaultValue=r,this.reset()}set(t){this._service.setContext(this._key,t)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class kSt{constructor(t){this.key=t}affectsSome(t){return t.has(this.key)}allKeysContainedIn(t){return this.affectsSome(t)}}class vSt{constructor(t){this.keys=t}affectsSome(t){for(const n of this.keys)if(t.has(n))return!0;return!1}allKeysContainedIn(t){return this.keys.every(n=>t.has(n))}}class d6o{constructor(t){this.events=t}affectsSome(t){for(const n of this.events)if(n.affectsSome(t))return!0;return!1}allKeysContainedIn(t){return this.events.every(n=>n.allKeysContainedIn(t))}}function u6o(e,t){return e.allKeysContainedIn(new Set(Object.keys(t)))}class IMn extends ft{get onDidChangeContext(){return this._onDidChangeContext.event}constructor(t){super(),this._onDidChangeContext=this._register(new rR({merge:n=>new d6o(n)})),this._isDisposed=!1,this._myContextId=t}createKey(t,n){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new c6o(this,t,n)}bufferChangeEvents(t){this._onDidChangeContext.pause();try{t()}finally{this._onDidChangeContext.resume()}}createScoped(t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new h6o(this,t)}contextMatchesRules(t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const n=this.getContextValuesContainer(this._myContextId);return t?t.evaluate(n):!0}getContextKeyValue(t){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(t)}setContext(t,n){if(this._isDisposed)return;const r=this.getContextValuesContainer(this._myContextId);r&&r.setValue(t,n)&&this._onDidChangeContext.fire(new kSt(t))}removeContext(t){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(t)&&this._onDidChangeContext.fire(new kSt(t))}getContext(t){return this._isDisposed?QV.INSTANCE:this.getContextValuesContainer(f6o(t))}dispose(){super.dispose(),this._isDisposed=!0}}let R$e=class extends IMn{constructor(t){super(0),this._contexts=new Map,this._lastContextId=0,this.inputFocusedContext=unt.bindTo(this);const n=this._register(new B$e(this._myContextId,t,this._onDidChangeContext));this._contexts.set(this._myContextId,n),this._register(an.runAndSubscribe(xie,({window:r,disposables:o})=>{const s=o.add(new ts);o.add(wt(r,rn.FOCUS_IN,()=>{s.value=new xt,this.updateInputContextKeys(r.document,s.value)},!0))},{window:Ls,disposables:this._store}))}updateInputContextKeys(t,n){function r(){return!!t.activeElement&&s3(t.activeElement)}const o=r();if(this.inputFocusedContext.set(o),o){const s=n.add(uA(t.activeElement));an.once(s.onDidBlur)(()=>{vs().document===t&&this.inputFocusedContext.set(r()),s.dispose()},void 0,n)}}getContextValuesContainer(t){return this._isDisposed?QV.INSTANCE:this._contexts.get(t)||QV.INSTANCE}createChildContext(t=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const n=++this._lastContextId;return this._contexts.set(n,new hit(n,this.getContextValuesContainer(t))),n}disposeContext(t){this._isDisposed||this._contexts.delete(t)}};R$e=a6o([l6o(0,ar)],R$e);class h6o extends IMn{constructor(t,n){if(super(t.createChildContext()),this._parentChangeListener=this._register(new ts),this._parent=t,this._updateParentChangeListener(),this._domNode=n,this._domNode.hasAttribute(YZ)){let r="";this._domNode.classList&&(r=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${r?": "+r:""}`)}this._domNode.setAttribute(YZ,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(t=>{const r=this._parent.getContextValuesContainer(this._myContextId).value;u6o(t,r)||this._onDidChangeContext.fire(t)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(YZ),super.dispose())}getContextValuesContainer(t){return this._isDisposed?QV.INSTANCE:this._parent.getContextValuesContainer(t)}createChildContext(t=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(t)}disposeContext(t){this._isDisposed||this._parent.disposeContext(t)}}function f6o(e){for(;e;){if(e.hasAttribute(YZ)){const t=e.getAttribute(YZ);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}function g6o(e,t,n){e.get(Qi).createKey(String(t),m6o(n))}function m6o(e){return XEn(e,t=>{if(typeof t=="object"&&t.$mid===1)return vi.revive(t).toString();if(t instanceof vi)return t.toString()})}co.registerCommand("_setContext",g6o);co.registerCommand({id:"getContextKeyInfo",handler(){return[...yn.all()].sort((e,t)=>e.key.localeCompare(t.key))},metadata:{description:U(1674,"A command that returns information about context keys"),args:[]}});co.registerCommand("_generateContextKeyInfo",function(){const e=[],t=new Set;for(const n of yn.all())t.has(n.key)||(t.add(n.key),e.push(n));e.sort((n,r)=>n.key.localeCompare(r.key)),console.log(JSON.stringify(e,void 0,2))});let k6o=class{constructor(t,n){this.key=t,this.data=n,this.incoming=new Map,this.outgoing=new Map}};class ASt{constructor(t){this._hashFn=t,this._nodes=new Map}roots(){const t=[];for(const n of this._nodes.values())n.outgoing.size===0&&t.push(n);return t}insertEdge(t,n){const r=this.lookupOrInsertNode(t),o=this.lookupOrInsertNode(n);r.outgoing.set(o.key,o),o.incoming.set(r.key,r)}removeNode(t){const n=this._hashFn(t);this._nodes.delete(n);for(const r of this._nodes.values())r.outgoing.delete(n),r.incoming.delete(n)}lookupOrInsertNode(t){const n=this._hashFn(t);let r=this._nodes.get(n);return r||(r=new k6o(n,t),this._nodes.set(n,r)),r}isEmpty(){return this._nodes.size===0}toString(){const t=[];for(const[n,r]of this._nodes)t.push(`${n} +`);l!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=l)}}loadViewState(){try{const t=JSON.parse(this.storageService.get(c5e,-1,"{}"));if(t.top!==void 0||t.left!==void 0)return t}catch{}}saveViewState(t){this.layoutService.activeContainer===this.layoutService.mainContainer&&(t!==void 0?this.storageService.store(c5e,JSON.stringify(t),-1,1):this.storageService.remove(c5e,-1))}},y$e=SB,SB.MAX_WIDTH=600,SB);C$e=y$e=BMn([wQ(1,tC),wQ(2,Yn),wQ(3,Qi),wQ(4,Bg)],C$e);let _$e=class extends ft{constructor(t,n,r,o,s,a,l){super(),this._container=t,this._quickInputContainer=n,this._quickInputDragAreas=r,this._layoutService=s,this.configurationService=l,this.dndViewState=Ti(this,void 0),this._snapThreshold=20,this._snapLineHorizontalRatio=.25,this._quickInputAlignmentContext=B9o.bindTo(a);const d=Rko(this.configurationService)==="custom";this._controlsOnLeft=d&&z8e===1,this._controlsOnRight=d&&(z8e===3||z8e===2),this._registerLayoutListener(),this.registerMouseListeners(),this.dndViewState.set({...o,done:!0},void 0)}reparentUI(t){this._container=t}layoutContainer(t=this._layoutService.activeContainerDimension){const n=this.dndViewState.get(),r=this._quickInputContainer.getBoundingClientRect();if(n!=null&&n.top&&(n!=null&&n.left)){const o=Math.round(n.left*100)/100,s=t.width,a=r.width,l=o*s-a/2;this._layout(n.top*t.height,l)}}_registerLayoutListener(){this._register(an.filter(this._layoutService.onDidLayoutContainer,t=>t.container===this._container)(t=>this.layoutContainer(t.dimension)))}registerMouseListeners(){const t=this._quickInputContainer;this._register(Cbt(t,n=>{const r=new Xh(ii(t),n);r.detail===2&&this._quickInputDragAreas.some(({node:o,includeChildren:s})=>s?gu(r.target,o):r.target===o)&&this.dndViewState.set({top:void 0,left:void 0,done:!0},void 0)})),this._register(pEn(t,n=>{const r=ii(this._layoutService.activeContainer),o=new Xh(r,n);if(!this._quickInputDragAreas.some(({node:g,includeChildren:m})=>m?gu(o.target,g):o.target===g))return;const s=this._quickInputContainer.getBoundingClientRect(),a=o.browserEvent.clientX-s.left,l=o.browserEvent.clientY-s.top;let d=!1;const u=Fto(r,g=>{new Xh(r,g).preventDefault(),d||(d=!0),this._layout(g.clientY-l,g.clientX-a)}),h=Cbt(r,g=>{if(d){const m=this.dndViewState.get();this.dndViewState.set({top:m==null?void 0:m.top,left:m==null?void 0:m.left,done:!0},void 0)}u.dispose(),h.dispose()})}))}_layout(t,n){const r=this._getTopSnapValue(),o=this._getCenterYSnapValue(),s=this._getCenterXSnapValue();t=Math.max(0,Math.min(t,this._container.clientHeight-this._quickInputContainer.clientHeight)),t=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},NX=function(e,t){return function(n,r){t(n,r,e)}};let S$e=class extends ylo{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(m$e))),this._quickAccess}constructor(t,n,r,o,s){super(r),this.instantiationService=t,this.contextKeyService=n,this.layoutService=o,this.configurationService=s,this._onShow=this._register(new at),this._onHide=this._register(new at),this.contexts=new Map}createController(t=this.layoutService,n){const r={idPrefix:"quickInput_",container:t.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:s=>this.setContextKey(s),linkOpenerDelegate:s=>{this.instantiationService.invokeFunction(a=>{a.get(OL).open(s,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>t.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(v$e))},o=this._register(this.instantiationService.createInstance(C$e,{...r,...n}));return o.layout(t.activeContainerDimension,t.activeContainerOffset.quickPickTop),this._register(t.onDidLayoutActiveContainer(s=>{ii(t.activeContainer)===ii(o.container)&&o.layout(s,t.activeContainerOffset.quickPickTop)})),this._register(t.onDidChangeActiveContainer(()=>{o.isVisible()||o.layout(t.activeContainerDimension,t.activeContainerOffset.quickPickTop)})),this._register(o.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(o.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),o}setContextKey(t){let n;t&&(n=this.contexts.get(t),n||(n=new yn(t,!1).bindTo(this.contextKeyService),this.contexts.set(t,n))),!(n&&n.get())&&(this.resetContextKeys(),n==null||n.set(!0))}resetContextKeys(){this.contexts.forEach(t=>{t.get()&&t.reset()})}pick(t,n,r=Er.None){return this.controller.pick(t,n,r)}input(t={},n=Er.None){return this.controller.input(t,n)}createQuickPick(t={useSeparators:!1}){return this.controller.createQuickPick(t)}createInputBox(){return this.controller.createInputBox()}toggleHover(){this.hasController&&this.controller.toggleHover()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:en(mLe),quickInputForeground:en(hao),quickInputTitleBackground:en(fao),widgetBorder:en(Cet),widgetShadow:en(Jz)},inputBox:R1e,toggle:B1e,countBadge:gDn,button:Lko,progressBar:xko,keybindingLabel:fDn,list:TI({listBackground:mLe,listFocusBackground:aJ,listFocusForeground:sJ,listInactiveFocusForeground:sJ,listInactiveSelectionIconForeground:Qet,listInactiveFocusBackground:aJ,listFocusOutline:Va,listInactiveFocusOutline:Va,treeStickyScrollBackground:mLe}),pickerGroup:{pickerGroupBorder:en(gao),pickerGroupForeground:en(M7n)}}}};S$e=r6o([NX(0,Yn),NX(1,Qi),NX(2,Dl),NX(3,tC),NX(4,ar)],S$e);var RMn=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},RT=function(e,t){return function(n,r){t(n,r,e)}};let L$e=class extends S$e{constructor(t,n,r,o,s,a){super(n,r,o,new ZHe(t.getContainerDomNode(),s),a),this.host=void 0;const l=See.get(t);if(l){const d=l.widget;this.host={_serviceBrand:void 0,get mainContainer(){return d.getDomNode()},getContainer(){return d.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[d.getDomNode()]},get activeContainer(){return d.getDomNode()},get mainContainerDimension(){return t.getLayoutInfo()},get activeContainerDimension(){return t.getLayoutInfo()},get onDidLayoutMainContainer(){return t.onDidLayoutChange},get onDidLayoutActiveContainer(){return t.onDidLayoutChange},get onDidLayoutContainer(){return an.map(t.onDidLayoutChange,u=>({container:d.getDomNode(),dimension:u}))},get onDidChangeActiveContainer(){return an.None},get onDidAddContainer(){return an.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>t.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};L$e=RMn([RT(1,Yn),RT(2,Qi),RT(3,Dl),RT(4,yo),RT(5,ar)],L$e);let x$e=class{get activeService(){const t=this.codeEditorService.getFocusedCodeEditor();if(!t)throw new Error("Quick input service needs a focused editor to work.");let n=this.mapEditorToService.get(t);if(!n){const r=n=this.instantiationService.createInstance(L$e,t);this.mapEditorToService.set(t,n),iR(t.onDidDispose)(()=>{r.dispose(),this.mapEditorToService.delete(t)})}return n}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(t,n){this.instantiationService=t,this.codeEditorService=n,this.mapEditorToService=new Map}pick(t,n,r=Er.None){return this.activeService.pick(t,n,r)}input(t,n){return this.activeService.input(t,n)}createQuickPick(t={useSeparators:!1}){return this.activeService.createQuickPick(t)}createInputBox(){return this.activeService.createInputBox()}toggleHover(){return this.activeService.toggleHover()}};x$e=RMn([RT(0,Yn),RT(1,yo)],x$e);const YAe=class YAe{static get(t){return t.getContribution(YAe.ID)}constructor(t){this.editor=t,this.widget=new E$e(this.editor)}dispose(){this.widget.dispose()}};YAe.ID="editor.controller.quickInput";let See=YAe;const ZAe=class ZAe{constructor(t){this.codeEditor=t,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return ZAe.ID}getDomNode(){return this.domNode}getPosition(){return{preference:{top:0,left:0}}}dispose(){this.codeEditor.removeOverlayWidget(this)}};ZAe.ID="editor.contrib.quickInputWidget";let E$e=ZAe;mo(See.ID,See,4);var o6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},d5e=function(e,t){return function(n,r){t(n,r,e)}};let T$e=class extends ft{constructor(t,n,r){super(),this._contextKeyService=t,this._layoutService=n,this._configurationService=r,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new at,this._onDidChangeReducedMotion=new at,this._onDidChangeLinkUnderline=new at,this._accessibilityModeEnabledContext=qz.bindTo(this._contextKeyService);const o=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration("editor.accessibilitySupport")&&(o(),this._onDidChangeScreenReaderOptimized.fire()),a.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),o(),this._register(this.onDidChangeScreenReaderOptimized(()=>o()));const s=Ls.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=s.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._linkUnderlinesEnabled=this._configurationService.getValue("accessibility.underlineLinks"),this.initReducedMotionListeners(s),this.initLinkUnderlineListeners()}initReducedMotionListeners(t){this._register(wt(t,"change",()=>{this._systemMotionReduced=t.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const n=()=>{const r=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("monaco-reduce-motion",r),this._layoutService.mainContainer.classList.toggle("monaco-enable-motion",!r)};n(),this._register(this.onDidChangeReducedMotion(()=>n()))}initLinkUnderlineListeners(){this._register(this._configurationService.onDidChangeConfiguration(n=>{if(n.affectsConfiguration("accessibility.underlineLinks")){const r=this._configurationService.getValue("accessibility.underlineLinks");this._linkUnderlinesEnabled=r,this._onDidChangeLinkUnderline.fire()}}));const t=()=>{const n=this._linkUnderlinesEnabled;this._layoutService.mainContainer.classList.toggle("underline-links",n)};t(),this._register(this.onDidChangeLinkUnderlines(()=>t()))}onDidChangeLinkUnderlines(t){return this._onDidChangeLinkUnderline.event(t)}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const t=this._configurationService.getValue("editor.accessibilitySupport");return t==="on"||t==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const t=this._configMotionReduced;return t==="on"||t==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};T$e=o6o([d5e(0,Qi),d5e(1,tC),d5e(2,ar)],T$e);var s6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},gSt=function(e,t){return function(n,r){t(n,r,e)}},Q$e;const mSt="application/vnd.code.resources";var LB;let D$e=(LB=class extends ft{constructor(t,n){super(),this.layoutService=t,this.logService=n,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(eR||x6n)&&this.installWebKitWriteTextWorkaround(),this._register(an.runAndSubscribe(xie,({window:r,disposables:o})=>{o.add(wt(r.document,"copy",()=>this.clearResourcesState()))},{window:Ls,disposables:this._store}))}triggerPaste(){this.logService.trace("BrowserClipboardService#triggerPaste")}installWebKitWriteTextWorkaround(){const t=()=>{const n=new pI;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=n,vs().navigator.clipboard.write([new ClipboardItem({"text/plain":n.p})]).catch(async r=>{(!(r instanceof Error)||r.name!=="NotAllowedError"||!n.isRejected)&&this.logService.error(r)})};this._register(an.runAndSubscribe(this.layoutService.onDidAddContainer,({container:n,disposables:r})=>{r.add(wt(n,"click",t)),r.add(wt(n,"keydown",t))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(t,n){if(this.logService.trace("BrowserClipboardService#writeText called with type:",n," text.length:",t.length),this.clearResourcesState(),n){this.mapTextToType.set(n,t),this.logService.trace("BrowserClipboardService#writeText");return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(t);try{return this.logService.trace("before navigator.clipboard.writeText"),await vs().navigator.clipboard.writeText(t)}catch(r){console.error(r)}this.fallbackWriteText(t)}fallbackWriteText(t){this.logService.trace("BrowserClipboardService#fallbackWriteText");const n=Eie(),r=n.activeElement,o=n.body.appendChild(tn("textarea",{"aria-hidden":!0}));o.style.height="1px",o.style.width="1px",o.style.position="absolute",o.value=t,o.focus(),o.select(),n.execCommand("copy"),ec(r)&&r.focus(),o.remove()}async readText(t){if(this.logService.trace("BrowserClipboardService#readText called with type:",t),t){const n=this.mapTextToType.get(t)||"";return this.logService.trace("BrowserClipboardService#readText text.length:",n.length),n}try{const n=await vs().navigator.clipboard.readText();return this.logService.trace("BrowserClipboardService#readText text.length:",n.length),n}catch(n){console.error(n)}return""}async readFindText(){return this.findText}async writeFindText(t){this.findText=t}async readResources(){try{const n=await vs().navigator.clipboard.read();for(const r of n)if(r.types.includes(`web ${mSt}`)){const o=await r.getType(`web ${mSt}`);return JSON.parse(await o.text()).map(a=>vi.from(a))}}catch{}const t=await this.computeResourcesStateHash();return this.resourcesStateHash!==t&&this.clearResourcesState(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const t=await this.readText();return Lie(t.substring(0,Q$e.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearInternalState(){this.clearResourcesState()}clearResourcesState(){this.resources=[],this.resourcesStateHash=void 0}},Q$e=LB,LB.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,LB);D$e=Q$e=s6o([gSt(0,tC),gSt(1,va)],D$e);var a6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},l6o=function(e,t){return function(n,r){t(n,r,e)}};const YZ="data-keybinding-context";class hit{constructor(t,n){this._id=t,this._parent=n,this._value=Object.create(null),this._value._contextId=t}get value(){return{...this._value}}setValue(t,n){return this._value[t]!==n?(this._value[t]=n,!0):!1}removeValue(t){return t in this._value?(delete this._value[t],!0):!1}getValue(t){const n=this._value[t];return typeof n>"u"&&this._parent?this._parent.getValue(t):n}}const qAe=class qAe extends hit{constructor(){super(-1,null)}setValue(t,n){return!1}removeValue(t){return!1}getValue(t){}};qAe.INSTANCE=new qAe;let QV=qAe;const Bq=class Bq extends hit{constructor(t,n,r){super(t,null),this._configurationService=n,this._values=zU.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(o=>{if(o.source===7){const s=Array.from(this._values,([a])=>a);this._values.clear(),r.fire(new vSt(s))}else{const s=[];for(const a of o.affectedKeys){const l=`config.${a}`,d=this._values.findSuperstr(l);d!==void 0&&(s.push(...to.map(d,([u])=>u)),this._values.deleteSuperstr(l)),this._values.has(l)&&(s.push(l),this._values.delete(l))}r.fire(new vSt(s))}})}dispose(){this._listener.dispose()}getValue(t){if(t.indexOf(Bq._keyPrefix)!==0)return super.getValue(t);if(this._values.has(t))return this._values.get(t);const n=t.substr(Bq._keyPrefix.length),r=this._configurationService.getValue(n);let o;switch(typeof r){case"number":case"boolean":case"string":o=r;break;default:Array.isArray(r)?o=JSON.stringify(r):o=r}return this._values.set(t,o),o}setValue(t,n){return super.setValue(t,n)}removeValue(t){return super.removeValue(t)}};Bq._keyPrefix="config.";let B$e=Bq;class c6o{constructor(t,n,r){this._service=t,this._key=n,this._defaultValue=r,this.reset()}set(t){this._service.setContext(this._key,t)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class kSt{constructor(t){this.key=t}affectsSome(t){return t.has(this.key)}allKeysContainedIn(t){return this.affectsSome(t)}}class vSt{constructor(t){this.keys=t}affectsSome(t){for(const n of this.keys)if(t.has(n))return!0;return!1}allKeysContainedIn(t){return this.keys.every(n=>t.has(n))}}class d6o{constructor(t){this.events=t}affectsSome(t){for(const n of this.events)if(n.affectsSome(t))return!0;return!1}allKeysContainedIn(t){return this.events.every(n=>n.allKeysContainedIn(t))}}function u6o(e,t){return e.allKeysContainedIn(new Set(Object.keys(t)))}class IMn extends ft{get onDidChangeContext(){return this._onDidChangeContext.event}constructor(t){super(),this._onDidChangeContext=this._register(new rR({merge:n=>new d6o(n)})),this._isDisposed=!1,this._myContextId=t}createKey(t,n){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new c6o(this,t,n)}bufferChangeEvents(t){this._onDidChangeContext.pause();try{t()}finally{this._onDidChangeContext.resume()}}createScoped(t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new h6o(this,t)}contextMatchesRules(t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const n=this.getContextValuesContainer(this._myContextId);return t?t.evaluate(n):!0}getContextKeyValue(t){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(t)}setContext(t,n){if(this._isDisposed)return;const r=this.getContextValuesContainer(this._myContextId);r&&r.setValue(t,n)&&this._onDidChangeContext.fire(new kSt(t))}removeContext(t){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(t)&&this._onDidChangeContext.fire(new kSt(t))}getContext(t){return this._isDisposed?QV.INSTANCE:this.getContextValuesContainer(f6o(t))}dispose(){super.dispose(),this._isDisposed=!0}}let R$e=class extends IMn{constructor(t){super(0),this._contexts=new Map,this._lastContextId=0,this.inputFocusedContext=unt.bindTo(this);const n=this._register(new B$e(this._myContextId,t,this._onDidChangeContext));this._contexts.set(this._myContextId,n),this._register(an.runAndSubscribe(xie,({window:r,disposables:o})=>{const s=o.add(new ts);o.add(wt(r,rn.FOCUS_IN,()=>{s.value=new xt,this.updateInputContextKeys(r.document,s.value)},!0))},{window:Ls,disposables:this._store}))}updateInputContextKeys(t,n){function r(){return!!t.activeElement&&s3(t.activeElement)}const o=r();if(this.inputFocusedContext.set(o),o){const s=n.add(uA(t.activeElement));an.once(s.onDidBlur)(()=>{vs().document===t&&this.inputFocusedContext.set(r()),s.dispose()},void 0,n)}}getContextValuesContainer(t){return this._isDisposed?QV.INSTANCE:this._contexts.get(t)||QV.INSTANCE}createChildContext(t=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const n=++this._lastContextId;return this._contexts.set(n,new hit(n,this.getContextValuesContainer(t))),n}disposeContext(t){this._isDisposed||this._contexts.delete(t)}};R$e=a6o([l6o(0,ar)],R$e);class h6o extends IMn{constructor(t,n){if(super(t.createChildContext()),this._parentChangeListener=this._register(new ts),this._parent=t,this._updateParentChangeListener(),this._domNode=n,this._domNode.hasAttribute(YZ)){let r="";this._domNode.classList&&(r=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${r?": "+r:""}`)}this._domNode.setAttribute(YZ,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(t=>{const r=this._parent.getContextValuesContainer(this._myContextId).value;u6o(t,r)||this._onDidChangeContext.fire(t)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(YZ),super.dispose())}getContextValuesContainer(t){return this._isDisposed?QV.INSTANCE:this._parent.getContextValuesContainer(t)}createChildContext(t=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(t)}disposeContext(t){this._isDisposed||this._parent.disposeContext(t)}}function f6o(e){for(;e;){if(e.hasAttribute(YZ)){const t=e.getAttribute(YZ);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}function g6o(e,t,n){e.get(Qi).createKey(String(t),m6o(n))}function m6o(e){return XEn(e,t=>{if(typeof t=="object"&&t.$mid===1)return vi.revive(t).toString();if(t instanceof vi)return t.toString()})}uo.registerCommand("_setContext",g6o);uo.registerCommand({id:"getContextKeyInfo",handler(){return[...yn.all()].sort((e,t)=>e.key.localeCompare(t.key))},metadata:{description:U(1674,"A command that returns information about context keys"),args:[]}});uo.registerCommand("_generateContextKeyInfo",function(){const e=[],t=new Set;for(const n of yn.all())t.has(n.key)||(t.add(n.key),e.push(n));e.sort((n,r)=>n.key.localeCompare(r.key)),console.log(JSON.stringify(e,void 0,2))});let k6o=class{constructor(t,n){this.key=t,this.data=n,this.incoming=new Map,this.outgoing=new Map}};class ASt{constructor(t){this._hashFn=t,this._nodes=new Map}roots(){const t=[];for(const n of this._nodes.values())n.outgoing.size===0&&t.push(n);return t}insertEdge(t,n){const r=this.lookupOrInsertNode(t),o=this.lookupOrInsertNode(n);r.outgoing.set(o.key,o),o.incoming.set(r.key,r)}removeNode(t){const n=this._hashFn(t);this._nodes.delete(n);for(const r of this._nodes.values())r.outgoing.delete(n),r.incoming.delete(n)}lookupOrInsertNode(t){const n=this._hashFn(t);let r=this._nodes.get(n);return r||(r=new k6o(n,t),this._nodes.set(n,r)),r}isEmpty(){return this._nodes.size===0}toString(){const t=[];for(const[n,r]of this._nodes)t.push(`${n} (-> incoming)[${[...r.incoming.keys()].join(", ")}] (outgoing ->)[${[...r.outgoing.keys()].join(",")}] `);return t.join(` @@ -2807,10 +2807,10 @@ ${t.toString()}`}}class Lke{constructor(t=new rH,n=!1,r,o=v6o){this._services=t, `)}const o=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${r(1,this)}`,`DONE, took ${t.toFixed(2)}ms (grand total ${Lk._totals.toFixed(2)}ms)`];(t>2||n)&&Lk.all.add(o.join(` `))}};Lk.all=new Set,Lk._None=new class extends Lk{constructor(){super(0,null)}stop(){}branch(){return this}},Lk._totals=0;let ZZ=Lk;const A6o=new Set([Ci.inMemory,Ci.vscodeSourceControl,Ci.walkThrough,Ci.walkThroughSnippet,Ci.vscodeChatCodeBlock,Ci.vscodeTerminal]);class p6o{constructor(){this._byResource=new _c,this._byOwner=new Map}set(t,n,r){let o=this._byResource.get(t);o||(o=new Map,this._byResource.set(t,o)),o.set(n,r);let s=this._byOwner.get(n);s||(s=new _c,this._byOwner.set(n,s)),s.set(t,r)}get(t,n){const r=this._byResource.get(t);return r==null?void 0:r.get(n)}delete(t,n){let r=!1,o=!1;const s=this._byResource.get(t);s&&(r=s.delete(n));const a=this._byOwner.get(n);if(a&&(o=a.delete(t)),r!==o)throw new Error("illegal state");return r&&o}values(t){var n,r;return typeof t=="string"?((n=this._byOwner.get(t))==null?void 0:n.values())??to.empty():vi.isUri(t)?((r=this._byResource.get(t))==null?void 0:r.values())??to.empty():to.map(to.concat(...this._byOwner.values()),o=>o[1])}}class b6o{constructor(t){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new _c,this._service=t,this._subscription=t.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(t){for(const n of t){const r=this._data.get(n);r&&this._substract(r);const o=this._resourceStats(n);this._add(o),this._data.set(n,o)}}_resourceStats(t){const n={errors:0,warnings:0,infos:0,unknowns:0};if(A6o.has(t.scheme))return n;for(const{severity:r}of this._service.read({resource:t}))r===xl.Error?n.errors+=1:r===xl.Warning?n.warnings+=1:r===xl.Info?n.infos+=1:n.unknowns+=1;return n}_substract(t){this.errors-=t.errors,this.warnings-=t.warnings,this.infos-=t.infos,this.unknowns-=t.unknowns}_add(t){this.errors+=t.errors,this.warnings+=t.warnings,this.infos+=t.infos,this.unknowns+=t.unknowns}}class IT{constructor(){this._onMarkerChanged=new M6n({delay:0,merge:IT._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new p6o,this._stats=new b6o(this),this._filteredResources=new _c}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(t,n){for(const r of n||[])this.changeOne(t,r,[])}changeOne(t,n,r){if(sEn(r))this._data.delete(n,t)&&this._onMarkerChanged.fire([n]);else{const o=[];for(const s of r){const a=IT._toMarker(t,n,s);a&&o.push(a)}this._data.set(n,t,o),this._onMarkerChanged.fire([n])}}static _toMarker(t,n,r){let{code:o,severity:s,message:a,source:l,startLineNumber:d,startColumn:u,endLineNumber:h,endColumn:g,relatedInformation:m,tags:v,origin:f}=r;if(a)return d=d>0?d:1,u=u>0?u:1,h=h>=d?h:d,g=g>0?g:u,{resource:n,owner:t,code:o,severity:s,message:a,source:l,startLineNumber:d,startColumn:u,endLineNumber:h,endColumn:g,relatedInformation:m,tags:v,origin:f}}changeAll(t,n){const r=[],o=this._data.values(t);if(o)for(const s of o){const a=to.first(s);a&&(r.push(a.resource),this._data.delete(a.resource,t))}if(yg(n)){const s=new _c;for(const{resource:a,marker:l}of n){const d=IT._toMarker(t,a,l);if(!d)continue;const u=s.get(a);u?u.push(d):(s.set(a,[d]),r.push(a))}for(const[a,l]of s)this._data.set(a,t,l)}r.length>0&&this._onMarkerChanged.fire(r)}_createFilteredMarker(t,n){const r=n.length===1?U(1738,'Problems are paused because: "{0}"',n[0]):U(1739,'Problems are paused because: "{0}" and {1} more',n[0],n.length-1);return{owner:"markersFilter",resource:t,severity:xl.Info,message:r,startLineNumber:1,startColumn:1,endLineNumber:1,endColumn:1}}read(t=Object.create(null)){let{owner:n,resource:r,severities:o,take:s}=t;if((!s||s<0)&&(s=-1),n&&r){const a=t.ignoreResourceFilters?void 0:this._filteredResources.get(r);if(a!=null&&a.length)return[this._createFilteredMarker(r,a)];const l=this._data.get(r,n);if(!l)return[];const d=[];for(const u of l){if(s>0&&d.length===s)break;const h=t.ignoreResourceFilters?void 0:this._filteredResources.get(r);h!=null&&h.length?d.push(this._createFilteredMarker(r,h)):IT._accept(u,o)&&d.push(u)}return d}else{const a=!n&&!r?this._data.values():this._data.values(r??n),l=[],d=new _no;for(const u of a)for(const h of u){if(d.has(h.resource))continue;if(s>0&&l.length===s)break;const g=t.ignoreResourceFilters?void 0:this._filteredResources.get(h.resource);g!=null&&g.length?(l.push(this._createFilteredMarker(h.resource,g)),d.add(h.resource)):IT._accept(h,o)&&l.push(h)}return l}}static _accept(t,n){return n===void 0||(n&t.severity)===t.severity}static _merge(t){const n=new _c;for(const r of t)for(const o of r)n.set(o,!0);return Array.from(n.keys())}}class w6o extends ft{get configurationModel(){return this._configurationModel}constructor(t){super(),this.logService=t,this._configurationModel=oh.createEmptyModel(t)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=oh.createEmptyModel(this.logService);const t=Ql.as(F3.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(t),t)}updateConfigurationModel(t,n){const r=this.getConfigurationDefaultOverrides();for(const o of t){const s=r[o],a=n[o];s!==void 0?this._configurationModel.setValue(o,s):a?this._configurationModel.setValue(o,uO(a.default)):this._configurationModel.removeValue(o)}}}class O6o extends ft{constructor(t,n=[]){super(),this.logger=new Pno([t,...n]),this._register(t.onDidChangeLogLevel(r=>this.setLevel(r)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(t){this.logger.setLevel(t)}getLevel(){return this.logger.getLevel()}trace(t,...n){this.logger.trace(t,...n)}debug(t,...n){this.logger.debug(t,...n)}info(t,...n){this.logger.info(t,...n)}warn(t,...n){this.logger.warn(t,...n)}error(t,...n){this.logger.error(t,...n)}}class y6o{getParserClass(){throw new Error("not implemented in StandaloneTreeSitterLibraryService")}supportsLanguage(t,n){return!1}getLanguage(t,n,r){}getInjectionQueries(t,n){return null}getHighlightingQueries(t,n){return null}}var rC=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Pc=function(e,t){return function(n,r){t(n,r,e)}};class C6o{constructor(t){this.disposed=!1,this.model=t,this._onWillDispose=new at}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let I$e=class{constructor(t){this.modelService=t}createModelReference(t){const n=this.modelService.getModel(t);return n?Promise.resolve(new YJr(new C6o(n))):Promise.reject(new Error("Model not found"))}};I$e=rC([Pc(0,ml)],I$e);const KAe=class KAe{show(){return KAe.NULL_PROGRESS_RUNNER}async showWhile(t,n){await t}};KAe.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};let M$e=KAe;class _6o{withProgress(t,n,r){return n({report:()=>{}})}}class S6o{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class L6o{async confirm(t){return{confirmed:this.doConfirm(t.message,t.detail),checkboxChecked:!1}}doConfirm(t,n){let r=t;return n&&(r=r+` -`+n),Ls.confirm(r)}async prompt(t){var o;let n;if(this.doConfirm(t.message,t.detail)){const s=[...t.buttons??[]];t.cancelButton&&typeof t.cancelButton!="string"&&typeof t.cancelButton!="boolean"&&s.push(t.cancelButton),n=await((o=s[0])==null?void 0:o.run({checkboxChecked:!1}))}return{result:n}}async error(t,n){await this.prompt({type:Sl.Error,message:t,detail:n})}}const Rq=class Rq{info(t){return this.notify({severity:Sl.Info,message:t})}warn(t){return this.notify({severity:Sl.Warning,message:t})}error(t){return this.notify({severity:Sl.Error,message:t})}notify(t){switch(t.severity){case Sl.Error:console.error(t.message);break;case Sl.Warning:console.warn(t.message);break;default:console.log(t.message);break}return Rq.NO_OP}prompt(t,n,r,o){return Rq.NO_OP}status(t,n){return{close:()=>{}}}};Rq.NO_OP=new vdo;let P$e=Rq,F$e=class{constructor(t){this._onWillExecuteCommand=new at,this._onDidExecuteCommand=new at,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=t}executeCommand(t,...n){const r=co.getCommand(t);if(!r)return Promise.reject(new Error(`command '${t}' not found`));try{this._onWillExecuteCommand.fire({commandId:t,args:n});const o=this._instantiationService.invokeFunction.apply(this._instantiationService,[r.handler,...n]);return this._onDidExecuteCommand.fire({commandId:t,args:n}),Promise.resolve(o)}catch(o){return Promise.reject(o)}}};F$e=rC([Pc(0,Yn)],F$e);let DV=class extends r9o{constructor(t,n,r,o,s,a){super(t,n,r,o,s),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const l=v=>{const f=new xt;f.add(wt(v,rn.KEY_DOWN,k=>{const A=new Us(k);this._dispatch(A,A.target)&&(A.preventDefault(),A.stopPropagation())})),f.add(wt(v,rn.KEY_UP,k=>{const A=new Us(k);this._singleModifierDispatch(A,A.target)&&A.preventDefault()})),this._domNodeListeners.push(new x6o(v,f))},d=v=>{for(let f=0;f{v.getOption(70)||l(v.getContainerDomNode())},h=v=>{v.getOption(70)||d(v.getContainerDomNode())};this._register(a.onCodeEditorAdd(u)),this._register(a.onCodeEditorRemove(h)),a.listCodeEditors().forEach(u);const g=v=>{l(v.getContainerDomNode())},m=v=>{d(v.getContainerDomNode())};this._register(a.onDiffEditorAdd(g)),this._register(a.onDiffEditorRemove(m)),a.listDiffEditors().forEach(g)}addDynamicKeybinding(t,n,r,o){return G4(co.registerCommand(t,r),this.addDynamicKeybindings([{keybinding:n,command:t,when:o}]))}addDynamicKeybindings(t){const n=t.map(r=>({keybinding:XFe(r.keybinding,b0),command:r.command??null,commandArgs:r.commandArgs,when:r.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(n),this.updateResolver(),Hn(()=>{for(let r=0;rthis._log(r))}return this._cachedResolver}_documentHasFocus(){return Ls.document.hasFocus()}_toNormalizedKeybindingItems(t,n){const r=[];let o=0;for(const s of t){const a=s.when||void 0,l=s.keybinding;if(!l)r[o++]=new q_t(void 0,s.command,s.commandArgs,a,n,null,!1);else{const d=wee.resolveKeybinding(l,b0);for(const u of d)r[o++]=new q_t(u,s.command,s.commandArgs,a,n,null,!1)}}return r}resolveKeyboardEvent(t){const n=new D8(t.ctrlKey,t.shiftKey,t.altKey,t.metaKey,t.keyCode);return new wee([n],b0)}};DV=rC([Pc(0,Qi),Pc(1,ba),Pc(2,Nf),Pc(3,ic),Pc(4,va),Pc(5,yo)],DV);class x6o extends ft{constructor(t,n){super(),this.domNode=t,this._register(n)}}function bSt(e){return!!e&&typeof e=="object"&&(!e.overrideIdentifier||typeof e.overrideIdentifier=="string")&&(!e.resource||e.resource instanceof vi)}let xke=class{constructor(t){this.logService=t,this._onDidChangeConfiguration=new at,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const n=new w6o(t);this._configuration=new G3e(n.reload(),oh.createEmptyModel(t),oh.createEmptyModel(t),oh.createEmptyModel(t),oh.createEmptyModel(t),oh.createEmptyModel(t),new _c,oh.createEmptyModel(t),new _c,t),n.dispose()}getValue(t,n){const r=typeof t=="string"?t:void 0,o=bSt(t)?t:bSt(n)?n:{};return this._configuration.getValue(r,o,void 0)}updateValues(t){const n={data:this._configuration.toData()},r=[];for(const o of t){const[s,a]=o;this.getValue(s)!==a&&(this._configuration.updateValue(s,a),r.push(s))}if(r.length>0){const o=new e9o({keys:r,overrides:[]},n,this._configuration,void 0,this.logService);o.source=8,this._onDidChangeConfiguration.fire(o)}return Promise.resolve()}updateValue(t,n,r,o){return this.updateValues([[t,n]])}inspect(t,n={}){return this._configuration.inspect(t,n,void 0)}};xke=rC([Pc(0,va)],xke);let N$e=class{constructor(t,n,r){this.configurationService=t,this.modelService=n,this.languageService=r,this._onDidChangeConfiguration=new at,this.configurationService.onDidChangeConfiguration(o=>{this._onDidChangeConfiguration.fire({affectedKeys:o.affectedKeys,affectsConfiguration:(s,a)=>o.affectsConfiguration(a)})})}getValue(t,n,r){const o=it.isIPosition(n)?n:null,s=o?typeof r=="string"?r:void 0:typeof n=="string"?n:void 0,a=t?this.getLanguage(t,o):void 0;return typeof s>"u"?this.configurationService.getValue({resource:t,overrideIdentifier:a}):this.configurationService.getValue(s,{resource:t,overrideIdentifier:a})}getLanguage(t,n){const r=this.modelService.getModel(t);return r?n?r.getLanguageIdAtPosition(n.lineNumber,n.column):r.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(t)}};N$e=rC([Pc(0,ar),Pc(1,ml),Pc(2,nc)],N$e);let U$e=class{constructor(t){this.configurationService=t}getEOL(t,n){const r=this.configurationService.getValue("files.eol",{overrideIdentifier:n,resource:t});return r&&typeof r=="string"&&r!=="auto"?r:v1||Tr?` +`+n),Ls.confirm(r)}async prompt(t){var o;let n;if(this.doConfirm(t.message,t.detail)){const s=[...t.buttons??[]];t.cancelButton&&typeof t.cancelButton!="string"&&typeof t.cancelButton!="boolean"&&s.push(t.cancelButton),n=await((o=s[0])==null?void 0:o.run({checkboxChecked:!1}))}return{result:n}}async error(t,n){await this.prompt({type:Sl.Error,message:t,detail:n})}}const Rq=class Rq{info(t){return this.notify({severity:Sl.Info,message:t})}warn(t){return this.notify({severity:Sl.Warning,message:t})}error(t){return this.notify({severity:Sl.Error,message:t})}notify(t){switch(t.severity){case Sl.Error:console.error(t.message);break;case Sl.Warning:console.warn(t.message);break;default:console.log(t.message);break}return Rq.NO_OP}prompt(t,n,r,o){return Rq.NO_OP}status(t,n){return{close:()=>{}}}};Rq.NO_OP=new vdo;let P$e=Rq,F$e=class{constructor(t){this._onWillExecuteCommand=new at,this._onDidExecuteCommand=new at,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=t}executeCommand(t,...n){const r=uo.getCommand(t);if(!r)return Promise.reject(new Error(`command '${t}' not found`));try{this._onWillExecuteCommand.fire({commandId:t,args:n});const o=this._instantiationService.invokeFunction.apply(this._instantiationService,[r.handler,...n]);return this._onDidExecuteCommand.fire({commandId:t,args:n}),Promise.resolve(o)}catch(o){return Promise.reject(o)}}};F$e=rC([Pc(0,Yn)],F$e);let DV=class extends r9o{constructor(t,n,r,o,s,a){super(t,n,r,o,s),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const l=v=>{const f=new xt;f.add(wt(v,rn.KEY_DOWN,k=>{const A=new Us(k);this._dispatch(A,A.target)&&(A.preventDefault(),A.stopPropagation())})),f.add(wt(v,rn.KEY_UP,k=>{const A=new Us(k);this._singleModifierDispatch(A,A.target)&&A.preventDefault()})),this._domNodeListeners.push(new x6o(v,f))},d=v=>{for(let f=0;f{v.getOption(70)||l(v.getContainerDomNode())},h=v=>{v.getOption(70)||d(v.getContainerDomNode())};this._register(a.onCodeEditorAdd(u)),this._register(a.onCodeEditorRemove(h)),a.listCodeEditors().forEach(u);const g=v=>{l(v.getContainerDomNode())},m=v=>{d(v.getContainerDomNode())};this._register(a.onDiffEditorAdd(g)),this._register(a.onDiffEditorRemove(m)),a.listDiffEditors().forEach(g)}addDynamicKeybinding(t,n,r,o){return G4(uo.registerCommand(t,r),this.addDynamicKeybindings([{keybinding:n,command:t,when:o}]))}addDynamicKeybindings(t){const n=t.map(r=>({keybinding:XFe(r.keybinding,b0),command:r.command??null,commandArgs:r.commandArgs,when:r.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(n),this.updateResolver(),Hn(()=>{for(let r=0;rthis._log(r))}return this._cachedResolver}_documentHasFocus(){return Ls.document.hasFocus()}_toNormalizedKeybindingItems(t,n){const r=[];let o=0;for(const s of t){const a=s.when||void 0,l=s.keybinding;if(!l)r[o++]=new q_t(void 0,s.command,s.commandArgs,a,n,null,!1);else{const d=wee.resolveKeybinding(l,b0);for(const u of d)r[o++]=new q_t(u,s.command,s.commandArgs,a,n,null,!1)}}return r}resolveKeyboardEvent(t){const n=new D8(t.ctrlKey,t.shiftKey,t.altKey,t.metaKey,t.keyCode);return new wee([n],b0)}};DV=rC([Pc(0,Qi),Pc(1,ba),Pc(2,Nf),Pc(3,ic),Pc(4,va),Pc(5,yo)],DV);class x6o extends ft{constructor(t,n){super(),this.domNode=t,this._register(n)}}function bSt(e){return!!e&&typeof e=="object"&&(!e.overrideIdentifier||typeof e.overrideIdentifier=="string")&&(!e.resource||e.resource instanceof vi)}let xke=class{constructor(t){this.logService=t,this._onDidChangeConfiguration=new at,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const n=new w6o(t);this._configuration=new G3e(n.reload(),oh.createEmptyModel(t),oh.createEmptyModel(t),oh.createEmptyModel(t),oh.createEmptyModel(t),oh.createEmptyModel(t),new _c,oh.createEmptyModel(t),new _c,t),n.dispose()}getValue(t,n){const r=typeof t=="string"?t:void 0,o=bSt(t)?t:bSt(n)?n:{};return this._configuration.getValue(r,o,void 0)}updateValues(t){const n={data:this._configuration.toData()},r=[];for(const o of t){const[s,a]=o;this.getValue(s)!==a&&(this._configuration.updateValue(s,a),r.push(s))}if(r.length>0){const o=new e9o({keys:r,overrides:[]},n,this._configuration,void 0,this.logService);o.source=8,this._onDidChangeConfiguration.fire(o)}return Promise.resolve()}updateValue(t,n,r,o){return this.updateValues([[t,n]])}inspect(t,n={}){return this._configuration.inspect(t,n,void 0)}};xke=rC([Pc(0,va)],xke);let N$e=class{constructor(t,n,r){this.configurationService=t,this.modelService=n,this.languageService=r,this._onDidChangeConfiguration=new at,this.configurationService.onDidChangeConfiguration(o=>{this._onDidChangeConfiguration.fire({affectedKeys:o.affectedKeys,affectsConfiguration:(s,a)=>o.affectsConfiguration(a)})})}getValue(t,n,r){const o=it.isIPosition(n)?n:null,s=o?typeof r=="string"?r:void 0:typeof n=="string"?n:void 0,a=t?this.getLanguage(t,o):void 0;return typeof s>"u"?this.configurationService.getValue({resource:t,overrideIdentifier:a}):this.configurationService.getValue(s,{resource:t,overrideIdentifier:a})}getLanguage(t,n){const r=this.modelService.getModel(t);return r?n?r.getLanguageIdAtPosition(n.lineNumber,n.column):r.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(t)}};N$e=rC([Pc(0,ar),Pc(1,ml),Pc(2,nc)],N$e);let U$e=class{constructor(t){this.configurationService=t}getEOL(t,n){const r=this.configurationService.getValue("files.eol",{overrideIdentifier:n,resource:t});return r&&typeof r=="string"&&r!=="auto"?r:v1||Tr?` `:`\r -`}};U$e=rC([Pc(0,ar)],U$e);class E6o{publicLog2(){}}const Iq=class Iq{constructor(){const t=vi.from({scheme:Iq.SCHEME,authority:"model",path:"/"});this.workspace={id:MDn,folders:[new W2o({uri:t,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(t){return t&&t.scheme===Iq.SCHEME?this.workspace.folders[0]:null}};Iq.SCHEME="inmemory";let j$e=Iq;function Eke(e,t,n){if(!t||!(e instanceof xke))return;const r=[];Object.keys(t).forEach(o=>{avo(o)&&r.push([`editor.${o}`,t[o]]),n&&lvo(o)&&r.push([`diffEditor.${o}`,t[o]])}),r.length>0&&e.updateValues(r)}let W$e=class{constructor(t){this._modelService=t}hasPreviewHandler(){return!1}async apply(t,n){const r=Array.isArray(t)?t:Ptt.convert(t),o=new Map;for(const l of r){if(!(l instanceof N9))throw new Error("bad edit - only text edits are supported");const d=this._modelService.getModel(l.resource);if(!d)throw new Error("bad edit - model not found");if(typeof l.versionId=="number"&&d.getVersionId()!==l.versionId)throw new Error("bad state - model changed in the meantime");let u=o.get(d);u||(u=[],o.set(d,u)),u.push($l.replaceMove(Ee.lift(l.textEdit.range),l.textEdit.text))}let s=0,a=0;for(const[l,d]of o)l.pushStackElement(),l.pushEditOperations([],d,()=>[]),l.pushStackElement(),a+=1,s+=d.length;return{ariaSummary:oR(Rze.bulkEditServiceSummary,s,a),isApplied:s>0}}};W$e=rC([Pc(0,ml)],W$e);class T6o{getUriLabel(t,n){return t.scheme==="file"?t.fsPath:t.path}getUriBasenameLabel(t){return hA(t)}}let V$e=class extends $5o{constructor(t,n){super(t),this._codeEditorService=n}showContextView(t,n,r){if(!n){const o=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();o&&(n=o.getContainerDomNode())}return super.showContextView(t,n,r)}};V$e=rC([Pc(0,tC),Pc(1,yo)],V$e);class Q6o{constructor(){this._neverEmitter=new at,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class D6o extends r$e{constructor(){super()}}class B6o extends O6o{constructor(){super(new Mno)}}let z$e=class extends a$e{constructor(t,n,r,o,s,a){super(t,n,r,o,s,a),this.configure({blockMouse:!1})}};z$e=rC([Pc(0,Nf),Pc(1,ic),Pc(2,wL),Pc(3,Do),Pc(4,wA),Pc(5,Qi)],z$e);const R6o={esmModuleLocation:void 0,label:"editorWorkerService"};let H$e=class extends $He{constructor(t,n,r,o,s){super(R6o,t,n,r,o,s)}};H$e=rC([Pc(0,ml),Pc(1,W3e),Pc(2,va),Pc(3,kl),Pc(4,Nn)],H$e);class I6o{async playSignal(t,n){}}zr(va,B6o,0);zr(ar,xke,0);zr(W3e,N$e,0);zr(DIn,U$e,0);zr(H8,j$e,0);zr(TR,T6o,0);zr(Nf,E6o,0);zr(are,L6o,0);zr($tt,S6o,0);zr(ic,P$e,0);zr(nC,IT,0);zr(nc,D6o,0);zr(L2,Fxo,0);zr(ml,f$e,0);zr(ket,h$e,0);zr(Qi,R$e,0);zr(cQn,_6o,0);zr(V8,M$e,0);zr(Bg,_ko,0);zr(S1,H$e,0);zr(Yie,W$e,0);zr(zIn,Q6o,0);zr(Dg,I$e,0);zr(vh,T$e,0);zr(_A,Ipo,0);zr(ba,F$e,0);zr(Do,DV,0);zr(Rf,x$e,0);zr(wL,V$e,0);zr(OL,u$e,0);zr(U0,D$e,0);zr(S2,z$e,0);zr(wA,mje,0);zr(pL,I6o,0);zr(ntt,y6o,0);zr(PEn,Uno,0);zr(Int,qwo,0);var Hi;(function(e){const t=new rH;for(const[d,u]of Hbt())t.set(d,u);const n=new Lke(t,!0);t.set(Yn,n);function r(d){o||a({});const u=t.get(d);if(!u)throw new Error("Missing service "+d);return u instanceof hO?n.invokeFunction(h=>h.get(d)):u}e.get=r;let o=!1;const s=new at;function a(d){if(o)return n;o=!0;for(const[h,g]of Hbt())t.get(h)||t.set(h,g);for(const h in d)if(d.hasOwnProperty(h)){const g=Cr(h);t.get(g)instanceof hO&&t.set(g,d[h])}const u=Vvo();for(const h of u)try{n.createInstance(h)}catch(g){zi(g)}return s.fire(),n}e.initialize=a;function l(d){if(o)return d();const u=new xt,h=u.add(s.event(()=>{h.dispose(),u.add(d())}));return u}e.withServices=l})(Hi||(Hi={}));var M6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},wSt=function(e,t){return function(n,r){t(n,r,e)}},Qhe,xB;let $$e=(xB=class{constructor(t,n){this._configurationService=t,this._languageService=n}async renderCodeBlock(t,n,r){var h;const o=C3(r.context)?r.context:void 0;let s;t?s=this._languageService.getLanguageIdByLanguageName(t):o&&(s=(h=o.getModel())==null?void 0:h.getLanguageId()),s||(s=o2);const a=await jfo(this._languageService,n,s),l=Qhe._ttpTokenizer?Qhe._ttpTokenizer.createHTML(a)??a:a,d=document.createElement("span");d.innerHTML=l;const u=d.querySelector(".monaco-tokenized-source");return ec(u)?(Fu(u,this.getFontInfo(o)),d):document.createElement("span")}getFontInfo(t){return t?t.getOption(59):poo({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}},Qhe=xB,xB._ttpTokenizer=Jy("tokenizeToString",{createHTML(t){return t}}),xB);$$e=Qhe=M6o([wSt(0,ar),wSt(1,nc)],$$e);var fit=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},aa=function(e,t){return function(n,r){t(n,r,e)}};let P6o=0,OSt=!1;function F6o(e){if(!e){if(OSt)return;OSt=!0}tno(e||Ls.document.body)}let Tke=class extends gR{constructor(t,n,r,o,s,a,l,d,u,h,g,m,v,f){const k={...n};k.ariaLabel=k.ariaLabel||Dze.editorViewAccessibleLabel,super(t,k,{},r,o,s,a,u,h,g,m,v),d instanceof DV?this._standaloneKeybindingService=d:this._standaloneKeybindingService=null,F6o(k.ariaContainerElement),Lgo((A,p)=>r.createInstance(mV,A,{instantHover:p},{})),P1o(l),f.setDefaultCodeBlockRenderer(r.createInstance($$e))}addCommand(t,n,r){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const o="DYNAMIC_"+ ++P6o,s=Ft.deserialize(r);return this._standaloneKeybindingService.addDynamicKeybinding(o,t,n,s),o}createContextKey(t,n){return this._contextKeyService.createKey(t,n)}addAction(t){if(typeof t.id!="string"||typeof t.label!="string"||typeof t.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ft.None;const n=t.id,r=t.label,o=Ft.and(Ft.equals("editorId",this.getId()),Ft.deserialize(t.precondition)),s=t.keybindings,a=Ft.and(o,Ft.deserialize(t.keybindingContext)),l=t.contextMenuGroupId||null,d=t.contextMenuOrder||0,u=(v,...f)=>Promise.resolve(t.run(this,...f)),h=new xt,g=this.getId()+":"+n;if(h.add(co.registerCommand(g,u)),l){const v={command:{id:g,title:r},when:o,group:l,order:d};h.add(Iu.appendMenuItem(Wn.EditorContext,v))}if(Array.isArray(s))for(const v of s)h.add(this._standaloneKeybindingService.addDynamicKeybinding(g,v,u,a));const m=new BTn(g,r,r,void 0,o,(...v)=>Promise.resolve(t.run(this,...v)),this._contextKeyService);return this._actions.set(n,m),h.add(Hn(()=>{this._actions.delete(n)})),h}_triggerCommand(t,n){if(this._codeEditorService instanceof vke)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(t,n)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(t,n)}};Tke=fit([aa(2,Yn),aa(3,yo),aa(4,ba),aa(5,Qi),aa(6,pm),aa(7,Do),aa(8,Dl),aa(9,ic),aa(10,vh),aa(11,kl),aa(12,Nn),aa(13,Cp)],Tke);let X$e=class extends Tke{constructor(t,n,r,o,s,a,l,d,u,h,g,m,v,f,k,A,p){const b={...n};Eke(g,b,!1);const w=u.registerEditorContainer(t);typeof b.theme=="string"&&u.setTheme(b.theme),typeof b.autoDetectHighContrast<"u"&&u.setAutoDetectHighContrast(!!b.autoDetectHighContrast);const O=b.model;delete b.model,super(t,b,r,o,s,a,l,d,u,h,m,k,A,p),this._configurationService=g,this._standaloneThemeService=u,this._register(w);let y;if(typeof O>"u"){const C=f.getLanguageIdByMimeType(b.language)||b.language||o2;y=MMn(v,f,b.value||"",C,void 0),this._ownsModel=!0}else y=O,this._ownsModel=!1;if(this._attachModel(y),y){const C={oldModelUrl:null,newModelUrl:y.uri};this._onDidChangeModel.fire(C)}}dispose(){super.dispose()}updateOptions(t){Eke(this._configurationService,t,!1),typeof t.theme=="string"&&this._standaloneThemeService.setTheme(t.theme),typeof t.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!t.autoDetectHighContrast),super.updateOptions(t)}_postDetachModelCleanup(t){super._postDetachModelCleanup(t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)}};X$e=fit([aa(2,Yn),aa(3,yo),aa(4,ba),aa(5,Qi),aa(6,pm),aa(7,Do),aa(8,L2),aa(9,ic),aa(10,ar),aa(11,vh),aa(12,ml),aa(13,nc),aa(14,kl),aa(15,Nn),aa(16,Cp)],X$e);let G$e=class extends Ey{constructor(t,n,r,o,s,a,l,d,u,h,g,m){const v={...n};Eke(d,v,!0);const f=a.registerEditorContainer(t);typeof v.theme=="string"&&a.setTheme(v.theme),typeof v.autoDetectHighContrast<"u"&&a.setAutoDetectHighContrast(!!v.autoDetectHighContrast),super(t,v,{},o,r,s,m,h),this._configurationService=d,this._standaloneThemeService=a,this._register(f)}dispose(){super.dispose()}updateOptions(t){Eke(this._configurationService,t,!0),typeof t.theme=="string"&&this._standaloneThemeService.setTheme(t.theme),typeof t.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!t.autoDetectHighContrast),super.updateOptions(t)}_createInnerEditor(t,n,r){return t.createInstance(Tke,n,r)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(t,n,r){return this.getModifiedEditor().addCommand(t,n,r)}createContextKey(t,n){return this.getModifiedEditor().createContextKey(t,n)}addAction(t){return this.getModifiedEditor().addAction(t)}};G$e=fit([aa(2,Yn),aa(3,Qi),aa(4,yo),aa(5,L2),aa(6,ic),aa(7,ar),aa(8,S2),aa(9,V8),aa(10,U0),aa(11,pL)],G$e);function MMn(e,t,n,r,o){if(n=n||"",!r){const s=n.indexOf(` -`);let a=n;return s!==-1&&(a=n.substring(0,s)),ySt(e,n,t.createByFilepathOrFirstLine(o||null,a),o)}return ySt(e,n,t.createById(r),o)}function ySt(e,t,n,r){return e.createModel(t,n,r)}Ve("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},U(142,"The background color of the diff editor's header"));Ve("multiDiffEditor.background",Oc,U(143,"The background color of the multi file diff editor"));Ve("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},U(144,"The border color of the multi file diff editor"));var N6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},CSt=function(e,t){return function(n,r){t(n,r,e)}};class U6o{constructor(t,n){this.viewModel=t,this.deltaScrollVertical=n}getId(){return this.viewModel}}let Y$e=class extends ft{constructor(t,n,r,o,s){super(),this._container=t,this._overflowWidgetsDomNode=n,this._workbenchUIElementFactory=r,this._instantiationService=o,this._viewModel=Ti(this,void 0),this._collapsed=Rt(this,d=>{var u;return(u=this._viewModel.read(d))==null?void 0:u.collapsed.read(d)}),this._editorContentHeight=Ti(this,500),this.contentHeight=Rt(this,d=>(this._collapsed.read(d)?0:this._editorContentHeight.read(d))+this._outerEditorHeight),this._modifiedContentWidth=Ti(this,0),this._modifiedWidth=Ti(this,0),this._originalContentWidth=Ti(this,0),this._originalWidth=Ti(this,0),this.maxScroll=Rt(this,d=>{const u=this._modifiedContentWidth.read(d)-this._modifiedWidth.read(d),h=this._originalContentWidth.read(d)-this._originalWidth.read(d);return u>h?{maxScroll:u,width:this._modifiedWidth.read(d)}:{maxScroll:h,width:this._originalWidth.read(d)}}),this._elements=wo("div.multiDiffEntry",[wo("div.header@header",[wo("div.header-content",[wo("div.collapse-button@collapseButton"),wo("div.file-path",[wo("div.title.modified.show-file-icons@primaryPath",[]),wo("div.status.deleted@status",["R"]),wo("div.title.original.show-file-icons@secondaryPath",[])]),wo("div.actions@actions")])]),wo("div.editorParent",[wo("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(Ey,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=hl(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=hl(this.editor.getOriginalEditor()).isFocused,this.isFocused=Rt(this,d=>this.isModifedFocused.read(d)||this.isOriginalFocused.read(d)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new xt),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const a=new z1e(this._elements.collapseButton,{});this._register(Oi(d=>{a.element.className="",a.icon=this._collapsed.read(d)?zt.chevronRight:zt.chevronDown})),this._register(a.onDidClick(()=>{var d;(d=this._viewModel.get())==null||d.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Oi(d=>{this._elements.editor.style.display=this._collapsed.read(d)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(d=>{const u=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(u,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(d=>{const u=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(u,void 0)})),this._register(this.editor.onDidContentSizeChange(d=>{BG(u=>{this._editorContentHeight.set(d.contentHeight,u),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),u),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),u)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(d=>{if(this._isSettingScrollTop||!d.scrollTopChanged||!this._data)return;const u=d.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(u)})),this._register(Oi(d=>{var h;const u=(h=this._viewModel.read(d))==null?void 0:h.isActive.read(d);this._elements.root.classList.toggle("active",u)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(s.createScoped(this._elements.actions));const l=this._register(this._instantiationService.createChild(new rH([Qi,this._contextKeyService])));this._register(l.createInstance(RJ,this._elements.actions,Wn.MultiDiffEditorFileToolbar,{actionRunner:this._register(new ODn(()=>{var d,u;return((d=this._viewModel.get())==null?void 0:d.modifiedUri)??((u=this._viewModel.get())==null?void 0:u.originalUri)})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:d=>d.startsWith("navigation")},actionViewItemProvider:(d,u)=>Itt(l,d,u)}))}setScrollLeft(t){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(t):this.editor.getOriginalEditor().setScrollLeft(t)}setData(t){this._data=t;function n(o){return{...o,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!t){BG(o=>{this._viewModel.set(void 0,o),this.editor.setDiffModel(null,o),this._dataStore.clear()});return}const r=t.viewModel.documentDiffItem;if(BG(o=>{var u,h;(u=this._resourceLabel)==null||u.setUri(t.viewModel.modifiedUri??t.viewModel.originalUri,{strikethrough:t.viewModel.modifiedUri===void 0});let s=!1,a=!1,l=!1,d="";t.viewModel.modifiedUri&&t.viewModel.originalUri&&t.viewModel.modifiedUri.path!==t.viewModel.originalUri.path?(d="R",s=!0):t.viewModel.modifiedUri?t.viewModel.originalUri||(d="A",l=!0):(d="D",a=!0),this._elements.status.classList.toggle("renamed",s),this._elements.status.classList.toggle("deleted",a),this._elements.status.classList.toggle("added",l),this._elements.status.innerText=d,(h=this._resourceLabel2)==null||h.setUri(s?t.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(t.viewModel,o),this.editor.setDiffModel(t.viewModel.diffEditorViewModelRef,o),this.editor.updateOptions(n(r.options??{}))}),r.onOptionsDidChange&&this._dataStore.add(r.onOptionsDidChange(()=>{this.editor.updateOptions(n(r.options??{}))})),t.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,o=>{o||this.setData(void 0)}),t.viewModel.documentDiffItem.contextKeys)for(const[o,s]of Object.entries(t.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(o,s)}render(t,n,r,o){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${t.start}px`,this._elements.root.style.height=`${t.length}px`,this._elements.root.style.width=`${n}px`,this._elements.root.style.position="absolute";const s=t.length-this._headerHeight,a=Math.max(0,Math.min(o.start-t.start,s));this._elements.header.style.transform=`translateY(${a}px)`,BG(l=>{this.editor.layout({width:n-2*8-2*1,height:t.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=r,this.editor.getOriginalEditor().setScrollTop(r)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",a>0||r>0),this._elements.header.classList.toggle("collapsed",a===s)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};Y$e=N6o([CSt(3,Yn),CSt(4,Qi)],Y$e);class j6o{constructor(t){this._create=t,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(t){let n;if(this._unused.size===0)n=this._create(t),this._itemData.set(n,t);else{const r=[...this._unused.values()];n=r.find(o=>this._itemData.get(o).getId()===t.getId())??r[0],this._unused.delete(n),this._itemData.set(n,t),n.setData(t)}return this._used.add(n),{object:n,dispose:()=>{this._used.delete(n),this._unused.size>5?n.dispose():this._unused.add(n)}}}dispose(){for(const t of this._used)t.dispose();for(const t of this._unused)t.dispose();this._used.clear(),this._unused.clear()}}var W6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_St=function(e,t){return function(n,r){t(n,r,e)}};let Z$e=class extends ft{constructor(t,n,r,o,s,a){super(),this._element=t,this._dimension=n,this._viewModel=r,this._workbenchUIElementFactory=o,this._parentContextKeyService=s,this._parentInstantiationService=a,this._scrollableElements=wo("div.scrollContent",[wo("div@content",{style:{overflow:"hidden"}}),wo("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new nH({forceIntegerValues:!1,scheduleAtNextAnimationFrame:u=>A1(ii(this._element),u),smoothScrollDuration:100})),this._scrollableElement=this._register(new Jbe(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=wo("div.monaco-component.multiDiffEditor",{},[wo("div",{},[this._scrollableElement.getDomNode()]),wo("div.placeholder@placeholder",{},[wo("div")])]),this._sizeObserver=this._register(new nDn(this._element,void 0)),this._objectPool=this._register(new j6o(u=>{const h=this._instantiationService.createInstance(Y$e,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return h.setData(u),h})),this.scrollTop=Ko(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=Ko(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=Rt(this,u=>{const h=this._viewModel.read(u);if(!h)return{items:[],getItem:f=>{throw new ui}};const g=h.items.read(u),m=new Map;return{items:g.map(f=>{var p;const k=u.store.add(new z6o(f,this._objectPool,this.scrollLeft,b=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+b})})),A=(p=this._lastDocStates)==null?void 0:p[k.getKey()];return A&&la(b=>{k.setViewState(A,b)}),m.set(f,k),k}),getItem:f=>m.get(f)}}),this._viewItems=this._viewItemsInfo.map(this,u=>u.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(u,h)=>u.reduce((g,m)=>g+m.contentHeight.read(h)+this._spaceBetweenPx,0)),this.activeControl=Rt(this,u=>{var m,v;const h=(m=this._viewModel.read(u))==null?void 0:m.activeDiffItem.read(u);return h?(v=this._viewItemsInfo.read(u).getItem(h).template.read(u))==null?void 0:v.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new rH([Qi,this._contextKeyService]))),this._contextKeyService.createKey($e.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(Ef((u,h)=>{const g=this._viewModel.read(u);if(g&&g.contextKeys)for(const[m,v]of Object.entries(g.contextKeys)){const f=this._contextKeyService.createKey(m,void 0);f.set(v),h.add(Hn(()=>f.reset()))}}));const l=this._parentContextKeyService.createKey($e.multiDiffEditorAllCollapsed.key,!1);this._register(Oi(u=>{const h=this._viewModel.read(u);if(h){const g=h.items.read(u).every(m=>m.collapsed.read(u));l.set(g)}})),this._register(Oi(u=>{const h=this._dimension.read(u);this._sizeObserver.observe(h)}));const d=Rt(u=>{if(this._viewItems.read(u).length>0)return;const g=this._viewModel.read(u);return!g||g.isLoading.read(u)?U(145,"Loading..."):U(146,"No Changed Files")});this._register(Oi(u=>{const h=d.read(u);this._elements.placeholder.innerText=h??"",this._elements.placeholder.classList.toggle("visible",!!h)})),this._scrollableElements.content.style.position="relative",this._register(Oi(u=>{const h=this._sizeObserver.height.read(u);this._scrollableElements.root.style.height=`${h}px`;const g=this._totalHeight.read(u);this._scrollableElements.content.style.height=`${g}px`;const m=this._sizeObserver.width.read(u);let v=m;const f=this._viewItems.read(u),k=Met(f,qh(A=>A.maxScroll.read(u).maxScroll,T0));if(k){const A=k.maxScroll.read(u);v=m+A.maxScroll}this._scrollableElement.setScrollDimensions({width:m,height:h,scrollHeight:g,scrollWidth:v})})),t.replaceChildren(this._elements.root),this._register(Hn(()=>{t.replaceChildren()})),this._register(Oi(u=>{const h=this._viewModel.read(u);if(h&&!h.isLoading.read(u)){if(h.items.read(u).length===0||h.activeDiffItem.read(u))return;this.goToNextChange()}})),this._register(this._register(Oi(u=>{BG(h=>{this.render(u)})})))}reveal(t,n){var u;const r=this._viewItems.get(),o=r.findIndex(h=>{var g,m,v,f;return((g=h.viewModel.originalUri)==null?void 0:g.toString())===((m=t.original)==null?void 0:m.toString())&&((v=h.viewModel.modifiedUri)==null?void 0:v.toString())===((f=t.modified)==null?void 0:f.toString())});if(o===-1)throw new ui("Resource not found in diff editor");const s=r[o];this._viewModel.get().activeDiffItem.setCache(s.viewModel,void 0);let a=0;for(let h=0;hv.viewModel===r):-1;if(o===-1){this._goToFile(0,"first");return}const s=n[o];s.viewModel.collapsed.get()&&s.viewModel.collapsed.set(!1,void 0);const a=(u=s.template.get())==null?void 0:u.editor;if((g=(h=a==null?void 0:a.getDiffComputationResult())==null?void 0:h.changes2)!=null&&g.length){const v=((m=a.getModifiedEditor().getPosition())==null?void 0:m.lineNumber)||1,f=a.getDiffComputationResult().changes2;if(t==="next"?f.some(A=>A.modified.startLineNumber>v):f.some(A=>A.modified.endLineNumberExclusive<=v)){a.goToDiff(t);return}}const l=(o+(t==="next"?1:-1)+n.length)%n.length;this._goToFile(l,t==="next"?"first":"last")}_goToFile(t,n){var s,a,l;const r=this._viewItems.get()[t];r.viewModel.collapsed.get()&&r.viewModel.collapsed.set(!1,void 0),this.reveal({original:r.viewModel.originalUri,modified:r.viewModel.modifiedUri});const o=(s=r.template.get())==null?void 0:s.editor;if((l=(a=o==null?void 0:o.getDiffComputationResult())==null?void 0:a.changes2)!=null&&l.length)if(n==="first")o.revealFirstDiff();else{const d=o.getDiffComputationResult().changes2.at(-1),u=o.getModifiedEditor();u.setPosition({lineNumber:d.modified.startLineNumber,column:1}),u.revealLineInCenter(d.modified.startLineNumber)}o==null||o.focus()}render(t){const n=this.scrollTop.read(t);let r=0,o=0,s=0;const a=this._sizeObserver.height.read(t),l=Xn.ofStartAndLength(n,a),d=this._sizeObserver.width.read(t);for(const u of this._viewItems.read(t)){const h=u.contentHeight.read(t),g=Math.min(h,a),m=Xn.ofStartAndLength(o,g),v=Xn.ofStartAndLength(s,h);if(v.isBefore(l))r-=h-g,u.hide();else if(v.isAfter(l))u.hide();else{const f=Math.max(0,Math.min(l.start-v.start,h-g));r-=f;const k=Xn.ofStartAndLength(n+r,a);u.render(m,f,d,k)}o+=g+this._spaceBetweenPx,s+=h+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(n+r)}px)`}};Z$e=W6o([_St(4,Qi),_St(5,Yn)],Z$e);function V6o(e,t){const n=e.getModel(),r=e.createDecorationsCollection([{range:t,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{e.getModel()===n&&r.clear()},350)}class z6o extends ft{constructor(t,n,r,o){super(),this.viewModel=t,this._objectPool=n,this._scrollLeft=r,this._deltaScrollVertical=o,this._templateRef=this._register(YJe(this,void 0)),this.contentHeight=Rt(this,s=>{var a,l;return((l=(a=this._templateRef.read(s))==null?void 0:a.object.contentHeight)==null?void 0:l.read(s))??this.viewModel.lastTemplateData.read(s).contentHeight}),this.maxScroll=Rt(this,s=>{var a;return((a=this._templateRef.read(s))==null?void 0:a.object.maxScroll.read(s))??{maxScroll:0,scrollWidth:0}}),this.template=Rt(this,s=>{var a;return(a=this._templateRef.read(s))==null?void 0:a.object}),this._isHidden=Ti(this,!1),this._isFocused=Rt(this,s=>{var a;return((a=this.template.read(s))==null?void 0:a.isFocused.read(s))??!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Oi(s=>{var l;const a=this._scrollLeft.read(s);(l=this._templateRef.read(s))==null||l.object.setScrollLeft(a)})),this._register(Oi(s=>{const a=this._templateRef.read(s);!a||!this._isHidden.read(s)||a.object.isFocused.read(s)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var t;return`VirtualViewItem(${(t=this.viewModel.documentDiffItem.modified)==null?void 0:t.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(t,n){var a;this.viewModel.collapsed.set(t.collapsed,n),this._updateTemplateData(n);const r=this.viewModel.lastTemplateData.get(),o=(a=t.selections)==null?void 0:a.map(Qn.liftSelection);this.viewModel.lastTemplateData.set({...r,selections:o},n);const s=this._templateRef.get();s&&o&&s.object.editor.setSelections(o)}_updateTemplateData(t){const n=this._templateRef.get();n&&this.viewModel.lastTemplateData.set({contentHeight:n.object.contentHeight.get(),selections:n.object.editor.getSelections()??void 0},t)}_clear(){const t=this._templateRef.get();t&&la(n=>{this._updateTemplateData(n),t.object.hide(),this._templateRef.set(void 0,n)})}hide(){this._isHidden.set(!0,void 0)}render(t,n,r,o){this._isHidden.set(!1,void 0);let s=this._templateRef.get();if(!s){s=this._objectPool.getUnusedObj(new U6o(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(s,void 0);const a=this.viewModel.lastTemplateData.get().selections;a&&s.object.editor.setSelections(a)}s.object.render(t,r,n,o)}}var H6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},$6o=function(e,t){return function(n,r){t(n,r,e)}};let q$e=class extends ft{constructor(t,n,r){super(),this._element=t,this._workbenchUIElementFactory=n,this._instantiationService=r,this._dimension=Ti(this,void 0),this._viewModel=Ti(this,void 0),this._widgetImpl=Rt(this,o=>o.store.add(this._instantiationService.createInstance(A_(Z$e),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(KW(this._widgetImpl))}};q$e=H6o([$6o(2,Yn)],q$e);function X6o(e,t,n){return Hi.initialize(n||{}).createInstance(X$e,e,t)}function G6o(e){return Hi.get(yo).onCodeEditorAdd(n=>{e(n)})}function Y6o(e){return Hi.get(yo).onDiffEditorAdd(n=>{e(n)})}function Z6o(){return Hi.get(yo).listCodeEditors()}function q6o(){return Hi.get(yo).listDiffEditors()}function K6o(e,t,n){return Hi.initialize(n||{}).createInstance(G$e,e,t)}function J6o(e,t){const n=Hi.initialize(t||{});return new q$e(e,{},n)}function eEo(e){if(typeof e.id!="string"||typeof e.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return co.registerCommand(e.id,e.run)}function tEo(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const t=Ft.deserialize(e.precondition),n=(o,...s)=>$d.runEditorCommand(o,s,t,(a,l,d)=>Promise.resolve(e.run(l,...d))),r=new xt;if(r.add(co.registerCommand(e.id,n)),e.contextMenuGroupId){const o={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};r.add(Iu.appendMenuItem(Wn.EditorContext,o))}if(Array.isArray(e.keybindings)){const o=Hi.get(Do);if(!(o instanceof DV))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const s=Ft.and(t,Ft.deserialize(e.keybindingContext));r.add(o.addDynamicKeybindings(e.keybindings.map(a=>({keybinding:a,command:e.id,when:s}))))}}return r}function nEo(e){return PMn([e])}function PMn(e){const t=Hi.get(Do);return t instanceof DV?t.addDynamicKeybindings(e.map(n=>({keybinding:n.keybinding,command:n.command,commandArgs:n.commandArgs,when:Ft.deserialize(n.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ft.None)}function iEo(e,t,n){const r=Hi.get(nc),o=r.getLanguageIdByMimeType(t)||t;return MMn(Hi.get(ml),r,e,o,n)}function rEo(e,t){const n=Hi.get(nc),r=n.getLanguageIdByMimeType(t)||t||o2;e.setLanguage(n.createById(r))}function oEo(e,t,n){e&&Hi.get(nC).changeOne(t,e.uri,n)}function sEo(e){Hi.get(nC).changeAll(e,[])}function aEo(e){return Hi.get(nC).read(e)}function lEo(e){return Hi.get(nC).onMarkerChanged(e)}function cEo(e){return Hi.get(ml).getModel(e)}function dEo(){return Hi.get(ml).getModels()}function uEo(e){return Hi.get(ml).onModelAdded(e)}function hEo(e){return Hi.get(ml).onModelRemoved(e)}function fEo(e){return Hi.get(ml).onModelLanguageChanged(n=>{e({model:n.model,oldLanguage:n.oldLanguageId})})}function gEo(e){return b5o(Hi.get(ml),e)}function mEo(e,t){const n=Hi.get(nc),r=Hi.get(L2);return lit.colorizeElement(r,n,e,t).then(()=>{r.registerEditorContainer(e)})}function kEo(e,t,n){const r=Hi.get(nc);return Hi.get(L2).registerEditorContainer(Ls.document.body),lit.colorize(r,e,t,n)}function vEo(e,t,n=4){return Hi.get(L2).registerEditorContainer(Ls.document.body),lit.colorizeModelLine(e,t,n)}function AEo(e){const t=Hl.get(e);return t||{getInitialState:()=>hV,tokenize:(n,r,o)=>ttt(e,o)}}function pEo(e,t){Hl.getOrCreate(t);const n=AEo(t),r=P0(e),o=[];let s=n.getInitialState();for(let a=0,l=r.length;a{var l;if(!r)return null;const s=(l=n.options)==null?void 0:l.selection;let a;return s&&typeof s.endLineNumber=="number"&&typeof s.endColumn=="number"?a=s:s&&(a={lineNumber:s.startLineNumber,column:s.startColumn}),await e.openCodeEditor(r,n.resource,a)?r:null})}function SEo(){return{create:X6o,getEditors:Z6o,getDiffEditors:q6o,onDidCreateEditor:G6o,onDidCreateDiffEditor:Y6o,createDiffEditor:K6o,addCommand:eEo,addEditorAction:tEo,addKeybindingRule:nEo,addKeybindingRules:PMn,createModel:iEo,setModelLanguage:rEo,setModelMarkers:oEo,getModelMarkers:aEo,removeAllMarkers:sEo,onDidChangeMarkers:lEo,getModels:dEo,getModel:cEo,onDidCreateModel:uEo,onWillDisposeModel:hEo,onDidChangeModelLanguage:fEo,createWebWorker:gEo,colorizeElement:mEo,colorize:kEo,colorizeModelLine:vEo,tokenize:pEo,defineTheme:bEo,setTheme:wEo,remeasureFonts:OEo,registerCommand:yEo,registerLinkOpener:CEo,registerEditorOpener:_Eo,AccessibilitySupport:Xze,ContentWidgetPositionPreference:Jze,CursorChangeReason:eHe,DefaultEndOfLine:tHe,EditorAutoIndentStrategy:iHe,EditorOption:rHe,EndOfLinePreference:oHe,EndOfLineSequence:sHe,MinimapPosition:AHe,MinimapSectionHeaderStyle:pHe,MouseTargetType:bHe,OverlayWidgetPositionPreference:yHe,OverviewRulerLane:CHe,GlyphMarginLane:aHe,RenderLineNumbersType:LHe,RenderMinimap:xHe,ScrollbarVisibility:THe,ScrollType:EHe,TextEditorCursorBlinkingStyle:PHe,TextEditorCursorStyle:FHe,TrackedRangeStickiness:NHe,WrappingIndent:UHe,InjectedTextCursorStops:dHe,PositionAffinity:SHe,ShowLightbulbIconMode:DHe,TextDirection:MHe,ConfigurationChangedEvent:g7n,BareFontInfo:lR,FontInfo:jme,TextModelResolvedOptions:Jue,FindMatch:qK,ApplyUpdateResult:uZ,EditorZoom:Rv,createMultiFileDiffEditor:J6o,EditorType:Nie,EditorOptions:fg}}function LEo(e,t){if(!t||!Array.isArray(t))return!1;for(const n of t)if(!e(n))return!1;return!0}function xce(e,t){return typeof e=="boolean"?e:t}function SSt(e,t){return typeof e=="string"?e:t}function xEo(e){const t={};for(const n of e)t[n]=!0;return t}function LSt(e,t=!1){t&&(e=e.map(function(r){return r.toLowerCase()}));const n=xEo(e);return t?function(r){return n[r.toLowerCase()]!==void 0&&n.hasOwnProperty(r.toLowerCase())}:function(r){return n[r]!==void 0&&n.hasOwnProperty(r)}}function K$e(e,t,n){t=t.replace(/@@/g,"");let r=0,o;do o=!1,t=t.replace(/@(\w+)/g,function(a,l){o=!0;let d="";if(typeof e[l]=="string")d=e[l];else if(e[l]&&e[l]instanceof RegExp)d=e[l].source;else throw e[l]===void 0?Ra(e,"language definition does not contain attribute '"+l+"', used at: "+t):Ra(e,"attribute reference '"+l+"' must be a string, used at: "+t);return BT(d)?"":"(?:"+d+")"}),r++;while(o&&r<5);t=t.replace(/\x01/g,"@");const s=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(n&&t.match(/\$[sS](\d\d?)/g)){let l=null,d=null;return u=>(d&&l===u||(l=u,d=new RegExp(_5o(e,t,u),s)),d)}return new RegExp(t,s)}function EEo(e,t,n,r){if(r<0)return e;if(r=100){r=r-100;const o=n.split(".");if(o.unshift(n),r=0&&(r.tokenSubst=!0),typeof n.bracket=="string")if(n.bracket==="@open")r.bracket=1;else if(n.bracket==="@close")r.bracket=-1;else throw Ra(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t);if(n.next){if(typeof n.next!="string")throw Ra(e,"the next state must be a string value in rule: "+t);{let o=n.next;if(!/^(@pop|@push|@popall)$/.test(o)&&(o[0]==="@"&&(o=o.substr(1)),o.indexOf("$")<0&&!S5o(e,R5(e,o,"",[],""))))throw Ra(e,"the next state '"+n.next+"' is not defined in rule: "+t);r.next=o}}return typeof n.goBack=="number"&&(r.goBack=n.goBack),typeof n.switchTo=="string"&&(r.switchTo=n.switchTo),typeof n.log=="string"&&(r.log=n.log),typeof n.nextEmbedded=="string"&&(r.nextEmbedded=n.nextEmbedded,e.usesEmbedded=!0),r}}else if(Array.isArray(n)){const r=[];for(let o=0,s=n.length;o0&&r[0]==="^",this.name=this.name+": "+r,this.regex=K$e(t,"^(?:"+(this.matchOnlyAtLineStart?r.substr(1):r)+")",!0)}setAction(t,n){this.action=J$e(t,this.name,n)}resolveRegex(t){return this.regex instanceof RegExp?this.regex:this.regex(t)}}function FMn(e,t){if(!t||typeof t!="object")throw new Error("Monarch: expecting a language definition object");const n={languageId:e,includeLF:xce(t.includeLF,!1),noThrow:!1,maxStack:100,start:typeof t.start=="string"?t.start:null,ignoreCase:xce(t.ignoreCase,!1),unicode:xce(t.unicode,!1),tokenPostfix:SSt(t.tokenPostfix,"."+e),defaultToken:SSt(t.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},r=t;r.languageId=e,r.includeLF=n.includeLF,r.ignoreCase=n.ignoreCase,r.unicode=n.unicode,r.noThrow=n.noThrow,r.usesEmbedded=n.usesEmbedded,r.stateNames=t.tokenizer,r.defaultToken=n.defaultToken;function o(a,l,d){for(const u of d){let h=u.include;if(h){if(typeof h!="string")throw Ra(n,"an 'include' attribute must be a string at: "+a);if(h[0]==="@"&&(h=h.substr(1)),!t.tokenizer[h])throw Ra(n,"include target '"+h+"' is not defined at: "+a);o(a+"."+h,l,t.tokenizer[h])}else{const g=new QEo(a);if(Array.isArray(u)&&u.length>=1&&u.length<=3)if(g.setRegex(r,u[0]),u.length>=3)if(typeof u[1]=="string")g.setAction(r,{token:u[1],next:u[2]});else if(typeof u[1]=="object"){const m=u[1];m.next=u[2],g.setAction(r,m)}else throw Ra(n,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+a);else g.setAction(r,u[1]);else{if(!u.regex)throw Ra(n,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+a);u.name&&typeof u.name=="string"&&(g.name=u.name),u.matchOnlyAtStart&&(g.matchOnlyAtLineStart=xce(u.matchOnlyAtLineStart,!1)),g.setRegex(r,u.regex),g.setAction(r,u.action)}l.push(g)}}}if(!t.tokenizer||typeof t.tokenizer!="object")throw Ra(n,"a language definition must define the 'tokenizer' attribute as an object");n.tokenizer=[];for(const a in t.tokenizer)if(t.tokenizer.hasOwnProperty(a)){n.start||(n.start=a);const l=t.tokenizer[a];n.tokenizer[a]=new Array,o("tokenizer."+a,n.tokenizer[a],l)}if(n.usesEmbedded=r.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Ra(n,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const s=[];for(const a of t.brackets){let l=a;if(l&&Array.isArray(l)&&l.length===3&&(l={token:l[2],open:l[0],close:l[1]}),l.open===l.close)throw Ra(n,"open and close brackets in a 'brackets' attribute must be different: "+l.open+` +`}};U$e=rC([Pc(0,ar)],U$e);class E6o{publicLog2(){}}const Iq=class Iq{constructor(){const t=vi.from({scheme:Iq.SCHEME,authority:"model",path:"/"});this.workspace={id:MDn,folders:[new W2o({uri:t,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(t){return t&&t.scheme===Iq.SCHEME?this.workspace.folders[0]:null}};Iq.SCHEME="inmemory";let j$e=Iq;function Eke(e,t,n){if(!t||!(e instanceof xke))return;const r=[];Object.keys(t).forEach(o=>{avo(o)&&r.push([`editor.${o}`,t[o]]),n&&lvo(o)&&r.push([`diffEditor.${o}`,t[o]])}),r.length>0&&e.updateValues(r)}let W$e=class{constructor(t){this._modelService=t}hasPreviewHandler(){return!1}async apply(t,n){const r=Array.isArray(t)?t:Ptt.convert(t),o=new Map;for(const l of r){if(!(l instanceof N9))throw new Error("bad edit - only text edits are supported");const d=this._modelService.getModel(l.resource);if(!d)throw new Error("bad edit - model not found");if(typeof l.versionId=="number"&&d.getVersionId()!==l.versionId)throw new Error("bad state - model changed in the meantime");let u=o.get(d);u||(u=[],o.set(d,u)),u.push($l.replaceMove(Ee.lift(l.textEdit.range),l.textEdit.text))}let s=0,a=0;for(const[l,d]of o)l.pushStackElement(),l.pushEditOperations([],d,()=>[]),l.pushStackElement(),a+=1,s+=d.length;return{ariaSummary:oR(Rze.bulkEditServiceSummary,s,a),isApplied:s>0}}};W$e=rC([Pc(0,ml)],W$e);class T6o{getUriLabel(t,n){return t.scheme==="file"?t.fsPath:t.path}getUriBasenameLabel(t){return hA(t)}}let V$e=class extends $5o{constructor(t,n){super(t),this._codeEditorService=n}showContextView(t,n,r){if(!n){const o=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();o&&(n=o.getContainerDomNode())}return super.showContextView(t,n,r)}};V$e=rC([Pc(0,tC),Pc(1,yo)],V$e);class Q6o{constructor(){this._neverEmitter=new at,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class D6o extends r$e{constructor(){super()}}class B6o extends O6o{constructor(){super(new Mno)}}let z$e=class extends a$e{constructor(t,n,r,o,s,a){super(t,n,r,o,s,a),this.configure({blockMouse:!1})}};z$e=rC([Pc(0,Nf),Pc(1,ic),Pc(2,wL),Pc(3,Do),Pc(4,wA),Pc(5,Qi)],z$e);const R6o={esmModuleLocation:void 0,label:"editorWorkerService"};let H$e=class extends $He{constructor(t,n,r,o,s){super(R6o,t,n,r,o,s)}};H$e=rC([Pc(0,ml),Pc(1,W3e),Pc(2,va),Pc(3,kl),Pc(4,Nn)],H$e);class I6o{async playSignal(t,n){}}zr(va,B6o,0);zr(ar,xke,0);zr(W3e,N$e,0);zr(DIn,U$e,0);zr(H8,j$e,0);zr(TR,T6o,0);zr(Nf,E6o,0);zr(are,L6o,0);zr($tt,S6o,0);zr(ic,P$e,0);zr(nC,IT,0);zr(nc,D6o,0);zr(L2,Fxo,0);zr(ml,f$e,0);zr(ket,h$e,0);zr(Qi,R$e,0);zr(cQn,_6o,0);zr(V8,M$e,0);zr(Bg,_ko,0);zr(S1,H$e,0);zr(Yie,W$e,0);zr(zIn,Q6o,0);zr(Dg,I$e,0);zr(vh,T$e,0);zr(_A,Ipo,0);zr(ba,F$e,0);zr(Do,DV,0);zr(Rf,x$e,0);zr(wL,V$e,0);zr(OL,u$e,0);zr(U0,D$e,0);zr(S2,z$e,0);zr(wA,mje,0);zr(pL,I6o,0);zr(ntt,y6o,0);zr(PEn,Uno,0);zr(Int,qwo,0);var Hi;(function(e){const t=new rH;for(const[d,u]of Hbt())t.set(d,u);const n=new Lke(t,!0);t.set(Yn,n);function r(d){o||a({});const u=t.get(d);if(!u)throw new Error("Missing service "+d);return u instanceof hO?n.invokeFunction(h=>h.get(d)):u}e.get=r;let o=!1;const s=new at;function a(d){if(o)return n;o=!0;for(const[h,g]of Hbt())t.get(h)||t.set(h,g);for(const h in d)if(d.hasOwnProperty(h)){const g=Cr(h);t.get(g)instanceof hO&&t.set(g,d[h])}const u=Vvo();for(const h of u)try{n.createInstance(h)}catch(g){zi(g)}return s.fire(),n}e.initialize=a;function l(d){if(o)return d();const u=new xt,h=u.add(s.event(()=>{h.dispose(),u.add(d())}));return u}e.withServices=l})(Hi||(Hi={}));var M6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},wSt=function(e,t){return function(n,r){t(n,r,e)}},Qhe,xB;let $$e=(xB=class{constructor(t,n){this._configurationService=t,this._languageService=n}async renderCodeBlock(t,n,r){var h;const o=C3(r.context)?r.context:void 0;let s;t?s=this._languageService.getLanguageIdByLanguageName(t):o&&(s=(h=o.getModel())==null?void 0:h.getLanguageId()),s||(s=o2);const a=await jfo(this._languageService,n,s),l=Qhe._ttpTokenizer?Qhe._ttpTokenizer.createHTML(a)??a:a,d=document.createElement("span");d.innerHTML=l;const u=d.querySelector(".monaco-tokenized-source");return ec(u)?(Fu(u,this.getFontInfo(o)),d):document.createElement("span")}getFontInfo(t){return t?t.getOption(59):poo({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}},Qhe=xB,xB._ttpTokenizer=Jy("tokenizeToString",{createHTML(t){return t}}),xB);$$e=Qhe=M6o([wSt(0,ar),wSt(1,nc)],$$e);var fit=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},aa=function(e,t){return function(n,r){t(n,r,e)}};let P6o=0,OSt=!1;function F6o(e){if(!e){if(OSt)return;OSt=!0}tno(e||Ls.document.body)}let Tke=class extends gR{constructor(t,n,r,o,s,a,l,d,u,h,g,m,v,f){const k={...n};k.ariaLabel=k.ariaLabel||Dze.editorViewAccessibleLabel,super(t,k,{},r,o,s,a,u,h,g,m,v),d instanceof DV?this._standaloneKeybindingService=d:this._standaloneKeybindingService=null,F6o(k.ariaContainerElement),Lgo((A,p)=>r.createInstance(mV,A,{instantHover:p},{})),P1o(l),f.setDefaultCodeBlockRenderer(r.createInstance($$e))}addCommand(t,n,r){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const o="DYNAMIC_"+ ++P6o,s=Ft.deserialize(r);return this._standaloneKeybindingService.addDynamicKeybinding(o,t,n,s),o}createContextKey(t,n){return this._contextKeyService.createKey(t,n)}addAction(t){if(typeof t.id!="string"||typeof t.label!="string"||typeof t.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ft.None;const n=t.id,r=t.label,o=Ft.and(Ft.equals("editorId",this.getId()),Ft.deserialize(t.precondition)),s=t.keybindings,a=Ft.and(o,Ft.deserialize(t.keybindingContext)),l=t.contextMenuGroupId||null,d=t.contextMenuOrder||0,u=(v,...f)=>Promise.resolve(t.run(this,...f)),h=new xt,g=this.getId()+":"+n;if(h.add(uo.registerCommand(g,u)),l){const v={command:{id:g,title:r},when:o,group:l,order:d};h.add(Iu.appendMenuItem(Wn.EditorContext,v))}if(Array.isArray(s))for(const v of s)h.add(this._standaloneKeybindingService.addDynamicKeybinding(g,v,u,a));const m=new BTn(g,r,r,void 0,o,(...v)=>Promise.resolve(t.run(this,...v)),this._contextKeyService);return this._actions.set(n,m),h.add(Hn(()=>{this._actions.delete(n)})),h}_triggerCommand(t,n){if(this._codeEditorService instanceof vke)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(t,n)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(t,n)}};Tke=fit([aa(2,Yn),aa(3,yo),aa(4,ba),aa(5,Qi),aa(6,pm),aa(7,Do),aa(8,Dl),aa(9,ic),aa(10,vh),aa(11,kl),aa(12,Nn),aa(13,Cp)],Tke);let X$e=class extends Tke{constructor(t,n,r,o,s,a,l,d,u,h,g,m,v,f,k,A,p){const b={...n};Eke(g,b,!1);const w=u.registerEditorContainer(t);typeof b.theme=="string"&&u.setTheme(b.theme),typeof b.autoDetectHighContrast<"u"&&u.setAutoDetectHighContrast(!!b.autoDetectHighContrast);const O=b.model;delete b.model,super(t,b,r,o,s,a,l,d,u,h,m,k,A,p),this._configurationService=g,this._standaloneThemeService=u,this._register(w);let y;if(typeof O>"u"){const C=f.getLanguageIdByMimeType(b.language)||b.language||o2;y=MMn(v,f,b.value||"",C,void 0),this._ownsModel=!0}else y=O,this._ownsModel=!1;if(this._attachModel(y),y){const C={oldModelUrl:null,newModelUrl:y.uri};this._onDidChangeModel.fire(C)}}dispose(){super.dispose()}updateOptions(t){Eke(this._configurationService,t,!1),typeof t.theme=="string"&&this._standaloneThemeService.setTheme(t.theme),typeof t.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!t.autoDetectHighContrast),super.updateOptions(t)}_postDetachModelCleanup(t){super._postDetachModelCleanup(t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)}};X$e=fit([aa(2,Yn),aa(3,yo),aa(4,ba),aa(5,Qi),aa(6,pm),aa(7,Do),aa(8,L2),aa(9,ic),aa(10,ar),aa(11,vh),aa(12,ml),aa(13,nc),aa(14,kl),aa(15,Nn),aa(16,Cp)],X$e);let G$e=class extends Ey{constructor(t,n,r,o,s,a,l,d,u,h,g,m){const v={...n};Eke(d,v,!0);const f=a.registerEditorContainer(t);typeof v.theme=="string"&&a.setTheme(v.theme),typeof v.autoDetectHighContrast<"u"&&a.setAutoDetectHighContrast(!!v.autoDetectHighContrast),super(t,v,{},o,r,s,m,h),this._configurationService=d,this._standaloneThemeService=a,this._register(f)}dispose(){super.dispose()}updateOptions(t){Eke(this._configurationService,t,!0),typeof t.theme=="string"&&this._standaloneThemeService.setTheme(t.theme),typeof t.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!t.autoDetectHighContrast),super.updateOptions(t)}_createInnerEditor(t,n,r){return t.createInstance(Tke,n,r)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(t,n,r){return this.getModifiedEditor().addCommand(t,n,r)}createContextKey(t,n){return this.getModifiedEditor().createContextKey(t,n)}addAction(t){return this.getModifiedEditor().addAction(t)}};G$e=fit([aa(2,Yn),aa(3,Qi),aa(4,yo),aa(5,L2),aa(6,ic),aa(7,ar),aa(8,S2),aa(9,V8),aa(10,U0),aa(11,pL)],G$e);function MMn(e,t,n,r,o){if(n=n||"",!r){const s=n.indexOf(` +`);let a=n;return s!==-1&&(a=n.substring(0,s)),ySt(e,n,t.createByFilepathOrFirstLine(o||null,a),o)}return ySt(e,n,t.createById(r),o)}function ySt(e,t,n,r){return e.createModel(t,n,r)}Ve("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},U(142,"The background color of the diff editor's header"));Ve("multiDiffEditor.background",Oc,U(143,"The background color of the multi file diff editor"));Ve("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},U(144,"The border color of the multi file diff editor"));var N6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},CSt=function(e,t){return function(n,r){t(n,r,e)}};class U6o{constructor(t,n){this.viewModel=t,this.deltaScrollVertical=n}getId(){return this.viewModel}}let Y$e=class extends ft{constructor(t,n,r,o,s){super(),this._container=t,this._overflowWidgetsDomNode=n,this._workbenchUIElementFactory=r,this._instantiationService=o,this._viewModel=Ti(this,void 0),this._collapsed=Rt(this,d=>{var u;return(u=this._viewModel.read(d))==null?void 0:u.collapsed.read(d)}),this._editorContentHeight=Ti(this,500),this.contentHeight=Rt(this,d=>(this._collapsed.read(d)?0:this._editorContentHeight.read(d))+this._outerEditorHeight),this._modifiedContentWidth=Ti(this,0),this._modifiedWidth=Ti(this,0),this._originalContentWidth=Ti(this,0),this._originalWidth=Ti(this,0),this.maxScroll=Rt(this,d=>{const u=this._modifiedContentWidth.read(d)-this._modifiedWidth.read(d),h=this._originalContentWidth.read(d)-this._originalWidth.read(d);return u>h?{maxScroll:u,width:this._modifiedWidth.read(d)}:{maxScroll:h,width:this._originalWidth.read(d)}}),this._elements=wo("div.multiDiffEntry",[wo("div.header@header",[wo("div.header-content",[wo("div.collapse-button@collapseButton"),wo("div.file-path",[wo("div.title.modified.show-file-icons@primaryPath",[]),wo("div.status.deleted@status",["R"]),wo("div.title.original.show-file-icons@secondaryPath",[])]),wo("div.actions@actions")])]),wo("div.editorParent",[wo("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(Ey,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=hl(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=hl(this.editor.getOriginalEditor()).isFocused,this.isFocused=Rt(this,d=>this.isModifedFocused.read(d)||this.isOriginalFocused.read(d)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new xt),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const a=new z1e(this._elements.collapseButton,{});this._register(Oi(d=>{a.element.className="",a.icon=this._collapsed.read(d)?zt.chevronRight:zt.chevronDown})),this._register(a.onDidClick(()=>{var d;(d=this._viewModel.get())==null||d.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Oi(d=>{this._elements.editor.style.display=this._collapsed.read(d)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(d=>{const u=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(u,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(d=>{const u=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(u,void 0)})),this._register(this.editor.onDidContentSizeChange(d=>{BG(u=>{this._editorContentHeight.set(d.contentHeight,u),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),u),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),u)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(d=>{if(this._isSettingScrollTop||!d.scrollTopChanged||!this._data)return;const u=d.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(u)})),this._register(Oi(d=>{var h;const u=(h=this._viewModel.read(d))==null?void 0:h.isActive.read(d);this._elements.root.classList.toggle("active",u)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(s.createScoped(this._elements.actions));const l=this._register(this._instantiationService.createChild(new rH([Qi,this._contextKeyService])));this._register(l.createInstance(RJ,this._elements.actions,Wn.MultiDiffEditorFileToolbar,{actionRunner:this._register(new ODn(()=>{var d,u;return((d=this._viewModel.get())==null?void 0:d.modifiedUri)??((u=this._viewModel.get())==null?void 0:u.originalUri)})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:d=>d.startsWith("navigation")},actionViewItemProvider:(d,u)=>Itt(l,d,u)}))}setScrollLeft(t){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(t):this.editor.getOriginalEditor().setScrollLeft(t)}setData(t){this._data=t;function n(o){return{...o,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!t){BG(o=>{this._viewModel.set(void 0,o),this.editor.setDiffModel(null,o),this._dataStore.clear()});return}const r=t.viewModel.documentDiffItem;if(BG(o=>{var u,h;(u=this._resourceLabel)==null||u.setUri(t.viewModel.modifiedUri??t.viewModel.originalUri,{strikethrough:t.viewModel.modifiedUri===void 0});let s=!1,a=!1,l=!1,d="";t.viewModel.modifiedUri&&t.viewModel.originalUri&&t.viewModel.modifiedUri.path!==t.viewModel.originalUri.path?(d="R",s=!0):t.viewModel.modifiedUri?t.viewModel.originalUri||(d="A",l=!0):(d="D",a=!0),this._elements.status.classList.toggle("renamed",s),this._elements.status.classList.toggle("deleted",a),this._elements.status.classList.toggle("added",l),this._elements.status.innerText=d,(h=this._resourceLabel2)==null||h.setUri(s?t.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(t.viewModel,o),this.editor.setDiffModel(t.viewModel.diffEditorViewModelRef,o),this.editor.updateOptions(n(r.options??{}))}),r.onOptionsDidChange&&this._dataStore.add(r.onOptionsDidChange(()=>{this.editor.updateOptions(n(r.options??{}))})),t.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,o=>{o||this.setData(void 0)}),t.viewModel.documentDiffItem.contextKeys)for(const[o,s]of Object.entries(t.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(o,s)}render(t,n,r,o){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${t.start}px`,this._elements.root.style.height=`${t.length}px`,this._elements.root.style.width=`${n}px`,this._elements.root.style.position="absolute";const s=t.length-this._headerHeight,a=Math.max(0,Math.min(o.start-t.start,s));this._elements.header.style.transform=`translateY(${a}px)`,BG(l=>{this.editor.layout({width:n-2*8-2*1,height:t.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=r,this.editor.getOriginalEditor().setScrollTop(r)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",a>0||r>0),this._elements.header.classList.toggle("collapsed",a===s)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};Y$e=N6o([CSt(3,Yn),CSt(4,Qi)],Y$e);class j6o{constructor(t){this._create=t,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(t){let n;if(this._unused.size===0)n=this._create(t),this._itemData.set(n,t);else{const r=[...this._unused.values()];n=r.find(o=>this._itemData.get(o).getId()===t.getId())??r[0],this._unused.delete(n),this._itemData.set(n,t),n.setData(t)}return this._used.add(n),{object:n,dispose:()=>{this._used.delete(n),this._unused.size>5?n.dispose():this._unused.add(n)}}}dispose(){for(const t of this._used)t.dispose();for(const t of this._unused)t.dispose();this._used.clear(),this._unused.clear()}}var W6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},_St=function(e,t){return function(n,r){t(n,r,e)}};let Z$e=class extends ft{constructor(t,n,r,o,s,a){super(),this._element=t,this._dimension=n,this._viewModel=r,this._workbenchUIElementFactory=o,this._parentContextKeyService=s,this._parentInstantiationService=a,this._scrollableElements=wo("div.scrollContent",[wo("div@content",{style:{overflow:"hidden"}}),wo("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new nH({forceIntegerValues:!1,scheduleAtNextAnimationFrame:u=>A1(ii(this._element),u),smoothScrollDuration:100})),this._scrollableElement=this._register(new Jbe(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=wo("div.monaco-component.multiDiffEditor",{},[wo("div",{},[this._scrollableElement.getDomNode()]),wo("div.placeholder@placeholder",{},[wo("div")])]),this._sizeObserver=this._register(new nDn(this._element,void 0)),this._objectPool=this._register(new j6o(u=>{const h=this._instantiationService.createInstance(Y$e,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return h.setData(u),h})),this.scrollTop=Ko(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=Ko(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=Rt(this,u=>{const h=this._viewModel.read(u);if(!h)return{items:[],getItem:f=>{throw new ui}};const g=h.items.read(u),m=new Map;return{items:g.map(f=>{var p;const k=u.store.add(new z6o(f,this._objectPool,this.scrollLeft,b=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+b})})),A=(p=this._lastDocStates)==null?void 0:p[k.getKey()];return A&&la(b=>{k.setViewState(A,b)}),m.set(f,k),k}),getItem:f=>m.get(f)}}),this._viewItems=this._viewItemsInfo.map(this,u=>u.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(u,h)=>u.reduce((g,m)=>g+m.contentHeight.read(h)+this._spaceBetweenPx,0)),this.activeControl=Rt(this,u=>{var m,v;const h=(m=this._viewModel.read(u))==null?void 0:m.activeDiffItem.read(u);return h?(v=this._viewItemsInfo.read(u).getItem(h).template.read(u))==null?void 0:v.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new rH([Qi,this._contextKeyService]))),this._contextKeyService.createKey($e.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(Ef((u,h)=>{const g=this._viewModel.read(u);if(g&&g.contextKeys)for(const[m,v]of Object.entries(g.contextKeys)){const f=this._contextKeyService.createKey(m,void 0);f.set(v),h.add(Hn(()=>f.reset()))}}));const l=this._parentContextKeyService.createKey($e.multiDiffEditorAllCollapsed.key,!1);this._register(Oi(u=>{const h=this._viewModel.read(u);if(h){const g=h.items.read(u).every(m=>m.collapsed.read(u));l.set(g)}})),this._register(Oi(u=>{const h=this._dimension.read(u);this._sizeObserver.observe(h)}));const d=Rt(u=>{if(this._viewItems.read(u).length>0)return;const g=this._viewModel.read(u);return!g||g.isLoading.read(u)?U(145,"Loading..."):U(146,"No Changed Files")});this._register(Oi(u=>{const h=d.read(u);this._elements.placeholder.innerText=h??"",this._elements.placeholder.classList.toggle("visible",!!h)})),this._scrollableElements.content.style.position="relative",this._register(Oi(u=>{const h=this._sizeObserver.height.read(u);this._scrollableElements.root.style.height=`${h}px`;const g=this._totalHeight.read(u);this._scrollableElements.content.style.height=`${g}px`;const m=this._sizeObserver.width.read(u);let v=m;const f=this._viewItems.read(u),k=Met(f,qh(A=>A.maxScroll.read(u).maxScroll,T0));if(k){const A=k.maxScroll.read(u);v=m+A.maxScroll}this._scrollableElement.setScrollDimensions({width:m,height:h,scrollHeight:g,scrollWidth:v})})),t.replaceChildren(this._elements.root),this._register(Hn(()=>{t.replaceChildren()})),this._register(Oi(u=>{const h=this._viewModel.read(u);if(h&&!h.isLoading.read(u)){if(h.items.read(u).length===0||h.activeDiffItem.read(u))return;this.goToNextChange()}})),this._register(this._register(Oi(u=>{BG(h=>{this.render(u)})})))}reveal(t,n){var u;const r=this._viewItems.get(),o=r.findIndex(h=>{var g,m,v,f;return((g=h.viewModel.originalUri)==null?void 0:g.toString())===((m=t.original)==null?void 0:m.toString())&&((v=h.viewModel.modifiedUri)==null?void 0:v.toString())===((f=t.modified)==null?void 0:f.toString())});if(o===-1)throw new ui("Resource not found in diff editor");const s=r[o];this._viewModel.get().activeDiffItem.setCache(s.viewModel,void 0);let a=0;for(let h=0;hv.viewModel===r):-1;if(o===-1){this._goToFile(0,"first");return}const s=n[o];s.viewModel.collapsed.get()&&s.viewModel.collapsed.set(!1,void 0);const a=(u=s.template.get())==null?void 0:u.editor;if((g=(h=a==null?void 0:a.getDiffComputationResult())==null?void 0:h.changes2)!=null&&g.length){const v=((m=a.getModifiedEditor().getPosition())==null?void 0:m.lineNumber)||1,f=a.getDiffComputationResult().changes2;if(t==="next"?f.some(A=>A.modified.startLineNumber>v):f.some(A=>A.modified.endLineNumberExclusive<=v)){a.goToDiff(t);return}}const l=(o+(t==="next"?1:-1)+n.length)%n.length;this._goToFile(l,t==="next"?"first":"last")}_goToFile(t,n){var s,a,l;const r=this._viewItems.get()[t];r.viewModel.collapsed.get()&&r.viewModel.collapsed.set(!1,void 0),this.reveal({original:r.viewModel.originalUri,modified:r.viewModel.modifiedUri});const o=(s=r.template.get())==null?void 0:s.editor;if((l=(a=o==null?void 0:o.getDiffComputationResult())==null?void 0:a.changes2)!=null&&l.length)if(n==="first")o.revealFirstDiff();else{const d=o.getDiffComputationResult().changes2.at(-1),u=o.getModifiedEditor();u.setPosition({lineNumber:d.modified.startLineNumber,column:1}),u.revealLineInCenter(d.modified.startLineNumber)}o==null||o.focus()}render(t){const n=this.scrollTop.read(t);let r=0,o=0,s=0;const a=this._sizeObserver.height.read(t),l=Xn.ofStartAndLength(n,a),d=this._sizeObserver.width.read(t);for(const u of this._viewItems.read(t)){const h=u.contentHeight.read(t),g=Math.min(h,a),m=Xn.ofStartAndLength(o,g),v=Xn.ofStartAndLength(s,h);if(v.isBefore(l))r-=h-g,u.hide();else if(v.isAfter(l))u.hide();else{const f=Math.max(0,Math.min(l.start-v.start,h-g));r-=f;const k=Xn.ofStartAndLength(n+r,a);u.render(m,f,d,k)}o+=g+this._spaceBetweenPx,s+=h+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(n+r)}px)`}};Z$e=W6o([_St(4,Qi),_St(5,Yn)],Z$e);function V6o(e,t){const n=e.getModel(),r=e.createDecorationsCollection([{range:t,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{e.getModel()===n&&r.clear()},350)}class z6o extends ft{constructor(t,n,r,o){super(),this.viewModel=t,this._objectPool=n,this._scrollLeft=r,this._deltaScrollVertical=o,this._templateRef=this._register(YJe(this,void 0)),this.contentHeight=Rt(this,s=>{var a,l;return((l=(a=this._templateRef.read(s))==null?void 0:a.object.contentHeight)==null?void 0:l.read(s))??this.viewModel.lastTemplateData.read(s).contentHeight}),this.maxScroll=Rt(this,s=>{var a;return((a=this._templateRef.read(s))==null?void 0:a.object.maxScroll.read(s))??{maxScroll:0,scrollWidth:0}}),this.template=Rt(this,s=>{var a;return(a=this._templateRef.read(s))==null?void 0:a.object}),this._isHidden=Ti(this,!1),this._isFocused=Rt(this,s=>{var a;return((a=this.template.read(s))==null?void 0:a.isFocused.read(s))??!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Oi(s=>{var l;const a=this._scrollLeft.read(s);(l=this._templateRef.read(s))==null||l.object.setScrollLeft(a)})),this._register(Oi(s=>{const a=this._templateRef.read(s);!a||!this._isHidden.read(s)||a.object.isFocused.read(s)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var t;return`VirtualViewItem(${(t=this.viewModel.documentDiffItem.modified)==null?void 0:t.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(t,n){var a;this.viewModel.collapsed.set(t.collapsed,n),this._updateTemplateData(n);const r=this.viewModel.lastTemplateData.get(),o=(a=t.selections)==null?void 0:a.map(Qn.liftSelection);this.viewModel.lastTemplateData.set({...r,selections:o},n);const s=this._templateRef.get();s&&o&&s.object.editor.setSelections(o)}_updateTemplateData(t){const n=this._templateRef.get();n&&this.viewModel.lastTemplateData.set({contentHeight:n.object.contentHeight.get(),selections:n.object.editor.getSelections()??void 0},t)}_clear(){const t=this._templateRef.get();t&&la(n=>{this._updateTemplateData(n),t.object.hide(),this._templateRef.set(void 0,n)})}hide(){this._isHidden.set(!0,void 0)}render(t,n,r,o){this._isHidden.set(!1,void 0);let s=this._templateRef.get();if(!s){s=this._objectPool.getUnusedObj(new U6o(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(s,void 0);const a=this.viewModel.lastTemplateData.get().selections;a&&s.object.editor.setSelections(a)}s.object.render(t,r,n,o)}}var H6o=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(s=(o<3?a(s):o>3?a(t,n,s):a(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},$6o=function(e,t){return function(n,r){t(n,r,e)}};let q$e=class extends ft{constructor(t,n,r){super(),this._element=t,this._workbenchUIElementFactory=n,this._instantiationService=r,this._dimension=Ti(this,void 0),this._viewModel=Ti(this,void 0),this._widgetImpl=Rt(this,o=>o.store.add(this._instantiationService.createInstance(A_(Z$e),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(KW(this._widgetImpl))}};q$e=H6o([$6o(2,Yn)],q$e);function X6o(e,t,n){return Hi.initialize(n||{}).createInstance(X$e,e,t)}function G6o(e){return Hi.get(yo).onCodeEditorAdd(n=>{e(n)})}function Y6o(e){return Hi.get(yo).onDiffEditorAdd(n=>{e(n)})}function Z6o(){return Hi.get(yo).listCodeEditors()}function q6o(){return Hi.get(yo).listDiffEditors()}function K6o(e,t,n){return Hi.initialize(n||{}).createInstance(G$e,e,t)}function J6o(e,t){const n=Hi.initialize(t||{});return new q$e(e,{},n)}function eEo(e){if(typeof e.id!="string"||typeof e.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return uo.registerCommand(e.id,e.run)}function tEo(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const t=Ft.deserialize(e.precondition),n=(o,...s)=>$d.runEditorCommand(o,s,t,(a,l,d)=>Promise.resolve(e.run(l,...d))),r=new xt;if(r.add(uo.registerCommand(e.id,n)),e.contextMenuGroupId){const o={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};r.add(Iu.appendMenuItem(Wn.EditorContext,o))}if(Array.isArray(e.keybindings)){const o=Hi.get(Do);if(!(o instanceof DV))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const s=Ft.and(t,Ft.deserialize(e.keybindingContext));r.add(o.addDynamicKeybindings(e.keybindings.map(a=>({keybinding:a,command:e.id,when:s}))))}}return r}function nEo(e){return PMn([e])}function PMn(e){const t=Hi.get(Do);return t instanceof DV?t.addDynamicKeybindings(e.map(n=>({keybinding:n.keybinding,command:n.command,commandArgs:n.commandArgs,when:Ft.deserialize(n.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ft.None)}function iEo(e,t,n){const r=Hi.get(nc),o=r.getLanguageIdByMimeType(t)||t;return MMn(Hi.get(ml),r,e,o,n)}function rEo(e,t){const n=Hi.get(nc),r=n.getLanguageIdByMimeType(t)||t||o2;e.setLanguage(n.createById(r))}function oEo(e,t,n){e&&Hi.get(nC).changeOne(t,e.uri,n)}function sEo(e){Hi.get(nC).changeAll(e,[])}function aEo(e){return Hi.get(nC).read(e)}function lEo(e){return Hi.get(nC).onMarkerChanged(e)}function cEo(e){return Hi.get(ml).getModel(e)}function dEo(){return Hi.get(ml).getModels()}function uEo(e){return Hi.get(ml).onModelAdded(e)}function hEo(e){return Hi.get(ml).onModelRemoved(e)}function fEo(e){return Hi.get(ml).onModelLanguageChanged(n=>{e({model:n.model,oldLanguage:n.oldLanguageId})})}function gEo(e){return b5o(Hi.get(ml),e)}function mEo(e,t){const n=Hi.get(nc),r=Hi.get(L2);return lit.colorizeElement(r,n,e,t).then(()=>{r.registerEditorContainer(e)})}function kEo(e,t,n){const r=Hi.get(nc);return Hi.get(L2).registerEditorContainer(Ls.document.body),lit.colorize(r,e,t,n)}function vEo(e,t,n=4){return Hi.get(L2).registerEditorContainer(Ls.document.body),lit.colorizeModelLine(e,t,n)}function AEo(e){const t=Hl.get(e);return t||{getInitialState:()=>hV,tokenize:(n,r,o)=>ttt(e,o)}}function pEo(e,t){Hl.getOrCreate(t);const n=AEo(t),r=P0(e),o=[];let s=n.getInitialState();for(let a=0,l=r.length;a{var l;if(!r)return null;const s=(l=n.options)==null?void 0:l.selection;let a;return s&&typeof s.endLineNumber=="number"&&typeof s.endColumn=="number"?a=s:s&&(a={lineNumber:s.startLineNumber,column:s.startColumn}),await e.openCodeEditor(r,n.resource,a)?r:null})}function SEo(){return{create:X6o,getEditors:Z6o,getDiffEditors:q6o,onDidCreateEditor:G6o,onDidCreateDiffEditor:Y6o,createDiffEditor:K6o,addCommand:eEo,addEditorAction:tEo,addKeybindingRule:nEo,addKeybindingRules:PMn,createModel:iEo,setModelLanguage:rEo,setModelMarkers:oEo,getModelMarkers:aEo,removeAllMarkers:sEo,onDidChangeMarkers:lEo,getModels:dEo,getModel:cEo,onDidCreateModel:uEo,onWillDisposeModel:hEo,onDidChangeModelLanguage:fEo,createWebWorker:gEo,colorizeElement:mEo,colorize:kEo,colorizeModelLine:vEo,tokenize:pEo,defineTheme:bEo,setTheme:wEo,remeasureFonts:OEo,registerCommand:yEo,registerLinkOpener:CEo,registerEditorOpener:_Eo,AccessibilitySupport:Xze,ContentWidgetPositionPreference:Jze,CursorChangeReason:eHe,DefaultEndOfLine:tHe,EditorAutoIndentStrategy:iHe,EditorOption:rHe,EndOfLinePreference:oHe,EndOfLineSequence:sHe,MinimapPosition:AHe,MinimapSectionHeaderStyle:pHe,MouseTargetType:bHe,OverlayWidgetPositionPreference:yHe,OverviewRulerLane:CHe,GlyphMarginLane:aHe,RenderLineNumbersType:LHe,RenderMinimap:xHe,ScrollbarVisibility:THe,ScrollType:EHe,TextEditorCursorBlinkingStyle:PHe,TextEditorCursorStyle:FHe,TrackedRangeStickiness:NHe,WrappingIndent:UHe,InjectedTextCursorStops:dHe,PositionAffinity:SHe,ShowLightbulbIconMode:DHe,TextDirection:MHe,ConfigurationChangedEvent:g7n,BareFontInfo:lR,FontInfo:jme,TextModelResolvedOptions:Jue,FindMatch:qK,ApplyUpdateResult:uZ,EditorZoom:Rv,createMultiFileDiffEditor:J6o,EditorType:Nie,EditorOptions:fg}}function LEo(e,t){if(!t||!Array.isArray(t))return!1;for(const n of t)if(!e(n))return!1;return!0}function xce(e,t){return typeof e=="boolean"?e:t}function SSt(e,t){return typeof e=="string"?e:t}function xEo(e){const t={};for(const n of e)t[n]=!0;return t}function LSt(e,t=!1){t&&(e=e.map(function(r){return r.toLowerCase()}));const n=xEo(e);return t?function(r){return n[r.toLowerCase()]!==void 0&&n.hasOwnProperty(r.toLowerCase())}:function(r){return n[r]!==void 0&&n.hasOwnProperty(r)}}function K$e(e,t,n){t=t.replace(/@@/g,"");let r=0,o;do o=!1,t=t.replace(/@(\w+)/g,function(a,l){o=!0;let d="";if(typeof e[l]=="string")d=e[l];else if(e[l]&&e[l]instanceof RegExp)d=e[l].source;else throw e[l]===void 0?Ra(e,"language definition does not contain attribute '"+l+"', used at: "+t):Ra(e,"attribute reference '"+l+"' must be a string, used at: "+t);return BT(d)?"":"(?:"+d+")"}),r++;while(o&&r<5);t=t.replace(/\x01/g,"@");const s=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(n&&t.match(/\$[sS](\d\d?)/g)){let l=null,d=null;return u=>(d&&l===u||(l=u,d=new RegExp(_5o(e,t,u),s)),d)}return new RegExp(t,s)}function EEo(e,t,n,r){if(r<0)return e;if(r=100){r=r-100;const o=n.split(".");if(o.unshift(n),r=0&&(r.tokenSubst=!0),typeof n.bracket=="string")if(n.bracket==="@open")r.bracket=1;else if(n.bracket==="@close")r.bracket=-1;else throw Ra(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t);if(n.next){if(typeof n.next!="string")throw Ra(e,"the next state must be a string value in rule: "+t);{let o=n.next;if(!/^(@pop|@push|@popall)$/.test(o)&&(o[0]==="@"&&(o=o.substr(1)),o.indexOf("$")<0&&!S5o(e,R5(e,o,"",[],""))))throw Ra(e,"the next state '"+n.next+"' is not defined in rule: "+t);r.next=o}}return typeof n.goBack=="number"&&(r.goBack=n.goBack),typeof n.switchTo=="string"&&(r.switchTo=n.switchTo),typeof n.log=="string"&&(r.log=n.log),typeof n.nextEmbedded=="string"&&(r.nextEmbedded=n.nextEmbedded,e.usesEmbedded=!0),r}}else if(Array.isArray(n)){const r=[];for(let o=0,s=n.length;o0&&r[0]==="^",this.name=this.name+": "+r,this.regex=K$e(t,"^(?:"+(this.matchOnlyAtLineStart?r.substr(1):r)+")",!0)}setAction(t,n){this.action=J$e(t,this.name,n)}resolveRegex(t){return this.regex instanceof RegExp?this.regex:this.regex(t)}}function FMn(e,t){if(!t||typeof t!="object")throw new Error("Monarch: expecting a language definition object");const n={languageId:e,includeLF:xce(t.includeLF,!1),noThrow:!1,maxStack:100,start:typeof t.start=="string"?t.start:null,ignoreCase:xce(t.ignoreCase,!1),unicode:xce(t.unicode,!1),tokenPostfix:SSt(t.tokenPostfix,"."+e),defaultToken:SSt(t.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},r=t;r.languageId=e,r.includeLF=n.includeLF,r.ignoreCase=n.ignoreCase,r.unicode=n.unicode,r.noThrow=n.noThrow,r.usesEmbedded=n.usesEmbedded,r.stateNames=t.tokenizer,r.defaultToken=n.defaultToken;function o(a,l,d){for(const u of d){let h=u.include;if(h){if(typeof h!="string")throw Ra(n,"an 'include' attribute must be a string at: "+a);if(h[0]==="@"&&(h=h.substr(1)),!t.tokenizer[h])throw Ra(n,"include target '"+h+"' is not defined at: "+a);o(a+"."+h,l,t.tokenizer[h])}else{const g=new QEo(a);if(Array.isArray(u)&&u.length>=1&&u.length<=3)if(g.setRegex(r,u[0]),u.length>=3)if(typeof u[1]=="string")g.setAction(r,{token:u[1],next:u[2]});else if(typeof u[1]=="object"){const m=u[1];m.next=u[2],g.setAction(r,m)}else throw Ra(n,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+a);else g.setAction(r,u[1]);else{if(!u.regex)throw Ra(n,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+a);u.name&&typeof u.name=="string"&&(g.name=u.name),u.matchOnlyAtStart&&(g.matchOnlyAtLineStart=xce(u.matchOnlyAtLineStart,!1)),g.setRegex(r,u.regex),g.setAction(r,u.action)}l.push(g)}}}if(!t.tokenizer||typeof t.tokenizer!="object")throw Ra(n,"a language definition must define the 'tokenizer' attribute as an object");n.tokenizer=[];for(const a in t.tokenizer)if(t.tokenizer.hasOwnProperty(a)){n.start||(n.start=a);const l=t.tokenizer[a];n.tokenizer[a]=new Array,o("tokenizer."+a,n.tokenizer[a],l)}if(n.usesEmbedded=r.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Ra(n,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const s=[];for(const a of t.brackets){let l=a;if(l&&Array.isArray(l)&&l.length===3&&(l={token:l[2],open:l[0],close:l[1]}),l.open===l.close)throw Ra(n,"open and close brackets in a 'brackets' attribute must be different: "+l.open+` hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof l.open=="string"&&typeof l.token=="string"&&typeof l.close=="string")s.push({token:l.token+n.tokenPostfix,open:a8(n,l.open),close:a8(n,l.close)});else throw Ra(n,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return n.brackets=s,n.noThrow=!0,n}function DEo(e){eV.registerLanguage(e)}function BEo(){let e=[];return e=e.concat(eV.getLanguages()),e}function REo(e){return Hi.get(nc).languageIdCodec.encodeLanguageId(e)}function IEo(e,t){return Hi.withServices(()=>{const r=Hi.get(nc).onDidRequestRichLanguageFeatures(o=>{o===e&&(r.dispose(),t())});return r})}function MEo(e,t){return Hi.withServices(()=>{const r=Hi.get(nc).onDidRequestBasicLanguageFeatures(o=>{o===e&&(r.dispose(),t())});return r})}function PEo(e,t){if(!Hi.get(nc).isRegisteredLanguageId(e))throw new Error(`Cannot set configuration for unknown language ${e}`);return Hi.get(kl).register(e,t,100)}class FEo{constructor(t,n){this._languageId=t,this._actual=n}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(t,n,r){if(typeof this._actual.tokenize=="function")return Lee.adaptTokenize(this._languageId,this._actual,t,r);throw new Error("Not supported!")}tokenizeEncoded(t,n,r){const o=this._actual.tokenizeEncoded(t,r);return new i3e(o.tokens,o.endState)}}class Lee{constructor(t,n,r,o){this._languageId=t,this._actual=n,this._languageService=r,this._standaloneThemeService=o}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(t,n){const r=[];let o=0;for(let s=0,a=t.length;s0&&s[a-1]===m)continue;let v=g.startIndex;u===0?v=0:v{const r=await Promise.resolve(t.create());return r?NEo(r)?UMn(e,r):new bee(Hi.get(nc),Hi.get(L2),e,FMn(e,r),Hi.get(ar)):null});return Hl.registerFactory(e,n)}function WEo(e,t){if(!Hi.get(nc).isRegisteredLanguageId(e))throw new Error(`Cannot set tokens provider for unknown language ${e}`);return NMn(t)?git(e,{create:()=>t}):Hl.register(e,UMn(e,t))}function VEo(e,t){const n=r=>new bee(Hi.get(nc),Hi.get(L2),e,FMn(e,r),Hi.get(ar));return NMn(t)?git(e,{create:()=>t}):Hl.register(e,n(t))}function zEo(e,t){return Hi.get(Nn).referenceProvider.register(e,t)}function HEo(e,t){return Hi.get(Nn).renameProvider.register(e,t)}function $Eo(e,t){return Hi.get(Nn).newSymbolNamesProvider.register(e,t)}function XEo(e,t){return Hi.get(Nn).signatureHelpProvider.register(e,t)}function GEo(e,t){return Hi.get(Nn).hoverProvider.register(e,{provideHover:async(r,o,s,a)=>{const l=r.getWordAtPosition(o);return Promise.resolve(t.provideHover(r,o,s,a)).then(d=>{if(d)return!d.range&&l&&(d.range=new Ee(o.lineNumber,l.startColumn,o.lineNumber,l.endColumn)),d.range||(d.range=new Ee(o.lineNumber,o.column,o.lineNumber,o.column)),d})}})}function YEo(e,t){return Hi.get(Nn).documentSymbolProvider.register(e,t)}function ZEo(e,t){return Hi.get(Nn).documentHighlightProvider.register(e,t)}function qEo(e,t){return Hi.get(Nn).linkedEditingRangeProvider.register(e,t)}function KEo(e,t){return Hi.get(Nn).definitionProvider.register(e,t)}function JEo(e,t){return Hi.get(Nn).implementationProvider.register(e,t)}function e7o(e,t){return Hi.get(Nn).typeDefinitionProvider.register(e,t)}function t7o(e,t){return Hi.get(Nn).codeLensProvider.register(e,t)}function n7o(e,t,n){return Hi.get(Nn).codeActionProvider.register(e,{providedCodeActionKinds:n==null?void 0:n.providedCodeActionKinds,documentation:n==null?void 0:n.documentation,provideCodeActions:(o,s,a,l)=>{const u=Hi.get(nC).read({resource:o.uri}).filter(h=>Ee.areIntersectingOrTouching(h,s));return t.provideCodeActions(o,s,{markers:u,only:a.only,trigger:a.trigger},l)},resolveCodeAction:t.resolveCodeAction})}function i7o(e,t){return Hi.get(Nn).documentFormattingEditProvider.register(e,t)}function r7o(e,t){return Hi.get(Nn).documentRangeFormattingEditProvider.register(e,t)}function o7o(e,t){return Hi.get(Nn).onTypeFormattingEditProvider.register(e,t)}function s7o(e,t){return Hi.get(Nn).linkProvider.register(e,t)}function a7o(e,t){return Hi.get(Nn).completionProvider.register(e,t)}function l7o(e,t){return Hi.get(Nn).colorProvider.register(e,t)}function c7o(e,t){return Hi.get(Nn).foldingRangeProvider.register(e,t)}function d7o(e,t){return Hi.get(Nn).declarationProvider.register(e,t)}function u7o(e,t){return Hi.get(Nn).selectionRangeProvider.register(e,t)}function h7o(e,t){return Hi.get(Nn).documentSemanticTokensProvider.register(e,t)}function f7o(e,t){return Hi.get(Nn).documentRangeSemanticTokensProvider.register(e,t)}function g7o(e,t){return Hi.get(Nn).inlineCompletionsProvider.register(e,t)}function m7o(e,t){return Hi.get(Nn).inlayHintsProvider.register(e,t)}function k7o(){return{register:DEo,getLanguages:BEo,onLanguage:IEo,onLanguageEncountered:MEo,getEncodedLanguageId:REo,setLanguageConfiguration:PEo,setColorMap:jEo,registerTokensProviderFactory:git,setTokensProvider:WEo,setMonarchTokensProvider:VEo,registerReferenceProvider:zEo,registerRenameProvider:HEo,registerNewSymbolNameProvider:$Eo,registerCompletionItemProvider:a7o,registerSignatureHelpProvider:XEo,registerHoverProvider:GEo,registerDocumentSymbolProvider:YEo,registerDocumentHighlightProvider:ZEo,registerLinkedEditingRangeProvider:qEo,registerDefinitionProvider:KEo,registerImplementationProvider:JEo,registerTypeDefinitionProvider:e7o,registerCodeLensProvider:t7o,registerCodeActionProvider:n7o,registerDocumentFormattingEditProvider:i7o,registerDocumentRangeFormattingEditProvider:r7o,registerOnTypeFormattingEditProvider:o7o,registerLinkProvider:s7o,registerColorProvider:l7o,registerFoldingRangeProvider:c7o,registerDeclarationProvider:d7o,registerSelectionRangeProvider:u7o,registerDocumentSemanticTokensProvider:h7o,registerDocumentRangeSemanticTokensProvider:f7o,registerInlineCompletionsProvider:g7o,registerInlayHintsProvider:m7o,DocumentHighlightKind:nHe,CompletionItemKind:Zze,CompletionItemTag:qze,CompletionItemInsertTextRule:Yze,SymbolKind:RHe,SymbolTag:IHe,IndentAction:cHe,CompletionTriggerKind:Kze,SignatureHelpTriggerKind:BHe,InlayHintKind:uHe,InlineCompletionTriggerKind:gHe,CodeActionTriggerType:Gze,NewSymbolNameTag:wHe,NewSymbolNameTriggerKind:OHe,PartialAcceptTriggerKind:_He,HoverVerbosityAction:lHe,InlineCompletionEndOfLifeReasonKind:hHe,InlineCompletionHintStyle:fHe,FoldingRangeKind:LI,SelectedSuggestionInfo:ATn,EditDeltaInfo:yJ}}fg.wrappingIndent.defaultValue=0;fg.glyphMargin.defaultValue=!1;fg.autoIndent.defaultValue=3;fg.overviewRulerLanes.defaultValue=2;KJ.setFormatterSelector((e,t,n)=>Promise.resolve(e[0]));const wm=fMn();wm.editor=SEo();wm.languages=k7o();const v7o=wm.CancellationTokenSource,BV=wm.Emitter,A7o=wm.KeyCode,p7o=wm.KeyMod,b7o=wm.Position,xee=wm.Range,w7o=wm.Selection,O7o=wm.SelectionDirection,yf=wm.MarkerSeverity,Eee=wm.MarkerTag,NI=wm.Uri,y7o=wm.Token,Ic=wm.editor,Tt=wm.languages,u5e=wJe(),ej=globalThis;(u5e!=null&&u5e.globalAPI||typeof ej.define=="function"&&ej.define.amd)&&(ej.monaco=wm);typeof ej.require<"u"&&typeof ej.require.config=="function"&&ej.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const C7o=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:v7o,Emitter:BV,KeyCode:A7o,KeyMod:p7o,MarkerSeverity:yf,MarkerTag:Eee,Position:b7o,Range:xee,Selection:w7o,SelectionDirection:O7o,Token:y7o,Uri:NI,editor:Ic,languages:Tt},Symbol.toStringTag,{value:"Module"}));let mit=class{constructor(t,n,r){this._onDidChange=new BV,this._languageId=t,this.setOptions(n),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(t){this._options=t||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(t){this.setOptions(t)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}};const kit={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},vit={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},jMn=new mit("css",kit,vit),WMn=new mit("scss",kit,vit),VMn=new mit("less",kit,vit);function Ait(){return Ct(()=>Promise.resolve().then(()=>EBs),void 0,import.meta.url)}Tt.onLanguage("less",()=>{Ait().then(e=>e.setupMode(VMn))});Tt.onLanguage("scss",()=>{Ait().then(e=>e.setupMode(WMn))});Tt.onLanguage("css",()=>{Ait().then(e=>e.setupMode(jMn))});const _7o=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:jMn,lessDefaults:VMn,scssDefaults:WMn},Symbol.toStringTag,{value:"Module"}));let S7o=class{constructor(t,n,r){this._onDidChange=new BV,this._languageId=t,this.setOptions(n),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(t){this._options=t||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}};const L7o={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},q3e={format:L7o,suggest:{},data:{useDefaultDataProvider:!0}};function K3e(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===qZ,documentFormattingEdits:e===qZ,documentRangeFormattingEdits:e===qZ}}const qZ="html",xSt="handlebars",ESt="razor",zMn=J3e(qZ,q3e,K3e(qZ)),x7o=zMn.defaults,HMn=J3e(xSt,q3e,K3e(xSt)),E7o=HMn.defaults,$Mn=J3e(ESt,q3e,K3e(ESt)),T7o=$Mn.defaults;function Q7o(){return Ct(()=>Promise.resolve().then(()=>BBs),void 0,import.meta.url)}function J3e(e,t=q3e,n=K3e(e)){const r=new S7o(e,t,n);let o;const s=Tt.onLanguage(e,async()=>{o=(await Q7o()).setupMode(r)});return{defaults:r,dispose(){s.dispose(),o==null||o.dispose(),o=void 0}}}const D7o=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:E7o,handlebarLanguageService:HMn,htmlDefaults:x7o,htmlLanguageService:zMn,razorDefaults:T7o,razorLanguageService:$Mn,registerHTMLLanguageService:J3e},Symbol.toStringTag,{value:"Module"}));let B7o=class{constructor(t,n,r){this._onDidChange=new BV,this._languageId=t,this.setDiagnosticsOptions(n),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}};const R7o={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},I7o={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},XMn=new B7o("json",R7o,I7o),M7o=()=>GMn().then(e=>e.getWorker());function GMn(){return Ct(()=>Promise.resolve().then(()=>KBs),void 0,import.meta.url)}Tt.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});Tt.onLanguage("json",()=>{GMn().then(e=>e.setupMode(XMn))});const P7o=Object.freeze(Object.defineProperty({__proto__:null,getWorker:M7o,jsonDefaults:XMn},Symbol.toStringTag,{value:"Module"})),F7o="5.9.3";var YMn=(e=>(e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015",e[e.ESNext=99]="ESNext",e))(YMn||{}),ZMn=(e=>(e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React",e[e.ReactNative=3]="ReactNative",e[e.ReactJSX=4]="ReactJSX",e[e.ReactJSXDev=5]="ReactJSXDev",e))(ZMn||{}),qMn=(e=>(e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed",e))(qMn||{}),KMn=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(KMn||{}),JMn=(e=>(e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs",e))(JMn||{});class ePn{constructor(t,n,r,o,s){this._onDidChange=new BV,this._onDidExtraLibsChange=new BV,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(t),this.setDiagnosticsOptions(n),this.setWorkerOptions(r),this.setInlayHintsOptions(o),this.setModeConfiguration(s),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(t,n){let r;if(typeof n>"u"?r=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:r=n,this._extraLibs[r]&&this._extraLibs[r].content===t)return{dispose:()=>{}};let o=1;return this._removedExtraLibs[r]&&(o=this._removedExtraLibs[r]+1),this._extraLibs[r]&&(o=this._extraLibs[r].version+1),this._extraLibs[r]={content:t,version:o},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let s=this._extraLibs[r];s&&s.version===o&&(delete this._extraLibs[r],this._removedExtraLibs[r]=o,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(t){for(const n in this._extraLibs)this._removedExtraLibs[n]=this._extraLibs[n].version;if(this._extraLibs=Object.create(null),t&&t.length>0)for(const n of t){const r=n.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,o=n.content;let s=1;this._removedExtraLibs[r]&&(s=this._removedExtraLibs[r]+1),this._extraLibs[r]={content:o,version:s}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(t){this._compilerOptions=t||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(t){this._workerOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(t){this._inlayHintsOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(t){}setEagerModelSync(t){this._eagerModelSync=t}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(void 0)}}const N7o=F7o,tPn={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},pit=new ePn({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},tPn),nPn=new ePn({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},tPn),U7o=()=>ewe().then(e=>e.getTypeScriptWorker()),j7o=()=>ewe().then(e=>e.getJavaScriptWorker());function ewe(){return Ct(()=>Promise.resolve().then(()=>rRs),void 0,import.meta.url)}Tt.onLanguage("typescript",()=>ewe().then(e=>e.setupTypeScript(pit)));Tt.onLanguage("javascript",()=>ewe().then(e=>e.setupJavaScript(nPn)));const W7o=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:ZMn,ModuleKind:YMn,ModuleResolutionKind:JMn,NewLineKind:qMn,ScriptTarget:KMn,getJavaScriptWorker:j7o,getTypeScriptWorker:U7o,javascriptDefaults:nPn,typescriptDefaults:pit,typescriptVersion:N7o},Symbol.toStringTag,{value:"Module"})),iPn={},h5e={};class bit{static getOrCreate(t){return h5e[t]||(h5e[t]=new bit(t)),h5e[t]}constructor(t){this._languageId=t,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((n,r)=>{this._lazyLoadPromiseResolve=n,this._lazyLoadPromiseReject=r})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,iPn[this._languageId].loader().then(t=>this._lazyLoadPromiseResolve(t),t=>this._lazyLoadPromiseReject(t))),this._lazyLoadPromise}}function bi(e){const t=e.id;iPn[t]=e,Tt.register(e);const n=bit.getOrCreate(t);Tt.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),Tt.onLanguageEncountered(t,async()=>{const r=await n.load();Tt.setLanguageConfiguration(t,r.conf)})}bi({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Ct(()=>Promise.resolve().then(()=>aRs),void 0,import.meta.url)});bi({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Ct(()=>Promise.resolve().then(()=>hRs),void 0,import.meta.url)});bi({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Ct(()=>Promise.resolve().then(()=>mRs),void 0,import.meta.url)});bi({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Ct(()=>Promise.resolve().then(()=>ARs),void 0,import.meta.url)});bi({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Ct(()=>Promise.resolve().then(()=>ERs),void 0,import.meta.url)});bi({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Ct(()=>Promise.resolve().then(()=>DRs),void 0,import.meta.url)});bi({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Ct(()=>Promise.resolve().then(()=>IRs),void 0,import.meta.url)});bi({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Ct(()=>Promise.resolve().then(()=>FRs),void 0,import.meta.url)});bi({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Ct(()=>Promise.resolve().then(()=>pKn),void 0,import.meta.url)});bi({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Ct(()=>Promise.resolve().then(()=>pKn),void 0,import.meta.url)});bi({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Ct(()=>Promise.resolve().then(()=>VRs),void 0,import.meta.url)});bi({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Ct(()=>Promise.resolve().then(()=>$Rs),void 0,import.meta.url)});bi({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Ct(()=>Promise.resolve().then(()=>YRs),void 0,import.meta.url)});bi({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Ct(()=>Promise.resolve().then(()=>KRs),void 0,import.meta.url)});bi({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Ct(()=>Promise.resolve().then(()=>tIs),void 0,import.meta.url)});bi({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Ct(()=>Promise.resolve().then(()=>rIs),void 0,import.meta.url)});bi({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Ct(()=>Promise.resolve().then(()=>aIs),void 0,import.meta.url)});bi({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Ct(()=>Promise.resolve().then(()=>dIs),void 0,import.meta.url)});bi({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Ct(()=>Promise.resolve().then(()=>fIs),void 0,import.meta.url)});bi({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Ct(()=>Promise.resolve().then(()=>kIs),void 0,import.meta.url)});bi({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagAutoInterpolationDollar)});bi({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagAngleInterpolationDollar)});bi({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagBracketInterpolationDollar)});bi({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagAngleInterpolationBracket)});bi({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagBracketInterpolationBracket)});bi({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagAutoInterpolationDollar)});bi({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Ct(()=>Promise.resolve().then(()=>fM),void 0,import.meta.url).then(e=>e.TagAutoInterpolationBracket)});bi({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Ct(()=>Promise.resolve().then(()=>SIs),void 0,import.meta.url)});bi({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Ct(()=>Promise.resolve().then(()=>EIs),void 0,import.meta.url)});bi({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Ct(()=>Promise.resolve().then(()=>DIs),void 0,import.meta.url)});bi({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Ct(()=>Promise.resolve().then(()=>IIs),void 0,import.meta.url)});bi({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Ct(()=>Promise.resolve().then(()=>FIs),void 0,import.meta.url)});bi({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Ct(()=>Promise.resolve().then(()=>jIs),void 0,import.meta.url)});bi({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Ct(()=>Promise.resolve().then(()=>zIs),void 0,import.meta.url)});bi({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Ct(()=>Promise.resolve().then(()=>GIs),void 0,import.meta.url)});bi({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Ct(()=>Promise.resolve().then(()=>qIs),void 0,import.meta.url)});bi({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Ct(()=>Promise.resolve().then(()=>eMs),void 0,import.meta.url)});bi({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Ct(()=>Promise.resolve().then(()=>iMs),void 0,import.meta.url)});bi({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Ct(()=>Promise.resolve().then(()=>sMs),void 0,import.meta.url)});bi({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Ct(()=>Promise.resolve().then(()=>cMs),void 0,import.meta.url)});bi({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Ct(()=>Promise.resolve().then(()=>hMs),void 0,import.meta.url)});bi({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Ct(()=>Promise.resolve().then(()=>mMs),void 0,import.meta.url)});bi({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Ct(()=>Promise.resolve().then(()=>AMs),void 0,import.meta.url)});bi({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Ct(()=>Promise.resolve().then(()=>wMs),void 0,import.meta.url)});bi({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Ct(()=>Promise.resolve().then(()=>CMs),void 0,import.meta.url)});bi({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Ct(()=>Promise.resolve().then(()=>LMs),void 0,import.meta.url)});bi({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Ct(()=>Promise.resolve().then(()=>TMs),void 0,import.meta.url)});bi({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Ct(()=>Promise.resolve().then(()=>BMs),void 0,import.meta.url)});bi({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Ct(()=>Promise.resolve().then(()=>MMs),void 0,import.meta.url)});bi({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Ct(()=>Promise.resolve().then(()=>NMs),void 0,import.meta.url)});bi({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Ct(()=>Promise.resolve().then(()=>WMs),void 0,import.meta.url)});bi({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Ct(()=>Promise.resolve().then(()=>HMs),void 0,import.meta.url)});bi({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Ct(()=>Promise.resolve().then(()=>GMs),void 0,import.meta.url)});bi({id:"pla",extensions:[".pla"],loader:()=>Ct(()=>Promise.resolve().then(()=>qMs),void 0,import.meta.url)});bi({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Ct(()=>Promise.resolve().then(()=>ePs),void 0,import.meta.url)});bi({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Ct(()=>Promise.resolve().then(()=>iPs),void 0,import.meta.url)});bi({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Ct(()=>Promise.resolve().then(()=>sPs),void 0,import.meta.url)});bi({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Ct(()=>Promise.resolve().then(()=>dPs),void 0,import.meta.url)});bi({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Ct(()=>Promise.resolve().then(()=>fPs),void 0,import.meta.url)});bi({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Ct(()=>Promise.resolve().then(()=>kPs),void 0,import.meta.url)});bi({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Ct(()=>Promise.resolve().then(()=>pPs),void 0,import.meta.url)});bi({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Ct(()=>Promise.resolve().then(()=>OPs),void 0,import.meta.url)});bi({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Ct(()=>Promise.resolve().then(()=>_Ps),void 0,import.meta.url)});bi({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Ct(()=>Promise.resolve().then(()=>xPs),void 0,import.meta.url)});bi({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Ct(()=>Promise.resolve().then(()=>QPs),void 0,import.meta.url)});bi({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Ct(()=>Promise.resolve().then(()=>RPs),void 0,import.meta.url)});bi({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Ct(()=>Promise.resolve().then(()=>PPs),void 0,import.meta.url)});bi({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Ct(()=>Promise.resolve().then(()=>UPs),void 0,import.meta.url)});bi({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Ct(()=>Promise.resolve().then(()=>VPs),void 0,import.meta.url)});bi({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Ct(()=>Promise.resolve().then(()=>$Ps),void 0,import.meta.url)});bi({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Ct(()=>Promise.resolve().then(()=>YPs),void 0,import.meta.url)});bi({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Ct(()=>Promise.resolve().then(()=>KPs),void 0,import.meta.url)});bi({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Ct(()=>Promise.resolve().then(()=>tFs),void 0,import.meta.url)});bi({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Ct(()=>Promise.resolve().then(()=>rFs),void 0,import.meta.url)});bi({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Ct(()=>Promise.resolve().then(()=>aFs),void 0,import.meta.url)});bi({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Ct(()=>Promise.resolve().then(()=>dFs),void 0,import.meta.url)});bi({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Ct(()=>Promise.resolve().then(()=>fFs),void 0,import.meta.url)});bi({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Ct(()=>Promise.resolve().then(()=>kFs),void 0,import.meta.url)});bi({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Ct(()=>Promise.resolve().then(()=>pFs),void 0,import.meta.url)});bi({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Ct(()=>Promise.resolve().then(()=>yKn),void 0,import.meta.url)});bi({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Ct(()=>Promise.resolve().then(()=>yKn),void 0,import.meta.url)});bi({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Ct(()=>Promise.resolve().then(()=>CFs),void 0,import.meta.url)});bi({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Ct(()=>Promise.resolve().then(()=>LFs),void 0,import.meta.url)});bi({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Ct(()=>Promise.resolve().then(()=>HIs),void 0,import.meta.url)});bi({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Ct(()=>Promise.resolve().then(()=>PFs),void 0,import.meta.url)});bi({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Ct(()=>Promise.resolve().then(()=>UFs),void 0,import.meta.url)});bi({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Ct(()=>Promise.resolve().then(()=>JFs),void 0,import.meta.url)});bi({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\Ct(()=>Promise.resolve().then(()=>nNs),void 0,import.meta.url)});bi({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Ct(()=>Promise.resolve().then(()=>oNs),void 0,import.meta.url)});var V7o=Object.defineProperty,z7o=(e,t,n)=>t in e?V7o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Gr=(e,t,n)=>z7o(e,typeof t!="symbol"?t+"":t,n),Ece,TSt,Tce,f5e,Qce;function H7o(e){return e.method!==void 0}var QSt;(function(e){function t(n){return n}e.create=t})(QSt||(QSt={}));var E4;(function(e){e.parseError=-32700,e.invalidRequest=-32600,e.methodNotFound=-32601,e.invalidParams=-32602,e.internalError=-32603;function t(s){return-32099<=s&&s<=-32e3}e.isServerError=t;function n(s){if(!t(s))throw new Error("Invalid range for a server error.");return s}e.serverError=n,e.unexpectedServerError=-32e3;function r(s){return!0}e.isApplicationError=r;function o(s){return s}e.applicationError=o,e.genericApplicationError=-320100})(E4||(E4={}));var rPn=class{constructor(){Gr(this,"listeners",new Set),Gr(this,"event",e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},$7o=class{constructor(e){Gr(this,"_value"),Gr(this,"eventEmitter"),this._value=e,this.eventEmitter=new rPn}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.eventEmitter.fire(e))}get onChange(){return this.eventEmitter.event}};function X7o(e,t){const n=setTimeout(t,e);return{dispose:()=>clearTimeout(n)}}function g5e(e,t,n){return e instanceof Set?(e.add(t),{dispose:()=>e.delete(t)}):(e.set(t,n),{dispose:()=>e.delete(t)})}var G7o=class{constructor(){Gr(this,"_state","none"),Gr(this,"promise"),Gr(this,"resolve",()=>{}),Gr(this,"reject",()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}};Ece=class{constructor(){Gr(this,"_unprocessedMessages",[]),Gr(this,"_messageListener"),Gr(this,"id",Ece.id++),Gr(this,"_state",new $7o({state:"open"})),Gr(this,"state",this._state)}setListener(e){if(this._messageListener=e,!!e)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const t=this._unprocessedMessages.shift();this._messageListener(t)}}send(e){return this._sendImpl(e)}_dispatchReceivedMessage(e){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(e):this._unprocessedMessages.push(e)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(e){return new Y7o(this,e??new Z7o)}},Gr(Ece,"id",0);var Y7o=class{constructor(e,t){Gr(this,"baseStream"),Gr(this,"logger"),this.baseStream=e,this.logger=t}get state(){return this.baseStream.state}setListener(e){if(e===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(t=>{this.logger.log(this.baseStream,"incoming",t),e(t)})}send(e){return this.logger.log(this.baseStream,"outgoing",e),this.baseStream.send(e)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},Z7o=class{log(e,t,n){console.log(`${t==="incoming"?"<-":"->"} [${e.toString()}] ${JSON.stringify(n)}`)}},q7o=class oPn{constructor(t){Gr(this,"connect"),this.connect=t}mapContext(t){return new oPn(n=>this.connect(n?K7o(n,t):void 0))}};function K7o(e,t){return{handleNotification:(n,r)=>e.handleNotification(n,t(r)),handleRequest:(n,r,o)=>e.handleRequest(n,r,t(o))}}var J7o=class sPn{constructor(t,n,r){Gr(this,"_stream"),Gr(this,"_listener"),Gr(this,"_logger"),Gr(this,"_unprocessedResponses",new Map),Gr(this,"_lastUsedRequestId",0),this._stream=t,this._listener=n,this._logger=r,this._stream.setListener(o=>{H7o(o)?o.id===void 0?this._processNotification(o):this._processRequest(o):this._processResponse(o)})}static createChannel(t,n){let r=!1;return new q7o(o=>{if(r)throw new Error(`A channel to the stream ${t} was already constructed!`);return r=!0,new sPn(t,o,n)})}get state(){return this._stream.state}async _processNotification(t){if(t.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:t});return}try{await this._listener.handleNotification({method:t.method,params:t.params||null})}catch(n){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${n}`,exception:n,message:t})}}async _processRequest(t){if(t.id===void 0)throw new Error;let n;if(this._listener)try{n=await this._listener.handleRequest({method:t.method,params:t.params||null},t.id)}catch(o){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${o}`,message:t,exception:o}),n={error:{code:E4.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:t}),n={error:{code:E4.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let r;"result"in n?r={jsonrpc:"2.0",id:t.id,result:n.result}:r={jsonrpc:"2.0",id:t.id,error:n.error},await this._stream.send(r)}_processResponse(t){const n=""+t.id,r=this._unprocessedResponses.get(n);if(!r){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:t});return}this._unprocessedResponses.delete(n),r(t)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(t,n,r){const o={jsonrpc:"2.0",id:this._newRequestId(),method:t.method,params:t.params||void 0};return r&&r(o.id),new Promise((s,a)=>{const l=""+o.id;this._unprocessedResponses.set(l,d=>{"result"in d?s({result:d.result}):(d.error||a(new Error("Response had neither 'result' nor 'error' field set.")),s({error:d.error}))}),this._stream.send(o).then(void 0,d=>{this._unprocessedResponses.delete(l),a(d)})})}sendNotification(t,n){const r={jsonrpc:"2.0",id:void 0,method:t.method,params:t.params||void 0};return this._stream.send(r)}toString(){return"StreamChannel/"+this._stream.toString()}},tj;(function(e){function t(){return{deserializeFromJson:o=>({hasErrors:!1,value:o}),serializeToJson:o=>o}}e.sAny=t;function n(){return{deserializeFromJson:o=>({hasErrors:!1,value:{}}),serializeToJson:o=>({})}}e.sEmptyObject=n;function r(){return{deserializeFromJson:o=>({hasErrors:!1,value:void 0}),serializeToJson:o=>null}}e.sVoidFromNull=r})(tj||(tj={}));const aPn=Symbol("OptionalMethodNotFound");var lPn=class{contextualize(e){return new eTo(this,e)}},eTo=class extends lPn{constructor(e,t){super(),Gr(this,"underylingTypedChannel"),Gr(this,"converters"),this.underylingTypedChannel=e,this.converters=t}async request(e,t,n){const r=await this.converters.getSendContext(n);return this.underylingTypedChannel.request(e,t,r)}async notify(e,t,n){const r=await this.converters.getSendContext(n);return this.underylingTypedChannel.notify(e,t,r)}registerNotificationHandler(e,t){return this.underylingTypedChannel.registerNotificationHandler(e,async(n,r)=>await t(n,await this.converters.getNewContext(r)))}registerRequestHandler(e,t){return this.underylingTypedChannel.registerRequestHandler(e,async(n,r,o)=>await t(n,r,await this.converters.getNewContext(o)))}},DSt=class cPn extends lPn{constructor(t,n={}){super(),Gr(this,"channelCtor"),Gr(this,"_requestSender"),Gr(this,"_handler",new Map),Gr(this,"_unknownNotificationHandler",new Set),Gr(this,"_timeout"),Gr(this,"sendExceptionDetails",!1),Gr(this,"_logger"),Gr(this,"listeningDeferred",new G7o),Gr(this,"onListening",this.listeningDeferred.promise),Gr(this,"_requestDidErrorEventEmitter",new rPn),Gr(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=t,this._logger=n.logger,this.sendExceptionDetails=!!n.sendExceptionDetails,this._timeout=X7o(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(t,n={}){return new cPn(J7o.createChannel(t,n.logger),n)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(t,n,r)=>this.handleRequest(t,n,r),handleNotification:(t,n)=>this.handleNotification(t,n)}),this.listeningDeferred.resolve()}checkChannel(t){if(!t)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(t,n,r){const o=this._handler.get(t.method);if(!o)return this._logger&&this._logger.debug({text:`No request handler for "${t.method}".`,data:{requestObject:t}}),{error:{code:E4.methodNotFound,message:`No request handler for "${t.method}".`,data:{method:t.method}}};if(o.kind!="request"){const a=`"${t.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:a,data:{requestObject:t}}),{error:{code:E4.invalidRequest,message:a,data:{method:t.method}}}}const s=o.requestType.paramsSerializer.deserializeFromJson(t.params);if(s.hasErrors){const a=`Got invalid params: ${s.errorMessage}`;return this._logger&&this._logger.debug({text:a,data:{requestObject:t,errorMessage:s.errorMessage}}),{error:{code:E4.invalidParams,message:a,data:{errors:s.errorMessage}}}}else{const a=s.value;let l;try{const d=await o.handler(a,n,r);if("error"in d||"errorMessage"in d){const u=d.error?o.requestType.errorSerializer.serializeToJson(d.error):void 0;l={error:{code:d.errorCode||E4.genericApplicationError,message:d.errorMessage||"An error was returned",data:u}}}else l={result:o.requestType.resultSerializer.serializeToJson(d.ok)}}catch(d){d instanceof RSt?l={error:{code:d.code,message:d.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${d}.`,exception:d,data:{requestObject:t}}),l={error:{code:E4.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${d}.`:"Server has thrown an unexpected exception"}})}return l}}async handleNotification(t,n){const r=this._handler.get(t.method);if(!r){for(const a of this._unknownNotificationHandler)a(t);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${t.method}"`,data:{requestObject:t}});return}if(r.kind!="notification"){this._logger&&this._logger.debug({text:`"${t.method}" is registered as request, but was sent as notification.`,data:{requestObject:t}});return}const o=r.notificationType.paramsSerializer.deserializeFromJson(t.params);if(o.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${o}`,data:{requestObject:t,errorMessage:o.errorMessage}});return}const s=o.value;for(const a of r.handlers)try{a(s,n)}catch(l){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${l}.`,exception:l,data:{requestObject:t}})}}registerUnknownNotificationHandler(t){return g5e(this._unknownNotificationHandler,t)}registerRequestHandler(t,n){if(this._handler.get(t.method))throw new Error(`Handler with method "${t.method}" already registered.`);return g5e(this._handler,t.method,{kind:"request",requestType:t,handler:n})}registerNotificationHandler(t,n){let r=this._handler.get(t.method);if(!r)r={kind:"notification",notificationType:t,handlers:new Set},this._handler.set(t.method,r);else{if(r.kind!=="notification")throw new Error(`Method "${t.method}" was already registered as request handler.`);if(r.notificationType!==t)throw new Error(`Method "${t.method}" was registered for a different type.`)}return g5e(r.handlers,n)}getRegisteredTypes(){const t=[];for(const n of this._handler.values())n.kind==="notification"?t.push(n.notificationType):n.kind==="request"&&t.push(n.requestType);return t}async request(t,n,r){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const o=t.paramsSerializer.serializeToJson(n);BSt(o);const s=await this._requestSender.sendRequest({method:t.method,params:o},r);if("error"in s){if(t.isOptional&&s.error.code===E4.methodNotFound)return aPn;let a;if(s.error.data!==void 0){const d=t.errorSerializer.deserializeFromJson(s.error.data);if(d.hasErrors)throw new Error(d.errorMessage);a=d.value}else a=void 0;const l=new RSt(s.error.message,a,s.error.code);throw this._requestDidErrorEventEmitter.fire({error:l}),l}else{const a=t.resultSerializer.deserializeFromJson(s.result);if(a.hasErrors)throw new Error("Could not deserialize response: "+a.errorMessage+` ${JSON.stringify(s,null,2)}`);return a.value}}async notify(t,n,r){if(!this.checkChannel(this._requestSender))throw new Error;const o=t.paramsSerializer.serializeToJson(n);BSt(o),this._requestSender.sendNotification({method:t.method,params:o},r)}};function BSt(e){if(e!==null&&Array.isArray(e)&&typeof e!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var RSt=class dPn extends Error{constructor(t,n,r=E4.genericApplicationError){super(t),Gr(this,"data"),Gr(this,"code"),this.data=n,this.code=r,Object.setPrototypeOf(this,dPn.prototype)}},tTo=class eXe{constructor(t,n,r,o,s=!1){Gr(this,"method"),Gr(this,"paramsSerializer"),Gr(this,"resultSerializer"),Gr(this,"errorSerializer"),Gr(this,"isOptional"),Gr(this,"kind","request"),this.method=t,this.paramsSerializer=n,this.resultSerializer=r,this.errorSerializer=o,this.isOptional=s}withMethod(t){return new eXe(t,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new eXe(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},nTo=class uPn{constructor(t,n){Gr(this,"method"),Gr(this,"paramsSerializer"),Gr(this,"kind","notification"),this.method=t,this.paramsSerializer=n}withMethod(t){return new uPn(t,this.paramsSerializer)}};function kr(e){return new tTo((e||{}).method,tj.sAny(),tj.sAny(),tj.sAny())}function vc(e){return new nTo((e||{}).method,tj.sAny())}const iTo=Symbol();var ISt=(TSt=iTo,Tce=class{constructor(e){Gr(this,"error"),Gr(this,TSt),this.error=e}},Gr(Tce,"factory",e=>new Tce(e)),Tce);function rTo(e){const t=MSt(e.server),n=MSt(e.client);return new oTo(e.tags||[],t,n)}function MSt(e){const t={};for(const[n,r]of Object.entries(e)){const o=r.method?r.method:n;t[n]=r.withMethod(o)}return t}var oTo=class hPn{constructor(t=[],n,r){Gr(this,"tags"),Gr(this,"server"),Gr(this,"client"),this.tags=t,this.server=n,this.client=r}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(t,n,r,o){const s=this.buildCounterpart(t,r),a=this.registerHandlers(t,n,o,s);return{counterpart:s,dispose:()=>a.dispose()}}buildCounterpart(t,n){const r={};for(const[o,s]of Object.entries(n)){let a;s.kind==="request"?s.isOptional?a=async(l,d)=>{l===void 0&&(l={});try{return await t.request(s,l,d)}catch(u){if(u&&u.code===E4.methodNotFound)return aPn;throw u}}:a=(l,d)=>(l===void 0&&(l={}),t.request(s,l,d)):a=(l,d)=>(l===void 0&&(l={}),t.notify(s,l,d)),r[o]=a}return r}registerHandlers(t,n,r,o){const s=[];for(const[a,l]of Object.entries(n))if(l.kind==="request"){let d=r[a];if(!d)continue;const u=this.createRequestHandler(o,d);s.push(t.registerRequestHandler(l,u))}else{const d=r[a];d&&s.push(t.registerNotificationHandler(l,(u,h)=>{d(u,{context:h,counterpart:o})}))}return{dispose:()=>s.forEach(a=>a.dispose())}}createRequestHandler(t,n){return async(r,o,s)=>{const a=await n(r,{context:s,counterpart:t,newErr:ISt.factory,requestId:o});return a instanceof ISt?a.error:{ok:a}}}static getServerFromStream(t,n,r,o){const s=DSt.fromTransport(n,r),{server:a}=t.getServer(s,o);return s.startListen(),{channel:s,server:a}}static registerServerToStream(t,n,r,o){const s=DSt.fromTransport(n,r),{client:a}=t.registerServer(s,o);return s.startListen(),{channel:s,client:a}}getServer(t,n){const{counterpart:r,dispose:o}=this.getInterface(t,this.client,this.server,n);return{server:r,dispose:o}}registerServer(t,n){const{counterpart:r,dispose:o}=this.getInterface(t,this.server,this.client,n);return{client:r,dispose:o}}withContext(){return new hPn(this.tags,this.server,this.client)}};let m5e=function(e){return e.Comment="comment",e.Imports="imports",e.Region="region",e}({}),$c=function(e){return e[e.File=1]="File",e[e.Module=2]="Module",e[e.Namespace=3]="Namespace",e[e.Package=4]="Package",e[e.Class=5]="Class",e[e.Method=6]="Method",e[e.Property=7]="Property",e[e.Field=8]="Field",e[e.Constructor=9]="Constructor",e[e.Enum=10]="Enum",e[e.Interface=11]="Interface",e[e.Function=12]="Function",e[e.Variable=13]="Variable",e[e.Constant=14]="Constant",e[e.String=15]="String",e[e.Number=16]="Number",e[e.Boolean=17]="Boolean",e[e.Array=18]="Array",e[e.Object=19]="Object",e[e.Key=20]="Key",e[e.Null=21]="Null",e[e.EnumMember=22]="EnumMember",e[e.Struct=23]="Struct",e[e.Event=24]="Event",e[e.Operator=25]="Operator",e[e.TypeParameter=26]="TypeParameter",e}({}),sTo=function(e){return e[e.Deprecated=1]="Deprecated",e}({}),PSt=function(e){return e[e.Type=1]="Type",e[e.Parameter=2]="Parameter",e}({}),ld=function(e){return e[e.Text=1]="Text",e[e.Method=2]="Method",e[e.Function=3]="Function",e[e.Constructor=4]="Constructor",e[e.Field=5]="Field",e[e.Variable=6]="Variable",e[e.Class=7]="Class",e[e.Interface=8]="Interface",e[e.Module=9]="Module",e[e.Property=10]="Property",e[e.Unit=11]="Unit",e[e.Value=12]="Value",e[e.Enum=13]="Enum",e[e.Keyword=14]="Keyword",e[e.Snippet=15]="Snippet",e[e.Color=16]="Color",e[e.File=17]="File",e[e.Reference=18]="Reference",e[e.Folder=19]="Folder",e[e.EnumMember=20]="EnumMember",e[e.Constant=21]="Constant",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter",e}({}),aTo=function(e){return e[e.Deprecated=1]="Deprecated",e}({}),lTo=function(e){return e[e.PlainText=1]="PlainText",e[e.Snippet=2]="Snippet",e}({}),k5e=function(e){return e[e.Text=1]="Text",e[e.Read=2]="Read",e[e.Write=3]="Write",e}({}),_9=function(e){return e[e.Error=1]="Error",e[e.Warning=2]="Warning",e[e.Information=3]="Information",e[e.Hint=4]="Hint",e}({}),FSt=function(e){return e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated",e}({}),v5e=function(e){return e[e.Invoked=1]="Invoked",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",e}({}),A5e=function(e){return e[e.Invoked=1]="Invoked",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange",e}({}),NSt=function(e){return e[e.Invoked=1]="Invoked",e[e.Automatic=2]="Automatic",e}({});var Ro=class{constructor(e){this.method=e}};const cTo={textDocumentImplementation:new Ro("textDocument/implementation"),textDocumentTypeDefinition:new Ro("textDocument/typeDefinition"),textDocumentDocumentColor:new Ro("textDocument/documentColor"),textDocumentColorPresentation:new Ro("textDocument/colorPresentation"),textDocumentFoldingRange:new Ro("textDocument/foldingRange"),textDocumentDeclaration:new Ro("textDocument/declaration"),textDocumentSelectionRange:new Ro("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new Ro("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new Ro("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new Ro("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new Ro("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new Ro("workspace/willCreateFiles"),workspaceWillRenameFiles:new Ro("workspace/willRenameFiles"),workspaceWillDeleteFiles:new Ro("workspace/willDeleteFiles"),textDocumentMoniker:new Ro("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new Ro("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new Ro("textDocument/inlineValue"),textDocumentInlayHint:new Ro("textDocument/inlayHint"),textDocumentDiagnostic:new Ro("textDocument/diagnostic"),textDocumentInlineCompletion:new Ro("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new Ro("textDocument/willSaveWaitUntil"),textDocumentCompletion:new Ro("textDocument/completion"),textDocumentHover:new Ro("textDocument/hover"),textDocumentSignatureHelp:new Ro("textDocument/signatureHelp"),textDocumentDefinition:new Ro("textDocument/definition"),textDocumentReferences:new Ro("textDocument/references"),textDocumentDocumentHighlight:new Ro("textDocument/documentHighlight"),textDocumentDocumentSymbol:new Ro("textDocument/documentSymbol"),textDocumentCodeAction:new Ro("textDocument/codeAction"),workspaceSymbol:new Ro("workspace/symbol"),textDocumentCodeLens:new Ro("textDocument/codeLens"),textDocumentDocumentLink:new Ro("textDocument/documentLink"),textDocumentFormatting:new Ro("textDocument/formatting"),textDocumentRangeFormatting:new Ro("textDocument/rangeFormatting"),textDocumentRangesFormatting:new Ro("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new Ro("textDocument/onTypeFormatting"),textDocumentRename:new Ro("textDocument/rename"),workspaceExecuteCommand:new Ro("workspace/executeCommand"),workspaceDidCreateFiles:new Ro("workspace/didCreateFiles"),workspaceDidRenameFiles:new Ro("workspace/didRenameFiles"),workspaceDidDeleteFiles:new Ro("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new Ro("workspace/didChangeConfiguration"),textDocumentDidOpen:new Ro("textDocument/didOpen"),textDocumentDidChange:new Ro("textDocument/didChange"),textDocumentDidClose:new Ro("textDocument/didClose"),textDocumentDidSave:new Ro("textDocument/didSave"),textDocumentWillSave:new Ro("textDocument/willSave"),workspaceDidChangeWatchedFiles:new Ro("workspace/didChangeWatchedFiles")};rTo({server:{textDocumentImplementation:kr({method:"textDocument/implementation"}),textDocumentTypeDefinition:kr({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:kr({method:"textDocument/documentColor"}),textDocumentColorPresentation:kr({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:kr({method:"textDocument/foldingRange"}),textDocumentDeclaration:kr({method:"textDocument/declaration"}),textDocumentSelectionRange:kr({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:kr({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:kr({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:kr({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:kr({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:kr({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:kr({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:kr({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:kr({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:kr({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:kr({method:"workspace/willDeleteFiles"}),textDocumentMoniker:kr({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:kr({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:kr({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:kr({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:kr({method:"textDocument/inlineValue"}),textDocumentInlayHint:kr({method:"textDocument/inlayHint"}),inlayHintResolve:kr({method:"inlayHint/resolve"}),textDocumentDiagnostic:kr({method:"textDocument/diagnostic"}),workspaceDiagnostic:kr({method:"workspace/diagnostic"}),textDocumentInlineCompletion:kr({method:"textDocument/inlineCompletion"}),initialize:kr({method:"initialize"}),shutdown:kr({method:"shutdown"}),textDocumentWillSaveWaitUntil:kr({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:kr({method:"textDocument/completion"}),completionItemResolve:kr({method:"completionItem/resolve"}),textDocumentHover:kr({method:"textDocument/hover"}),textDocumentSignatureHelp:kr({method:"textDocument/signatureHelp"}),textDocumentDefinition:kr({method:"textDocument/definition"}),textDocumentReferences:kr({method:"textDocument/references"}),textDocumentDocumentHighlight:kr({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:kr({method:"textDocument/documentSymbol"}),textDocumentCodeAction:kr({method:"textDocument/codeAction"}),codeActionResolve:kr({method:"codeAction/resolve"}),workspaceSymbol:kr({method:"workspace/symbol"}),workspaceSymbolResolve:kr({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:kr({method:"textDocument/codeLens"}),codeLensResolve:kr({method:"codeLens/resolve"}),textDocumentDocumentLink:kr({method:"textDocument/documentLink"}),documentLinkResolve:kr({method:"documentLink/resolve"}),textDocumentFormatting:kr({method:"textDocument/formatting"}),textDocumentRangeFormatting:kr({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:kr({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:kr({method:"textDocument/onTypeFormatting"}),textDocumentRename:kr({method:"textDocument/rename"}),textDocumentPrepareRename:kr({method:"textDocument/prepareRename"}),workspaceExecuteCommand:kr({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:vc({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:vc({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:vc({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:vc({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:vc({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:vc({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:vc({method:"notebookDocument/didChange"}),notebookDocumentDidSave:vc({method:"notebookDocument/didSave"}),notebookDocumentDidClose:vc({method:"notebookDocument/didClose"}),initialized:vc({method:"initialized"}),exit:vc({method:"exit"}),workspaceDidChangeConfiguration:vc({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:vc({method:"textDocument/didOpen"}),textDocumentDidChange:vc({method:"textDocument/didChange"}),textDocumentDidClose:vc({method:"textDocument/didClose"}),textDocumentDidSave:vc({method:"textDocument/didSave"}),textDocumentWillSave:vc({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:vc({method:"workspace/didChangeWatchedFiles"}),setTrace:vc({method:"$/setTrace"}),cancelRequest:vc({method:"$/cancelRequest"}),progress:vc({method:"$/progress"})},client:{workspaceWorkspaceFolders:kr({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:kr({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:kr({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:kr({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:kr({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:kr({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:kr({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:kr({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:kr({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:kr({method:"client/registerCapability"}).optional(),clientUnregisterCapability:kr({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:kr({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:kr({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:kr({method:"workspace/applyEdit"}).optional(),windowShowMessage:vc({method:"window/showMessage"}),windowLogMessage:vc({method:"window/logMessage"}),telemetryEvent:vc({method:"telemetry/event"}),textDocumentPublishDiagnostics:vc({method:"textDocument/publishDiagnostics"}),logTrace:vc({method:"$/logTrace"}),cancelRequest:vc({method:"$/cancelRequest"}),progress:vc({method:"$/progress"})}});f5e=class{constructor(){Gr(this,"_store",new dTo)}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}},Gr(f5e,"None",Object.freeze({dispose(){}}));var dTo=(Qce=class{constructor(){Gr(this,"_toDispose",new Set),Gr(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const e of this._toDispose)e.dispose()}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?Qce.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}},Gr(Qce,"DISABLE_DISPOSED_WARNING",!1),Qce);Tt.CodeActionTriggerType.Invoke,NSt.Invoked,Tt.CodeActionTriggerType.Auto,NSt.Automatic;ld.Text,Tt.CompletionItemKind.Text,ld.Method,Tt.CompletionItemKind.Method,ld.Function,Tt.CompletionItemKind.Function,ld.Constructor,Tt.CompletionItemKind.Constructor,ld.Field,Tt.CompletionItemKind.Field,ld.Variable,Tt.CompletionItemKind.Variable,ld.Class,Tt.CompletionItemKind.Class,ld.Interface,Tt.CompletionItemKind.Interface,ld.Module,Tt.CompletionItemKind.Module,ld.Property,Tt.CompletionItemKind.Property,ld.Unit,Tt.CompletionItemKind.Unit,ld.Value,Tt.CompletionItemKind.Value,ld.Enum,Tt.CompletionItemKind.Enum,ld.Keyword,Tt.CompletionItemKind.Keyword,ld.Snippet,Tt.CompletionItemKind.Snippet,ld.Color,Tt.CompletionItemKind.Color,ld.File,Tt.CompletionItemKind.File,ld.Reference,Tt.CompletionItemKind.Reference,ld.Folder,Tt.CompletionItemKind.Folder,ld.EnumMember,Tt.CompletionItemKind.EnumMember,ld.Constant,Tt.CompletionItemKind.Constant,ld.Struct,Tt.CompletionItemKind.Struct,ld.Event,Tt.CompletionItemKind.Event,ld.Operator,Tt.CompletionItemKind.Operator,ld.TypeParameter,Tt.CompletionItemKind.TypeParameter;aTo.Deprecated,Tt.CompletionItemTag.Deprecated;Tt.CompletionTriggerKind.Invoke,v5e.Invoked,Tt.CompletionTriggerKind.TriggerCharacter,v5e.TriggerCharacter,Tt.CompletionTriggerKind.TriggerForIncompleteCompletions,v5e.TriggerForIncompleteCompletions;lTo.Snippet,Tt.CompletionItemInsertTextRule.InsertAsSnippet;$c.File,Tt.SymbolKind.File,$c.Module,Tt.SymbolKind.Module,$c.Namespace,Tt.SymbolKind.Namespace,$c.Package,Tt.SymbolKind.Package,$c.Class,Tt.SymbolKind.Class,$c.Method,Tt.SymbolKind.Method,$c.Property,Tt.SymbolKind.Property,$c.Field,Tt.SymbolKind.Field,$c.Constructor,Tt.SymbolKind.Constructor,$c.Enum,Tt.SymbolKind.Enum,$c.Interface,Tt.SymbolKind.Interface,$c.Function,Tt.SymbolKind.Function,$c.Variable,Tt.SymbolKind.Variable,$c.Constant,Tt.SymbolKind.Constant,$c.String,Tt.SymbolKind.String,$c.Number,Tt.SymbolKind.Number,$c.Boolean,Tt.SymbolKind.Boolean,$c.Array,Tt.SymbolKind.Array,$c.Object,Tt.SymbolKind.Object,$c.Key,Tt.SymbolKind.Key,$c.Null,Tt.SymbolKind.Null,$c.EnumMember,Tt.SymbolKind.EnumMember,$c.Struct,Tt.SymbolKind.Struct,$c.Event,Tt.SymbolKind.Event,$c.Operator,Tt.SymbolKind.Operator,$c.TypeParameter,Tt.SymbolKind.TypeParameter;sTo.Deprecated,Tt.SymbolTag.Deprecated;k5e.Text,Tt.DocumentHighlightKind.Text,k5e.Read,Tt.DocumentHighlightKind.Read,k5e.Write,Tt.DocumentHighlightKind.Write;m5e.Comment,Tt.FoldingRangeKind.Comment,m5e.Imports,Tt.FoldingRangeKind.Imports,m5e.Region,Tt.FoldingRangeKind.Region;yf.Error,_9.Error,yf.Warning,_9.Warning,yf.Info,_9.Information,yf.Hint,_9.Hint;_9.Error,yf.Error,_9.Warning,yf.Warning,_9.Information,yf.Info,_9.Hint,yf.Hint;FSt.Unnecessary,Eee.Unnecessary,FSt.Deprecated,Eee.Deprecated;Tt.SignatureHelpTriggerKind.Invoke,A5e.Invoked,Tt.SignatureHelpTriggerKind.TriggerCharacter,A5e.TriggerCharacter,Tt.SignatureHelpTriggerKind.ContentChange,A5e.ContentChange;PSt.Type,Tt.InlayHintKind.Type,PSt.Parameter,Tt.InlayHintKind.Parameter;new Map([...Object.values(cTo)].map(e=>[e.method,e]));function uTo(e,t){var r;const n=globalThis.MonacoEnvironment;if(n!=null&&n.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(o){console.error(o);return}try{return(r=globalThis.trustedTypes)==null?void 0:r.createPolicy(e,t)}catch(o){console.error(o);return}}let Qke;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?Qke=globalThis.workerttPolicy:Qke=uTo("defaultWorkerFactory",{createScriptURL:e=>e});function hTo(e){const t=e.label,n=globalThis.MonacoEnvironment;if(n){if(typeof n.getWorker=="function")return n.getWorker("workerMain.js",t);if(typeof n.getWorkerUrl=="function"){const r=n.getWorkerUrl("workerMain.js",t);return new Worker(Qke?Qke.createScriptURL(r):r,{name:t,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function twe(e){const t=Promise.resolve(hTo({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(n=>(n.postMessage("ignore"),n.postMessage(e.createData),n));return Ic.createWebWorker({worker:t,host:e.host,keepIdleModels:e.keepIdleModels})}function fPn(){return C7o}const p5e=globalThis.MonacoEnvironment;p5e!=null&&p5e.globalAPI&&(globalThis.monaco=fPn());const nwe=fPn();nwe.languages.css=_7o;nwe.languages.html=D7o;nwe.languages.typescript=W7o;nwe.languages.json=P7o;const fTo=e=>{console.warn(`[MonacoEditorVue3]: ${e}`)},USt=e=>typeof e=="number"?`${e}px`:typeof e=="string"?e.includes("%")||e.includes("px")||e.includes("rem")||e.includes("em")?e:`${e}px`:"100%",gTo=()=>{const e=fe({isLoading:!1,loadingText:"Loading Monaco Editor...",progress:0}),t=fe(null),n=fe(!1),r=l=>{e.value={...e.value,...l}};return{loading:e,error:t,isReady:n,setLoading:r,setError:l=>{t.value=l,l&&(fTo(`Editor Error [${l.code}]: ${l.message}`),l.details&&console.error("Error details:",l.details))},clearError:()=>{t.value=null},setReady:l=>{n.value=l,l&&r({isLoading:!1,progress:100})}}},mTo=e=>({executeHook:async(n,...r)=>{var o;const s=e==null?void 0:e[n];if(s)try{await s(...r)}catch(a){(o=e==null?void 0:e.onError)==null||o.call(e,{code:"LIFECYCLE_ERROR",message:`Error in ${n} hook`,details:a instanceof Error?a.message:String(a),recoverable:!0})}}}),kTo=(e,t)=>{let n=null;const r=fe(),{loading:o,error:s,isReady:a,setLoading:l,setError:d,clearError:u,setReady:h}=gTo(),{executeHook:g}=mTo(e.lifecycle),m=async()=>{try{if(!r.value)throw new Error("Container element not found");await g("beforeCreate"),l({isLoading:!0,progress:20}),await g("onCreating"),t("editorWillMount"),l({progress:50});const k={value:e.value,language:e.language,theme:e.theme,...e.options};n=Ic.create(r.value,k),l({progress:80}),await g("onCreated",n),n.onDidChangeModelContent(A=>{const p=n.getValue();e.value!==p&&(t("change",p,A),t("update:value",p))}),h(!0),await g("onReady",n),t("editorDidMount",n)}catch(k){const A={code:"EDITOR_CREATE_FAILED",message:"Failed to create Monaco editor",details:k instanceof Error?k.message:String(k),recoverable:!0};d(A),await g("onError",A)}},v=async()=>{try{await g("beforeDestroy"),n&&(n.dispose(),n=null),h(!1),u(),await g("onDestroyed")}catch(k){const A={code:"EDITOR_DESTROY_FAILED",message:"Failed to destroy Monaco editor",details:k instanceof Error?k.message:String(k),recoverable:!1};d(A)}};return An(()=>{ai(()=>{m()})}),Qa(()=>{v()}),pt(()=>e.options,k=>{if(!(!k||!n))try{n.updateOptions(k)}catch(A){const p={code:"OPTIONS_UPDATE_FAILED",message:"Failed to update editor options",details:A instanceof Error?A.message:String(A),recoverable:!0};d(p)}},{deep:!0}),pt(()=>e.value,k=>{if(!n||k===void 0)return;if(n.getValue()!==k)try{n.setValue(k)}catch(p){const b={code:"VALUE_UPDATE_FAILED",message:"Failed to update editor value",details:p instanceof Error?p.message:String(p),recoverable:!0};d(b)}}),{editorInstance:n,container:r,loading:o,error:s,isReady:a,retry:()=>{u(),m()},destroy:v}},vTo=ge("div",null,[ge("div")],-1),ATo={key:0},pTo=Je({__name:"MonacoLoading",props:{loadingText:{default:"Loading Monaco Editor..."},progress:{default:0},showProgress:{type:Boolean,default:!0}},setup(e){return(t,n)=>(xe(),Ge("div",null,[ge("div",null,[vTo,ge("div",null,Pe(t.loadingText),1),t.showProgress?(xe(),Ge("div",ATo,[ge("div",null,[ge("div",{style:no({width:`${t.progress}%`})},null,4)]),ge("div",null,Pe(t.progress)+"%",1)])):nn("",!0)])]))}}),bTo=ge("div",null,[ge("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[ge("circle",{cx:"12",cy:"12",r:"10",stroke:"#dc3545","stroke-width":"2"}),ge("path",{d:"m15 9-6 6",stroke:"#dc3545","stroke-width":"2"}),ge("path",{d:"m9 9 6 6",stroke:"#dc3545","stroke-width":"2"})])],-1),wTo=ge("div",null,"Monaco Editor Error",-1),OTo={key:0},yTo=ge("summary",null,"Error Details",-1),CTo={key:1},_To=Je({__name:"MonacoErrorBoundary",props:{error:{},showDetails:{type:Boolean,default:!0},showRetry:{type:Boolean,default:!0},showReload:{type:Boolean,default:!1},showReport:{type:Boolean,default:!1}},emits:["retry","reload","report"],setup(e,{emit:t}){const n=e,r=t,o=X(()=>n.error.code),s=()=>{r("retry")},a=()=>{typeof window<"u"&&window.location.reload(),r("reload")},l=()=>{r("report",n.error)};return(d,u)=>(xe(),Ge("div",null,[ge("div",null,[bTo,wTo,ge("div",null,Pe(d.error.message),1),d.error.details&&d.showDetails?(xe(),Ge("div",OTo,[ge("details",null,[yTo,ge("pre",null,Pe(d.error.details),1)])])):nn("",!0),ge("div",null,[d.error.recoverable&&d.showRetry?(xe(),Ge("button",{key:0,onClick:s},"Retry")):nn("",!0),d.showReload?(xe(),Ge("button",{key:1,onClick:a},"Reload Page")):nn("",!0),d.showReport?(xe(),Ge("button",{key:2,onClick:l},"Report Issue")):nn("",!0)]),o.value?(xe(),Ge("div",CTo,"Error Code: "+Pe(o.value),1)):nn("",!0)])]))}}),STo=Je({__name:"CodeEditor",props:{loadingText:{},showProgress:{type:Boolean,default:!0},showErrorBoundary:{type:Boolean,default:!0},retryable:{type:Boolean,default:!0},lifecycle:{},useDefaultLoading:{type:Boolean,default:!0},useDefaultErrorBoundary:{type:Boolean,default:!0},value:{default:""},width:{default:"100%"},height:{default:"100%"},theme:{default:"vs"},language:{default:"javascript"},options:{default:()=>({})}},emits:["editorWillMount","editorDidMount","change","update:value","error","ready","loading"],setup(e,{emit:t}){const n=e,r=t,{container:o,loading:s,error:a,isReady:l,retry:d}=kTo(n,r),{width:u,height:h}=Li(n),g=X(()=>({width:USt(u.value),height:USt(h.value),textAlign:"left",position:"relative"})),m=X(()=>({width:"100%",height:"100%",visibility:l.value&&!a.value?"visible":"hidden"})),v=()=>{d(),r("error",null)};return pt(s,f=>{r("loading",f)},{deep:!0}),pt(a,f=>{r("error",f)}),pt(l,f=>{f&&r("ready")}),(f,k)=>(xe(),Ge("div",{ref:"editorContainer",style:no(g.value),class:"monaco-code-editor"},[!Ae(l)&&!Ae(a)?Zr(f.$slots,"loading",{key:0,loading:Ae(s),loadingText:f.loadingText||Ae(s).loadingText,progress:Ae(s).progress,showProgress:f.showProgress},()=>[f.useDefaultLoading?(xe(),Ut(pTo,{key:0,"loading-text":f.loadingText||Ae(s).loadingText,progress:Ae(s).progress,"show-progress":f.showProgress},null,8,["loading-text","progress","show-progress"])):nn("",!0)]):Ae(a)&&f.showErrorBoundary?Zr(f.$slots,"error",{key:1,error:Ae(a),retry:v,retryable:f.retryable},()=>[f.useDefaultErrorBoundary?(xe(),Ut(_To,{key:0,error:Ae(a),"show-retry":f.retryable,"show-details":!0,"show-reload":!1,"show-report":!1,onRetry:v},null,8,["error","show-retry"])):nn("",!0)]):nn("",!0),ge("div",{ref_key:"container",ref:o,style:no(m.value)},null,4)],4))}}),b5e=`//如需遥测AI请使用在toonflow安装目录运行npx @ai-sdk/devtools (要求在其他设置中打开遥测功能,且toonflow有权限在安装目录创建.devtools文件夹)\r @@ -2990,7 +2990,7 @@ const ttsRequest = async (ttsConfig: TTSConfig, ttsModel: TTSModel) => {\r return null;\r };\r exports.ttsRequest = ttsRequest;\r -`,LTo={class:"modelServe"},xTo={class:"modelList"},ETo={class:"listFooter"},TTo={class:"listContent"},QTo={key:0,class:"modelParameter"},DTo={class:"configuration"},BTo={class:"infoBox ac jb"},RTo={class:"idBox"},ITo={class:"author"},MTo={class:"requiredLabel"},PTo={class:"requiredText"},FTo={class:"inputHelp"},NTo={key:0,class:"optionalSection"},UTo={class:"inputHelp"},jTo={class:"jb ac"},WTo={class:"sectionTitle"},VTo={class:"topInfo jb ac"},zTo={class:"modelCardName"},HTo={class:"actionBtns"},$To={class:"tags"},XTo={class:"updateAction"},GTo={class:"addBox"},YTo={style:{display:"flex","flex-direction":"column","align-items":"flex-start",gap:"0"}},ZTo={style:{border:"1px solid #ddd","border-radius":"6px",padding:"6px 12px","margin-top":"6px"}},qTo={class:"drmEditor"},KTo={class:"drmHeader"},JTo={class:"drmHeaderLabel"},eQo={class:"drmHeaderLabel"},tQo={class:"drmRowIndex"},nQo={class:"testResult"},iQo={key:0,class:"resultContent"},rQo=["src"],oQo={key:1,class:"resultContent"},sQo=["src"],aQo={key:2,class:"resultContent"},lQo={class:"data"},cQo={key:0,class:"linkAdd"},dQo={style:{"margin-top":"10px","text-align":"right",width:"100%"}},uQo={key:1,class:"importAdd"},hQo={class:"dragIcon"},fQo={class:"uploadText"},gQo={class:"uploadHint"},mQo={key:2,class:"codeAdd"},kQo={class:"editorToolbar"},vQo={class:"editorInfo"},AQo={class:"editorActions"},pQo={class:"editorWrapper"},bQo=700,wQo=Je({__name:"vendorConfig",setup(e){const t={text:"settings.vendor.textModel",image:"settings.vendor.imageModel",video:"settings.vendor.videoModel"},n={singleImage:"settings.vendor.singleImage",multiImage:"settings.vendor.multiImage",startEndRequired:"settings.vendor.startEndRequired",endFrameOptional:"settings.vendor.endFrameOptional",startFrameOptional:"settings.vendor.startFrameOptional",audioReference:"settings.vendor.audioRef",videoReference:"settings.vendor.videoRef",textReference:"settings.vendor.textRef",imageReference:"settings.vendor.imageRef"};function r(Se){return t[Se]||Se}function o(Se,Ie){return Se==="text"?Ie==="image"?"settings.vendor.textToImage":"settings.vendor.textToVideo":n[Se]||Se}const s={fontSize:14,automaticLayout:!0,tabSize:2,scrollBeyondLastLine:!1,formatOnPaste:!0,formatOnType:!0},a=[{value:"text",label:"settings.vendor.textModel"},{value:"image",label:"settings.vendor.imageModel"},{value:"video",label:"settings.vendor.videoModel"}],l=[{label:"settings.vendor.textToImage",value:"text"},{label:"settings.vendor.singleImage",value:"singleImage"}],d=[{label:"settings.vendor.singleImage",value:"singleImage"},{label:"settings.vendor.multiImage",value:"multiImage"},{label:"settings.vendor.startEndRequired",value:"startEndRequired"},{label:"settings.vendor.endFrameOptional",value:"endFrameOptional"},{label:"settings.vendor.startFrameOptional",value:"startFrameOptional"},{label:"settings.vendor.textToVideo",value:"text"}],u=[{label:"settings.vendor.textRef",value:"textReference"},{label:"settings.vendor.imageRef",value:"videoReference"},{label:"settings.vendor.videoRef",value:"imageReference"},{label:"settings.vendor.audioRef",value:"audioReference"}],h=[{label:"settings.vendor.audioOptional",value:"optional"},{label:"settings.vendor.audioOnly",value:!0},{label:"settings.vendor.noAudio",value:!1}],g=fe([]),m=fe(!1);async function v(){m.value=!0;try{const Se=await mn.post("/setting/vendorConfig/getVendorList");g.value=Se.data.map(Ie=>({...Ie,enable:Ie.enable})),g.value.length&&!g.value.some(Ie=>Ie.id===f.value)&&(f.value=g.value[0].id)}catch(Se){window.$message.error(`${$t("settings.vendor.msg.getVendorListFailed")}${Se.message}`)}finally{m.value=!1,ai(()=>{E.value=H.value,L.value=!0})}}An(()=>{v()});const f=fe(),k=X(()=>g.value.find(Se=>Se.id===f.value)),A=X(()=>{var Se,Ie;return((Se=k.value)==null?void 0:Se.models)||((Ie=k.value)==null?void 0:Ie.model)||[]}),p=X(()=>{var Se,Ie;return((Ie=(Se=k.value)==null?void 0:Se.inputs)==null?void 0:Ie.filter(ze=>ze.required))||[]}),b=X(()=>{var Se,Ie;return((Ie=(Se=k.value)==null?void 0:Se.inputs)==null?void 0:Ie.filter(ze=>!ze.required))||[]}),w=fe(!1),O=fe(!1),y=fe(b5e),C=fe(null),_=fe(!1),S=fe(!1),L=fe(!1),E=fe("");let T=null,D=!1;const P=fe(!1),Q=fe(""),M=fe(""),B=fe(""),R=hs({});function I(Se){return Se==="password"?"secured":Se==="url"?"link":"edit-1"}function F(Se){var Ie;return((Ie=Se.placeholder)==null?void 0:Ie.trim())||""}function j(Se){return Se?/^(?:data:[^;]+;base64,)?[A-Za-z0-9+/]*={0,2}$/.test(Se)&&Se.length>0:!1}function W(Se){return{id:Se.id,name:Se.name,icon:Se.icon,inputs:Se.inputs,inputValues:Se.inputValues,models:Se.models??Se.model??[]}}const H=X(()=>k.value?JSON.stringify(W(k.value)):"");function $(){T&&clearTimeout(T),T=setTimeout(()=>{G()},bQo)}async function G(){if(!k.value||!L.value||m.value)return;const Se=H.value;if(!(!Se||Se===E.value)){if(S.value){D=!0;return}S.value=!0;try{await mn.post("/setting/vendorConfig/updateVendor",W(k.value)),E.value=Se}catch(Ie){window.$message.error(`${$t("settings.vendor.msg.updateFailed")}${Ie.message}`)}finally{S.value=!1,D&&(D=!1,$())}}}pt(H,Se=>{!Se||!L.value||m.value||Se!==E.value&&$()},{flush:"post"}),pt(f,()=>{T&&(clearTimeout(T),T=null),D=!1,ai(()=>{E.value=H.value})},{flush:"post"});const q=fe();function re(){ke.value="linkAdd",q.value=void 0,y.value=b5e,w.value=!0}function J(){if(q.value){const Se=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.updateVendorRiskBody"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{Se.destroy();const Ie=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.updateVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndUpdate"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{mn.post("/setting/vendorConfig/updateCode",{id:q.value,tsCode:y.value}).then(ze=>{window.$message.success($t("settings.vendor.msg.updateSuccess")),w.value=!1,O.value=!1,v()}).catch(ze=>{window.$message.error(`${$t("settings.vendor.msg.updateFailed")}${ze.message}`)}).finally(()=>{Ie.destroy()})},onClose:()=>Ie.hide()})},onClose:()=>Se.hide()})}else{const Se=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.addVendorRiskBody"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{Se.destroy();const Ie=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.addVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndAdd"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{mn.post("/setting/vendorConfig/addVendor",{tsCode:y.value}).then(ze=>{window.$message.success($t("settings.vendor.msg.vendorAdded")),w.value=!1,O.value=!1,v()}).catch(ze=>{window.$message.error(`${$t("settings.vendor.msg.addFailed")}${ze.message}`)}).finally(()=>{Ie.destroy()})},onClose:()=>Ie.hide()})},onClose:()=>Se.hide()})}}const oe=fe(!1),se=fe(null),le=fe({name:"",modelName:"",type:"text",think:!1,mode:[],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:""});function ue(Se="text"){le.value={name:"",modelName:"",type:Se,think:!1,mode:[],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:""}}function ee(){return k.value?(Array.isArray(k.value.models)||(k.value.models=Array.isArray(k.value.model)?[...k.value.model]:[]),k.value.model=k.value.models,k.value.models):[]}function de(){const Se=le.value.name.trim(),Ie=le.value.modelName.trim();if(!Se)return window.$message.error($t("settings.vendor.msg.fillDisplayName")),null;if(!Ie)return window.$message.error($t("settings.vendor.msg.fillModelId")),null;if(le.value.type==="text")return{name:Se,modelName:Ie,type:"text",think:le.value.think,associationSkills:le.value.associationSkills};if(le.value.type==="image"){const gt=le.value.mode;return gt.length?{name:Se,modelName:Ie,type:"image",mode:gt,associationSkills:le.value.associationSkills}:(window.$message.error($t("settings.vendor.msg.selectImageMode")),null)}const ze=[...le.value.mode];if(le.value.mixedMode.length>0&&ze.push([...le.value.mixedMode]),!ze.length)return window.$message.error($t("settings.vendor.msg.selectVideoMode")),null;const Ze=[];for(let gt=0;gtNumber.isFinite(on)&&on>0),dn=St.resolution.filter(Boolean);if(!Pt.length)return window.$message.error(`${$t("settings.vendor.msg.groupPrefix",{n:gt+1})}${$t("settings.vendor.msg.addDuration")}`),null;if(!dn.length)return window.$message.error(`${$t("settings.vendor.msg.groupPrefix",{n:gt+1})}${$t("settings.vendor.msg.addResolution")}`),null;Ze.push({duration:Pt,resolution:dn})}return{name:Se,modelName:Ie,type:"video",mode:ze,audio:le.value.audio,durationResolutionMap:Ze,associationSkills:le.value.associationSkills}}function z(){if(!k.value){window.$message.error($t("settings.vendor.msg.selectVendorFirst"));return}se.value=null,ue("text"),oe.value=!0}function Y(){const Se=ee();if(!Se.length&&!k.value)return;const Ie=de();if(!Ie)return;if(Se.findIndex((Ze,gt)=>se.value!==null&>===se.value?!1:Ze.modelName===Ie.modelName)!==-1){window.$message.error($t("settings.vendor.msg.modelIdExists"));return}se.value===null?(Se.push(Ie),window.$message.success($t("settings.vendor.msg.modelAdded"))):(Se.splice(se.value,1,Ie),window.$message.success($t("settings.vendor.msg.modelUpdated"))),oe.value=!1}function ie(Se){var ze;const Ie=ee();if(se.value=Ie.findIndex(Ze=>Ze.modelName===Se.modelName),Se.type==="text"&&(le.value={name:Se.name,modelName:Se.modelName,type:"text",think:Se.think,mode:[],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:Se.associationSkills||""}),Se.type==="image"&&(le.value={name:Se.name,modelName:Se.modelName,type:"image",think:!1,mode:[...Se.mode],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:Se.associationSkills||""}),Se.type==="video"){const Ze=((ze=Se.durationResolutionMap)==null?void 0:ze.length)>0?Se.durationResolutionMap.map(Pt=>({duration:Pt.duration.map(String),resolution:[...Pt.resolution]})):[{duration:[],resolution:[]}],gt=[];let St=[];for(const Pt of Se.mode)Array.isArray(Pt)?St=[...Pt]:gt.push(Pt);le.value={name:Se.name,modelName:Se.modelName,type:"video",think:!1,mode:gt,mixedMode:St,audio:Se.audio,durationResolutionMap:Ze,associationSkills:Se.associationSkills||""}}oe.value=!0}async function te(Se){var Ie,ze,Ze,gt,St,Pt,dn;if(!((ze=(Ie=k.value)==null?void 0:Ie.inputValues)!=null&&ze.apiKey))return window.$message.error($t("settings.vendor.msg.enterApiKey"));if(!((gt=(Ze=k.value)==null?void 0:Ze.inputValues)!=null&>.baseUrl))return window.$message.error($t("settings.vendor.msg.enterApiUrl"));if(!R[Se.modelName]){R[Se.modelName]=!0;try{const{data:on}=await mn.post("/setting/vendorConfig/modelTest",{type:Se.type,modelName:Se.modelName,id:k.value.id});Se.type==="text"?window.$message.success(`${Se.modelName} ${$t("settings.vendor.msg.testSuccess")}: ${typeof on=="string"?on:JSON.stringify(on)}`):(Se.type==="image"||Se.type==="video")&&(B.value=Se.modelName,M.value=Se.type,Q.value=on,P.value=!0,window.$message.success(`${Se.type==="image"?$t("settings.vendor.msg.imageGenSuccess"):$t("settings.vendor.msg.videoGenSuccess")}`))}catch(on){const pn=((Pt=(St=on==null?void 0:on.response)==null?void 0:St.data)==null?void 0:Pt.message)||((dn=on==null?void 0:on.response)==null?void 0:dn.data)||(on==null?void 0:on.message)||String(on);window.$message.error(`${$t("settings.vendor.msg.requestFailed")}${typeof pn=="string"?pn:JSON.stringify(pn)}`)}finally{delete R[Se.modelName]}}}function Z(Se){if(!k.value)return;const Ie=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.deleteModelConfirm"),body:`${$t("settings.vendor.msg.deleteModelBody",{name:Se})}`,confirmBtn:{content:$t("settings.vendor.msg.confirmDelete"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{const Ze=ee().filter(gt=>gt.modelName!==Se);k.value.models=Ze,k.value.model=Ze,window.$message.success($t("settings.vendor.msg.modelDeleted")),Ie.destroy()}})}function he(){k.value&&(q.value=k.value.id,y.value=k.value.code,O.value=!0)}function pe(){if(!k.value)return;const Se=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.deleteVendorConfirm"),body:`${$t("settings.vendor.msg.deleteVendorBody",{name:k.value.name})}`,confirmBtn:{content:$t("settings.vendor.msg.confirmDelete"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{var Ie;mn.post("/setting/vendorConfig/deleteVendor",{id:(Ie=k.value)==null?void 0:Ie.id}).then(()=>{var ze;window.$message.success($t("settings.vendor.msg.vendorDeleted")),f.value===((ze=k.value)==null?void 0:ze.id)&&(f.value=void 0),v(),Se.destroy()}).catch(ze=>{window.$message.error(`${$t("settings.vendor.msg.deleteFailed")}${ze.message}`)})}})}function Ce(){var Se,Ie,ze,Ze,gt;mn.post("/setting/vendorConfig/updateVendor",{id:(Se=k.value)==null?void 0:Se.id,inputs:(Ie=k.value)==null?void 0:Ie.inputs,inputValues:(ze=k.value)==null?void 0:ze.inputValues,models:((Ze=k.value)==null?void 0:Ze.models)??((gt=k.value)==null?void 0:gt.model)??[]}).then(()=>{window.$message.success($t("settings.vendor.msg.vendorConfigUpdated")),v()}).catch(St=>{window.$message.error(`${$t("settings.vendor.msg.updateFailed")}${St.message}`)})}function Qe(Se,Ie){const ze=Ie===1?0:1;mn.post("/setting/vendorConfig/enableVendor",{id:Se.id,enable:Ie}).then(()=>{}).catch(Ze=>{Se.enable=ze})}const ke=fe("linkAdd"),me=fe(""),_e=fe(!1);pt(ke,Se=>{Se=="codeAdd"?O.value=!0:O.value=!1});function Te(){if(_e.value)return;const Se=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.linkAddVendorRiskBody"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{Se.destroy();const Ie=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.addVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndAdd"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{const ze=Wh({fullscreen:!0,attach:"body",preventScrollThrough:!1}),Ze=setTimeout(()=>{ze.hide(),clearTimeout(Ze)},1e3);_e.value=!0;try{const{data:gt}=await mn.post("/setting/vendorConfig/getCodeByLink",{link:me.value});if(!gt.includes("vendor")){let St=null;gt.includes("")?St=fo.alert({theme:"danger",header:"链接返回了一个网页,添加供应商需要返回TS代码,请确认链接是否正确",body:"请勿输入中转站地址,如需使用中转站请修改OpenAI标准接口的baseUrl使用中转站地址",onConfirm:({e:Pt})=>{St.hide()}}):fo.alert({theme:"danger",header:"链接返回的内容不正确,添加供应商需要返回TS代码,请确认链接是否正确",onConfirm:({e:Pt})=>{St.hide()}});return}gt?(mn.post("/setting/vendorConfig/addVendor",{tsCode:gt}),window.$message.success($t("settings.vendor.msg.vendorAdded")),w.value=!1,O.value=!1,v()):(window.$message.error($t("settings.vendor.msg.linkAddFailed")),O.value=!1)}catch(gt){window.$message.error(`${$t("settings.vendor.msg.addFailed")}${gt.message}`)}finally{clearTimeout(Ze),ze.hide(),_e.value=!1,Ie.destroy()}},onClose:()=>Ie.hide()})},onClose:()=>Se.hide()})}const De=fe();async function Ye(Se){const Ie=Se.raw;if(!Ie)return window.$message.error($t("workbench.novel.import.msg.selectFile")),!1;Wh(!0);try{const ze=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.importAdd"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{ze.destroy();const Ze=fo.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.addVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndAdd"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{const gt=new FileReader;gt.readAsText(Ie),gt.onload=()=>{const St=gt.result;mn.post("/setting/vendorConfig/addVendor",{tsCode:St}).then(Pt=>{window.$message.success($t("settings.vendor.msg.vendorAdded")),w.value=!1,O.value=!1,v()}).catch(Pt=>{window.$message.error(`${$t("settings.vendor.msg.addFailed")}${Pt.message}`)}).finally(()=>{Ze.destroy()})}},onClose:()=>Ze.hide()})},onClose:()=>ze.hide()})}catch{window.$message.error($t("workbench.novel.import.msg.parseFailed"))}finally{Wh(!1)}return!1}const ot=fe([]);function We(){var Se;(Se=De.value)==null||Se.triggerUpload()}function et(){return Promise.resolve({response:{},status:"success"})}async function st(Se){var ze;const Ie=(ze=Se.dataTransfer)==null?void 0:ze.files;Ie&&Ie.length>0&&await Ye({raw:Ie[0]})}function Me(Se){var gt;const Ie=Se.target,ze=(gt=Ie.files)==null?void 0:gt[0];if(!ze)return;const Ze=new FileReader;Ze.onload=St=>{var Pt;y.value=((Pt=St.target)==null?void 0:Pt.result)||""},Ze.readAsText(ze),Ie.value=""}return(Se,Ie)=>{const ze=dL,Ze=Si,gt=yZe,St=T3n,Pt=Jbn,dn=Kbn,on=Xy,pn=p2,ni=Wu,Zn=wwn,Pi=bwn,rr=_n("i-plus"),Hr=_n("i-lightning"),Bo=_n("i-pencil"),lo=_n("i-delete"),Fr=Sg,is=km,yi=A2,Gt=uL,gi=pA,ri=L3n,tr=OZe,ht=py,At=U4e,Mt=pZe,Kt=gc,qn=Wc,Zt=x3n,so=Ez,Un=X4e,dt=_n("i-upload-one"),Ne=f4e("loading");return xe(),Ge("div",LTo,[ge("div",xTo,[ge("div",ETo,[c(Ze,{block:"",theme:"primary",onClick:re},{icon:Oe(()=>[c(ze,{name:"add"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.addVendor")),1)]),_:1})]),uu((xe(),Ge("div",TTo,[Ae(g).length>0?(xe(),Ut(dn,{key:0,modelValue:Ae(f),"onUpdate:modelValue":Ie[1]||(Ie[1]=nt=>Fn(f)?f.value=nt:null),theme:"light"},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(g),(nt,bn)=>(xe(),Ut(Pt,{key:bn,value:nt.id,onClick:hn=>f.value=nt.id,style:{position:"relative"}},_Y({default:Oe(()=>[ge("span",null,Pe(nt.name),1),c(St,{modelValue:nt.enable,"onUpdate:modelValue":hn=>nt.enable=hn,customValue:[1,0],onClick:Ie[0]||(Ie[0]=Mr(()=>{},["stop"])),onChange:hn=>Qe(nt,hn),style:{position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)","z-index":"10"}},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:2},[j(nt.icon)?{name:"icon",fn:Oe(()=>[c(gt,{size:"24px",shape:"round",image:nt.icon},null,8,["image"])]),key:"0"}:void 0]),1032,["value","onClick"]))),128))]),_:1},8,["modelValue"])):(xe(),Ut(on,{key:1,title:Se.$t("settings.vendor.noVendor"),style:{"margin-top":"16px"}},null,8,["title"]))])),[[Ne,Ae(m)]])]),Ae(k)?(xe(),Ge("div",QTo,[ge("div",DTo,[c(yi,{data:Ae(k),labelAlign:"top"},{default:Oe(()=>[ge("div",BTo,[ge("span",RTo,"#"+Pe(Ae(k).id),1),ge("span",ITo,"@"+Pe(Ae(k).author),1)]),c(pn,null,{default:Oe(()=>[c(Ae(i3),{modelValue:Ae(k).description,"onUpdate:modelValue":Ie[2]||(Ie[2]=nt=>Ae(k).description=nt),theme:"light"},null,8,["modelValue"])]),_:1}),(xe(!0),Ge(sn,null,Bi(Ae(p),nt=>(xe(),Ut(pn,{key:nt.key,name:nt.key},_Y({label:Oe(()=>[ge("span",MTo,[Bt(Pe(nt.label)+" ",1),Ie[23]||(Ie[23]=ge("span",{class:"requiredMark"},"*",-1)),ge("span",PTo,Pe(Se.$t("settings.vendor.required")),1)])]),default:Oe(()=>[c(ni,{modelValue:Ae(k).inputValues[nt.key],"onUpdate:modelValue":bn=>Ae(k).inputValues[nt.key]=bn,type:nt.type,clearable:"",onBlur:Ce},{"prefix-icon":Oe(()=>[c(ze,{name:I(nt.type)},null,8,["name"])]),_:2},1032,["modelValue","onUpdate:modelValue","type"])]),_:2},[F(nt)?{name:"help",fn:Oe(()=>[ge("span",FTo,Pe(F(nt)),1)]),key:"0"}:void 0]),1032,["name"]))),128)),Ae(b).length>0?(xe(),Ge("div",NTo,[c(Pi,null,{default:Oe(()=>[c(Zn,{value:"optional-inputs",header:Se.$t("settings.vendor.optionalSection")},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(b),nt=>(xe(),Ut(pn,{key:nt.key,name:nt.key,label:nt.label},_Y({default:Oe(()=>[c(ni,{modelValue:Ae(k).inputValues[nt.key],"onUpdate:modelValue":bn=>Ae(k).inputValues[nt.key]=bn,type:nt.type,clearable:"",onBlur:Ce},{"prefix-icon":Oe(()=>[c(ze,{name:I(nt.type)},null,8,["name"])]),_:2},1032,["modelValue","onUpdate:modelValue","type"])]),_:2},[F(nt)?{name:"help",fn:Oe(()=>[ge("span",UTo,Pe(F(nt)),1)]),key:"0"}:void 0]),1032,["name","label"]))),128))]),_:1},8,["header"])]),_:1})])):nn("",!0),ge("div",jTo,[ge("h4",WTo,Pe(Se.$t("settings.vendor.modelSettings")),1),c(Ze,{variant:"outline",size:"small",onClick:z},{icon:Oe(()=>[c(rr,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.addManually")),1)]),_:1})]),(xe(!0),Ge(sn,null,Bi(Ae(A),(nt,bn)=>(xe(),Ut(is,{key:bn,class:"modelCard"},{default:Oe(()=>[ge("div",VTo,[ge("span",zTo,Pe(nt.name),1),ge("div",HTo,[c(Ze,{size:"small",variant:"text",loading:!!Ae(R)[nt.modelName],onClick:hn=>te(nt)},{icon:Oe(()=>[c(Hr,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.test")),1)]),_:1},8,["loading","onClick"]),c(Ze,{variant:"text",size:"small",onClick:hn=>ie(nt)},{icon:Oe(()=>[c(Bo,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.edit")),1)]),_:1},8,["onClick"]),c(Ze,{variant:"text",size:"small",theme:"danger",onClick:hn=>Z(nt.modelName)},{icon:Oe(()=>[c(lo,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.delete")),1)]),_:1},8,["onClick"])])]),ge("div",$To,[c(Fr,{theme:"primary"},{default:Oe(()=>[Bt(Pe(Se.$t(r(nt.type))),1)]),_:2},1024),(xe(!0),Ge(sn,null,Bi(nt.mode,(hn,En)=>(xe(),Ge(sn,{key:En},[Array.isArray(hn)?(xe(!0),Ge(sn,{key:1},Bi(hn,(wi,Ue)=>(xe(),Ut(Fr,{variant:"light",key:Ue},{default:Oe(()=>[Bt(Pe(Se.$t(o(wi,nt.type))),1)]),_:2},1024))),128)):(xe(),Ut(Fr,{key:0,variant:"light"},{default:Oe(()=>[Bt(Pe(Se.$t(o(hn,nt.type))),1)]),_:2},1024))],64))),128))])]),_:2},1024))),128))]),_:1},8,["data"]),ge("div",XTo,[c(Ze,{theme:"danger",loading:Ae(_),onClick:pe},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.deleteVendor")),1)]),_:1},8,["loading"]),c(Ze,{theme:"default",loading:Ae(_),onClick:he},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.editCode")),1)]),_:1},8,["loading"])])])])):nn("",!0),c(Kt,{placement:"center",width:"40vw",visible:Ae(oe),"onUpdate:visible":Ie[12]||(Ie[12]=nt=>Fn(oe)?oe.value=nt:null),header:Ae(se)===null?Se.$t("settings.vendor.addModel"):Se.$t("settings.vendor.editModel"),maskClosable:!1,onConfirm:Y},{default:Oe(()=>[ge("div",GTo,[c(yi,{data:Ae(le),labelAlign:"top"},{default:Oe(()=>[c(pn,{name:"name",label:Se.$t("settings.vendor.displayName")},{default:Oe(()=>[c(ni,{modelValue:Ae(le).name,"onUpdate:modelValue":Ie[3]||(Ie[3]=nt=>Ae(le).name=nt),placeholder:Se.$t("settings.vendor.displayNamePlaceholder"),clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(pn,{name:"modelName",label:Se.$t("settings.vendor.modelId")},{default:Oe(()=>[c(ni,{modelValue:Ae(le).modelName,"onUpdate:modelValue":Ie[4]||(Ie[4]=nt=>Ae(le).modelName=nt),placeholder:Se.$t("settings.vendor.modelIdPlaceholder"),clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(pn,{name:"type",label:Se.$t("settings.vendor.modelType")},{default:Oe(()=>[c(gi,{modelValue:Ae(le).type,"onUpdate:modelValue":Ie[5]||(Ie[5]=nt=>Ae(le).type=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(a,nt=>c(Gt,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["label"]),Ae(le).type!=="text"?(xe(),Ut(pn,{key:0,name:"associationSkills",label:Se.$t("settings.vendor.associationSkills")},{default:Oe(()=>[c(Fr,null,{default:Oe(()=>[Bt(Pe(Ae(le).associationSkills),1)]),_:1})]),_:1},8,["label"])):nn("",!0),Ae(le).type==="text"?(xe(),Ut(pn,{key:1,name:"think",label:Se.$t("settings.vendor.think")},{default:Oe(()=>[c(tr,{modelValue:Ae(le).think,"onUpdate:modelValue":Ie[6]||(Ie[6]=nt=>Ae(le).think=nt)},{default:Oe(()=>[c(ri,{value:!0},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.supported")),1)]),_:1}),c(ri,{value:!1},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.notSupported")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):nn("",!0),Ae(le).type==="image"?(xe(),Ut(pn,{key:2,name:"mode",label:Se.$t("settings.vendor.imageMode")},{default:Oe(()=>[c(At,{modelValue:Ae(le).mode,"onUpdate:modelValue":Ie[7]||(Ie[7]=nt=>Ae(le).mode=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(l,nt=>c(ht,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["label"])):nn("",!0),Ae(le).type==="video"?(xe(),Ge(sn,{key:3},[c(pn,{name:"mode",label:Se.$t("settings.vendor.videoMode")},{default:Oe(()=>[ge("div",YTo,[c(At,{modelValue:Ae(le).mode,"onUpdate:modelValue":Ie[8]||(Ie[8]=nt=>Ae(le).mode=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(d,nt=>c(ht,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"]),ge("div",ZTo,[c(At,{modelValue:Ae(le).mixedMode,"onUpdate:modelValue":Ie[9]||(Ie[9]=nt=>Ae(le).mixedMode=nt),style:{display:"flex","flex-direction":"row",gap:"8px"}},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(u,nt=>c(ht,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])])]),_:1},8,["label"]),c(pn,{name:"audio",label:Se.$t("settings.vendor.audioOutput")},{default:Oe(()=>[c(tr,{modelValue:Ae(le).audio,"onUpdate:modelValue":Ie[10]||(Ie[10]=nt=>Ae(le).audio=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(h,nt=>c(ri,{key:String(nt.value),value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["label"]),c(pn,{name:"durationResolutionMap",label:Se.$t("settings.vendor.durationResolution")},{default:Oe(()=>[ge("div",qTo,[ge("div",KTo,[Ie[24]||(Ie[24]=ge("div",{class:"drmHeaderIndex"},null,-1)),ge("div",JTo,Pe(Se.$t("settings.vendor.durationSec")),1),Ie[25]||(Ie[25]=ge("div",{class:"drmHeaderArrow"},null,-1)),ge("div",eQo,Pe(Se.$t("settings.vendor.resolution")),1),Ie[26]||(Ie[26]=ge("div",{class:"drmHeaderAction"},null,-1))]),(xe(!0),Ge(sn,null,Bi(Ae(le).durationResolutionMap,(nt,bn)=>(xe(),Ge("div",{key:bn,class:"drmRow"},[ge("div",tQo,Pe(bn+1),1),c(Mt,{modelValue:nt.duration,"onUpdate:modelValue":hn=>nt.duration=hn,placeholder:Se.$t("settings.vendor.enterAndPress"),class:"drmInput"},null,8,["modelValue","onUpdate:modelValue","placeholder"]),Ie[27]||(Ie[27]=ge("div",{class:"drmArrow"},"→",-1)),c(Mt,{modelValue:nt.resolution,"onUpdate:modelValue":hn=>nt.resolution=hn,placeholder:Se.$t("settings.vendor.enterAndPress"),class:"drmInput"},null,8,["modelValue","onUpdate:modelValue","placeholder"]),c(Ze,{variant:"text",theme:"danger",size:"small",disabled:Ae(le).durationResolutionMap.length===1,onClick:hn=>Ae(le).durationResolutionMap.splice(bn,1)},{icon:Oe(()=>[c(lo,{theme:"outline"})]),_:1},8,["disabled","onClick"])]))),128)),c(Ze,{style:{"margin-top":"16px"},variant:"dashed",block:"",onClick:Ie[11]||(Ie[11]=nt=>Ae(le).durationResolutionMap.push({duration:[],resolution:[]}))},{icon:Oe(()=>[c(rr,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.addDurationResolution")),1)]),_:1})])]),_:1},8,["label"])],64)):nn("",!0)]),_:1},8,["data"])])]),_:1},8,["visible","header"]),c(Kt,{width:"50vw",placement:"center",visible:Ae(P),"onUpdate:visible":Ie[13]||(Ie[13]=nt=>Fn(P)?P.value=nt:null),header:Se.$t("settings.vendor.testResult")+" - "+Ae(B),footer:!1},{default:Oe(()=>[ge("div",nQo,[Ae(M)==="image"?(xe(),Ge("div",iQo,[ge("img",{src:Ae(Q),alt:"generated image"},null,8,rQo)])):Ae(M)==="video"?(xe(),Ge("div",oQo,[ge("video",{src:Ae(Q),controls:"",autoplay:"",loop:""},null,8,sQo)])):(xe(),Ge("div",aQo,[c(qn,{size:"large",text:Se.$t("settings.vendor.generating")},null,8,["text"])]))])]),_:1},8,["visible","header"]),c(Kt,{width:"30vw",placement:"center",top:"10vh",footer:!1,visible:Ae(w),"onUpdate:visible":Ie[18]||(Ie[18]=nt=>Fn(w)?w.value=nt:null),header:Se.$t("settings.vendor.addVendorDialog"),maskClosable:!1},{default:Oe(()=>[ge("div",lQo,[c(tr,{variant:"default-filled",modelValue:Ae(ke),"onUpdate:modelValue":Ie[14]||(Ie[14]=nt=>Fn(ke)?ke.value=nt:null)},{default:Oe(()=>[c(Zt,{value:"linkAdd"},{default:Oe(()=>[...Ie[28]||(Ie[28]=[Bt("通过链接添加",-1)])]),_:1}),c(Zt,{value:"importAdd"},{default:Oe(()=>[...Ie[29]||(Ie[29]=[Bt("通过文件导入",-1)])]),_:1}),c(Zt,{value:"codeAdd"},{default:Oe(()=>[...Ie[30]||(Ie[30]=[Bt("通过代码添加",-1)])]),_:1})]),_:1},8,["modelValue"]),Ae(ke)=="linkAdd"?(xe(),Ge("div",cQo,[c(so,{theme:"warning",style:{"margin-bottom":"20px"}},{default:Oe(()=>[...Ie[31]||(Ie[31]=[Bt(" 请勿输入不可靠的地址!点击“确定”后,Toonflow 将自动从该地址拉取代码并添加为供应商。如果地址存在安全隐患,可能导致引入存在风险的供应商代码。建议仅输入来自可信来源的地址。 ",-1)])]),_:1}),c(ni,{modelValue:Ae(me),"onUpdate:modelValue":Ie[15]||(Ie[15]=nt=>Fn(me)?me.value=nt:null),placeholder:Se.$t("settings.vendor.linkAddPlaceholder")},null,8,["modelValue","placeholder"]),ge("div",dQo,[c(Ze,{loading:Ae(_e),disabled:!Ae(me).trim(),onClick:Te},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.linkAdd")),1)]),_:1},8,["loading","disabled"])])])):nn("",!0),Ae(ke)=="importAdd"?(xe(),Ge("div",uQo,[ge("div",{class:"uploadArea",onClick:We,onDragover:Ie[17]||(Ie[17]=Mr(()=>{},["prevent"])),onDrop:Mr(st,["prevent"])},[c(Un,{ref_key:"uploadRef",ref:De,modelValue:Ae(ot),"onUpdate:modelValue":Ie[16]||(Ie[16]=nt=>Fn(ot)?ot.value=nt:null),theme:"file",multiple:!1,max:1,accept:".ts","before-upload":Ye,"request-method":et,style:{display:"none"}},null,8,["modelValue"]),ge("div",hQo,[c(dt,{theme:"outline",size:"32",fill:"var(--td-brand-color)"})]),ge("p",fQo,Pe(Se.$t("workbench.novel.import.importAdd")),1),ge("p",gQo,Pe(Se.$t("workbench.novel.import.limit")),1)],32)])):nn("",!0),Ae(ke)=="codeAdd"?(xe(),Ge("div",mQo)):nn("",!0)])]),_:1},8,["visible","header"]),c(Kt,{width:"70vw",placement:"center",top:"10vh",visible:Ae(O),"onUpdate:visible":Ie[22]||(Ie[22]=nt=>Fn(O)?O.value=nt:null),header:Se.$t("settings.vendor.code"),maskClosable:!1,onConfirm:J},{default:Oe(()=>[ge("div",kQo,[ge("div",vQo,[c(ze,{name:"info-circle",size:"16px"}),ge("span",null,Pe(Se.$t("settings.vendor.codeEditorInfo")),1)]),ge("div",AQo,[c(Ze,{variant:"text",size:"small",onClick:Ie[19]||(Ie[19]=nt=>y.value=Ae(b5e))},{icon:Oe(()=>[c(ze,{name:"rollback"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.reset")),1)]),_:1}),c(Ze,{variant:"outline",size:"small",onClick:Ie[20]||(Ie[20]=nt=>{var bn;return(bn=Ae(C))==null?void 0:bn.click()})},{icon:Oe(()=>[c(ze,{name:"upload"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.importFile")),1)]),_:1}),ge("input",{ref_key:"fileInputRef",ref:C,type:"file",accept:".ts,.js,.txt,.json",style:{display:"none"},onChange:Me},null,544)])]),ge("div",pQo,[c(Ae(STo),{value:Ae(y),"onUpdate:value":Ie[21]||(Ie[21]=nt=>Fn(y)?y.value=nt:null),language:"typescript",theme:"vs-dark",height:600,options:s},null,8,["value"])])]),_:1},8,["visible","header"])])}}}),OQo=oo(wQo,[["__scopeId","data-v-49f0cb9a"]]),yQo={class:"memoryConfig"},CQo={class:"actionRow f frr"},_Qo=Je({__name:"memoryConfig",setup(e){const t=fe({messagesPerSummary:3,shortTermLimit:5,summaryMaxLength:500,summaryLimit:10,ragLimit:3,deepRetrieveSummaryLimit:5,modelOnnxFile:["all-MiniLM-L6-v2","onnx","model_fp16.onnx"],modelDtype:"fp16"}),n=["fp16","auto","fp32","q8","int8","uint8","q4","bnb4","q4f16"],r=fe(!1),o=fe(!1),s=fe(!1);async function a(){r.value=!0;try{const{data:h}=await mn.get("/setting/memoryConfig/getMemory");t.value={messagesPerSummary:h.messagesPerSummary??3,shortTermLimit:h.shortTermLimit??5,summaryMaxLength:h.summaryMaxLength??500,summaryLimit:h.summaryLimit??10,ragLimit:h.ragLimit??3,deepRetrieveSummaryLimit:h.deepRetrieveSummaryLimit??5,modelOnnxFile:h.modelOnnxFile??["all-MiniLM-L6-v2","onnx","model_fp16.onnx"],modelDtype:h.modelDtype??"fp16"}}catch(h){window.$message.warning(h==null?void 0:h.message)}finally{r.value=!1}}async function l(){o.value=!0;try{await mn.post("/setting/memoryConfig/sureMemory",{...t.value}),window.$message.success($t("settings.memory.msg.saved"))}catch(h){window.$message.warning(h==null?void 0:h.message)}finally{o.value=!1}}async function d(){const h=fo.confirm({header:$t("settings.memory.msg.clearConfirmTitle"),body:$t("settings.memory.msg.clearConfirmBody"),confirmBtn:$t("settings.memory.msg.confirmClear"),cancelBtn:$t("settings.memory.msg.cancel"),onConfirm:async()=>{s.value=!0;try{await mn.post("/setting/memoryConfig/delAllMemory"),window.$message.success($t("settings.memory.msg.cleared")),h.hide()}catch(g){window.$message.error((g==null?void 0:g.msg)||$t("settings.memory.msg.clearFailed"))}finally{s.value=!1}}})}function u(){t.value={messagesPerSummary:3,shortTermLimit:5,summaryMaxLength:500,summaryLimit:10,ragLimit:3,deepRetrieveSummaryLimit:5,modelOnnxFile:["all-MiniLM-L6-v2","onnx","model_fp16.onnx"],modelDtype:"fp16"},l()}return An(()=>{a()}),(h,g)=>{const m=Ez,v=pZe,f=p2,k=uL,A=pA,p=km,b=Lz,w=Si,O=A2;return xe(),Ge("div",yQo,[c(m,{theme:"warning",class:"topAlert",message:h.$t("settings.memory.warning")},null,8,["message"]),c(O,{data:t.value,labelAlign:"top",labelWidth:"180px",class:"memoryForm",onSubmit:l},{default:Oe(()=>[c(p,{title:h.$t("settings.memory.vectorModelConfig"),bordered:!0,style:{"margin-top":"16px"}},{default:Oe(()=>[c(f,{label:h.$t("settings.memory.modelFilePath"),name:"modelOnnxFile"},{help:Oe(()=>[Bt("向量模型文件路径:/data/models/"+Pe(t.value.modelOnnxFile?t.value.modelOnnxFile.join("/"):""),1)]),default:Oe(()=>[c(v,{modelValue:t.value.modelOnnxFile,"onUpdate:modelValue":g[0]||(g[0]=y=>t.value.modelOnnxFile=y),clearable:""},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.quantizationType"),name:"modelDtype"},{help:Oe(()=>[...g[8]||(g[8]=[])]),default:Oe(()=>[c(A,{modelValue:t.value.modelDtype,"onUpdate:modelValue":g[1]||(g[1]=y=>t.value.modelDtype=y),placeholder:h.$t("settings.memory.quantizationPlaceholder")},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(n,y=>c(k,{key:y,value:y,label:y},null,8,["value","label"])),64))]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["title"]),c(p,{title:h.$t("settings.memory.memoryParams"),bordered:!0,style:{"margin-top":"16px"}},{default:Oe(()=>[c(f,{label:h.$t("settings.memory.messagesPerSummary"),name:"messagesPerSummary"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.messagesPerSummaryHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.messagesPerSummary,"onUpdate:modelValue":g[2]||(g[2]=y=>t.value.messagesPerSummary=y),min:1,max:200,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.shortTermLimit"),name:"shortTermLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.shortTermLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.shortTermLimit,"onUpdate:modelValue":g[3]||(g[3]=y=>t.value.shortTermLimit=y),min:1,max:100,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.summaryMaxLength"),name:"summaryMaxLength"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.summaryMaxLengthHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.summaryMaxLength,"onUpdate:modelValue":g[4]||(g[4]=y=>t.value.summaryMaxLength=y),min:0,max:1e3,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.summaryLimit"),name:"summaryLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.summaryLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.summaryLimit,"onUpdate:modelValue":g[5]||(g[5]=y=>t.value.summaryLimit=y),min:0,max:100,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.ragLimit"),name:"ragLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.ragLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.ragLimit,"onUpdate:modelValue":g[6]||(g[6]=y=>t.value.ragLimit=y),min:0,max:50,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.deepRetrieveSummaryLimit"),name:"deepRetrieveSummaryLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.deepRetrieveSummaryLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.deepRetrieveSummaryLimit,"onUpdate:modelValue":g[7]||(g[7]=y=>t.value.deepRetrieveSummaryLimit=y),min:0,max:100,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["title"]),ge("div",CQo,[c(w,{theme:"primary",type:"submit",loading:o.value},{default:Oe(()=>[Bt(Pe(h.$t("settings.memory.saveConfig")),1)]),_:1},8,["loading"]),c(w,{theme:"danger",variant:"outline",loading:s.value,onClick:d},{default:Oe(()=>[Bt(Pe(h.$t("settings.memory.clearMemory")),1)]),_:1},8,["loading"]),c(w,{theme:"warning",variant:"outline",loading:o.value,onClick:u},{default:Oe(()=>[Bt(Pe(h.$t("settings.memory.restoreDefault")),1)]),_:1},8,["loading"])])]),_:1},8,["data"])])}}}),SQo=oo(_Qo,[["__scopeId","data-v-c59a3784"]]),LQo={class:"fileManagement"},xQo={class:"folderList"},EQo={class:"folderInfo"},TQo={class:"folderName"},QQo={class:"folderDesc"},DQo=Je({__name:"fileManagement",setup(e){const{isElectron:t}=xs(ku()),n=[{label:"settings.file.folders.data",path:"",desc:"settings.file.folders.dataDesc"},{label:"settings.file.folders.logs",path:"logs",desc:"settings.file.folders.logsDesc"},{label:"settings.file.folders.oss",path:"oss",desc:"settings.file.folders.ossDesc"},{label:"settings.file.folders.skills",path:"skills",desc:"settings.file.folders.skillsDesc"},{label:"settings.file.folders.models",path:"models",desc:"settings.file.folders.modelsDesc"},{label:"settings.file.folders.web",path:"web",desc:"settings.file.folders.webDesc"},{label:"settings.file.folders.serve",path:"serve",desc:"settings.file.folders.serveDesc"}],r=o=>{mn.post("/setting/fileManagement/openFolder",{path:o}).catch(s=>{var a;(a=window.$message)==null||a.error(s.message||$t("settings.file.openFailed"))})};return(o,s)=>{const a=Si,l=km,d=_n("i-reduce-one"),u=Xy;return xe(),Ge("div",LQo,[Ae(t)?(xe(),Ut(l,{key:0,title:o.$t("settings.file.quickOpen"),bordered:""},{default:Oe(()=>[ge("div",xQo,[(xe(),Ge(sn,null,Bi(n,h=>ge("div",{key:h.path,class:"folderItem"},[ge("div",EQo,[ge("div",TQo,Pe(o.$t(h.label)),1),ge("div",QQo,Pe(o.$t(h.desc)),1)]),c(a,{theme:"primary",variant:"outline",onClick:g=>r(h.path)},{default:Oe(()=>[Bt(Pe(o.$t("settings.file.open")),1)]),_:1},8,["onClick"])])),64))])]),_:1},8,["title"])):(xe(),Ut(u,{key:1,description:o.$t("settings.file.dockerDesc"),title:o.$t("settings.file.desktopOnly")},{image:Oe(()=>[c(d,{theme:"outline",fill:"red"})]),_:1},8,["description","title"]))])}}}),BQo=oo(DQo,[["__scopeId","data-v-b9c6a62b"]]),RQo={class:"skillManagement"},IQo={class:"sidebarPanel"},MQo={class:"treeWrap"},PQo={class:"viewPanel"},FQo={key:0,class:"viewHeader"},NQo={class:"fileName"},UQo={key:1,class:"previewWrap"},jQo=Je({__name:"skillManagement",setup(e){const t=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"],n=fe([]),r=fe(""),o=fe(""),s=fe(""),a=fe(""),l=fe(!1),d=fe(!1),u=X(()=>r.value?[r.value]:[]),h=X(()=>{let p=n.value.filter(w=>w.endsWith(".md"));if(!o.value)return p;const b=o.value.toLowerCase();return p.filter(w=>w.toLowerCase().includes(b))}),g=X(()=>{const p=new Map,b=[];for(const O of h.value){const y=O.split("/").filter(Boolean);let C=b,_="";for(let S=0;SE.value===_)||C.push({label:y[S],value:_,isFile:!0,isRoot:y.length===1});else{let E=p.get(_);E||(E={label:y[S],value:_,isFile:!1,children:[]},p.set(_,E),C.push(E)),C=E.children}}const w=O=>{O.sort((y,C)=>y.isFile!==C.isFile?y.isFile?1:-1:y.label.localeCompare(C.label)),O.forEach(y=>y.children&&w(y.children))};return w(b),b});async function m(){try{const{data:p}=await mn.post("/setting/skillManagement/getSkillList");n.value=Array.isArray(p)?p:[]}catch(p){console.error(p)}}async function v(p){try{const{data:b}=await mn.post("/setting/skillManagement/getSkillContent",{path:p});s.value=typeof b=="string"?b:(b==null?void 0:b.content)||""}catch(b){console.error(b),s.value=""}}async function f(p,b){const w=p[p.length-1],O=typeof w=="string"?w:String(w||""),y=b.node.data;!O||!(y!=null&&y.isFile)||O===r.value||(r.value=O,await v(O))}function k(){a.value=s.value,l.value=!0}async function A(){if(r.value){d.value=!0;try{await mn.post("/setting/skillManagement/saveSkillContent",{path:r.value,content:a.value}),s.value=a.value,l.value=!1}catch(p){console.error(p)}finally{d.value=!1}}}return An(()=>m()),(p,b)=>{const w=Wu,O=_n("i-folder-open"),y=_n("i-file-text"),C=A4i,_=Xy,S=Si,L=gc;return xe(),Ge("div",RQo,[ge("aside",IQo,[c(w,{modelValue:o.value,"onUpdate:modelValue":b[0]||(b[0]=E=>o.value=E),clearable:"",placeholder:p.$t("setting.skillManagement.search")},null,8,["modelValue","placeholder"]),ge("div",MQo,[g.value.length?(xe(),Ut(C,{key:0,activable:"",hover:"",line:"","expand-on-click-node":"",data:g.value,actived:u.value,onActive:f},{icon:Oe(({node:E})=>[E.data.isFile?E.data.isRoot?(xe(),Ut(y,{key:1,theme:"outline",size:"16",fill:"red"})):(xe(),Ut(y,{key:2,theme:"outline",size:"16"})):(xe(),Ut(O,{key:0,theme:"outline",size:"16"}))]),_:1},8,["data","actived"])):(xe(),Ut(_,{key:1,description:p.$t("setting.skillManagement.empty")},null,8,["description"]))])]),ge("section",PQo,[r.value?(xe(),Ge("div",FQo,[ge("span",NQo,Pe(r.value),1),c(S,{size:"small",theme:"primary",variant:"outline",onClick:k},{default:Oe(()=>[Bt(Pe(p.$t("setting.skillManagement.edit")),1)]),_:1})])):nn("",!0),r.value?(xe(),Ge("div",UQo,[c(Ae(i3),{modelValue:s.value,toolbars:[],"preview-only":"","preview-theme":"github","code-theme":"atom"},null,8,["modelValue"])])):(xe(),Ut(_,{key:2,description:p.$t("setting.skillManagement.selectOnTheLeft")},null,8,["description"]))]),c(L,{placement:"center",visible:l.value,"onUpdate:visible":b[2]||(b[2]=E=>l.value=E),header:p.$t("setting.skillManagement.edit")+` ${r.value}`,width:"80vw","confirm-btn":p.$t("common.save"),"confirm-on-enter":!1,"on-confirm":A,loading:d.value},{default:Oe(()=>[c(Ae(X4),{modelValue:a.value,"onUpdate:modelValue":b[1]||(b[1]=E=>a.value=E),toolbars:t,"preview-theme":"github","code-theme":"atom",style:{height:"72vh"}},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","loading"])])}}}),WQo=oo(jQo,[["__scopeId","data-v-0d56dd55"]]),VQo={class:"otherConfig"},zQo=Je({__name:"devConfig",setup(e){const{isElectron:t}=xs(ku()),n=fe("0");function r(){var a,l;if(t.value)try{fetch("toonflow://openDevTool")}catch{(a=window.$message)==null||a.warning("$t('settings.dev.openDevtoolFailed')")}else(l=window.$message)==null||l.warning("$t('settings.dev.notInElectron')")}async function o(){const{data:a}=await mn.get("/setting/dev/getSwitchAiDevTool");n.value=(a==null?void 0:a.switchAiDevTool)||"0"}function s(){mn.post("/setting/dev/updateSwitchAiDevTool",{switchAiDevTool:n.value})}return An(()=>{o()}),(a,l)=>{const d=Ez,u=Si,h=p2,g=T3n,m=A2;return xe(),Ge("div",VQo,[c(m,{"label-align":"top"},{default:Oe(()=>[c(d,{theme:"warning"},{default:Oe(()=>[Bt(Pe(a.$t("settings.dev.warning")),1)]),_:1}),c(h,{label:a.$t("settings.dev.devtool"),name:"showTitleBar"},{default:Oe(()=>[c(u,{theme:"primary",onClick:r},{default:Oe(()=>[Bt(Pe(a.$t("settings.dev.openDevtool")),1)]),_:1})]),_:1},8,["label"]),c(h,{label:a.$t("settings.dev.aiDevtool"),name:"showTitleBar"},{default:Oe(()=>[c(g,{modelValue:Ae(t),"onUpdate:modelValue":l[0]||(l[0]=v=>Fn(t)?t.value=v:null),onChange:o},null,8,["modelValue"])]),_:1},8,["label"]),uu(c(h,{label:a.$t("settings.dev.switchAiDevTool"),name:"showTitleBar"},{tips:Oe(()=>[ge("p",null,Pe(a.$t("settings.dev.devtoolsDoc"))+":https://ai-sdk.dev/docs/ai-sdk-core/devtools",1),ge("p",null,Pe(a.$t("settings.dev.devtoolsDesc")),1),ge("p",null,Pe(a.$t("settings.dev.devtoolsDesc2")),1)]),default:Oe(()=>[c(g,{customValue:["1","0"],modelValue:Ae(n),"onUpdate:modelValue":l[1]||(l[1]=v=>Fn(n)?n.value=v:null),onChange:s},null,8,["modelValue"])]),_:1},8,["label"]),[[h1,Ae(t)]])]),_:1})])}}}),HQo=oo(zQo,[["__scopeId","data-v-472d7447"]]),$Qo={class:"promptManage"},XQo=["onClick"],GQo={class:"data"},YQo={class:"jb"},ZQo={class:"name"},qQo={class:"type"},KQo={class:"data"},JQo={class:"show"},eDo=Je({__name:"promptManage",setup(e){An(()=>{o()});const t=["bold","italic","strikeThrough","-","unorderedList","orderedList","-","revoke","next","=","preview"],n=fe(!1),r=fe([]);function o(){mn.post("/setting/promptManage/getPrompt").then(d=>{r.value=d.data.map(u=>({id:u.id,name:u.name,type:u.type,data:u.data}))})}function s(d){a.value={...d},n.value=!0}const a=fe({id:0,name:"",type:"",data:""});async function l(){await mn.post("/setting/promptManage/updatePrompt",{id:a.value.id,data:a.value.data}),window.$message.success($t("workbench.project.dialog.prompt.saveSuccess")),o(),n.value=!1}return(d,u)=>{const h=km,g=gc;return xe(),Ge("div",$Qo,[(xe(!0),Ge(sn,null,Bi(r.value,m=>(xe(),Ge("div",{key:m.id,style:{cursor:"pointer"},onClick:v=>s(m)},[c(h,{bordered:""},{default:Oe(()=>[ge("div",GQo,[ge("div",YQo,[ge("div",ZQo,Pe(m.name),1),ge("div",qQo,Pe(m.type),1)]),ge("div",KQo,Pe(m.data),1)])]),_:2},1024)],8,XQo))),128)),ge("div",JQo,[c(g,{visible:n.value,"onUpdate:visible":u[1]||(u[1]=m=>n.value=m),header:d.$t("workbench.project.dialog.prompt.title"),width:"70%","close-on-overlay-click":!1,onConfirm:l,top:"9vh"},{default:Oe(()=>[c(Ae(X4),{modelValue:a.value.data,"onUpdate:modelValue":u[0]||(u[0]=m=>a.value.data=m),theme:"light",toolbars:t,footers:[],style:{height:"60vh"},placeholder:d.$t("workbench.project.dialog.prompt.placeholder"),onOnUploadImg:()=>{}},null,8,["modelValue","placeholder"])]),_:1},8,["visible","header"])])])}}}),tDo=oo(eDo,[["__scopeId","data-v-2bed7c85"]]),nDo={class:"settingPanel"},iDo={class:"settingRight"},rDo={class:"sectionTitle"},oDo={class:"settingContent"},sDo=Je({__name:"index",setup(e){const{showSetting:t,activeMenu:n,needUpdate:r}=xs(ku()),o=[{key:"language",label:"settings.menu.language",icon:"i-translate"},{key:"vendorConfig",label:"settings.menu.vendorConfig",icon:"i-computer"},{key:"agentConfog",label:"settings.menu.agentConfig",icon:"i-color-filter"},{key:"promptManage",label:"settings.menu.promptManage",icon:"i-tips"},{key:"skillManagement",label:"settings.menu.skillsSkillsManagement",icon:"i-ring"},{key:"memoryConfig",label:"settings.menu.memoryConfig",icon:"i-memory-card-one"},{key:"loginConfig",label:"settings.menu.loginConfig",icon:"i-lock"},{key:"dbConfig",label:"settings.menu.dbConfig",icon:"i-data"},{key:"fileManagement",label:"settings.menu.fileManagement",icon:"i-hard-disk"},{key:"otherConfig",label:"settings.menu.otherConfig",icon:"i-application-menu"},{key:"requestConfig",label:"settings.menu.requestConfig",icon:"i-api"},{key:"devConfig",label:"settings.menu.devConfig",icon:"i-flask"},{key:"about",label:"settings.menu.about",icon:"i-info"},{key:"logoutConfig",label:"settings.menu.logoutConfig",icon:"i-logout"}],s=X(()=>o.find(a=>a.key===n.value));return(a,l)=>{const d=CZe,u=Jbn,h=Kbn,g=gc;return xe(),Ut(g,{header:a.$t("settings.title"),footer:!1,placement:"center",width:"1200px",visible:Ae(t),"onUpdate:visible":l[1]||(l[1]=m=>Fn(t)?t.value=m:null)},{default:Oe(()=>[ge("div",nDo,[c(h,{class:"settingMenu",value:Ae(n),"onUpdate:value":l[0]||(l[0]=m=>Fn(n)?n.value=m:null),style:{height:"70vh"}},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(o,m=>c(u,{key:m.key,value:m.key},{icon:Oe(()=>[c(d,{count:Ae(r)&&m.key==="about"?1:0,dot:""},{default:Oe(()=>[(xe(),Ut(Bd(m.icon),{class:"icon"}))]),_:2},1032,["count"])]),default:Oe(()=>[Bt(" "+Pe(a.$t(m.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"]),ge("div",iDo,[ge("div",rDo,Pe(Ae(s)?a.$t(Ae(s).label):""),1),ge("div",oDo,[Ae(n)==="language"?(xe(),Ut(Tqr,{key:0})):nn("",!0),Ae(n)==="vendorConfig"?(xe(),Ut(OQo,{key:1})):nn("",!0),Ae(n)==="requestConfig"?(xe(),Ut(Dqr,{key:2})):nn("",!0),Ae(n)==="loginConfig"?(xe(),Ut(Bqr,{key:3})):nn("",!0),Ae(n)==="agentConfog"?(xe(),Ut(cKr,{key:4})):nn("",!0),Ae(n)==="promptManage"?(xe(),Ut(tDo,{key:5})):nn("",!0),Ae(n)==="otherConfig"?(xe(),Ut(AKr,{key:6})):nn("",!0),Ae(n)==="dbConfig"?(xe(),Ut(mKr,{key:7})):nn("",!0),Ae(n)==="about"?(xe(),Ut(fJr,{key:8})):nn("",!0),Ae(n)==="logoutConfig"?(xe(),Ut(kJr,{key:9})):nn("",!0),Ae(n)==="memoryConfig"?(xe(),Ut(SQo,{key:10})):nn("",!0),Ae(n)==="fileManagement"?(xe(),Ut(BQo,{key:11})):nn("",!0),Ae(n)==="skillManagement"?(xe(),Ut(WQo,{key:12})):nn("",!0),Ae(n)==="devConfig"?(xe(),Ut(HQo,{key:13})):nn("",!0)])])])]),_:1},8,["header","visible"])}}}),aDo=oo(sDo,[["__scopeId","data-v-ba4aaf24"]]),lDo={class:"migrateShow"},cDo={class:"taskList"},dDo={class:"item"},uDo=Je({__name:"migrateShow",setup(e){const t=fe(!1);function n(){mn.post("/migrate/migrateData").then(()=>{window.$message.success($t("components.migrateShow.msg.migrateSuccess"))}).catch(()=>{window.$message.error($t("components.migrateShow.msg.migrateFailed"))}).finally(()=>{})}return(r,o)=>{const s=Si,a=Ev,l=gc;return xe(),Ge("div",lDo,[c(l,{visible:Ae(t),"onUpdate:visible":o[1]||(o[1]=d=>Fn(t)?t.value=d:null),header:r.$t("components.migrateShow.title"),width:"500px"},{footer:Oe(()=>[c(a,null,{default:Oe(()=>[c(s,{theme:"default",onClick:o[0]||(o[0]=()=>t.value=!1)},{default:Oe(()=>[Bt(Pe(r.$t("components.migrateShow.hide")),1)]),_:1}),c(s,{theme:"primary",onClick:n},{default:Oe(()=>[Bt(Pe(r.$t("components.migrateShow.confirm")),1)]),_:1})]),_:1})]),default:Oe(()=>[ge("div",cDo,[ge("div",dDo,[ge("span",null,Pe(r.$t("components.migrateShow.desc")),1)])])]),_:1},8,["visible","header"])])}}});function wit(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hDo(e,t){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:0,r=Math.random()*(t-e)+e;return Math.floor(r*Math.pow(10,n))/Math.pow(10,n)}function WSt(e){return e[T4(0,e.length)]}var kDo=.00125,vDo=5e-4,ADo=9e-4,pDo=1e-5,bDo=6,wDo=80,ODo=.9,yDo=1.7,CDo=.2,_Do=.6,SDo=.03,LDo=.07,gPn=15,mPn=82,VSt=150,xDo=100,EDo=250,TDo=40,QDo=["#fcf403","#62fc03","#f4fc03","#03e7fc","#03fca5","#a503fc","#fc03ad","#fc03c2"];function zSt(e){var t=1920;return Math.log(e)/Math.log(t)}var w5e=function(){function e(t){wit(this,e);var n=t.initialPosition,r=t.confettiRadius,o=t.confettiColors,s=t.emojis,a=t.emojiSize,l=t.canvasWidth,d=t.initialFlightAngle,u=t.rotationAngle,h=t.shouldHideConfettiInShiftedPosition,g=h===void 0?!1:h,m=T4(ODo,yDo,3),v=m*zSt(l);this.confettiSpeed={x:v,y:v},this.finalConfettiSpeedX=T4(CDo,_Do,3),this.rotationSpeed=s.length?.01:T4(SDo,LDo,3)*zSt(l),this.dragForceCoefficient=T4(vDo,ADo,6),this.radius={x:r,y:r},this.initialRadius=r,this.rotationAngle=u,this.emojiSize=a,this.emojiRotationAngle=T4(0,2*Math.PI),this.radiusYUpdateDirection="down",this.cos=Math.cos(d),this.sin=Math.sin(d);var f=T4(-150,0);this.positionOffset={x:f*this.sin,y:f*this.cos},this.distanceTravelled={x:0,y:0};var k={x:n.x+this.positionOffset.x,y:n.y-this.positionOffset.y};this.currentPosition=Object.assign({},k),this.initialPosition=Object.assign({},k),this.color=s.length?null:WSt(o),this.emoji=s.length?WSt(s):null,this.createdAt=new Date().getTime(),this.isVisible=!g}return Oit(e,[{key:"draw",value:function(n){var r=this.currentPosition,o=this.radius,s=this.color,a=this.emoji,l=this.rotationAngle,d=this.emojiRotationAngle,u=this.emojiSize,h=this.isVisible;if(h){var g=window.devicePixelRatio;s?(n.fillStyle=s,n.beginPath(),n.ellipse(r.x*g,r.y*g,o.x*g,o.y*g,l,0,2*Math.PI),n.fill()):a&&(n.font="".concat(u,"px serif"),n.save(),n.translate(g*r.x,g*r.y),n.rotate(d),n.textAlign="center",n.fillText(a,0,0),n.restore())}}},{key:"updatePosition",value:function(n,r){var o=this.confettiSpeed,s=this.dragForceCoefficient,a=this.finalConfettiSpeedX,l=this.radiusYUpdateDirection,d=this.rotationSpeed,u=this.createdAt;o.x>a&&(this.confettiSpeed.x-=s*n);var h=this.currentPosition.y,g=r-u;this.currentPosition.y=this.initialPosition.y-o.y*this.cos*g+kDo*Math.pow(g,2)/2;var m={x:o.x*this.sin*n,y:this.currentPosition.y-h};if(this.currentPosition.x+=m.x,this.distanceTravelled.x+=Math.abs(m.x),this.distanceTravelled.y+=Math.abs(m.y),this.distanceTravelled.x>=Math.abs(this.positionOffset.x)&&this.distanceTravelled.y>=Math.abs(this.positionOffset.y)&&(this.isVisible=!0),this.rotationSpeed-=this.emoji?1e-4:pDo*n,this.rotationSpeed<0&&(this.rotationSpeed=0),this.emoji){this.emojiRotationAngle+=this.rotationSpeed*n%(2*Math.PI);return}l==="down"?(this.radius.y-=n*d,this.radius.y<=0&&(this.radius.y=0,this.radiusYUpdateDirection="up")):(this.radius.y+=n*d,this.radius.y>=this.initialRadius&&(this.radius.y=this.initialRadius,this.radiusYUpdateDirection="down"))}},{key:"getIsVisibleOnCanvas",value:function(n){return this.currentPosition.y0&&arguments[0]!==void 0?arguments[0]:{};wit(this,e),this.activeConfettiBatches=[],this.canvas=t.canvas||DDo(),this.canvasContext=this.canvas.getContext("2d"),this.requestAnimationFrameRequested=!1,this.lastUpdated=new Date().getTime(),this.iterationIndex=0,this.loop=this.loop.bind(this),requestAnimationFrame(this.loop)}return Oit(e,[{key:"loop",value:function(){this.requestAnimationFrameRequested=!1,mDo(this.canvas);var n=new Date().getTime(),r=n-this.lastUpdated,o=this.canvas.offsetHeight,s=this.iterationIndex%10===0;this.activeConfettiBatches=this.activeConfettiBatches.filter(function(a){return a.processShapes({timeDelta:r,currentTime:n},o,s),s?!a.complete():!0}),this.iterationIndex++,this.queueAnimationFrameIfNeeded(n)}},{key:"queueAnimationFrameIfNeeded",value:function(n){this.requestAnimationFrameRequested||this.activeConfettiBatches.length<1||(this.requestAnimationFrameRequested=!0,this.lastUpdated=n||new Date().getTime(),requestAnimationFrame(this.loop))}},{key:"addConfettiAtPosition",value:function(){for(var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=HSt(n),o=r.confettiRadius,s=r.confettiNumber,a=r.confettiColors,l=r.emojis,d=r.emojiSize,u=r.confettiDispatchPosition,h=this.canvas.getBoundingClientRect(),g=h.width,m=new XSt(this.canvasContext),v=0;v0&&arguments[0]!==void 0?arguments[0]:{},r=HSt(n),o=r.confettiRadius,s=r.confettiNumber,a=r.confettiColors,l=r.emojis,d=r.emojiSize,u=this.canvas.getBoundingClientRect(),h=u.width,g=u.height,m=g*5/7,v={x:0,y:m},f={x:h,y:m},k=new XSt(this.canvasContext),A=0;A({content:k.label,value:k.value})),a=k=>{o.value=k.value,yW.value=k.value},l=q4e("helloGuideDone",!1),d=fe(!l.value),u=fe(0);function h(){n.value="vendorConfig",t.value=!0}function g(){n.value="agentConfog",t.value=!0}function m(){l.value=!0,d.value=!1}function v(){l.value=!0,d.value=!1,new PDo().addConfetti()}async function f(){r.value?await fetch("toonflow://openurlwithbrowser?url=https://github.com/HBAI-Ltd/Toonflow-app"):window.open("https://github.com/HBAI-Ltd/Toonflow-app")}return(k,A)=>{const p=Si,b=_n("i-translate"),w=Rne,O=Yvi,y=Gvi,C=dL,_=Ez,S=h3i,L=gc;return xe(),Ut(L,{visible:Ae(d),"onUpdate:visible":A[3]||(A[3]=E=>Fn(d)?d.value=E:null),footer:!1,header:!1,width:"680px","close-on-overlay-click":!1,placement:"center"},{default:Oe(()=>[ge("div",FDo,[Ae(u)===0?(xe(),Ge("div",NDo,[A[4]||(A[4]=ge("img",{src:lbe,alt:"ToonFlow Logo",class:"welcomeLogo"},null,-1)),ge("h1",UDo,Pe(k.$t("hello.welcomeTitle")),1),ge("p",jDo,Pe(k.$t("hello.welcomeDesc")),1),c(p,{theme:"primary",size:"large",onClick:A[0]||(A[0]=E=>u.value=1)},{default:Oe(()=>[Bt(Pe(k.$t("hello.startConfig")),1)]),_:1}),c(p,{variant:"text",size:"small",style:{"margin-top":"12px"},onClick:m},{default:Oe(()=>[Bt(Pe(k.$t("hello.skip")),1)]),_:1}),ge("div",WDo,[c(w,{options:Ae(s),trigger:"click",onClick:a,maxColumnWidth:150},{default:Oe(()=>[c(p,{shape:"circle",theme:"default",size:"large"},{icon:Oe(()=>[c(b,{theme:"outline",size:"20"})]),_:1})]),_:1},8,["options"])])])):(xe(),Ge(sn,{key:1},[c(y,{current:Ae(u)-1,class:"guideSteps"},{default:Oe(()=>[c(O,{title:k.$t("hello.configModel")},null,8,["title"]),c(O,{title:k.$t("hello.configData")},null,8,["title"]),c(O,{title:k.$t("hello.startUse")},null,8,["title"])]),_:1},8,["current"]),ge("div",VDo,[Ae(u)===1?(xe(),Ge("div",zDo,[ge("div",HDo,[c(C,{name:"server",size:"48px"})]),ge("h2",$Do,Pe(k.$t("hello.configModelTitle")),1),ge("p",XDo,Pe(k.$t("hello.configModelDesc")),1),ge("div",GDo,[c(_,{theme:"info",message:k.$t("hello.configModelTip")},null,8,["message"])]),c(p,{theme:"primary",size:"large",onClick:h},{icon:Oe(()=>[c(C,{name:"setting"})]),default:Oe(()=>[Bt(" "+Pe(k.$t("hello.configModelBtn")),1)]),_:1})])):nn("",!0),Ae(u)===2?(xe(),Ge("div",YDo,[ge("div",ZDo,[c(C,{name:"relativity",size:"48px"})]),ge("h2",qDo,Pe(k.$t("hello.configAgentTitle")),1),ge("p",KDo,Pe(k.$t("hello.configAgentDesc")),1),ge("div",JDo,[c(_,{theme:"info",message:k.$t("hello.configAgentTip")},null,8,["message"])]),c(p,{theme:"primary",size:"large",onClick:g},{icon:Oe(()=>[c(C,{name:"setting"})]),default:Oe(()=>[Bt(" "+Pe(k.$t("hello.configAgentBtn")),1)]),_:1})])):nn("",!0),Ae(u)===3?(xe(),Ge("div",eBo,[ge("div",tBo,[c(C,{name:"check-circle",size:"48px",color:"var(--td-success-color)"})]),ge("h2",nBo,Pe(k.$t("hello.finishTitle")),1),ge("p",iBo,Pe(k.$t("hello.finishDesc")),1),ge("div",rBo,[ge("p",oBo,Pe(k.$t("hello.qrcodeLabel")),1),c(S,{value:"https://work.weixin.qq.com/u/vc36adcc89845edcbe?v=5.0.3.63936&bb=85b8d228e8",level:"Q",type:"svg"})]),ge("div",sBo,[ge("p",aBo,Pe(k.$t("hello.githubLabel")),1),c(p,{theme:"danger",size:"large",onClick:f},{icon:Oe(()=>[c(C,{name:"logo-github"})]),default:Oe(()=>[A[5]||(A[5]=Bt(" Star on GitHub ",-1))]),_:1})])])):nn("",!0)]),ge("div",lBo,[Ae(u)>1?(xe(),Ut(p,{key:0,variant:"outline",onClick:A[1]||(A[1]=E=>u.value--)},{default:Oe(()=>[Bt(Pe(k.$t("hello.prevStep")),1)]),_:1})):nn("",!0),ge("div",cBo,[Ae(u)<3?(xe(),Ut(p,{key:0,variant:"text",onClick:m},{default:Oe(()=>[Bt(Pe(k.$t("hello.skip")),1)]),_:1})):nn("",!0),Ae(u)<3?(xe(),Ut(p,{key:1,theme:"primary",onClick:A[2]||(A[2]=E=>u.value++)},{default:Oe(()=>[Bt(Pe(k.$t("hello.nextStep")),1)]),_:1})):nn("",!0),Ae(u)===3?(xe(),Ut(p,{key:2,theme:"primary",onClick:v},{default:Oe(()=>[Bt(Pe(k.$t("hello.finish")),1)]),_:1})):nn("",!0)])])],64))])]),_:1},8,["visible"])}}}),uBo=oo(dBo,[["__scopeId","data-v-da3a500c"]]),ph=Wy("project",()=>({allProject:fe([]),project:fe(null)}),{persist:!0}),hBo={class:"menu fc jb"},fBo={class:"itemBox fc ac"},gBo=["onClick"],mBo={key:1,class:"divider"},kBo={class:"footItem fc ac"},vBo={class:"view"},ABo={key:0,class:"topMenu f ac jb"},pBo={class:"title"},bBo={class:"rightBtnList f ac"},wBo=["onClick"],OBo={key:1,class:"divider"},yBo={class:"viewBox"},CBo=Je({__name:"index",setup(e){const{project:t}=xs(ph()),{showSetting:n,isElectron:r,needUpdate:o}=xs(ku()),s=fe([{type:"btn",path:"/project",labelKey:"workbench.menu.myProject",icon:"i-folder-close"},{type:"btn",path:"/task",labelKey:"workbench.menu.taskCenter",icon:"i-view-list"}]),a=fe([{type:"btn",path:"/novel",labelKey:"workbench.menu.novel",icon:"i-notebook",nodelOnly:!0},{type:"btn",path:"/scriptAgent",labelKey:"workbench.menu.scriptAgent",icon:"i-color-filter",nodelOnly:!0},{type:"btn",path:"/script",labelKey:"workbench.menu.scriptManage",icon:"i-document-folder"},{type:"btn",path:"/cornerScape",labelKey:"workbench.menu.cornerScape",icon:"i-peoples-two"},{type:"btn",path:"/production",labelKey:"workbench.menu.production",icon:"i-carousel-video"},{type:"divider"},{type:"btn",path:"/assets",labelKey:"workbench.menu.assetCenter",icon:"i-receive"}]),l=_pe(),d=mNi(),u=fe(d.path);pt(()=>d.path,p=>{u.value=p});function h(p){p.needProject&&!t.value||(l.push(p.path),u.value=p.path)}async function g(){r.value?await fetch("toonflow://openurlwithbrowser?url=https://github.com/HBAI-Ltd/Toonflow-app"):window.open("https://github.com/HBAI-Ltd/Toonflow-app")}async function m(){r.value?await fetch("toonflow://openurlwithbrowser?url=https://docs.qq.com/smartsheet/form/EmvmQBrmlPmr%2Fss_vsqk2v%2FvhiGzE?tab=ss_vsqk2v"):window.open("https://docs.qq.com/smartsheet/form/EmvmQBrmlPmr%2Fss_vsqk2v%2FvhiGzE?tab=ss_vsqk2v")}async function v(){const{data:p}=await mn.post("/setting/about/checkUpdate",{source:"toonflow"});if(p.needUpdate){o.value=!0;const{activeMenu:b}=xs(ku()),w=NB.success({title:$t("version.newVersion"),content:()=>xn("div",{style:"text-align: right; padding-top: 4px;"},xn("span",{style:"color: #ed7b2f; font-size: 12px; cursor: pointer;",onClick:()=>{b.value="about",n.value=!0,NB.close(w)}},$t("skillScan.openSettings"))),closeBtn:!0,placement:"bottom-right"})}else o.value=!1}let f=null;function k(){v(),f=setInterval(()=>{v()},2*60*1e3)}function A(){f&&(clearInterval(f),f=null)}return pt(o,p=>{p&&A()}),An(()=>{k()}),Qa(()=>{A()}),(p,b)=>{var L,E;const w=el,O=_n("i-bill"),y=_n("i-setting-one"),C=CZe,_=_n("i-github-one"),S=_n("router-view");return xe(),Ge(sn,null,[ge("div",{class:"main",style:no({height:Ae(r)?"calc(100vh - 32px)":"100vh"})},[ge("div",hBo,[b[1]||(b[1]=ge("div",{class:"logoBox c"},[ge("img",{class:"logo",src:lbe})],-1)),ge("div",fBo,[(xe(!0),Ge(sn,null,Bi(Ae(s),(T,D)=>(xe(),Ut(w,{content:T.labelKey?p.$t(T.labelKey):"",placement:"right",theme:"light",destroyOnClose:"",showArrow:!1,key:D},{default:Oe(()=>[T.type==="btn"?(xe(),Ge("div",{key:0,class:Eo(["item fc c",{active:Ae(u)==T.path}]),onClick:P=>h(T)},[(xe(),Ut(Bd(T.icon),{class:"icon"}))],10,gBo)):nn("",!0),T.type==="divider"?(xe(),Ge("div",mBo)):nn("",!0)]),_:2},1032,["content"]))),128))]),ge("div",kBo,[c(w,{content:p.$t("workbench.menu.feedbackQuestions"),placement:"right",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:"item c",onClick:m},[c(O,{class:"icon"})])]),_:1},8,["content"]),c(w,{content:p.$t("workbench.menu.settings"),placement:"right",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:"item c",onClick:b[0]||(b[0]=T=>n.value=!0)},[c(C,{count:Ae(o)?1:0,dot:""},{default:Oe(()=>[c(y,{class:"icon"})]),_:1},8,["count"])])]),_:1},8,["content"]),c(w,{content:p.$t("workbench.menu.jumpGithub"),placement:"right",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:"item c",onClick:g},[c(_,{size:"24"})])]),_:1},8,["content"])])]),ge("div",vBo,[(L=Ae(t))!=null&&L.id?(xe(),Ge("div",ABo,[ge("div",pBo,[ge("h2",null,Pe(((E=Ae(t))==null?void 0:E.name)||p.$t("workbench.selectProject")),1)]),ge("div",bBo,[(xe(!0),Ge(sn,null,Bi(Ae(a),(T,D)=>(xe(),Ut(w,{content:T.labelKey?p.$t(T.labelKey):"",placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1,key:D},{default:Oe(()=>[T.type==="btn"&&(Ae(t).projectType==="novel"||!T.nodelOnly)?(xe(),Ge("div",{key:0,class:Eo(["item fc c",{active:Ae(u)==T.path}]),onClick:P=>h(T)},[(xe(),Ut(Bd(T.icon),{class:"icon"}))],10,wBo)):nn("",!0),T.type==="divider"?(xe(),Ge("div",OBo)):nn("",!0)]),_:2},1032,["content"]))),128))])])):nn("",!0),ge("div",yBo,[c(S,null,{default:Oe(({Component:T})=>[(xe(),Ut(Bd(T),{key:p.$route.fullPath}))]),_:1})])])],4),c(uBo),c(aDo),c(uDo)],64)}}}),_Bo=oo(CBo,[["__scopeId","data-v-99f1fe92"]]),SBo=Object.freeze(Object.defineProperty({__proto__:null,default:_Bo},Symbol.toStringTag,{value:"Module"})),LBo={class:"addProject"},xBo={class:"formColumns"},EBo={class:"formLeft"},TBo={class:"ac",style:{gap:"5px",width:"100%"}},QBo={class:"ac",style:{gap:"5px",width:"100%"}},DBo={class:"formRight"},BBo={class:"artStylePicker"},RBo={class:"artStyleHeader"},IBo={class:"artStyleContent"},MBo={class:"gridContainer"},PBo=["onClick"],FBo={class:"imageWrapper"},NBo=["src","alt"],UBo={class:"text"},jBo=["onClick"],WBo=["onClick"],VBo={class:"directorManual"},zBo={class:"directorManualHeader"},HBo={class:"artStyleContent"},$Bo={class:"gridContainer"},XBo=["onClick"],GBo={class:"imageWrapper"},YBo=["src","alt"],ZBo={class:"text"},qBo=["onClick"],KBo=["onClick"],JBo={class:"nameAndCoverRow"},eRo={class:"nameField"},tRo={class:"fieldLabel"},nRo={class:"mdFileLocation"},iRo={class:"fieldLabel"},rRo={class:"coverField"},oRo={class:"fieldLabel"},sRo={class:"coverUploadArea multiCoverUploadArea"},aRo=["src"],lRo=["onClick"],cRo={class:"promptEditorWrapper"},dRo={class:"promptEditorHeader"},uRo={class:"aiExtractInline"},hRo={class:"nameAndCoverRow"},fRo={class:"nameField"},gRo={class:"fieldLabel"},mRo={class:"mdFileLocation"},kRo={class:"fieldLabel"},vRo={class:"coverField"},ARo={class:"fieldLabel"},pRo={class:"coverUploadArea multiCoverUploadArea"},bRo=["src"],wRo=["onClick"],ORo={class:"promptEditorWrapper"},yRo={class:"promptEditorHeader"},CRo={class:"aiExtractInline"},_Ro=Je({__name:"projectDialog",props:Fc({projectData:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:Fc(["add","edit"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=t,s=()=>[{label:"README",value:"README",data:""},{label:"前缀",value:"prefix",data:""},{label:"角色",value:"art_character",data:""},{label:"角色衍生",value:"art_character_derivative",data:""},{label:"道具",value:"art_prop",data:""},{label:"道具衍生",value:"art_prop_derivative",data:""},{label:"场景",value:"art_scene",data:""},{label:"场景衍生",value:"art_scene_derivative",data:""},{label:"分镜",value:"director_storyboard",data:""},{label:"分镜视频",value:"art_storyboard_video",data:""},{label:"技法-导演规划",value:"director_planning_style",data:""},{label:"技法-分镜表设计",value:"director_storyboard_table_style",data:""}],a=X(()=>!!r.projectData),l=[{value:"16:9",label:"16:9"},{value:"9:16",label:"9:16"}],d=()=>({id:0,projectType:"novel",name:"",intro:"",type:"",artStyle:"",era:"",videoRatio:"16:9",createTime:0,userId:0,imageModel:"",videoModel:"",imageQuality:"",mode:"",directorManual:""}),u=fe(d());function h(){u.value=d()}function g(){n.value=!1,h()}function m(){if(!u.value.name)return window.$message.warning($t("workbench.project.msg.enterProjectName"));if(!u.value.type)return window.$message.warning($t("workbench.project.msg.enterProjectType"));if(!u.value.imageModel)return window.$message.warning($t("workbench.project.msg.enterImageModel"));if(!u.value.videoModel)return window.$message.warning($t("workbench.project.msg.enterVideoModel"));if(!u.value.artStyle)return window.$message.warning($t("workbench.project.msg.enterArtStyle"));if(!u.value.directorManual)return window.$message.warning($t("workbench.project.msg.directorManual"));if(!u.value.videoRatio)return window.$message.warning($t("workbench.project.msg.enterVideoRatio"));if(!u.value.intro)return window.$message.warning($t("workbench.project.msg.enterProjectIntro"));if(!u.value.imageQuality)return window.$message.warning($t("workbench.project.msg.enterProjectQuality"));if(!u.value.mode)return window.$message.warning($t("workbench.project.msg.selectMode"));a.value?o("edit",{id:u.value.id,name:u.value.name,intro:u.value.intro,type:u.value.type,artStyle:u.value.artStyle,videoRatio:u.value.videoRatio,imageModel:u.value.imageModel,videoModel:u.value.videoModel,projectType:u.value.projectType||"novel",directorManual:u.value.directorManual,imageQuality:u.value.imageQuality,mode:u.value.mode}):o("add",{projectType:u.value.projectType||"novel",name:u.value.name,intro:u.value.intro,type:u.value.type,artStyle:u.value.artStyle,videoRatio:u.value.videoRatio||"16:9",imageModel:u.value.imageModel,videoModel:u.value.videoModel,imageQuality:u.value.imageQuality,directorManual:u.value.directorManual,mode:u.value.mode}),h(),n.value=!1}const v=["bold","italic","strikeThrough","-","unorderedList","orderedList","-","revoke","next","=","preview"];pt(n,async Y=>{if(Y){if(r.projectData){if(u.value={...d(),id:r.projectData.id,name:r.projectData.name||"",intro:r.projectData.intro||"",type:r.projectData.type||"",artStyle:r.projectData.artStyle||"",videoRatio:r.projectData.videoRatio||"16:9",imageModel:r.projectData.imageModel||"",videoModel:r.projectData.videoModel||"",imageQuality:r.projectData.imageQuality||"",projectType:r.projectData.projectType||"novel",mode:r.projectData.mode||"text",directorManual:r.projectData.directorManual||""},r.projectData.videoModel)try{const{data:ie}=await mn.post("/modelSelect/getModelDetail",{modelId:r.projectData.videoModel});ie!=null&&ie.mode&&(M.value=ie.mode.map(te=>({label:R(te),value:I(te)})))}catch{}}else h();C(),oe()}});const f=fe([]),k=fe(!1),A=fe(!1),p=fe(null),b=fe({name:"",images:[],stylePath:""}),w=fe(),O=fe("README"),y=fe(s());function C(){k.value=!0,mn.post("/project/getVisualManual").then(({data:Y})=>{f.value=Y.map(ie=>({id:ie.id,name:ie.name,stylePath:ie.stylePath,images:ie.images??(Array.isArray(ie.image)?ie.image:ie.image?[ie.image]:[]),data:ie.data}))}).finally(()=>{k.value=!1})}function _(Y){if(p.value=Y??null,Y){b.value.name=Y.name,b.value.stylePath=Y.stylePath,b.value.images=Y.images?[...Y.images]:[];const ie=Array.isArray(Y.data)?Y.data:[];y.value=s().map(te=>{const Z=ie.find(he=>he.value===te.value);return Z?{...te,data:Z.data}:{...te}})}else b.value={name:"",images:[],stylePath:""},y.value=s();O.value="README",A.value=!0}function S(){A.value=!1,p.value=null,b.value={name:"",images:[],stylePath:""},y.value=s(),O.value="README"}function L(){var Y;(Y=w.value)==null||Y.click()}function E(Y){const ie=Y.target.files;!ie||ie.length===0||(Array.from(ie).forEach(te=>{const Z=new FileReader;Z.onload=()=>{b.value.images.push(Z.result)},Z.readAsDataURL(te)}),Y.target.value="")}function T(Y){b.value.images.splice(Y,1)}const D=fe(!1);async function P(){if(!b.value.name.trim()){window.$message.warning($t("workbench.project.msg.enterVisualManualName"));return}if(!b.value.images.length){window.$message.warning($t("workbench.project.msg.enterVisualManualImage"));return}const Y=y.value.find(ie=>!ie.data.trim());if(Y)return window.$message.warning(`「${Y.label}」${$t("workbench.project.msg.enterVisualManualTabData")}`);try{D.value=!0,p.value?await mn.post("/project/editVisualManual",{name:b.value.name,images:b.value.images,data:y.value,stylePath:b.value.stylePath}):await mn.post("/project/addVisualManual",{name:b.value.name,images:b.value.images,data:y.value,stylePath:b.value.stylePath}),D.value=!1,p.value?window.$message.success($t("workbench.project.msg.visualManualUpdated")):window.$message.success($t("workbench.project.msg.visualManualAdded")),S(),C()}catch(ie){D.value=!1,window.$message.error(ie.message??$t("workbench.project.msg.operationFailed"))}}function Q(Y){const ie=fo.confirm({header:$t("workbench.project.msg.deleteVisualManualHeader"),body:$t("workbench.project.msg.deleteVisualManualBody",{name:Y.stylePath}),confirmBtn:$t("workbench.project.msg.deleteVisualManualConfirm"),cancelBtn:$t("workbench.project.msg.deleteVisualManualCancel"),onConfirm:()=>{mn.post("/project/deleteVisualManual",{name:Y.stylePath}).then(()=>{C(),S(),window.$message.success($t("workbench.project.msg.visualManualDeleted"))}).catch(te=>{window.$message.error(te.message??$t("workbench.project.msg.operationFailed"))}).finally(()=>{C(),ie.destroy()})}})}const M=fe([]),B={singleImage:$t("workbench.production.generate.modeSingleImage"),multiImage:$t("workbench.production.generate.modeMultiImage"),gridImage:$t("workbench.production.generate.modeGridImage"),startEndRequired:$t("workbench.production.generate.modeStartEnd"),endFrameOptional:$t("workbench.production.generate.modeStartEnd"),startFrameOptional:$t("workbench.production.generate.modeStartEnd"),text:$t("workbench.production.generate.modeText"),videoReference:$t("workbench.production.generate.modeVideoRef"),imageReference:$t("workbench.production.generate.modeImageRef"),audioReference:$t("workbench.production.generate.modeAudioRef"),textReference:$t("workbench.production.generate.modeTextRef")};function R(Y){return Y?Array.isArray(Y)?Y.map(ie=>B[ie]??ie).join("、"):B[Y]??Y:""}function I(Y){return Array.isArray(Y)?JSON.stringify(Y):Y}function F(Y,ie){M.value=ie.mode.map(te=>({label:R(te),value:I(te)}))}const j=()=>[{label:"README",value:"README",data:""},{label:"导演规划",value:"director_planning_narrative",data:""},{label:"分镜表",value:"director_storyboard_table_narrative",data:""}],W=fe({name:"",images:[],directorManual:""}),H=fe(!1),$=fe(null),G=fe(!1),q=fe([]),re=fe("README"),J=fe(j());function oe(){H.value=!0,mn.post("/project/queryDirectorManual").then(({data:Y})=>{q.value=Y.map(ie=>({id:ie.id,name:ie.name,directorManual:ie.directorManual,images:ie.images??(Array.isArray(ie.image)?ie.image:ie.image?[ie.image]:[]),data:ie.data}))}).finally(()=>{H.value=!1})}function se(Y){if($.value=Y??null,Y){W.value.name=Y.name,W.value.directorManual=Y.directorManual,W.value.images=Y.images?[...Y.images]:[];const ie=Array.isArray(Y.data)?Y.data:[];J.value=j().map(te=>{const Z=ie.find(he=>he.value===te.value);return Z?{...te,data:Z.data}:{...te}})}else W.value={name:"",images:[],directorManual:""},J.value=j();re.value="README",G.value=!0}function le(){G.value=!1,$.value=null,W.value={name:"",images:[],directorManual:""},J.value=j(),re.value="README"}function ue(Y){const ie=fo.confirm({header:$t("workbench.project.msg.deleteDirectorManualHeader"),body:$t("workbench.project.msg.deleteDirectorManualBody",{name:Y.directorManual}),confirmBtn:$t("workbench.project.msg.deleteVisualManualConfirm"),cancelBtn:$t("workbench.project.msg.deleteVisualManualCancel"),onConfirm:()=>{mn.post("/project/deleteDirectorManual",{name:Y.directorManual}).then(()=>{oe(),le(),window.$message.success($t("workbench.project.msg.visualManualDeleted"))}).catch(te=>{window.$message.error(te.message??$t("workbench.project.msg.operationFailed"))}).finally(()=>{oe(),ie.destroy()})}})}async function ee(){if(!W.value.name.trim()){window.$message.warning($t("workbench.project.msg.enterVisualManualName"));return}if(!W.value.images.length){window.$message.warning($t("workbench.project.msg.enterVisualManualImage"));return}const Y=J.value.find(ie=>!ie.data.trim());if(Y)return window.$message.warning(`「${Y.label}」${$t("workbench.project.msg.enterVisualManualTabData")}`);try{D.value=!0,$.value?await mn.post("/project/editDirectorlManual",{name:W.value.name,images:W.value.images,data:J.value,directorManual:W.value.directorManual}):await mn.post("/project/addDirectorManual",{name:W.value.name,images:W.value.images,data:J.value,directorManual:W.value.directorManual}),D.value=!1,$.value?window.$message.success($t("workbench.project.msg.directorManualUpdated")):window.$message.success($t("workbench.project.msg.directorManualAdded")),le(),oe()}catch(ie){D.value=!1,window.$message.error(ie.message??$t("workbench.project.msg.operationFailed"))}}function de(){var Y;(Y=w.value)==null||Y.click()}function z(Y){const ie=Y.target.files;!ie||ie.length===0||(Array.from(ie).forEach(te=>{const Z=new FileReader;Z.onload=()=>{W.value.images.push(Z.result)},Z.readAsDataURL(te)}),Y.target.value="")}return(Y,ie)=>{const te=uL,Z=pA,he=p2,pe=Wu,Ce=c2,Qe=A2,ke=_n("i-plus"),me=Si,_e=_n("i-edit"),Te=_n("i-delete"),De=Wc,Ye=gc,ot=_n("i-close"),We=Mne,et=Ine;return xe(),Ge("div",LBo,[c(Ye,{placement:"center",visible:n.value,"onUpdate:visible":ie[11]||(ie[11]=st=>n.value=st),header:a.value?Y.$t("workbench.project.dialog.editTitle"):Y.$t("workbench.project.dialog.addTitle"),width:"60%",onConfirm:m,onCloseBtnClick:g,onCancel:g,"confirm-btn":a.value?Y.$t("workbench.project.dialog.save"):Y.$t("workbench.project.dialog.ok"),"cancel-btn":Y.$t("workbench.project.dialog.cancel")},{default:Oe(()=>[ge("div",xBo,[ge("div",EBo,[c(Qe,{data:u.value,"label-align":"top"},{default:Oe(()=>[c(he,{label:Y.$t("workbench.project.dialog.projectType")},{default:Oe(()=>[c(Z,{modelValue:u.value.projectType,"onUpdate:modelValue":ie[0]||(ie[0]=st=>u.value.projectType=st),placeholder:Y.$t("workbench.project.dialog.selectType")},{default:Oe(()=>[c(te,{key:"基于小说原文",label:Y.$t("workbench.project.dialog.basedOnNovel"),value:"novel"},null,8,["label"]),c(te,{key:"基于剧本",label:Y.$t("workbench.project.dialog.basedOnScript"),value:"script"},null,8,["label"])]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.projectName")},{default:Oe(()=>[c(pe,{modelValue:u.value.name,"onUpdate:modelValue":ie[1]||(ie[1]=st=>u.value.name=st),placeholder:Y.$t("workbench.project.dialog.projectNamePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.novelType")},{default:Oe(()=>[c(pe,{modelValue:u.value.type,"onUpdate:modelValue":ie[2]||(ie[2]=st=>u.value.type=st),placeholder:Y.$t("workbench.project.dialog.novelTypePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.modelData")},{default:Oe(()=>[ge("div",TBo,[c(T8,{modelValue:u.value.imageModel,"onUpdate:modelValue":ie[3]||(ie[3]=st=>u.value.imageModel=st),type:"image"},null,8,["modelValue"]),c(Z,{modelValue:u.value.imageQuality,"onUpdate:modelValue":ie[4]||(ie[4]=st=>u.value.imageQuality=st),class:"paramSelect ml-5",placeholder:Y.$t("workbench.production.editImage.quality")},{default:Oe(()=>[c(te,{value:"1K",label:"1K"}),c(te,{value:"2K",label:"2K"}),c(te,{value:"4K",label:"4K"})]),_:1},8,["modelValue","placeholder"])])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.videoModelData")},{default:Oe(()=>[ge("div",QBo,[c(T8,{modelValue:u.value.videoModel,"onUpdate:modelValue":ie[5]||(ie[5]=st=>u.value.videoModel=st),type:"video",onChange:F,changeConfig:!0},null,8,["modelValue"]),c(Z,{modelValue:u.value.mode,"onUpdate:modelValue":ie[6]||(ie[6]=st=>u.value.mode=st),class:"paramSelect ml-5",placeholder:Y.$t("workbench.production.editImage.mode")},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(M.value,st=>(xe(),Ut(te,{key:st.value,value:st.value,label:st.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","placeholder"])])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.videoRatio")},{default:Oe(()=>[c(Z,{modelValue:u.value.videoRatio,"onUpdate:modelValue":ie[7]||(ie[7]=st=>u.value.videoRatio=st),options:l},null,8,["modelValue"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.novelIntro")},{default:Oe(()=>[c(Ce,{modelValue:u.value.intro,"onUpdate:modelValue":ie[8]||(ie[8]=st=>u.value.intro=st),autosize:{minRows:3,maxRows:6},placeholder:Y.$t("workbench.project.dialog.novelIntroPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["data"])]),ge("div",DBo,[c(Qe,{"label-align":"top"},{default:Oe(()=>[c(he,null,{default:Oe(()=>[ge("div",BBo,[ge("div",RBo,[ge("span",null,Pe(Y.$t("workbench.project.dialog.visualManual")),1),c(me,{size:"small",variant:"outline",onClick:ie[9]||(ie[9]=st=>_())},{icon:Oe(()=>[c(ke,{size:"14"})]),default:Oe(()=>[Bt(" "+Pe(Y.$t("workbench.project.dialog.newVisualManual")),1)]),_:1})]),ge("div",IBo,[c(De,{loading:k.value,text:Y.$t("workbench.project.dialog.loading")},{default:Oe(()=>[ge("div",MBo,[(xe(!0),Ge(sn,null,Bi(f.value,(st,Me)=>(xe(),Ge("div",{key:Me,class:Eo(["gridItem",{active:u.value.artStyle===st.stylePath}]),onClick:Se=>u.value.artStyle=st.stylePath},[ge("div",FBo,[ge("img",{src:st.images&&st.images[0],alt:st.name,class:"artImage",loading:"lazy"},null,8,NBo),ge("div",UBo,Pe(st.name),1)]),ge("div",{class:"editBtn",onClick:Mr(Se=>_(st),["stop"])},[c(_e,{theme:"outline",size:"14"})],8,jBo),ge("div",{class:"delBtn",onClick:Mr(Se=>Q(st),["stop"])},[c(Te,{theme:"outline",size:"14"})],8,WBo)],10,PBo))),128))])]),_:1},8,["loading","text"])])])]),_:1}),c(he,null,{default:Oe(()=>[ge("div",VBo,[ge("div",zBo,[ge("span",null,Pe(Y.$t("workbench.project.dialog.directorManual")),1),c(me,{size:"small",variant:"outline",onClick:ie[10]||(ie[10]=st=>se())},{icon:Oe(()=>[c(ke,{size:"14"})]),default:Oe(()=>[Bt(" "+Pe(Y.$t("workbench.project.dialog.addDirectorManual")),1)]),_:1})]),ge("div",HBo,[c(De,{loading:H.value,text:Y.$t("workbench.project.dialog.loading")},{default:Oe(()=>[ge("div",$Bo,[(xe(!0),Ge(sn,null,Bi(q.value,(st,Me)=>(xe(),Ge("div",{key:Me,class:Eo(["gridItem",{active:u.value.directorManual===st.directorManual}]),onClick:Se=>u.value.directorManual=st.directorManual},[ge("div",GBo,[ge("img",{src:st.images&&st.images[0],alt:st.name,class:"artImage",loading:"lazy"},null,8,YBo),ge("div",ZBo,Pe(st.name),1)]),ge("div",{class:"editBtn",onClick:Mr(Se=>se(st),["stop"])},[c(_e,{theme:"outline",size:"14"})],8,qBo),ge("div",{class:"delBtn",onClick:Mr(Se=>ue(st),["stop"])},[c(Te,{theme:"outline",size:"14"})],8,KBo)],10,XBo))),128))])]),_:1},8,["loading","text"])])])]),_:1})]),_:1})])])]),_:1},8,["visible","header","confirm-btn","cancel-btn"]),c(Ye,{class:"artStyleDialog",visible:A.value,"onUpdate:visible":ie[15]||(ie[15]=st=>A.value=st),header:p.value?Y.$t("workbench.project.dialog.editVisualManualTitle"):Y.$t("workbench.project.dialog.newVisualManualTitle"),width:"90vw",placement:"center",onConfirm:P,onCloseBtnClick:le,onCancel:le,"confirm-btn":Y.$t("workbench.project.dialog.ok"),"cancel-btn":Y.$t("workbench.project.dialog.cancel")},{default:Oe(()=>[c(De,{loading:D.value},{default:Oe(()=>[c(Qe,{"label-align":"top"},{default:Oe(()=>[c(he,null,{default:Oe(()=>[ge("div",JBo,[ge("div",eRo,[ge("label",tRo,Pe(Y.$t("workbench.project.dialog.visualManualName")),1),c(pe,{modelValue:b.value.name,"onUpdate:modelValue":ie[12]||(ie[12]=st=>b.value.name=st),placeholder:Y.$t("workbench.project.dialog.visualManualNamePh")},null,8,["modelValue","placeholder"])]),ge("div",nRo,[ge("label",iRo,Pe(Y.$t("workbench.project.dialog.mdFile")),1),c(pe,{modelValue:b.value.stylePath,"onUpdate:modelValue":ie[13]||(ie[13]=st=>b.value.stylePath=st),disabled:!!p.value},null,8,["modelValue","disabled"])]),ge("div",rRo,[ge("label",oRo,Pe(Y.$t("workbench.project.dialog.visualManualCover")),1),ge("div",sRo,[(xe(!0),Ge(sn,null,Bi(b.value.images,(st,Me)=>(xe(),Ge("div",{key:Me,class:"coverPreview"},[ge("img",{src:st,class:"coverImg"},null,8,aRo),ge("div",{class:"coverImgRemove",onClick:Se=>T(Me)},[c(ot,{size:"10"})],8,lRo)]))),128)),ge("div",{class:"coverUploadTrigger",onClick:L},[ge("input",{ref_key:"visualManualCoverInputRef",ref:w,type:"file",accept:"image/*",multiple:"",style:{display:"none"},onChange:E},null,544),c(ke,{size:"24"}),ge("span",null,Pe(Y.$t("workbench.project.dialog.uploadCover")),1)])])])])]),_:1}),c(he,{label:Y.$t("workbench.project.dialog.visualManualPrompt")},{default:Oe(()=>[ge("div",cRo,[ge("div",dRo,[ge("div",uRo,[c(et,{value:O.value,size:"medium",onChange:ie[14]||(ie[14]=st=>O.value=st)},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(y.value,st=>(xe(),Ut(We,{key:st.value,value:st.value,label:st.label},{default:Oe(()=>[c(Ae(X4),{modelValue:st.data,"onUpdate:modelValue":Me=>st.data=Me,theme:"light",toolbars:v,footers:[],placeholder:Y.$t("workbench.project.dialog.promptPlaceholder"),style:{height:"30vh","margin-top":"5px"},onOnUploadImg:()=>{}},null,8,["modelValue","onUpdate:modelValue","placeholder"])]),_:2},1032,["value","label"]))),128))]),_:1},8,["value"])])])])]),_:1},8,["label"])]),_:1})]),_:1},8,["loading"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"]),c(Ye,{class:"artStyleDialog",visible:G.value,"onUpdate:visible":ie[19]||(ie[19]=st=>G.value=st),header:$.value?Y.$t("workbench.project.dialog.editingDirectorManual"):Y.$t("workbench.project.dialog.newDirecorManualTitle"),width:"90vw",placement:"center",onConfirm:ee,onCloseBtnClick:S,onCancel:S,"confirm-btn":Y.$t("workbench.project.dialog.ok"),"cancel-btn":Y.$t("workbench.project.dialog.cancel")},{default:Oe(()=>[c(De,{loading:D.value},{default:Oe(()=>[c(Qe,{"label-align":"top"},{default:Oe(()=>[c(he,null,{default:Oe(()=>[ge("div",hRo,[ge("div",fRo,[ge("label",gRo,Pe(Y.$t("workbench.project.dialog.directorManualName")),1),c(pe,{modelValue:W.value.name,"onUpdate:modelValue":ie[16]||(ie[16]=st=>W.value.name=st),placeholder:Y.$t("workbench.project.dialog.directorManualNamePh")},null,8,["modelValue","placeholder"])]),ge("div",mRo,[ge("label",kRo,Pe(Y.$t("workbench.project.dialog.directorFile")),1),c(pe,{modelValue:W.value.directorManual,"onUpdate:modelValue":ie[17]||(ie[17]=st=>W.value.directorManual=st),disabled:!!$.value},null,8,["modelValue","disabled"])]),ge("div",vRo,[ge("label",ARo,Pe(Y.$t("workbench.project.dialog.directorManualCover")),1),ge("div",pRo,[(xe(!0),Ge(sn,null,Bi(W.value.images,(st,Me)=>(xe(),Ge("div",{key:Me,class:"coverPreview"},[ge("img",{src:st,class:"coverImg"},null,8,bRo),ge("div",{class:"coverImgRemove",onClick:Se=>T(Me)},[c(ot,{size:"10"})],8,wRo)]))),128)),ge("div",{class:"coverUploadTrigger",onClick:de},[ge("input",{ref_key:"visualManualCoverInputRef",ref:w,type:"file",accept:"image/*",multiple:"",style:{display:"none"},onChange:z},null,544),c(ke,{size:"24"}),ge("span",null,Pe(Y.$t("workbench.project.dialog.uploadCover")),1)])])])])]),_:1}),c(he,{label:Y.$t("workbench.project.dialog.directorManualPrompt")},{default:Oe(()=>[ge("div",ORo,[ge("div",yRo,[ge("div",CRo,[c(et,{value:re.value,size:"medium",onChange:ie[18]||(ie[18]=st=>re.value=st)},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(J.value,st=>(xe(),Ut(We,{key:st.value,value:st.value,label:st.label},{default:Oe(()=>[c(Ae(X4),{modelValue:st.data,"onUpdate:modelValue":Me=>st.data=Me,theme:"light",toolbars:v,footers:[],placeholder:Y.$t("workbench.project.dialog.promptPlaceholder"),style:{height:"30vh","margin-top":"5px"},onOnUploadImg:()=>{}},null,8,["modelValue","onUpdate:modelValue","placeholder"])]),_:2},1032,["value","label"]))),128))]),_:1},8,["value"])])])])]),_:1},8,["label"])]),_:1})]),_:1},8,["loading"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])])}}}),SRo=oo(_Ro,[["__scopeId","data-v-2e24f11a"]]),LRo={class:"project"},xRo={class:"header"},ERo={class:"fc"},TRo={class:"title"},QRo={class:"sub"},DRo={class:"list"},BRo={class:"jb ac"},RRo={class:"title"},IRo={class:"intro"},MRo={class:"bottomMenu f ac jb"},PRo={class:"time"},FRo={class:"actionBtns f ac"},NRo=["onClick"],URo=["onClick"],jRo=Je({__name:"index",setup(e){const{allProject:t,project:n}=xs(ph()),r=fe(!1),o=fe(null);function s(){mn.post("/project/getProject").then(({data:m})=>{t.value=m})}An(()=>{n.value=null,s()});const a=_pe();function l(m){const v=t.value.find(f=>f.id===m);if(v)n.value=v;else return window.$message.error($t("workbench.project.msg.notFound"));v.projectType==="novel"?a.push("/novel"):v.projectType==="script"&&a.push("/script")}function d(m){o.value={...m},r.value=!0}function u(m){mn.post("/project/editProject",m).then(()=>{window.$message.success($t("workbench.project.msg.editSuccess")),s()}).catch(v=>{window.$message.error(v.message??$t("workbench.project.msg.editFailed"))})}function h(m){mn.post("/project/addProject",m).then(()=>{window.$message.success($t("workbench.project.msg.addSuccess")),s()}).catch(v=>{window.$message.error(v.message??$t("workbench.project.msg.addFailed"))})}function g(m){const v=fo.confirm({header:$t("workbench.project.msg.deleteHeader"),body:$t("workbench.project.msg.deleteBody"),confirmBtn:$t("workbench.project.msg.deleteConfirm"),cancelBtn:$t("workbench.project.msg.deleteCancel"),onConfirm:()=>{mn.post("/project/delProject",{id:m}).then(()=>{window.$message.success($t("workbench.project.msg.deleteSuccess")),s()}).catch(f=>{window.$message.error(f.message??$t("workbench.project.msg.deleteFailed"))}).finally(()=>{v.destroy()})}})}return(m,v)=>{const f=_n("i-plus"),k=Si,A=Sg,p=_n("i-edit"),b=_n("i-delete"),w=km,O=L1i,y=S1i;return xe(),Ge(sn,null,[ge("div",LRo,[ge("div",xRo,[ge("div",ERo,[ge("span",TRo,Pe(m.$t("workbench.project.title")),1),ge("span",QRo,Pe(m.$t("workbench.project.subtitle")),1)]),c(k,{class:"addBtn",onClick:v[0]||(v[0]=C=>{o.value=null,r.value=!0})},{icon:Oe(()=>[c(f,{class:"addIcon",size:20})]),default:Oe(()=>[Bt(" "+Pe(m.$t("workbench.project.newProject")),1)]),_:1})]),ge("div",DRo,[c(y,{style:{gap:"20px"}},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(t),C=>(xe(),Ut(O,{xs:12,sm:6,md:6,lg:4,xl:4,key:C.id},{default:Oe(()=>[c(w,{hoverShadow:"",class:"card",onClick:_=>l(C.id)},{default:Oe(()=>[ge("div",BRo,[ge("div",RRo,Pe(C.name),1),ge("div",null,[c(A,{shape:"round"},{default:Oe(()=>[Bt(Pe(C.projectType=="novel"?m.$t("workbench.project.type.novel"):m.$t("workbench.project.type.script")),1)]),_:2},1024)])]),C.artStyle?(xe(),Ut(A,{key:0,shape:"round"},{default:Oe(()=>[Bt(Pe(C.artStyle),1)]),_:2},1024)):nn("",!0),ge("div",IRo,Pe(C.intro),1),ge("div",MRo,[ge("div",PRo,[ge("span",null,Pe(Ae(JB)(C==null?void 0:C.createTime).format("YYYY-MM-DD HH:mm:ss")),1)]),ge("div",FRo,[ge("div",{class:"editBtn",onClick:Mr(_=>d(C),["stop"])},[c(p,{size:18})],8,NRo),ge("div",{class:"removeBtn",onClick:Mr(_=>g(C.id),["stop"])},[c(b,{size:18})],8,URo)])])]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})])]),c(SRo,{modelValue:Ae(r),"onUpdate:modelValue":v[1]||(v[1]=C=>Fn(r)?r.value=C:null),projectData:Ae(o),onAdd:h,onEdit:u},null,8,["modelValue","projectData"])],64)}}}),WRo=oo(jRo,[["__scopeId","data-v-d59f6a92"]]),VRo=Object.freeze(Object.defineProperty({__proto__:null,default:WRo},Symbol.toStringTag,{value:"Module"})),zRo={class:"task"},HRo={class:"header"},$Ro={class:"headerInfo fc"},XRo={class:"title"},GRo={class:"sub"},YRo={class:"list"},ZRo={class:"search f"},qRo={class:"content"},KRo={class:"stateText stateFail"},JRo=Je({__name:"index",setup(e){const{project:t}=xs(ph()),n=[{colKey:"taskClass",title:$t("workbench.task.col.taskClass"),width:120,ellipsis:!0},{colKey:"relatedObjects",title:$t("workbench.task.col.relatedObjects"),width:120,ellipsis:!0},{colKey:"model",title:$t("workbench.task.col.model"),width:280,ellipsis:!0},{colKey:"describe",title:$t("workbench.task.col.describe"),ellipsis:!0},{colKey:"reason",title:$t("workbench.task.col.reason"),ellipsis:!0},{colKey:"state",title:$t("workbench.task.col.state"),width:100,cell:"state"},{colKey:"startTime",title:$t("workbench.task.col.startTime"),width:200,cell:"startTime"}],r=[{label:$t("workbench.task.stateAll"),value:""},{label:$t("workbench.task.stateRunning"),value:"进行中"},{label:$t("workbench.task.stateCompleted"),value:"已完成"},{label:$t("workbench.task.stateFailed"),value:"生成失败"}],o=fe({page:1,limit:10,total:0,loading:!1}),s=fe([]),a=fe([]),l=fe(""),d=fe(""),u=fe(""),h=fe([]);An(()=>{f(),m(),v()});function g(){o.value.page=1,f()}async function m(){const{data:k}=await mn.post("/task/getTaskCategories").catch(()=>({data:[]}));s.value=[{label:$t("workbench.task.stateAll"),value:""},...k.map(A=>({label:A.taskClass,value:A.taskClass}))]}async function v(){const{data:k}=await mn.post("/task/getProject").catch(()=>({data:[]}));a.value=[{label:$t("workbench.task.stateAll"),value:""},...k.map(A=>({label:A.name,value:A.id}))]}async function f(){var k;o.value.loading=!0;try{const{data:A}=await mn.post("/task/getTaskApi",{page:o.value.page,limit:o.value.limit,taskClass:l.value,state:d.value,projectId:u.value||((k=t.value)==null?void 0:k.id)});h.value=A.data,o.value.total=A.total}catch{window.$message.error($t("workbench.task.fetchFailed"))}finally{o.value.loading=!1}}return(k,A)=>{const p=_n("i-redo"),b=Si,w=pA,O=el,y=jne,C=g3n;return xe(),Ge("div",zRo,[ge("div",HRo,[ge("div",$Ro,[ge("span",XRo,Pe(k.$t("workbench.task.title")),1),ge("span",GRo,Pe(k.$t("workbench.task.subtitle")),1)]),c(b,{onClick:f},{icon:Oe(()=>[c(p,{size:20})]),default:Oe(()=>[Bt(" "+Pe(k.$t("workbench.task.refresh")),1)]),_:1})]),ge("div",YRo,[ge("div",ZRo,[c(w,{label:k.$t("workbench.task.project"),modelValue:Ae(u),"onUpdate:modelValue":A[0]||(A[0]=_=>Fn(u)?u.value=_:null),options:Ae(a),onChange:g},null,8,["label","modelValue","options"]),c(w,{label:k.$t("workbench.task.categoryLabel"),modelValue:Ae(l),"onUpdate:modelValue":A[1]||(A[1]=_=>Fn(l)?l.value=_:null),options:Ae(s),onChange:g,style:{"margin-left":"20px"}},null,8,["label","modelValue","options"]),c(w,{label:k.$t("workbench.task.stateLabel"),modelValue:Ae(d),"onUpdate:modelValue":A[2]||(A[2]=_=>Fn(d)?d.value=_:null),options:r,onChange:g,style:{"margin-left":"20px"}},null,8,["label","modelValue"])]),ge("div",qRo,[c(y,{data:Ae(h),columns:n,"row-key":"id",loading:Ae(o).loading,hover:"",stripe:""},{state:Oe(({row:_})=>[_.state==="生成失败"?(xe(),Ut(O,{key:0,content:_.reason||k.$t("workbench.task.noFailReason"),placement:"top"},{default:Oe(()=>[ge("span",KRo,Pe(_.state),1)]),_:2},1032,["content"])):(xe(),Ge("span",{key:1,class:Eo(["stateText",_.state==="进行中"?"stateRunning":"stateSuccess"])},Pe(_.state),3))]),startTime:Oe(({row:_})=>[ge("span",null,Pe(Ae(JB)(_.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),_:1},8,["data","loading"]),c(C,{class:"paginationWrap",current:Ae(o).page,"onUpdate:current":A[3]||(A[3]=_=>Ae(o).page=_),pageSize:Ae(o).limit,"onUpdate:pageSize":A[4]||(A[4]=_=>Ae(o).limit=_),"show-sizer":"",total:Ae(o).total,onPageSizeChange:f,onCurrentChange:f},null,8,["current","pageSize","total"])])])])}}}),eIo=oo(JRo,[["__scopeId","data-v-7d93af9d"]]),tIo=Object.freeze(Object.defineProperty({__proto__:null,default:eIo},Symbol.toStringTag,{value:"Module"})),Dce=/^(第[\d一二三四五六七八九十百千]+卷)\s*([^\n第]*)/gm,nIo=/第\s*([0-90-9零一二三四五六七八九十百千万]+)\s*[章回节]\s*([^\n\r]*)/g,O5e={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},GSt={十:10,百:100,千:1e3};function y5e(e){if(/^\d+$/.test(e))return parseInt(e,10);if(/^十[一二三四五六七八九]?$/.test(e))return e.length===1?10:10+O5e[e[1]];let t=0,n=0;for(const r of e)O5e[r]!==void 0?n=O5e[r]:GSt[r]!==void 0&&(n===0&&r==="十"&&(n=1),t+=n*GSt[r],n=0);return t+=n,t}function iIo(e){var l;Dce.lastIndex=0;const t=Array.from(e.matchAll(Dce)),n=[];let r;const o=ku().otherSetting.chapterReg;if(o){const d=o.match(/^\/(.*)\/([igmuy]*)$/);d?r=new RegExp(d[1],d[2]):r=new RegExp(o)}else r=nIo;if(t.length===0){const d=[];r.lastIndex=0;const u=Array.from(e.matchAll(r));if(u.length===0&&e.trim()!=="")d.push({index:1,chapter:"",text:e.trim()});else for(let h=0;hh.index-g.index),n.push({index:1,reel:"正文卷",chapters:d}),n}const s=new Map;for(let d=0;dp.index-b.index),s.has(m)||s.set(m,{index:y5e(g.replace(/第|卷/g,"")),reel:m,chapters:[]}),s.get(m).chapters.push(...A)}const a=Array.from(s.values()).sort((d,u)=>d.index-u.index);return a.forEach(d=>d.chapters.sort((u,h)=>u.index-h.index)),a}var _p={},Cit="1.13.8",YSt=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||Function("return this")()||{},iwe=Array.prototype,_it=Object.prototype,ZSt=typeof Symbol<"u"?Symbol.prototype:null,rIo=iwe.push,lre=iwe.slice,Tee=_it.toString,oIo=_it.hasOwnProperty,kPn=typeof ArrayBuffer<"u",sIo=typeof DataView<"u",aIo=Array.isArray,qSt=Object.keys,KSt=Object.create,JSt=kPn&&ArrayBuffer.isView,lIo=isNaN,cIo=isFinite,vPn=!{toString:null}.propertyIsEnumerable("toString"),e8t=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],dIo=Math.pow(2,53)-1;function V0(e,t){return t=t==null?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),o=0;o=0&&n<=dIo}}function xPn(e){return function(t){return t==null?void 0:t[e]}}const Dke=xPn("byteLength"),gIo=LPn(Dke);var mIo=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function kIo(e){return JSt?JSt(e)&&!Qee(e):gIo(e)&&mIo.test(Tee.call(e))}const Rit=kPn?kIo:Bit(!1),m1=xPn("length");function vIo(e){for(var t={},n=e.length,r=0;r=0))if(r.push(e),o.push(t),n.push(!0),d){if(m=e.length,m!==t.length)return!1;for(;m--;)n.push({a:e[m],b:t[m]})}else{var v=Mf(e),f;if(m=v.length,Mf(t).length!==m)return!1;for(;m--;){if(f=v[m],!vE(t,f))return!1;n.push({a:e[f],b:t[f]})}}}return!0}function gH(e){if(!mE(e))return[];var t=[];for(var n in e)t.push(n);return vPn&&EPn(e,t),t}function Mit(e){var t=m1(e);return function(n){if(n==null)return!1;var r=gH(n);if(m1(r))return!1;for(var o=0;o":">",'"':""","'":"'","`":"`"},qPn=YPn(ZPn),wIo=Nit(ZPn),KPn=YPn(wIo),JPn=Jl.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C5e=/(.)^/,OIo={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},yIo=/\\|'|\r|\n|\u2028|\u2029/g;function CIo(e){return"\\"+OIo[e]}var _Io=/^\s*(\w|\$)+\s*$/;function eFn(e,t,n){!t&&n&&(t=n),t=Wit({},t,Jl.templateSettings);var r=RegExp([(t.escape||C5e).source,(t.interpolate||C5e).source,(t.evaluate||C5e).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(r,function(u,h,g,m,v){return s+=e.slice(o,v).replace(yIo,CIo),o=v+u.length,h?s+=`'+ +`,LTo={class:"modelServe"},xTo={class:"modelList"},ETo={class:"listFooter"},TTo={class:"listContent"},QTo={key:0,class:"modelParameter"},DTo={class:"configuration"},BTo={class:"infoBox ac jb"},RTo={class:"idBox"},ITo={class:"author"},MTo={class:"requiredLabel"},PTo={class:"requiredText"},FTo={class:"inputHelp"},NTo={key:0,class:"optionalSection"},UTo={class:"inputHelp"},jTo={class:"jb ac"},WTo={class:"sectionTitle"},VTo={class:"topInfo jb ac"},zTo={class:"modelCardName"},HTo={class:"actionBtns"},$To={class:"tags"},XTo={class:"updateAction"},GTo={class:"addBox"},YTo={style:{display:"flex","flex-direction":"column","align-items":"flex-start",gap:"0"}},ZTo={style:{border:"1px solid #ddd","border-radius":"6px",padding:"6px 12px","margin-top":"6px"}},qTo={class:"drmEditor"},KTo={class:"drmHeader"},JTo={class:"drmHeaderLabel"},eQo={class:"drmHeaderLabel"},tQo={class:"drmRowIndex"},nQo={class:"testResult"},iQo={key:0,class:"resultContent"},rQo=["src"],oQo={key:1,class:"resultContent"},sQo=["src"],aQo={key:2,class:"resultContent"},lQo={class:"data"},cQo={key:0,class:"linkAdd"},dQo={style:{"margin-top":"10px","text-align":"right",width:"100%"}},uQo={key:1,class:"importAdd"},hQo={class:"dragIcon"},fQo={class:"uploadText"},gQo={class:"uploadHint"},mQo={key:2,class:"codeAdd"},kQo={class:"editorToolbar"},vQo={class:"editorInfo"},AQo={class:"editorActions"},pQo={class:"editorWrapper"},bQo=700,wQo=Je({__name:"vendorConfig",setup(e){const t={text:"settings.vendor.textModel",image:"settings.vendor.imageModel",video:"settings.vendor.videoModel"},n={singleImage:"settings.vendor.singleImage",multiImage:"settings.vendor.multiImage",startEndRequired:"settings.vendor.startEndRequired",endFrameOptional:"settings.vendor.endFrameOptional",startFrameOptional:"settings.vendor.startFrameOptional",audioReference:"settings.vendor.audioRef",videoReference:"settings.vendor.videoRef",textReference:"settings.vendor.textRef",imageReference:"settings.vendor.imageRef"};function r(Se){return t[Se]||Se}function o(Se,Ie){return Se==="text"?Ie==="image"?"settings.vendor.textToImage":"settings.vendor.textToVideo":n[Se]||Se}const s={fontSize:14,automaticLayout:!0,tabSize:2,scrollBeyondLastLine:!1,formatOnPaste:!0,formatOnType:!0},a=[{value:"text",label:"settings.vendor.textModel"},{value:"image",label:"settings.vendor.imageModel"},{value:"video",label:"settings.vendor.videoModel"}],l=[{label:"settings.vendor.textToImage",value:"text"},{label:"settings.vendor.singleImage",value:"singleImage"}],d=[{label:"settings.vendor.singleImage",value:"singleImage"},{label:"settings.vendor.multiImage",value:"multiImage"},{label:"settings.vendor.startEndRequired",value:"startEndRequired"},{label:"settings.vendor.endFrameOptional",value:"endFrameOptional"},{label:"settings.vendor.startFrameOptional",value:"startFrameOptional"},{label:"settings.vendor.textToVideo",value:"text"}],u=[{label:"settings.vendor.textRef",value:"textReference"},{label:"settings.vendor.imageRef",value:"videoReference"},{label:"settings.vendor.videoRef",value:"imageReference"},{label:"settings.vendor.audioRef",value:"audioReference"}],h=[{label:"settings.vendor.audioOptional",value:"optional"},{label:"settings.vendor.audioOnly",value:!0},{label:"settings.vendor.noAudio",value:!1}],g=fe([]),m=fe(!1);async function v(){m.value=!0;try{const Se=await mn.post("/setting/vendorConfig/getVendorList");g.value=Se.data.map(Ie=>({...Ie,enable:Ie.enable})),g.value.length&&!g.value.some(Ie=>Ie.id===f.value)&&(f.value=g.value[0].id)}catch(Se){window.$message.error(`${$t("settings.vendor.msg.getVendorListFailed")}${Se.message}`)}finally{m.value=!1,ai(()=>{E.value=H.value,L.value=!0})}}An(()=>{v()});const f=fe(),k=X(()=>g.value.find(Se=>Se.id===f.value)),A=X(()=>{var Se,Ie;return((Se=k.value)==null?void 0:Se.models)||((Ie=k.value)==null?void 0:Ie.model)||[]}),p=X(()=>{var Se,Ie;return((Ie=(Se=k.value)==null?void 0:Se.inputs)==null?void 0:Ie.filter(ze=>ze.required))||[]}),b=X(()=>{var Se,Ie;return((Ie=(Se=k.value)==null?void 0:Se.inputs)==null?void 0:Ie.filter(ze=>!ze.required))||[]}),w=fe(!1),O=fe(!1),y=fe(b5e),C=fe(null),_=fe(!1),S=fe(!1),L=fe(!1),E=fe("");let T=null,D=!1;const P=fe(!1),Q=fe(""),M=fe(""),B=fe(""),R=hs({});function I(Se){return Se==="password"?"secured":Se==="url"?"link":"edit-1"}function F(Se){var Ie;return((Ie=Se.placeholder)==null?void 0:Ie.trim())||""}function j(Se){return Se?/^(?:data:[^;]+;base64,)?[A-Za-z0-9+/]*={0,2}$/.test(Se)&&Se.length>0:!1}function W(Se){return{id:Se.id,name:Se.name,icon:Se.icon,inputs:Se.inputs,inputValues:Se.inputValues,models:Se.models??Se.model??[]}}const H=X(()=>k.value?JSON.stringify(W(k.value)):"");function $(){T&&clearTimeout(T),T=setTimeout(()=>{G()},bQo)}async function G(){if(!k.value||!L.value||m.value)return;const Se=H.value;if(!(!Se||Se===E.value)){if(S.value){D=!0;return}S.value=!0;try{await mn.post("/setting/vendorConfig/updateVendor",W(k.value)),E.value=Se}catch(Ie){window.$message.error(`${$t("settings.vendor.msg.updateFailed")}${Ie.message}`)}finally{S.value=!1,D&&(D=!1,$())}}}pt(H,Se=>{!Se||!L.value||m.value||Se!==E.value&&$()},{flush:"post"}),pt(f,()=>{T&&(clearTimeout(T),T=null),D=!1,ai(()=>{E.value=H.value})},{flush:"post"});const q=fe();function re(){ke.value="linkAdd",q.value=void 0,y.value=b5e,w.value=!0}function J(){if(q.value){const Se=co.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.updateVendorRiskBody"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{Se.destroy();const Ie=co.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.updateVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndUpdate"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{mn.post("/setting/vendorConfig/updateCode",{id:q.value,tsCode:y.value}).then(ze=>{window.$message.success($t("settings.vendor.msg.updateSuccess")),w.value=!1,O.value=!1,v()}).catch(ze=>{window.$message.error(`${$t("settings.vendor.msg.updateFailed")}${ze.message}`)}).finally(()=>{Ie.destroy()})},onClose:()=>Ie.hide()})},onClose:()=>Se.hide()})}else{const Se=co.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.addVendorRiskBody"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{Se.destroy();const Ie=co.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.addVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndAdd"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{mn.post("/setting/vendorConfig/addVendor",{tsCode:y.value}).then(ze=>{window.$message.success($t("settings.vendor.msg.vendorAdded")),w.value=!1,O.value=!1,v()}).catch(ze=>{window.$message.error(`${$t("settings.vendor.msg.addFailed")}${ze.message}`)}).finally(()=>{Ie.destroy()})},onClose:()=>Ie.hide()})},onClose:()=>Se.hide()})}}const oe=fe(!1),se=fe(null),le=fe({name:"",modelName:"",type:"text",think:!1,mode:[],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:""});function ue(Se="text"){le.value={name:"",modelName:"",type:Se,think:!1,mode:[],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:""}}function ee(){return k.value?(Array.isArray(k.value.models)||(k.value.models=Array.isArray(k.value.model)?[...k.value.model]:[]),k.value.model=k.value.models,k.value.models):[]}function de(){const Se=le.value.name.trim(),Ie=le.value.modelName.trim();if(!Se)return window.$message.error($t("settings.vendor.msg.fillDisplayName")),null;if(!Ie)return window.$message.error($t("settings.vendor.msg.fillModelId")),null;if(le.value.type==="text")return{name:Se,modelName:Ie,type:"text",think:le.value.think,associationSkills:le.value.associationSkills};if(le.value.type==="image"){const gt=le.value.mode;return gt.length?{name:Se,modelName:Ie,type:"image",mode:gt,associationSkills:le.value.associationSkills}:(window.$message.error($t("settings.vendor.msg.selectImageMode")),null)}const ze=[...le.value.mode];if(le.value.mixedMode.length>0&&ze.push([...le.value.mixedMode]),!ze.length)return window.$message.error($t("settings.vendor.msg.selectVideoMode")),null;const Ze=[];for(let gt=0;gtNumber.isFinite(on)&&on>0),dn=St.resolution.filter(Boolean);if(!Pt.length)return window.$message.error(`${$t("settings.vendor.msg.groupPrefix",{n:gt+1})}${$t("settings.vendor.msg.addDuration")}`),null;if(!dn.length)return window.$message.error(`${$t("settings.vendor.msg.groupPrefix",{n:gt+1})}${$t("settings.vendor.msg.addResolution")}`),null;Ze.push({duration:Pt,resolution:dn})}return{name:Se,modelName:Ie,type:"video",mode:ze,audio:le.value.audio,durationResolutionMap:Ze,associationSkills:le.value.associationSkills}}function z(){if(!k.value){window.$message.error($t("settings.vendor.msg.selectVendorFirst"));return}se.value=null,ue("text"),oe.value=!0}function Y(){const Se=ee();if(!Se.length&&!k.value)return;const Ie=de();if(!Ie)return;if(Se.findIndex((Ze,gt)=>se.value!==null&>===se.value?!1:Ze.modelName===Ie.modelName)!==-1){window.$message.error($t("settings.vendor.msg.modelIdExists"));return}se.value===null?(Se.push(Ie),window.$message.success($t("settings.vendor.msg.modelAdded"))):(Se.splice(se.value,1,Ie),window.$message.success($t("settings.vendor.msg.modelUpdated"))),oe.value=!1}function ie(Se){var ze;const Ie=ee();if(se.value=Ie.findIndex(Ze=>Ze.modelName===Se.modelName),Se.type==="text"&&(le.value={name:Se.name,modelName:Se.modelName,type:"text",think:Se.think,mode:[],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:Se.associationSkills||""}),Se.type==="image"&&(le.value={name:Se.name,modelName:Se.modelName,type:"image",think:!1,mode:[...Se.mode],mixedMode:[],audio:"optional",durationResolutionMap:[{duration:[],resolution:[]}],associationSkills:Se.associationSkills||""}),Se.type==="video"){const Ze=((ze=Se.durationResolutionMap)==null?void 0:ze.length)>0?Se.durationResolutionMap.map(Pt=>({duration:Pt.duration.map(String),resolution:[...Pt.resolution]})):[{duration:[],resolution:[]}],gt=[];let St=[];for(const Pt of Se.mode)Array.isArray(Pt)?St=[...Pt]:gt.push(Pt);le.value={name:Se.name,modelName:Se.modelName,type:"video",think:!1,mode:gt,mixedMode:St,audio:Se.audio,durationResolutionMap:Ze,associationSkills:Se.associationSkills||""}}oe.value=!0}async function te(Se){var Ie,ze,Ze,gt,St,Pt,dn;if(!((ze=(Ie=k.value)==null?void 0:Ie.inputValues)!=null&&ze.apiKey))return window.$message.error($t("settings.vendor.msg.enterApiKey"));if(!((gt=(Ze=k.value)==null?void 0:Ze.inputValues)!=null&>.baseUrl))return window.$message.error($t("settings.vendor.msg.enterApiUrl"));if(!R[Se.modelName]){R[Se.modelName]=!0;try{const{data:on}=await mn.post("/setting/vendorConfig/modelTest",{type:Se.type,modelName:Se.modelName,id:k.value.id});Se.type==="text"?window.$message.success(`${Se.modelName} ${$t("settings.vendor.msg.testSuccess")}: ${typeof on=="string"?on:JSON.stringify(on)}`):(Se.type==="image"||Se.type==="video")&&(B.value=Se.modelName,M.value=Se.type,Q.value=on,P.value=!0,window.$message.success(`${Se.type==="image"?$t("settings.vendor.msg.imageGenSuccess"):$t("settings.vendor.msg.videoGenSuccess")}`))}catch(on){const pn=((Pt=(St=on==null?void 0:on.response)==null?void 0:St.data)==null?void 0:Pt.message)||((dn=on==null?void 0:on.response)==null?void 0:dn.data)||(on==null?void 0:on.message)||String(on);window.$message.error(`${$t("settings.vendor.msg.requestFailed")}${typeof pn=="string"?pn:JSON.stringify(pn)}`)}finally{delete R[Se.modelName]}}}function Z(Se){if(!k.value)return;const Ie=co.confirm({theme:"danger",header:$t("settings.vendor.msg.deleteModelConfirm"),body:`${$t("settings.vendor.msg.deleteModelBody",{name:Se})}`,confirmBtn:{content:$t("settings.vendor.msg.confirmDelete"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{const Ze=ee().filter(gt=>gt.modelName!==Se);k.value.models=Ze,k.value.model=Ze,window.$message.success($t("settings.vendor.msg.modelDeleted")),Ie.destroy()}})}function he(){k.value&&(q.value=k.value.id,y.value=k.value.code,O.value=!0)}function pe(){if(!k.value)return;const Se=co.confirm({theme:"danger",header:$t("settings.vendor.msg.deleteVendorConfirm"),body:`${$t("settings.vendor.msg.deleteVendorBody",{name:k.value.name})}`,confirmBtn:{content:$t("settings.vendor.msg.confirmDelete"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{var Ie;mn.post("/setting/vendorConfig/deleteVendor",{id:(Ie=k.value)==null?void 0:Ie.id}).then(()=>{var ze;window.$message.success($t("settings.vendor.msg.vendorDeleted")),f.value===((ze=k.value)==null?void 0:ze.id)&&(f.value=void 0),v(),Se.destroy()}).catch(ze=>{window.$message.error(`${$t("settings.vendor.msg.deleteFailed")}${ze.message}`)})}})}function Ce(){var Se,Ie,ze,Ze,gt;mn.post("/setting/vendorConfig/updateVendor",{id:(Se=k.value)==null?void 0:Se.id,inputs:(Ie=k.value)==null?void 0:Ie.inputs,inputValues:(ze=k.value)==null?void 0:ze.inputValues,models:((Ze=k.value)==null?void 0:Ze.models)??((gt=k.value)==null?void 0:gt.model)??[]}).then(()=>{window.$message.success($t("settings.vendor.msg.vendorConfigUpdated")),v()}).catch(St=>{window.$message.error(`${$t("settings.vendor.msg.updateFailed")}${St.message}`)})}function Qe(Se,Ie){const ze=Ie===1?0:1;mn.post("/setting/vendorConfig/enableVendor",{id:Se.id,enable:Ie}).then(()=>{}).catch(Ze=>{Se.enable=ze})}const ke=fe("linkAdd"),me=fe(""),_e=fe(!1);pt(ke,Se=>{Se=="codeAdd"?O.value=!0:O.value=!1});function Te(){if(_e.value)return;const Se=co.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.linkAddVendorRiskBody"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{Se.destroy();const Ie=co.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.addVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndAdd"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{const ze=Wh({fullscreen:!0,attach:"body",preventScrollThrough:!1}),Ze=setTimeout(()=>{ze.hide(),clearTimeout(Ze)},1e3);_e.value=!0;try{const{data:gt}=await mn.post("/setting/vendorConfig/getCodeByLink",{link:me.value});if(!gt.includes("vendor")){let St=null;gt.includes("")?St=co.alert({theme:"danger",header:"链接返回了一个网页,添加供应商需要返回TS代码,请确认链接是否正确",body:"请勿输入中转站地址,如需使用中转站请修改OpenAI标准接口的baseUrl使用中转站地址",onConfirm:({e:Pt})=>{St.hide()}}):co.alert({theme:"danger",header:"链接返回的内容不正确,添加供应商需要返回TS代码,请确认链接是否正确",onConfirm:({e:Pt})=>{St.hide()}});return}gt?(mn.post("/setting/vendorConfig/addVendor",{tsCode:gt}),window.$message.success($t("settings.vendor.msg.vendorAdded")),w.value=!1,O.value=!1,v()):(window.$message.error($t("settings.vendor.msg.linkAddFailed")),O.value=!1)}catch(gt){window.$message.error(`${$t("settings.vendor.msg.addFailed")}${gt.message}`)}finally{clearTimeout(Ze),ze.hide(),_e.value=!1,Ie.destroy()}},onClose:()=>Ie.hide()})},onClose:()=>Se.hide()})}const De=fe();async function Ye(Se){const Ie=Se.raw;if(!Ie)return window.$message.error($t("workbench.novel.import.msg.selectFile")),!1;Wh(!0);try{const ze=co.confirm({theme:"danger",header:$t("settings.vendor.msg.highRiskConfirm"),body:$t("settings.vendor.msg.importAdd"),confirmBtn:{content:$t("settings.vendor.msg.iKnowRisk"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.cancel"),onConfirm:()=>{ze.destroy();const Ze=co.confirm({theme:"danger",header:$t("settings.vendor.msg.confirmAgain"),body:$t("settings.vendor.msg.addVendorConfirmBody"),confirmBtn:{content:$t("settings.vendor.msg.confirmAndAdd"),theme:"danger"},cancelBtn:$t("settings.vendor.msg.goBackCheck"),onConfirm:async()=>{const gt=new FileReader;gt.readAsText(Ie),gt.onload=()=>{const St=gt.result;mn.post("/setting/vendorConfig/addVendor",{tsCode:St}).then(Pt=>{window.$message.success($t("settings.vendor.msg.vendorAdded")),w.value=!1,O.value=!1,v()}).catch(Pt=>{window.$message.error(`${$t("settings.vendor.msg.addFailed")}${Pt.message}`)}).finally(()=>{Ze.destroy()})}},onClose:()=>Ze.hide()})},onClose:()=>ze.hide()})}catch{window.$message.error($t("workbench.novel.import.msg.parseFailed"))}finally{Wh(!1)}return!1}const ot=fe([]);function We(){var Se;(Se=De.value)==null||Se.triggerUpload()}function et(){return Promise.resolve({response:{},status:"success"})}async function st(Se){var ze;const Ie=(ze=Se.dataTransfer)==null?void 0:ze.files;Ie&&Ie.length>0&&await Ye({raw:Ie[0]})}function Me(Se){var gt;const Ie=Se.target,ze=(gt=Ie.files)==null?void 0:gt[0];if(!ze)return;const Ze=new FileReader;Ze.onload=St=>{var Pt;y.value=((Pt=St.target)==null?void 0:Pt.result)||""},Ze.readAsText(ze),Ie.value=""}return(Se,Ie)=>{const ze=dL,Ze=Si,gt=yZe,St=T3n,Pt=Jbn,dn=Kbn,on=Xy,pn=p2,ni=Wu,Zn=wwn,Pi=bwn,rr=_n("i-plus"),Hr=_n("i-lightning"),Bo=_n("i-pencil"),lo=_n("i-delete"),Fr=Sg,is=km,yi=A2,Gt=uL,gi=pA,ri=L3n,tr=OZe,ht=py,At=U4e,Mt=pZe,Kt=gc,qn=Wc,Zt=x3n,so=Ez,Un=X4e,dt=_n("i-upload-one"),Ne=f4e("loading");return xe(),Ge("div",LTo,[ge("div",xTo,[ge("div",ETo,[c(Ze,{block:"",theme:"primary",onClick:re},{icon:Oe(()=>[c(ze,{name:"add"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.addVendor")),1)]),_:1})]),uu((xe(),Ge("div",TTo,[Ae(g).length>0?(xe(),Ut(dn,{key:0,modelValue:Ae(f),"onUpdate:modelValue":Ie[1]||(Ie[1]=nt=>Fn(f)?f.value=nt:null),theme:"light"},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(g),(nt,bn)=>(xe(),Ut(Pt,{key:bn,value:nt.id,onClick:hn=>f.value=nt.id,style:{position:"relative"}},_Y({default:Oe(()=>[ge("span",null,Pe(nt.name),1),c(St,{modelValue:nt.enable,"onUpdate:modelValue":hn=>nt.enable=hn,customValue:[1,0],onClick:Ie[0]||(Ie[0]=Mr(()=>{},["stop"])),onChange:hn=>Qe(nt,hn),style:{position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)","z-index":"10"}},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:2},[j(nt.icon)?{name:"icon",fn:Oe(()=>[c(gt,{size:"24px",shape:"round",image:nt.icon},null,8,["image"])]),key:"0"}:void 0]),1032,["value","onClick"]))),128))]),_:1},8,["modelValue"])):(xe(),Ut(on,{key:1,title:Se.$t("settings.vendor.noVendor"),style:{"margin-top":"16px"}},null,8,["title"]))])),[[Ne,Ae(m)]])]),Ae(k)?(xe(),Ge("div",QTo,[ge("div",DTo,[c(yi,{data:Ae(k),labelAlign:"top"},{default:Oe(()=>[ge("div",BTo,[ge("span",RTo,"#"+Pe(Ae(k).id),1),ge("span",ITo,"@"+Pe(Ae(k).author),1)]),c(pn,null,{default:Oe(()=>[c(Ae(i3),{modelValue:Ae(k).description,"onUpdate:modelValue":Ie[2]||(Ie[2]=nt=>Ae(k).description=nt),theme:"light"},null,8,["modelValue"])]),_:1}),(xe(!0),Ge(sn,null,Bi(Ae(p),nt=>(xe(),Ut(pn,{key:nt.key,name:nt.key},_Y({label:Oe(()=>[ge("span",MTo,[Bt(Pe(nt.label)+" ",1),Ie[23]||(Ie[23]=ge("span",{class:"requiredMark"},"*",-1)),ge("span",PTo,Pe(Se.$t("settings.vendor.required")),1)])]),default:Oe(()=>[c(ni,{modelValue:Ae(k).inputValues[nt.key],"onUpdate:modelValue":bn=>Ae(k).inputValues[nt.key]=bn,type:nt.type,clearable:"",onBlur:Ce},{"prefix-icon":Oe(()=>[c(ze,{name:I(nt.type)},null,8,["name"])]),_:2},1032,["modelValue","onUpdate:modelValue","type"])]),_:2},[F(nt)?{name:"help",fn:Oe(()=>[ge("span",FTo,Pe(F(nt)),1)]),key:"0"}:void 0]),1032,["name"]))),128)),Ae(b).length>0?(xe(),Ge("div",NTo,[c(Pi,null,{default:Oe(()=>[c(Zn,{value:"optional-inputs",header:Se.$t("settings.vendor.optionalSection")},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(b),nt=>(xe(),Ut(pn,{key:nt.key,name:nt.key,label:nt.label},_Y({default:Oe(()=>[c(ni,{modelValue:Ae(k).inputValues[nt.key],"onUpdate:modelValue":bn=>Ae(k).inputValues[nt.key]=bn,type:nt.type,clearable:"",onBlur:Ce},{"prefix-icon":Oe(()=>[c(ze,{name:I(nt.type)},null,8,["name"])]),_:2},1032,["modelValue","onUpdate:modelValue","type"])]),_:2},[F(nt)?{name:"help",fn:Oe(()=>[ge("span",UTo,Pe(F(nt)),1)]),key:"0"}:void 0]),1032,["name","label"]))),128))]),_:1},8,["header"])]),_:1})])):nn("",!0),ge("div",jTo,[ge("h4",WTo,Pe(Se.$t("settings.vendor.modelSettings")),1),c(Ze,{variant:"outline",size:"small",onClick:z},{icon:Oe(()=>[c(rr,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.addManually")),1)]),_:1})]),(xe(!0),Ge(sn,null,Bi(Ae(A),(nt,bn)=>(xe(),Ut(is,{key:bn,class:"modelCard"},{default:Oe(()=>[ge("div",VTo,[ge("span",zTo,Pe(nt.name),1),ge("div",HTo,[c(Ze,{size:"small",variant:"text",loading:!!Ae(R)[nt.modelName],onClick:hn=>te(nt)},{icon:Oe(()=>[c(Hr,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.test")),1)]),_:1},8,["loading","onClick"]),c(Ze,{variant:"text",size:"small",onClick:hn=>ie(nt)},{icon:Oe(()=>[c(Bo,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.edit")),1)]),_:1},8,["onClick"]),c(Ze,{variant:"text",size:"small",theme:"danger",onClick:hn=>Z(nt.modelName)},{icon:Oe(()=>[c(lo,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.delete")),1)]),_:1},8,["onClick"])])]),ge("div",$To,[c(Fr,{theme:"primary"},{default:Oe(()=>[Bt(Pe(Se.$t(r(nt.type))),1)]),_:2},1024),(xe(!0),Ge(sn,null,Bi(nt.mode,(hn,En)=>(xe(),Ge(sn,{key:En},[Array.isArray(hn)?(xe(!0),Ge(sn,{key:1},Bi(hn,(wi,Ue)=>(xe(),Ut(Fr,{variant:"light",key:Ue},{default:Oe(()=>[Bt(Pe(Se.$t(o(wi,nt.type))),1)]),_:2},1024))),128)):(xe(),Ut(Fr,{key:0,variant:"light"},{default:Oe(()=>[Bt(Pe(Se.$t(o(hn,nt.type))),1)]),_:2},1024))],64))),128))])]),_:2},1024))),128))]),_:1},8,["data"]),ge("div",XTo,[c(Ze,{theme:"danger",loading:Ae(_),onClick:pe},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.deleteVendor")),1)]),_:1},8,["loading"]),c(Ze,{theme:"default",loading:Ae(_),onClick:he},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.editCode")),1)]),_:1},8,["loading"])])])])):nn("",!0),c(Kt,{placement:"center",width:"40vw",visible:Ae(oe),"onUpdate:visible":Ie[12]||(Ie[12]=nt=>Fn(oe)?oe.value=nt:null),header:Ae(se)===null?Se.$t("settings.vendor.addModel"):Se.$t("settings.vendor.editModel"),maskClosable:!1,onConfirm:Y},{default:Oe(()=>[ge("div",GTo,[c(yi,{data:Ae(le),labelAlign:"top"},{default:Oe(()=>[c(pn,{name:"name",label:Se.$t("settings.vendor.displayName")},{default:Oe(()=>[c(ni,{modelValue:Ae(le).name,"onUpdate:modelValue":Ie[3]||(Ie[3]=nt=>Ae(le).name=nt),placeholder:Se.$t("settings.vendor.displayNamePlaceholder"),clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(pn,{name:"modelName",label:Se.$t("settings.vendor.modelId")},{default:Oe(()=>[c(ni,{modelValue:Ae(le).modelName,"onUpdate:modelValue":Ie[4]||(Ie[4]=nt=>Ae(le).modelName=nt),placeholder:Se.$t("settings.vendor.modelIdPlaceholder"),clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(pn,{name:"type",label:Se.$t("settings.vendor.modelType")},{default:Oe(()=>[c(gi,{modelValue:Ae(le).type,"onUpdate:modelValue":Ie[5]||(Ie[5]=nt=>Ae(le).type=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(a,nt=>c(Gt,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["label"]),Ae(le).type!=="text"?(xe(),Ut(pn,{key:0,name:"associationSkills",label:Se.$t("settings.vendor.associationSkills")},{default:Oe(()=>[c(Fr,null,{default:Oe(()=>[Bt(Pe(Ae(le).associationSkills),1)]),_:1})]),_:1},8,["label"])):nn("",!0),Ae(le).type==="text"?(xe(),Ut(pn,{key:1,name:"think",label:Se.$t("settings.vendor.think")},{default:Oe(()=>[c(tr,{modelValue:Ae(le).think,"onUpdate:modelValue":Ie[6]||(Ie[6]=nt=>Ae(le).think=nt)},{default:Oe(()=>[c(ri,{value:!0},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.supported")),1)]),_:1}),c(ri,{value:!1},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.notSupported")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):nn("",!0),Ae(le).type==="image"?(xe(),Ut(pn,{key:2,name:"mode",label:Se.$t("settings.vendor.imageMode")},{default:Oe(()=>[c(At,{modelValue:Ae(le).mode,"onUpdate:modelValue":Ie[7]||(Ie[7]=nt=>Ae(le).mode=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(l,nt=>c(ht,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["label"])):nn("",!0),Ae(le).type==="video"?(xe(),Ge(sn,{key:3},[c(pn,{name:"mode",label:Se.$t("settings.vendor.videoMode")},{default:Oe(()=>[ge("div",YTo,[c(At,{modelValue:Ae(le).mode,"onUpdate:modelValue":Ie[8]||(Ie[8]=nt=>Ae(le).mode=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(d,nt=>c(ht,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"]),ge("div",ZTo,[c(At,{modelValue:Ae(le).mixedMode,"onUpdate:modelValue":Ie[9]||(Ie[9]=nt=>Ae(le).mixedMode=nt),style:{display:"flex","flex-direction":"row",gap:"8px"}},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(u,nt=>c(ht,{key:nt.value,value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])])]),_:1},8,["label"]),c(pn,{name:"audio",label:Se.$t("settings.vendor.audioOutput")},{default:Oe(()=>[c(tr,{modelValue:Ae(le).audio,"onUpdate:modelValue":Ie[10]||(Ie[10]=nt=>Ae(le).audio=nt)},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(h,nt=>c(ri,{key:String(nt.value),value:nt.value},{default:Oe(()=>[Bt(Pe(Se.$t(nt.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["label"]),c(pn,{name:"durationResolutionMap",label:Se.$t("settings.vendor.durationResolution")},{default:Oe(()=>[ge("div",qTo,[ge("div",KTo,[Ie[24]||(Ie[24]=ge("div",{class:"drmHeaderIndex"},null,-1)),ge("div",JTo,Pe(Se.$t("settings.vendor.durationSec")),1),Ie[25]||(Ie[25]=ge("div",{class:"drmHeaderArrow"},null,-1)),ge("div",eQo,Pe(Se.$t("settings.vendor.resolution")),1),Ie[26]||(Ie[26]=ge("div",{class:"drmHeaderAction"},null,-1))]),(xe(!0),Ge(sn,null,Bi(Ae(le).durationResolutionMap,(nt,bn)=>(xe(),Ge("div",{key:bn,class:"drmRow"},[ge("div",tQo,Pe(bn+1),1),c(Mt,{modelValue:nt.duration,"onUpdate:modelValue":hn=>nt.duration=hn,placeholder:Se.$t("settings.vendor.enterAndPress"),class:"drmInput"},null,8,["modelValue","onUpdate:modelValue","placeholder"]),Ie[27]||(Ie[27]=ge("div",{class:"drmArrow"},"→",-1)),c(Mt,{modelValue:nt.resolution,"onUpdate:modelValue":hn=>nt.resolution=hn,placeholder:Se.$t("settings.vendor.enterAndPress"),class:"drmInput"},null,8,["modelValue","onUpdate:modelValue","placeholder"]),c(Ze,{variant:"text",theme:"danger",size:"small",disabled:Ae(le).durationResolutionMap.length===1,onClick:hn=>Ae(le).durationResolutionMap.splice(bn,1)},{icon:Oe(()=>[c(lo,{theme:"outline"})]),_:1},8,["disabled","onClick"])]))),128)),c(Ze,{style:{"margin-top":"16px"},variant:"dashed",block:"",onClick:Ie[11]||(Ie[11]=nt=>Ae(le).durationResolutionMap.push({duration:[],resolution:[]}))},{icon:Oe(()=>[c(rr,{theme:"outline"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.addDurationResolution")),1)]),_:1})])]),_:1},8,["label"])],64)):nn("",!0)]),_:1},8,["data"])])]),_:1},8,["visible","header"]),c(Kt,{width:"50vw",placement:"center",visible:Ae(P),"onUpdate:visible":Ie[13]||(Ie[13]=nt=>Fn(P)?P.value=nt:null),header:Se.$t("settings.vendor.testResult")+" - "+Ae(B),footer:!1},{default:Oe(()=>[ge("div",nQo,[Ae(M)==="image"?(xe(),Ge("div",iQo,[ge("img",{src:Ae(Q),alt:"generated image"},null,8,rQo)])):Ae(M)==="video"?(xe(),Ge("div",oQo,[ge("video",{src:Ae(Q),controls:"",autoplay:"",loop:""},null,8,sQo)])):(xe(),Ge("div",aQo,[c(qn,{size:"large",text:Se.$t("settings.vendor.generating")},null,8,["text"])]))])]),_:1},8,["visible","header"]),c(Kt,{width:"30vw",placement:"center",top:"10vh",footer:!1,visible:Ae(w),"onUpdate:visible":Ie[18]||(Ie[18]=nt=>Fn(w)?w.value=nt:null),header:Se.$t("settings.vendor.addVendorDialog"),maskClosable:!1},{default:Oe(()=>[ge("div",lQo,[c(tr,{variant:"default-filled",modelValue:Ae(ke),"onUpdate:modelValue":Ie[14]||(Ie[14]=nt=>Fn(ke)?ke.value=nt:null)},{default:Oe(()=>[c(Zt,{value:"linkAdd"},{default:Oe(()=>[...Ie[28]||(Ie[28]=[Bt("通过链接添加",-1)])]),_:1}),c(Zt,{value:"importAdd"},{default:Oe(()=>[...Ie[29]||(Ie[29]=[Bt("通过文件导入",-1)])]),_:1}),c(Zt,{value:"codeAdd"},{default:Oe(()=>[...Ie[30]||(Ie[30]=[Bt("通过代码添加",-1)])]),_:1})]),_:1},8,["modelValue"]),Ae(ke)=="linkAdd"?(xe(),Ge("div",cQo,[c(so,{theme:"warning",style:{"margin-bottom":"20px"}},{default:Oe(()=>[...Ie[31]||(Ie[31]=[Bt(" 请勿输入不可靠的地址!点击“确定”后,Toonflow 将自动从该地址拉取代码并添加为供应商。如果地址存在安全隐患,可能导致引入存在风险的供应商代码。建议仅输入来自可信来源的地址。 ",-1)])]),_:1}),c(ni,{modelValue:Ae(me),"onUpdate:modelValue":Ie[15]||(Ie[15]=nt=>Fn(me)?me.value=nt:null),placeholder:Se.$t("settings.vendor.linkAddPlaceholder")},null,8,["modelValue","placeholder"]),ge("div",dQo,[c(Ze,{loading:Ae(_e),disabled:!Ae(me).trim(),onClick:Te},{default:Oe(()=>[Bt(Pe(Se.$t("settings.vendor.linkAdd")),1)]),_:1},8,["loading","disabled"])])])):nn("",!0),Ae(ke)=="importAdd"?(xe(),Ge("div",uQo,[ge("div",{class:"uploadArea",onClick:We,onDragover:Ie[17]||(Ie[17]=Mr(()=>{},["prevent"])),onDrop:Mr(st,["prevent"])},[c(Un,{ref_key:"uploadRef",ref:De,modelValue:Ae(ot),"onUpdate:modelValue":Ie[16]||(Ie[16]=nt=>Fn(ot)?ot.value=nt:null),theme:"file",multiple:!1,max:1,accept:".ts","before-upload":Ye,"request-method":et,style:{display:"none"}},null,8,["modelValue"]),ge("div",hQo,[c(dt,{theme:"outline",size:"32",fill:"var(--td-brand-color)"})]),ge("p",fQo,Pe(Se.$t("workbench.novel.import.importAdd")),1),ge("p",gQo,Pe(Se.$t("workbench.novel.import.limit")),1)],32)])):nn("",!0),Ae(ke)=="codeAdd"?(xe(),Ge("div",mQo)):nn("",!0)])]),_:1},8,["visible","header"]),c(Kt,{width:"70vw",placement:"center",top:"10vh",visible:Ae(O),"onUpdate:visible":Ie[22]||(Ie[22]=nt=>Fn(O)?O.value=nt:null),header:Se.$t("settings.vendor.code"),maskClosable:!1,onConfirm:J},{default:Oe(()=>[ge("div",kQo,[ge("div",vQo,[c(ze,{name:"info-circle",size:"16px"}),ge("span",null,Pe(Se.$t("settings.vendor.codeEditorInfo")),1)]),ge("div",AQo,[c(Ze,{variant:"text",size:"small",onClick:Ie[19]||(Ie[19]=nt=>y.value=Ae(b5e))},{icon:Oe(()=>[c(ze,{name:"rollback"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.reset")),1)]),_:1}),c(Ze,{variant:"outline",size:"small",onClick:Ie[20]||(Ie[20]=nt=>{var bn;return(bn=Ae(C))==null?void 0:bn.click()})},{icon:Oe(()=>[c(ze,{name:"upload"})]),default:Oe(()=>[Bt(" "+Pe(Se.$t("settings.vendor.importFile")),1)]),_:1}),ge("input",{ref_key:"fileInputRef",ref:C,type:"file",accept:".ts,.js,.txt,.json",style:{display:"none"},onChange:Me},null,544)])]),ge("div",pQo,[c(Ae(STo),{value:Ae(y),"onUpdate:value":Ie[21]||(Ie[21]=nt=>Fn(y)?y.value=nt:null),language:"typescript",theme:"vs-dark",height:600,options:s},null,8,["value"])])]),_:1},8,["visible","header"])])}}}),OQo=oo(wQo,[["__scopeId","data-v-49f0cb9a"]]),yQo={class:"memoryConfig"},CQo={class:"actionRow f frr"},_Qo=Je({__name:"memoryConfig",setup(e){const t=fe({messagesPerSummary:3,shortTermLimit:5,summaryMaxLength:500,summaryLimit:10,ragLimit:3,deepRetrieveSummaryLimit:5,modelOnnxFile:["all-MiniLM-L6-v2","onnx","model_fp16.onnx"],modelDtype:"fp16"}),n=["fp16","auto","fp32","q8","int8","uint8","q4","bnb4","q4f16"],r=fe(!1),o=fe(!1),s=fe(!1);async function a(){r.value=!0;try{const{data:h}=await mn.get("/setting/memoryConfig/getMemory");t.value={messagesPerSummary:h.messagesPerSummary??3,shortTermLimit:h.shortTermLimit??5,summaryMaxLength:h.summaryMaxLength??500,summaryLimit:h.summaryLimit??10,ragLimit:h.ragLimit??3,deepRetrieveSummaryLimit:h.deepRetrieveSummaryLimit??5,modelOnnxFile:h.modelOnnxFile??["all-MiniLM-L6-v2","onnx","model_fp16.onnx"],modelDtype:h.modelDtype??"fp16"}}catch(h){window.$message.warning(h==null?void 0:h.message)}finally{r.value=!1}}async function l(){o.value=!0;try{await mn.post("/setting/memoryConfig/sureMemory",{...t.value}),window.$message.success($t("settings.memory.msg.saved"))}catch(h){window.$message.warning(h==null?void 0:h.message)}finally{o.value=!1}}async function d(){const h=co.confirm({header:$t("settings.memory.msg.clearConfirmTitle"),body:$t("settings.memory.msg.clearConfirmBody"),confirmBtn:$t("settings.memory.msg.confirmClear"),cancelBtn:$t("settings.memory.msg.cancel"),onConfirm:async()=>{s.value=!0;try{await mn.post("/setting/memoryConfig/delAllMemory"),window.$message.success($t("settings.memory.msg.cleared")),h.hide()}catch(g){window.$message.error((g==null?void 0:g.msg)||$t("settings.memory.msg.clearFailed"))}finally{s.value=!1}}})}function u(){t.value={messagesPerSummary:3,shortTermLimit:5,summaryMaxLength:500,summaryLimit:10,ragLimit:3,deepRetrieveSummaryLimit:5,modelOnnxFile:["all-MiniLM-L6-v2","onnx","model_fp16.onnx"],modelDtype:"fp16"},l()}return An(()=>{a()}),(h,g)=>{const m=Ez,v=pZe,f=p2,k=uL,A=pA,p=km,b=Lz,w=Si,O=A2;return xe(),Ge("div",yQo,[c(m,{theme:"warning",class:"topAlert",message:h.$t("settings.memory.warning")},null,8,["message"]),c(O,{data:t.value,labelAlign:"top",labelWidth:"180px",class:"memoryForm",onSubmit:l},{default:Oe(()=>[c(p,{title:h.$t("settings.memory.vectorModelConfig"),bordered:!0,style:{"margin-top":"16px"}},{default:Oe(()=>[c(f,{label:h.$t("settings.memory.modelFilePath"),name:"modelOnnxFile"},{help:Oe(()=>[Bt("向量模型文件路径:/data/models/"+Pe(t.value.modelOnnxFile?t.value.modelOnnxFile.join("/"):""),1)]),default:Oe(()=>[c(v,{modelValue:t.value.modelOnnxFile,"onUpdate:modelValue":g[0]||(g[0]=y=>t.value.modelOnnxFile=y),clearable:""},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.quantizationType"),name:"modelDtype"},{help:Oe(()=>[...g[8]||(g[8]=[])]),default:Oe(()=>[c(A,{modelValue:t.value.modelDtype,"onUpdate:modelValue":g[1]||(g[1]=y=>t.value.modelDtype=y),placeholder:h.$t("settings.memory.quantizationPlaceholder")},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(n,y=>c(k,{key:y,value:y,label:y},null,8,["value","label"])),64))]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["title"]),c(p,{title:h.$t("settings.memory.memoryParams"),bordered:!0,style:{"margin-top":"16px"}},{default:Oe(()=>[c(f,{label:h.$t("settings.memory.messagesPerSummary"),name:"messagesPerSummary"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.messagesPerSummaryHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.messagesPerSummary,"onUpdate:modelValue":g[2]||(g[2]=y=>t.value.messagesPerSummary=y),min:1,max:200,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.shortTermLimit"),name:"shortTermLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.shortTermLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.shortTermLimit,"onUpdate:modelValue":g[3]||(g[3]=y=>t.value.shortTermLimit=y),min:1,max:100,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.summaryMaxLength"),name:"summaryMaxLength"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.summaryMaxLengthHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.summaryMaxLength,"onUpdate:modelValue":g[4]||(g[4]=y=>t.value.summaryMaxLength=y),min:0,max:1e3,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.summaryLimit"),name:"summaryLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.summaryLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.summaryLimit,"onUpdate:modelValue":g[5]||(g[5]=y=>t.value.summaryLimit=y),min:0,max:100,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.ragLimit"),name:"ragLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.ragLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.ragLimit,"onUpdate:modelValue":g[6]||(g[6]=y=>t.value.ragLimit=y),min:0,max:50,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"]),c(f,{label:h.$t("settings.memory.deepRetrieveSummaryLimit"),name:"deepRetrieveSummaryLimit"},{help:Oe(()=>[Bt(Pe(h.$t("settings.memory.deepRetrieveSummaryLimitHelp")),1)]),default:Oe(()=>[c(b,{modelValue:t.value.deepRetrieveSummaryLimit,"onUpdate:modelValue":g[7]||(g[7]=y=>t.value.deepRetrieveSummaryLimit=y),min:0,max:100,step:1,allowInputOverLimit:!1},null,8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["title"]),ge("div",CQo,[c(w,{theme:"primary",type:"submit",loading:o.value},{default:Oe(()=>[Bt(Pe(h.$t("settings.memory.saveConfig")),1)]),_:1},8,["loading"]),c(w,{theme:"danger",variant:"outline",loading:s.value,onClick:d},{default:Oe(()=>[Bt(Pe(h.$t("settings.memory.clearMemory")),1)]),_:1},8,["loading"]),c(w,{theme:"warning",variant:"outline",loading:o.value,onClick:u},{default:Oe(()=>[Bt(Pe(h.$t("settings.memory.restoreDefault")),1)]),_:1},8,["loading"])])]),_:1},8,["data"])])}}}),SQo=oo(_Qo,[["__scopeId","data-v-c59a3784"]]),LQo={class:"fileManagement"},xQo={class:"folderList"},EQo={class:"folderInfo"},TQo={class:"folderName"},QQo={class:"folderDesc"},DQo=Je({__name:"fileManagement",setup(e){const{isElectron:t}=xs(ku()),n=[{label:"settings.file.folders.data",path:"",desc:"settings.file.folders.dataDesc"},{label:"settings.file.folders.logs",path:"logs",desc:"settings.file.folders.logsDesc"},{label:"settings.file.folders.oss",path:"oss",desc:"settings.file.folders.ossDesc"},{label:"settings.file.folders.skills",path:"skills",desc:"settings.file.folders.skillsDesc"},{label:"settings.file.folders.models",path:"models",desc:"settings.file.folders.modelsDesc"},{label:"settings.file.folders.web",path:"web",desc:"settings.file.folders.webDesc"},{label:"settings.file.folders.serve",path:"serve",desc:"settings.file.folders.serveDesc"}],r=o=>{mn.post("/setting/fileManagement/openFolder",{path:o}).catch(s=>{var a;(a=window.$message)==null||a.error(s.message||$t("settings.file.openFailed"))})};return(o,s)=>{const a=Si,l=km,d=_n("i-reduce-one"),u=Xy;return xe(),Ge("div",LQo,[Ae(t)?(xe(),Ut(l,{key:0,title:o.$t("settings.file.quickOpen"),bordered:""},{default:Oe(()=>[ge("div",xQo,[(xe(),Ge(sn,null,Bi(n,h=>ge("div",{key:h.path,class:"folderItem"},[ge("div",EQo,[ge("div",TQo,Pe(o.$t(h.label)),1),ge("div",QQo,Pe(o.$t(h.desc)),1)]),c(a,{theme:"primary",variant:"outline",onClick:g=>r(h.path)},{default:Oe(()=>[Bt(Pe(o.$t("settings.file.open")),1)]),_:1},8,["onClick"])])),64))])]),_:1},8,["title"])):(xe(),Ut(u,{key:1,description:o.$t("settings.file.dockerDesc"),title:o.$t("settings.file.desktopOnly")},{image:Oe(()=>[c(d,{theme:"outline",fill:"red"})]),_:1},8,["description","title"]))])}}}),BQo=oo(DQo,[["__scopeId","data-v-b9c6a62b"]]),RQo={class:"skillManagement"},IQo={class:"sidebarPanel"},MQo={class:"treeWrap"},PQo={class:"viewPanel"},FQo={key:0,class:"viewHeader"},NQo={class:"fileName"},UQo={key:1,class:"previewWrap"},jQo=Je({__name:"skillManagement",setup(e){const t=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"],n=fe([]),r=fe(""),o=fe(""),s=fe(""),a=fe(""),l=fe(!1),d=fe(!1),u=X(()=>r.value?[r.value]:[]),h=X(()=>{let p=n.value.filter(w=>w.endsWith(".md"));if(!o.value)return p;const b=o.value.toLowerCase();return p.filter(w=>w.toLowerCase().includes(b))}),g=X(()=>{const p=new Map,b=[];for(const O of h.value){const y=O.split("/").filter(Boolean);let C=b,_="";for(let S=0;SE.value===_)||C.push({label:y[S],value:_,isFile:!0,isRoot:y.length===1});else{let E=p.get(_);E||(E={label:y[S],value:_,isFile:!1,children:[]},p.set(_,E),C.push(E)),C=E.children}}const w=O=>{O.sort((y,C)=>y.isFile!==C.isFile?y.isFile?1:-1:y.label.localeCompare(C.label)),O.forEach(y=>y.children&&w(y.children))};return w(b),b});async function m(){try{const{data:p}=await mn.post("/setting/skillManagement/getSkillList");n.value=Array.isArray(p)?p:[]}catch(p){console.error(p)}}async function v(p){try{const{data:b}=await mn.post("/setting/skillManagement/getSkillContent",{path:p});s.value=typeof b=="string"?b:(b==null?void 0:b.content)||""}catch(b){console.error(b),s.value=""}}async function f(p,b){const w=p[p.length-1],O=typeof w=="string"?w:String(w||""),y=b.node.data;!O||!(y!=null&&y.isFile)||O===r.value||(r.value=O,await v(O))}function k(){a.value=s.value,l.value=!0}async function A(){if(r.value){d.value=!0;try{await mn.post("/setting/skillManagement/saveSkillContent",{path:r.value,content:a.value}),s.value=a.value,l.value=!1}catch(p){console.error(p)}finally{d.value=!1}}}return An(()=>m()),(p,b)=>{const w=Wu,O=_n("i-folder-open"),y=_n("i-file-text"),C=A4i,_=Xy,S=Si,L=gc;return xe(),Ge("div",RQo,[ge("aside",IQo,[c(w,{modelValue:o.value,"onUpdate:modelValue":b[0]||(b[0]=E=>o.value=E),clearable:"",placeholder:p.$t("setting.skillManagement.search")},null,8,["modelValue","placeholder"]),ge("div",MQo,[g.value.length?(xe(),Ut(C,{key:0,activable:"",hover:"",line:"","expand-on-click-node":"",data:g.value,actived:u.value,onActive:f},{icon:Oe(({node:E})=>[E.data.isFile?E.data.isRoot?(xe(),Ut(y,{key:1,theme:"outline",size:"16",fill:"red"})):(xe(),Ut(y,{key:2,theme:"outline",size:"16"})):(xe(),Ut(O,{key:0,theme:"outline",size:"16"}))]),_:1},8,["data","actived"])):(xe(),Ut(_,{key:1,description:p.$t("setting.skillManagement.empty")},null,8,["description"]))])]),ge("section",PQo,[r.value?(xe(),Ge("div",FQo,[ge("span",NQo,Pe(r.value),1),c(S,{size:"small",theme:"primary",variant:"outline",onClick:k},{default:Oe(()=>[Bt(Pe(p.$t("setting.skillManagement.edit")),1)]),_:1})])):nn("",!0),r.value?(xe(),Ge("div",UQo,[c(Ae(i3),{modelValue:s.value,toolbars:[],"preview-only":"","preview-theme":"github","code-theme":"atom"},null,8,["modelValue"])])):(xe(),Ut(_,{key:2,description:p.$t("setting.skillManagement.selectOnTheLeft")},null,8,["description"]))]),c(L,{placement:"center",visible:l.value,"onUpdate:visible":b[2]||(b[2]=E=>l.value=E),header:p.$t("setting.skillManagement.edit")+` ${r.value}`,width:"80vw","confirm-btn":p.$t("common.save"),"confirm-on-enter":!1,"on-confirm":A,loading:d.value},{default:Oe(()=>[c(Ae(X4),{modelValue:a.value,"onUpdate:modelValue":b[1]||(b[1]=E=>a.value=E),toolbars:t,"preview-theme":"github","code-theme":"atom",style:{height:"72vh"}},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","loading"])])}}}),WQo=oo(jQo,[["__scopeId","data-v-0d56dd55"]]),VQo={class:"otherConfig"},zQo=Je({__name:"devConfig",setup(e){const{isElectron:t}=xs(ku()),n=fe("0");function r(){var a,l;if(t.value)try{fetch("toonflow://openDevTool")}catch{(a=window.$message)==null||a.warning("$t('settings.dev.openDevtoolFailed')")}else(l=window.$message)==null||l.warning("$t('settings.dev.notInElectron')")}async function o(){const{data:a}=await mn.get("/setting/dev/getSwitchAiDevTool");n.value=(a==null?void 0:a.switchAiDevTool)||"0"}function s(){mn.post("/setting/dev/updateSwitchAiDevTool",{switchAiDevTool:n.value})}return An(()=>{o()}),(a,l)=>{const d=Ez,u=Si,h=p2,g=T3n,m=A2;return xe(),Ge("div",VQo,[c(m,{"label-align":"top"},{default:Oe(()=>[c(d,{theme:"warning"},{default:Oe(()=>[Bt(Pe(a.$t("settings.dev.warning")),1)]),_:1}),c(h,{label:a.$t("settings.dev.devtool"),name:"showTitleBar"},{default:Oe(()=>[c(u,{theme:"primary",onClick:r},{default:Oe(()=>[Bt(Pe(a.$t("settings.dev.openDevtool")),1)]),_:1})]),_:1},8,["label"]),c(h,{label:a.$t("settings.dev.aiDevtool"),name:"showTitleBar"},{default:Oe(()=>[c(g,{modelValue:Ae(t),"onUpdate:modelValue":l[0]||(l[0]=v=>Fn(t)?t.value=v:null),onChange:o},null,8,["modelValue"])]),_:1},8,["label"]),uu(c(h,{label:a.$t("settings.dev.switchAiDevTool"),name:"showTitleBar"},{tips:Oe(()=>[ge("p",null,Pe(a.$t("settings.dev.devtoolsDoc"))+":https://ai-sdk.dev/docs/ai-sdk-core/devtools",1),ge("p",null,Pe(a.$t("settings.dev.devtoolsDesc")),1),ge("p",null,Pe(a.$t("settings.dev.devtoolsDesc2")),1)]),default:Oe(()=>[c(g,{customValue:["1","0"],modelValue:Ae(n),"onUpdate:modelValue":l[1]||(l[1]=v=>Fn(n)?n.value=v:null),onChange:s},null,8,["modelValue"])]),_:1},8,["label"]),[[h1,Ae(t)]])]),_:1})])}}}),HQo=oo(zQo,[["__scopeId","data-v-472d7447"]]),$Qo={class:"promptManage"},XQo=["onClick"],GQo={class:"data"},YQo={class:"jb"},ZQo={class:"name"},qQo={class:"type"},KQo={class:"data"},JQo={class:"show"},eDo=Je({__name:"promptManage",setup(e){An(()=>{o()});const t=["bold","italic","strikeThrough","-","unorderedList","orderedList","-","revoke","next","=","preview"],n=fe(!1),r=fe([]);function o(){mn.post("/setting/promptManage/getPrompt").then(d=>{r.value=d.data.map(u=>({id:u.id,name:u.name,type:u.type,data:u.data}))})}function s(d){a.value={...d},n.value=!0}const a=fe({id:0,name:"",type:"",data:""});async function l(){await mn.post("/setting/promptManage/updatePrompt",{id:a.value.id,data:a.value.data}),window.$message.success($t("workbench.project.dialog.prompt.saveSuccess")),o(),n.value=!1}return(d,u)=>{const h=km,g=gc;return xe(),Ge("div",$Qo,[(xe(!0),Ge(sn,null,Bi(r.value,m=>(xe(),Ge("div",{key:m.id,style:{cursor:"pointer"},onClick:v=>s(m)},[c(h,{bordered:""},{default:Oe(()=>[ge("div",GQo,[ge("div",YQo,[ge("div",ZQo,Pe(m.name),1),ge("div",qQo,Pe(m.type),1)]),ge("div",KQo,Pe(m.data),1)])]),_:2},1024)],8,XQo))),128)),ge("div",JQo,[c(g,{visible:n.value,"onUpdate:visible":u[1]||(u[1]=m=>n.value=m),header:d.$t("workbench.project.dialog.prompt.title"),width:"70%","close-on-overlay-click":!1,onConfirm:l,top:"9vh"},{default:Oe(()=>[c(Ae(X4),{modelValue:a.value.data,"onUpdate:modelValue":u[0]||(u[0]=m=>a.value.data=m),theme:"light",toolbars:t,footers:[],style:{height:"60vh"},placeholder:d.$t("workbench.project.dialog.prompt.placeholder"),onOnUploadImg:()=>{}},null,8,["modelValue","placeholder"])]),_:1},8,["visible","header"])])])}}}),tDo=oo(eDo,[["__scopeId","data-v-2bed7c85"]]),nDo={class:"settingPanel"},iDo={class:"settingRight"},rDo={class:"sectionTitle"},oDo={class:"settingContent"},sDo=Je({__name:"index",setup(e){const{showSetting:t,activeMenu:n,needUpdate:r}=xs(ku()),o=[{key:"language",label:"settings.menu.language",icon:"i-translate"},{key:"vendorConfig",label:"settings.menu.vendorConfig",icon:"i-computer"},{key:"agentConfog",label:"settings.menu.agentConfig",icon:"i-color-filter"},{key:"promptManage",label:"settings.menu.promptManage",icon:"i-tips"},{key:"skillManagement",label:"settings.menu.skillsSkillsManagement",icon:"i-ring"},{key:"memoryConfig",label:"settings.menu.memoryConfig",icon:"i-memory-card-one"},{key:"loginConfig",label:"settings.menu.loginConfig",icon:"i-lock"},{key:"dbConfig",label:"settings.menu.dbConfig",icon:"i-data"},{key:"fileManagement",label:"settings.menu.fileManagement",icon:"i-hard-disk"},{key:"otherConfig",label:"settings.menu.otherConfig",icon:"i-application-menu"},{key:"requestConfig",label:"settings.menu.requestConfig",icon:"i-api"},{key:"devConfig",label:"settings.menu.devConfig",icon:"i-flask"},{key:"about",label:"settings.menu.about",icon:"i-info"},{key:"logoutConfig",label:"settings.menu.logoutConfig",icon:"i-logout"}],s=X(()=>o.find(a=>a.key===n.value));return(a,l)=>{const d=CZe,u=Jbn,h=Kbn,g=gc;return xe(),Ut(g,{header:a.$t("settings.title"),footer:!1,placement:"center",width:"1200px",visible:Ae(t),"onUpdate:visible":l[1]||(l[1]=m=>Fn(t)?t.value=m:null)},{default:Oe(()=>[ge("div",nDo,[c(h,{class:"settingMenu",value:Ae(n),"onUpdate:value":l[0]||(l[0]=m=>Fn(n)?n.value=m:null),style:{height:"70vh"}},{default:Oe(()=>[(xe(),Ge(sn,null,Bi(o,m=>c(u,{key:m.key,value:m.key},{icon:Oe(()=>[c(d,{count:Ae(r)&&m.key==="about"?1:0,dot:""},{default:Oe(()=>[(xe(),Ut(Bd(m.icon),{class:"icon"}))]),_:2},1032,["count"])]),default:Oe(()=>[Bt(" "+Pe(a.$t(m.label)),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"]),ge("div",iDo,[ge("div",rDo,Pe(Ae(s)?a.$t(Ae(s).label):""),1),ge("div",oDo,[Ae(n)==="language"?(xe(),Ut(Tqr,{key:0})):nn("",!0),Ae(n)==="vendorConfig"?(xe(),Ut(OQo,{key:1})):nn("",!0),Ae(n)==="requestConfig"?(xe(),Ut(Dqr,{key:2})):nn("",!0),Ae(n)==="loginConfig"?(xe(),Ut(Bqr,{key:3})):nn("",!0),Ae(n)==="agentConfog"?(xe(),Ut(cKr,{key:4})):nn("",!0),Ae(n)==="promptManage"?(xe(),Ut(tDo,{key:5})):nn("",!0),Ae(n)==="otherConfig"?(xe(),Ut(AKr,{key:6})):nn("",!0),Ae(n)==="dbConfig"?(xe(),Ut(mKr,{key:7})):nn("",!0),Ae(n)==="about"?(xe(),Ut(fJr,{key:8})):nn("",!0),Ae(n)==="logoutConfig"?(xe(),Ut(kJr,{key:9})):nn("",!0),Ae(n)==="memoryConfig"?(xe(),Ut(SQo,{key:10})):nn("",!0),Ae(n)==="fileManagement"?(xe(),Ut(BQo,{key:11})):nn("",!0),Ae(n)==="skillManagement"?(xe(),Ut(WQo,{key:12})):nn("",!0),Ae(n)==="devConfig"?(xe(),Ut(HQo,{key:13})):nn("",!0)])])])]),_:1},8,["header","visible"])}}}),aDo=oo(sDo,[["__scopeId","data-v-ba4aaf24"]]),lDo={class:"migrateShow"},cDo={class:"taskList"},dDo={class:"item"},uDo=Je({__name:"migrateShow",setup(e){const t=fe(!1);function n(){mn.post("/migrate/migrateData").then(()=>{window.$message.success($t("components.migrateShow.msg.migrateSuccess"))}).catch(()=>{window.$message.error($t("components.migrateShow.msg.migrateFailed"))}).finally(()=>{})}return(r,o)=>{const s=Si,a=Ev,l=gc;return xe(),Ge("div",lDo,[c(l,{visible:Ae(t),"onUpdate:visible":o[1]||(o[1]=d=>Fn(t)?t.value=d:null),header:r.$t("components.migrateShow.title"),width:"500px"},{footer:Oe(()=>[c(a,null,{default:Oe(()=>[c(s,{theme:"default",onClick:o[0]||(o[0]=()=>t.value=!1)},{default:Oe(()=>[Bt(Pe(r.$t("components.migrateShow.hide")),1)]),_:1}),c(s,{theme:"primary",onClick:n},{default:Oe(()=>[Bt(Pe(r.$t("components.migrateShow.confirm")),1)]),_:1})]),_:1})]),default:Oe(()=>[ge("div",cDo,[ge("div",dDo,[ge("span",null,Pe(r.$t("components.migrateShow.desc")),1)])])]),_:1},8,["visible","header"])])}}});function wit(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hDo(e,t){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:0,r=Math.random()*(t-e)+e;return Math.floor(r*Math.pow(10,n))/Math.pow(10,n)}function WSt(e){return e[T4(0,e.length)]}var kDo=.00125,vDo=5e-4,ADo=9e-4,pDo=1e-5,bDo=6,wDo=80,ODo=.9,yDo=1.7,CDo=.2,_Do=.6,SDo=.03,LDo=.07,gPn=15,mPn=82,VSt=150,xDo=100,EDo=250,TDo=40,QDo=["#fcf403","#62fc03","#f4fc03","#03e7fc","#03fca5","#a503fc","#fc03ad","#fc03c2"];function zSt(e){var t=1920;return Math.log(e)/Math.log(t)}var w5e=function(){function e(t){wit(this,e);var n=t.initialPosition,r=t.confettiRadius,o=t.confettiColors,s=t.emojis,a=t.emojiSize,l=t.canvasWidth,d=t.initialFlightAngle,u=t.rotationAngle,h=t.shouldHideConfettiInShiftedPosition,g=h===void 0?!1:h,m=T4(ODo,yDo,3),v=m*zSt(l);this.confettiSpeed={x:v,y:v},this.finalConfettiSpeedX=T4(CDo,_Do,3),this.rotationSpeed=s.length?.01:T4(SDo,LDo,3)*zSt(l),this.dragForceCoefficient=T4(vDo,ADo,6),this.radius={x:r,y:r},this.initialRadius=r,this.rotationAngle=u,this.emojiSize=a,this.emojiRotationAngle=T4(0,2*Math.PI),this.radiusYUpdateDirection="down",this.cos=Math.cos(d),this.sin=Math.sin(d);var f=T4(-150,0);this.positionOffset={x:f*this.sin,y:f*this.cos},this.distanceTravelled={x:0,y:0};var k={x:n.x+this.positionOffset.x,y:n.y-this.positionOffset.y};this.currentPosition=Object.assign({},k),this.initialPosition=Object.assign({},k),this.color=s.length?null:WSt(o),this.emoji=s.length?WSt(s):null,this.createdAt=new Date().getTime(),this.isVisible=!g}return Oit(e,[{key:"draw",value:function(n){var r=this.currentPosition,o=this.radius,s=this.color,a=this.emoji,l=this.rotationAngle,d=this.emojiRotationAngle,u=this.emojiSize,h=this.isVisible;if(h){var g=window.devicePixelRatio;s?(n.fillStyle=s,n.beginPath(),n.ellipse(r.x*g,r.y*g,o.x*g,o.y*g,l,0,2*Math.PI),n.fill()):a&&(n.font="".concat(u,"px serif"),n.save(),n.translate(g*r.x,g*r.y),n.rotate(d),n.textAlign="center",n.fillText(a,0,0),n.restore())}}},{key:"updatePosition",value:function(n,r){var o=this.confettiSpeed,s=this.dragForceCoefficient,a=this.finalConfettiSpeedX,l=this.radiusYUpdateDirection,d=this.rotationSpeed,u=this.createdAt;o.x>a&&(this.confettiSpeed.x-=s*n);var h=this.currentPosition.y,g=r-u;this.currentPosition.y=this.initialPosition.y-o.y*this.cos*g+kDo*Math.pow(g,2)/2;var m={x:o.x*this.sin*n,y:this.currentPosition.y-h};if(this.currentPosition.x+=m.x,this.distanceTravelled.x+=Math.abs(m.x),this.distanceTravelled.y+=Math.abs(m.y),this.distanceTravelled.x>=Math.abs(this.positionOffset.x)&&this.distanceTravelled.y>=Math.abs(this.positionOffset.y)&&(this.isVisible=!0),this.rotationSpeed-=this.emoji?1e-4:pDo*n,this.rotationSpeed<0&&(this.rotationSpeed=0),this.emoji){this.emojiRotationAngle+=this.rotationSpeed*n%(2*Math.PI);return}l==="down"?(this.radius.y-=n*d,this.radius.y<=0&&(this.radius.y=0,this.radiusYUpdateDirection="up")):(this.radius.y+=n*d,this.radius.y>=this.initialRadius&&(this.radius.y=this.initialRadius,this.radiusYUpdateDirection="down"))}},{key:"getIsVisibleOnCanvas",value:function(n){return this.currentPosition.y0&&arguments[0]!==void 0?arguments[0]:{};wit(this,e),this.activeConfettiBatches=[],this.canvas=t.canvas||DDo(),this.canvasContext=this.canvas.getContext("2d"),this.requestAnimationFrameRequested=!1,this.lastUpdated=new Date().getTime(),this.iterationIndex=0,this.loop=this.loop.bind(this),requestAnimationFrame(this.loop)}return Oit(e,[{key:"loop",value:function(){this.requestAnimationFrameRequested=!1,mDo(this.canvas);var n=new Date().getTime(),r=n-this.lastUpdated,o=this.canvas.offsetHeight,s=this.iterationIndex%10===0;this.activeConfettiBatches=this.activeConfettiBatches.filter(function(a){return a.processShapes({timeDelta:r,currentTime:n},o,s),s?!a.complete():!0}),this.iterationIndex++,this.queueAnimationFrameIfNeeded(n)}},{key:"queueAnimationFrameIfNeeded",value:function(n){this.requestAnimationFrameRequested||this.activeConfettiBatches.length<1||(this.requestAnimationFrameRequested=!0,this.lastUpdated=n||new Date().getTime(),requestAnimationFrame(this.loop))}},{key:"addConfettiAtPosition",value:function(){for(var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=HSt(n),o=r.confettiRadius,s=r.confettiNumber,a=r.confettiColors,l=r.emojis,d=r.emojiSize,u=r.confettiDispatchPosition,h=this.canvas.getBoundingClientRect(),g=h.width,m=new XSt(this.canvasContext),v=0;v0&&arguments[0]!==void 0?arguments[0]:{},r=HSt(n),o=r.confettiRadius,s=r.confettiNumber,a=r.confettiColors,l=r.emojis,d=r.emojiSize,u=this.canvas.getBoundingClientRect(),h=u.width,g=u.height,m=g*5/7,v={x:0,y:m},f={x:h,y:m},k=new XSt(this.canvasContext),A=0;A({content:k.label,value:k.value})),a=k=>{o.value=k.value,yW.value=k.value},l=q4e("helloGuideDone",!1),d=fe(!l.value),u=fe(0);function h(){n.value="vendorConfig",t.value=!0}function g(){n.value="agentConfog",t.value=!0}function m(){l.value=!0,d.value=!1}function v(){l.value=!0,d.value=!1,new PDo().addConfetti()}async function f(){r.value?await fetch("toonflow://openurlwithbrowser?url=https://github.com/HBAI-Ltd/Toonflow-app"):window.open("https://github.com/HBAI-Ltd/Toonflow-app")}return(k,A)=>{const p=Si,b=_n("i-translate"),w=Rne,O=Yvi,y=Gvi,C=dL,_=Ez,S=h3i,L=gc;return xe(),Ut(L,{visible:Ae(d),"onUpdate:visible":A[3]||(A[3]=E=>Fn(d)?d.value=E:null),footer:!1,header:!1,width:"680px","close-on-overlay-click":!1,placement:"center"},{default:Oe(()=>[ge("div",FDo,[Ae(u)===0?(xe(),Ge("div",NDo,[A[4]||(A[4]=ge("img",{src:lbe,alt:"ToonFlow Logo",class:"welcomeLogo"},null,-1)),ge("h1",UDo,Pe(k.$t("hello.welcomeTitle")),1),ge("p",jDo,Pe(k.$t("hello.welcomeDesc")),1),c(p,{theme:"primary",size:"large",onClick:A[0]||(A[0]=E=>u.value=1)},{default:Oe(()=>[Bt(Pe(k.$t("hello.startConfig")),1)]),_:1}),c(p,{variant:"text",size:"small",style:{"margin-top":"12px"},onClick:m},{default:Oe(()=>[Bt(Pe(k.$t("hello.skip")),1)]),_:1}),ge("div",WDo,[c(w,{options:Ae(s),trigger:"click",onClick:a,maxColumnWidth:150},{default:Oe(()=>[c(p,{shape:"circle",theme:"default",size:"large"},{icon:Oe(()=>[c(b,{theme:"outline",size:"20"})]),_:1})]),_:1},8,["options"])])])):(xe(),Ge(sn,{key:1},[c(y,{current:Ae(u)-1,class:"guideSteps"},{default:Oe(()=>[c(O,{title:k.$t("hello.configModel")},null,8,["title"]),c(O,{title:k.$t("hello.configData")},null,8,["title"]),c(O,{title:k.$t("hello.startUse")},null,8,["title"])]),_:1},8,["current"]),ge("div",VDo,[Ae(u)===1?(xe(),Ge("div",zDo,[ge("div",HDo,[c(C,{name:"server",size:"48px"})]),ge("h2",$Do,Pe(k.$t("hello.configModelTitle")),1),ge("p",XDo,Pe(k.$t("hello.configModelDesc")),1),ge("div",GDo,[c(_,{theme:"info",message:k.$t("hello.configModelTip")},null,8,["message"])]),c(p,{theme:"primary",size:"large",onClick:h},{icon:Oe(()=>[c(C,{name:"setting"})]),default:Oe(()=>[Bt(" "+Pe(k.$t("hello.configModelBtn")),1)]),_:1})])):nn("",!0),Ae(u)===2?(xe(),Ge("div",YDo,[ge("div",ZDo,[c(C,{name:"relativity",size:"48px"})]),ge("h2",qDo,Pe(k.$t("hello.configAgentTitle")),1),ge("p",KDo,Pe(k.$t("hello.configAgentDesc")),1),ge("div",JDo,[c(_,{theme:"info",message:k.$t("hello.configAgentTip")},null,8,["message"])]),c(p,{theme:"primary",size:"large",onClick:g},{icon:Oe(()=>[c(C,{name:"setting"})]),default:Oe(()=>[Bt(" "+Pe(k.$t("hello.configAgentBtn")),1)]),_:1})])):nn("",!0),Ae(u)===3?(xe(),Ge("div",eBo,[ge("div",tBo,[c(C,{name:"check-circle",size:"48px",color:"var(--td-success-color)"})]),ge("h2",nBo,Pe(k.$t("hello.finishTitle")),1),ge("p",iBo,Pe(k.$t("hello.finishDesc")),1),ge("div",rBo,[ge("p",oBo,Pe(k.$t("hello.qrcodeLabel")),1),c(S,{value:"https://work.weixin.qq.com/u/vc36adcc89845edcbe?v=5.0.3.63936&bb=85b8d228e8",level:"Q",type:"svg"})]),ge("div",sBo,[ge("p",aBo,Pe(k.$t("hello.githubLabel")),1),c(p,{theme:"danger",size:"large",onClick:f},{icon:Oe(()=>[c(C,{name:"logo-github"})]),default:Oe(()=>[A[5]||(A[5]=Bt(" Star on GitHub ",-1))]),_:1})])])):nn("",!0)]),ge("div",lBo,[Ae(u)>1?(xe(),Ut(p,{key:0,variant:"outline",onClick:A[1]||(A[1]=E=>u.value--)},{default:Oe(()=>[Bt(Pe(k.$t("hello.prevStep")),1)]),_:1})):nn("",!0),ge("div",cBo,[Ae(u)<3?(xe(),Ut(p,{key:0,variant:"text",onClick:m},{default:Oe(()=>[Bt(Pe(k.$t("hello.skip")),1)]),_:1})):nn("",!0),Ae(u)<3?(xe(),Ut(p,{key:1,theme:"primary",onClick:A[2]||(A[2]=E=>u.value++)},{default:Oe(()=>[Bt(Pe(k.$t("hello.nextStep")),1)]),_:1})):nn("",!0),Ae(u)===3?(xe(),Ut(p,{key:2,theme:"primary",onClick:v},{default:Oe(()=>[Bt(Pe(k.$t("hello.finish")),1)]),_:1})):nn("",!0)])])],64))])]),_:1},8,["visible"])}}}),uBo=oo(dBo,[["__scopeId","data-v-da3a500c"]]),ph=Wy("project",()=>({allProject:fe([]),project:fe(null)}),{persist:!0}),hBo={class:"menu fc jb"},fBo={class:"itemBox fc ac"},gBo=["onClick"],mBo={key:1,class:"divider"},kBo={class:"footItem fc ac"},vBo={class:"view"},ABo={key:0,class:"topMenu f ac jb"},pBo={class:"title"},bBo={class:"rightBtnList f ac"},wBo=["onClick"],OBo={key:1,class:"divider"},yBo={class:"viewBox"},CBo=Je({__name:"index",setup(e){const{project:t}=xs(ph()),{showSetting:n,isElectron:r,needUpdate:o}=xs(ku()),s=fe([{type:"btn",path:"/project",labelKey:"workbench.menu.myProject",icon:"i-folder-close"},{type:"btn",path:"/task",labelKey:"workbench.menu.taskCenter",icon:"i-view-list"}]),a=fe([{type:"btn",path:"/novel",labelKey:"workbench.menu.novel",icon:"i-notebook",nodelOnly:!0},{type:"btn",path:"/scriptAgent",labelKey:"workbench.menu.scriptAgent",icon:"i-color-filter",nodelOnly:!0},{type:"btn",path:"/script",labelKey:"workbench.menu.scriptManage",icon:"i-document-folder"},{type:"btn",path:"/cornerScape",labelKey:"workbench.menu.cornerScape",icon:"i-peoples-two"},{type:"btn",path:"/production",labelKey:"workbench.menu.production",icon:"i-carousel-video"},{type:"divider"},{type:"btn",path:"/assets",labelKey:"workbench.menu.assetCenter",icon:"i-receive"}]),l=_pe(),d=mNi(),u=fe(d.path);pt(()=>d.path,p=>{u.value=p});function h(p){p.needProject&&!t.value||(l.push(p.path),u.value=p.path)}async function g(){r.value?await fetch("toonflow://openurlwithbrowser?url=https://github.com/HBAI-Ltd/Toonflow-app"):window.open("https://github.com/HBAI-Ltd/Toonflow-app")}async function m(){r.value?await fetch("toonflow://openurlwithbrowser?url=https://docs.qq.com/smartsheet/form/EmvmQBrmlPmr%2Fss_vsqk2v%2FvhiGzE?tab=ss_vsqk2v"):window.open("https://docs.qq.com/smartsheet/form/EmvmQBrmlPmr%2Fss_vsqk2v%2FvhiGzE?tab=ss_vsqk2v")}async function v(){const{data:p}=await mn.post("/setting/about/checkUpdate",{source:"toonflow"});if(p.needUpdate){o.value=!0;const{activeMenu:b}=xs(ku()),w=NB.success({title:$t("version.newVersion"),content:()=>xn("div",{style:"text-align: right; padding-top: 4px;"},xn("span",{style:"color: #ed7b2f; font-size: 12px; cursor: pointer;",onClick:()=>{b.value="about",n.value=!0,NB.close(w)}},$t("skillScan.openSettings"))),closeBtn:!0,placement:"bottom-right"})}else o.value=!1}let f=null;function k(){v(),f=setInterval(()=>{v()},2*60*1e3)}function A(){f&&(clearInterval(f),f=null)}return pt(o,p=>{p&&A()}),An(()=>{k()}),Qa(()=>{A()}),(p,b)=>{var L,E;const w=el,O=_n("i-bill"),y=_n("i-setting-one"),C=CZe,_=_n("i-github-one"),S=_n("router-view");return xe(),Ge(sn,null,[ge("div",{class:"main",style:no({height:Ae(r)?"calc(100vh - 32px)":"100vh"})},[ge("div",hBo,[b[1]||(b[1]=ge("div",{class:"logoBox c"},[ge("img",{class:"logo",src:lbe})],-1)),ge("div",fBo,[(xe(!0),Ge(sn,null,Bi(Ae(s),(T,D)=>(xe(),Ut(w,{content:T.labelKey?p.$t(T.labelKey):"",placement:"right",theme:"light",destroyOnClose:"",showArrow:!1,key:D},{default:Oe(()=>[T.type==="btn"?(xe(),Ge("div",{key:0,class:Eo(["item fc c",{active:Ae(u)==T.path}]),onClick:P=>h(T)},[(xe(),Ut(Bd(T.icon),{class:"icon"}))],10,gBo)):nn("",!0),T.type==="divider"?(xe(),Ge("div",mBo)):nn("",!0)]),_:2},1032,["content"]))),128))]),ge("div",kBo,[c(w,{content:p.$t("workbench.menu.feedbackQuestions"),placement:"right",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:"item c",onClick:m},[c(O,{class:"icon"})])]),_:1},8,["content"]),c(w,{content:p.$t("workbench.menu.settings"),placement:"right",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:"item c",onClick:b[0]||(b[0]=T=>n.value=!0)},[c(C,{count:Ae(o)?1:0,dot:""},{default:Oe(()=>[c(y,{class:"icon"})]),_:1},8,["count"])])]),_:1},8,["content"]),c(w,{content:p.$t("workbench.menu.jumpGithub"),placement:"right",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:"item c",onClick:g},[c(_,{size:"24"})])]),_:1},8,["content"])])]),ge("div",vBo,[(L=Ae(t))!=null&&L.id?(xe(),Ge("div",ABo,[ge("div",pBo,[ge("h2",null,Pe(((E=Ae(t))==null?void 0:E.name)||p.$t("workbench.selectProject")),1)]),ge("div",bBo,[(xe(!0),Ge(sn,null,Bi(Ae(a),(T,D)=>(xe(),Ut(w,{content:T.labelKey?p.$t(T.labelKey):"",placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1,key:D},{default:Oe(()=>[T.type==="btn"&&(Ae(t).projectType==="novel"||!T.nodelOnly)?(xe(),Ge("div",{key:0,class:Eo(["item fc c",{active:Ae(u)==T.path}]),onClick:P=>h(T)},[(xe(),Ut(Bd(T.icon),{class:"icon"}))],10,wBo)):nn("",!0),T.type==="divider"?(xe(),Ge("div",OBo)):nn("",!0)]),_:2},1032,["content"]))),128))])])):nn("",!0),ge("div",yBo,[c(S,null,{default:Oe(({Component:T})=>[(xe(),Ut(Bd(T),{key:p.$route.fullPath}))]),_:1})])])],4),c(uBo),c(aDo),c(uDo)],64)}}}),_Bo=oo(CBo,[["__scopeId","data-v-99f1fe92"]]),SBo=Object.freeze(Object.defineProperty({__proto__:null,default:_Bo},Symbol.toStringTag,{value:"Module"})),LBo={class:"addProject"},xBo={class:"formColumns"},EBo={class:"formLeft"},TBo={class:"ac",style:{gap:"5px",width:"100%"}},QBo={class:"ac",style:{gap:"5px",width:"100%"}},DBo={class:"formRight"},BBo={class:"artStylePicker"},RBo={class:"artStyleHeader"},IBo={class:"artStyleContent"},MBo={class:"gridContainer"},PBo=["onClick"],FBo={class:"imageWrapper"},NBo=["src","alt"],UBo={class:"text"},jBo=["onClick"],WBo=["onClick"],VBo={class:"directorManual"},zBo={class:"directorManualHeader"},HBo={class:"artStyleContent"},$Bo={class:"gridContainer"},XBo=["onClick"],GBo={class:"imageWrapper"},YBo=["src","alt"],ZBo={class:"text"},qBo=["onClick"],KBo=["onClick"],JBo={class:"nameAndCoverRow"},eRo={class:"nameField"},tRo={class:"fieldLabel"},nRo={class:"mdFileLocation"},iRo={class:"fieldLabel"},rRo={class:"coverField"},oRo={class:"fieldLabel"},sRo={class:"coverUploadArea multiCoverUploadArea"},aRo=["src"],lRo=["onClick"],cRo={class:"promptEditorWrapper"},dRo={class:"promptEditorHeader"},uRo={class:"aiExtractInline"},hRo={class:"nameAndCoverRow"},fRo={class:"nameField"},gRo={class:"fieldLabel"},mRo={class:"mdFileLocation"},kRo={class:"fieldLabel"},vRo={class:"coverField"},ARo={class:"fieldLabel"},pRo={class:"coverUploadArea multiCoverUploadArea"},bRo=["src"],wRo=["onClick"],ORo={class:"promptEditorWrapper"},yRo={class:"promptEditorHeader"},CRo={class:"aiExtractInline"},_Ro=Je({__name:"projectDialog",props:Fc({projectData:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:Fc(["add","edit"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=t,s=()=>[{label:"README",value:"README",data:""},{label:"前缀",value:"prefix",data:""},{label:"角色",value:"art_character",data:""},{label:"角色衍生",value:"art_character_derivative",data:""},{label:"道具",value:"art_prop",data:""},{label:"道具衍生",value:"art_prop_derivative",data:""},{label:"场景",value:"art_scene",data:""},{label:"场景衍生",value:"art_scene_derivative",data:""},{label:"分镜",value:"director_storyboard",data:""},{label:"分镜视频",value:"art_storyboard_video",data:""},{label:"技法-导演规划",value:"director_planning_style",data:""},{label:"技法-分镜表设计",value:"director_storyboard_table_style",data:""}],a=X(()=>!!r.projectData),l=[{value:"16:9",label:"16:9"},{value:"9:16",label:"9:16"}],d=()=>({id:0,projectType:"novel",name:"",intro:"",type:"",artStyle:"",era:"",videoRatio:"16:9",createTime:0,userId:0,imageModel:"",videoModel:"",imageQuality:"",mode:"",directorManual:""}),u=fe(d());function h(){u.value=d()}function g(){n.value=!1,h()}function m(){if(!u.value.name)return window.$message.warning($t("workbench.project.msg.enterProjectName"));if(!u.value.type)return window.$message.warning($t("workbench.project.msg.enterProjectType"));if(!u.value.imageModel)return window.$message.warning($t("workbench.project.msg.enterImageModel"));if(!u.value.videoModel)return window.$message.warning($t("workbench.project.msg.enterVideoModel"));if(!u.value.artStyle)return window.$message.warning($t("workbench.project.msg.enterArtStyle"));if(!u.value.directorManual)return window.$message.warning($t("workbench.project.msg.directorManual"));if(!u.value.videoRatio)return window.$message.warning($t("workbench.project.msg.enterVideoRatio"));if(!u.value.intro)return window.$message.warning($t("workbench.project.msg.enterProjectIntro"));if(!u.value.imageQuality)return window.$message.warning($t("workbench.project.msg.enterProjectQuality"));if(!u.value.mode)return window.$message.warning($t("workbench.project.msg.selectMode"));a.value?o("edit",{id:u.value.id,name:u.value.name,intro:u.value.intro,type:u.value.type,artStyle:u.value.artStyle,videoRatio:u.value.videoRatio,imageModel:u.value.imageModel,videoModel:u.value.videoModel,projectType:u.value.projectType||"novel",directorManual:u.value.directorManual,imageQuality:u.value.imageQuality,mode:u.value.mode}):o("add",{projectType:u.value.projectType||"novel",name:u.value.name,intro:u.value.intro,type:u.value.type,artStyle:u.value.artStyle,videoRatio:u.value.videoRatio||"16:9",imageModel:u.value.imageModel,videoModel:u.value.videoModel,imageQuality:u.value.imageQuality,directorManual:u.value.directorManual,mode:u.value.mode}),h(),n.value=!1}const v=["bold","italic","strikeThrough","-","unorderedList","orderedList","-","revoke","next","=","preview"];pt(n,async Y=>{if(Y){if(r.projectData){if(u.value={...d(),id:r.projectData.id,name:r.projectData.name||"",intro:r.projectData.intro||"",type:r.projectData.type||"",artStyle:r.projectData.artStyle||"",videoRatio:r.projectData.videoRatio||"16:9",imageModel:r.projectData.imageModel||"",videoModel:r.projectData.videoModel||"",imageQuality:r.projectData.imageQuality||"",projectType:r.projectData.projectType||"novel",mode:r.projectData.mode||"text",directorManual:r.projectData.directorManual||""},r.projectData.videoModel)try{const{data:ie}=await mn.post("/modelSelect/getModelDetail",{modelId:r.projectData.videoModel});ie!=null&&ie.mode&&(M.value=ie.mode.map(te=>({label:R(te),value:I(te)})))}catch{}}else h();C(),oe()}});const f=fe([]),k=fe(!1),A=fe(!1),p=fe(null),b=fe({name:"",images:[],stylePath:""}),w=fe(),O=fe("README"),y=fe(s());function C(){k.value=!0,mn.post("/project/getVisualManual").then(({data:Y})=>{f.value=Y.map(ie=>({id:ie.id,name:ie.name,stylePath:ie.stylePath,images:ie.images??(Array.isArray(ie.image)?ie.image:ie.image?[ie.image]:[]),data:ie.data}))}).finally(()=>{k.value=!1})}function _(Y){if(p.value=Y??null,Y){b.value.name=Y.name,b.value.stylePath=Y.stylePath,b.value.images=Y.images?[...Y.images]:[];const ie=Array.isArray(Y.data)?Y.data:[];y.value=s().map(te=>{const Z=ie.find(he=>he.value===te.value);return Z?{...te,data:Z.data}:{...te}})}else b.value={name:"",images:[],stylePath:""},y.value=s();O.value="README",A.value=!0}function S(){A.value=!1,p.value=null,b.value={name:"",images:[],stylePath:""},y.value=s(),O.value="README"}function L(){var Y;(Y=w.value)==null||Y.click()}function E(Y){const ie=Y.target.files;!ie||ie.length===0||(Array.from(ie).forEach(te=>{const Z=new FileReader;Z.onload=()=>{b.value.images.push(Z.result)},Z.readAsDataURL(te)}),Y.target.value="")}function T(Y){b.value.images.splice(Y,1)}const D=fe(!1);async function P(){if(!b.value.name.trim()){window.$message.warning($t("workbench.project.msg.enterVisualManualName"));return}if(!b.value.images.length){window.$message.warning($t("workbench.project.msg.enterVisualManualImage"));return}const Y=y.value.find(ie=>!ie.data.trim());if(Y)return window.$message.warning(`「${Y.label}」${$t("workbench.project.msg.enterVisualManualTabData")}`);try{D.value=!0,p.value?await mn.post("/project/editVisualManual",{name:b.value.name,images:b.value.images,data:y.value,stylePath:b.value.stylePath}):await mn.post("/project/addVisualManual",{name:b.value.name,images:b.value.images,data:y.value,stylePath:b.value.stylePath}),D.value=!1,p.value?window.$message.success($t("workbench.project.msg.visualManualUpdated")):window.$message.success($t("workbench.project.msg.visualManualAdded")),S(),C()}catch(ie){D.value=!1,window.$message.error(ie.message??$t("workbench.project.msg.operationFailed"))}}function Q(Y){const ie=co.confirm({header:$t("workbench.project.msg.deleteVisualManualHeader"),body:$t("workbench.project.msg.deleteVisualManualBody",{name:Y.stylePath}),confirmBtn:$t("workbench.project.msg.deleteVisualManualConfirm"),cancelBtn:$t("workbench.project.msg.deleteVisualManualCancel"),onConfirm:()=>{mn.post("/project/deleteVisualManual",{name:Y.stylePath}).then(()=>{C(),S(),window.$message.success($t("workbench.project.msg.visualManualDeleted"))}).catch(te=>{window.$message.error(te.message??$t("workbench.project.msg.operationFailed"))}).finally(()=>{C(),ie.destroy()})}})}const M=fe([]),B={singleImage:$t("workbench.production.generate.modeSingleImage"),multiImage:$t("workbench.production.generate.modeMultiImage"),gridImage:$t("workbench.production.generate.modeGridImage"),startEndRequired:$t("workbench.production.generate.modeStartEnd"),endFrameOptional:$t("workbench.production.generate.modeStartEnd"),startFrameOptional:$t("workbench.production.generate.modeStartEnd"),text:$t("workbench.production.generate.modeText"),videoReference:$t("workbench.production.generate.modeVideoRef"),imageReference:$t("workbench.production.generate.modeImageRef"),audioReference:$t("workbench.production.generate.modeAudioRef"),textReference:$t("workbench.production.generate.modeTextRef")};function R(Y){return Y?Array.isArray(Y)?Y.map(ie=>B[ie]??ie).join("、"):B[Y]??Y:""}function I(Y){return Array.isArray(Y)?JSON.stringify(Y):Y}function F(Y,ie){M.value=ie.mode.map(te=>({label:R(te),value:I(te)}))}const j=()=>[{label:"README",value:"README",data:""},{label:"导演规划",value:"director_planning_narrative",data:""},{label:"分镜表",value:"director_storyboard_table_narrative",data:""}],W=fe({name:"",images:[],directorManual:""}),H=fe(!1),$=fe(null),G=fe(!1),q=fe([]),re=fe("README"),J=fe(j());function oe(){H.value=!0,mn.post("/project/queryDirectorManual").then(({data:Y})=>{q.value=Y.map(ie=>({id:ie.id,name:ie.name,directorManual:ie.directorManual,images:ie.images??(Array.isArray(ie.image)?ie.image:ie.image?[ie.image]:[]),data:ie.data}))}).finally(()=>{H.value=!1})}function se(Y){if($.value=Y??null,Y){W.value.name=Y.name,W.value.directorManual=Y.directorManual,W.value.images=Y.images?[...Y.images]:[];const ie=Array.isArray(Y.data)?Y.data:[];J.value=j().map(te=>{const Z=ie.find(he=>he.value===te.value);return Z?{...te,data:Z.data}:{...te}})}else W.value={name:"",images:[],directorManual:""},J.value=j();re.value="README",G.value=!0}function le(){G.value=!1,$.value=null,W.value={name:"",images:[],directorManual:""},J.value=j(),re.value="README"}function ue(Y){const ie=co.confirm({header:$t("workbench.project.msg.deleteDirectorManualHeader"),body:$t("workbench.project.msg.deleteDirectorManualBody",{name:Y.directorManual}),confirmBtn:$t("workbench.project.msg.deleteVisualManualConfirm"),cancelBtn:$t("workbench.project.msg.deleteVisualManualCancel"),onConfirm:()=>{mn.post("/project/deleteDirectorManual",{name:Y.directorManual}).then(()=>{oe(),le(),window.$message.success($t("workbench.project.msg.visualManualDeleted"))}).catch(te=>{window.$message.error(te.message??$t("workbench.project.msg.operationFailed"))}).finally(()=>{oe(),ie.destroy()})}})}async function ee(){if(!W.value.name.trim()){window.$message.warning($t("workbench.project.msg.enterVisualManualName"));return}if(!W.value.images.length){window.$message.warning($t("workbench.project.msg.enterVisualManualImage"));return}const Y=J.value.find(ie=>!ie.data.trim());if(Y)return window.$message.warning(`「${Y.label}」${$t("workbench.project.msg.enterVisualManualTabData")}`);try{D.value=!0,$.value?await mn.post("/project/editDirectorlManual",{name:W.value.name,images:W.value.images,data:J.value,directorManual:W.value.directorManual}):await mn.post("/project/addDirectorManual",{name:W.value.name,images:W.value.images,data:J.value,directorManual:W.value.directorManual}),D.value=!1,$.value?window.$message.success($t("workbench.project.msg.directorManualUpdated")):window.$message.success($t("workbench.project.msg.directorManualAdded")),le(),oe()}catch(ie){D.value=!1,window.$message.error(ie.message??$t("workbench.project.msg.operationFailed"))}}function de(){var Y;(Y=w.value)==null||Y.click()}function z(Y){const ie=Y.target.files;!ie||ie.length===0||(Array.from(ie).forEach(te=>{const Z=new FileReader;Z.onload=()=>{W.value.images.push(Z.result)},Z.readAsDataURL(te)}),Y.target.value="")}return(Y,ie)=>{const te=uL,Z=pA,he=p2,pe=Wu,Ce=c2,Qe=A2,ke=_n("i-plus"),me=Si,_e=_n("i-edit"),Te=_n("i-delete"),De=Wc,Ye=gc,ot=_n("i-close"),We=Mne,et=Ine;return xe(),Ge("div",LBo,[c(Ye,{placement:"center",visible:n.value,"onUpdate:visible":ie[11]||(ie[11]=st=>n.value=st),header:a.value?Y.$t("workbench.project.dialog.editTitle"):Y.$t("workbench.project.dialog.addTitle"),width:"60%",onConfirm:m,onCloseBtnClick:g,onCancel:g,"confirm-btn":a.value?Y.$t("workbench.project.dialog.save"):Y.$t("workbench.project.dialog.ok"),"cancel-btn":Y.$t("workbench.project.dialog.cancel")},{default:Oe(()=>[ge("div",xBo,[ge("div",EBo,[c(Qe,{data:u.value,"label-align":"top"},{default:Oe(()=>[c(he,{label:Y.$t("workbench.project.dialog.projectType")},{default:Oe(()=>[c(Z,{modelValue:u.value.projectType,"onUpdate:modelValue":ie[0]||(ie[0]=st=>u.value.projectType=st),placeholder:Y.$t("workbench.project.dialog.selectType")},{default:Oe(()=>[c(te,{key:"基于小说原文",label:Y.$t("workbench.project.dialog.basedOnNovel"),value:"novel"},null,8,["label"]),c(te,{key:"基于剧本",label:Y.$t("workbench.project.dialog.basedOnScript"),value:"script"},null,8,["label"])]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.projectName")},{default:Oe(()=>[c(pe,{modelValue:u.value.name,"onUpdate:modelValue":ie[1]||(ie[1]=st=>u.value.name=st),placeholder:Y.$t("workbench.project.dialog.projectNamePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.novelType")},{default:Oe(()=>[c(pe,{modelValue:u.value.type,"onUpdate:modelValue":ie[2]||(ie[2]=st=>u.value.type=st),placeholder:Y.$t("workbench.project.dialog.novelTypePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.modelData")},{default:Oe(()=>[ge("div",TBo,[c(T8,{modelValue:u.value.imageModel,"onUpdate:modelValue":ie[3]||(ie[3]=st=>u.value.imageModel=st),type:"image"},null,8,["modelValue"]),c(Z,{modelValue:u.value.imageQuality,"onUpdate:modelValue":ie[4]||(ie[4]=st=>u.value.imageQuality=st),class:"paramSelect ml-5",placeholder:Y.$t("workbench.production.editImage.quality")},{default:Oe(()=>[c(te,{value:"1K",label:"1K"}),c(te,{value:"2K",label:"2K"}),c(te,{value:"4K",label:"4K"})]),_:1},8,["modelValue","placeholder"])])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.videoModelData")},{default:Oe(()=>[ge("div",QBo,[c(T8,{modelValue:u.value.videoModel,"onUpdate:modelValue":ie[5]||(ie[5]=st=>u.value.videoModel=st),type:"video",onChange:F,changeConfig:!0},null,8,["modelValue"]),c(Z,{modelValue:u.value.mode,"onUpdate:modelValue":ie[6]||(ie[6]=st=>u.value.mode=st),class:"paramSelect ml-5",placeholder:Y.$t("workbench.production.editImage.mode")},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(M.value,st=>(xe(),Ut(te,{key:st.value,value:st.value,label:st.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","placeholder"])])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.videoRatio")},{default:Oe(()=>[c(Z,{modelValue:u.value.videoRatio,"onUpdate:modelValue":ie[7]||(ie[7]=st=>u.value.videoRatio=st),options:l},null,8,["modelValue"])]),_:1},8,["label"]),c(he,{label:Y.$t("workbench.project.dialog.novelIntro")},{default:Oe(()=>[c(Ce,{modelValue:u.value.intro,"onUpdate:modelValue":ie[8]||(ie[8]=st=>u.value.intro=st),autosize:{minRows:3,maxRows:6},placeholder:Y.$t("workbench.project.dialog.novelIntroPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["data"])]),ge("div",DBo,[c(Qe,{"label-align":"top"},{default:Oe(()=>[c(he,null,{default:Oe(()=>[ge("div",BBo,[ge("div",RBo,[ge("span",null,Pe(Y.$t("workbench.project.dialog.visualManual")),1),c(me,{size:"small",variant:"outline",onClick:ie[9]||(ie[9]=st=>_())},{icon:Oe(()=>[c(ke,{size:"14"})]),default:Oe(()=>[Bt(" "+Pe(Y.$t("workbench.project.dialog.newVisualManual")),1)]),_:1})]),ge("div",IBo,[c(De,{loading:k.value,text:Y.$t("workbench.project.dialog.loading")},{default:Oe(()=>[ge("div",MBo,[(xe(!0),Ge(sn,null,Bi(f.value,(st,Me)=>(xe(),Ge("div",{key:Me,class:Eo(["gridItem",{active:u.value.artStyle===st.stylePath}]),onClick:Se=>u.value.artStyle=st.stylePath},[ge("div",FBo,[ge("img",{src:st.images&&st.images[0],alt:st.name,class:"artImage",loading:"lazy"},null,8,NBo),ge("div",UBo,Pe(st.name),1)]),ge("div",{class:"editBtn",onClick:Mr(Se=>_(st),["stop"])},[c(_e,{theme:"outline",size:"14"})],8,jBo),ge("div",{class:"delBtn",onClick:Mr(Se=>Q(st),["stop"])},[c(Te,{theme:"outline",size:"14"})],8,WBo)],10,PBo))),128))])]),_:1},8,["loading","text"])])])]),_:1}),c(he,null,{default:Oe(()=>[ge("div",VBo,[ge("div",zBo,[ge("span",null,Pe(Y.$t("workbench.project.dialog.directorManual")),1),c(me,{size:"small",variant:"outline",onClick:ie[10]||(ie[10]=st=>se())},{icon:Oe(()=>[c(ke,{size:"14"})]),default:Oe(()=>[Bt(" "+Pe(Y.$t("workbench.project.dialog.addDirectorManual")),1)]),_:1})]),ge("div",HBo,[c(De,{loading:H.value,text:Y.$t("workbench.project.dialog.loading")},{default:Oe(()=>[ge("div",$Bo,[(xe(!0),Ge(sn,null,Bi(q.value,(st,Me)=>(xe(),Ge("div",{key:Me,class:Eo(["gridItem",{active:u.value.directorManual===st.directorManual}]),onClick:Se=>u.value.directorManual=st.directorManual},[ge("div",GBo,[ge("img",{src:st.images&&st.images[0],alt:st.name,class:"artImage",loading:"lazy"},null,8,YBo),ge("div",ZBo,Pe(st.name),1)]),ge("div",{class:"editBtn",onClick:Mr(Se=>se(st),["stop"])},[c(_e,{theme:"outline",size:"14"})],8,qBo),ge("div",{class:"delBtn",onClick:Mr(Se=>ue(st),["stop"])},[c(Te,{theme:"outline",size:"14"})],8,KBo)],10,XBo))),128))])]),_:1},8,["loading","text"])])])]),_:1})]),_:1})])])]),_:1},8,["visible","header","confirm-btn","cancel-btn"]),c(Ye,{class:"artStyleDialog",visible:A.value,"onUpdate:visible":ie[15]||(ie[15]=st=>A.value=st),header:p.value?Y.$t("workbench.project.dialog.editVisualManualTitle"):Y.$t("workbench.project.dialog.newVisualManualTitle"),width:"90vw",placement:"center",onConfirm:P,onCloseBtnClick:le,onCancel:le,"confirm-btn":Y.$t("workbench.project.dialog.ok"),"cancel-btn":Y.$t("workbench.project.dialog.cancel")},{default:Oe(()=>[c(De,{loading:D.value},{default:Oe(()=>[c(Qe,{"label-align":"top"},{default:Oe(()=>[c(he,null,{default:Oe(()=>[ge("div",JBo,[ge("div",eRo,[ge("label",tRo,Pe(Y.$t("workbench.project.dialog.visualManualName")),1),c(pe,{modelValue:b.value.name,"onUpdate:modelValue":ie[12]||(ie[12]=st=>b.value.name=st),placeholder:Y.$t("workbench.project.dialog.visualManualNamePh")},null,8,["modelValue","placeholder"])]),ge("div",nRo,[ge("label",iRo,Pe(Y.$t("workbench.project.dialog.mdFile")),1),c(pe,{modelValue:b.value.stylePath,"onUpdate:modelValue":ie[13]||(ie[13]=st=>b.value.stylePath=st),disabled:!!p.value},null,8,["modelValue","disabled"])]),ge("div",rRo,[ge("label",oRo,Pe(Y.$t("workbench.project.dialog.visualManualCover")),1),ge("div",sRo,[(xe(!0),Ge(sn,null,Bi(b.value.images,(st,Me)=>(xe(),Ge("div",{key:Me,class:"coverPreview"},[ge("img",{src:st,class:"coverImg"},null,8,aRo),ge("div",{class:"coverImgRemove",onClick:Se=>T(Me)},[c(ot,{size:"10"})],8,lRo)]))),128)),ge("div",{class:"coverUploadTrigger",onClick:L},[ge("input",{ref_key:"visualManualCoverInputRef",ref:w,type:"file",accept:"image/*",multiple:"",style:{display:"none"},onChange:E},null,544),c(ke,{size:"24"}),ge("span",null,Pe(Y.$t("workbench.project.dialog.uploadCover")),1)])])])])]),_:1}),c(he,{label:Y.$t("workbench.project.dialog.visualManualPrompt")},{default:Oe(()=>[ge("div",cRo,[ge("div",dRo,[ge("div",uRo,[c(et,{value:O.value,size:"medium",onChange:ie[14]||(ie[14]=st=>O.value=st)},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(y.value,st=>(xe(),Ut(We,{key:st.value,value:st.value,label:st.label},{default:Oe(()=>[c(Ae(X4),{modelValue:st.data,"onUpdate:modelValue":Me=>st.data=Me,theme:"light",toolbars:v,footers:[],placeholder:Y.$t("workbench.project.dialog.promptPlaceholder"),style:{height:"30vh","margin-top":"5px"},onOnUploadImg:()=>{}},null,8,["modelValue","onUpdate:modelValue","placeholder"])]),_:2},1032,["value","label"]))),128))]),_:1},8,["value"])])])])]),_:1},8,["label"])]),_:1})]),_:1},8,["loading"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"]),c(Ye,{class:"artStyleDialog",visible:G.value,"onUpdate:visible":ie[19]||(ie[19]=st=>G.value=st),header:$.value?Y.$t("workbench.project.dialog.editingDirectorManual"):Y.$t("workbench.project.dialog.newDirecorManualTitle"),width:"90vw",placement:"center",onConfirm:ee,onCloseBtnClick:S,onCancel:S,"confirm-btn":Y.$t("workbench.project.dialog.ok"),"cancel-btn":Y.$t("workbench.project.dialog.cancel")},{default:Oe(()=>[c(De,{loading:D.value},{default:Oe(()=>[c(Qe,{"label-align":"top"},{default:Oe(()=>[c(he,null,{default:Oe(()=>[ge("div",hRo,[ge("div",fRo,[ge("label",gRo,Pe(Y.$t("workbench.project.dialog.directorManualName")),1),c(pe,{modelValue:W.value.name,"onUpdate:modelValue":ie[16]||(ie[16]=st=>W.value.name=st),placeholder:Y.$t("workbench.project.dialog.directorManualNamePh")},null,8,["modelValue","placeholder"])]),ge("div",mRo,[ge("label",kRo,Pe(Y.$t("workbench.project.dialog.directorFile")),1),c(pe,{modelValue:W.value.directorManual,"onUpdate:modelValue":ie[17]||(ie[17]=st=>W.value.directorManual=st),disabled:!!$.value},null,8,["modelValue","disabled"])]),ge("div",vRo,[ge("label",ARo,Pe(Y.$t("workbench.project.dialog.directorManualCover")),1),ge("div",pRo,[(xe(!0),Ge(sn,null,Bi(W.value.images,(st,Me)=>(xe(),Ge("div",{key:Me,class:"coverPreview"},[ge("img",{src:st,class:"coverImg"},null,8,bRo),ge("div",{class:"coverImgRemove",onClick:Se=>T(Me)},[c(ot,{size:"10"})],8,wRo)]))),128)),ge("div",{class:"coverUploadTrigger",onClick:de},[ge("input",{ref_key:"visualManualCoverInputRef",ref:w,type:"file",accept:"image/*",multiple:"",style:{display:"none"},onChange:z},null,544),c(ke,{size:"24"}),ge("span",null,Pe(Y.$t("workbench.project.dialog.uploadCover")),1)])])])])]),_:1}),c(he,{label:Y.$t("workbench.project.dialog.directorManualPrompt")},{default:Oe(()=>[ge("div",ORo,[ge("div",yRo,[ge("div",CRo,[c(et,{value:re.value,size:"medium",onChange:ie[18]||(ie[18]=st=>re.value=st)},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(J.value,st=>(xe(),Ut(We,{key:st.value,value:st.value,label:st.label},{default:Oe(()=>[c(Ae(X4),{modelValue:st.data,"onUpdate:modelValue":Me=>st.data=Me,theme:"light",toolbars:v,footers:[],placeholder:Y.$t("workbench.project.dialog.promptPlaceholder"),style:{height:"30vh","margin-top":"5px"},onOnUploadImg:()=>{}},null,8,["modelValue","onUpdate:modelValue","placeholder"])]),_:2},1032,["value","label"]))),128))]),_:1},8,["value"])])])])]),_:1},8,["label"])]),_:1})]),_:1},8,["loading"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])])}}}),SRo=oo(_Ro,[["__scopeId","data-v-2e24f11a"]]),LRo={class:"project"},xRo={class:"header"},ERo={class:"fc"},TRo={class:"title"},QRo={class:"sub"},DRo={class:"list"},BRo={class:"jb ac"},RRo={class:"title"},IRo={class:"intro"},MRo={class:"bottomMenu f ac jb"},PRo={class:"time"},FRo={class:"actionBtns f ac"},NRo=["onClick"],URo=["onClick"],jRo=Je({__name:"index",setup(e){const{allProject:t,project:n}=xs(ph()),r=fe(!1),o=fe(null);function s(){mn.post("/project/getProject").then(({data:m})=>{t.value=m})}An(()=>{n.value=null,s()});const a=_pe();function l(m){const v=t.value.find(f=>f.id===m);if(v)n.value=v;else return window.$message.error($t("workbench.project.msg.notFound"));v.projectType==="novel"?a.push("/novel"):v.projectType==="script"&&a.push("/script")}function d(m){o.value={...m},r.value=!0}function u(m){mn.post("/project/editProject",m).then(()=>{window.$message.success($t("workbench.project.msg.editSuccess")),s()}).catch(v=>{window.$message.error(v.message??$t("workbench.project.msg.editFailed"))})}function h(m){mn.post("/project/addProject",m).then(()=>{window.$message.success($t("workbench.project.msg.addSuccess")),s()}).catch(v=>{window.$message.error(v.message??$t("workbench.project.msg.addFailed"))})}function g(m){const v=co.confirm({header:$t("workbench.project.msg.deleteHeader"),body:$t("workbench.project.msg.deleteBody"),confirmBtn:$t("workbench.project.msg.deleteConfirm"),cancelBtn:$t("workbench.project.msg.deleteCancel"),onConfirm:()=>{mn.post("/project/delProject",{id:m}).then(()=>{window.$message.success($t("workbench.project.msg.deleteSuccess")),s()}).catch(f=>{window.$message.error(f.message??$t("workbench.project.msg.deleteFailed"))}).finally(()=>{v.destroy()})}})}return(m,v)=>{const f=_n("i-plus"),k=Si,A=Sg,p=_n("i-edit"),b=_n("i-delete"),w=km,O=L1i,y=S1i;return xe(),Ge(sn,null,[ge("div",LRo,[ge("div",xRo,[ge("div",ERo,[ge("span",TRo,Pe(m.$t("workbench.project.title")),1),ge("span",QRo,Pe(m.$t("workbench.project.subtitle")),1)]),c(k,{class:"addBtn",onClick:v[0]||(v[0]=C=>{o.value=null,r.value=!0})},{icon:Oe(()=>[c(f,{class:"addIcon",size:20})]),default:Oe(()=>[Bt(" "+Pe(m.$t("workbench.project.newProject")),1)]),_:1})]),ge("div",DRo,[c(y,{style:{gap:"20px"}},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(t),C=>(xe(),Ut(O,{xs:12,sm:6,md:6,lg:4,xl:4,key:C.id},{default:Oe(()=>[c(w,{hoverShadow:"",class:"card",onClick:_=>l(C.id)},{default:Oe(()=>[ge("div",BRo,[ge("div",RRo,Pe(C.name),1),ge("div",null,[c(A,{shape:"round"},{default:Oe(()=>[Bt(Pe(C.projectType=="novel"?m.$t("workbench.project.type.novel"):m.$t("workbench.project.type.script")),1)]),_:2},1024)])]),C.artStyle?(xe(),Ut(A,{key:0,shape:"round"},{default:Oe(()=>[Bt(Pe(C.artStyle),1)]),_:2},1024)):nn("",!0),ge("div",IRo,Pe(C.intro),1),ge("div",MRo,[ge("div",PRo,[ge("span",null,Pe(Ae(JB)(C==null?void 0:C.createTime).format("YYYY-MM-DD HH:mm:ss")),1)]),ge("div",FRo,[ge("div",{class:"editBtn",onClick:Mr(_=>d(C),["stop"])},[c(p,{size:18})],8,NRo),ge("div",{class:"removeBtn",onClick:Mr(_=>g(C.id),["stop"])},[c(b,{size:18})],8,URo)])])]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})])]),c(SRo,{modelValue:Ae(r),"onUpdate:modelValue":v[1]||(v[1]=C=>Fn(r)?r.value=C:null),projectData:Ae(o),onAdd:h,onEdit:u},null,8,["modelValue","projectData"])],64)}}}),WRo=oo(jRo,[["__scopeId","data-v-d59f6a92"]]),VRo=Object.freeze(Object.defineProperty({__proto__:null,default:WRo},Symbol.toStringTag,{value:"Module"})),zRo={class:"task"},HRo={class:"header"},$Ro={class:"headerInfo fc"},XRo={class:"title"},GRo={class:"sub"},YRo={class:"list"},ZRo={class:"search f"},qRo={class:"content"},KRo={class:"stateText stateFail"},JRo=Je({__name:"index",setup(e){const{project:t}=xs(ph()),n=[{colKey:"taskClass",title:$t("workbench.task.col.taskClass"),width:120,ellipsis:!0},{colKey:"relatedObjects",title:$t("workbench.task.col.relatedObjects"),width:120,ellipsis:!0},{colKey:"model",title:$t("workbench.task.col.model"),width:280,ellipsis:!0},{colKey:"describe",title:$t("workbench.task.col.describe"),ellipsis:!0},{colKey:"reason",title:$t("workbench.task.col.reason"),ellipsis:!0},{colKey:"state",title:$t("workbench.task.col.state"),width:100,cell:"state"},{colKey:"startTime",title:$t("workbench.task.col.startTime"),width:200,cell:"startTime"}],r=[{label:$t("workbench.task.stateAll"),value:""},{label:$t("workbench.task.stateRunning"),value:"进行中"},{label:$t("workbench.task.stateCompleted"),value:"已完成"},{label:$t("workbench.task.stateFailed"),value:"生成失败"}],o=fe({page:1,limit:10,total:0,loading:!1}),s=fe([]),a=fe([]),l=fe(""),d=fe(""),u=fe(""),h=fe([]);An(()=>{f(),m(),v()});function g(){o.value.page=1,f()}async function m(){const{data:k}=await mn.post("/task/getTaskCategories").catch(()=>({data:[]}));s.value=[{label:$t("workbench.task.stateAll"),value:""},...k.map(A=>({label:A.taskClass,value:A.taskClass}))]}async function v(){const{data:k}=await mn.post("/task/getProject").catch(()=>({data:[]}));a.value=[{label:$t("workbench.task.stateAll"),value:""},...k.map(A=>({label:A.name,value:A.id}))]}async function f(){var k;o.value.loading=!0;try{const{data:A}=await mn.post("/task/getTaskApi",{page:o.value.page,limit:o.value.limit,taskClass:l.value,state:d.value,projectId:u.value||((k=t.value)==null?void 0:k.id)});h.value=A.data,o.value.total=A.total}catch{window.$message.error($t("workbench.task.fetchFailed"))}finally{o.value.loading=!1}}return(k,A)=>{const p=_n("i-redo"),b=Si,w=pA,O=el,y=jne,C=g3n;return xe(),Ge("div",zRo,[ge("div",HRo,[ge("div",$Ro,[ge("span",XRo,Pe(k.$t("workbench.task.title")),1),ge("span",GRo,Pe(k.$t("workbench.task.subtitle")),1)]),c(b,{onClick:f},{icon:Oe(()=>[c(p,{size:20})]),default:Oe(()=>[Bt(" "+Pe(k.$t("workbench.task.refresh")),1)]),_:1})]),ge("div",YRo,[ge("div",ZRo,[c(w,{label:k.$t("workbench.task.project"),modelValue:Ae(u),"onUpdate:modelValue":A[0]||(A[0]=_=>Fn(u)?u.value=_:null),options:Ae(a),onChange:g},null,8,["label","modelValue","options"]),c(w,{label:k.$t("workbench.task.categoryLabel"),modelValue:Ae(l),"onUpdate:modelValue":A[1]||(A[1]=_=>Fn(l)?l.value=_:null),options:Ae(s),onChange:g,style:{"margin-left":"20px"}},null,8,["label","modelValue","options"]),c(w,{label:k.$t("workbench.task.stateLabel"),modelValue:Ae(d),"onUpdate:modelValue":A[2]||(A[2]=_=>Fn(d)?d.value=_:null),options:r,onChange:g,style:{"margin-left":"20px"}},null,8,["label","modelValue"])]),ge("div",qRo,[c(y,{data:Ae(h),columns:n,"row-key":"id",loading:Ae(o).loading,hover:"",stripe:""},{state:Oe(({row:_})=>[_.state==="生成失败"?(xe(),Ut(O,{key:0,content:_.reason||k.$t("workbench.task.noFailReason"),placement:"top"},{default:Oe(()=>[ge("span",KRo,Pe(_.state),1)]),_:2},1032,["content"])):(xe(),Ge("span",{key:1,class:Eo(["stateText",_.state==="进行中"?"stateRunning":"stateSuccess"])},Pe(_.state),3))]),startTime:Oe(({row:_})=>[ge("span",null,Pe(Ae(JB)(_.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),_:1},8,["data","loading"]),c(C,{class:"paginationWrap",current:Ae(o).page,"onUpdate:current":A[3]||(A[3]=_=>Ae(o).page=_),pageSize:Ae(o).limit,"onUpdate:pageSize":A[4]||(A[4]=_=>Ae(o).limit=_),"show-sizer":"",total:Ae(o).total,onPageSizeChange:f,onCurrentChange:f},null,8,["current","pageSize","total"])])])])}}}),eIo=oo(JRo,[["__scopeId","data-v-7d93af9d"]]),tIo=Object.freeze(Object.defineProperty({__proto__:null,default:eIo},Symbol.toStringTag,{value:"Module"})),Dce=/^(第[\d一二三四五六七八九十百千]+卷)\s*([^\n第]*)/gm,nIo=/第\s*([0-90-9零一二三四五六七八九十百千万]+)\s*[章回节]\s*([^\n\r]*)/g,O5e={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},GSt={十:10,百:100,千:1e3};function y5e(e){if(/^\d+$/.test(e))return parseInt(e,10);if(/^十[一二三四五六七八九]?$/.test(e))return e.length===1?10:10+O5e[e[1]];let t=0,n=0;for(const r of e)O5e[r]!==void 0?n=O5e[r]:GSt[r]!==void 0&&(n===0&&r==="十"&&(n=1),t+=n*GSt[r],n=0);return t+=n,t}function iIo(e){var l;Dce.lastIndex=0;const t=Array.from(e.matchAll(Dce)),n=[];let r;const o=ku().otherSetting.chapterReg;if(o){const d=o.match(/^\/(.*)\/([igmuy]*)$/);d?r=new RegExp(d[1],d[2]):r=new RegExp(o)}else r=nIo;if(t.length===0){const d=[];r.lastIndex=0;const u=Array.from(e.matchAll(r));if(u.length===0&&e.trim()!=="")d.push({index:1,chapter:"",text:e.trim()});else for(let h=0;hh.index-g.index),n.push({index:1,reel:"正文卷",chapters:d}),n}const s=new Map;for(let d=0;dp.index-b.index),s.has(m)||s.set(m,{index:y5e(g.replace(/第|卷/g,"")),reel:m,chapters:[]}),s.get(m).chapters.push(...A)}const a=Array.from(s.values()).sort((d,u)=>d.index-u.index);return a.forEach(d=>d.chapters.sort((u,h)=>u.index-h.index)),a}var _p={},Cit="1.13.8",YSt=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||Function("return this")()||{},iwe=Array.prototype,_it=Object.prototype,ZSt=typeof Symbol<"u"?Symbol.prototype:null,rIo=iwe.push,lre=iwe.slice,Tee=_it.toString,oIo=_it.hasOwnProperty,kPn=typeof ArrayBuffer<"u",sIo=typeof DataView<"u",aIo=Array.isArray,qSt=Object.keys,KSt=Object.create,JSt=kPn&&ArrayBuffer.isView,lIo=isNaN,cIo=isFinite,vPn=!{toString:null}.propertyIsEnumerable("toString"),e8t=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],dIo=Math.pow(2,53)-1;function V0(e,t){return t=t==null?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),o=0;o=0&&n<=dIo}}function xPn(e){return function(t){return t==null?void 0:t[e]}}const Dke=xPn("byteLength"),gIo=LPn(Dke);var mIo=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function kIo(e){return JSt?JSt(e)&&!Qee(e):gIo(e)&&mIo.test(Tee.call(e))}const Rit=kPn?kIo:Bit(!1),m1=xPn("length");function vIo(e){for(var t={},n=e.length,r=0;r=0))if(r.push(e),o.push(t),n.push(!0),d){if(m=e.length,m!==t.length)return!1;for(;m--;)n.push({a:e[m],b:t[m]})}else{var v=Mf(e),f;if(m=v.length,Mf(t).length!==m)return!1;for(;m--;){if(f=v[m],!vE(t,f))return!1;n.push({a:e[f],b:t[f]})}}}return!0}function gH(e){if(!mE(e))return[];var t=[];for(var n in e)t.push(n);return vPn&&EPn(e,t),t}function Mit(e){var t=m1(e);return function(n){if(n==null)return!1;var r=gH(n);if(m1(r))return!1;for(var o=0;o":">",'"':""","'":"'","`":"`"},qPn=YPn(ZPn),wIo=Nit(ZPn),KPn=YPn(wIo),JPn=Jl.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C5e=/(.)^/,OIo={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},yIo=/\\|'|\r|\n|\u2028|\u2029/g;function CIo(e){return"\\"+OIo[e]}var _Io=/^\s*(\w|\$)+\s*$/;function eFn(e,t,n){!t&&n&&(t=n),t=Wit({},t,Jl.templateSettings);var r=RegExp([(t.escape||C5e).source,(t.interpolate||C5e).source,(t.evaluate||C5e).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(r,function(u,h,g,m,v){return s+=e.slice(o,v).replace(yIo,CIo),o=v+u.length,h?s+=`'+ ((__t=(`+h+`))==null?'':_.escape(__t))+ '`:g?s+=`'+ ((__t=(`+g+`))==null?'':__t)+ @@ -3220,7 +3220,7 @@ Character number: `+e.characterNumber};NR.prototype.lineNumber=function(){return `,r:"\r",t:" "};function wUn(e){return e.replace(/\\(.)/g,function(t,n){return DNo[n]||n})}var BNo=ei.rules.sequence(ei.rules.tokenOfType("open-square-bracket"),ei.rules.sequence.cut(),ei.rules.sequence.capture(Wwe),ei.rules.tokenOfType("equals"),ei.rules.sequence.capture(BN),ei.rules.tokenOfType("close-square-bracket")).map(function(e,t){return{name:e,value:t,append:!1}}),RNo=ei.rules.sequence(ei.rules.tokenOfType("dot"),ei.rules.sequence.cut(),ei.rules.sequence.capture(Wwe)).map(function(e){return{name:"class",value:e,append:!0}}),INo=ei.rules.firstOf("attribute or class",BNo,RNo);function Urt(e,t){var n=SNo(t),r=ei.Parser(),o=r.parseTokens(e,n);return o.isSuccess()?B9e.success(o.value()):new B9e.Result(null,[B9e.warning(MNo(t,o))])}function MNo(e,t){return"Did not understand this style mapping, so ignored it: "+e+` `+t.errors().map(PNo).join(` `)}function PNo(e){return"Error was at character number "+e.characterNumber()+": Expected "+e.expected+" but got "+e.actual}var FNo=xNo(),Vwe={};Vwe.readOptions=jNo;var OUn=bh,NNo=Vwe._defaultStyleMap=["p.Heading1 => h1:fresh","p.Heading2 => h2:fresh","p.Heading3 => h3:fresh","p.Heading4 => h4:fresh","p.Heading5 => h5:fresh","p.Heading6 => h6:fresh","p[style-name='Heading 1'] => h1:fresh","p[style-name='Heading 2'] => h2:fresh","p[style-name='Heading 3'] => h3:fresh","p[style-name='Heading 4'] => h4:fresh","p[style-name='Heading 5'] => h5:fresh","p[style-name='Heading 6'] => h6:fresh","p[style-name='heading 1'] => h1:fresh","p[style-name='heading 2'] => h2:fresh","p[style-name='heading 3'] => h3:fresh","p[style-name='heading 4'] => h4:fresh","p[style-name='heading 5'] => h5:fresh","p[style-name='heading 6'] => h6:fresh","p.Heading => h1:fresh","p[style-name='Heading'] => h1:fresh","r[style-name='Strong'] => strong","p[style-name='footnote text'] => p:fresh","r[style-name='footnote reference'] =>","p[style-name='endnote text'] => p:fresh","r[style-name='endnote reference'] =>","p[style-name='annotation text'] => p:fresh","r[style-name='annotation reference'] =>","p[style-name='Footnote'] => p:fresh","r[style-name='Footnote anchor'] =>","p[style-name='Endnote'] => p:fresh","r[style-name='Endnote anchor'] =>","p:unordered-list(1) => ul > li:fresh","p:unordered-list(2) => ul|ol > li > ul > li:fresh","p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh","p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh","p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh","p:ordered-list(1) => ol > li:fresh","p:ordered-list(2) => ul|ol > li > ol > li:fresh","p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh","p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh","p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh","r[style-name='Hyperlink'] =>","p[style-name='Normal'] => p:fresh","p.Body => p:fresh","p[style-name='Body'] => p:fresh"],UNo=Vwe._standardOptions={externalFileAccess:!1,transformDocument:WNo,includeDefaultStyleMap:!0,includeEmbeddedStyleMap:!0};function jNo(e){return e=e||{},OUn.extend({},UNo,e,{customStyleMap:zLt(e.styleMap),readStyleMap:function(){var t=this.customStyleMap;return this.includeEmbeddedStyleMap&&(t=t.concat(zLt(this.embeddedStyleMap))),this.includeDefaultStyleMap&&(t=t.concat(NNo)),t}})}function zLt(e){return e?OUn.isString(e)?e.split(` -`).map(function(t){return t.trim()}).filter(function(t){return t!==""&&t.charAt(0)!=="#"}):e:[]}function WNo(e){return e}var yUn={},HLt=Rg,VNo=ure;yUn.openZip=zNo;function zNo(e){return e.arrayBuffer?HLt.resolve(VNo.openArrayBuffer(e.arrayBuffer)):HLt.reject(new Error("Could not find file in options"))}var CUn={},HNo=Fwe(),$No=Pwe();CUn.element=XNo;function XNo(e){return function(t){return $No.elementWithTag(HNo.element(e),[t])}}var GNo=bh,_Un=lrt,jrt=Rrt,YNo=Irt.DocumentConverter,ZNo=sUn.convertElementToRawText,qNo=Nwe.readStyle,KNo=Vwe.readOptions,zwe=yUn,JNo=LA.Result;_p.convertToHtml=eUo;_p.convertToMarkdown=tUo;_p.convert=Wrt;_p.extractRawText=oUo;_p.images=Mrt;_p.transforms=pE;_p.underline=CUn;_p.embedStyleMap=sUo;_p.readEmbeddedStyleMap=nUo;function eUo(e,t){return Wrt(e,t)}function tUo(e,t){var n=Object.create(t||{});return n.outputFormat="markdown",Wrt(e,n)}function Wrt(e,t){return t=KNo(t),zwe.openZip(e).tap(function(n){return jrt.readStyleMap(n).then(function(r){t.embeddedStyleMap=r})}).then(function(n){return _Un.read(n,e,t).then(function(r){return r.map(t.transformDocument)}).then(function(r){return iUo(r,t)})})}function nUo(e){return zwe.openZip(e).then(jrt.readStyleMap)}function iUo(e,t){var n=rUo(t.readStyleMap()),r=GNo.extend({},t,{styleMap:n.value}),o=new YNo(r);return e.flatMapThen(function(s){return n.flatMapThen(function(a){return o.convertToHtml(s)})})}function rUo(e){return JNo.combine((e||[]).map(qNo)).map(function(t){return t.filter(function(n){return!!n})})}function oUo(e){return zwe.openZip(e).then(_Un.read).then(function(t){return t.map(ZNo)})}function sUo(e,t){return zwe.openZip(e).tap(function(n){return jrt.writeStyleMap(n,t)}).then(function(n){return n.toArrayBuffer()}).then(function(n){return{toArrayBuffer:function(){return n},toBuffer:function(){return Buffer.from(n)}}})}_p.styleMapping=function(){throw new Error(`Use a raw string instead of mammoth.styleMapping e.g. "p[style-name='Title'] => h1" instead of mammoth.styleMapping("p[style-name='Title'] => h1")`)};const aUo={class:"purgeNovel"},lUo={class:"data"},cUo={class:"dragIcon"},dUo={class:"uploadText"},uUo={class:"uploadHint"},hUo={class:"formItem"},fUo={class:"label"},gUo={class:"uploadWrap"},mUo={class:"footerInfo f ac jb",style:{"margin-top":"8px"}},kUo={class:"charCount"},vUo={key:0,class:"tips warn"},AUo={style:{"margin-top":"16px","text-align":"right"}},pUo={class:"fc to2Box"},bUo={class:"ellipsisText"},wUo={class:"selectedInfo"},OUo={style:{"margin-top":"16px","text-align":"right"}},yUo=Je({__name:"importNovel",props:{modelValue:{type:Boolean},modelModifiers:{}},emits:Fc(["select"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=Pf(e,"modelValue"),o=fe("To1"),s=fe(),a=fe(""),l=fe([]),d=fe([]),u=fe(!1),h=[{colKey:"row-select",type:"multiple",width:60},{colKey:"index",title:$t("workbench.novel.import.col.chapter"),width:100},{colKey:"reel",title:$t("workbench.novel.import.col.reel"),width:100},{colKey:"chapter",title:$t("workbench.novel.import.col.chapterName"),width:200,ellipsis:!0},{colKey:"chapterData",title:$t("workbench.novel.import.col.chapterData"),ellipsis:!0}],g=X(()=>{if(!a.value)return[];try{return iIo(a.value).flatMap(C=>C.chapters.map(_=>({index:_.index,reel:C.reel,chapter:_.chapter,chapterData:_.text})))}catch(C){return console.error("解析小说内容出错:",C),[]}}),m=X(()=>g.value.filter(C=>d.value.includes(C.index))),v=X(()=>m.value.reduce((C,_)=>C+_.chapterData.length,0));function f(){var C;(C=s.value)==null||C.triggerUpload()}async function k(C){var S;const _=(S=C.dataTransfer)==null?void 0:S.files;_&&_.length>0&&await b({raw:_[0]})}async function A(C){const _=await C.arrayBuffer();return C.type==="text/plain"?new TextDecoder().decode(_):(await _p.extractRawText({arrayBuffer:_})).value}function p(){return Promise.resolve({response:{},status:"success"})}async function b(C){const _=C.raw;if(!_)return window.$message.error($t("workbench.novel.import.msg.selectFile")),!1;const S=["text/plain","application/vnd.openxmlformats-officedocument.wordprocessingml.document"];if(_.type==="application/msword")return window.$message.warning($t("workbench.novel.import.msg.docNotSupported")),!1;if(!S.includes(_.type))return window.$message.error($t("workbench.novel.import.msg.unsupportedType")),!1;if(_.size>10*1024*1024)return window.$message.error($t("workbench.novel.import.msg.fileTooLarge")),!1;Wh(!0);try{a.value=await A(_)}catch{window.$message.error($t("workbench.novel.import.msg.parseFailed"))}finally{Wh(!1)}return!1}function w(C,_){d.value=C}const O=t;async function y(){var C;if(u.value=!0,!m.value.length){window.$message.warning($t("workbench.novel.import.msg.selectChapters")),u.value=!1;return}try{await mn.post("/novel/addNovel",{projectId:(C=n.value)==null?void 0:C.id,data:m.value}),u.value=!1,O("select"),window.$message.success($t("workbench.novel.import.msg.saveSuccess"))}catch(_){window.$message.error(_.message),u.value=!1}finally{u.value=!1,r.value=!1}}return pt(r,C=>{C||(a.value="",l.value=[],d.value=[],o.value="To1")}),(C,_)=>{const S=X4e,L=_n("i-upload-one"),E=fW,T=c2,D=Si,P=Mne,Q=el,M=jne,B=Ine,R=gc;return xe(),Ge("div",aUo,[c(R,{footer:!1,visible:r.value,"onUpdate:visible":_[5]||(_[5]=I=>r.value=I),header:C.$t("workbench.novel.import.title"),width:"50%",placement:"center"},{default:Oe(()=>[ge("div",lUo,[c(B,{value:Ae(o),disabled:""},{default:Oe(()=>[c(P,{value:"To1",label:C.$t("workbench.novel.import.step1"),style:{height:"680px","overflow-y":"auto"}},{default:Oe(()=>[ge("div",{class:"uploadArea",onClick:f,onDragover:_[1]||(_[1]=Mr(()=>{},["prevent"])),onDrop:Mr(k,["prevent"])},[c(S,{ref_key:"uploadRef",ref:s,modelValue:Ae(l),"onUpdate:modelValue":_[0]||(_[0]=I=>Fn(l)?l.value=I:null),theme:"file",multiple:!1,max:1,"before-upload":b,"request-method":p,style:{display:"none"}},null,8,["modelValue"]),ge("div",cUo,[c(L,{theme:"outline",size:"32",fill:"var(--td-brand-color)"})]),ge("p",dUo,Pe(C.$t("workbench.novel.import.dragUpload")),1),ge("p",uUo,Pe(C.$t("workbench.novel.import.uploadHint")),1)],32),c(E,null,{default:Oe(()=>[Bt(Pe(C.$t("workbench.novel.import.or")),1)]),_:1}),ge("div",hUo,[ge("div",fUo,Pe(C.$t("workbench.novel.import.pasteLabel")),1),ge("div",gUo,[c(T,{modelValue:Ae(a),"onUpdate:modelValue":_[2]||(_[2]=I=>Fn(a)?a.value=I:null),placeholder:C.$t("workbench.novel.import.pastePlaceholder"),autosize:{minRows:12,maxRows:12}},null,8,["modelValue","placeholder"])]),ge("div",mUo,[ge("div",null,[ge("span",kUo,Pe(Ae(a).length)+" "+Pe(C.$t("workbench.novel.import.chars")),1),Ae(a).length>0&&Ae(a).length<100?(xe(),Ge("span",vUo,Pe(C.$t("workbench.novel.import.tooShort")),1)):nn("",!0)]),ge("span",null,Pe(C.$t("workbench.novel.import.parsedChapters",{count:Ae(g).length})),1)])]),ge("div",AUo,[c(D,{theme:"primary",style:{"margin-left":"10px"},disabled:!Ae(a)||!Ae(g).length,onClick:_[3]||(_[3]=I=>o.value="To2")},{default:Oe(()=>[Bt(Pe(C.$t("workbench.novel.import.nextStep")),1)]),_:1},8,["disabled"])])]),_:1},8,["label"]),c(P,{value:"To2",label:C.$t("workbench.novel.import.step2"),style:{height:"680px","overflow-y":"auto"}},{default:Oe(()=>[ge("div",pUo,[c(M,{ref:"tableRef","row-key":"index",data:Ae(g),columns:h,"selected-row-keys":Ae(d),hover:"",style:{flex:"1","overflow-y":"auto"},onSelectChange:w},{chapterData:Oe(({row:I})=>[c(Q,{content:I.chapterData,placement:"top"},{default:Oe(()=>[ge("span",bUo,Pe(I.chapterData),1)]),_:2},1032,["content"])]),_:1},8,["data","selected-row-keys"]),ge("div",wUo,Pe(C.$t("workbench.novel.import.selectedInfo",{count:Ae(v)})),1),ge("div",OUo,[c(D,{variant:"outline",onClick:_[4]||(_[4]=I=>o.value="To1")},{default:Oe(()=>[Bt(Pe(C.$t("workbench.novel.import.prevStep")),1)]),_:1}),c(D,{theme:"primary",style:{"margin-left":"10px"},disabled:Ae(v)>2e5,loading:Ae(u),onClick:y},{default:Oe(()=>[..._[6]||(_[6]=[Bt(" 保存 ",-1)])]),_:1},8,["disabled","loading"])])])]),_:1},8,["label"])]),_:1},8,["value"])])]),_:1},8,["visible","header"])])}}}),CUo=oo(yUo,[["__scopeId","data-v-4a10a557"]]),_Uo={class:"editNodel"},SUo={class:"data",style:{"overflow-x":"hidden"}},LUo={class:"editNodel-footer"},xUo=Je({__name:"editNodel",props:Fc({formData:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:Fc(["select"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=t;async function s(){console.log("保存的章节数据:",r.formData);try{await mn.post("/novel/updateNovel",{id:r.formData.id,index:r.formData.index,reel:r.formData.reel,chapter:r.formData.chapter,chapterData:r.formData.chapterData,event:r.formData.event}),o("select"),window.$message.success($t("workbench.novel.editDialog.msg.updateSuccess"))}catch(a){window.$message.error(a.message)}finally{n.value=!1}n.value=!1}return(a,l)=>{const d=Wu,u=p2,h=c2,g=A2,m=Si,v=gc;return xe(),Ge("div",_Uo,[c(v,{visible:n.value,"onUpdate:visible":l[4]||(l[4]=f=>n.value=f),header:a.$t("workbench.novel.editDialog.title"),width:"50%",top:"10vh",placement:"center"},{footer:Oe(()=>[ge("div",LUo,[c(m,{onClick:l[3]||(l[3]=f=>n.value=!1)},{default:Oe(()=>[Bt(Pe(a.$t("workbench.novel.editDialog.cancel")),1)]),_:1}),c(m,{theme:"primary",onClick:s},{default:Oe(()=>[Bt(Pe(a.$t("workbench.novel.editDialog.save")),1)]),_:1})])]),default:Oe(()=>[ge("div",SUo,[c(g,{"label-width":"80px"},{default:Oe(()=>[c(u,{label:a.$t("workbench.novel.editDialog.chapterName")},{default:Oe(()=>[c(d,{placeholder:a.$t("workbench.novel.editDialog.chapterNamePh"),modelValue:e.formData.chapter,"onUpdate:modelValue":l[0]||(l[0]=f=>e.formData.chapter=f)},null,8,["placeholder","modelValue"])]),_:1},8,["label"]),c(u,{label:a.$t("workbench.novel.editDialog.eventContent")},{default:Oe(()=>[c(h,{modelValue:e.formData.event,"onUpdate:modelValue":l[1]||(l[1]=f=>e.formData.event=f),placeholder:a.$t("workbench.novel.editDialog.eventContentPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(u,{label:a.$t("workbench.novel.editDialog.chapterContent")},{default:Oe(()=>[c(h,{placeholder:a.$t("workbench.novel.editDialog.chapterContentPh"),modelValue:e.formData.chapterData,"onUpdate:modelValue":l[2]||(l[2]=f=>e.formData.chapterData=f),autosize:{minRows:15,maxRows:15}},null,8,["placeholder","modelValue"])]),_:1},8,["label"])]),_:1})])]),_:1},8,["visible","header"])])}}}),EUo=oo(xUo,[["__scopeId","data-v-9e187c61"]]),TUo={class:"novel",ref:"novelRef"},QUo={class:"headBtn jb ac",ref:"headBtnRef"},DUo={class:"f"},BUo={style:{color:"red",cursor:"pointer"}},RUo={key:2},IUo=Je({__name:"index",setup(e){const{otherSetting:t}=xs(ku()),{project:n}=xs(ph()),r=fe(""),o=fe([{colKey:"row-select",type:"multiple",width:50,align:"center"},{colKey:"index",title:$t("workbench.novel.col.id"),width:50,align:"center"},{colKey:"reel",title:$t("workbench.novel.col.reel"),width:100,align:"center",cell:"preview"},{colKey:"chapter",title:$t("workbench.novel.col.chapter"),width:100,ellipsis:!0},{colKey:"chapterData",title:$t("workbench.novel.col.chapterData"),ellipsis:!0},{colKey:"event",title:$t("workbench.novel.col.event"),ellipsis:!0},{colKey:"operation",title:$t("workbench.novel.col.operation"),width:200,align:"center"}]),s=fe(!1),a=fe({id:-1,index:0,reel:"",chapter:"",chapterData:"",event:""}),l=fe([]),d=fe(!1),u=fe([]),h=fe({page:1,pageSize:10,total:0});An(()=>{m()}),Qa(()=>{L()});function g(){h.value.page=1,m()}function m(){var E;d.value=!0,mn.post("/novel/getNovel",{projectId:(E=n.value)==null?void 0:E.id,page:h.value.page,limit:h.value.pageSize,search:r.value}).then(T=>{l.value=T.data.data,h.value.total=T.data.total}).finally(()=>{d.value=!1})}function v(E){h.value.page=E.current,h.value.pageSize=E.pageSize,m()}const f=fe(!1);function k(){f.value=!0}function A(E,T){u.value=E.filter(Boolean)}function p(){if(u.value.length===0)return;const E=fo.confirm({header:$t("workbench.novel.msg.batchDeleteHeader"),body:$t("workbench.novel.msg.batchDeleteBody",{count:u.value.length}),onConfirm:async()=>{await mn.post("/novel/batchDeleteNovel",{ids:u.value}),m(),window.$message.success($t("workbench.novel.msg.batchDeleteSuccess")),E.destroy()}})}function b(E){s.value=!0,a.value={...E}}function w(E){const T=fo.confirm({header:$t("workbench.novel.msg.deleteHeader"),body:$t("workbench.novel.msg.deleteBody",{name:E.chapter}),onConfirm:async()=>{try{await mn.post("/novel/delNovel",{id:E.id}),window.$message.success($t("workbench.novel.msg.deleteSuccess")),l.value.length===1&&h.value.page>1&&(h.value.page-=1),m()}catch(D){window.$message.error(D.message)}window.$message.success($t("workbench.novel.msg.deleteSuccess")),T.destroy()}})}function O(){const E=fo.confirm({header:$t("workbench.novel.msg.eventAnalysisHeader"),body:$t("workbench.novel.msg.eventAnalysisBody",{count:u.value.length}),onConfirm:()=>{var T;E.destroy(),mn.post("/novel/event/generateEvents",{projectId:(T=n.value)==null?void 0:T.id,novelIds:u.value,concurrentCount:t.value.assetsBatchGenereateSize}).then(D=>{u.value.length=0,m()})}})}const y=X(()=>l.value.filter(E=>!E.eventState));let C=null;async function _(){if(y.value.length===0)return;const E=y.value.map(T=>T.id);try{const{data:T}=await mn.post("/novel/getNovelEventState",{ids:E});Array.isArray(T)&&T.forEach(D=>{const P=l.value.find(Q=>Q.id===D.id);P&&(P.eventState=D.eventState,P.eventState==-1&&(P.errorReason=D.errorReason),D.event!==void 0&&(P.event=D.event))})}catch(T){console.error("轮询事件状态失败:",T)}}function S(){C||(C=setInterval(async()=>{if(y.value.length===0){L();return}await _()},3e3))}function L(){C&&(clearInterval(C),C=null)}return pt(y,E=>{E.length>0?S():L()}),Qa(()=>{L()}),(E,T)=>{const D=dL,P=Si,Q=Ev,M=Wu,B=Wc,R=el,I=jne;return xe(),Ge("div",TUo,[ge("div",QUo,[c(Q,null,{default:Oe(()=>[c(P,{theme:"primary",onClick:k},{icon:Oe(()=>[c(D,{name:"add"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.importText")),1)]),_:1}),c(P,{theme:"danger",disabled:Ae(u).length===0,onClick:p},{icon:Oe(()=>[c(D,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.batchDelete"))+" "+Pe(Ae(u).length>0?`(${Ae(u).length})`:""),1)]),_:1},8,["disabled"]),c(P,{onClick:O,disabled:Ae(u).length===0},{icon:Oe(()=>[c(D,{name:"analytics"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.eventAnalysis"))+" "+Pe(Ae(u).length>0?`(${Ae(u).length})`:""),1)]),_:1},8,["disabled"])]),_:1}),ge("div",DUo,[c(M,{modelValue:Ae(r),"onUpdate:modelValue":T[0]||(T[0]=F=>Fn(r)?r.value=F:null),placeholder:E.$t("workbench.novel.searchPlaceholder"),clearable:"",style:{width:"260px"}},null,8,["modelValue","placeholder"]),c(P,{onClick:g,style:{"margin-left":"10px"}},{icon:Oe(()=>[c(D,{name:"search"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.search")),1)]),_:1})])],512),c(I,{ref:"tableRef",style:{"margin-top":"10px",flex:"1",display:"flex","flex-direction":"column"},columns:Ae(o),data:Ae(l),"selected-row-keys":Ae(u),"select-on-row-click":!0,keyboardRowHover:!1,"row-key":"id",hover:"",stripe:"",size:"small",pagination:Ae(h),loading:Ae(d),"lazy-load":"",resizable:"","table-layout":"fixed",onSelectChange:A,onPageChange:v},{startTime:Oe(({row:F})=>[ge("span",null,Pe(Ae(JB)(F.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),event:Oe(({row:F})=>[F.eventState==0?(xe(),Ut(B,{key:0,size:"small",text:E.$t("workbench.novel.generating")},null,8,["text"])):F.eventState==-1&&!F.event?(xe(),Ut(R,{key:1,content:F==null?void 0:F.errorReason},{default:Oe(()=>[ge("div",BUo,Pe(E.$t("workbench.novel.genFailed")),1)]),_:1},8,["content"])):(xe(),Ge("div",RUo,Pe(F.event||E.$t("workbench.novel.none")),1))]),operation:Oe(({row:F})=>[c(Q,{size:0},{default:Oe(()=>[c(P,{theme:"primary",disabled:F.eventState==0,variant:"text",onClick:j=>b(F)},{icon:Oe(()=>[c(D,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.edit")),1)]),_:1},8,["disabled","onClick"]),c(P,{theme:"danger",disabled:F.eventState==0,variant:"text",onClick:j=>w(F)},{icon:Oe(()=>[c(D,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["columns","data","selected-row-keys","pagination","loading"]),c(CUo,{modelValue:Ae(f),"onUpdate:modelValue":T[1]||(T[1]=F=>Fn(f)?f.value=F:null),onSelect:m},null,8,["modelValue"]),c(EUo,{modelValue:Ae(s),"onUpdate:modelValue":T[2]||(T[2]=F=>Fn(s)?s.value=F:null),formData:Ae(a),onSelect:m},null,8,["modelValue","formData"])],512)}}}),MUo=oo(IUo,[["__scopeId","data-v-311980c9"]]),PUo=Object.freeze(Object.defineProperty({__proto__:null,default:MUo},Symbol.toStringTag,{value:"Module"})),FUo={class:"addAssets"},NUo={class:"data"},UUo=Je({__name:"addAssets",props:Fc({type:{},title:{},formData:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["getFilteredData"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=e,o=Pf(e,"modelValue"),s=fe({name:[{required:!0,message:$t("workbench.assets.add.nameRequired"),trigger:"blur"}],describe:[{required:!0,message:$t("workbench.assets.add.describeRequired"),trigger:"blur"}],remark:[{required:!0,message:$t("workbench.assets.add.remarkRequired"),trigger:"blur"}]});function a(){o.value=!1}const l=fe(),d=t;function u(){var h;(h=l.value)==null||h.validate().then(async()=>{var g;if(r.formData.id!==0){await mn.post("/assets/updateAssets",{id:r.formData.id,name:r.formData.name,describe:r.formData.describe,remark:r.formData.remark,prompt:r.formData.prompt}).then(()=>{window.$message.success($t("workbench.assets.add.updateSuccess")),d("getFilteredData"),o.value=!1});return}else mn.post("/assets/addAssets",{name:r.formData.name,describe:r.formData.describe,remark:r.formData.remark,type:r.type,projectId:(g=n.value)==null?void 0:g.id,prompt:r.formData.prompt}).then(()=>{window.$message.success($t("workbench.assets.add.addSuccess")),d("getFilteredData"),o.value=!1})})}return(h,g)=>{const m=Wu,v=p2,f=c2,k=A2,A=gc;return xe(),Ge("div",FUo,[c(A,{visible:o.value,"onUpdate:visible":g[4]||(g[4]=p=>o.value=p),closable:!1,width:"40vw",header:r.title,maskClosable:!1,onCloseBtnClick:a,onConfirm:u,onCancel:a},{default:Oe(()=>[ge("div",NUo,[c(k,{data:r.formData,rules:Ae(s),ref_key:"formRef",ref:l},{default:Oe(()=>[c(v,{label:h.$t("workbench.assets.add.name"),name:"name"},{default:Oe(()=>[c(m,{modelValue:r.formData.name,"onUpdate:modelValue":g[0]||(g[0]=p=>r.formData.name=p),placeholder:h.$t("workbench.assets.add.namePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:h.$t("workbench.assets.add.describe"),name:"describe"},{default:Oe(()=>[c(f,{modelValue:r.formData.describe,"onUpdate:modelValue":g[1]||(g[1]=p=>r.formData.describe=p),placeholder:h.$t("workbench.assets.add.describePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:h.$t("workbench.assets.add.remark"),name:"remark"},{default:Oe(()=>[c(m,{modelValue:r.formData.remark,"onUpdate:modelValue":g[2]||(g[2]=p=>r.formData.remark=p),placeholder:h.$t("workbench.assets.add.remarkPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),r.type!=="clip"?(xe(),Ut(v,{key:0,label:h.$t("workbench.assets.add.prompt"),name:"prompt"},{default:Oe(()=>[c(f,{modelValue:r.formData.prompt,"onUpdate:modelValue":g[3]||(g[3]=p=>r.formData.prompt=p),autosize:{minRows:3,maxRows:5},placeholder:h.$t("workbench.assets.add.promptPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])):nn("",!0)]),_:1},8,["data","rules"])])]),_:1},8,["visible","header"])])}}}),jUo=oo(UUo,[["__scopeId","data-v-46105082"]]),WUo={class:"generateImage"},VUo={class:"data f"},zUo={class:"uploadReferenceImage"},HUo={class:"jb"},$Uo={style:{"font-size":"16px","font-weight":"900"}},XUo={class:"upload"},GUo={class:"rawPicturePrompt"},YUo={class:"jb"},ZUo={style:{"font-size":"16px","font-weight":"900"}},qUo={style:{"margin-left":"5px","font-size":"13px"}},KUo={class:"input"},JUo={class:"selectModel f"},ejo={style:{width:"60%"}},tjo={style:{"font-size":"16px","font-weight":"900"}},njo={style:{width:"40%","margin-left":"15px"}},ijo={style:{"font-size":"16px","font-weight":"900"}},rjo={class:"generateButton",style:{"margin-top":"20px"}},ojo={class:"resultImages",style:{gap:"20px","flex-wrap":"wrap"}},sjo={class:"image f w"},ajo=["onClick","onMouseenter"],ljo={key:0,class:"generating-overlay f ac jc"},cjo={key:1,class:"failed-overlay f ac jc"},djo={style:{"text-align":"center"}},ujo={style:{"margin-top":"10px",color:"#d0021b","font-weight":"bold"}},hjo={class:"preview"},fjo={class:"selected"},gjo={class:"delImage"},mjo={class:"customUpload"},kjo={class:"uploadPlaceholder f ac jc",style:{width:"180px",height:"180px",border:"2px dashed #d9d9d9","border-radius":"20px",cursor:"pointer"}},vjo={class:"keep"},Ajo=Je({__name:"generateImage",props:Fc({formData:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["update"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=e,o=Pf(e,"modelValue");function s(){o.value=!1,u.value=!1,E(),f("update")}const a=fe([]),l=fe(!1),d=fe(!1),u=fe(!1),h=fe(""),g=fe(""),m=fe(!1);async function v(){var M;m.value=!0;try{const{data:B}=await mn.post("/assetsGenerate/polishAssetsPrompt",{projectId:(M=n.value)==null?void 0:M.id,assetsId:r.formData.id,type:r.formData.type??"props",name:r.formData.name,describe:r.formData.describe?r.formData.describe:$t("workbench.assets.noDescription")});window.$message.success($t("workbench.assets.gen.promptSuccess")),B.assetsId===r.formData.id&&(r.formData.prompt=B.prompt)}catch(B){window.$message.error(B.message??$t("workbench.assets.gen.promptFail"))}finally{m.value=!1}}const f=t,k=fe("1K");async function A(){var M;if(!r.formData.prompt){window.$message.error($t("workbench.assets.gen.fillPrompt"));return}if(!k.value){window.$message.error($t("workbench.assets.gen.pickResolution"));return}if(!h.value){window.$message.error($t("workbench.assets.gen.pickModel"));return}u.value=!0;try{let B="";if(a.value.length>0){const R=a.value[0].raw;R instanceof File&&(B=await new Promise(I=>{const F=new FileReader;F.onload=j=>{var H;const W=(H=j.target)==null?void 0:H.result;I(W)},F.readAsDataURL(R)}))}await mn.post("/assetsGenerate/generateAssets",{type:r.formData.type??"props",projectId:(M=n.value)==null?void 0:M.id,name:r.formData.name??$t("workbench.assets.gen.unnamed"),base64:B,prompt:r.formData.prompt,model:h.value,id:r.formData.id,resolution:k.value}),window.$message.success($t("workbench.assets.gen.assetGenSuccess")),await T()}catch(B){window.$message.error(B.message??$t("workbench.assets.gen.assetGenFail")),T()}finally{u.value=!1}}const p=fe([]);function b(M){var B;if(M.length>0){const R=((B=M[0])==null?void 0:B.raw)||M[0];if(R instanceof File){const I=new FileReader;I.onload=F=>{var W;const j=(W=F.target)==null?void 0:W.result;w.value.push({id:"",src:j,state:"已完成"}),window.$message.success($t("workbench.assets.gen.uploadOk")),p.value=[]},I.readAsDataURL(R)}}}const w=fe([]),O=fe(!1),y=fe();function C(M){O.value=!0,y.value=M}const _=fe(null),S=fe(null);pt(()=>o.value,M=>{M&&(a.value=[],g.value="",_.value=null,S.value=null,u.value=!1,T())});let L=null;function E(){L&&(clearTimeout(L),L=null)}async function T(){const{data:M}=await mn.post("/assets/getImage",{assetsId:r.formData.id}),B=M.tempAssets.map(F=>({id:F.id,src:F.filePath,state:F.state,selected:F.selected??!1}));w.value=B;const R=B.findIndex(F=>F.selected);R!==-1&&(_.value=R);const I=B.some(F=>F.state==="生成中");E(),I&&o.value&&(L=setTimeout(()=>T(),3e3))}function D(M){w.value[M].state==="已完成"&&(_.value=M,window.$message.success($t("workbench.assets.gen.imageSelected")))}function P(M,B){console.log("%c Line:343 🍩 id","background:#4fff4B",M);const R=fo.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.assets.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{try{mn.post("/assets/delImage",{id:M}),window.$message.success($t("workbench.assets.deleteSuccess")),w.value.splice(B,1),_.value===B?_.value=null:_.value!==null&&_.value>B&&_.value--,R.destroy()}catch{window.$message.error($t("workbench.assets.deleteFail")),R.destroy()}}})}async function Q(){var M;if(_.value!==null){const B=w.value[_.value],R=!B.id;await mn.post("/assets/saveAssets",{id:r.formData.id,base64:R?B.src:"",type:r.formData.type,prompt:r.formData.prompt,projectId:(M=n.value)==null?void 0:M.id,imageId:R?void 0:Number(B.id)}),window.$message.success($t("workbench.assets.gen.imageSaved")),o.value=!1,f("update")}}return(M,B)=>{const R=Sg,I=X4e,F=_n("i-magic"),j=c2,W=Wc,H=uL,$=pA,G=Si,q=km,re=fW,J=_n("i-close-one"),oe=Zh,se=_n("i-preview-open"),le=_n("i-check-one"),ue=_n("i-delete"),ee=_n("i-plus"),de=hL,z=gc;return xe(),Ge("div",WUo,[c(z,{visible:o.value,"onUpdate:visible":B[7]||(B[7]=Y=>o.value=Y),top:"4vh",width:"80vw",header:M.$t("workbench.assets.gen.header"),maskClosable:!1,footer:!1,onCloseBtnClick:s},{default:Oe(()=>[ge("div",VUo,[c(q,{bordered:!1,style:{width:"40%"}},{default:Oe(()=>[ge("div",zUo,[ge("div",HUo,[ge("span",$Uo,Pe(M.$t("workbench.assets.gen.uploadRef")),1),c(R,null,{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.optional")),1)]),_:1})]),ge("div",XUo,[c(I,{modelValue:Ae(a),"onUpdate:modelValue":B[0]||(B[0]=Y=>Fn(a)?a.value=Y:null),autoUpload:Ae(l),disabled:Ae(u),theme:"image",abridgeName:[10,8],draggable:"",action:"",accept:"image/*",showImageFileName:Ae(d)},null,8,["modelValue","autoUpload","disabled","showImageFileName"])])]),ge("div",GUo,[ge("div",YUo,[ge("span",ZUo,Pe(M.$t("workbench.assets.gen.promptLabel")),1),ge("div",{class:"ac",style:{cursor:"pointer"},onClick:Mr(v,["stop"])},[c(F,{theme:"outline",size:"18"}),ge("span",qUo,Pe(M.$t("workbench.assets.gen.smartGenerate")),1)])]),ge("div",KUo,[c(W,{loading:Ae(m),text:M.$t("workbench.assets.gen.generatingPrompt")},{default:Oe(()=>[c(j,{modelValue:r.formData.prompt,"onUpdate:modelValue":B[1]||(B[1]=Y=>r.formData.prompt=Y),placeholder:M.$t("workbench.assets.gen.promptPlaceholder"),autosize:{minRows:15,maxRows:15},disabled:Ae(u)},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["loading","text"])])]),ge("div",JUo,[ge("div",ejo,[ge("span",tjo,Pe(M.$t("workbench.assets.gen.selectModel")),1),c(T8,{modelValue:Ae(h),"onUpdate:modelValue":B[2]||(B[2]=Y=>Fn(h)?h.value=Y:null),type:"image"},null,8,["modelValue"])]),ge("div",njo,[ge("span",ijo,Pe(M.$t("workbench.assets.gen.selectResolution")),1),c($,{modelValue:Ae(k),"onUpdate:modelValue":B[3]||(B[3]=Y=>Fn(k)?k.value=Y:null)},{default:Oe(()=>[c(H,{key:"1K",label:"1K",value:"1K"}),c(H,{key:"2K",label:"2K",value:"2K"}),c(H,{key:"4K",label:"4K",value:"4K"})]),_:1},8,["modelValue"])])]),ge("div",rjo,[c(G,{theme:"primary",size:"large",block:"",loading:Ae(u),onClick:A},{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.generateBtn")),1)]),_:1},8,["loading"])])]),_:1}),c(re,{layout:"vertical",style:{height:"700px"}}),c(q,{title:M.$t("workbench.assets.gen.resultTitle"),bordered:!1,style:{width:"60%"}},{actions:Oe(()=>[Ae(w).length?(xe(),Ut(R,{key:0},{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.generatedCount",{count:Ae(w).length})),1)]),_:1})):nn("",!0)]),default:Oe(()=>[ge("div",ojo,[ge("div",sjo,[(xe(!0),Ge(sn,null,Bi(Ae(w),(Y,ie)=>(xe(),Ge("div",{key:ie,class:Eo(["resultImage",{"is-selected":Ae(_)===ie,"is-disabled":Y.state!=="已完成"}]),onClick:te=>Y.state==="已完成"?D(ie):null,onMouseenter:te=>S.value=ie,onMouseleave:B[4]||(B[4]=te=>S.value=null)},[Y.state==="生成中"?(xe(),Ge("div",ljo,[c(W,{text:M.$t("workbench.assets.gen.generatingLabel")},null,8,["text"])])):Y.state==="生成失败"&&!Y.src?(xe(),Ge("div",cjo,[ge("div",djo,[c(J,{theme:"filled",size:"40",fill:"#d0021b"}),ge("div",ujo,Pe(M.$t("workbench.assets.gen.genFailed")),1)])])):(xe(),Ut(oe,{key:2,src:Y.src,fit:"cover",style:{width:"100%",height:"100%",borderRadius:"20px"}},{loading:Oe(()=>[c(W)]),_:1},8,["src"])),uu(ge("div",hjo,[c(se,{theme:"outline",size:"25",fill:"#ffffff",onClick:Mr(te=>C(Y.src),["stop"])},null,8,["onClick"])],512),[[h1,Ae(S)===ie&&Y.state==="已完成"]]),uu(ge("div",fjo,[c(le,{theme:"filled",size:"25",fill:"#000"})],512),[[h1,Ae(_)===ie&&Y.state==="已完成"]]),uu(ge("div",gjo,[c(ue,{theme:"outline",size:"20",fill:"#d0021b",onClick:Mr(te=>P(Y.id,ie),["stop"])},null,8,["onClick"])],512),[[h1,Ae(S)===ie]])],42,ajo))),128)),ge("div",mjo,[c(I,{ref:"customUploadRef",action:"",modelValue:Ae(p),"onUpdate:modelValue":B[5]||(B[5]=Y=>Fn(p)?p.value=Y:null),disabled:Ae(u),autoUpload:!1,theme:"custom",accept:"image/*",max:1,onChange:b,showImageFileName:!1},{default:Oe(()=>[ge("div",kjo,[c(ee,{theme:"outline",size:"24",fill:"#4a4a4a"})])]),_:1},8,["modelValue","disabled"])])])]),ge("div",vjo,[c(G,{theme:"primary",size:"large",block:"",disabled:Ae(_)===null,onClick:Q},{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.confirmSelect")),1)]),_:1},8,["disabled"])])]),_:1},8,["title"])]),c(de,{modelValue:Ae(O),"onUpdate:modelValue":B[6]||(B[6]=Y=>Fn(O)?O.value=Y:null),images:[Ae(y)]},null,8,["modelValue","images"])]),_:1},8,["visible","header"])])}}}),pjo=oo(Ajo,[["__scopeId","data-v-4d2f2866"]]),bjo={class:"assets"},wjo={class:"data"},Ojo={class:"tabLabel"},yjo={class:"panelContent"},Cjo={class:"toolbar"},_jo={class:"data"},Sjo={class:"generatePrompt"},Ljo={class:"generateImage"},xjo={class:"f ac"},Ejo={class:"assetsList f w"},Tjo={class:"expandedContent"},Qjo={class:"previewCell"},Djo={key:0,class:"imageTrigger generatingImage"},Bjo={class:"generatingLabel"},Rjo=["onClick"],Ijo=["src","alt"],Mjo={key:1,class:"noImage"},Pjo={key:2,class:"imageHoverOverlay"},Fjo={class:"hoverText"},Njo={class:"promptCell"},Ujo={class:"previewCell"},jjo=["onClick"],Wjo=["src","alt"],Vjo={key:1,class:"noImage"},zjo={key:2,class:"imageHoverOverlay"},Hjo={class:"hoverText"},$jo={class:"promptCell"},Xjo={class:"previewCell"},Gjo={key:0,class:"imageTrigger generatingImage"},Yjo={class:"generatingLabel"},Zjo=["onClick"],qjo=["src","alt"],Kjo={key:1,class:"noImage"},Jjo={key:2,class:"imageHoverOverlay"},eWo={class:"hoverText"},tWo={class:"previewCell"},nWo=["onClick"],iWo=["src","alt"],rWo={class:"mediaHoverOverlay"},oWo={class:"hoverText"},sWo=["onClick"],aWo=["src"],lWo={class:"mediaHoverOverlay"},cWo={class:"hoverText"},dWo=["onClick"],uWo={class:"mediaHoverOverlay"},hWo={class:"hoverText"},fWo={key:3,class:"mediaTrigger noMedia"},gWo={class:"mediaPreviewDialog"},mWo=["src"],kWo={key:1,class:"audioWrapper"},vWo={class:"audioIcon"},AWo={class:"audioName"},pWo=["src"],bWo={class:"batch"},wWo=Je({__name:"index",props:{selectorMode:{type:Boolean,default:!1},allowedTypes:{},clipMediaTypes:{},multiple:{type:Boolean,default:!0}},setup(e,{expose:t}){var Se,Ie;const{otherSetting:n}=xs(ku()),r=e;An(()=>{O()}),Qa(()=>{et(),Me()});const{project:o}=xs(ph()),s=[{name:$t("workbench.assets.role"),value:"role",icon:"i-permissions"},{name:$t("workbench.assets.prop"),value:"tool",icon:"i-tool"},{name:$t("workbench.assets.scene"),value:"scene",icon:"i-landscape"},{name:$t("workbench.assets.clip"),value:"clip",icon:"i-editing"}],a=fe((Se=r.allowedTypes)!=null&&Se.length?s.filter(ze=>r.allowedTypes.includes(ze.value)):s),l=((Ie=a.value[0])==null?void 0:Ie.value)||"role",d=fe(l),u=fe(""),h={role:$t("workbench.assets.role"),tool:$t("workbench.assets.prop"),scene:$t("workbench.assets.scene"),clip:$t("workbench.assets.clip")},g=fe([]),m=fe([]),v=fe([]),f=fe(!1),k=ze=>{const Ze=ke(ze);return(Ze==null?void 0:Ze.promptState)==="生成中"||(Ze==null?void 0:Ze.state)==="生成中"},A=fe([]),p=fe({page:1,pageSize:10,total:0,showJumper:!0});function b(){p.value.page=1,w(d.value)}async function w(ze){var Ze,gt;try{f.value=!0;const{data:St}=await mn.post("/assets/getAssetsApi",{projectId:(Ze=o.value)==null?void 0:Ze.id,type:ze,name:u.value||void 0,page:p.value.page,limit:p.value.pageSize});return A.value=St.data||[],ze==="clip"&&((gt=r.clipMediaTypes)!=null&>.length)&&(A.value=A.value.filter(Pt=>{const dn=Y(Pt.src);return r.clipMediaTypes.includes(dn)})),p.value.total=St.total||0,A.value}catch(St){console.error("加载资产数据失败:",St),A.value=[],p.value.total=0}finally{f.value=!1}}async function O(){d.value==="role"||d.value==="tool"||d.value==="scene"||d.value,await w(d.value)}function y(ze){u.value="",g.value=[],m.value=[],v.value=[],p.value.page=1,O()}const C=fe({id:0,name:"",describe:"",remark:"",src:"",prompt:""}),_=fe(!1),{open:S,onChange:L,onCancel:E}=cOn({multiple:!1,reset:!0,accept:".png,.jpg,.jpeg,.mp3,.mp4"});async function T(ze){if(ze==="clip"){const Ze=await new Promise(Pt=>{S(),L(dn=>Pt(dn)),E(()=>Pt(null))});if(!(Ze!=null&&Ze.length))return;const gt=Ze[0],St=new FileReader;St.onload=async Pt=>{var on;const dn=St.result;await mn.post("/assets/uploadClip",{projectId:(on=o.value)==null?void 0:on.id,base64Data:dn,name:gt.name}),window.$message.success($t("workbench.assets.uploadSuccess")),w(d.value)},St.readAsDataURL(gt)}else _.value=!0,C.value={id:0,name:"",describe:"",remark:"",prompt:""}}const D=fe(!1),P=fe(""),Q=fe("1K"),M=fe("");function B(ze){M.value=ze===1?$t("workbench.assets.batchGenPrompt"):$t("workbench.assets.batchGenImage"),D.value=!0}function R(){M.value===$t("workbench.assets.batchGenPrompt")?F():M.value===$t("workbench.assets.batchGenImage")&&j()}function I(){const ze=[];return A.value.forEach(Ze=>{var gt;(gt=Ze.sonAssets)!=null&>.length&&Ze.sonAssets.forEach(St=>{m.value.includes(St.id)&&ze.push(St)})}),ze}async function F(){var St;const ze=A.value.filter(Pt=>g.value.includes(Pt.id)),Ze=I(),gt=[...ze,...Ze];if(gt.length===0){window.$message.warning($t("workbench.assets.selectAtLeastOne"));return}ze.forEach(Pt=>{const dn=A.value.find(on=>on.id===Pt.id);dn&&(dn.promptState="生成中")}),Ze.forEach(Pt=>{A.value.forEach(dn=>{var pn;const on=(pn=dn.sonAssets)==null?void 0:pn.find(ni=>ni.id===Pt.id);on&&(on.promptState="生成中")})}),g.value=g.value.filter(Pt=>!ze.some(dn=>dn.id===Pt)),m.value=m.value.filter(Pt=>!Ze.some(dn=>dn.id===Pt)),D.value=!1;try{await mn.post("/assetsGenerate/batchPolishAssetsPrompt",{projectId:(St=o.value)==null?void 0:St.id,concurrentCount:n.value.assetsBatchGenereateSize,items:gt.map(Pt=>({assetsId:Pt.id,type:Pt.type??"props",name:Pt.name,describe:Pt.describe?Pt.describe:$t("workbench.assets.noDescription")}))})}catch{window.$message.error($t("workbench.assets.promptGenFail"))}}async function j(){var on;const ze=A.value.filter(pn=>g.value.includes(pn.id)),Ze=I(),gt=[...ze,...Ze];if(gt.length===0){window.$message.warning($t("workbench.assets.selectAtLeastOne"));return}if(!P.value){window.$message.error($t("workbench.assets.selectModel"));return}if(!Q.value){window.$message.error($t("workbench.assets.selectResolution"));return}const St=gt.filter(pn=>pn.prompt?!0:(window.$message.warning($t("workbench.assets.noPromptForImage",{name:pn.name})),!1));if(St.length===0)return;const Pt=St.filter(pn=>g.value.includes(pn.id)),dn=St.filter(pn=>m.value.includes(pn.id));Pt.forEach(pn=>{const ni=A.value.find(Zn=>Zn.id===pn.id);ni&&(ni.state="生成中")}),dn.forEach(pn=>{A.value.forEach(ni=>{var Pi;const Zn=(Pi=ni.sonAssets)==null?void 0:Pi.find(rr=>rr.id===pn.id);Zn&&(Zn.state="生成中")})}),g.value=g.value.filter(pn=>!St.some(ni=>ni.id===pn)),m.value=m.value.filter(pn=>!St.some(ni=>ni.id===pn)),D.value=!1;try{await mn.post("/assetsGenerate/batchGenerateImageAssets",{projectId:(on=o.value)==null?void 0:on.id,model:P.value,resolution:Q.value,concurrentCount:n.value.assetsBatchGenereateSize,items:St.map(pn=>({id:pn.id,type:pn.type??"props",name:pn.name??$t("workbench.cornerScape.unnamed"),prompt:pn.prompt||pn.describe}))})}catch(pn){window.$message.error($t("workbench.assets.imageGenFail",{name:"",error:pn.message??""})),St.forEach(ni=>{const Zn=A.value.find(Pi=>Pi.id===ni.id);Zn?Zn.state="生成失败":A.value.forEach(Pi=>{var Hr;const rr=(Hr=Pi.sonAssets)==null?void 0:Hr.find(Bo=>Bo.id===ni.id);rr&&(rr.state="生成失败")})})}}function W(){const ze=A.value.filter(gt=>g.value.includes(gt.id));if(ze.length===0){window.$message.warning($t("workbench.assets.selectAtLeastOne"));return}const Ze=fo.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.assets.confirmBatchDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{await mn.post("/assets/batchDelete",{id:ze.map(gt=>gt.id)}),window.$message.success($t("workbench.assets.deleteSuccess")),w(d.value),Ze.destroy()}})}const H=r.multiple?"multiple":"single",$=[{colKey:"row-select",type:H,width:50,align:"center",fixed:"left",disabled:ze=>{var Ze;return k(((Ze=ze.row)==null?void 0:Ze.id)??ze.id)}},{colKey:"src",title:$t("workbench.assets.colPreview"),width:100,align:"center",cell:"previewWithLoading"},{colKey:"name",title:$t("workbench.assets.colName"),width:100,align:"left",ellipsis:!0},{colKey:"prompt",title:$t("workbench.assets.colPrompt"),width:200,align:"left",ellipsis:!0,cell:"prompt"},{colKey:"describe",title:$t("workbench.assets.colDescribe"),width:200,align:"left",ellipsis:!0},{colKey:"remark",title:$t("workbench.assets.colRemark"),minWidth:200,align:"left",ellipsis:!0},{colKey:"startTime",title:$t("workbench.assets.colCreateTime"),width:200,align:"center",cell:"startTime"},{colKey:"operation",title:$t("workbench.assets.colOperation"),width:280,align:"center",fixed:"right",cell:"operation"}],G=[{colKey:"row-select",type:H,width:50,align:"center",fixed:"left"},{colKey:"src",title:$t("workbench.assets.colPreview"),width:100,align:"center",cell:"previewWithLoading"},{colKey:"name",title:$t("workbench.assets.colName"),width:100,align:"left",ellipsis:!0},{colKey:"prompt",title:$t("workbench.assets.colPrompt"),width:200,align:"left",ellipsis:!0,cell:"prompt"},{colKey:"describe",title:$t("workbench.assets.colDescribe"),width:100,align:"left",ellipsis:!0},{colKey:"remark",title:$t("workbench.assets.colRemark"),minWidth:150,align:"left",ellipsis:!0},{colKey:"operation",title:$t("workbench.assets.colOperation"),width:280,align:"center",fixed:"right",cell:"operation"}],q=[{colKey:"row-select",type:"multiple",width:50,align:"center",fixed:"left"},{colKey:"src",title:$t("workbench.assets.colPreview"),width:100,align:"center",cell:"preview"},{colKey:"name",title:$t("workbench.assets.colName"),width:200,align:"left",ellipsis:!0},{colKey:"describe",title:$t("workbench.assets.colDescribe"),width:200,align:"left",ellipsis:!0},{colKey:"remark",title:$t("workbench.assets.colRemark"),minWidth:200,align:"left",ellipsis:!0},{colKey:"startTime",title:$t("workbench.assets.colCreateTime"),width:200,align:"center",cell:"startTime"},{colKey:"operation",title:$t("workbench.assets.colOperation"),width:180,align:"center",fixed:"right",cell:"operation"}];function re(ze){const Ze=ze.filter(dn=>!k(dn)),gt=g.value;r.multiple?g.value=Ze:g.value=Ze.length>0?[Ze[Ze.length-1]]:[];const St=g.value.filter(dn=>!gt.includes(dn)),Pt=gt.filter(dn=>!g.value.includes(dn));St.forEach(dn=>{var pn;const on=A.value.find(ni=>ni.id===dn);if((pn=on==null?void 0:on.sonAssets)!=null&&pn.length){const ni=on.sonAssets.map(Pi=>Pi.id),Zn=new Set([...m.value,...ni]);m.value=Array.from(Zn)}}),Pt.forEach(dn=>{var pn;const on=A.value.find(ni=>ni.id===dn);if((pn=on==null?void 0:on.sonAssets)!=null&&pn.length){const ni=new Set(on.sonAssets.map(Zn=>Zn.id));m.value=m.value.filter(Zn=>!ni.has(Zn))}})}function J(ze){r.multiple?m.value=ze:m.value=ze.length>0?[ze[ze.length-1]]:[]}function oe(ze){ze.length>3&&(ze=ze.slice(-3)),v.value=ze}function se(ze){p.value.page=ze.current,p.value.pageSize=ze.pageSize,O()}const le=fe(!1),ue=fe({id:void 0,name:"",describe:"",type:"",prompt:"",src:""});function ee(ze){ue.value={id:ze.id,name:ze.name,describe:ze.describe,type:ze.type,prompt:ze.prompt,src:ze.src},le.value=!0}function de(ze){C.value={...ze},_.value=!0}function z(ze){const Ze=fo.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.assets.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{try{await mn.post("/assets/delAssets",{id:ze.id}),window.$message.success($t("workbench.assets.deleteSuccess")),w(d.value),Ze.destroy()}catch(gt){console.error("删除资产失败:",gt),window.$message.error($t("workbench.assets.deleteFail")),Ze.destroy()}}})}t({selectedRowKeys:g,selectedSubRowKeys:m,tableData:A});function Y(ze){var gt;if(!ze)return"unknown";const Ze=((gt=ze.split("?")[0].split(".").pop())==null?void 0:gt.toLowerCase())??"";return["png","jpg","jpeg","gif","webp","bmp","svg"].includes(Ze)?"image":["mp4","webm","ogg","mov","avi","mkv"].includes(Ze)?"video":["mp3","wav","ogg","aac","flac","m4a"].includes(Ze)?"audio":"unknown"}const ie=fe(!1),te=fe(""),Z=fe("unknown"),he=fe("");function pe(ze,Ze){ze&&(te.value=ze,Z.value=Y(ze),he.value=Ze,ie.value=!0)}function Ce(){ie.value=!1,te.value=""}function Qe(){const ze=[];return A.value.forEach(Ze=>{var gt;ze.push(Ze),(gt=Ze.sonAssets)!=null&>.length&&ze.push(...Ze.sonAssets)}),ze}function ke(ze){var Ze;for(const gt of A.value){if(gt.id===ze)return gt;const St=(Ze=gt.sonAssets)==null?void 0:Ze.find(Pt=>Pt.id===ze);if(St)return St}}const me=X(()=>Qe().filter(ze=>ze.promptState=="生成中")),_e=X(()=>Qe().filter(ze=>ze.state==="生成中"));let Te=null,De=null;async function Ye(){if(me.value.length===0)return;const ze=me.value.map(Ze=>Ze.id);try{const{data:Ze}=await mn.post("/assets/pollingPromptAssets",{ids:ze});Array.isArray(Ze)&&Ze.length&&(Ze.forEach(gt=>{const St=ke(gt.id);St&&(St.promptState=gt.promptState,gt.prompt!==void 0&&(St.prompt=gt.prompt))}),w(d.value))}catch(Ze){console.error("轮询提示词状态失败:",Ze)}}async function ot(){if(_e.value.length===0)return;const ze=_e.value.map(Ze=>Ze.id);try{const{data:Ze}=await mn.post("/assets/pollingImageAssets",{ids:ze});Array.isArray(Ze)&&Ze.length&&(Ze.forEach(gt=>{const St=ke(gt.id);St&&(St.state=gt.state,gt.filePath!==void 0&&(St.filePath=gt.filePath),gt.src!==void 0&&(St.src=gt.src),!gt.src&>.filePath&>.state!=="生成中"&&(St.src=gt.filePath))}),w(d.value))}catch(Ze){console.error("轮询图片生成状态失败:",Ze)}}function We(){Te||(Te=setInterval(async()=>{if(me.value.length===0){et();return}await Ye()},3e3))}function et(){Te&&(clearInterval(Te),Te=null)}function st(){De||(De=setInterval(async()=>{if(_e.value.length===0){Me();return}await ot()},3e3))}function Me(){De&&(clearInterval(De),De=null)}return pt(me,ze=>{ze.length>0?We():et()}),pt(_e,ze=>{ze.length>0?st():Me()}),(ze,Ze)=>{const gt=dL,St=Si,Pt=y1,dn=Ev,on=Wu,pn=Wc,ni=hL,Zn=_n("i-magic"),Pi=jne,rr=Mne,Hr=Ine,Bo=gc,lo=p2,Fr=uL,is=pA,yi=A2;return xe(),Ge("div",bjo,[ge("div",wjo,[c(Hr,{modelValue:Ae(d),"onUpdate:modelValue":Ze[3]||(Ze[3]=Gt=>Fn(d)?d.value=Gt:null),onChange:y},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(a),(Gt,gi)=>(xe(),Ut(rr,{key:gi,value:Gt.value},{label:Oe(()=>[ge("div",Ojo,[(xe(),Ut(Bd(Gt.icon),{theme:"outline",size:"20"})),ge("span",null,Pe(Gt.name),1)])]),default:Oe(()=>[ge("div",yjo,[ge("div",Cjo,[c(dn,null,{default:Oe(()=>[c(St,{theme:"primary",onClick:ri=>T(Gt.value)},{icon:Oe(()=>[c(gt,{name:"add"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.addPrefix"))+Pe(Gt.name),1)]),_:2},1032,["onClick"]),c(Pt,{placement:"bottom"},{content:Oe(()=>[ge("div",_jo,[ge("div",Sjo,[ge("span",{onClick:Ze[0]||(Ze[0]=ri=>B(1))},Pe(ze.$t("workbench.assets.generatePrompt")),1)]),ge("div",Ljo,[ge("span",{onClick:Ze[1]||(Ze[1]=ri=>B(2))},Pe(ze.$t("workbench.assets.generateImage")),1)])])]),default:Oe(()=>[Ae(d)!="clip"?(xe(),Ut(St,{key:0,theme:"primary"},{icon:Oe(()=>[c(gt,{name:"indent-left"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.batchGenerate")),1)]),_:1})):nn("",!0)]),_:1}),c(St,{theme:"default",variant:"outline",onClick:W},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.batchDelete")),1)]),_:1})]),_:2},1024),ge("div",xjo,[c(on,{modelValue:Ae(u),"onUpdate:modelValue":Ze[2]||(Ze[2]=ri=>Fn(u)?u.value=ri:null),placeholder:ze.$t("workbench.assets.searchPlaceholder"),clearable:"",style:{width:"260px"}},null,8,["modelValue","placeholder"]),c(St,{style:{"margin-left":"5px"},onClick:b},{icon:Oe(()=>[c(gt,{name:"search"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.search")),1)]),_:1})])]),ge("div",Ejo,[Ae(d)!=="clip"?(xe(),Ut(Pi,{key:0,columns:$,data:Ae(A),"selected-row-keys":Ae(g),"expanded-row-keys":Ae(v),"row-key":"id",hover:"",height:"calc(100vh - 300px)",stripe:"",size:"small",pagination:Ae(p),loading:Ae(f),"lazy-load":"","table-layout":"fixed","select-on-row-click":!1,onSelectChange:re,onExpandChange:oe,onPageChange:se},{expandedRow:Oe(({row:ri})=>[ge("div",Tjo,[c(Pi,{columns:G,data:ri.sonAssets||[],"selected-row-keys":Ae(m),"row-key":"id",hover:"",size:"small","table-layout":"fixed","select-on-row-click":!1,onSelectChange:J},{previewWithLoading:Oe(({row:tr})=>[ge("div",Qjo,[tr.state==="生成中"?(xe(),Ge("div",Djo,[c(pn,{size:"small"}),ge("span",Bjo,Pe(ze.$t("workbench.assets.generating")),1)])):(xe(),Ut(ni,{key:1,images:[tr.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:ht})=>[ge("div",{class:"imageTrigger",onClick:At=>tr.src&&ht()},[tr.src?(xe(),Ge("img",{key:0,src:tr.src,alt:tr.name,class:"previewImage"},null,8,Ijo)):(xe(),Ge("div",Mjo,[c(gt,{name:"image",size:"24px"})])),tr.src?(xe(),Ge("div",Pjo,[c(gt,{name:"browse",size:"20px"}),ge("span",Fjo,Pe(ze.$t("workbench.assets.preview")),1)])):nn("",!0)],8,Rjo)]),_:2},1032,["images"]))])]),prompt:Oe(({row:tr})=>[ge("div",Njo,[tr.promptState==="生成中"?(xe(),Ut(pn,{key:0,size:"small",style:{"margin-right":"4px"}})):nn("",!0),ge("span",{class:Eo({"generating-text":tr.promptState==="生成中"})},Pe(tr.prompt),3)])]),operation:Oe(({row:tr})=>[c(dn,{size:0},{default:Oe(()=>[c(St,{theme:"primary",variant:"text",disabled:k(tr.id),onClick:ht=>ee(tr)},{icon:Oe(()=>[c(Zn,{size:18})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.generate")),1)]),_:1},8,["disabled","onClick"]),c(St,{theme:"primary",variant:"text",onClick:ht=>de(tr)},{icon:Oe(()=>[c(gt,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.edit")),1)]),_:1},8,["onClick"]),c(St,{theme:"danger",variant:"text",disabled:k(tr.id),onClick:ht=>z(tr)},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["data","selected-row-keys"])])]),preview:Oe(({row:ri})=>[ge("div",Ujo,[c(ni,{images:[ri.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:tr})=>[ge("div",{class:"imageTrigger",onClick:ht=>ri.src&&tr()},[ri.src?(xe(),Ge("img",{key:0,src:ri.src,alt:ri.name,class:"previewImage"},null,8,Wjo)):(xe(),Ge("div",Vjo,[c(gt,{name:"image",size:"24px"})])),ri.src?(xe(),Ge("div",zjo,[c(gt,{name:"browse",size:"20px"}),ge("span",Hjo,Pe(ze.$t("workbench.assets.preview")),1)])):nn("",!0)],8,jjo)]),_:2},1032,["images"])])]),prompt:Oe(({row:ri})=>[ge("div",$jo,[ri.promptState==="生成中"?(xe(),Ut(pn,{key:0,size:"small",style:{"margin-right":"4px"}})):nn("",!0),ge("span",{class:Eo({"generating-text":ri.promptState==="生成中"})},Pe(ri.prompt),3)])]),previewWithLoading:Oe(({row:ri})=>[ge("div",Xjo,[ri.state==="生成中"?(xe(),Ge("div",Gjo,[c(pn,{size:"small"}),ge("span",Yjo,Pe(ze.$t("workbench.assets.generating")),1)])):(xe(),Ut(ni,{key:1,images:[ri.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:tr})=>[ge("div",{class:"imageTrigger",onClick:ht=>ri.src&&tr()},[ri.src?(xe(),Ge("img",{key:0,src:ri.src,alt:ri.name,class:"previewImage"},null,8,qjo)):(xe(),Ge("div",Kjo,[c(gt,{name:"image",size:"24px"})])),ri.src?(xe(),Ge("div",Jjo,[c(gt,{name:"browse",size:"20px"}),ge("span",eWo,Pe(ze.$t("workbench.assets.preview")),1)])):nn("",!0)],8,Zjo)]),_:2},1032,["images"]))])]),startTime:Oe(({row:ri})=>[ge("span",null,Pe(Ae(JB)(ri.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),operation:Oe(({row:ri})=>[c(dn,{size:0},{default:Oe(()=>[c(St,{theme:"primary",variant:"text",disabled:k(ri.id),onClick:tr=>ee(ri)},{icon:Oe(()=>[c(Zn,{size:18})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.generate")),1)]),_:1},8,["disabled","onClick"]),c(St,{theme:"primary",variant:"text",onClick:tr=>de(ri)},{icon:Oe(()=>[c(gt,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.edit")),1)]),_:1},8,["onClick"]),c(St,{theme:"danger",variant:"text",disabled:k(ri.id),onClick:tr=>z(ri)},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["data","selected-row-keys","expanded-row-keys","pagination","loading"])):nn("",!0),Ae(d)=="clip"?(xe(),Ut(Pi,{key:1,columns:q,data:Ae(A),"selected-row-keys":Ae(g),"expanded-row-keys":Ae(v),"row-key":"id",hover:"",stripe:"",size:"small",pagination:Ae(p),loading:Ae(f),"lazy-load":"","table-layout":"fixed",onSelectChange:re,onExpandChange:oe,onPageChange:se},{preview:Oe(({row:ri})=>[ge("div",tWo,[Y(ri.src)==="image"?(xe(),Ut(ni,{key:0,images:[ri.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:tr})=>[ge("div",{class:"mediaTrigger",onClick:ht=>ri.src&&tr()},[ge("img",{src:ri.src,alt:ri.name},null,8,iWo),ge("div",rWo,[c(gt,{name:"browse",size:"20px"}),ge("span",oWo,Pe(ze.$t("workbench.assets.preview")),1)])],8,nWo)]),_:2},1032,["images"])):Y(ri.src)==="video"?(xe(),Ge("div",{key:1,class:"mediaTrigger videoThumb",onClick:tr=>pe(ri.src,ri.name)},[ge("video",{src:ri.src,class:"thumbVideo"},null,8,aWo),ge("div",lWo,[c(gt,{name:"play-circle",size:"24px"}),ge("span",cWo,Pe(ze.$t("workbench.assets.play")),1)])],8,sWo)):Y(ri.src)==="audio"?(xe(),Ge("div",{key:2,class:"mediaTrigger audioThumb",onClick:tr=>pe(ri.src,ri.name)},[c(gt,{name:"music",size:"28px"}),ge("div",uWo,[c(gt,{name:"play-circle",size:"24px"}),ge("span",hWo,Pe(ze.$t("workbench.assets.play")),1)])],8,dWo)):(xe(),Ge("div",fWo,[c(gt,{name:"image",size:"24px"})]))])]),startTime:Oe(({row:ri})=>[ge("span",null,Pe(Ae(JB)(ri.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),operation:Oe(({row:ri})=>[c(dn,{size:0},{default:Oe(()=>[c(St,{theme:"primary",variant:"text",onClick:tr=>de(ri)},{icon:Oe(()=>[c(gt,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.edit")),1)]),_:1},8,["onClick"]),c(St,{theme:"danger",variant:"text",onClick:tr=>z(ri)},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.delete")),1)]),_:1},8,["onClick"])]),_:2},1024)]),_:1},8,["data","selected-row-keys","expanded-row-keys","pagination","loading"])):nn("",!0)])])]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),c(jUo,{modelValue:Ae(_),"onUpdate:modelValue":Ze[4]||(Ze[4]=Gt=>Fn(_)?_.value=Gt:null),type:Ae(d),title:h[Ae(d)],formData:Ae(C),onGetFilteredData:Ze[5]||(Ze[5]=Gt=>w(Ae(d)))},null,8,["modelValue","type","title","formData"]),c(pjo,{modelValue:Ae(le),"onUpdate:modelValue":Ze[6]||(Ze[6]=Gt=>Fn(le)?le.value=Gt:null),onUpdate:O,formData:Ae(ue)},null,8,["modelValue","formData"]),c(Bo,{visible:Ae(ie),"onUpdate:visible":Ze[7]||(Ze[7]=Gt=>Fn(ie)?ie.value=Gt:null),header:Ae(he)||ze.$t("workbench.assets.mediaPreview"),footer:!1,width:"600px",placement:"center",destroyOnClose:"",onClose:Ce},{default:Oe(()=>[ge("div",gWo,[Ae(Z)==="video"?(xe(),Ge("video",{key:0,src:Ae(te),controls:"",autoplay:"",class:"mediaPlayer videoPlayer"},null,8,mWo)):Ae(Z)==="audio"?(xe(),Ge("div",kWo,[ge("div",vWo,[c(gt,{name:"music",size:"64px"})]),ge("p",AWo,Pe(Ae(he)),1),ge("audio",{src:Ae(te),controls:"",autoplay:"",class:"mediaPlayer audioPlayer"},null,8,pWo)])):nn("",!0)])]),_:1},8,["visible","header"]),c(Bo,{visible:Ae(D),"onUpdate:visible":Ze[10]||(Ze[10]=Gt=>Fn(D)?D.value=Gt:null),header:Ae(M),width:"600px",top:"10vh",placement:"center",destroyOnClose:"",onConfirm:R,onClose:Ze[11]||(Ze[11]=Gt=>D.value=!1)},{default:Oe(()=>[ge("div",bWo,[ge("span",null,Pe(ze.$t("workbench.assets.confirmBatch",{type:Ae(M)})),1),c(yi,{labelAlign:"top"},{default:Oe(()=>[Ae(M)===ze.$t("workbench.assets.batchGenImage")?(xe(),Ut(lo,{key:0,label:ze.$t("workbench.assets.model"),name:"selectValue"},{default:Oe(()=>[c(T8,{modelValue:Ae(P),"onUpdate:modelValue":Ze[8]||(Ze[8]=Gt=>Fn(P)?P.value=Gt:null),type:"image"},null,8,["modelValue"])]),_:1},8,["label"])):nn("",!0),Ae(M)===ze.$t("workbench.assets.batchGenImage")?(xe(),Ut(lo,{key:1,label:ze.$t("workbench.assets.resolution"),name:"resolution"},{default:Oe(()=>[c(is,{modelValue:Ae(Q),"onUpdate:modelValue":Ze[9]||(Ze[9]=Gt=>Fn(Q)?Q.value=Gt:null),placeholder:ze.$t("workbench.assets.resolutionPh")},{default:Oe(()=>[c(Fr,{key:"1K",label:"1K",value:"1K"}),c(Fr,{key:"2K",label:"2K",value:"2K"}),c(Fr,{key:"4K",label:"4K",value:"4K"})]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"])):nn("",!0)]),_:1})])]),_:1},8,["visible","header"])])}}}),SUn=oo(wWo,[["__scopeId","data-v-afc25f42"]]),OWo=Object.freeze(Object.defineProperty({__proto__:null,default:SUn},Symbol.toStringTag,{value:"Module"}));function jV(e={}){const{types:t,clipMediaTypes:n,multiple:r=!0,title:o=window.$t("common.selectAssets")}=e;return new Promise(s=>{const a=document.createElement("div");document.body.appendChild(a);const l=fe(!1),d=fe();let u=!1;const h=()=>{p8(null,a),a.remove()},g=v=>{u||(u=!0,l.value=!1,m(),s(v))},m=()=>{var k,A;const v=xn(gc,{visible:l.value,header:o,width:"80%",top:"5vh",destroyOnClose:!0,confirmBtn:window.$t("common.confirm"),cancelBtn:window.$t("common.cancel"),onConfirm:()=>{var C,_,S;const p=((C=d.value)==null?void 0:C.selectedRowKeys)||[],b=((_=d.value)==null?void 0:_.selectedSubRowKeys)||[],w=((S=d.value)==null?void 0:S.tableData)||[],O=w.filter(L=>p.includes(L.id)),y=[];w.forEach(L=>{var E;(E=L.sonAssets)==null||E.forEach(T=>{b.includes(T.id)&&y.push(T)})}),g([...O,...y])},onClose:()=>g([]),onCancel:()=>g([]),onClosed:()=>h()},{default:()=>xn("div",{style:"height: 72vh; overflow: auto;"},[xn(SUn,{ref:d,selectorMode:!0,allowedTypes:t,clipMediaTypes:n,multiple:r})])}),f=(A=(k=document.querySelector("#app"))==null?void 0:k.__vue_app__)==null?void 0:A._context;f&&(v.appContext=f),p8(v,a)};m(),ai(()=>{l.value=!0,m()})})}const yWo={class:"details"},CWo={class:"assets-section"},_Wo={class:"assets-header"},SWo={key:0,class:"assets-list"},LWo={key:1,class:"assets-empty"},xWo=Je({__name:"editScript",props:Fc({item:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["searchScripts"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=fe([]);pt(()=>{var u;return(u=r.item)==null?void 0:u.relatedAssets},u=>{o.value=(u==null?void 0:u.map(h=>({id:h.id,name:h.name})))??[]},{immediate:!0});async function s(){const u=await jV({title:$t("workbench.script.edit.msg.selectAssetsTitle"),types:["role","tool","scene"]});if(u.length){const h=new Set(o.value.map(g=>g.id));for(const g of u)h.has(g.id)||o.value.push({id:g.id,name:g.name})}}function a(u){o.value=o.value.filter(h=>h.id!==u)}const l=t;async function d(){try{await mn.post("/script/updateScript",{id:r.item.id,name:r.item.name,content:r.item.content,assets:o.value.map(u=>u.id)}),window.$message.success($t("workbench.script.edit.msg.updateSuccess"))}catch{window.$message.error($t("workbench.script.edit.msg.updateFailed"))}finally{l("searchScripts")}n.value=!1}return(u,h)=>{const g=Zbi,m=Wu,v=p2,f=c2,k=_n("i-plus"),A=Si,p=Sg,b=A2,w=gc;return xe(),Ge("div",yWo,[c(w,{visible:n.value,"onUpdate:visible":h[2]||(h[2]=O=>n.value=O),width:"60vw",top:"5vh",onConfirm:d},{header:Oe(()=>[c(g,{level:"h4",style:{margin:"0"}},{default:Oe(()=>[Bt(Pe(u.$t("workbench.script.edit.title")),1)]),_:1})]),default:Oe(()=>[c(b,{data:r.item,"label-align":"top",class:"detailsForm"},{default:Oe(()=>[c(v,{label:u.$t("workbench.script.edit.scriptName"),name:"name"},{default:Oe(()=>[c(m,{modelValue:r.item.name,"onUpdate:modelValue":h[0]||(h[0]=O=>r.item.name=O),maxlength:10,placeholder:u.$t("workbench.script.edit.scriptNamePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:u.$t("workbench.script.edit.scriptContent"),name:"content"},{default:Oe(()=>[c(f,{modelValue:r.item.content,"onUpdate:modelValue":h[1]||(h[1]=O=>r.item.content=O),placeholder:u.$t("workbench.script.edit.scriptContentPh"),autosize:{minRows:20,maxRows:20}},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:u.$t("workbench.script.edit.relatedAssets"),name:"assets"},{default:Oe(()=>[ge("div",CWo,[ge("div",_Wo,[c(A,{size:"small",theme:"primary",variant:"outline",onClick:s},{icon:Oe(()=>[c(k)]),default:Oe(()=>[Bt(" "+Pe(u.$t("workbench.script.edit.selectAssets")),1)]),_:1})]),Ae(o).length?(xe(),Ge("div",SWo,[(xe(!0),Ge(sn,null,Bi(Ae(o),O=>(xe(),Ut(p,{key:O.id,closable:"",variant:"light-outline",onClose:y=>a(O.id)},{default:Oe(()=>[Bt(Pe(O.name),1)]),_:2},1032,["onClose"]))),128))])):(xe(),Ge("div",LWo,Pe(u.$t("workbench.script.edit.noAssets")),1))])]),_:1},8,["label"])]),_:1},8,["data"])]),_:1},8,["visible"])])}}}),EWo=oo(xWo,[["__scopeId","data-v-2dc13535"]]),TWo={class:"addScript"},QWo={class:"data"},DWo={class:"section name"},BWo={class:"section-label"},RWo={class:"section upload"},IWo={class:"section-label"},MWo={class:"dragIcon"},PWo={class:"upload-text"},FWo={class:"upload-hint"},NWo={class:"section content"},UWo={class:"section-label"},jWo={class:"section assets-section"},WWo={class:"assets-header"},VWo={class:"section-label"},zWo={key:0,class:"assets-list"},HWo={key:1,class:"assets-empty"},$Wo={class:"dialog-footer"},XWo=Je({__name:"addScript",props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:Fc(["searchScripts"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=Pf(e,"modelValue"),o=fe(null),s=fe(""),a=fe([]),l=fe(""),d=fe(!1);function u(){var y;(y=o.value)==null||y.triggerUpload()}async function h(y){const C=await y.arrayBuffer();return y.type==="text/plain"?new TextDecoder().decode(C):(await _p.extractRawText({arrayBuffer:C})).value}async function g(y){const C=y.raw;if(!C)return window.$message.error($t("workbench.script.add.msg.fileReadFailed")),!1;const _=["text/plain","application/vnd.openxmlformats-officedocument.wordprocessingml.document"];if(C.type==="application/msword")return window.$message.warning($t("workbench.script.add.msg.docNotSupported")),a.value=[],!1;if(!_.includes(C.type))return window.$message.error($t("workbench.script.add.msg.unsupportedType")),a.value=[],!1;if(C.size>10*1024*1024)return window.$message.error($t("workbench.script.add.msg.fileTooLarge")),a.value=[],!1;const S=Wh({fullscreen:!0,attach:"body",text:$t("workbench.script.add.msg.parsing")});try{s.value=await h(C),l.value=s.value}catch(L){console.error("文件解析失败:",L),window.$message.error($t("workbench.script.add.msg.parseFailed")),a.value=[]}finally{S.hide()}return!1}async function m(y){var _;const C=(_=y.dataTransfer)==null?void 0:_.files;if(C&&C.length>0){a.value=[];const S=C[0];await g({raw:S})}}const v=fe([]);async function f(){const y=await jV({title:$t("workbench.script.add.msg.selectAssetsTitle"),types:["role","tool","scene"]});if(y.length){const C=new Set(v.value.map(_=>_.id));for(const _ of y)C.has(_.id)||v.value.push({id:_.id,name:_.name})}}function k(y){v.value=v.value.filter(C=>C.id!==y)}function A(){r.value=!1,l.value="",s.value="",a.value=[],v.value=[]}function p(){l.value="",s.value="",a.value=[],v.value=[],r.value=!1}const b=t;async function w(){var y;if(!l.value.trim()){window.$message.warning($t("workbench.script.add.msg.enterContent"));return}if(!O.value.trim()){window.$message.warning($t("workbench.script.add.msg.enterName"));return}d.value=!0;try{await mn.post("/script/addScript",{name:O.value,content:l.value,projectId:(y=n.value)==null?void 0:y.id,assets:v.value.map(C=>C.id)}),window.$message.success($t("workbench.script.add.msg.addSuccess")),p(),b("searchScripts")}catch(C){console.error("添加剧本失败:",C),window.$message.error(C.message??$t("workbench.script.add.msg.addFailed"))}finally{d.value=!1}}const O=fe("");return(y,C)=>{const _=Wu,S=X4e,L=_n("i-upload-one"),E=c2,T=_n("i-plus"),D=Si,P=Sg,Q=gc;return xe(),Ge("div",TWo,[c(Q,{visible:r.value,"onUpdate:visible":C[4]||(C[4]=M=>r.value=M),width:"60vw",top:"5vh",header:y.$t("workbench.script.add.title"),closable:!1,maskClosable:!1},{footer:Oe(()=>[ge("div",$Wo,[c(D,{theme:"default",onClick:A},{default:Oe(()=>[Bt(Pe(y.$t("workbench.script.add.cancel")),1)]),_:1}),c(D,{theme:"primary",loading:Ae(d),onClick:w},{default:Oe(()=>[Bt(Pe(y.$t("workbench.script.add.confirm")),1)]),_:1},8,["loading"])])]),default:Oe(()=>[ge("div",QWo,[ge("div",DWo,[ge("span",BWo,Pe(y.$t("workbench.script.add.scriptName")),1),c(_,{modelValue:Ae(O),"onUpdate:modelValue":C[0]||(C[0]=M=>Fn(O)?O.value=M:null),placeholder:y.$t("workbench.script.add.scriptNamePh")},null,8,["modelValue","placeholder"])]),ge("div",RWo,[ge("span",IWo,Pe(y.$t("workbench.script.add.uploadFile")),1),ge("div",{class:"upload-area",onClick:u,onDragover:C[2]||(C[2]=Mr(()=>{},["prevent"])),onDrop:Mr(m,["prevent"])},[c(S,{ref_key:"uploadRef",ref:o,modelValue:Ae(a),"onUpdate:modelValue":C[1]||(C[1]=M=>Fn(a)?a.value=M:null),theme:"file",multiple:!1,max:1,"before-upload":g,style:{display:"none"}},null,8,["modelValue"]),ge("div",MWo,[c(L,{theme:"outline",size:"32",fill:"var(--td-brand-color)"})]),ge("p",PWo,Pe(y.$t("workbench.script.add.dragUpload")),1),ge("p",FWo,Pe(y.$t("workbench.script.add.uploadHint")),1)],32)]),ge("div",NWo,[ge("span",UWo,Pe(y.$t("workbench.script.add.scriptContent")),1),c(E,{modelValue:Ae(l),"onUpdate:modelValue":C[3]||(C[3]=M=>Fn(l)?l.value=M:null),placeholder:y.$t("workbench.script.add.scriptContentPh"),name:"description",autosize:{minRows:12,maxRows:12}},null,8,["modelValue","placeholder"])]),ge("div",jWo,[ge("div",WWo,[ge("span",VWo,Pe(y.$t("workbench.script.add.relatedAssets")),1),c(D,{size:"small",theme:"primary",variant:"outline",onClick:f},{icon:Oe(()=>[c(T)]),default:Oe(()=>[Bt(" "+Pe(y.$t("workbench.script.add.selectAssets")),1)]),_:1})]),Ae(v).length?(xe(),Ge("div",zWo,[(xe(!0),Ge(sn,null,Bi(Ae(v),M=>(xe(),Ut(P,{key:M.id,closable:"",variant:"light-outline",onClose:B=>k(M.id)},{default:Oe(()=>[Bt(Pe(M.name),1)]),_:2},1032,["onClose"]))),128))])):(xe(),Ge("div",HWo,Pe(y.$t("workbench.script.add.noAssets")),1))])])]),_:1},8,["visible","header"])])}}}),GWo=oo(XWo,[["__scopeId","data-v-b9b0384d"]]),YWo={class:"script"},ZWo={class:"actionBar"},qWo={class:"actionBar-left f ac"},KWo={key:0,class:"actionBar-right f ac"},JWo={class:"contentArea"},eVo={key:0,class:"emptyState"},tVo={key:1,class:"scriptsList f w"},nVo=["onClick"],iVo={class:"cardHeader"},rVo={class:"cardTitle"},oVo={class:"content"},sVo={class:"del"},aVo=Je({__name:"index",setup(e){const{otherSetting:t}=xs(ku()),{project:n}=xs(ph()),r=fe([]),o=fe(""),s=fe(!1),a=fe([]),l=fe(!1),d=X(()=>r.value.length>0&&a.value.length===r.value.length);function u(E){const T=a.value.indexOf(E);T===-1?a.value.push(E):a.value.splice(T,1)}function h(E){E?a.value=r.value.map(T=>T.id):a.value=[]}async function g(){var E;try{const T=await mn.post("/script/getScrptApi",{projectId:(E=n.value)==null?void 0:E.id,name:o.value});r.value=T.data}catch(T){console.error("搜索剧本失败:",T),window.$message.error($t("workbench.script.msg.searchFailed"))}}An(g);function m(){g()}function v(){s.value=!0}async function f(){if(!a.value.length){window.$message.warning($t("workbench.script.msg.selectsExport"));return}try{const E=await mn.post("/script/exportScript",{id:a.value},{responseType:"blob"}),T=new Blob([E],{type:"application/zip"}),D=URL.createObjectURL(T),P=document.createElement("a");P.href=D,P.download=`script_${new Date().toISOString().slice(0,10)}.zip`,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(D),window.$message.success($t("workbench.script.msg.exportSuccess"))}catch(E){console.error("导出剧本失败:",E),window.$message.error(E.message??$t("workbench.script.msg.exportFailed"))}}const k=fe({id:0,name:"",content:""}),A=fe(!1);function p(E){k.value={...E},A.value=!0}async function b(E){const T=fo.confirm({header:$t("workbench.script.msg.deleteHeader"),body:$t("workbench.script.msg.deleteBody"),confirmBtn:$t("workbench.script.msg.deleteConfirm"),cancelBtn:$t("workbench.script.msg.cancel"),theme:"warning",onConfirm:async()=>{try{await mn.post("/script/delScript",{id:[E]}),window.$message.success($t("workbench.script.msg.deleteSuccess")),g(),T.destroy()}catch(D){console.error("删除剧本失败:",D),window.$message.error($t("workbench.script.msg.deleteFailed")),T.destroy()}},onClose:()=>{T.destroy()}})}async function w(){if(!n.value)return window.$message.error($t("workbench.script.msg.projectNotFound"));l.value=!0;try{await mn.post("/script/extractAssets",{scriptIds:a.value,projectId:n.value.id,groupSize:t.value.assetsBatchGenereateSize}),g()}catch(E){window.$message.error((E==null?void 0:E.message)||$t("workbench.script.msg.extractFailed"))}finally{l.value=!1}}async function O(){if(!a.value.length){window.$message.warning($t("workbench.script.msg.selectDelScript"));return}const E=new Set(S.value.map(D=>D.id));if(a.value.some(D=>E.has(D)))return window.$message.error($t("workbench.script.msg.extractingInProgress"));const T=fo.confirm({header:$t("workbench.script.msg.batchDeleteHeader"),body:$t("workbench.script.msg.batchDeleteBody",{count:a.value.length}),confirmBtn:$t("workbench.script.msg.deleteConfirm"),cancelBtn:$t("workbench.script.msg.cancel"),theme:"warning",onConfirm:async()=>{try{await mn.post("/script/delScript",{id:a.value}),window.$message.success($t("workbench.script.msg.batchDeleteSuccess")),g(),T.destroy()}catch(D){console.error("删除剧本失败:",D),window.$message.error($t("workbench.script.msg.deleteFailed")),T.destroy()}finally{a.value=[]}},onClose:()=>{T.destroy()}})}let y=null;function C(){y||(y=setInterval(async()=>{if(S.value.length===0){_();return}await L()},3e3))}function _(){y&&(clearInterval(y),y=null)}const S=X(()=>r.value.filter(E=>E.extractState==0));async function L(){if(S.value.length===0)return;const E=S.value.map(T=>T.id);try{const{data:T}=await mn.post("/script/pollScriptAssets",{ids:E});T.length&&g()}catch(T){console.error("轮询事件状态失败:",T)}}return pt(()=>S.value,E=>{E.length>0?C():_()}),Qa(()=>{_()}),(E,T)=>{const D=Wu,P=_n("i-search"),Q=Si,M=_n("i-plus"),B=_n("i-export"),R=_n("i-delete"),I=Xy,F=py,j=Wc,W=Sg,H=el,$=km;return xe(),Ge("div",YWo,[ge("div",ZWo,[ge("div",qWo,[c(D,{placeholder:E.$t("workbench.script.searchPlaceholder"),modelValue:Ae(o),"onUpdate:modelValue":T[0]||(T[0]=G=>Fn(o)?o.value=G:null),class:"searchInput",clearable:"",style:{width:"300px"}},null,8,["placeholder","modelValue"]),c(Q,{theme:"primary",onClick:m},{icon:Oe(()=>[c(P)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.search")),1)]),_:1}),c(Q,{theme:"primary",onClick:v},{icon:Oe(()=>[c(M)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.addScript")),1)]),_:1})]),Ae(r).length?(xe(),Ge("div",KWo,[c(Q,{theme:Ae(d)?"default":"primary",variant:"outline",onClick:T[1]||(T[1]=G=>h(!Ae(d)))},{default:Oe(()=>[Bt(Pe(Ae(d)?E.$t("workbench.script.cancelSelectAll"):E.$t("workbench.script.selectAll")),1)]),_:1},8,["theme"]),c(Q,{theme:"primary",onClick:f,disabled:Ae(a).length===0},{icon:Oe(()=>[c(B)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.exportScript"))+Pe(Ae(a).length?`(${Ae(a).length})`:""),1)]),_:1},8,["disabled"]),c(Q,{theme:"primary",onClick:w,loading:Ae(l),disabled:Ae(a).length===0},{icon:Oe(()=>[c(B)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.extractAssets"))+Pe(Ae(a).length?`(${Ae(a).length})`:""),1)]),_:1},8,["loading","disabled"]),c(Q,{theme:"primary",onClick:O,disabled:Ae(a).length===0},{icon:Oe(()=>[c(R)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.deleteScript"))+Pe(Ae(a).length?`(${Ae(a).length})`:""),1)]),_:1},8,["disabled"])])):nn("",!0)]),ge("div",JWo,[Ae(r).length===0?(xe(),Ge("div",eVo,[c(I)])):(xe(),Ge("div",tVo,[(xe(!0),Ge(sn,null,Bi(Ae(r),(G,q)=>(xe(),Ge("div",{key:q,onClick:re=>p(G),class:"scriptCard"},[c($,{shadow:"","hover-shadow":"",style:{width:"400px",cursor:"pointer"}},{header:Oe(()=>[ge("div",iVo,[ge("span",rVo,Pe(G.name),1),c(F,{checked:Ae(a).includes(G.id),onClick:T[2]||(T[2]=Mr(()=>{},["stop"])),onChange:re=>u(G.id),class:"cardCheckbox"},null,8,["checked","onChange"])])]),default:Oe(()=>{var re;return[ge("span",oVo,Pe(G.content),1),(G==null?void 0:G.extractState)==0?(xe(),Ut(j,{key:0,text:E.$t("workbench.script.msg.extracting"),size:"small"},null,8,["text"])):nn("",!0),(G==null?void 0:G.extractState)==2?(xe(),Ut(j,{key:1,text:E.$t("workbench.script.msg.waitExtract"),size:"small"},null,8,["text"])):nn("",!0),(G==null?void 0:G.extractState)==-1?(xe(),Ut(H,{key:2,content:G.errorReason,theme:"light"},{default:Oe(()=>[c(W,{theme:"danger",size:"small"},{default:Oe(()=>[Bt(Pe(E.$t("workbench.script.msg.extractFailed")),1)]),_:1})]),_:1},8,["content"])):(re=G.relatedAssets)!=null&&re.length?(xe(),Ge("div",{key:3,class:"assetTags",onClick:T[3]||(T[3]=Mr(()=>{},["stop"]))},[(xe(!0),Ge(sn,null,Bi(G.relatedAssets,J=>(xe(),Ut(W,{key:J.id,variant:"light-outline",size:"small"},{default:Oe(()=>[Bt(Pe(J.name),1)]),_:2},1024))),128))])):nn("",!0),ge("div",sVo,[c(R,{theme:"outline",size:"18",onClick:Mr(J=>b(G.id),["stop"]),style:{cursor:"pointer"}},null,8,["onClick"])])]}),_:2},1024)],8,nVo))),128))]))]),c(EWo,{modelValue:Ae(A),"onUpdate:modelValue":T[4]||(T[4]=G=>Fn(A)?A.value=G:null),item:Ae(k),onSearchScripts:g},null,8,["modelValue","item"]),c(GWo,{modelValue:Ae(s),"onUpdate:modelValue":T[5]||(T[5]=G=>Fn(s)?s.value=G:null),onSearchScripts:g},null,8,["modelValue"])])}}}),lVo=oo(aVo,[["__scopeId","data-v-235d9376"]]),cVo=Object.freeze(Object.defineProperty({__proto__:null,default:lVo},Symbol.toStringTag,{value:"Module"}));function tp(e){"@babel/helpers - typeof";return tp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tp(e)}function dVo(e,t){if(tp(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(tp(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function LUn(e){var t=dVo(e,"string");return tp(t)=="symbol"?t:t+""}function u0(e,t,n){return(t=LUn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}/** +`).map(function(t){return t.trim()}).filter(function(t){return t!==""&&t.charAt(0)!=="#"}):e:[]}function WNo(e){return e}var yUn={},HLt=Rg,VNo=ure;yUn.openZip=zNo;function zNo(e){return e.arrayBuffer?HLt.resolve(VNo.openArrayBuffer(e.arrayBuffer)):HLt.reject(new Error("Could not find file in options"))}var CUn={},HNo=Fwe(),$No=Pwe();CUn.element=XNo;function XNo(e){return function(t){return $No.elementWithTag(HNo.element(e),[t])}}var GNo=bh,_Un=lrt,jrt=Rrt,YNo=Irt.DocumentConverter,ZNo=sUn.convertElementToRawText,qNo=Nwe.readStyle,KNo=Vwe.readOptions,zwe=yUn,JNo=LA.Result;_p.convertToHtml=eUo;_p.convertToMarkdown=tUo;_p.convert=Wrt;_p.extractRawText=oUo;_p.images=Mrt;_p.transforms=pE;_p.underline=CUn;_p.embedStyleMap=sUo;_p.readEmbeddedStyleMap=nUo;function eUo(e,t){return Wrt(e,t)}function tUo(e,t){var n=Object.create(t||{});return n.outputFormat="markdown",Wrt(e,n)}function Wrt(e,t){return t=KNo(t),zwe.openZip(e).tap(function(n){return jrt.readStyleMap(n).then(function(r){t.embeddedStyleMap=r})}).then(function(n){return _Un.read(n,e,t).then(function(r){return r.map(t.transformDocument)}).then(function(r){return iUo(r,t)})})}function nUo(e){return zwe.openZip(e).then(jrt.readStyleMap)}function iUo(e,t){var n=rUo(t.readStyleMap()),r=GNo.extend({},t,{styleMap:n.value}),o=new YNo(r);return e.flatMapThen(function(s){return n.flatMapThen(function(a){return o.convertToHtml(s)})})}function rUo(e){return JNo.combine((e||[]).map(qNo)).map(function(t){return t.filter(function(n){return!!n})})}function oUo(e){return zwe.openZip(e).then(_Un.read).then(function(t){return t.map(ZNo)})}function sUo(e,t){return zwe.openZip(e).tap(function(n){return jrt.writeStyleMap(n,t)}).then(function(n){return n.toArrayBuffer()}).then(function(n){return{toArrayBuffer:function(){return n},toBuffer:function(){return Buffer.from(n)}}})}_p.styleMapping=function(){throw new Error(`Use a raw string instead of mammoth.styleMapping e.g. "p[style-name='Title'] => h1" instead of mammoth.styleMapping("p[style-name='Title'] => h1")`)};const aUo={class:"purgeNovel"},lUo={class:"data"},cUo={class:"dragIcon"},dUo={class:"uploadText"},uUo={class:"uploadHint"},hUo={class:"formItem"},fUo={class:"label"},gUo={class:"uploadWrap"},mUo={class:"footerInfo f ac jb",style:{"margin-top":"8px"}},kUo={class:"charCount"},vUo={key:0,class:"tips warn"},AUo={style:{"margin-top":"16px","text-align":"right"}},pUo={class:"fc to2Box"},bUo={class:"ellipsisText"},wUo={class:"selectedInfo"},OUo={style:{"margin-top":"16px","text-align":"right"}},yUo=Je({__name:"importNovel",props:{modelValue:{type:Boolean},modelModifiers:{}},emits:Fc(["select"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=Pf(e,"modelValue"),o=fe("To1"),s=fe(),a=fe(""),l=fe([]),d=fe([]),u=fe(!1),h=[{colKey:"row-select",type:"multiple",width:60},{colKey:"index",title:$t("workbench.novel.import.col.chapter"),width:100},{colKey:"reel",title:$t("workbench.novel.import.col.reel"),width:100},{colKey:"chapter",title:$t("workbench.novel.import.col.chapterName"),width:200,ellipsis:!0},{colKey:"chapterData",title:$t("workbench.novel.import.col.chapterData"),ellipsis:!0}],g=X(()=>{if(!a.value)return[];try{return iIo(a.value).flatMap(C=>C.chapters.map(_=>({index:_.index,reel:C.reel,chapter:_.chapter,chapterData:_.text})))}catch(C){return console.error("解析小说内容出错:",C),[]}}),m=X(()=>g.value.filter(C=>d.value.includes(C.index))),v=X(()=>m.value.reduce((C,_)=>C+_.chapterData.length,0));function f(){var C;(C=s.value)==null||C.triggerUpload()}async function k(C){var S;const _=(S=C.dataTransfer)==null?void 0:S.files;_&&_.length>0&&await b({raw:_[0]})}async function A(C){const _=await C.arrayBuffer();return C.type==="text/plain"?new TextDecoder().decode(_):(await _p.extractRawText({arrayBuffer:_})).value}function p(){return Promise.resolve({response:{},status:"success"})}async function b(C){const _=C.raw;if(!_)return window.$message.error($t("workbench.novel.import.msg.selectFile")),!1;const S=["text/plain","application/vnd.openxmlformats-officedocument.wordprocessingml.document"];if(_.type==="application/msword")return window.$message.warning($t("workbench.novel.import.msg.docNotSupported")),!1;if(!S.includes(_.type))return window.$message.error($t("workbench.novel.import.msg.unsupportedType")),!1;if(_.size>10*1024*1024)return window.$message.error($t("workbench.novel.import.msg.fileTooLarge")),!1;Wh(!0);try{a.value=await A(_)}catch{window.$message.error($t("workbench.novel.import.msg.parseFailed"))}finally{Wh(!1)}return!1}function w(C,_){d.value=C}const O=t;async function y(){var C;if(u.value=!0,!m.value.length){window.$message.warning($t("workbench.novel.import.msg.selectChapters")),u.value=!1;return}try{await mn.post("/novel/addNovel",{projectId:(C=n.value)==null?void 0:C.id,data:m.value}),u.value=!1,O("select"),window.$message.success($t("workbench.novel.import.msg.saveSuccess"))}catch(_){window.$message.error(_.message),u.value=!1}finally{u.value=!1,r.value=!1}}return pt(r,C=>{C||(a.value="",l.value=[],d.value=[],o.value="To1")}),(C,_)=>{const S=X4e,L=_n("i-upload-one"),E=fW,T=c2,D=Si,P=Mne,Q=el,M=jne,B=Ine,R=gc;return xe(),Ge("div",aUo,[c(R,{footer:!1,visible:r.value,"onUpdate:visible":_[5]||(_[5]=I=>r.value=I),header:C.$t("workbench.novel.import.title"),width:"50%",placement:"center"},{default:Oe(()=>[ge("div",lUo,[c(B,{value:Ae(o),disabled:""},{default:Oe(()=>[c(P,{value:"To1",label:C.$t("workbench.novel.import.step1"),style:{height:"680px","overflow-y":"auto"}},{default:Oe(()=>[ge("div",{class:"uploadArea",onClick:f,onDragover:_[1]||(_[1]=Mr(()=>{},["prevent"])),onDrop:Mr(k,["prevent"])},[c(S,{ref_key:"uploadRef",ref:s,modelValue:Ae(l),"onUpdate:modelValue":_[0]||(_[0]=I=>Fn(l)?l.value=I:null),theme:"file",multiple:!1,max:1,"before-upload":b,"request-method":p,style:{display:"none"}},null,8,["modelValue"]),ge("div",cUo,[c(L,{theme:"outline",size:"32",fill:"var(--td-brand-color)"})]),ge("p",dUo,Pe(C.$t("workbench.novel.import.dragUpload")),1),ge("p",uUo,Pe(C.$t("workbench.novel.import.uploadHint")),1)],32),c(E,null,{default:Oe(()=>[Bt(Pe(C.$t("workbench.novel.import.or")),1)]),_:1}),ge("div",hUo,[ge("div",fUo,Pe(C.$t("workbench.novel.import.pasteLabel")),1),ge("div",gUo,[c(T,{modelValue:Ae(a),"onUpdate:modelValue":_[2]||(_[2]=I=>Fn(a)?a.value=I:null),placeholder:C.$t("workbench.novel.import.pastePlaceholder"),autosize:{minRows:12,maxRows:12}},null,8,["modelValue","placeholder"])]),ge("div",mUo,[ge("div",null,[ge("span",kUo,Pe(Ae(a).length)+" "+Pe(C.$t("workbench.novel.import.chars")),1),Ae(a).length>0&&Ae(a).length<100?(xe(),Ge("span",vUo,Pe(C.$t("workbench.novel.import.tooShort")),1)):nn("",!0)]),ge("span",null,Pe(C.$t("workbench.novel.import.parsedChapters",{count:Ae(g).length})),1)])]),ge("div",AUo,[c(D,{theme:"primary",style:{"margin-left":"10px"},disabled:!Ae(a)||!Ae(g).length,onClick:_[3]||(_[3]=I=>o.value="To2")},{default:Oe(()=>[Bt(Pe(C.$t("workbench.novel.import.nextStep")),1)]),_:1},8,["disabled"])])]),_:1},8,["label"]),c(P,{value:"To2",label:C.$t("workbench.novel.import.step2"),style:{height:"680px","overflow-y":"auto"}},{default:Oe(()=>[ge("div",pUo,[c(M,{ref:"tableRef","row-key":"index",data:Ae(g),columns:h,"selected-row-keys":Ae(d),hover:"",style:{flex:"1","overflow-y":"auto"},onSelectChange:w},{chapterData:Oe(({row:I})=>[c(Q,{content:I.chapterData,placement:"top"},{default:Oe(()=>[ge("span",bUo,Pe(I.chapterData),1)]),_:2},1032,["content"])]),_:1},8,["data","selected-row-keys"]),ge("div",wUo,Pe(C.$t("workbench.novel.import.selectedInfo",{count:Ae(v)})),1),ge("div",OUo,[c(D,{variant:"outline",onClick:_[4]||(_[4]=I=>o.value="To1")},{default:Oe(()=>[Bt(Pe(C.$t("workbench.novel.import.prevStep")),1)]),_:1}),c(D,{theme:"primary",style:{"margin-left":"10px"},disabled:Ae(v)>2e5,loading:Ae(u),onClick:y},{default:Oe(()=>[..._[6]||(_[6]=[Bt(" 保存 ",-1)])]),_:1},8,["disabled","loading"])])])]),_:1},8,["label"])]),_:1},8,["value"])])]),_:1},8,["visible","header"])])}}}),CUo=oo(yUo,[["__scopeId","data-v-4a10a557"]]),_Uo={class:"editNodel"},SUo={class:"data",style:{"overflow-x":"hidden"}},LUo={class:"editNodel-footer"},xUo=Je({__name:"editNodel",props:Fc({formData:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:Fc(["select"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=t;async function s(){console.log("保存的章节数据:",r.formData);try{await mn.post("/novel/updateNovel",{id:r.formData.id,index:r.formData.index,reel:r.formData.reel,chapter:r.formData.chapter,chapterData:r.formData.chapterData,event:r.formData.event}),o("select"),window.$message.success($t("workbench.novel.editDialog.msg.updateSuccess"))}catch(a){window.$message.error(a.message)}finally{n.value=!1}n.value=!1}return(a,l)=>{const d=Wu,u=p2,h=c2,g=A2,m=Si,v=gc;return xe(),Ge("div",_Uo,[c(v,{visible:n.value,"onUpdate:visible":l[4]||(l[4]=f=>n.value=f),header:a.$t("workbench.novel.editDialog.title"),width:"50%",top:"10vh",placement:"center"},{footer:Oe(()=>[ge("div",LUo,[c(m,{onClick:l[3]||(l[3]=f=>n.value=!1)},{default:Oe(()=>[Bt(Pe(a.$t("workbench.novel.editDialog.cancel")),1)]),_:1}),c(m,{theme:"primary",onClick:s},{default:Oe(()=>[Bt(Pe(a.$t("workbench.novel.editDialog.save")),1)]),_:1})])]),default:Oe(()=>[ge("div",SUo,[c(g,{"label-width":"80px"},{default:Oe(()=>[c(u,{label:a.$t("workbench.novel.editDialog.chapterName")},{default:Oe(()=>[c(d,{placeholder:a.$t("workbench.novel.editDialog.chapterNamePh"),modelValue:e.formData.chapter,"onUpdate:modelValue":l[0]||(l[0]=f=>e.formData.chapter=f)},null,8,["placeholder","modelValue"])]),_:1},8,["label"]),c(u,{label:a.$t("workbench.novel.editDialog.eventContent")},{default:Oe(()=>[c(h,{modelValue:e.formData.event,"onUpdate:modelValue":l[1]||(l[1]=f=>e.formData.event=f),placeholder:a.$t("workbench.novel.editDialog.eventContentPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(u,{label:a.$t("workbench.novel.editDialog.chapterContent")},{default:Oe(()=>[c(h,{placeholder:a.$t("workbench.novel.editDialog.chapterContentPh"),modelValue:e.formData.chapterData,"onUpdate:modelValue":l[2]||(l[2]=f=>e.formData.chapterData=f),autosize:{minRows:15,maxRows:15}},null,8,["placeholder","modelValue"])]),_:1},8,["label"])]),_:1})])]),_:1},8,["visible","header"])])}}}),EUo=oo(xUo,[["__scopeId","data-v-9e187c61"]]),TUo={class:"novel",ref:"novelRef"},QUo={class:"headBtn jb ac",ref:"headBtnRef"},DUo={class:"f"},BUo={style:{color:"red",cursor:"pointer"}},RUo={key:2},IUo=Je({__name:"index",setup(e){const{otherSetting:t}=xs(ku()),{project:n}=xs(ph()),r=fe(""),o=fe([{colKey:"row-select",type:"multiple",width:50,align:"center"},{colKey:"index",title:$t("workbench.novel.col.id"),width:50,align:"center"},{colKey:"reel",title:$t("workbench.novel.col.reel"),width:100,align:"center",cell:"preview"},{colKey:"chapter",title:$t("workbench.novel.col.chapter"),width:100,ellipsis:!0},{colKey:"chapterData",title:$t("workbench.novel.col.chapterData"),ellipsis:!0},{colKey:"event",title:$t("workbench.novel.col.event"),ellipsis:!0},{colKey:"operation",title:$t("workbench.novel.col.operation"),width:200,align:"center"}]),s=fe(!1),a=fe({id:-1,index:0,reel:"",chapter:"",chapterData:"",event:""}),l=fe([]),d=fe(!1),u=fe([]),h=fe({page:1,pageSize:10,total:0});An(()=>{m()}),Qa(()=>{L()});function g(){h.value.page=1,m()}function m(){var E;d.value=!0,mn.post("/novel/getNovel",{projectId:(E=n.value)==null?void 0:E.id,page:h.value.page,limit:h.value.pageSize,search:r.value}).then(T=>{l.value=T.data.data,h.value.total=T.data.total}).finally(()=>{d.value=!1})}function v(E){h.value.page=E.current,h.value.pageSize=E.pageSize,m()}const f=fe(!1);function k(){f.value=!0}function A(E,T){u.value=E.filter(Boolean)}function p(){if(u.value.length===0)return;const E=co.confirm({header:$t("workbench.novel.msg.batchDeleteHeader"),body:$t("workbench.novel.msg.batchDeleteBody",{count:u.value.length}),onConfirm:async()=>{await mn.post("/novel/batchDeleteNovel",{ids:u.value}),m(),window.$message.success($t("workbench.novel.msg.batchDeleteSuccess")),E.destroy()}})}function b(E){s.value=!0,a.value={...E}}function w(E){const T=co.confirm({header:$t("workbench.novel.msg.deleteHeader"),body:$t("workbench.novel.msg.deleteBody",{name:E.chapter}),onConfirm:async()=>{try{await mn.post("/novel/delNovel",{id:E.id}),window.$message.success($t("workbench.novel.msg.deleteSuccess")),l.value.length===1&&h.value.page>1&&(h.value.page-=1),m()}catch(D){window.$message.error(D.message)}window.$message.success($t("workbench.novel.msg.deleteSuccess")),T.destroy()}})}function O(){const E=co.confirm({header:$t("workbench.novel.msg.eventAnalysisHeader"),body:$t("workbench.novel.msg.eventAnalysisBody",{count:u.value.length}),onConfirm:()=>{var T;E.destroy(),mn.post("/novel/event/generateEvents",{projectId:(T=n.value)==null?void 0:T.id,novelIds:u.value,concurrentCount:t.value.assetsBatchGenereateSize}).then(D=>{u.value.length=0,m()})}})}const y=X(()=>l.value.filter(E=>!E.eventState));let C=null;async function _(){if(y.value.length===0)return;const E=y.value.map(T=>T.id);try{const{data:T}=await mn.post("/novel/getNovelEventState",{ids:E});Array.isArray(T)&&T.forEach(D=>{const P=l.value.find(Q=>Q.id===D.id);P&&(P.eventState=D.eventState,P.eventState==-1&&(P.errorReason=D.errorReason),D.event!==void 0&&(P.event=D.event))})}catch(T){console.error("轮询事件状态失败:",T)}}function S(){C||(C=setInterval(async()=>{if(y.value.length===0){L();return}await _()},3e3))}function L(){C&&(clearInterval(C),C=null)}return pt(y,E=>{E.length>0?S():L()}),Qa(()=>{L()}),(E,T)=>{const D=dL,P=Si,Q=Ev,M=Wu,B=Wc,R=el,I=jne;return xe(),Ge("div",TUo,[ge("div",QUo,[c(Q,null,{default:Oe(()=>[c(P,{theme:"primary",onClick:k},{icon:Oe(()=>[c(D,{name:"add"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.importText")),1)]),_:1}),c(P,{theme:"danger",disabled:Ae(u).length===0,onClick:p},{icon:Oe(()=>[c(D,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.batchDelete"))+" "+Pe(Ae(u).length>0?`(${Ae(u).length})`:""),1)]),_:1},8,["disabled"]),c(P,{onClick:O,disabled:Ae(u).length===0},{icon:Oe(()=>[c(D,{name:"analytics"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.eventAnalysis"))+" "+Pe(Ae(u).length>0?`(${Ae(u).length})`:""),1)]),_:1},8,["disabled"])]),_:1}),ge("div",DUo,[c(M,{modelValue:Ae(r),"onUpdate:modelValue":T[0]||(T[0]=F=>Fn(r)?r.value=F:null),placeholder:E.$t("workbench.novel.searchPlaceholder"),clearable:"",style:{width:"260px"}},null,8,["modelValue","placeholder"]),c(P,{onClick:g,style:{"margin-left":"10px"}},{icon:Oe(()=>[c(D,{name:"search"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.search")),1)]),_:1})])],512),c(I,{ref:"tableRef",style:{"margin-top":"10px",flex:"1",display:"flex","flex-direction":"column"},columns:Ae(o),data:Ae(l),"selected-row-keys":Ae(u),"select-on-row-click":!0,keyboardRowHover:!1,"row-key":"id",hover:"",stripe:"",size:"small",pagination:Ae(h),loading:Ae(d),"lazy-load":"",resizable:"","table-layout":"fixed",onSelectChange:A,onPageChange:v},{startTime:Oe(({row:F})=>[ge("span",null,Pe(Ae(JB)(F.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),event:Oe(({row:F})=>[F.eventState==0?(xe(),Ut(B,{key:0,size:"small",text:E.$t("workbench.novel.generating")},null,8,["text"])):F.eventState==-1&&!F.event?(xe(),Ut(R,{key:1,content:F==null?void 0:F.errorReason},{default:Oe(()=>[ge("div",BUo,Pe(E.$t("workbench.novel.genFailed")),1)]),_:1},8,["content"])):(xe(),Ge("div",RUo,Pe(F.event||E.$t("workbench.novel.none")),1))]),operation:Oe(({row:F})=>[c(Q,{size:0},{default:Oe(()=>[c(P,{theme:"primary",disabled:F.eventState==0,variant:"text",onClick:j=>b(F)},{icon:Oe(()=>[c(D,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.edit")),1)]),_:1},8,["disabled","onClick"]),c(P,{theme:"danger",disabled:F.eventState==0,variant:"text",onClick:j=>w(F)},{icon:Oe(()=>[c(D,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.novel.delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["columns","data","selected-row-keys","pagination","loading"]),c(CUo,{modelValue:Ae(f),"onUpdate:modelValue":T[1]||(T[1]=F=>Fn(f)?f.value=F:null),onSelect:m},null,8,["modelValue"]),c(EUo,{modelValue:Ae(s),"onUpdate:modelValue":T[2]||(T[2]=F=>Fn(s)?s.value=F:null),formData:Ae(a),onSelect:m},null,8,["modelValue","formData"])],512)}}}),MUo=oo(IUo,[["__scopeId","data-v-311980c9"]]),PUo=Object.freeze(Object.defineProperty({__proto__:null,default:MUo},Symbol.toStringTag,{value:"Module"})),FUo={class:"addAssets"},NUo={class:"data"},UUo=Je({__name:"addAssets",props:Fc({type:{},title:{},formData:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["getFilteredData"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=e,o=Pf(e,"modelValue"),s=fe({name:[{required:!0,message:$t("workbench.assets.add.nameRequired"),trigger:"blur"}],describe:[{required:!0,message:$t("workbench.assets.add.describeRequired"),trigger:"blur"}],remark:[{required:!0,message:$t("workbench.assets.add.remarkRequired"),trigger:"blur"}]});function a(){o.value=!1}const l=fe(),d=t;function u(){var h;(h=l.value)==null||h.validate().then(async()=>{var g;if(r.formData.id!==0){await mn.post("/assets/updateAssets",{id:r.formData.id,name:r.formData.name,describe:r.formData.describe,remark:r.formData.remark,prompt:r.formData.prompt}).then(()=>{window.$message.success($t("workbench.assets.add.updateSuccess")),d("getFilteredData"),o.value=!1});return}else mn.post("/assets/addAssets",{name:r.formData.name,describe:r.formData.describe,remark:r.formData.remark,type:r.type,projectId:(g=n.value)==null?void 0:g.id,prompt:r.formData.prompt}).then(()=>{window.$message.success($t("workbench.assets.add.addSuccess")),d("getFilteredData"),o.value=!1})})}return(h,g)=>{const m=Wu,v=p2,f=c2,k=A2,A=gc;return xe(),Ge("div",FUo,[c(A,{visible:o.value,"onUpdate:visible":g[4]||(g[4]=p=>o.value=p),closable:!1,width:"40vw",header:r.title,maskClosable:!1,onCloseBtnClick:a,onConfirm:u,onCancel:a},{default:Oe(()=>[ge("div",NUo,[c(k,{data:r.formData,rules:Ae(s),ref_key:"formRef",ref:l},{default:Oe(()=>[c(v,{label:h.$t("workbench.assets.add.name"),name:"name"},{default:Oe(()=>[c(m,{modelValue:r.formData.name,"onUpdate:modelValue":g[0]||(g[0]=p=>r.formData.name=p),placeholder:h.$t("workbench.assets.add.namePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:h.$t("workbench.assets.add.describe"),name:"describe"},{default:Oe(()=>[c(f,{modelValue:r.formData.describe,"onUpdate:modelValue":g[1]||(g[1]=p=>r.formData.describe=p),placeholder:h.$t("workbench.assets.add.describePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:h.$t("workbench.assets.add.remark"),name:"remark"},{default:Oe(()=>[c(m,{modelValue:r.formData.remark,"onUpdate:modelValue":g[2]||(g[2]=p=>r.formData.remark=p),placeholder:h.$t("workbench.assets.add.remarkPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),r.type!=="clip"?(xe(),Ut(v,{key:0,label:h.$t("workbench.assets.add.prompt"),name:"prompt"},{default:Oe(()=>[c(f,{modelValue:r.formData.prompt,"onUpdate:modelValue":g[3]||(g[3]=p=>r.formData.prompt=p),autosize:{minRows:3,maxRows:5},placeholder:h.$t("workbench.assets.add.promptPh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])):nn("",!0)]),_:1},8,["data","rules"])])]),_:1},8,["visible","header"])])}}}),jUo=oo(UUo,[["__scopeId","data-v-46105082"]]),WUo={class:"generateImage"},VUo={class:"data f"},zUo={class:"uploadReferenceImage"},HUo={class:"jb"},$Uo={style:{"font-size":"16px","font-weight":"900"}},XUo={class:"upload"},GUo={class:"rawPicturePrompt"},YUo={class:"jb"},ZUo={style:{"font-size":"16px","font-weight":"900"}},qUo={style:{"margin-left":"5px","font-size":"13px"}},KUo={class:"input"},JUo={class:"selectModel f"},ejo={style:{width:"60%"}},tjo={style:{"font-size":"16px","font-weight":"900"}},njo={style:{width:"40%","margin-left":"15px"}},ijo={style:{"font-size":"16px","font-weight":"900"}},rjo={class:"generateButton",style:{"margin-top":"20px"}},ojo={class:"resultImages",style:{gap:"20px","flex-wrap":"wrap"}},sjo={class:"image f w"},ajo=["onClick","onMouseenter"],ljo={key:0,class:"generating-overlay f ac jc"},cjo={key:1,class:"failed-overlay f ac jc"},djo={style:{"text-align":"center"}},ujo={style:{"margin-top":"10px",color:"#d0021b","font-weight":"bold"}},hjo={class:"preview"},fjo={class:"selected"},gjo={class:"delImage"},mjo={class:"customUpload"},kjo={class:"uploadPlaceholder f ac jc",style:{width:"180px",height:"180px",border:"2px dashed #d9d9d9","border-radius":"20px",cursor:"pointer"}},vjo={class:"keep"},Ajo=Je({__name:"generateImage",props:Fc({formData:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["update"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=e,o=Pf(e,"modelValue");function s(){o.value=!1,u.value=!1,E(),f("update")}const a=fe([]),l=fe(!1),d=fe(!1),u=fe(!1),h=fe(""),g=fe(""),m=fe(!1);async function v(){var M;m.value=!0;try{const{data:B}=await mn.post("/assetsGenerate/polishAssetsPrompt",{projectId:(M=n.value)==null?void 0:M.id,assetsId:r.formData.id,type:r.formData.type??"props",name:r.formData.name,describe:r.formData.describe?r.formData.describe:$t("workbench.assets.noDescription")});window.$message.success($t("workbench.assets.gen.promptSuccess")),B.assetsId===r.formData.id&&(r.formData.prompt=B.prompt)}catch(B){window.$message.error(B.message??$t("workbench.assets.gen.promptFail"))}finally{m.value=!1}}const f=t,k=fe("1K");async function A(){var M;if(!r.formData.prompt){window.$message.error($t("workbench.assets.gen.fillPrompt"));return}if(!k.value){window.$message.error($t("workbench.assets.gen.pickResolution"));return}if(!h.value){window.$message.error($t("workbench.assets.gen.pickModel"));return}u.value=!0;try{let B="";if(a.value.length>0){const R=a.value[0].raw;R instanceof File&&(B=await new Promise(I=>{const F=new FileReader;F.onload=j=>{var H;const W=(H=j.target)==null?void 0:H.result;I(W)},F.readAsDataURL(R)}))}await mn.post("/assetsGenerate/generateAssets",{type:r.formData.type??"props",projectId:(M=n.value)==null?void 0:M.id,name:r.formData.name??$t("workbench.assets.gen.unnamed"),base64:B,prompt:r.formData.prompt,model:h.value,id:r.formData.id,resolution:k.value}),window.$message.success($t("workbench.assets.gen.assetGenSuccess")),await T()}catch(B){window.$message.error(B.message??$t("workbench.assets.gen.assetGenFail")),T()}finally{u.value=!1}}const p=fe([]);function b(M){var B;if(M.length>0){const R=((B=M[0])==null?void 0:B.raw)||M[0];if(R instanceof File){const I=new FileReader;I.onload=F=>{var W;const j=(W=F.target)==null?void 0:W.result;w.value.push({id:"",src:j,state:"已完成"}),window.$message.success($t("workbench.assets.gen.uploadOk")),p.value=[]},I.readAsDataURL(R)}}}const w=fe([]),O=fe(!1),y=fe();function C(M){O.value=!0,y.value=M}const _=fe(null),S=fe(null);pt(()=>o.value,M=>{M&&(a.value=[],g.value="",_.value=null,S.value=null,u.value=!1,T())});let L=null;function E(){L&&(clearTimeout(L),L=null)}async function T(){const{data:M}=await mn.post("/assets/getImage",{assetsId:r.formData.id}),B=M.tempAssets.map(F=>({id:F.id,src:F.filePath,state:F.state,selected:F.selected??!1}));w.value=B;const R=B.findIndex(F=>F.selected);R!==-1&&(_.value=R);const I=B.some(F=>F.state==="生成中");E(),I&&o.value&&(L=setTimeout(()=>T(),3e3))}function D(M){w.value[M].state==="已完成"&&(_.value=M,window.$message.success($t("workbench.assets.gen.imageSelected")))}function P(M,B){console.log("%c Line:343 🍩 id","background:#4fff4B",M);const R=co.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.assets.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{try{mn.post("/assets/delImage",{id:M}),window.$message.success($t("workbench.assets.deleteSuccess")),w.value.splice(B,1),_.value===B?_.value=null:_.value!==null&&_.value>B&&_.value--,R.destroy()}catch{window.$message.error($t("workbench.assets.deleteFail")),R.destroy()}}})}async function Q(){var M;if(_.value!==null){const B=w.value[_.value],R=!B.id;await mn.post("/assets/saveAssets",{id:r.formData.id,base64:R?B.src:"",type:r.formData.type,prompt:r.formData.prompt,projectId:(M=n.value)==null?void 0:M.id,imageId:R?void 0:Number(B.id)}),window.$message.success($t("workbench.assets.gen.imageSaved")),o.value=!1,f("update")}}return(M,B)=>{const R=Sg,I=X4e,F=_n("i-magic"),j=c2,W=Wc,H=uL,$=pA,G=Si,q=km,re=fW,J=_n("i-close-one"),oe=Zh,se=_n("i-preview-open"),le=_n("i-check-one"),ue=_n("i-delete"),ee=_n("i-plus"),de=hL,z=gc;return xe(),Ge("div",WUo,[c(z,{visible:o.value,"onUpdate:visible":B[7]||(B[7]=Y=>o.value=Y),top:"4vh",width:"80vw",header:M.$t("workbench.assets.gen.header"),maskClosable:!1,footer:!1,onCloseBtnClick:s},{default:Oe(()=>[ge("div",VUo,[c(q,{bordered:!1,style:{width:"40%"}},{default:Oe(()=>[ge("div",zUo,[ge("div",HUo,[ge("span",$Uo,Pe(M.$t("workbench.assets.gen.uploadRef")),1),c(R,null,{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.optional")),1)]),_:1})]),ge("div",XUo,[c(I,{modelValue:Ae(a),"onUpdate:modelValue":B[0]||(B[0]=Y=>Fn(a)?a.value=Y:null),autoUpload:Ae(l),disabled:Ae(u),theme:"image",abridgeName:[10,8],draggable:"",action:"",accept:"image/*",showImageFileName:Ae(d)},null,8,["modelValue","autoUpload","disabled","showImageFileName"])])]),ge("div",GUo,[ge("div",YUo,[ge("span",ZUo,Pe(M.$t("workbench.assets.gen.promptLabel")),1),ge("div",{class:"ac",style:{cursor:"pointer"},onClick:Mr(v,["stop"])},[c(F,{theme:"outline",size:"18"}),ge("span",qUo,Pe(M.$t("workbench.assets.gen.smartGenerate")),1)])]),ge("div",KUo,[c(W,{loading:Ae(m),text:M.$t("workbench.assets.gen.generatingPrompt")},{default:Oe(()=>[c(j,{modelValue:r.formData.prompt,"onUpdate:modelValue":B[1]||(B[1]=Y=>r.formData.prompt=Y),placeholder:M.$t("workbench.assets.gen.promptPlaceholder"),autosize:{minRows:15,maxRows:15},disabled:Ae(u)},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["loading","text"])])]),ge("div",JUo,[ge("div",ejo,[ge("span",tjo,Pe(M.$t("workbench.assets.gen.selectModel")),1),c(T8,{modelValue:Ae(h),"onUpdate:modelValue":B[2]||(B[2]=Y=>Fn(h)?h.value=Y:null),type:"image"},null,8,["modelValue"])]),ge("div",njo,[ge("span",ijo,Pe(M.$t("workbench.assets.gen.selectResolution")),1),c($,{modelValue:Ae(k),"onUpdate:modelValue":B[3]||(B[3]=Y=>Fn(k)?k.value=Y:null)},{default:Oe(()=>[c(H,{key:"1K",label:"1K",value:"1K"}),c(H,{key:"2K",label:"2K",value:"2K"}),c(H,{key:"4K",label:"4K",value:"4K"})]),_:1},8,["modelValue"])])]),ge("div",rjo,[c(G,{theme:"primary",size:"large",block:"",loading:Ae(u),onClick:A},{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.generateBtn")),1)]),_:1},8,["loading"])])]),_:1}),c(re,{layout:"vertical",style:{height:"700px"}}),c(q,{title:M.$t("workbench.assets.gen.resultTitle"),bordered:!1,style:{width:"60%"}},{actions:Oe(()=>[Ae(w).length?(xe(),Ut(R,{key:0},{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.generatedCount",{count:Ae(w).length})),1)]),_:1})):nn("",!0)]),default:Oe(()=>[ge("div",ojo,[ge("div",sjo,[(xe(!0),Ge(sn,null,Bi(Ae(w),(Y,ie)=>(xe(),Ge("div",{key:ie,class:Eo(["resultImage",{"is-selected":Ae(_)===ie,"is-disabled":Y.state!=="已完成"}]),onClick:te=>Y.state==="已完成"?D(ie):null,onMouseenter:te=>S.value=ie,onMouseleave:B[4]||(B[4]=te=>S.value=null)},[Y.state==="生成中"?(xe(),Ge("div",ljo,[c(W,{text:M.$t("workbench.assets.gen.generatingLabel")},null,8,["text"])])):Y.state==="生成失败"&&!Y.src?(xe(),Ge("div",cjo,[ge("div",djo,[c(J,{theme:"filled",size:"40",fill:"#d0021b"}),ge("div",ujo,Pe(M.$t("workbench.assets.gen.genFailed")),1)])])):(xe(),Ut(oe,{key:2,src:Y.src,fit:"cover",style:{width:"100%",height:"100%",borderRadius:"20px"}},{loading:Oe(()=>[c(W)]),_:1},8,["src"])),uu(ge("div",hjo,[c(se,{theme:"outline",size:"25",fill:"#ffffff",onClick:Mr(te=>C(Y.src),["stop"])},null,8,["onClick"])],512),[[h1,Ae(S)===ie&&Y.state==="已完成"]]),uu(ge("div",fjo,[c(le,{theme:"filled",size:"25",fill:"#000"})],512),[[h1,Ae(_)===ie&&Y.state==="已完成"]]),uu(ge("div",gjo,[c(ue,{theme:"outline",size:"20",fill:"#d0021b",onClick:Mr(te=>P(Y.id,ie),["stop"])},null,8,["onClick"])],512),[[h1,Ae(S)===ie]])],42,ajo))),128)),ge("div",mjo,[c(I,{ref:"customUploadRef",action:"",modelValue:Ae(p),"onUpdate:modelValue":B[5]||(B[5]=Y=>Fn(p)?p.value=Y:null),disabled:Ae(u),autoUpload:!1,theme:"custom",accept:"image/*",max:1,onChange:b,showImageFileName:!1},{default:Oe(()=>[ge("div",kjo,[c(ee,{theme:"outline",size:"24",fill:"#4a4a4a"})])]),_:1},8,["modelValue","disabled"])])])]),ge("div",vjo,[c(G,{theme:"primary",size:"large",block:"",disabled:Ae(_)===null,onClick:Q},{default:Oe(()=>[Bt(Pe(M.$t("workbench.assets.gen.confirmSelect")),1)]),_:1},8,["disabled"])])]),_:1},8,["title"])]),c(de,{modelValue:Ae(O),"onUpdate:modelValue":B[6]||(B[6]=Y=>Fn(O)?O.value=Y:null),images:[Ae(y)]},null,8,["modelValue","images"])]),_:1},8,["visible","header"])])}}}),pjo=oo(Ajo,[["__scopeId","data-v-4d2f2866"]]),bjo={class:"assets"},wjo={class:"data"},Ojo={class:"tabLabel"},yjo={class:"panelContent"},Cjo={class:"toolbar"},_jo={class:"data"},Sjo={class:"generatePrompt"},Ljo={class:"generateImage"},xjo={class:"f ac"},Ejo={class:"assetsList f w"},Tjo={class:"expandedContent"},Qjo={class:"previewCell"},Djo={key:0,class:"imageTrigger generatingImage"},Bjo={class:"generatingLabel"},Rjo=["onClick"],Ijo=["src","alt"],Mjo={key:1,class:"noImage"},Pjo={key:2,class:"imageHoverOverlay"},Fjo={class:"hoverText"},Njo={class:"promptCell"},Ujo={class:"previewCell"},jjo=["onClick"],Wjo=["src","alt"],Vjo={key:1,class:"noImage"},zjo={key:2,class:"imageHoverOverlay"},Hjo={class:"hoverText"},$jo={class:"promptCell"},Xjo={class:"previewCell"},Gjo={key:0,class:"imageTrigger generatingImage"},Yjo={class:"generatingLabel"},Zjo=["onClick"],qjo=["src","alt"],Kjo={key:1,class:"noImage"},Jjo={key:2,class:"imageHoverOverlay"},eWo={class:"hoverText"},tWo={class:"previewCell"},nWo=["onClick"],iWo=["src","alt"],rWo={class:"mediaHoverOverlay"},oWo={class:"hoverText"},sWo=["onClick"],aWo=["src"],lWo={class:"mediaHoverOverlay"},cWo={class:"hoverText"},dWo=["onClick"],uWo={class:"mediaHoverOverlay"},hWo={class:"hoverText"},fWo={key:3,class:"mediaTrigger noMedia"},gWo={class:"mediaPreviewDialog"},mWo=["src"],kWo={key:1,class:"audioWrapper"},vWo={class:"audioIcon"},AWo={class:"audioName"},pWo=["src"],bWo={class:"batch"},wWo=Je({__name:"index",props:{selectorMode:{type:Boolean,default:!1},allowedTypes:{},clipMediaTypes:{},multiple:{type:Boolean,default:!0}},setup(e,{expose:t}){var Se,Ie;const{otherSetting:n}=xs(ku()),r=e;An(()=>{O()}),Qa(()=>{et(),Me()});const{project:o}=xs(ph()),s=[{name:$t("workbench.assets.role"),value:"role",icon:"i-permissions"},{name:$t("workbench.assets.prop"),value:"tool",icon:"i-tool"},{name:$t("workbench.assets.scene"),value:"scene",icon:"i-landscape"},{name:$t("workbench.assets.clip"),value:"clip",icon:"i-editing"}],a=fe((Se=r.allowedTypes)!=null&&Se.length?s.filter(ze=>r.allowedTypes.includes(ze.value)):s),l=((Ie=a.value[0])==null?void 0:Ie.value)||"role",d=fe(l),u=fe(""),h={role:$t("workbench.assets.role"),tool:$t("workbench.assets.prop"),scene:$t("workbench.assets.scene"),clip:$t("workbench.assets.clip")},g=fe([]),m=fe([]),v=fe([]),f=fe(!1),k=ze=>{const Ze=ke(ze);return(Ze==null?void 0:Ze.promptState)==="生成中"||(Ze==null?void 0:Ze.state)==="生成中"},A=fe([]),p=fe({page:1,pageSize:10,total:0,showJumper:!0});function b(){p.value.page=1,w(d.value)}async function w(ze){var Ze,gt;try{f.value=!0;const{data:St}=await mn.post("/assets/getAssetsApi",{projectId:(Ze=o.value)==null?void 0:Ze.id,type:ze,name:u.value||void 0,page:p.value.page,limit:p.value.pageSize});return A.value=St.data||[],ze==="clip"&&((gt=r.clipMediaTypes)!=null&>.length)&&(A.value=A.value.filter(Pt=>{const dn=Y(Pt.src);return r.clipMediaTypes.includes(dn)})),p.value.total=St.total||0,A.value}catch(St){console.error("加载资产数据失败:",St),A.value=[],p.value.total=0}finally{f.value=!1}}async function O(){d.value==="role"||d.value==="tool"||d.value==="scene"||d.value,await w(d.value)}function y(ze){u.value="",g.value=[],m.value=[],v.value=[],p.value.page=1,O()}const C=fe({id:0,name:"",describe:"",remark:"",src:"",prompt:""}),_=fe(!1),{open:S,onChange:L,onCancel:E}=cOn({multiple:!1,reset:!0,accept:".png,.jpg,.jpeg,.mp3,.mp4"});async function T(ze){if(ze==="clip"){const Ze=await new Promise(Pt=>{S(),L(dn=>Pt(dn)),E(()=>Pt(null))});if(!(Ze!=null&&Ze.length))return;const gt=Ze[0],St=new FileReader;St.onload=async Pt=>{var on;const dn=St.result;await mn.post("/assets/uploadClip",{projectId:(on=o.value)==null?void 0:on.id,base64Data:dn,name:gt.name}),window.$message.success($t("workbench.assets.uploadSuccess")),w(d.value)},St.readAsDataURL(gt)}else _.value=!0,C.value={id:0,name:"",describe:"",remark:"",prompt:""}}const D=fe(!1),P=fe(""),Q=fe("1K"),M=fe("");function B(ze){M.value=ze===1?$t("workbench.assets.batchGenPrompt"):$t("workbench.assets.batchGenImage"),D.value=!0}function R(){M.value===$t("workbench.assets.batchGenPrompt")?F():M.value===$t("workbench.assets.batchGenImage")&&j()}function I(){const ze=[];return A.value.forEach(Ze=>{var gt;(gt=Ze.sonAssets)!=null&>.length&&Ze.sonAssets.forEach(St=>{m.value.includes(St.id)&&ze.push(St)})}),ze}async function F(){var St;const ze=A.value.filter(Pt=>g.value.includes(Pt.id)),Ze=I(),gt=[...ze,...Ze];if(gt.length===0){window.$message.warning($t("workbench.assets.selectAtLeastOne"));return}ze.forEach(Pt=>{const dn=A.value.find(on=>on.id===Pt.id);dn&&(dn.promptState="生成中")}),Ze.forEach(Pt=>{A.value.forEach(dn=>{var pn;const on=(pn=dn.sonAssets)==null?void 0:pn.find(ni=>ni.id===Pt.id);on&&(on.promptState="生成中")})}),g.value=g.value.filter(Pt=>!ze.some(dn=>dn.id===Pt)),m.value=m.value.filter(Pt=>!Ze.some(dn=>dn.id===Pt)),D.value=!1;try{await mn.post("/assetsGenerate/batchPolishAssetsPrompt",{projectId:(St=o.value)==null?void 0:St.id,concurrentCount:n.value.assetsBatchGenereateSize,items:gt.map(Pt=>({assetsId:Pt.id,type:Pt.type??"props",name:Pt.name,describe:Pt.describe?Pt.describe:$t("workbench.assets.noDescription")}))})}catch{window.$message.error($t("workbench.assets.promptGenFail"))}}async function j(){var on;const ze=A.value.filter(pn=>g.value.includes(pn.id)),Ze=I(),gt=[...ze,...Ze];if(gt.length===0){window.$message.warning($t("workbench.assets.selectAtLeastOne"));return}if(!P.value){window.$message.error($t("workbench.assets.selectModel"));return}if(!Q.value){window.$message.error($t("workbench.assets.selectResolution"));return}const St=gt.filter(pn=>pn.prompt?!0:(window.$message.warning($t("workbench.assets.noPromptForImage",{name:pn.name})),!1));if(St.length===0)return;const Pt=St.filter(pn=>g.value.includes(pn.id)),dn=St.filter(pn=>m.value.includes(pn.id));Pt.forEach(pn=>{const ni=A.value.find(Zn=>Zn.id===pn.id);ni&&(ni.state="生成中")}),dn.forEach(pn=>{A.value.forEach(ni=>{var Pi;const Zn=(Pi=ni.sonAssets)==null?void 0:Pi.find(rr=>rr.id===pn.id);Zn&&(Zn.state="生成中")})}),g.value=g.value.filter(pn=>!St.some(ni=>ni.id===pn)),m.value=m.value.filter(pn=>!St.some(ni=>ni.id===pn)),D.value=!1;try{await mn.post("/assetsGenerate/batchGenerateImageAssets",{projectId:(on=o.value)==null?void 0:on.id,model:P.value,resolution:Q.value,concurrentCount:n.value.assetsBatchGenereateSize,items:St.map(pn=>({id:pn.id,type:pn.type??"props",name:pn.name??$t("workbench.cornerScape.unnamed"),prompt:pn.prompt||pn.describe}))})}catch(pn){window.$message.error($t("workbench.assets.imageGenFail",{name:"",error:pn.message??""})),St.forEach(ni=>{const Zn=A.value.find(Pi=>Pi.id===ni.id);Zn?Zn.state="生成失败":A.value.forEach(Pi=>{var Hr;const rr=(Hr=Pi.sonAssets)==null?void 0:Hr.find(Bo=>Bo.id===ni.id);rr&&(rr.state="生成失败")})})}}function W(){const ze=A.value.filter(gt=>g.value.includes(gt.id));if(ze.length===0){window.$message.warning($t("workbench.assets.selectAtLeastOne"));return}const Ze=co.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.assets.confirmBatchDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{await mn.post("/assets/batchDelete",{id:ze.map(gt=>gt.id)}),window.$message.success($t("workbench.assets.deleteSuccess")),w(d.value),Ze.destroy()}})}const H=r.multiple?"multiple":"single",$=[{colKey:"row-select",type:H,width:50,align:"center",fixed:"left",disabled:ze=>{var Ze;return k(((Ze=ze.row)==null?void 0:Ze.id)??ze.id)}},{colKey:"src",title:$t("workbench.assets.colPreview"),width:100,align:"center",cell:"previewWithLoading"},{colKey:"name",title:$t("workbench.assets.colName"),width:100,align:"left",ellipsis:!0},{colKey:"prompt",title:$t("workbench.assets.colPrompt"),width:200,align:"left",ellipsis:!0,cell:"prompt"},{colKey:"describe",title:$t("workbench.assets.colDescribe"),width:200,align:"left",ellipsis:!0},{colKey:"remark",title:$t("workbench.assets.colRemark"),minWidth:200,align:"left",ellipsis:!0},{colKey:"startTime",title:$t("workbench.assets.colCreateTime"),width:200,align:"center",cell:"startTime"},{colKey:"operation",title:$t("workbench.assets.colOperation"),width:280,align:"center",fixed:"right",cell:"operation"}],G=[{colKey:"row-select",type:H,width:50,align:"center",fixed:"left"},{colKey:"src",title:$t("workbench.assets.colPreview"),width:100,align:"center",cell:"previewWithLoading"},{colKey:"name",title:$t("workbench.assets.colName"),width:100,align:"left",ellipsis:!0},{colKey:"prompt",title:$t("workbench.assets.colPrompt"),width:200,align:"left",ellipsis:!0,cell:"prompt"},{colKey:"describe",title:$t("workbench.assets.colDescribe"),width:100,align:"left",ellipsis:!0},{colKey:"remark",title:$t("workbench.assets.colRemark"),minWidth:150,align:"left",ellipsis:!0},{colKey:"operation",title:$t("workbench.assets.colOperation"),width:280,align:"center",fixed:"right",cell:"operation"}],q=[{colKey:"row-select",type:"multiple",width:50,align:"center",fixed:"left"},{colKey:"src",title:$t("workbench.assets.colPreview"),width:100,align:"center",cell:"preview"},{colKey:"name",title:$t("workbench.assets.colName"),width:200,align:"left",ellipsis:!0},{colKey:"describe",title:$t("workbench.assets.colDescribe"),width:200,align:"left",ellipsis:!0},{colKey:"remark",title:$t("workbench.assets.colRemark"),minWidth:200,align:"left",ellipsis:!0},{colKey:"startTime",title:$t("workbench.assets.colCreateTime"),width:200,align:"center",cell:"startTime"},{colKey:"operation",title:$t("workbench.assets.colOperation"),width:180,align:"center",fixed:"right",cell:"operation"}];function re(ze){const Ze=ze.filter(dn=>!k(dn)),gt=g.value;r.multiple?g.value=Ze:g.value=Ze.length>0?[Ze[Ze.length-1]]:[];const St=g.value.filter(dn=>!gt.includes(dn)),Pt=gt.filter(dn=>!g.value.includes(dn));St.forEach(dn=>{var pn;const on=A.value.find(ni=>ni.id===dn);if((pn=on==null?void 0:on.sonAssets)!=null&&pn.length){const ni=on.sonAssets.map(Pi=>Pi.id),Zn=new Set([...m.value,...ni]);m.value=Array.from(Zn)}}),Pt.forEach(dn=>{var pn;const on=A.value.find(ni=>ni.id===dn);if((pn=on==null?void 0:on.sonAssets)!=null&&pn.length){const ni=new Set(on.sonAssets.map(Zn=>Zn.id));m.value=m.value.filter(Zn=>!ni.has(Zn))}})}function J(ze){r.multiple?m.value=ze:m.value=ze.length>0?[ze[ze.length-1]]:[]}function oe(ze){ze.length>3&&(ze=ze.slice(-3)),v.value=ze}function se(ze){p.value.page=ze.current,p.value.pageSize=ze.pageSize,O()}const le=fe(!1),ue=fe({id:void 0,name:"",describe:"",type:"",prompt:"",src:""});function ee(ze){ue.value={id:ze.id,name:ze.name,describe:ze.describe,type:ze.type,prompt:ze.prompt,src:ze.src},le.value=!0}function de(ze){C.value={...ze},_.value=!0}function z(ze){const Ze=co.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.assets.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{try{await mn.post("/assets/delAssets",{id:ze.id}),window.$message.success($t("workbench.assets.deleteSuccess")),w(d.value),Ze.destroy()}catch(gt){console.error("删除资产失败:",gt),window.$message.error($t("workbench.assets.deleteFail")),Ze.destroy()}}})}t({selectedRowKeys:g,selectedSubRowKeys:m,tableData:A});function Y(ze){var gt;if(!ze)return"unknown";const Ze=((gt=ze.split("?")[0].split(".").pop())==null?void 0:gt.toLowerCase())??"";return["png","jpg","jpeg","gif","webp","bmp","svg"].includes(Ze)?"image":["mp4","webm","ogg","mov","avi","mkv"].includes(Ze)?"video":["mp3","wav","ogg","aac","flac","m4a"].includes(Ze)?"audio":"unknown"}const ie=fe(!1),te=fe(""),Z=fe("unknown"),he=fe("");function pe(ze,Ze){ze&&(te.value=ze,Z.value=Y(ze),he.value=Ze,ie.value=!0)}function Ce(){ie.value=!1,te.value=""}function Qe(){const ze=[];return A.value.forEach(Ze=>{var gt;ze.push(Ze),(gt=Ze.sonAssets)!=null&>.length&&ze.push(...Ze.sonAssets)}),ze}function ke(ze){var Ze;for(const gt of A.value){if(gt.id===ze)return gt;const St=(Ze=gt.sonAssets)==null?void 0:Ze.find(Pt=>Pt.id===ze);if(St)return St}}const me=X(()=>Qe().filter(ze=>ze.promptState=="生成中")),_e=X(()=>Qe().filter(ze=>ze.state==="生成中"));let Te=null,De=null;async function Ye(){if(me.value.length===0)return;const ze=me.value.map(Ze=>Ze.id);try{const{data:Ze}=await mn.post("/assets/pollingPromptAssets",{ids:ze});Array.isArray(Ze)&&Ze.length&&(Ze.forEach(gt=>{const St=ke(gt.id);St&&(St.promptState=gt.promptState,gt.prompt!==void 0&&(St.prompt=gt.prompt))}),w(d.value))}catch(Ze){console.error("轮询提示词状态失败:",Ze)}}async function ot(){if(_e.value.length===0)return;const ze=_e.value.map(Ze=>Ze.id);try{const{data:Ze}=await mn.post("/assets/pollingImageAssets",{ids:ze});Array.isArray(Ze)&&Ze.length&&(Ze.forEach(gt=>{const St=ke(gt.id);St&&(St.state=gt.state,gt.filePath!==void 0&&(St.filePath=gt.filePath),gt.src!==void 0&&(St.src=gt.src),!gt.src&>.filePath&>.state!=="生成中"&&(St.src=gt.filePath))}),w(d.value))}catch(Ze){console.error("轮询图片生成状态失败:",Ze)}}function We(){Te||(Te=setInterval(async()=>{if(me.value.length===0){et();return}await Ye()},3e3))}function et(){Te&&(clearInterval(Te),Te=null)}function st(){De||(De=setInterval(async()=>{if(_e.value.length===0){Me();return}await ot()},3e3))}function Me(){De&&(clearInterval(De),De=null)}return pt(me,ze=>{ze.length>0?We():et()}),pt(_e,ze=>{ze.length>0?st():Me()}),(ze,Ze)=>{const gt=dL,St=Si,Pt=y1,dn=Ev,on=Wu,pn=Wc,ni=hL,Zn=_n("i-magic"),Pi=jne,rr=Mne,Hr=Ine,Bo=gc,lo=p2,Fr=uL,is=pA,yi=A2;return xe(),Ge("div",bjo,[ge("div",wjo,[c(Hr,{modelValue:Ae(d),"onUpdate:modelValue":Ze[3]||(Ze[3]=Gt=>Fn(d)?d.value=Gt:null),onChange:y},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(a),(Gt,gi)=>(xe(),Ut(rr,{key:gi,value:Gt.value},{label:Oe(()=>[ge("div",Ojo,[(xe(),Ut(Bd(Gt.icon),{theme:"outline",size:"20"})),ge("span",null,Pe(Gt.name),1)])]),default:Oe(()=>[ge("div",yjo,[ge("div",Cjo,[c(dn,null,{default:Oe(()=>[c(St,{theme:"primary",onClick:ri=>T(Gt.value)},{icon:Oe(()=>[c(gt,{name:"add"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.addPrefix"))+Pe(Gt.name),1)]),_:2},1032,["onClick"]),c(Pt,{placement:"bottom"},{content:Oe(()=>[ge("div",_jo,[ge("div",Sjo,[ge("span",{onClick:Ze[0]||(Ze[0]=ri=>B(1))},Pe(ze.$t("workbench.assets.generatePrompt")),1)]),ge("div",Ljo,[ge("span",{onClick:Ze[1]||(Ze[1]=ri=>B(2))},Pe(ze.$t("workbench.assets.generateImage")),1)])])]),default:Oe(()=>[Ae(d)!="clip"?(xe(),Ut(St,{key:0,theme:"primary"},{icon:Oe(()=>[c(gt,{name:"indent-left"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.batchGenerate")),1)]),_:1})):nn("",!0)]),_:1}),c(St,{theme:"default",variant:"outline",onClick:W},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.batchDelete")),1)]),_:1})]),_:2},1024),ge("div",xjo,[c(on,{modelValue:Ae(u),"onUpdate:modelValue":Ze[2]||(Ze[2]=ri=>Fn(u)?u.value=ri:null),placeholder:ze.$t("workbench.assets.searchPlaceholder"),clearable:"",style:{width:"260px"}},null,8,["modelValue","placeholder"]),c(St,{style:{"margin-left":"5px"},onClick:b},{icon:Oe(()=>[c(gt,{name:"search"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.search")),1)]),_:1})])]),ge("div",Ejo,[Ae(d)!=="clip"?(xe(),Ut(Pi,{key:0,columns:$,data:Ae(A),"selected-row-keys":Ae(g),"expanded-row-keys":Ae(v),"row-key":"id",hover:"",height:"calc(100vh - 300px)",stripe:"",size:"small",pagination:Ae(p),loading:Ae(f),"lazy-load":"","table-layout":"fixed","select-on-row-click":!1,onSelectChange:re,onExpandChange:oe,onPageChange:se},{expandedRow:Oe(({row:ri})=>[ge("div",Tjo,[c(Pi,{columns:G,data:ri.sonAssets||[],"selected-row-keys":Ae(m),"row-key":"id",hover:"",size:"small","table-layout":"fixed","select-on-row-click":!1,onSelectChange:J},{previewWithLoading:Oe(({row:tr})=>[ge("div",Qjo,[tr.state==="生成中"?(xe(),Ge("div",Djo,[c(pn,{size:"small"}),ge("span",Bjo,Pe(ze.$t("workbench.assets.generating")),1)])):(xe(),Ut(ni,{key:1,images:[tr.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:ht})=>[ge("div",{class:"imageTrigger",onClick:At=>tr.src&&ht()},[tr.src?(xe(),Ge("img",{key:0,src:tr.src,alt:tr.name,class:"previewImage"},null,8,Ijo)):(xe(),Ge("div",Mjo,[c(gt,{name:"image",size:"24px"})])),tr.src?(xe(),Ge("div",Pjo,[c(gt,{name:"browse",size:"20px"}),ge("span",Fjo,Pe(ze.$t("workbench.assets.preview")),1)])):nn("",!0)],8,Rjo)]),_:2},1032,["images"]))])]),prompt:Oe(({row:tr})=>[ge("div",Njo,[tr.promptState==="生成中"?(xe(),Ut(pn,{key:0,size:"small",style:{"margin-right":"4px"}})):nn("",!0),ge("span",{class:Eo({"generating-text":tr.promptState==="生成中"})},Pe(tr.prompt),3)])]),operation:Oe(({row:tr})=>[c(dn,{size:0},{default:Oe(()=>[c(St,{theme:"primary",variant:"text",disabled:k(tr.id),onClick:ht=>ee(tr)},{icon:Oe(()=>[c(Zn,{size:18})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.generate")),1)]),_:1},8,["disabled","onClick"]),c(St,{theme:"primary",variant:"text",onClick:ht=>de(tr)},{icon:Oe(()=>[c(gt,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.edit")),1)]),_:1},8,["onClick"]),c(St,{theme:"danger",variant:"text",disabled:k(tr.id),onClick:ht=>z(tr)},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["data","selected-row-keys"])])]),preview:Oe(({row:ri})=>[ge("div",Ujo,[c(ni,{images:[ri.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:tr})=>[ge("div",{class:"imageTrigger",onClick:ht=>ri.src&&tr()},[ri.src?(xe(),Ge("img",{key:0,src:ri.src,alt:ri.name,class:"previewImage"},null,8,Wjo)):(xe(),Ge("div",Vjo,[c(gt,{name:"image",size:"24px"})])),ri.src?(xe(),Ge("div",zjo,[c(gt,{name:"browse",size:"20px"}),ge("span",Hjo,Pe(ze.$t("workbench.assets.preview")),1)])):nn("",!0)],8,jjo)]),_:2},1032,["images"])])]),prompt:Oe(({row:ri})=>[ge("div",$jo,[ri.promptState==="生成中"?(xe(),Ut(pn,{key:0,size:"small",style:{"margin-right":"4px"}})):nn("",!0),ge("span",{class:Eo({"generating-text":ri.promptState==="生成中"})},Pe(ri.prompt),3)])]),previewWithLoading:Oe(({row:ri})=>[ge("div",Xjo,[ri.state==="生成中"?(xe(),Ge("div",Gjo,[c(pn,{size:"small"}),ge("span",Yjo,Pe(ze.$t("workbench.assets.generating")),1)])):(xe(),Ut(ni,{key:1,images:[ri.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:tr})=>[ge("div",{class:"imageTrigger",onClick:ht=>ri.src&&tr()},[ri.src?(xe(),Ge("img",{key:0,src:ri.src,alt:ri.name,class:"previewImage"},null,8,qjo)):(xe(),Ge("div",Kjo,[c(gt,{name:"image",size:"24px"})])),ri.src?(xe(),Ge("div",Jjo,[c(gt,{name:"browse",size:"20px"}),ge("span",eWo,Pe(ze.$t("workbench.assets.preview")),1)])):nn("",!0)],8,Zjo)]),_:2},1032,["images"]))])]),startTime:Oe(({row:ri})=>[ge("span",null,Pe(Ae(JB)(ri.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),operation:Oe(({row:ri})=>[c(dn,{size:0},{default:Oe(()=>[c(St,{theme:"primary",variant:"text",disabled:k(ri.id),onClick:tr=>ee(ri)},{icon:Oe(()=>[c(Zn,{size:18})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.generate")),1)]),_:1},8,["disabled","onClick"]),c(St,{theme:"primary",variant:"text",onClick:tr=>de(ri)},{icon:Oe(()=>[c(gt,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.edit")),1)]),_:1},8,["onClick"]),c(St,{theme:"danger",variant:"text",disabled:k(ri.id),onClick:tr=>z(ri)},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["data","selected-row-keys","expanded-row-keys","pagination","loading"])):nn("",!0),Ae(d)=="clip"?(xe(),Ut(Pi,{key:1,columns:q,data:Ae(A),"selected-row-keys":Ae(g),"expanded-row-keys":Ae(v),"row-key":"id",hover:"",stripe:"",size:"small",pagination:Ae(p),loading:Ae(f),"lazy-load":"","table-layout":"fixed",onSelectChange:re,onExpandChange:oe,onPageChange:se},{preview:Oe(({row:ri})=>[ge("div",tWo,[Y(ri.src)==="image"?(xe(),Ut(ni,{key:0,images:[ri.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:tr})=>[ge("div",{class:"mediaTrigger",onClick:ht=>ri.src&&tr()},[ge("img",{src:ri.src,alt:ri.name},null,8,iWo),ge("div",rWo,[c(gt,{name:"browse",size:"20px"}),ge("span",oWo,Pe(ze.$t("workbench.assets.preview")),1)])],8,nWo)]),_:2},1032,["images"])):Y(ri.src)==="video"?(xe(),Ge("div",{key:1,class:"mediaTrigger videoThumb",onClick:tr=>pe(ri.src,ri.name)},[ge("video",{src:ri.src,class:"thumbVideo"},null,8,aWo),ge("div",lWo,[c(gt,{name:"play-circle",size:"24px"}),ge("span",cWo,Pe(ze.$t("workbench.assets.play")),1)])],8,sWo)):Y(ri.src)==="audio"?(xe(),Ge("div",{key:2,class:"mediaTrigger audioThumb",onClick:tr=>pe(ri.src,ri.name)},[c(gt,{name:"music",size:"28px"}),ge("div",uWo,[c(gt,{name:"play-circle",size:"24px"}),ge("span",hWo,Pe(ze.$t("workbench.assets.play")),1)])],8,dWo)):(xe(),Ge("div",fWo,[c(gt,{name:"image",size:"24px"})]))])]),startTime:Oe(({row:ri})=>[ge("span",null,Pe(Ae(JB)(ri.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),operation:Oe(({row:ri})=>[c(dn,{size:0},{default:Oe(()=>[c(St,{theme:"primary",variant:"text",onClick:tr=>de(ri)},{icon:Oe(()=>[c(gt,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.edit")),1)]),_:1},8,["onClick"]),c(St,{theme:"danger",variant:"text",onClick:tr=>z(ri)},{icon:Oe(()=>[c(gt,{name:"delete"})]),default:Oe(()=>[Bt(" "+Pe(ze.$t("workbench.assets.delete")),1)]),_:1},8,["onClick"])]),_:2},1024)]),_:1},8,["data","selected-row-keys","expanded-row-keys","pagination","loading"])):nn("",!0)])])]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),c(jUo,{modelValue:Ae(_),"onUpdate:modelValue":Ze[4]||(Ze[4]=Gt=>Fn(_)?_.value=Gt:null),type:Ae(d),title:h[Ae(d)],formData:Ae(C),onGetFilteredData:Ze[5]||(Ze[5]=Gt=>w(Ae(d)))},null,8,["modelValue","type","title","formData"]),c(pjo,{modelValue:Ae(le),"onUpdate:modelValue":Ze[6]||(Ze[6]=Gt=>Fn(le)?le.value=Gt:null),onUpdate:O,formData:Ae(ue)},null,8,["modelValue","formData"]),c(Bo,{visible:Ae(ie),"onUpdate:visible":Ze[7]||(Ze[7]=Gt=>Fn(ie)?ie.value=Gt:null),header:Ae(he)||ze.$t("workbench.assets.mediaPreview"),footer:!1,width:"600px",placement:"center",destroyOnClose:"",onClose:Ce},{default:Oe(()=>[ge("div",gWo,[Ae(Z)==="video"?(xe(),Ge("video",{key:0,src:Ae(te),controls:"",autoplay:"",class:"mediaPlayer videoPlayer"},null,8,mWo)):Ae(Z)==="audio"?(xe(),Ge("div",kWo,[ge("div",vWo,[c(gt,{name:"music",size:"64px"})]),ge("p",AWo,Pe(Ae(he)),1),ge("audio",{src:Ae(te),controls:"",autoplay:"",class:"mediaPlayer audioPlayer"},null,8,pWo)])):nn("",!0)])]),_:1},8,["visible","header"]),c(Bo,{visible:Ae(D),"onUpdate:visible":Ze[10]||(Ze[10]=Gt=>Fn(D)?D.value=Gt:null),header:Ae(M),width:"600px",top:"10vh",placement:"center",destroyOnClose:"",onConfirm:R,onClose:Ze[11]||(Ze[11]=Gt=>D.value=!1)},{default:Oe(()=>[ge("div",bWo,[ge("span",null,Pe(ze.$t("workbench.assets.confirmBatch",{type:Ae(M)})),1),c(yi,{labelAlign:"top"},{default:Oe(()=>[Ae(M)===ze.$t("workbench.assets.batchGenImage")?(xe(),Ut(lo,{key:0,label:ze.$t("workbench.assets.model"),name:"selectValue"},{default:Oe(()=>[c(T8,{modelValue:Ae(P),"onUpdate:modelValue":Ze[8]||(Ze[8]=Gt=>Fn(P)?P.value=Gt:null),type:"image"},null,8,["modelValue"])]),_:1},8,["label"])):nn("",!0),Ae(M)===ze.$t("workbench.assets.batchGenImage")?(xe(),Ut(lo,{key:1,label:ze.$t("workbench.assets.resolution"),name:"resolution"},{default:Oe(()=>[c(is,{modelValue:Ae(Q),"onUpdate:modelValue":Ze[9]||(Ze[9]=Gt=>Fn(Q)?Q.value=Gt:null),placeholder:ze.$t("workbench.assets.resolutionPh")},{default:Oe(()=>[c(Fr,{key:"1K",label:"1K",value:"1K"}),c(Fr,{key:"2K",label:"2K",value:"2K"}),c(Fr,{key:"4K",label:"4K",value:"4K"})]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"])):nn("",!0)]),_:1})])]),_:1},8,["visible","header"])])}}}),SUn=oo(wWo,[["__scopeId","data-v-afc25f42"]]),OWo=Object.freeze(Object.defineProperty({__proto__:null,default:SUn},Symbol.toStringTag,{value:"Module"}));function jV(e={}){const{types:t,clipMediaTypes:n,multiple:r=!0,title:o=window.$t("common.selectAssets")}=e;return new Promise(s=>{const a=document.createElement("div");document.body.appendChild(a);const l=fe(!1),d=fe();let u=!1;const h=()=>{p8(null,a),a.remove()},g=v=>{u||(u=!0,l.value=!1,m(),s(v))},m=()=>{var k,A;const v=xn(gc,{visible:l.value,header:o,width:"80%",top:"5vh",destroyOnClose:!0,confirmBtn:window.$t("common.confirm"),cancelBtn:window.$t("common.cancel"),onConfirm:()=>{var C,_,S;const p=((C=d.value)==null?void 0:C.selectedRowKeys)||[],b=((_=d.value)==null?void 0:_.selectedSubRowKeys)||[],w=((S=d.value)==null?void 0:S.tableData)||[],O=w.filter(L=>p.includes(L.id)),y=[];w.forEach(L=>{var E;(E=L.sonAssets)==null||E.forEach(T=>{b.includes(T.id)&&y.push(T)})}),g([...O,...y])},onClose:()=>g([]),onCancel:()=>g([]),onClosed:()=>h()},{default:()=>xn("div",{style:"height: 72vh; overflow: auto;"},[xn(SUn,{ref:d,selectorMode:!0,allowedTypes:t,clipMediaTypes:n,multiple:r})])}),f=(A=(k=document.querySelector("#app"))==null?void 0:k.__vue_app__)==null?void 0:A._context;f&&(v.appContext=f),p8(v,a)};m(),ai(()=>{l.value=!0,m()})})}const yWo={class:"details"},CWo={class:"assets-section"},_Wo={class:"assets-header"},SWo={key:0,class:"assets-list"},LWo={key:1,class:"assets-empty"},xWo=Je({__name:"editScript",props:Fc({item:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["searchScripts"],["update:modelValue"]),setup(e,{emit:t}){const n=Pf(e,"modelValue"),r=e,o=fe([]);pt(()=>{var u;return(u=r.item)==null?void 0:u.relatedAssets},u=>{o.value=(u==null?void 0:u.map(h=>({id:h.id,name:h.name})))??[]},{immediate:!0});async function s(){const u=await jV({title:$t("workbench.script.edit.msg.selectAssetsTitle"),types:["role","tool","scene"]});if(u.length){const h=new Set(o.value.map(g=>g.id));for(const g of u)h.has(g.id)||o.value.push({id:g.id,name:g.name})}}function a(u){o.value=o.value.filter(h=>h.id!==u)}const l=t;async function d(){try{await mn.post("/script/updateScript",{id:r.item.id,name:r.item.name,content:r.item.content,assets:o.value.map(u=>u.id)}),window.$message.success($t("workbench.script.edit.msg.updateSuccess"))}catch{window.$message.error($t("workbench.script.edit.msg.updateFailed"))}finally{l("searchScripts")}n.value=!1}return(u,h)=>{const g=Zbi,m=Wu,v=p2,f=c2,k=_n("i-plus"),A=Si,p=Sg,b=A2,w=gc;return xe(),Ge("div",yWo,[c(w,{visible:n.value,"onUpdate:visible":h[2]||(h[2]=O=>n.value=O),width:"60vw",top:"5vh",onConfirm:d},{header:Oe(()=>[c(g,{level:"h4",style:{margin:"0"}},{default:Oe(()=>[Bt(Pe(u.$t("workbench.script.edit.title")),1)]),_:1})]),default:Oe(()=>[c(b,{data:r.item,"label-align":"top",class:"detailsForm"},{default:Oe(()=>[c(v,{label:u.$t("workbench.script.edit.scriptName"),name:"name"},{default:Oe(()=>[c(m,{modelValue:r.item.name,"onUpdate:modelValue":h[0]||(h[0]=O=>r.item.name=O),maxlength:10,placeholder:u.$t("workbench.script.edit.scriptNamePh")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:u.$t("workbench.script.edit.scriptContent"),name:"content"},{default:Oe(()=>[c(f,{modelValue:r.item.content,"onUpdate:modelValue":h[1]||(h[1]=O=>r.item.content=O),placeholder:u.$t("workbench.script.edit.scriptContentPh"),autosize:{minRows:20,maxRows:20}},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(v,{label:u.$t("workbench.script.edit.relatedAssets"),name:"assets"},{default:Oe(()=>[ge("div",CWo,[ge("div",_Wo,[c(A,{size:"small",theme:"primary",variant:"outline",onClick:s},{icon:Oe(()=>[c(k)]),default:Oe(()=>[Bt(" "+Pe(u.$t("workbench.script.edit.selectAssets")),1)]),_:1})]),Ae(o).length?(xe(),Ge("div",SWo,[(xe(!0),Ge(sn,null,Bi(Ae(o),O=>(xe(),Ut(p,{key:O.id,closable:"",variant:"light-outline",onClose:y=>a(O.id)},{default:Oe(()=>[Bt(Pe(O.name),1)]),_:2},1032,["onClose"]))),128))])):(xe(),Ge("div",LWo,Pe(u.$t("workbench.script.edit.noAssets")),1))])]),_:1},8,["label"])]),_:1},8,["data"])]),_:1},8,["visible"])])}}}),EWo=oo(xWo,[["__scopeId","data-v-2dc13535"]]),TWo={class:"addScript"},QWo={class:"data"},DWo={class:"section name"},BWo={class:"section-label"},RWo={class:"section upload"},IWo={class:"section-label"},MWo={class:"dragIcon"},PWo={class:"upload-text"},FWo={class:"upload-hint"},NWo={class:"section content"},UWo={class:"section-label"},jWo={class:"section assets-section"},WWo={class:"assets-header"},VWo={class:"section-label"},zWo={key:0,class:"assets-list"},HWo={key:1,class:"assets-empty"},$Wo={class:"dialog-footer"},XWo=Je({__name:"addScript",props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:Fc(["searchScripts"],["update:modelValue"]),setup(e,{emit:t}){const{project:n}=xs(ph()),r=Pf(e,"modelValue"),o=fe(null),s=fe(""),a=fe([]),l=fe(""),d=fe(!1);function u(){var y;(y=o.value)==null||y.triggerUpload()}async function h(y){const C=await y.arrayBuffer();return y.type==="text/plain"?new TextDecoder().decode(C):(await _p.extractRawText({arrayBuffer:C})).value}async function g(y){const C=y.raw;if(!C)return window.$message.error($t("workbench.script.add.msg.fileReadFailed")),!1;const _=["text/plain","application/vnd.openxmlformats-officedocument.wordprocessingml.document"];if(C.type==="application/msword")return window.$message.warning($t("workbench.script.add.msg.docNotSupported")),a.value=[],!1;if(!_.includes(C.type))return window.$message.error($t("workbench.script.add.msg.unsupportedType")),a.value=[],!1;if(C.size>10*1024*1024)return window.$message.error($t("workbench.script.add.msg.fileTooLarge")),a.value=[],!1;const S=Wh({fullscreen:!0,attach:"body",text:$t("workbench.script.add.msg.parsing")});try{s.value=await h(C),l.value=s.value}catch(L){console.error("文件解析失败:",L),window.$message.error($t("workbench.script.add.msg.parseFailed")),a.value=[]}finally{S.hide()}return!1}async function m(y){var _;const C=(_=y.dataTransfer)==null?void 0:_.files;if(C&&C.length>0){a.value=[];const S=C[0];await g({raw:S})}}const v=fe([]);async function f(){const y=await jV({title:$t("workbench.script.add.msg.selectAssetsTitle"),types:["role","tool","scene"]});if(y.length){const C=new Set(v.value.map(_=>_.id));for(const _ of y)C.has(_.id)||v.value.push({id:_.id,name:_.name})}}function k(y){v.value=v.value.filter(C=>C.id!==y)}function A(){r.value=!1,l.value="",s.value="",a.value=[],v.value=[]}function p(){l.value="",s.value="",a.value=[],v.value=[],r.value=!1}const b=t;async function w(){var y;if(!l.value.trim()){window.$message.warning($t("workbench.script.add.msg.enterContent"));return}if(!O.value.trim()){window.$message.warning($t("workbench.script.add.msg.enterName"));return}d.value=!0;try{await mn.post("/script/addScript",{name:O.value,content:l.value,projectId:(y=n.value)==null?void 0:y.id,assets:v.value.map(C=>C.id)}),window.$message.success($t("workbench.script.add.msg.addSuccess")),p(),b("searchScripts")}catch(C){console.error("添加剧本失败:",C),window.$message.error(C.message??$t("workbench.script.add.msg.addFailed"))}finally{d.value=!1}}const O=fe("");return(y,C)=>{const _=Wu,S=X4e,L=_n("i-upload-one"),E=c2,T=_n("i-plus"),D=Si,P=Sg,Q=gc;return xe(),Ge("div",TWo,[c(Q,{visible:r.value,"onUpdate:visible":C[4]||(C[4]=M=>r.value=M),width:"60vw",top:"5vh",header:y.$t("workbench.script.add.title"),closable:!1,maskClosable:!1},{footer:Oe(()=>[ge("div",$Wo,[c(D,{theme:"default",onClick:A},{default:Oe(()=>[Bt(Pe(y.$t("workbench.script.add.cancel")),1)]),_:1}),c(D,{theme:"primary",loading:Ae(d),onClick:w},{default:Oe(()=>[Bt(Pe(y.$t("workbench.script.add.confirm")),1)]),_:1},8,["loading"])])]),default:Oe(()=>[ge("div",QWo,[ge("div",DWo,[ge("span",BWo,Pe(y.$t("workbench.script.add.scriptName")),1),c(_,{modelValue:Ae(O),"onUpdate:modelValue":C[0]||(C[0]=M=>Fn(O)?O.value=M:null),placeholder:y.$t("workbench.script.add.scriptNamePh")},null,8,["modelValue","placeholder"])]),ge("div",RWo,[ge("span",IWo,Pe(y.$t("workbench.script.add.uploadFile")),1),ge("div",{class:"upload-area",onClick:u,onDragover:C[2]||(C[2]=Mr(()=>{},["prevent"])),onDrop:Mr(m,["prevent"])},[c(S,{ref_key:"uploadRef",ref:o,modelValue:Ae(a),"onUpdate:modelValue":C[1]||(C[1]=M=>Fn(a)?a.value=M:null),theme:"file",multiple:!1,max:1,"before-upload":g,style:{display:"none"}},null,8,["modelValue"]),ge("div",MWo,[c(L,{theme:"outline",size:"32",fill:"var(--td-brand-color)"})]),ge("p",PWo,Pe(y.$t("workbench.script.add.dragUpload")),1),ge("p",FWo,Pe(y.$t("workbench.script.add.uploadHint")),1)],32)]),ge("div",NWo,[ge("span",UWo,Pe(y.$t("workbench.script.add.scriptContent")),1),c(E,{modelValue:Ae(l),"onUpdate:modelValue":C[3]||(C[3]=M=>Fn(l)?l.value=M:null),placeholder:y.$t("workbench.script.add.scriptContentPh"),name:"description",autosize:{minRows:12,maxRows:12}},null,8,["modelValue","placeholder"])]),ge("div",jWo,[ge("div",WWo,[ge("span",VWo,Pe(y.$t("workbench.script.add.relatedAssets")),1),c(D,{size:"small",theme:"primary",variant:"outline",onClick:f},{icon:Oe(()=>[c(T)]),default:Oe(()=>[Bt(" "+Pe(y.$t("workbench.script.add.selectAssets")),1)]),_:1})]),Ae(v).length?(xe(),Ge("div",zWo,[(xe(!0),Ge(sn,null,Bi(Ae(v),M=>(xe(),Ut(P,{key:M.id,closable:"",variant:"light-outline",onClose:B=>k(M.id)},{default:Oe(()=>[Bt(Pe(M.name),1)]),_:2},1032,["onClose"]))),128))])):(xe(),Ge("div",HWo,Pe(y.$t("workbench.script.add.noAssets")),1))])])]),_:1},8,["visible","header"])])}}}),GWo=oo(XWo,[["__scopeId","data-v-b9b0384d"]]),YWo={class:"script"},ZWo={class:"actionBar"},qWo={class:"actionBar-left f ac"},KWo={key:0,class:"actionBar-right f ac"},JWo={class:"contentArea"},eVo={key:0,class:"emptyState"},tVo={key:1,class:"scriptsList f w"},nVo=["onClick"],iVo={class:"cardHeader"},rVo={class:"cardTitle"},oVo={class:"content"},sVo={class:"del"},aVo=Je({__name:"index",setup(e){const{otherSetting:t}=xs(ku()),{project:n}=xs(ph()),r=fe([]),o=fe(""),s=fe(!1),a=fe([]),l=fe(!1),d=X(()=>r.value.length>0&&a.value.length===r.value.length);function u(E){const T=a.value.indexOf(E);T===-1?a.value.push(E):a.value.splice(T,1)}function h(E){E?a.value=r.value.map(T=>T.id):a.value=[]}async function g(){var E;try{const T=await mn.post("/script/getScrptApi",{projectId:(E=n.value)==null?void 0:E.id,name:o.value});r.value=T.data}catch(T){console.error("搜索剧本失败:",T),window.$message.error($t("workbench.script.msg.searchFailed"))}}An(g);function m(){g()}function v(){s.value=!0}async function f(){if(!a.value.length){window.$message.warning($t("workbench.script.msg.selectsExport"));return}try{const E=await mn.post("/script/exportScript",{id:a.value},{responseType:"blob"}),T=new Blob([E],{type:"application/zip"}),D=URL.createObjectURL(T),P=document.createElement("a");P.href=D,P.download=`script_${new Date().toISOString().slice(0,10)}.zip`,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(D),window.$message.success($t("workbench.script.msg.exportSuccess"))}catch(E){console.error("导出剧本失败:",E),window.$message.error(E.message??$t("workbench.script.msg.exportFailed"))}}const k=fe({id:0,name:"",content:""}),A=fe(!1);function p(E){k.value={...E},A.value=!0}async function b(E){const T=co.confirm({header:$t("workbench.script.msg.deleteHeader"),body:$t("workbench.script.msg.deleteBody"),confirmBtn:$t("workbench.script.msg.deleteConfirm"),cancelBtn:$t("workbench.script.msg.cancel"),theme:"warning",onConfirm:async()=>{try{await mn.post("/script/delScript",{id:[E]}),window.$message.success($t("workbench.script.msg.deleteSuccess")),g(),T.destroy()}catch(D){console.error("删除剧本失败:",D),window.$message.error($t("workbench.script.msg.deleteFailed")),T.destroy()}},onClose:()=>{T.destroy()}})}async function w(){if(!n.value)return window.$message.error($t("workbench.script.msg.projectNotFound"));l.value=!0;try{await mn.post("/script/extractAssets",{scriptIds:a.value,projectId:n.value.id,groupSize:t.value.assetsBatchGenereateSize}),g()}catch(E){window.$message.error((E==null?void 0:E.message)||$t("workbench.script.msg.extractFailed"))}finally{l.value=!1}}async function O(){if(!a.value.length){window.$message.warning($t("workbench.script.msg.selectDelScript"));return}const E=new Set(S.value.map(D=>D.id));if(a.value.some(D=>E.has(D)))return window.$message.error($t("workbench.script.msg.extractingInProgress"));const T=co.confirm({header:$t("workbench.script.msg.batchDeleteHeader"),body:$t("workbench.script.msg.batchDeleteBody",{count:a.value.length}),confirmBtn:$t("workbench.script.msg.deleteConfirm"),cancelBtn:$t("workbench.script.msg.cancel"),theme:"warning",onConfirm:async()=>{try{await mn.post("/script/delScript",{id:a.value}),window.$message.success($t("workbench.script.msg.batchDeleteSuccess")),g(),T.destroy()}catch(D){console.error("删除剧本失败:",D),window.$message.error($t("workbench.script.msg.deleteFailed")),T.destroy()}finally{a.value=[]}},onClose:()=>{T.destroy()}})}let y=null;function C(){y||(y=setInterval(async()=>{if(S.value.length===0){_();return}await L()},3e3))}function _(){y&&(clearInterval(y),y=null)}const S=X(()=>r.value.filter(E=>E.extractState==0));async function L(){if(S.value.length===0)return;const E=S.value.map(T=>T.id);try{const{data:T}=await mn.post("/script/pollScriptAssets",{ids:E});T.length&&g()}catch(T){console.error("轮询事件状态失败:",T)}}return pt(()=>S.value,E=>{E.length>0?C():_()}),Qa(()=>{_()}),(E,T)=>{const D=Wu,P=_n("i-search"),Q=Si,M=_n("i-plus"),B=_n("i-export"),R=_n("i-delete"),I=Xy,F=py,j=Wc,W=Sg,H=el,$=km;return xe(),Ge("div",YWo,[ge("div",ZWo,[ge("div",qWo,[c(D,{placeholder:E.$t("workbench.script.searchPlaceholder"),modelValue:Ae(o),"onUpdate:modelValue":T[0]||(T[0]=G=>Fn(o)?o.value=G:null),class:"searchInput",clearable:"",style:{width:"300px"}},null,8,["placeholder","modelValue"]),c(Q,{theme:"primary",onClick:m},{icon:Oe(()=>[c(P)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.search")),1)]),_:1}),c(Q,{theme:"primary",onClick:v},{icon:Oe(()=>[c(M)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.addScript")),1)]),_:1})]),Ae(r).length?(xe(),Ge("div",KWo,[c(Q,{theme:Ae(d)?"default":"primary",variant:"outline",onClick:T[1]||(T[1]=G=>h(!Ae(d)))},{default:Oe(()=>[Bt(Pe(Ae(d)?E.$t("workbench.script.cancelSelectAll"):E.$t("workbench.script.selectAll")),1)]),_:1},8,["theme"]),c(Q,{theme:"primary",onClick:f,disabled:Ae(a).length===0},{icon:Oe(()=>[c(B)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.exportScript"))+Pe(Ae(a).length?`(${Ae(a).length})`:""),1)]),_:1},8,["disabled"]),c(Q,{theme:"primary",onClick:w,loading:Ae(l),disabled:Ae(a).length===0},{icon:Oe(()=>[c(B)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.extractAssets"))+Pe(Ae(a).length?`(${Ae(a).length})`:""),1)]),_:1},8,["loading","disabled"]),c(Q,{theme:"primary",onClick:O,disabled:Ae(a).length===0},{icon:Oe(()=>[c(R)]),default:Oe(()=>[Bt(" "+Pe(E.$t("workbench.script.deleteScript"))+Pe(Ae(a).length?`(${Ae(a).length})`:""),1)]),_:1},8,["disabled"])])):nn("",!0)]),ge("div",JWo,[Ae(r).length===0?(xe(),Ge("div",eVo,[c(I)])):(xe(),Ge("div",tVo,[(xe(!0),Ge(sn,null,Bi(Ae(r),(G,q)=>(xe(),Ge("div",{key:q,onClick:re=>p(G),class:"scriptCard"},[c($,{shadow:"","hover-shadow":"",style:{width:"400px",cursor:"pointer"}},{header:Oe(()=>[ge("div",iVo,[ge("span",rVo,Pe(G.name),1),c(F,{checked:Ae(a).includes(G.id),onClick:T[2]||(T[2]=Mr(()=>{},["stop"])),onChange:re=>u(G.id),class:"cardCheckbox"},null,8,["checked","onChange"])])]),default:Oe(()=>{var re;return[ge("span",oVo,Pe(G.content),1),(G==null?void 0:G.extractState)==0?(xe(),Ut(j,{key:0,text:E.$t("workbench.script.msg.extracting"),size:"small"},null,8,["text"])):nn("",!0),(G==null?void 0:G.extractState)==2?(xe(),Ut(j,{key:1,text:E.$t("workbench.script.msg.waitExtract"),size:"small"},null,8,["text"])):nn("",!0),(G==null?void 0:G.extractState)==-1?(xe(),Ut(H,{key:2,content:G.errorReason,theme:"light"},{default:Oe(()=>[c(W,{theme:"danger",size:"small"},{default:Oe(()=>[Bt(Pe(E.$t("workbench.script.msg.extractFailed")),1)]),_:1})]),_:1},8,["content"])):(re=G.relatedAssets)!=null&&re.length?(xe(),Ge("div",{key:3,class:"assetTags",onClick:T[3]||(T[3]=Mr(()=>{},["stop"]))},[(xe(!0),Ge(sn,null,Bi(G.relatedAssets,J=>(xe(),Ut(W,{key:J.id,variant:"light-outline",size:"small"},{default:Oe(()=>[Bt(Pe(J.name),1)]),_:2},1024))),128))])):nn("",!0),ge("div",sVo,[c(R,{theme:"outline",size:"18",onClick:Mr(J=>b(G.id),["stop"]),style:{cursor:"pointer"}},null,8,["onClick"])])]}),_:2},1024)],8,nVo))),128))]))]),c(EWo,{modelValue:Ae(A),"onUpdate:modelValue":T[4]||(T[4]=G=>Fn(A)?A.value=G:null),item:Ae(k),onSearchScripts:g},null,8,["modelValue","item"]),c(GWo,{modelValue:Ae(s),"onUpdate:modelValue":T[5]||(T[5]=G=>Fn(s)?s.value=G:null),onSearchScripts:g},null,8,["modelValue"])])}}}),lVo=oo(aVo,[["__scopeId","data-v-235d9376"]]),cVo=Object.freeze(Object.defineProperty({__proto__:null,default:lVo},Symbol.toStringTag,{value:"Module"}));function tp(e){"@babel/helpers - typeof";return tp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tp(e)}function dVo(e,t){if(tp(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(tp(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function LUn(e){var t=dVo(e,"string");return tp(t)=="symbol"?t:t+""}function u0(e,t,n){return(t=LUn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}/** * @tdesign-vue-next/chat v0.5.1 * (c) 2026 tdesign * @license MIT @@ -3451,11 +3451,11 @@ Expected a VNode / Vthunk / VWidget / string but: got: `+v(w.foreignObject)+`. The parent vnode is: -`+v(w.parentVnode),O.foreignObject=w.foreignObject,O.parentVnode=w.parentVnode,O}for(var b=0;b=re.length?$.length:re[le],te=0;te<$.length;te++){var Z=$[te];Z.key?oe.hasOwnProperty(Z.key)||se.push(Z):te>=ie&&se.push(Z)}for(var he,pe=se.slice(),Ce=0,Qe=[],ke=[],me=0;me<$.length;){var _e=$[me];for(he=pe[Ce];he===null&&pe.length;)Qe.push(f(pe,Ce,null)),he=pe[Ce];he&&he.key===_e.key?(Ce++,me++):_e.key?(he&&he.key&&q[he.key]!==me+1?(Qe.push(f(pe,Ce,he.key)),(he=pe[Ce])&&he.key===_e.key?Ce++:ke.push({key:_e.key,to:me})):ke.push({key:_e.key,to:me}),me++):he&&he.key&&Qe.push(f(pe,Ce,he.key))}for(;CeR?B:R,F=0;F=s&&d<=a;if(da))return!0;h=l-1}}return!1}function r(o,s){return o>s?1:-1}return ZGt=function(s,a,l,d){return l&&l.length!==0?(l.sort(r),t(s,a,l,d,0)):{}}}function jqo(){if(eYt)return pEe;eYt=1;var e=xzn(),t=jR(),n=_zn(),r=function(){if(JGt)return KGt;JGt=1;var s=jR();return KGt=function(l,d){return!(!s(l)||!s(d))&&("name"in l&&"name"in d?l.id===d.id:l.init===d.init)}}();function o(s,a){typeof a.destroy=="function"&&t(a)&&a.destroy(s)}return pEe=function(a,l,d){var u=a.type,h=a.vNode,g=a.patch;switch(u){case n.REMOVE:return function(m,v){var f=m.parentNode;return f&&f.removeChild(m),o(m,v),null}(l,h);case n.INSERT:return function(m,v,f){var k=f.render(v,f);return m&&m.appendChild(k),m}(l,g,d);case n.VTEXT:return function(m,v,f,k){var A;if(m.nodeType===3)m.replaceData(0,m.length,f.text),A=m;else{var p=m.parentNode;A=k.render(f,k),p&&A!==m&&p.replaceChild(A,m)}return A}(l,0,g,d);case n.WIDGET:return function(m,v,f,k){var A,p=r(v,f);A=p?f.update(v,m)||m:k.render(f,k);var b=m.parentNode;return b&&A!==m&&b.replaceChild(A,m),p||o(m,v),A}(l,h,g,d);case n.VNODE:return function(m,v,f,k){var A=m.parentNode,p=k.render(f,k);return A&&p!==m&&A.replaceChild(p,m),p}(l,0,g,d);case n.ORDER:return function(m,v){for(var f,k,A,p=m.childNodes,b={},w=0;w=O++?null:p[A.to])}(l,g),l;case n.PROPS:return e(l,g,h.properties),l;case n.THUNK:return function(m,v){return m&&v&&m!==v&&m.parentNode&&m.parentNode.replaceChild(v,m),v}(l,d.patch(l,g,d));default:return l}},pEe}function Wqo(){if(tYt)return bEe;tYt=1;var e=rYt(),t=yot(),n=function(){if(YGt)return AEe;YGt=1;var l=rYt(),d=xzn(),u=Gee(),h=fOe(),g=jR(),m=Szn();return AEe=function v(f,k){var A=k&&k.document||l,p=k?k.warn:null;if(f=m(f).a,g(f))return f.init();if(h(f))return A.createTextNode(f.text);if(!u(f))return p&&p("Item is not a valid virtual dom node",f),null;var b=f.namespace===null?A.createElement(f.tagName):A.createElementNS(f.namespace,f.tagName),w=f.properties;d(b,w);for(var O=f.children,y=0;y=o&&k>=r)return l[d]=u,this.$backtraceSnakes(l,r,o,d)}l[d]=u}return[]}},{key:"$backtraceSnakes",value:function(t,n,r,o){for(var s=[],a={x:r,y:n},l=o;l>0;l--){var d=t[l],u=t[l-1],h=a.x-a.y,g=d[h],m=h===-l||h!==l&&u[h+1]>u[h-1],v=m?h+1:h-1,f=u[v],k=f-v,A=m?f:f+1;s.unshift({xStart:f,xMid:A,xEnd:g}),a.x=f,a.y=k}return s}},{key:"assembleResult",value:function(t,n,r){var o=0,s=[],a={},l={},d={};return ki(t).call(t,function(u,h){var g=u.xStart;if(h===0&&u.xStart!==0)for(var m=0;m0;)o[d]=o[--d];d!==u++&&(o[d]=l)}else for(var h=t(a/2),g=r(e(o,0,h),s),m=r(e(o,h),s),v=g.length,f=m.length,k=0,A=0;k=Se.length)return Me.target=void 0,L(void 0,!0);var ze=Se[Ie];switch(Me.kind){case"keys":return L(ze.key,!1);case"values":return L(ze.value,!1)}return L([ze.key,ze.value],!1)},!0),Te=function(Se){this.entries=[],this.url=null,Se!==void 0&&(w(Se)?this.parseObject(Se):this.parseQuery(typeof Se=="string"?oe(Se,0)==="?"?Y(Se,1):Se:O(Se)))};Te.prototype={type:Q,bindURL:function(Se){this.url=Se,this.update()},parseObject:function(Se){var Ie,ze,Ze,gt,St,Pt,dn,on=this.entries,pn=S(Se);if(pn)for(ze=(Ie=_(Se,pn)).next;!(Ze=r(ze,Ie)).done;){if(St=(gt=_(b(Ze.value))).next,(Pt=r(St,gt)).done||(dn=r(St,gt)).done||!r(St,gt).done)throw new q("Expected sequence with length 2");le(on,{key:O(Pt.value),value:O(dn.value)})}else for(var ni in Se)k(Se,ni)&&le(on,{key:ni,value:O(Se[ni])})},parseQuery:function(Se){if(Se)for(var Ie,ze,Ze=this.entries,gt=z(Se,"&"),St=0;St0?arguments[0]:void 0));s||(this.size=Se.entries.length)},Ye=De.prototype;if(u(Ye,{append:function(Se,Ie){var ze=R(this);E(arguments.length,2),le(ze.entries,{key:O(Se),value:O(Ie)}),s||this.length++,ze.updateURL()},delete:function(Se){for(var Ie=R(this),ze=E(arguments.length,1),Ze=Ie.entries,gt=O(Se),St=ze<2?void 0:arguments[1],Pt=St===void 0?St:O(St),dn=0;dnze.key?1:-1}),Se.updateURL()},forEach:function(Se){for(var Ie,ze=R(this).entries,Ze=A(Se,arguments.length>1?arguments[1]:void 0),gt=0;gt1?et(arguments[1]):{})}}),f(j)){var st=function(Se){return v(this,H),new j(Se,arguments.length>1?et(arguments[1]):{})};H.constructor=st,st.prototype=H,e({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:st})}}return lYt={URLSearchParams:De,getState:R}}var dYt,uYt,hYt,fYt,gYt={};function $qo(){if(uYt)return dYt;uYt=1;var e=Xs(),t=2147483647,n=/[^\0-\u007E]/,r=/[.\u3002\uFF0E\uFF61]/g,o="Overflow: input needs wider integers to process",s=RangeError,a=e(r.exec),l=Math.floor,d=String.fromCharCode,u=e("".charCodeAt),h=e([].join),g=e([].push),m=e("".replace),v=e("".split),f=e("".toLowerCase),k=function(w){return w+22+75*(w<26)},A=function(w,O,y){var C=0;for(w=y?l(w/700):w>>1,w+=l(w/O);w>455;)w=l(w/35),C+=36;return l(C+36*w/(w+38))},p=function(w){var O=[];w=function(j){for(var W=[],H=0,$=j.length;H<$;){var G=u(j,H++);if(G>=55296&&G<=56319&&H<$){var q=u(j,H++);(64512&q)==56320?g(W,((1023&G)<<10)+(1023&q)+65536):(g(W,G),H--)}else g(W,G)}return W}(w);var y,C,_=w.length,S=128,L=0,E=72;for(y=0;y=S&&Cl((t-L)/Q))throw new s(o);for(L+=(P-S)*Q,S=P,y=0;yt)throw new s(o);if(C===S){for(var M=L,B=36;;){var R=B<=E?1:B>=E+26?26:B-E;if(M?@[\\\]^|]/,te=/[\0\t\n\r #/:<>?@[\\\]^|]/,Z=/^[\u0000-\u0020]+/,he=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,pe=/[\t\n\r]/g,Ce=function(At){var Mt,Kt,qn,Zt;if(typeof At=="number"){for(Mt=[],Kt=0;Kt<4;Kt++)q(Mt,At%256),At=D(At/256);return B(Mt,".")}if(kn(At)=="object"){for(Mt="",qn=function(so){for(var Un=null,dt=1,Ne=null,nt=0,bn=0;bn<8;bn++)so[bn]!==0?(nt>dt&&(Un=Ne,dt=nt),Ne=null,nt=0):(Ne===null&&(Ne=bn),++nt);return nt>dt&&(Un=Ne,dt=nt),Un}(At),Kt=0;Kt<8;Kt++)Zt&&At[Kt]===0||(Zt&&(Zt=!1),qn===Kt?(Mt+=Kt?":":"::",Zt=!0):(Mt+=R(At[Kt],16),Kt<7&&(Mt+=":")));return"["+Mt+"]"}return At},Qe={},ke=g({},Qe,{" ":1,'"':1,"<":1,">":1,"`":1}),me=g({},ke,{"#":1,"?":1,"{":1,"}":1}),_e=g({},me,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Te=function(At,Mt){var Kt=f(At,0);return Kt>32&&Kt<127&&!h(Mt,At)?At:encodeURIComponent(At)},De={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Ye=function(At,Mt){var Kt;return At.length===2&&M(se,Q(At,0))&&((Kt=Q(At,1))===":"||!Mt&&Kt==="|")},ot=function(At){var Mt;return At.length>1&&Ye($(At,0,2))&&(At.length===2||(Mt=Q(At,2))==="/"||Mt==="\\"||Mt==="?"||Mt==="#")},We=function(At){return At==="."||G(At)==="%2e"},et={},st={},Me={},Se={},Ie={},ze={},Ze={},gt={},St={},Pt={},dn={},on={},pn={},ni={},Zn={},Pi={},rr={},Hr={},Bo={},lo={},Fr={},is=function ht(At,Mt,Kt){var qn,Zt,so,Un=A(At);if(Mt){if(Zt=this.parse(Un))throw new E(Zt);this.searchParams=null}else{if(Kt!==void 0&&(qn=new ht(Kt,!0)),Zt=this.parse(Un,null,qn))throw new E(Zt);(so=S(new _)).bindURL(this),this.searchParams=so}};is.prototype={type:"URL",parse:function(At,Mt,Kt){var qn,Zt,so,Un,dt,Ne=this,nt=Mt||et,bn=0,hn="",En=!1,wi=!1,Ue=!1;for(At=A(At),Mt||(Ne.scheme="",Ne.username="",Ne.password="",Ne.host=null,Ne.port=null,Ne.path=[],Ne.query=null,Ne.fragment=null,Ne.cannotBeABaseURL=!1,At=j(At,Z,""),At=j(At,he,"$1")),At=j(At,pe,""),qn=m(At);bn<=qn.length;){switch(Zt=qn[bn],nt){case et:if(!Zt||!M(se,Zt)){if(Mt)return re;nt=Me;continue}hn+=G(Zt),nt=st;break;case st:if(Zt&&(M(le,Zt)||Zt==="+"||Zt==="-"||Zt==="."))hn+=G(Zt);else{if(Zt!==":"){if(Mt)return re;hn="",nt=Me,bn=0;continue}if(Mt&&(Ne.isSpecial()!==h(De,hn)||hn==="file"&&(Ne.includesCredentials()||Ne.port!==null)||Ne.scheme==="file"&&!Ne.host))return;if(Ne.scheme=hn,Mt)return void(Ne.isSpecial()&&De[Ne.scheme]===Ne.port&&(Ne.port=null));hn="",Ne.scheme==="file"?nt=ni:Ne.isSpecial()&&Kt&&Kt.scheme===Ne.scheme?nt=Se:Ne.isSpecial()?nt=gt:qn[bn+1]==="/"?(nt=Ie,bn++):(Ne.cannotBeABaseURL=!0,F(Ne.path,""),nt=Bo)}break;case Me:if(!Kt||Kt.cannotBeABaseURL&&Zt!=="#")return re;if(Kt.cannotBeABaseURL&&Zt==="#"){Ne.scheme=Kt.scheme,Ne.path=v(Kt.path),Ne.query=Kt.query,Ne.fragment="",Ne.cannotBeABaseURL=!0,nt=Fr;break}nt=Kt.scheme==="file"?ni:ze;continue;case Se:if(Zt!=="/"||qn[bn+1]!=="/"){nt=ze;continue}nt=St,bn++;break;case Ie:if(Zt==="/"){nt=Pt;break}nt=Hr;continue;case ze:if(Ne.scheme=Kt.scheme,Zt===e)Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.query=Kt.query;else if(Zt==="/"||Zt==="\\"&&Ne.isSpecial())nt=Ze;else if(Zt==="?")Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.query="",nt=lo;else{if(Zt!=="#"){Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.path.length--,nt=Hr;continue}Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.query=Kt.query,Ne.fragment="",nt=Fr}break;case Ze:if(!Ne.isSpecial()||Zt!=="/"&&Zt!=="\\"){if(Zt!=="/"){Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,nt=Hr;continue}nt=Pt}else nt=St;break;case gt:if(nt=St,Zt!=="/"||Q(hn,bn+1)!=="/")continue;bn++;break;case St:if(Zt!=="/"&&Zt!=="\\"){nt=Pt;continue}break;case Pt:if(Zt==="@"){En&&(hn="%40"+hn),En=!0,so=m(hn);for(var ut=0;ut65535)return oe;Ne.port=Ne.isSpecial()&&Cn===De[Ne.scheme]?null:Cn,hn=""}if(Mt)return;nt=rr;continue}return oe}hn+=Zt;break;case ni:if(Ne.scheme="file",Zt==="/"||Zt==="\\")nt=Zn;else{if(!Kt||Kt.scheme!=="file"){nt=Hr;continue}switch(Zt){case e:Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.query=Kt.query;break;case"?":Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.query="",nt=lo;break;case"#":Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.query=Kt.query,Ne.fragment="",nt=Fr;break;default:ot(B(v(qn,bn),""))||(Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.shortenPath()),nt=Hr;continue}}break;case Zn:if(Zt==="/"||Zt==="\\"){nt=Pi;break}Kt&&Kt.scheme==="file"&&!ot(B(v(qn,bn),""))&&(Ye(Kt.path[0],!0)?F(Ne.path,Kt.path[0]):Ne.host=Kt.host),nt=Hr;continue;case Pi:if(Zt===e||Zt==="/"||Zt==="\\"||Zt==="?"||Zt==="#"){if(!Mt&&Ye(hn))nt=Hr;else if(hn===""){if(Ne.host="",Mt)return;nt=rr}else{if(Un=Ne.parseHost(hn))return Un;if(Ne.host==="localhost"&&(Ne.host=""),Mt)return;hn="",nt=rr}continue}hn+=Zt;break;case rr:if(Ne.isSpecial()){if(nt=Hr,Zt!=="/"&&Zt!=="\\")continue}else if(Mt||Zt!=="?")if(Mt||Zt!=="#"){if(Zt!==e&&(nt=Hr,Zt!=="/"))continue}else Ne.fragment="",nt=Fr;else Ne.query="",nt=lo;break;case Hr:if(Zt===e||Zt==="/"||Zt==="\\"&&Ne.isSpecial()||!Mt&&(Zt==="?"||Zt==="#")){if((dt=G(dt=hn))===".."||dt==="%2e."||dt===".%2e"||dt==="%2e%2e"?(Ne.shortenPath(),Zt==="/"||Zt==="\\"&&Ne.isSpecial()||F(Ne.path,"")):We(hn)?Zt==="/"||Zt==="\\"&&Ne.isSpecial()||F(Ne.path,""):(Ne.scheme==="file"&&!Ne.path.length&&Ye(hn)&&(Ne.host&&(Ne.host=""),hn=Q(hn,0)+":"),F(Ne.path,hn)),hn="",Ne.scheme==="file"&&(Zt===e||Zt==="?"||Zt==="#"))for(;Ne.path.length>1&&Ne.path[0]==="";)W(Ne.path);Zt==="?"?(Ne.query="",nt=lo):Zt==="#"&&(Ne.fragment="",nt=Fr)}else hn+=Te(Zt,me);break;case Bo:Zt==="?"?(Ne.query="",nt=lo):Zt==="#"?(Ne.fragment="",nt=Fr):Zt!==e&&(Ne.path[0]+=Te(Zt,Qe));break;case lo:Mt||Zt!=="#"?Zt!==e&&(Zt==="'"&&Ne.isSpecial()?Ne.query+="%27":Ne.query+=Zt==="#"?"%23":Te(Zt,Qe)):(Ne.fragment="",nt=Fr);break;case Fr:Zt!==e&&(Ne.fragment+=Te(Zt,ke))}bn++}},parseHost:function(At){var Mt,Kt,qn;if(Q(At,0)==="["){if(Q(At,At.length-1)!=="]"||(Mt=function(Zt){var so,Un,dt,Ne,nt,bn,hn,En=[0,0,0,0,0,0,0,0],wi=0,Ue=null,ut=0,Nt=function(){return Q(Zt,ut)};if(Nt()===":"){if(Q(Zt,1)!==":")return;ut+=2,Ue=++wi}for(;Nt();){if(wi===8)return;if(Nt()!==":"){for(so=Un=0;Un<4&&M(Y,Nt());)so=16*so+T(Nt(),16),ut++,Un++;if(Nt()==="."){if(Un===0||(ut-=Un,wi>6))return;for(dt=0;Nt();){if(Ne=null,dt>0){if(!(Nt()==="."&&dt<4))return;ut++}if(!M(ue,Nt()))return;for(;M(ue,Nt());){if(nt=T(Nt(),10),Ne===null)Ne=nt;else{if(Ne===0)return;Ne=10*Ne+nt}if(Ne>255)return;ut++}En[wi]=256*En[wi]+Ne,++dt!=2&&dt!==4||wi++}if(dt!==4)return;break}if(Nt()===":"){if(ut++,!Nt())return}else if(Nt())return;En[wi++]=so}else{if(Ue!==null)return;ut++,Ue=++wi}}if(Ue!==null)for(bn=wi-Ue,wi=7;wi!==0&&bn>0;)hn=En[wi],En[wi--]=En[Ue+bn-1],En[Ue+--bn]=hn;else if(wi!==8)return;return En}($(At,1,-1)),!Mt))return J;this.host=Mt}else if(this.isSpecial()){if(At=k(At),M(ie,At)||(Mt=function(Zt){var so,Un,dt,Ne,nt,bn,hn,En=H(Zt,".");if(En.length&&En[En.length-1]===""&&En.length--,(so=En.length)>4)return Zt;for(Un=[],dt=0;dt1&&Q(Ne,0)==="0"&&(nt=M(ee,Ne)?16:8,Ne=$(Ne,nt===8?1:2)),Ne==="")bn=0;else{if(!M(nt===10?z:nt===8?de:Y,Ne))return Zt;bn=T(Ne,nt)}F(Un,bn)}for(dt=0;dt=P(256,5-so))return null}else if(bn>255)return null;for(hn=I(Un),dt=0;dt1?arguments[1]:void 0,qn=y(Mt,new is(At,!1,Kt));n||(Mt.href=qn.serialize(),Mt.origin=qn.getOrigin(),Mt.protocol=qn.getProtocol(),Mt.username=qn.getUsername(),Mt.password=qn.getPassword(),Mt.host=qn.getHost(),Mt.hostname=qn.getHostname(),Mt.port=qn.getPort(),Mt.pathname=qn.getPathname(),Mt.search=qn.getSearch(),Mt.searchParams=qn.getSearchParams(),Mt.hash=qn.getHash())},Gt=yi.prototype,gi=function(At,Mt){return{get:function(){return C(this)[At]()},set:Mt&&function(Kt){return C(this)[Mt](Kt)},configurable:!0,enumerable:!0}};if(n&&(d(Gt,"href",gi("serialize","setHref")),d(Gt,"origin",gi("getOrigin")),d(Gt,"protocol",gi("getProtocol","setProtocol")),d(Gt,"username",gi("getUsername","setUsername")),d(Gt,"password",gi("getPassword","setPassword")),d(Gt,"host",gi("getHost","setHost")),d(Gt,"hostname",gi("getHostname","setHostname")),d(Gt,"port",gi("getPort","setPort")),d(Gt,"pathname",gi("getPathname","setPathname")),d(Gt,"search",gi("getSearch","setSearch")),d(Gt,"searchParams",gi("getSearchParams")),d(Gt,"hash",gi("getHash","setHash"))),l(Gt,"toJSON",function(){return C(this).serialize()},{enumerable:!0}),l(Gt,"toString",function(){return C(this).serialize()},{enumerable:!0}),L){var ri=L.createObjectURL,tr=L.revokeObjectURL;ri&&l(yi,"createObjectURL",s(ri,L)),tr&&l(yi,"revokeObjectURL",s(tr,L))}return p(yi,"URL"),t({global:!0,constructor:!0,forced:!r,sham:!n},{URL:yi}),gYt}var mYt,Gqo={},kYt,Yqo={},vYt,AYt,pYt,bYt,wYt,OYt;function Zqo(){return AYt?vYt:(AYt=1,fYt||(fYt=1,Xqo()),function(){if(mYt)return Gqo;mYt=1;var e=si(),t=nf(),n=Rs(),r=zV(),o=rf(),s=Jke(),a=t("URL"),l=s&&n(function(){a.canParse()}),d=n(function(){return a.canParse.length!==1});e({target:"URL",stat:!0,forced:!l||d},{canParse:function(h){var g=r(arguments.length,1),m=o(h),v=g<2||arguments[1]===void 0?void 0:o(arguments[1]);try{return!!new a(m,v)}catch{return!1}}})}(),function(){if(kYt)return Yqo;kYt=1;var e=si(),t=nf(),n=zV(),r=rf(),o=Jke(),s=t("URL");e({target:"URL",stat:!0,forced:!o},{parse:function(l){var d=n(arguments.length,1),u=r(l),h=d<2||arguments[1]===void 0?void 0:r(arguments[1]);try{return new s(u,h)}catch{return null}}})}(),vYt=vl().URL)}function qqo(){return bYt?pYt:(bYt=1,pYt=Zqo())}var yYt,PN=Fi(OYt?wYt:(OYt=1,wYt=qqo())),CYt={exports:{}},_Yt,Kqo=(yYt||(yYt=1,_Yt=CYt,function(e,t){_Yt.exports=t()}(0,function(){var e=function(K,ne){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ae,be){ae.__proto__=be}||function(ae,be){for(var Be in be)Object.prototype.hasOwnProperty.call(be,Be)&&(ae[Be]=be[Be])},e(K,ne)};function t(Fe,K){if(typeof K!="function"&&K!==null)throw new TypeError("Class extends value "+String(K)+" is not a constructor or null");function ne(){this.constructor=Fe}e(Fe,K),Fe.prototype=K===null?Object.create(K):(ne.prototype=K.prototype,new ne)}var n=function(){return n=Object.assign||function(K){for(var ne,ae=1,be=arguments.length;ae0&&be[be.length-1])||Ot[0]!==6&&Ot[0]!==2)){Xe=0;continue}if(Ot[0]===3&&(!be||Ot[1]>be[0]&&Ot[1]=55296&&Be<=56319&&ae>10),Ke%1024+56320)),(Be+1===ae||be.length>16384)&&(Xe+=String.fromCharCode.apply(String,be),be.length=0)}return Xe},h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g=typeof Uint8Array>"u"?[]:new Uint8Array(256),m=0;m<64;m++)g[h.charCodeAt(m)]=m;for(var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=typeof Uint8Array>"u"?[]:new Uint8Array(256),k=0;k<64;k++)f[v.charCodeAt(k)]=k;for(var A=function(K,ne,ae){return K.slice?K.slice(ne,ae):new Uint16Array(Array.prototype.slice.call(K,ne,ae))},p=function(){function Fe(K,ne,ae,be,Be,Xe){this.initialValue=K,this.errorValue=ne,this.highStart=ae,this.highValueIndex=be,this.index=Be,this.data=Xe}return Fe.prototype.get=function(K){var ne;if(K>=0){if(K<55296||K>56319&&K<=65535)return ne=((ne=this.index[K>>5])<<2)+(31&K),this.data[ne];if(K<=65535)return ne=((ne=this.index[2048+(K-55296>>5)])<<2)+(31&K),this.data[ne];if(K>11),ne=this.index[ne],ne+=K>>5&63,ne=((ne=this.index[ne])<<2)+(31&K),this.data[ne];if(K<=1114111)return this.data[this.highValueIndex]}return this.errorValue},Fe}(),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",w=typeof Uint8Array>"u"?[]:new Uint8Array(256),O=0;O<64;O++)w[b.charCodeAt(O)]=O;var y=10,C=13,_=15,S=17,L=18,E=19,T=20,D=21,P=22,Q=24,M=25,B=26,R=27,I=28,F=30,j=32,W=33,H=34,$=35,G=37,q=38,re=39,J=40,oe=42,se=[9001,65288],le="×",ue="÷",ee=function(Fe){var K,ne,ae,be=function(qe){var Ot,Lt,Vt,Vn,Dn,$n=.75*qe.length,Ai=qe.length,mr=0;qe[qe.length-1]==="="&&($n--,qe[qe.length-2]==="="&&$n--);var $i=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&Uint8Array.prototype.slice!==void 0?new ArrayBuffer($n):new Array($n),Go=Array.isArray($i)?$i:new Uint8Array($i);for(Ot=0;Ot>4,Go[mr++]=(15&Vt)<<4|Vn>>2,Go[mr++]=(3&Vn)<<6|63&Dn;return $i}(Fe),Be=Array.isArray(be)?function(qe){for(var Ot=qe.length,Lt=[],Vt=0;Vt0;){var Ke=be[--Xe];if(Array.isArray(K)?K.indexOf(Ke)!==-1:K===Ke)for(var vt=ae;vt<=be.length;){var qe;if((qe=be[++vt])===ne)return!0;if(qe!==y)break}if(Ke!==y)break}return!1},Ce=function(K,ne){for(var ae=K;ae>=0;){var be=ne[ae];if(be!==y)return be;ae--}return 0},Qe=function(K,ne,ae,be,Be){if(ae[be]===0)return le;var Xe=be-1;if(Array.isArray(Be)&&Be[Xe]===!0)return le;var Ke=Xe-1,vt=Xe+1,qe=ne[Xe],Ot=Ke>=0?ne[Ke]:0,Lt=ne[vt];if(qe===2&&Lt===3)return le;if(z.indexOf(qe)!==-1)return"!";if(z.indexOf(Lt)!==-1||Y.indexOf(Lt)!==-1)return le;if(Ce(Xe,ne)===8)return ue;if(ee.get(K[Xe])===11||(qe===j||qe===W)&&ee.get(K[vt])===11||qe===7||Lt===7||qe===9||[y,C,_].indexOf(qe)===-1&&Lt===9||[S,L,E,Q,I].indexOf(Lt)!==-1||Ce(Xe,ne)===P||pe(23,P,Xe,ne)||pe([S,L],D,Xe,ne)||pe(12,12,Xe,ne))return le;if(qe===y)return ue;if(qe===23||Lt===23)return le;if(Lt===16||qe===16)return ue;if([C,_,D].indexOf(Lt)!==-1||qe===14||Ot===36&&he.indexOf(qe)!==-1||qe===I&&Lt===36||Lt===T||de.indexOf(Lt)!==-1&&qe===M||de.indexOf(qe)!==-1&&Lt===M||qe===R&&[G,j,W].indexOf(Lt)!==-1||[G,j,W].indexOf(qe)!==-1&&Lt===B||de.indexOf(qe)!==-1&&ie.indexOf(Lt)!==-1||ie.indexOf(qe)!==-1&&de.indexOf(Lt)!==-1||[R,B].indexOf(qe)!==-1&&(Lt===M||[P,_].indexOf(Lt)!==-1&&ne[vt+1]===M)||[P,_].indexOf(qe)!==-1&&Lt===M||qe===M&&[M,I,Q].indexOf(Lt)!==-1)return le;if([M,I,Q,S,L].indexOf(Lt)!==-1)for(var Vt=Xe;Vt>=0;){if((Vn=ne[Vt])===M)return le;if([I,Q].indexOf(Vn)===-1)break;Vt--}if([R,B].indexOf(Lt)!==-1)for(Vt=[S,L].indexOf(qe)!==-1?Ke:Xe;Vt>=0;){var Vn;if((Vn=ne[Vt])===M)return le;if([I,Q].indexOf(Vn)===-1)break;Vt--}if(q===qe&&[q,re,H,$].indexOf(Lt)!==-1||[re,H].indexOf(qe)!==-1&&[re,J].indexOf(Lt)!==-1||[J,$].indexOf(qe)!==-1&&Lt===J||Z.indexOf(qe)!==-1&&[T,B].indexOf(Lt)!==-1||Z.indexOf(Lt)!==-1&&qe===R||de.indexOf(qe)!==-1&&de.indexOf(Lt)!==-1||qe===Q&&de.indexOf(Lt)!==-1||de.concat(M).indexOf(qe)!==-1&&Lt===P&&se.indexOf(K[vt])===-1||de.concat(M).indexOf(Lt)!==-1&&qe===L)return le;if(qe===41&&Lt===41){for(var Dn=ae[Xe],$n=1;Dn>0&&ne[--Dn]===41;)$n++;if($n%2!=0)return le}return qe===j&&Lt===W?le:ue},ke=function(K,ne){ne||(ne={lineBreak:"normal",wordBreak:"normal"});var ae=function(vt,qe){qe===void 0&&(qe="strict");var Ot=[],Lt=[],Vt=[];return vt.forEach(function(Vn,Dn){var $n=ee.get(Vn);if($n>50?(Vt.push(!0),$n-=50):Vt.push(!1),["normal","auto","loose"].indexOf(qe)!==-1&&[8208,8211,12316,12448].indexOf(Vn)!==-1)return Lt.push(Dn),Ot.push(16);if($n===4||$n===11){if(Dn===0)return Lt.push(Dn),Ot.push(F);var Ai=Ot[Dn-1];return te.indexOf(Ai)===-1?(Lt.push(Lt[Dn-1]),Ot.push(Ai)):(Lt.push(Dn),Ot.push(F))}return Lt.push(Dn),$n===31?Ot.push(qe==="strict"?D:G):$n===oe||$n===29?Ot.push(F):$n===43?Vn>=131072&&Vn<=196605||Vn>=196608&&Vn<=262141?Ot.push(G):Ot.push(F):void Ot.push($n)}),[Lt,Ot,Vt]}(K,ne.lineBreak),be=ae[0],Be=ae[1],Xe=ae[2];ne.wordBreak!=="break-all"&&ne.wordBreak!=="break-word"||(Be=Be.map(function(vt){return[M,F,oe].indexOf(vt)!==-1?G:vt}));var Ke=ne.wordBreak==="keep-all"?Xe.map(function(vt,qe){return vt&&K[qe]>=19968&&K[qe]<=40959}):void 0;return[be,Be,Ke]},me=function(){function Fe(K,ne,ae,be){this.codePoints=K,this.required=ne==="!",this.start=ae,this.end=be}return Fe.prototype.slice=function(){return u.apply(void 0,this.codePoints.slice(this.start,this.end))},Fe}(),_e=45,Te=43,De=-1,Ye=function(K){return K>=48&&K<=57},ot=function(K){return Ye(K)||K>=65&&K<=70||K>=97&&K<=102},We=function(K){return K===10||K===9||K===32},et=function(K){return function(ne){return function(ae){return ae>=97&&ae<=122}(ne)||function(ae){return ae>=65&&ae<=90}(ne)}(K)||function(ne){return ne>=128}(K)||K===95},st=function(K){return et(K)||Ye(K)||K===_e},Me=function(K){return K>=0&&K<=8||K===11||K>=14&&K<=31||K===127},Se=function(K,ne){return K===92&&ne!==10},Ie=function(K,ne,ae){return K===_e?et(ne)||Se(ne,ae):!!et(K)||!(K!==92||!Se(K,ne))},ze=function(K,ne,ae){return K===Te||K===_e?!!Ye(ne)||ne===46&&Ye(ae):Ye(K===46?ne:K)},Ze=function(K){var ne=0,ae=1;K[ne]!==Te&&K[ne]!==_e||(K[ne]===_e&&(ae=-1),ne++);for(var be=[];Ye(K[ne]);)be.push(K[ne++]);var Be=be.length?parseInt(u.apply(void 0,be),10):0;K[ne]===46&&ne++;for(var Xe=[];Ye(K[ne]);)Xe.push(K[ne++]);var Ke=Xe.length,vt=Ke?parseInt(u.apply(void 0,Xe),10):0;K[ne]!==69&&K[ne]!==101||ne++;var qe=1;K[ne]!==Te&&K[ne]!==_e||(K[ne]===_e&&(qe=-1),ne++);for(var Ot=[];Ye(K[ne]);)Ot.push(K[ne++]);var Lt=Ot.length?parseInt(u.apply(void 0,Ot),10):0;return ae*(Be+vt*Math.pow(10,-Ke))*Math.pow(10,qe*Lt)},gt={type:2},St={type:3},Pt={type:4},dn={type:13},on={type:8},pn={type:21},ni={type:9},Zn={type:10},Pi={type:11},rr={type:12},Hr={type:14},Bo={type:23},lo={type:1},Fr={type:25},is={type:24},yi={type:26},Gt={type:27},gi={type:28},ri={type:29},tr={type:31},ht={type:32},At=function(){function Fe(){this._value=[]}return Fe.prototype.write=function(K){this._value=this._value.concat(d(K))},Fe.prototype.read=function(){for(var K=[],ne=this.consumeToken();ne!==ht;)K.push(ne),ne=this.consumeToken();return K},Fe.prototype.consumeToken=function(){var K=this.consumeCodePoint();switch(K){case 34:return this.consumeStringToken(34);case 35:var ne=this.peekCodePoint(0),ae=this.peekCodePoint(1),be=this.peekCodePoint(2);if(st(ne)||Se(ae,be)){var Be=Ie(ne,ae,be)?2:1;return{type:5,value:this.consumeName(),flags:Be}}break;case 36:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),dn;break;case 39:return this.consumeStringToken(39);case 40:return gt;case 41:return St;case 42:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),Hr;break;case Te:if(ze(K,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(K),this.consumeNumericToken();break;case 44:return Pt;case _e:var Xe=K,Ke=this.peekCodePoint(0),vt=this.peekCodePoint(1);if(ze(Xe,Ke,vt))return this.reconsumeCodePoint(K),this.consumeNumericToken();if(Ie(Xe,Ke,vt))return this.reconsumeCodePoint(K),this.consumeIdentLikeToken();if(Ke===_e&&vt===62)return this.consumeCodePoint(),this.consumeCodePoint(),is;break;case 46:if(ze(K,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(K),this.consumeNumericToken();break;case 47:if(this.peekCodePoint(0)===42)for(this.consumeCodePoint();;){var qe=this.consumeCodePoint();if(qe===42&&(qe=this.consumeCodePoint())===47)return this.consumeToken();if(qe===De)return this.consumeToken()}break;case 58:return yi;case 59:return Gt;case 60:if(this.peekCodePoint(0)===33&&this.peekCodePoint(1)===_e&&this.peekCodePoint(2)===_e)return this.consumeCodePoint(),this.consumeCodePoint(),Fr;break;case 64:var Ot=this.peekCodePoint(0),Lt=this.peekCodePoint(1),Vt=this.peekCodePoint(2);if(Ie(Ot,Lt,Vt))return{type:7,value:this.consumeName()};break;case 91:return gi;case 92:if(Se(K,this.peekCodePoint(0)))return this.reconsumeCodePoint(K),this.consumeIdentLikeToken();break;case 93:return ri;case 61:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),on;break;case 123:return Pi;case 125:return rr;case 117:case 85:var Vn=this.peekCodePoint(0),Dn=this.peekCodePoint(1);return Vn!==Te||!ot(Dn)&&Dn!==63||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(K),this.consumeIdentLikeToken();case 124:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),ni;if(this.peekCodePoint(0)===124)return this.consumeCodePoint(),pn;break;case 126:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),Zn;break;case De:return ht}return We(K)?(this.consumeWhiteSpace(),tr):Ye(K)?(this.reconsumeCodePoint(K),this.consumeNumericToken()):et(K)?(this.reconsumeCodePoint(K),this.consumeIdentLikeToken()):{type:6,value:u(K)}},Fe.prototype.consumeCodePoint=function(){var K=this._value.shift();return K===void 0?-1:K},Fe.prototype.reconsumeCodePoint=function(K){this._value.unshift(K)},Fe.prototype.peekCodePoint=function(K){return K>=this._value.length?-1:this._value[K]},Fe.prototype.consumeUnicodeRangeToken=function(){for(var K=[],ne=this.consumeCodePoint();ot(ne)&&K.length<6;)K.push(ne),ne=this.consumeCodePoint();for(var ae=!1;ne===63&&K.length<6;)K.push(ne),ne=this.consumeCodePoint(),ae=!0;if(ae)return{type:30,start:parseInt(u.apply(void 0,K.map(function(Xe){return Xe===63?48:Xe})),16),end:parseInt(u.apply(void 0,K.map(function(Xe){return Xe===63?70:Xe})),16)};var be=parseInt(u.apply(void 0,K),16);if(this.peekCodePoint(0)===_e&&ot(this.peekCodePoint(1))){this.consumeCodePoint(),ne=this.consumeCodePoint();for(var Be=[];ot(ne)&&Be.length<6;)Be.push(ne),ne=this.consumeCodePoint();return{type:30,start:be,end:parseInt(u.apply(void 0,Be),16)}}return{type:30,start:be,end:be}},Fe.prototype.consumeIdentLikeToken=function(){var K=this.consumeName();return K.toLowerCase()==="url"&&this.peekCodePoint(0)===40?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===40?(this.consumeCodePoint(),{type:19,value:K}):{type:20,value:K}},Fe.prototype.consumeUrlToken=function(){var K=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===De)return{type:22,value:""};var ne=this.peekCodePoint(0);if(ne===39||ne===34){var ae=this.consumeStringToken(this.consumeCodePoint());return ae.type===0&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===De||this.peekCodePoint(0)===41)?(this.consumeCodePoint(),{type:22,value:ae.value}):(this.consumeBadUrlRemnants(),Bo)}for(;;){var be=this.consumeCodePoint();if(be===De||be===41)return{type:22,value:u.apply(void 0,K)};if(We(be))return this.consumeWhiteSpace(),this.peekCodePoint(0)===De||this.peekCodePoint(0)===41?(this.consumeCodePoint(),{type:22,value:u.apply(void 0,K)}):(this.consumeBadUrlRemnants(),Bo);if(be===34||be===39||be===40||Me(be))return this.consumeBadUrlRemnants(),Bo;if(be===92){if(!Se(be,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Bo;K.push(this.consumeEscapedCodePoint())}else K.push(be)}},Fe.prototype.consumeWhiteSpace=function(){for(;We(this.peekCodePoint(0));)this.consumeCodePoint()},Fe.prototype.consumeBadUrlRemnants=function(){for(;;){var K=this.consumeCodePoint();if(K===41||K===De)return;Se(K,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},Fe.prototype.consumeStringSlice=function(K){for(var ne="";K>0;){var ae=Math.min(5e4,K);ne+=u.apply(void 0,this._value.splice(0,ae)),K-=ae}return this._value.shift(),ne},Fe.prototype.consumeStringToken=function(K){for(var ne="",ae=0;;){var be=this._value[ae];if(be===De||be===void 0||be===K)return{type:0,value:ne+=this.consumeStringSlice(ae)};if(be===10)return this._value.splice(0,ae),lo;if(be===92){var Be=this._value[ae+1];Be!==De&&Be!==void 0&&(Be===10?(ne+=this.consumeStringSlice(ae),ae=-1,this._value.shift()):Se(be,Be)&&(ne+=this.consumeStringSlice(ae),ne+=u(this.consumeEscapedCodePoint()),ae=-1))}ae++}},Fe.prototype.consumeNumber=function(){var K=[],ne=4,ae=this.peekCodePoint(0);for(ae!==Te&&ae!==_e||K.push(this.consumeCodePoint());Ye(this.peekCodePoint(0));)K.push(this.consumeCodePoint());ae=this.peekCodePoint(0);var be=this.peekCodePoint(1);if(ae===46&&Ye(be))for(K.push(this.consumeCodePoint(),this.consumeCodePoint()),ne=8;Ye(this.peekCodePoint(0));)K.push(this.consumeCodePoint());ae=this.peekCodePoint(0),be=this.peekCodePoint(1);var Be=this.peekCodePoint(2);if((ae===69||ae===101)&&((be===Te||be===_e)&&Ye(Be)||Ye(be)))for(K.push(this.consumeCodePoint(),this.consumeCodePoint()),ne=8;Ye(this.peekCodePoint(0));)K.push(this.consumeCodePoint());return[Ze(K),ne]},Fe.prototype.consumeNumericToken=function(){var K=this.consumeNumber(),ne=K[0],ae=K[1],be=this.peekCodePoint(0),Be=this.peekCodePoint(1),Xe=this.peekCodePoint(2);return Ie(be,Be,Xe)?{type:15,number:ne,flags:ae,unit:this.consumeName()}:be===37?(this.consumeCodePoint(),{type:16,number:ne,flags:ae}):{type:17,number:ne,flags:ae}},Fe.prototype.consumeEscapedCodePoint=function(){var K=this.consumeCodePoint();if(ot(K)){for(var ne=u(K);ot(this.peekCodePoint(0))&&ne.length<6;)ne+=u(this.consumeCodePoint());We(this.peekCodePoint(0))&&this.consumeCodePoint();var ae=parseInt(ne,16);return ae===0||function(be){return be>=55296&&be<=57343}(ae)||ae>1114111?65533:ae}return K===De?65533:K},Fe.prototype.consumeName=function(){for(var K="";;){var ne=this.consumeCodePoint();if(st(ne))K+=u(ne);else{if(!Se(ne,this.peekCodePoint(0)))return this.reconsumeCodePoint(ne),K;K+=u(this.consumeEscapedCodePoint())}}},Fe}(),Mt=function(){function Fe(K){this._tokens=K}return Fe.create=function(K){var ne=new At;return ne.write(K),new Fe(ne.read())},Fe.parseValue=function(K){return Fe.create(K).parseComponentValue()},Fe.parseValues=function(K){return Fe.create(K).parseComponentValues()},Fe.prototype.parseComponentValue=function(){for(var K=this.consumeToken();K.type===31;)K=this.consumeToken();if(K.type===32)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(K);var ne=this.consumeComponentValue();do K=this.consumeToken();while(K.type===31);if(K.type===32)return ne;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},Fe.prototype.parseComponentValues=function(){for(var K=[];;){var ne=this.consumeComponentValue();if(ne.type===32)return K;K.push(ne),K.push()}},Fe.prototype.consumeComponentValue=function(){var K=this.consumeToken();switch(K.type){case 11:case 28:case 2:return this.consumeSimpleBlock(K.type);case 19:return this.consumeFunction(K)}return K},Fe.prototype.consumeSimpleBlock=function(K){for(var ne={type:K,values:[]},ae=this.consumeToken();;){if(ae.type===32||bn(ae,K))return ne;this.reconsumeToken(ae),ne.values.push(this.consumeComponentValue()),ae=this.consumeToken()}},Fe.prototype.consumeFunction=function(K){for(var ne={name:K.value,values:[],type:18};;){var ae=this.consumeToken();if(ae.type===32||ae.type===3)return ne;this.reconsumeToken(ae),ne.values.push(this.consumeComponentValue())}},Fe.prototype.consumeToken=function(){var K=this._tokens.shift();return K===void 0?ht:K},Fe.prototype.reconsumeToken=function(K){this._tokens.unshift(K)},Fe}(),Kt=function(K){return K.type===15},qn=function(K){return K.type===17},Zt=function(K){return K.type===20},so=function(K){return K.type===0},Un=function(K,ne){return Zt(K)&&K.value===ne},dt=function(K){return K.type!==31},Ne=function(K){return K.type!==31&&K.type!==4},nt=function(K){var ne=[],ae=[];return K.forEach(function(be){if(be.type===4){if(ae.length===0)throw new Error("Error parsing function args, zero tokens for arg");return ne.push(ae),void(ae=[])}be.type!==31&&ae.push(be)}),ae.length&&ne.push(ae),ne},bn=function(K,ne){return ne===11&&K.type===12||ne===28&&K.type===29||ne===2&&K.type===3},hn=function(K){return K.type===17||K.type===15},En=function(K){return K.type===16||hn(K)},wi=function(K){return K.length>1?[K[0],K[1]]:[K[0]]},Ue={type:17,number:0,flags:4},ut={type:16,number:50,flags:4},Nt={type:16,number:100,flags:4},wn=function(K,ne,ae){var be=K[0],Be=K[1];return[Cn(be,ne),Cn(Be!==void 0?Be:be,ae)]},Cn=function(K,ne){if(K.type===16)return K.number/100*ne;if(Kt(K))switch(K.unit){case"rem":case"em":return 16*K.number;default:return K.number}return K.number},wr="grad",Kr="turn",Wo=function(K,ne){if(ne.type===15)switch(ne.unit){case"deg":return Math.PI*ne.number/180;case wr:return Math.PI/200*ne.number;case"rad":return ne.number;case Kr:return 2*Math.PI*ne.number}throw new Error("Unsupported angle type")},pl=function(K){return K.type===15&&(K.unit==="deg"||K.unit===wr||K.unit==="rad"||K.unit===Kr)},pu=function(K){switch(K.filter(Zt).map(function(ne){return ne.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Ue,Ue];case"to top":case"bottom":return bu(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Ue,Nt];case"to right":case"left":return bu(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Nt,Nt];case"to bottom":case"top":return bu(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Nt,Ue];case"to left":case"right":return bu(270)}return 0},bu=function(K){return Math.PI*K/180},T1=function(K,ne){if(ne.type===18){var ae=UL[ne.name];if(ae===void 0)throw new Error('Attempting to parse an unsupported color function "'+ne.name+'"');return ae(K,ne.values)}if(ne.type===5){if(ne.value.length===3){var be=ne.value.substring(0,1),Be=ne.value.substring(1,2),Xe=ne.value.substring(2,3);return Em(parseInt(be+be,16),parseInt(Be+Be,16),parseInt(Xe+Xe,16),1)}if(ne.value.length===4){be=ne.value.substring(0,1),Be=ne.value.substring(1,2),Xe=ne.value.substring(2,3);var Ke=ne.value.substring(3,4);return Em(parseInt(be+be,16),parseInt(Be+Be,16),parseInt(Xe+Xe,16),parseInt(Ke+Ke,16)/255)}if(ne.value.length===6)return be=ne.value.substring(0,2),Be=ne.value.substring(2,4),Xe=ne.value.substring(4,6),Em(parseInt(be,16),parseInt(Be,16),parseInt(Xe,16),1);if(ne.value.length===8)return be=ne.value.substring(0,2),Be=ne.value.substring(2,4),Xe=ne.value.substring(4,6),Ke=ne.value.substring(6,8),Em(parseInt(be,16),parseInt(Be,16),parseInt(Xe,16),parseInt(Ke,16)/255)}if(ne.type===20){var vt=jf[ne.value.toUpperCase()];if(vt!==void 0)return vt}return jf.TRANSPARENT},xm=function(K){return!(255&K)},Gd=function(K){var ne=255&K,ae=255&K>>8,be=255&K>>16,Be=255&K>>24;return ne<255?"rgba("+Be+","+be+","+ae+","+ne/255+")":"rgb("+Be+","+be+","+ae+")"},Em=function(K,ne,ae,be){return(K<<24|ne<<16|ae<<8|Math.round(255*be))>>>0},$3=function(K,ne){if(K.type===17)return K.number;if(K.type===16){var ae=ne===3?1:255;return ne===3?K.number/100*ae:Math.round(K.number/100*ae)}return 0},FL=function(K,ne){var ae=ne.filter(Ne);if(ae.length===3){var be=ae.map($3),Be=be[0],Xe=be[1],Ke=be[2];return Em(Be,Xe,Ke,1)}if(ae.length===4){var vt=ae.map($3),qe=(Be=vt[0],Xe=vt[1],Ke=vt[2],vt[3]);return Em(Be,Xe,Ke,qe)}return 0};function NL(Fe,K,ne){return ne<0&&(ne+=1),ne>=1&&(ne-=1),ne<1/6?(K-Fe)*ne*6+Fe:ne<.5?K:ne<2/3?6*(K-Fe)*(2/3-ne)+Fe:Fe}var TA,fC=function(K,ne){var ae=ne.filter(Ne),be=ae[0],Be=ae[1],Xe=ae[2],Ke=ae[3],vt=(be.type===17?bu(be.number):Wo(K,be))/(2*Math.PI),qe=En(Be)?Be.number/100:0,Ot=En(Xe)?Xe.number/100:0,Lt=Ke!==void 0&&En(Ke)?Cn(Ke,1):1;if(qe===0)return Em(255*Ot,255*Ot,255*Ot,1);var Vt=Ot<=.5?Ot*(qe+1):Ot+qe-Ot*qe,Vn=2*Ot-Vt,Dn=NL(Vn,Vt,vt+1/3),$n=NL(Vn,Vt,vt),Ai=NL(Vn,Vt,vt-1/3);return Em(255*Dn,255*$n,255*Ai,Lt)},UL={hsl:fC,hsla:fC,rgb:FL,rgba:FL},tk=function(K,ne){return T1(K,Mt.create(ne).parseComponentValue())},jf={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},gC={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(K,ne){return ne.map(function(ae){if(Zt(ae))switch(ae.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},mC={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Q1=function(K,ne){var ae=T1(K,ne[0]),be=ne[1];return be&&En(be)?{color:ae,stop:be}:{color:ae,stop:null}},kC=function(K,ne){var ae=K[0],be=K[K.length-1];ae.stop===null&&(ae.stop=Ue),be.stop===null&&(be.stop=Nt);for(var Be=[],Xe=0,Ke=0;KeXe?Be.push(qe):Be.push(Xe),Xe=qe}else Be.push(null)}var Ot=null;for(Ke=0;KeXe.optimumDistance)?{optimumCorner:Ke,optimumDistance:Ot}:Xe},{optimumDistance:Be?1/0:-1/0,optimumCorner:null}).optimumCorner},QA=function(K,ne){var ae=bu(180),be=[];return nt(ne).forEach(function(Be,Xe){if(Xe===0){var Ke=Be[0];if(Ke.type===20&&["top","left","right","bottom"].indexOf(Ke.value)!==-1)return void(ae=pu(Be));if(pl(Ke))return void(ae=(Wo(K,Ke)+bu(270))%bu(360))}var vt=Q1(K,Be);be.push(vt)}),{angle:ae,stops:be,type:1}},vC="closest-side",AC="farthest-side",G3="closest-corner",DA="farthest-corner",R2="circle",Y3="ellipse",Tm="cover",BA="contain",D1=function(K,ne){var ae=0,be=3,Be=[],Xe=[];return nt(ne).forEach(function(Ke,vt){var qe=!0;if(vt===0?qe=Ke.reduce(function(Lt,Vt){if(Zt(Vt))switch(Vt.value){case"center":return Xe.push(ut),!1;case"top":case"left":return Xe.push(Ue),!1;case"right":case"bottom":return Xe.push(Nt),!1}else if(En(Vt)||hn(Vt))return Xe.push(Vt),!1;return Lt},qe):vt===1&&(qe=Ke.reduce(function(Lt,Vt){if(Zt(Vt))switch(Vt.value){case R2:return ae=0,!1;case Y3:return ae=1,!1;case BA:case vC:return be=0,!1;case AC:return be=1,!1;case G3:return be=2,!1;case Tm:case DA:return be=3,!1}else if(hn(Vt)||En(Vt))return Array.isArray(be)||(be=[]),be.push(Vt),!1;return Lt},qe)),qe){var Ot=Q1(K,Ke);Be.push(Ot)}}),{size:be,shape:ae,stops:Be,position:Xe,type:2}},Bp=function(K,ne){if(ne.type===22){var ae={url:ne.value,type:0};return K.cache.addImage(ne.value),ae}if(ne.type===18){var be=gM[ne.name];if(be===void 0)throw new Error('Attempting to parse an unsupported image function "'+ne.name+'"');return be(K,ne.values)}throw new Error("Unsupported image type "+ne.type)},gM={"linear-gradient":function(K,ne){var ae=bu(180),be=[];return nt(ne).forEach(function(Be,Xe){if(Xe===0){var Ke=Be[0];if(Ke.type===20&&Ke.value==="to")return void(ae=pu(Be));if(pl(Ke))return void(ae=Wo(K,Ke))}var vt=Q1(K,Be);be.push(vt)}),{angle:ae,stops:be,type:1}},"-moz-linear-gradient":QA,"-ms-linear-gradient":QA,"-o-linear-gradient":QA,"-webkit-linear-gradient":QA,"radial-gradient":function(K,ne){var ae=0,be=3,Be=[],Xe=[];return nt(ne).forEach(function(Ke,vt){var qe=!0;if(vt===0){var Ot=!1;qe=Ke.reduce(function(Vt,Vn){if(Ot)if(Zt(Vn))switch(Vn.value){case"center":return Xe.push(ut),Vt;case"top":case"left":return Xe.push(Ue),Vt;case"right":case"bottom":return Xe.push(Nt),Vt}else(En(Vn)||hn(Vn))&&Xe.push(Vn);else if(Zt(Vn))switch(Vn.value){case R2:return ae=0,!1;case Y3:return ae=1,!1;case"at":return Ot=!0,!1;case vC:return be=0,!1;case Tm:case AC:return be=1,!1;case BA:case G3:return be=2,!1;case DA:return be=3,!1}else if(hn(Vn)||En(Vn))return Array.isArray(be)||(be=[]),be.push(Vn),!1;return Vt},qe)}if(qe){var Lt=Q1(K,Ke);Be.push(Lt)}}),{size:be,shape:ae,stops:Be,position:Xe,type:2}},"-moz-radial-gradient":D1,"-ms-radial-gradient":D1,"-o-radial-gradient":D1,"-webkit-radial-gradient":D1,"-webkit-gradient":function(K,ne){var ae=bu(180),be=[],Be=1;return nt(ne).forEach(function(Xe,Ke){var vt=Xe[0];if(Ke===0){if(Zt(vt)&&vt.value==="linear")return void(Be=1);if(Zt(vt)&&vt.value==="radial")return void(Be=2)}if(vt.type===18){if(vt.name==="from"){var qe=T1(K,vt.values[0]);be.push({stop:Ue,color:qe})}else if(vt.name==="to")qe=T1(K,vt.values[0]),be.push({stop:Nt,color:qe});else if(vt.name==="color-stop"){var Ot=vt.values.filter(Ne);if(Ot.length===2){qe=T1(K,Ot[1]);var Lt=Ot[0];qn(Lt)&&be.push({stop:{type:16,number:100*Lt.number,flags:Lt.flags},color:qe})}}}}),Be===1?{angle:(ae+bu(180))%bu(360),stops:be,type:Be}:{size:3,shape:0,stops:be,position:[],type:Be}}},rye={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(K,ne){if(ne.length===0)return[];var ae=ne[0];return ae.type===20&&ae.value==="none"?[]:ne.filter(function(be){return Ne(be)&&function(Be){return!(Be.type===20&&Be.value==="none"||Be.type===18&&!gM[Be.name])}(be)}).map(function(be){return Bp(K,be)})}},oye={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(K,ne){return ne.map(function(ae){if(Zt(ae))switch(ae.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},sye={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(K,ne){return nt(ne).map(function(ae){return ae.filter(En)}).map(wi)}},aye={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(K,ne){return nt(ne).map(function(ae){return ae.filter(Zt).map(function(be){return be.value}).join(" ")}).map(lye)}},lye=function(K){switch(K){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};(function(Fe){Fe.AUTO="auto",Fe.CONTAIN="contain",Fe.COVER="cover"})(TA||(TA={}));var Bl,kc={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(K,ne){return nt(ne).map(function(ae){return ae.filter(cye)})}},cye=function(K){return Zt(K)||En(K)},mM=function(K){return{name:"border-"+K+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},dye=mM("top"),uye=mM("right"),hye=mM("bottom"),fye=mM("left"),QE=function(K){return{name:"border-radius-"+K,initialValue:"0 0",prefix:!1,type:1,parse:function(ae,be){return wi(be.filter(En))}}},gye=QE("top-left"),lf=QE("top-right"),jH=QE("bottom-right"),pC=QE("bottom-left"),DE=function(K){return{name:"border-"+K+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(ae,be){switch(be){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},WH=DE("top"),nk=DE("right"),ioe=DE("bottom"),roe=DE("left"),BE=function(K){return{name:"border-"+K+"-width",initialValue:"0",type:0,prefix:!1,parse:function(ae,be){return Kt(be)?be.number:0}}},ooe=BE("top"),soe=BE("right"),aoe=BE("bottom"),B1=BE("left"),mye={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ik={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(K,ne){return ne==="rtl"?1:0}},kye={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(K,ne){return ne.filter(Zt).reduce(function(ae,be){return ae|loe(be.value)},0)}},loe=function(K){switch(K){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},Z3={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},kM={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(K,ne){return ne.type===20&&ne.value==="normal"?0:ne.type===17||ne.type===15?ne.number:0}};(function(Fe){Fe.NORMAL="normal",Fe.STRICT="strict"})(Bl||(Bl={}));var bC,Hc={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(K,ne){return ne==="strict"?Bl.STRICT:Bl.NORMAL}},q3={name:"line-height",initialValue:"normal",prefix:!1,type:4},vM=function(K,ne){return Zt(K)&&K.value==="normal"?1.2*ne:K.type===17?ne*K.number:En(K)?Cn(K,ne):ne},vye={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(K,ne){return ne.type===20&&ne.value==="none"?null:Bp(K,ne)}},VH={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(K,ne){return ne==="inside"?0:1}},zH={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},AM=function(K){return{name:"margin-"+K,initialValue:"0",prefix:!1,type:4}},Aye=AM("top"),coe=AM("right"),pM=AM("bottom"),jL=AM("left"),pye={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(K,ne){return ne.filter(Zt).map(function(ae){switch(ae.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},doe={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(K,ne){return ne==="break-word"?"break-word":"normal"}},RE=function(K){return{name:"padding-"+K,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},HH=RE("top"),$H=RE("right"),uoe=RE("bottom"),bye=RE("left"),XH={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},GH={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},wye={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(K,ne){return ne.length===1&&Un(ne[0],"none")?[]:nt(ne).map(function(ae){for(var be={color:jf.TRANSPARENT,offsetX:Ue,offsetY:Ue,blur:Ue},Be=0,Xe=0;Xe1?1:0],this.overflowWrap=Et(K,doe,ne.overflowWrap),this.paddingTop=Et(K,HH,ne.paddingTop),this.paddingRight=Et(K,$H,ne.paddingRight),this.paddingBottom=Et(K,uoe,ne.paddingBottom),this.paddingLeft=Et(K,bye,ne.paddingLeft),this.paintOrder=Et(K,Qye,ne.paintOrder),this.position=Et(K,GH,ne.position),this.textAlign=Et(K,XH,ne.textAlign),this.textDecorationColor=Et(K,VL,(ae=ne.textDecorationColor)!==null&&ae!==void 0?ae:ne.color),this.textDecorationLine=Et(K,Sye,(be=ne.textDecorationLine)!==null&&be!==void 0?be:ne.textDecoration),this.textShadow=Et(K,wye,ne.textShadow),this.textTransform=Et(K,hoe,ne.textTransform),this.transform=Et(K,R1,ne.transform),this.transformOrigin=Et(K,goe,ne.transformOrigin),this.visibility=Et(K,Oye,ne.visibility),this.webkitTextStrokeColor=Et(K,Dye,ne.webkitTextStrokeColor),this.webkitTextStrokeWidth=Et(K,Bye,ne.webkitTextStrokeWidth),this.wordBreak=Et(K,yye,ne.wordBreak),this.zIndex=Et(K,Cye,ne.zIndex)}return Fe.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&this.visibility===0},Fe.prototype.isTransparent=function(){return xm(this.backgroundColor)},Fe.prototype.isTransformed=function(){return this.transform!==null},Fe.prototype.isPositioned=function(){return this.position!==0},Fe.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},Fe.prototype.isFloating=function(){return this.float!==0},Fe.prototype.isInlineLevel=function(){return Xu(this.display,4)||Xu(this.display,33554432)||Xu(this.display,268435456)||Xu(this.display,536870912)||Xu(this.display,67108864)||Xu(this.display,134217728)},Fe}(),Wt=function(K,ne){this.content=Et(K,xye,ne.content),this.quotes=Et(K,voe,ne.quotes)},Sn=function(K,ne){this.counterIncrement=Et(K,Eye,ne.counterIncrement),this.counterReset=Et(K,zL,ne.counterReset)},Et=function(K,ne,ae){var be=new At,Be=ae!=null?ae.toString():ne.initialValue;be.write(Be);var Xe=new Mt(be.read());switch(ne.type){case 2:var Ke=Xe.parseComponentValue();return ne.parse(K,Zt(Ke)?Ke.value:ne.initialValue);case 0:return ne.parse(K,Xe.parseComponentValue());case 1:return ne.parse(K,Xe.parseComponentValues());case 4:return Xe.parseComponentValue();case 3:switch(ne.format){case"angle":return Wo(K,Xe.parseComponentValue());case"color":return T1(K,Xe.parseComponentValue());case"image":return Bp(K,Xe.parseComponentValue());case"length":var vt=Xe.parseComponentValue();return hn(vt)?vt:Ue;case"length-percentage":var qe=Xe.parseComponentValue();return En(qe)?qe:Ue;case"time":return moe(K,Xe.parseComponentValue())}}},or=function(K,ne){var ae=function(be){switch(be.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(K);return ae===1||ne===ae},Jr=function(K,ne){this.context=K,this.textNodes=[],this.elements=[],this.flags=0,or(ne,3),this.styles=new HL(K,window.getComputedStyle(ne,null)),n$(ne)&&(this.styles.animationDuration.some(function(ae){return ae>0})&&(ne.style.animationDuration="0s"),this.styles.transform!==null&&(ne.style.transform="none")),this.bounds=l(this.context,ne),or(ne,4)&&(this.flags|=16)},za="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ad=typeof Uint8Array>"u"?[]:new Uint8Array(256),sl=0;sl<64;sl++)ad[za.charCodeAt(sl)]=sl;for(var wM=function(K,ne,ae){return K.slice?K.slice(ne,ae):new Uint16Array(Array.prototype.slice.call(K,ne,ae))},Rye=function(){function Fe(K,ne,ae,be,Be,Xe){this.initialValue=K,this.errorValue=ne,this.highStart=ae,this.highValueIndex=be,this.index=Be,this.data=Xe}return Fe.prototype.get=function(K){var ne;if(K>=0){if(K<55296||K>56319&&K<=65535)return ne=((ne=this.index[K>>5])<<2)+(31&K),this.data[ne];if(K<=65535)return ne=((ne=this.index[2048+(K-55296>>5)])<<2)+(31&K),this.data[ne];if(K>11),ne=this.index[ne],ne+=K>>5&63,ne=((ne=this.index[ne])<<2)+(31&K),this.data[ne];if(K<=1114111)return this.data[this.highValueIndex]}return this.errorValue},Fe}(),rk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",OM=typeof Uint8Array>"u"?[]:new Uint8Array(256),yM=0;yM<64;yM++)OM[rk.charCodeAt(yM)]=yM;var RA,IE=8,$L=9,Ha=11,poe=12,boe=function(){for(var K=[],ne=0;ne>10),Ke%1024+56320)),(Be+1===ae||be.length>16384)&&(Xe+=String.fromCharCode.apply(String,be),be.length=0)}return Xe},CM=function(Fe){var K,ne,ae,be=function(qe){var Ot,Lt,Vt,Vn,Dn,$n=.75*qe.length,Ai=qe.length,mr=0;qe[qe.length-1]==="="&&($n--,qe[qe.length-2]==="="&&$n--);var $i=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&Uint8Array.prototype.slice!==void 0?new ArrayBuffer($n):new Array($n),Go=Array.isArray($i)?$i:new Uint8Array($i);for(Ot=0;Ot>4,Go[mr++]=(15&Vt)<<4|Vn>>2,Go[mr++]=(3&Vn)<<6|63&Dn;return $i}(Fe),Be=Array.isArray(be)?function(qe){for(var Ot=qe.length,Lt=[],Vt=0;Vt=55296&&Lt<=56319&&qe=ae)return{done:!0,value:null};for(var vt=ok;beKe.x||Lt.y>Ke.y;return Ke=Lt,Ot===0||Vt});return K.body.removeChild(ne),vt}(document);return Object.defineProperty(wu,"SUPPORT_WORD_BREAKING",{value:Fe}),Fe},get SUPPORT_SVG_DRAWING(){var Fe=function(K){var ne=new Image,ae=K.createElement("canvas"),be=ae.getContext("2d");if(!be)return!1;ne.src="data:image/svg+xml,";try{be.drawImage(ne,0,0),ae.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(wu,"SUPPORT_SVG_DRAWING",{value:Fe}),Fe},get SUPPORT_FOREIGNOBJECT_DRAWING(){var Fe=typeof Array.from=="function"&&typeof window.fetch=="function"?function(K){var ne=K.createElement("canvas"),ae=100;ne.width=ae,ne.height=ae;var be=ne.getContext("2d");if(!be)return Promise.reject(!1);be.fillStyle="rgb(0, 255, 0)",be.fillRect(0,0,ae,ae);var Be=new Image,Xe=ne.toDataURL();Be.src=Xe;var Ke=XL(ae,ae,0,0,Be);return be.fillStyle="red",be.fillRect(0,0,ae,ae),qH(Ke).then(function(vt){be.drawImage(vt,0,0);var qe=be.getImageData(0,0,ae,ae).data;be.fillStyle="red",be.fillRect(0,0,ae,ae);var Ot=K.createElement("div");return Ot.style.backgroundImage="url("+Xe+")",Ot.style.height=ae+"px",Rp(qe)?qH(XL(ae,ae,0,0,Ot)):Promise.reject(!1)}).then(function(vt){return be.drawImage(vt,0,0),Rp(be.getImageData(0,0,ae,ae).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(wu,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:Fe}),Fe},get SUPPORT_CORS_IMAGES(){var Fe=new Image().crossOrigin!==void 0;return Object.defineProperty(wu,"SUPPORT_CORS_IMAGES",{value:Fe}),Fe},get SUPPORT_RESPONSE_TYPE(){var Fe=typeof new XMLHttpRequest().responseType=="string";return Object.defineProperty(wu,"SUPPORT_RESPONSE_TYPE",{value:Fe}),Fe},get SUPPORT_CORS_XHR(){var Fe="withCredentials"in new XMLHttpRequest;return Object.defineProperty(wu,"SUPPORT_CORS_XHR",{value:Fe}),Fe},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var Fe=!(typeof Intl>"u"||!Intl.Segmenter);return Object.defineProperty(wu,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:Fe}),Fe}},GL=function(K,ne){this.text=K,this.bounds=ne},woe=function(K,ne){var ae=ne.ownerDocument;if(ae){var be=ae.createElement("html2canvaswrapper");be.appendChild(ne.cloneNode(!0));var Be=ne.parentNode;if(Be){Be.replaceChild(be,ne);var Xe=l(K,be);return be.firstChild&&Be.replaceChild(be.firstChild,be),Xe}}return a.EMPTY},ME=function(K,ne,ae){var be=K.ownerDocument;if(!be)throw new Error("Node has no owner document");var Be=be.createRange();return Be.setStart(K,ne),Be.setEnd(K,ne+ae),Be},SM=function(K){if(wu.SUPPORT_NATIVE_TEXT_SEGMENTATION){var ne=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(ne.segment(K)).map(function(ae){return ae.segment})}return function(ae){for(var be,Be=_M(ae),Xe=[];!(be=Be.next()).done;)be.value&&Xe.push(be.value.slice());return Xe}(K)},PE=function(K,ne){return ne.letterSpacing!==0?SM(K):function(ae,be){if(wu.SUPPORT_NATIVE_TEXT_SEGMENTATION){var Be=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(Be.segment(ae)).map(function(Xe){return Xe.segment})}return LM(ae,be)}(K,ne)},wC=[32,160,4961,65792,65793,4153,4241],LM=function(K,ne){for(var ae,be=function(Ke,vt){var qe=d(Ke),Ot=ke(qe,vt),Lt=Ot[0],Vt=Ot[1],Vn=Ot[2],Dn=qe.length,$n=0,Ai=0;return{next:function(){if(Ai>=Dn)return{done:!0,value:null};for(var $i=le;Ai0)if(wu.SUPPORT_RANGE_BOUNDS){var Vt=ME(Ke,Ot,Lt.length).getClientRects();if(Vt.length>1){var Vn=SM(Lt),Dn=0;Vn.forEach(function(Ai){qe.push(new GL(Ai,a.fromDOMRectList(be,ME(Ke,Dn+Ot,Ai.length).getClientRects()))),Dn+=Ai.length})}else qe.push(new GL(Lt,a.fromDOMRectList(be,Vt)))}else{var $n=Ke.splitText(Lt.length);qe.push(new GL(Lt,woe(be,Ke))),Ke=$n}else wu.SUPPORT_RANGE_BOUNDS||(Ke=Ke.splitText(Lt.length));Ot+=Lt.length}),qe}(K,this.text,ae,ne)},Fye=function(K,ne){switch(ne){case 1:return K.toLowerCase();case 3:return K.replace(Nye,xM);case 2:return K.toUpperCase();default:return K}},Nye=/(^|\s|:|-|\(|\))([a-z])/g,xM=function(K,ne,ae){return K.length>0?ne+ae.toUpperCase():K},FE=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.src=ae.currentSrc||ae.src,be.intrinsicWidth=ae.naturalWidth,be.intrinsicHeight=ae.naturalHeight,be.context.cache.addImage(be.src),be}return t(K,Fe),K}(Jr),EM=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.canvas=ae,be.intrinsicWidth=ae.width,be.intrinsicHeight=ae.height,be}return t(K,Fe),K}(Jr),Ooe=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this,Be=new XMLSerializer,Xe=l(ne,ae);return ae.setAttribute("width",Xe.width+"px"),ae.setAttribute("height",Xe.height+"px"),be.svg="data:image/svg+xml,"+encodeURIComponent(Be.serializeToString(ae)),be.intrinsicWidth=ae.width.baseVal.value,be.intrinsicHeight=ae.height.baseVal.value,be.context.cache.addImage(be.svg),be}return t(K,Fe),K}(Jr),KH=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.value=ae.value,be}return t(K,Fe),K}(Jr),JH=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.start=ae.start,be.reversed=typeof ae.reversed=="boolean"&&ae.reversed===!0,be}return t(K,Fe),K}(Jr),Uye=[{type:15,flags:0,unit:"px",number:3}],Gu=[{type:16,flags:0,number:50}],Yu="checkbox",TM="radio",jye="password",e$=707406591,t$=function(Fe){function K(ne,ae){var be,Be,Xe,Ke=Fe.call(this,ne,ae)||this;switch(Ke.type=ae.type.toLowerCase(),Ke.checked=ae.checked,Ke.value=(Be=(be=ae).type===jye?new Array(be.value.length+1).join("•"):be.value).length===0?be.placeholder||"":Be,Ke.type!==Yu&&Ke.type!==TM||(Ke.styles.backgroundColor=3739148031,Ke.styles.borderTopColor=Ke.styles.borderRightColor=Ke.styles.borderBottomColor=Ke.styles.borderLeftColor=2779096575,Ke.styles.borderTopWidth=Ke.styles.borderRightWidth=Ke.styles.borderBottomWidth=Ke.styles.borderLeftWidth=1,Ke.styles.borderTopStyle=Ke.styles.borderRightStyle=Ke.styles.borderBottomStyle=Ke.styles.borderLeftStyle=1,Ke.styles.backgroundClip=[0],Ke.styles.backgroundOrigin=[0],Ke.bounds=(Xe=Ke.bounds).width>Xe.height?new a(Xe.left+(Xe.width-Xe.height)/2,Xe.top,Xe.height,Xe.height):Xe.width0)ae.textNodes.push(new Pye(K,Be,ae.styles));else if(JL(Be))if(Loe(Be)&&Be.assignedNodes)Be.assignedNodes().forEach(function(vt){return Fe(K,vt,ae,be)});else{var Ke=qL(K,Be);Ke.styles.isVisible()&&(KL(Be,Ke,be)?Ke.flags|=4:Wye(Ke.styles)&&(Ke.flags|=2),ZL.indexOf(Be.tagName)!==-1&&(Ke.flags|=8),ae.elements.push(Ke),Be.slot,Be.shadowRoot?Fe(K,Be.shadowRoot,Ke,be):IM(Be)||tt(Be)||IA(Be)||Fe(K,Be,Ke,be))}},qL=function(K,ne){return Is(ne)?new FE(K,ne):WE(ne)?new EM(K,ne):tt(ne)?new Ooe(K,ne):RM(ne)?new KH(K,ne):jE(ne)?new JH(K,ne):Coe(ne)?new t$(K,ne):IA(ne)?new QM(K,ne):IM(ne)?new YL(K,ne):_oe(ne)?new DM(K,ne):new Jr(K,ne)},UE=function(K,ne){var ae=qL(K,ne);return ae.flags|=4,NE(K,ne,ae,ae),ae},KL=function(K,ne,ae){return ne.styles.isPositionedWithZIndex()||ne.styles.opacity<1||ne.styles.isTransformed()||J3(K)&&ae.styles.isTransparent()},Wye=function(K){return K.isPositioned()||K.isFloating()},yoe=function(K){return K.nodeType===Node.TEXT_NODE},JL=function(K){return K.nodeType===Node.ELEMENT_NODE},n$=function(K){return JL(K)&&K.style!==void 0&&!BM(K)},BM=function(K){return kn(K.className)=="object"},RM=function(K){return K.tagName==="LI"},jE=function(K){return K.tagName==="OL"},Coe=function(K){return K.tagName==="INPUT"},tt=function(K){return K.tagName==="svg"},J3=function(K){return K.tagName==="BODY"},WE=function(K){return K.tagName==="CANVAS"},I1=function(K){return K.tagName==="VIDEO"},Is=function(K){return K.tagName==="IMG"},_oe=function(K){return K.tagName==="IFRAME"},Soe=function(K){return K.tagName==="STYLE"},IM=function(K){return K.tagName==="TEXTAREA"},IA=function(K){return K.tagName==="SELECT"},Loe=function(K){return K.tagName==="SLOT"},xoe=function(K){return K.tagName.indexOf("-")>0},Vye=function(){function Fe(){this.counters={}}return Fe.prototype.getCounterValue=function(K){var ne=this.counters[K];return ne&&ne.length?ne[ne.length-1]:1},Fe.prototype.getCounterValues=function(K){var ne=this.counters[K];return ne||[]},Fe.prototype.pop=function(K){var ne=this;K.forEach(function(ae){return ne.counters[ae].pop()})},Fe.prototype.parse=function(K){var ne=this,ae=K.counterIncrement,be=K.counterReset,Be=!0;ae!==null&&ae.forEach(function(Ke){var vt=ne.counters[Ke.counter];vt&&Ke.increment!==0&&(Be=!1,vt.length||vt.push(1),vt[Math.max(0,vt.length-1)]+=Ke.increment)});var Xe=[];return Be&&be.forEach(function(Ke){var vt=ne.counters[Ke.counter];Xe.push(Ke.counter),vt||(vt=ne.counters[Ke.counter]=[]),vt.push(Ke.reset)}),Xe},Fe}(),Eoe={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Toe={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Ip={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},zye={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},ex=function(K,ne,ae,be,Be,Xe){return Kae?VE(K,Be,Xe.length>0):be.integers.reduce(function(Ke,vt,qe){for(;K>=vt;)K-=vt,Ke+=be.values[qe];return Ke},"")+Xe},Qoe=function(K,ne,ae,be){var Be="";do ae||K--,Be=be(K)+Be,K/=ne;while(K*ne>=ne);return Be},Yd=function(K,ne,ae,be,Be){var Xe=ae-ne+1;return(K<0?"-":"")+(Qoe(Math.abs(K),Xe,be,function(Ke){return u(Math.floor(Ke%Xe)+ne)})+Be)},OC=function(K,ne,ae){ae===void 0&&(ae=". ");var be=ne.length;return Qoe(Math.abs(K),be,!1,function(Be){return ne[Math.floor(Be%be)]})+ae},cf=function(K,ne,ae,be,Be,Xe){if(K<-9999||K>9999)return VE(K,4,Be.length>0);var Ke=Math.abs(K),vt=Be;if(Ke===0)return ne[0]+vt;for(var qe=0;Ke>0&&qe<=4;qe++){var Ot=Ke%10;Ot===0&&Xu(Xe,1)&&vt!==""?vt=ne[Ot]+vt:Ot>1||Ot===1&&qe===0||Ot===1&&qe===1&&Xu(Xe,2)||Ot===1&&qe===1&&Xu(Xe,4)&&K>100||Ot===1&&qe>1&&Xu(Xe,8)?vt=ne[Ot]+(qe>0?ae[qe-1]:"")+vt:Ot===1&&qe>0&&(vt=ae[qe-1]+vt),Ke=Math.floor(Ke/10)}return(K<0?be:"")+vt},Doe="十百千萬",Boe="拾佰仟萬",Roe="マイナス",i$="마이너스",VE=function(K,ne,ae){var be=ae?". ":"",Be=ae?"、":"",Xe=ae?", ":"",Ke=ae?" ":"";switch(ne){case 0:return"•"+Ke;case 1:return"◦"+Ke;case 2:return"◾"+Ke;case 5:var vt=Yd(K,48,57,!0,be);return vt.length<4?"0"+vt:vt;case 4:return OC(K,"〇一二三四五六七八九",Be);case 6:return ex(K,1,3999,Eoe,3,be).toLowerCase();case 7:return ex(K,1,3999,Eoe,3,be);case 8:return Yd(K,945,969,!1,be);case 9:return Yd(K,97,122,!1,be);case 10:return Yd(K,65,90,!1,be);case 11:return Yd(K,1632,1641,!0,be);case 12:case 49:return ex(K,1,9999,Toe,3,be);case 35:return ex(K,1,9999,Toe,3,be).toLowerCase();case 13:return Yd(K,2534,2543,!0,be);case 14:case 30:return Yd(K,6112,6121,!0,be);case 15:return OC(K,"子丑寅卯辰巳午未申酉戌亥",Be);case 16:return OC(K,"甲乙丙丁戊己庚辛壬癸",Be);case 17:case 48:return cf(K,"零一二三四五六七八九",Doe,"負",Be,14);case 47:return cf(K,"零壹貳參肆伍陸柒捌玖",Boe,"負",Be,15);case 42:return cf(K,"零一二三四五六七八九",Doe,"负",Be,14);case 41:return cf(K,"零壹贰叁肆伍陆柒捌玖",Boe,"负",Be,15);case 26:return cf(K,"〇一二三四五六七八九","十百千万",Roe,Be,0);case 25:return cf(K,"零壱弐参四伍六七八九","拾百千万",Roe,Be,7);case 31:return cf(K,"영일이삼사오육칠팔구","십백천만",i$,Xe,7);case 33:return cf(K,"零一二三四五六七八九","十百千萬",i$,Xe,0);case 32:return cf(K,"零壹貳參四五六七八九","拾百千",i$,Xe,7);case 18:return Yd(K,2406,2415,!0,be);case 20:return ex(K,1,19999,zye,3,be);case 21:return Yd(K,2790,2799,!0,be);case 22:return Yd(K,2662,2671,!0,be);case 22:return ex(K,1,10999,Ip,3,be);case 23:return OC(K,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return OC(K,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Yd(K,3302,3311,!0,be);case 28:return OC(K,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",Be);case 29:return OC(K,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",Be);case 34:return Yd(K,3792,3801,!0,be);case 37:return Yd(K,6160,6169,!0,be);case 38:return Yd(K,4160,4169,!0,be);case 39:return Yd(K,2918,2927,!0,be);case 40:return Yd(K,1776,1785,!0,be);case 43:return Yd(K,3046,3055,!0,be);case 44:return Yd(K,3174,3183,!0,be);case 45:return Yd(K,3664,3673,!0,be);case 46:return Yd(K,3872,3881,!0,be);default:return Yd(K,48,57,!0,be)}},ew="data-html2canvas-ignore",Ioe=function(){function Fe(K,ne,ae){if(this.context=K,this.options=ae,this.scrolledElements=[],this.referenceElement=ne,this.counters=new Vye,this.quoteDepth=0,!ne.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(ne.ownerDocument.documentElement,!1)}return Fe.prototype.toIFrame=function(K,ne){var ae=this,be=M2(K,ne);if(!be.contentWindow)return Promise.reject("Unable to find iframe window");var Be=K.defaultView.pageXOffset,Xe=K.defaultView.pageYOffset,Ke=be.contentWindow,vt=Ke.document,qe=Xye(be).then(function(){return r(ae,void 0,void 0,function(){var Ot,Lt;return o(this,function(Vt){switch(Vt.label){case 0:return this.scrolledElements.forEach(Yye),Ke&&(Ke.scrollTo(ne.left,ne.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||Ke.scrollY===ne.top&&Ke.scrollX===ne.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(Ke.scrollX-ne.left,Ke.scrollY-ne.top,0,0))),Ot=this.options.onclone,(Lt=this.clonedReferenceElement)===void 0?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:vt.fonts&&vt.fonts.ready?[4,vt.fonts.ready]:[3,2];case 1:Vt.sent(),Vt.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,$ye(vt)]:[3,4];case 3:Vt.sent(),Vt.label=4;case 4:return typeof Ot=="function"?[2,Promise.resolve().then(function(){return Ot(vt,Lt)}).then(function(){return be})]:[2,be]}})})});return vt.open(),vt.write(Moe(document.doctype)+""),Poe(this.referenceElement.ownerDocument,Be,Xe),vt.replaceChild(vt.adoptNode(this.documentElement),vt.documentElement),vt.close(),qe},Fe.prototype.createElementClone=function(K){if(or(K,2),WE(K))return this.createCanvasClone(K);if(I1(K))return this.createVideoClone(K);if(Soe(K))return this.createStyleClone(K);var ne=K.cloneNode(!1);return Is(ne)&&(Is(K)&&K.currentSrc&&K.currentSrc!==K.src&&(ne.src=K.currentSrc,ne.srcset=""),ne.loading==="lazy"&&(ne.loading="eager")),xoe(ne)?this.createCustomElementClone(ne):ne},Fe.prototype.createCustomElementClone=function(K){var ne=document.createElement("html2canvascustomelement");return r$(K.style,ne),ne},Fe.prototype.createStyleClone=function(K){try{var ne=K.sheet;if(ne&&ne.cssRules){var ae=[].slice.call(ne.cssRules,0).reduce(function(Be,Xe){return Xe&&typeof Xe.cssText=="string"?Be+Xe.cssText:Be},""),be=K.cloneNode(!1);return be.textContent=ae,be}}catch(Be){if(this.context.logger.error("Unable to access cssRules property",Be),Be.name!=="SecurityError")throw Be}return K.cloneNode(!1)},Fe.prototype.createCanvasClone=function(K){var ne;if(this.options.inlineImages&&K.ownerDocument){var ae=K.ownerDocument.createElement("img");try{return ae.src=K.toDataURL(),ae}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",K)}}var be=K.cloneNode(!1);try{be.width=K.width,be.height=K.height;var Be=K.getContext("2d"),Xe=be.getContext("2d");if(Xe)if(!this.options.allowTaint&&Be)Xe.putImageData(Be.getImageData(0,0,K.width,K.height),0,0);else{var Ke=(ne=K.getContext("webgl2"))!==null&&ne!==void 0?ne:K.getContext("webgl");if(Ke){var vt=Ke.getContextAttributes();(vt==null?void 0:vt.preserveDrawingBuffer)===!1&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",K)}Xe.drawImage(K,0,0)}return be}catch{this.context.logger.info("Unable to clone canvas as it is tainted",K)}return be},Fe.prototype.createVideoClone=function(K){var ne=K.ownerDocument.createElement("canvas");ne.width=K.offsetWidth,ne.height=K.offsetHeight;var ae=ne.getContext("2d");try{return ae&&(ae.drawImage(K,0,0,ne.width,ne.height),this.options.allowTaint||ae.getImageData(0,0,ne.width,ne.height)),ne}catch{this.context.logger.info("Unable to clone video as it is tainted",K)}var be=K.ownerDocument.createElement("canvas");return be.width=K.offsetWidth,be.height=K.offsetHeight,be},Fe.prototype.appendChildNode=function(K,ne,ae){JL(ne)&&(ne.tagName==="SCRIPT"||ne.hasAttribute(ew)||typeof this.options.ignoreElements=="function"&&this.options.ignoreElements(ne))||this.options.copyStyles&&JL(ne)&&Soe(ne)||K.appendChild(this.cloneNode(ne,ae))},Fe.prototype.cloneChildNodes=function(K,ne,ae){for(var be=this,Be=K.shadowRoot?K.shadowRoot.firstChild:K.firstChild;Be;Be=Be.nextSibling)if(JL(Be)&&Loe(Be)&&typeof Be.assignedNodes=="function"){var Xe=Be.assignedNodes();Xe.length&&Xe.forEach(function(Ke){return be.appendChildNode(ne,Ke,ae)})}else this.appendChildNode(ne,Be,ae)},Fe.prototype.cloneNode=function(K,ne){if(yoe(K))return document.createTextNode(K.data);if(!K.ownerDocument)return K.cloneNode(!1);var ae=K.ownerDocument.defaultView;if(ae&&JL(K)&&(n$(K)||BM(K))){var be=this.createElementClone(K);be.style.transitionProperty="none";var Be=ae.getComputedStyle(K),Xe=ae.getComputedStyle(K,":before"),Ke=ae.getComputedStyle(K,":after");this.referenceElement===K&&n$(be)&&(this.clonedReferenceElement=be),J3(be)&&MM(be);var vt=this.counters.parse(new Sn(this.context,Be)),qe=this.resolvePseudoContent(K,be,Xe,RA.BEFORE);xoe(K)&&(ne=!0),I1(K)||this.cloneChildNodes(K,be,ne),qe&&be.insertBefore(qe,be.firstChild);var Ot=this.resolvePseudoContent(K,be,Ke,RA.AFTER);return Ot&&be.appendChild(Ot),this.counters.pop(vt),(Be&&(this.options.copyStyles||BM(K))&&!_oe(K)||ne)&&r$(Be,be),K.scrollTop===0&&K.scrollLeft===0||this.scrolledElements.push([be,K.scrollLeft,K.scrollTop]),(IM(K)||IA(K))&&(IM(be)||IA(be))&&(be.value=K.value),be}return K.cloneNode(!1)},Fe.prototype.resolvePseudoContent=function(K,ne,ae,be){var Be=this;if(ae){var Xe=ae.content,Ke=ne.ownerDocument;if(Ke&&Xe&&Xe!=="none"&&Xe!=="-moz-alt-content"&&ae.display!=="none"){this.counters.parse(new Sn(this.context,ae));var vt=new Wt(this.context,ae),qe=Ke.createElement("html2canvaspseudoelement");r$(ae,qe),vt.content.forEach(function(Lt){if(Lt.type===0)qe.appendChild(Ke.createTextNode(Lt.value));else if(Lt.type===22){var Vt=Ke.createElement("img");Vt.src=Lt.value,Vt.style.opacity="1",qe.appendChild(Vt)}else if(Lt.type===18){if(Lt.name==="attr"){var Vn=Lt.values.filter(Zt);Vn.length&&qe.appendChild(Ke.createTextNode(K.getAttribute(Vn[0].value)||""))}else if(Lt.name==="counter"){var Dn=Lt.values.filter(Ne),$n=Dn[0],Ai=Dn[1];if($n&&Zt($n)){var mr=Be.counters.getCounterValue($n.value),$i=Ai&&Zt(Ai)?zH.parse(Be.context,Ai.value):3;qe.appendChild(Ke.createTextNode(VE(mr,$i,!1)))}}else if(Lt.name==="counters"){var Go=Lt.values.filter(Ne),Vo=($n=Go[0],Go[1]);if(Ai=Go[2],$n&&Zt($n)){var uo=Be.counters.getCounterValues($n.value),lr=Ai&&Zt(Ai)?zH.parse(Be.context,Ai.value):3,rs=Vo&&Vo.type===0?Vo.value:"",os=uo.map(function(ko){return VE(ko,lr,!1)}).join(rs);qe.appendChild(Ke.createTextNode(os))}}}else if(Lt.type===20)switch(Lt.value){case"open-quote":qe.appendChild(Ke.createTextNode(Aoe(vt.quotes,Be.quoteDepth++,!0)));break;case"close-quote":qe.appendChild(Ke.createTextNode(Aoe(vt.quotes,--Be.quoteDepth,!1)));break;default:qe.appendChild(Ke.createTextNode(Lt.value))}}),qe.className=o$+" "+zE;var Ot=be===RA.BEFORE?" "+o$:" "+zE;return BM(ne)?ne.className.baseValue+=Ot:ne.className+=Ot,qe}}},Fe.destroy=function(K){return!!K.parentNode&&(K.parentNode.removeChild(K),!0)},Fe}();(function(Fe){Fe[Fe.BEFORE=0]="BEFORE",Fe[Fe.AFTER=1]="AFTER"})(RA||(RA={}));var al,M2=function(K,ne){var ae=K.createElement("iframe");return ae.className="html2canvas-container",ae.style.visibility="hidden",ae.style.position="fixed",ae.style.left="-10000px",ae.style.top="0px",ae.style.border="0",ae.width=ne.width.toString(),ae.height=ne.height.toString(),ae.scrolling="no",ae.setAttribute(ew,"true"),K.body.appendChild(ae),ae},Hye=function(K){return new Promise(function(ne){K.complete?ne():K.src?(K.onload=ne,K.onerror=ne):ne()})},$ye=function(K){return Promise.all([].slice.call(K.images,0).map(Hye))},Xye=function(K){return new Promise(function(ne,ae){var be=K.contentWindow;if(!be)return ae("No window assigned for iframe");var Be=be.document;be.onload=K.onload=function(){be.onload=K.onload=null;var Xe=setInterval(function(){Be.body.childNodes.length>0&&Be.readyState==="complete"&&(clearInterval(Xe),ne(K))},50)}})},Gye=["all","d","content"],r$=function(K,ne){for(var ae=K.length-1;ae>=0;ae--){var be=K.item(ae);Gye.indexOf(be)===-1&&ne.style.setProperty(be,K.getPropertyValue(be))}return ne},Moe=function(K){var ne="";return K&&(ne+=""),ne},Poe=function(K,ne,ae){K&&K.defaultView&&(ne!==K.defaultView.pageXOffset||ae!==K.defaultView.pageYOffset)&&K.defaultView.scrollTo(ne,ae)},Yye=function(K){var ne=K[0],ae=K[1],be=K[2];ne.scrollLeft=ae,ne.scrollTop=be},o$="___html2canvas___pseudoelement_before",zE="___html2canvas___pseudoelement_after",tx=`{ +`+v(w.parentVnode),O.foreignObject=w.foreignObject,O.parentVnode=w.parentVnode,O}for(var b=0;b=re.length?$.length:re[le],te=0;te<$.length;te++){var Z=$[te];Z.key?oe.hasOwnProperty(Z.key)||se.push(Z):te>=ie&&se.push(Z)}for(var he,pe=se.slice(),Ce=0,Qe=[],ke=[],me=0;me<$.length;){var _e=$[me];for(he=pe[Ce];he===null&&pe.length;)Qe.push(f(pe,Ce,null)),he=pe[Ce];he&&he.key===_e.key?(Ce++,me++):_e.key?(he&&he.key&&q[he.key]!==me+1?(Qe.push(f(pe,Ce,he.key)),(he=pe[Ce])&&he.key===_e.key?Ce++:ke.push({key:_e.key,to:me})):ke.push({key:_e.key,to:me}),me++):he&&he.key&&Qe.push(f(pe,Ce,he.key))}for(;CeR?B:R,F=0;F=s&&d<=a;if(da))return!0;h=l-1}}return!1}function r(o,s){return o>s?1:-1}return ZGt=function(s,a,l,d){return l&&l.length!==0?(l.sort(r),t(s,a,l,d,0)):{}}}function jqo(){if(eYt)return pEe;eYt=1;var e=xzn(),t=jR(),n=_zn(),r=function(){if(JGt)return KGt;JGt=1;var s=jR();return KGt=function(l,d){return!(!s(l)||!s(d))&&("name"in l&&"name"in d?l.id===d.id:l.init===d.init)}}();function o(s,a){typeof a.destroy=="function"&&t(a)&&a.destroy(s)}return pEe=function(a,l,d){var u=a.type,h=a.vNode,g=a.patch;switch(u){case n.REMOVE:return function(m,v){var f=m.parentNode;return f&&f.removeChild(m),o(m,v),null}(l,h);case n.INSERT:return function(m,v,f){var k=f.render(v,f);return m&&m.appendChild(k),m}(l,g,d);case n.VTEXT:return function(m,v,f,k){var A;if(m.nodeType===3)m.replaceData(0,m.length,f.text),A=m;else{var p=m.parentNode;A=k.render(f,k),p&&A!==m&&p.replaceChild(A,m)}return A}(l,0,g,d);case n.WIDGET:return function(m,v,f,k){var A,p=r(v,f);A=p?f.update(v,m)||m:k.render(f,k);var b=m.parentNode;return b&&A!==m&&b.replaceChild(A,m),p||o(m,v),A}(l,h,g,d);case n.VNODE:return function(m,v,f,k){var A=m.parentNode,p=k.render(f,k);return A&&p!==m&&A.replaceChild(p,m),p}(l,0,g,d);case n.ORDER:return function(m,v){for(var f,k,A,p=m.childNodes,b={},w=0;w=O++?null:p[A.to])}(l,g),l;case n.PROPS:return e(l,g,h.properties),l;case n.THUNK:return function(m,v){return m&&v&&m!==v&&m.parentNode&&m.parentNode.replaceChild(v,m),v}(l,d.patch(l,g,d));default:return l}},pEe}function Wqo(){if(tYt)return bEe;tYt=1;var e=rYt(),t=yot(),n=function(){if(YGt)return AEe;YGt=1;var l=rYt(),d=xzn(),u=Gee(),h=fOe(),g=jR(),m=Szn();return AEe=function v(f,k){var A=k&&k.document||l,p=k?k.warn:null;if(f=m(f).a,g(f))return f.init();if(h(f))return A.createTextNode(f.text);if(!u(f))return p&&p("Item is not a valid virtual dom node",f),null;var b=f.namespace===null?A.createElement(f.tagName):A.createElementNS(f.namespace,f.tagName),w=f.properties;d(b,w);for(var O=f.children,y=0;y=o&&k>=r)return l[d]=u,this.$backtraceSnakes(l,r,o,d)}l[d]=u}return[]}},{key:"$backtraceSnakes",value:function(t,n,r,o){for(var s=[],a={x:r,y:n},l=o;l>0;l--){var d=t[l],u=t[l-1],h=a.x-a.y,g=d[h],m=h===-l||h!==l&&u[h+1]>u[h-1],v=m?h+1:h-1,f=u[v],k=f-v,A=m?f:f+1;s.unshift({xStart:f,xMid:A,xEnd:g}),a.x=f,a.y=k}return s}},{key:"assembleResult",value:function(t,n,r){var o=0,s=[],a={},l={},d={};return ki(t).call(t,function(u,h){var g=u.xStart;if(h===0&&u.xStart!==0)for(var m=0;m0;)o[d]=o[--d];d!==u++&&(o[d]=l)}else for(var h=t(a/2),g=r(e(o,0,h),s),m=r(e(o,h),s),v=g.length,f=m.length,k=0,A=0;k=Se.length)return Me.target=void 0,L(void 0,!0);var ze=Se[Ie];switch(Me.kind){case"keys":return L(ze.key,!1);case"values":return L(ze.value,!1)}return L([ze.key,ze.value],!1)},!0),Te=function(Se){this.entries=[],this.url=null,Se!==void 0&&(w(Se)?this.parseObject(Se):this.parseQuery(typeof Se=="string"?oe(Se,0)==="?"?Y(Se,1):Se:O(Se)))};Te.prototype={type:Q,bindURL:function(Se){this.url=Se,this.update()},parseObject:function(Se){var Ie,ze,Ze,gt,St,Pt,dn,on=this.entries,pn=S(Se);if(pn)for(ze=(Ie=_(Se,pn)).next;!(Ze=r(ze,Ie)).done;){if(St=(gt=_(b(Ze.value))).next,(Pt=r(St,gt)).done||(dn=r(St,gt)).done||!r(St,gt).done)throw new q("Expected sequence with length 2");le(on,{key:O(Pt.value),value:O(dn.value)})}else for(var ni in Se)k(Se,ni)&&le(on,{key:ni,value:O(Se[ni])})},parseQuery:function(Se){if(Se)for(var Ie,ze,Ze=this.entries,gt=z(Se,"&"),St=0;St0?arguments[0]:void 0));s||(this.size=Se.entries.length)},Ye=De.prototype;if(u(Ye,{append:function(Se,Ie){var ze=R(this);E(arguments.length,2),le(ze.entries,{key:O(Se),value:O(Ie)}),s||this.length++,ze.updateURL()},delete:function(Se){for(var Ie=R(this),ze=E(arguments.length,1),Ze=Ie.entries,gt=O(Se),St=ze<2?void 0:arguments[1],Pt=St===void 0?St:O(St),dn=0;dnze.key?1:-1}),Se.updateURL()},forEach:function(Se){for(var Ie,ze=R(this).entries,Ze=A(Se,arguments.length>1?arguments[1]:void 0),gt=0;gt1?et(arguments[1]):{})}}),f(j)){var st=function(Se){return v(this,H),new j(Se,arguments.length>1?et(arguments[1]):{})};H.constructor=st,st.prototype=H,e({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:st})}}return lYt={URLSearchParams:De,getState:R}}var dYt,uYt,hYt,fYt,gYt={};function $qo(){if(uYt)return dYt;uYt=1;var e=Xs(),t=2147483647,n=/[^\0-\u007E]/,r=/[.\u3002\uFF0E\uFF61]/g,o="Overflow: input needs wider integers to process",s=RangeError,a=e(r.exec),l=Math.floor,d=String.fromCharCode,u=e("".charCodeAt),h=e([].join),g=e([].push),m=e("".replace),v=e("".split),f=e("".toLowerCase),k=function(w){return w+22+75*(w<26)},A=function(w,O,y){var C=0;for(w=y?l(w/700):w>>1,w+=l(w/O);w>455;)w=l(w/35),C+=36;return l(C+36*w/(w+38))},p=function(w){var O=[];w=function(j){for(var W=[],H=0,$=j.length;H<$;){var G=u(j,H++);if(G>=55296&&G<=56319&&H<$){var q=u(j,H++);(64512&q)==56320?g(W,((1023&G)<<10)+(1023&q)+65536):(g(W,G),H--)}else g(W,G)}return W}(w);var y,C,_=w.length,S=128,L=0,E=72;for(y=0;y=S&&Cl((t-L)/Q))throw new s(o);for(L+=(P-S)*Q,S=P,y=0;yt)throw new s(o);if(C===S){for(var M=L,B=36;;){var R=B<=E?1:B>=E+26?26:B-E;if(M?@[\\\]^|]/,te=/[\0\t\n\r #/:<>?@[\\\]^|]/,Z=/^[\u0000-\u0020]+/,he=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,pe=/[\t\n\r]/g,Ce=function(At){var Mt,Kt,qn,Zt;if(typeof At=="number"){for(Mt=[],Kt=0;Kt<4;Kt++)q(Mt,At%256),At=D(At/256);return B(Mt,".")}if(kn(At)=="object"){for(Mt="",qn=function(so){for(var Un=null,dt=1,Ne=null,nt=0,bn=0;bn<8;bn++)so[bn]!==0?(nt>dt&&(Un=Ne,dt=nt),Ne=null,nt=0):(Ne===null&&(Ne=bn),++nt);return nt>dt&&(Un=Ne,dt=nt),Un}(At),Kt=0;Kt<8;Kt++)Zt&&At[Kt]===0||(Zt&&(Zt=!1),qn===Kt?(Mt+=Kt?":":"::",Zt=!0):(Mt+=R(At[Kt],16),Kt<7&&(Mt+=":")));return"["+Mt+"]"}return At},Qe={},ke=g({},Qe,{" ":1,'"':1,"<":1,">":1,"`":1}),me=g({},ke,{"#":1,"?":1,"{":1,"}":1}),_e=g({},me,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Te=function(At,Mt){var Kt=f(At,0);return Kt>32&&Kt<127&&!h(Mt,At)?At:encodeURIComponent(At)},De={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Ye=function(At,Mt){var Kt;return At.length===2&&M(se,Q(At,0))&&((Kt=Q(At,1))===":"||!Mt&&Kt==="|")},ot=function(At){var Mt;return At.length>1&&Ye($(At,0,2))&&(At.length===2||(Mt=Q(At,2))==="/"||Mt==="\\"||Mt==="?"||Mt==="#")},We=function(At){return At==="."||G(At)==="%2e"},et={},st={},Me={},Se={},Ie={},ze={},Ze={},gt={},St={},Pt={},dn={},on={},pn={},ni={},Zn={},Pi={},rr={},Hr={},Bo={},lo={},Fr={},is=function ht(At,Mt,Kt){var qn,Zt,so,Un=A(At);if(Mt){if(Zt=this.parse(Un))throw new E(Zt);this.searchParams=null}else{if(Kt!==void 0&&(qn=new ht(Kt,!0)),Zt=this.parse(Un,null,qn))throw new E(Zt);(so=S(new _)).bindURL(this),this.searchParams=so}};is.prototype={type:"URL",parse:function(At,Mt,Kt){var qn,Zt,so,Un,dt,Ne=this,nt=Mt||et,bn=0,hn="",En=!1,wi=!1,Ue=!1;for(At=A(At),Mt||(Ne.scheme="",Ne.username="",Ne.password="",Ne.host=null,Ne.port=null,Ne.path=[],Ne.query=null,Ne.fragment=null,Ne.cannotBeABaseURL=!1,At=j(At,Z,""),At=j(At,he,"$1")),At=j(At,pe,""),qn=m(At);bn<=qn.length;){switch(Zt=qn[bn],nt){case et:if(!Zt||!M(se,Zt)){if(Mt)return re;nt=Me;continue}hn+=G(Zt),nt=st;break;case st:if(Zt&&(M(le,Zt)||Zt==="+"||Zt==="-"||Zt==="."))hn+=G(Zt);else{if(Zt!==":"){if(Mt)return re;hn="",nt=Me,bn=0;continue}if(Mt&&(Ne.isSpecial()!==h(De,hn)||hn==="file"&&(Ne.includesCredentials()||Ne.port!==null)||Ne.scheme==="file"&&!Ne.host))return;if(Ne.scheme=hn,Mt)return void(Ne.isSpecial()&&De[Ne.scheme]===Ne.port&&(Ne.port=null));hn="",Ne.scheme==="file"?nt=ni:Ne.isSpecial()&&Kt&&Kt.scheme===Ne.scheme?nt=Se:Ne.isSpecial()?nt=gt:qn[bn+1]==="/"?(nt=Ie,bn++):(Ne.cannotBeABaseURL=!0,F(Ne.path,""),nt=Bo)}break;case Me:if(!Kt||Kt.cannotBeABaseURL&&Zt!=="#")return re;if(Kt.cannotBeABaseURL&&Zt==="#"){Ne.scheme=Kt.scheme,Ne.path=v(Kt.path),Ne.query=Kt.query,Ne.fragment="",Ne.cannotBeABaseURL=!0,nt=Fr;break}nt=Kt.scheme==="file"?ni:ze;continue;case Se:if(Zt!=="/"||qn[bn+1]!=="/"){nt=ze;continue}nt=St,bn++;break;case Ie:if(Zt==="/"){nt=Pt;break}nt=Hr;continue;case ze:if(Ne.scheme=Kt.scheme,Zt===e)Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.query=Kt.query;else if(Zt==="/"||Zt==="\\"&&Ne.isSpecial())nt=Ze;else if(Zt==="?")Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.query="",nt=lo;else{if(Zt!=="#"){Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.path.length--,nt=Hr;continue}Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,Ne.path=v(Kt.path),Ne.query=Kt.query,Ne.fragment="",nt=Fr}break;case Ze:if(!Ne.isSpecial()||Zt!=="/"&&Zt!=="\\"){if(Zt!=="/"){Ne.username=Kt.username,Ne.password=Kt.password,Ne.host=Kt.host,Ne.port=Kt.port,nt=Hr;continue}nt=Pt}else nt=St;break;case gt:if(nt=St,Zt!=="/"||Q(hn,bn+1)!=="/")continue;bn++;break;case St:if(Zt!=="/"&&Zt!=="\\"){nt=Pt;continue}break;case Pt:if(Zt==="@"){En&&(hn="%40"+hn),En=!0,so=m(hn);for(var ut=0;ut65535)return oe;Ne.port=Ne.isSpecial()&&Cn===De[Ne.scheme]?null:Cn,hn=""}if(Mt)return;nt=rr;continue}return oe}hn+=Zt;break;case ni:if(Ne.scheme="file",Zt==="/"||Zt==="\\")nt=Zn;else{if(!Kt||Kt.scheme!=="file"){nt=Hr;continue}switch(Zt){case e:Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.query=Kt.query;break;case"?":Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.query="",nt=lo;break;case"#":Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.query=Kt.query,Ne.fragment="",nt=Fr;break;default:ot(B(v(qn,bn),""))||(Ne.host=Kt.host,Ne.path=v(Kt.path),Ne.shortenPath()),nt=Hr;continue}}break;case Zn:if(Zt==="/"||Zt==="\\"){nt=Pi;break}Kt&&Kt.scheme==="file"&&!ot(B(v(qn,bn),""))&&(Ye(Kt.path[0],!0)?F(Ne.path,Kt.path[0]):Ne.host=Kt.host),nt=Hr;continue;case Pi:if(Zt===e||Zt==="/"||Zt==="\\"||Zt==="?"||Zt==="#"){if(!Mt&&Ye(hn))nt=Hr;else if(hn===""){if(Ne.host="",Mt)return;nt=rr}else{if(Un=Ne.parseHost(hn))return Un;if(Ne.host==="localhost"&&(Ne.host=""),Mt)return;hn="",nt=rr}continue}hn+=Zt;break;case rr:if(Ne.isSpecial()){if(nt=Hr,Zt!=="/"&&Zt!=="\\")continue}else if(Mt||Zt!=="?")if(Mt||Zt!=="#"){if(Zt!==e&&(nt=Hr,Zt!=="/"))continue}else Ne.fragment="",nt=Fr;else Ne.query="",nt=lo;break;case Hr:if(Zt===e||Zt==="/"||Zt==="\\"&&Ne.isSpecial()||!Mt&&(Zt==="?"||Zt==="#")){if((dt=G(dt=hn))===".."||dt==="%2e."||dt===".%2e"||dt==="%2e%2e"?(Ne.shortenPath(),Zt==="/"||Zt==="\\"&&Ne.isSpecial()||F(Ne.path,"")):We(hn)?Zt==="/"||Zt==="\\"&&Ne.isSpecial()||F(Ne.path,""):(Ne.scheme==="file"&&!Ne.path.length&&Ye(hn)&&(Ne.host&&(Ne.host=""),hn=Q(hn,0)+":"),F(Ne.path,hn)),hn="",Ne.scheme==="file"&&(Zt===e||Zt==="?"||Zt==="#"))for(;Ne.path.length>1&&Ne.path[0]==="";)W(Ne.path);Zt==="?"?(Ne.query="",nt=lo):Zt==="#"&&(Ne.fragment="",nt=Fr)}else hn+=Te(Zt,me);break;case Bo:Zt==="?"?(Ne.query="",nt=lo):Zt==="#"?(Ne.fragment="",nt=Fr):Zt!==e&&(Ne.path[0]+=Te(Zt,Qe));break;case lo:Mt||Zt!=="#"?Zt!==e&&(Zt==="'"&&Ne.isSpecial()?Ne.query+="%27":Ne.query+=Zt==="#"?"%23":Te(Zt,Qe)):(Ne.fragment="",nt=Fr);break;case Fr:Zt!==e&&(Ne.fragment+=Te(Zt,ke))}bn++}},parseHost:function(At){var Mt,Kt,qn;if(Q(At,0)==="["){if(Q(At,At.length-1)!=="]"||(Mt=function(Zt){var so,Un,dt,Ne,nt,bn,hn,En=[0,0,0,0,0,0,0,0],wi=0,Ue=null,ut=0,Nt=function(){return Q(Zt,ut)};if(Nt()===":"){if(Q(Zt,1)!==":")return;ut+=2,Ue=++wi}for(;Nt();){if(wi===8)return;if(Nt()!==":"){for(so=Un=0;Un<4&&M(Y,Nt());)so=16*so+T(Nt(),16),ut++,Un++;if(Nt()==="."){if(Un===0||(ut-=Un,wi>6))return;for(dt=0;Nt();){if(Ne=null,dt>0){if(!(Nt()==="."&&dt<4))return;ut++}if(!M(ue,Nt()))return;for(;M(ue,Nt());){if(nt=T(Nt(),10),Ne===null)Ne=nt;else{if(Ne===0)return;Ne=10*Ne+nt}if(Ne>255)return;ut++}En[wi]=256*En[wi]+Ne,++dt!=2&&dt!==4||wi++}if(dt!==4)return;break}if(Nt()===":"){if(ut++,!Nt())return}else if(Nt())return;En[wi++]=so}else{if(Ue!==null)return;ut++,Ue=++wi}}if(Ue!==null)for(bn=wi-Ue,wi=7;wi!==0&&bn>0;)hn=En[wi],En[wi--]=En[Ue+bn-1],En[Ue+--bn]=hn;else if(wi!==8)return;return En}($(At,1,-1)),!Mt))return J;this.host=Mt}else if(this.isSpecial()){if(At=k(At),M(ie,At)||(Mt=function(Zt){var so,Un,dt,Ne,nt,bn,hn,En=H(Zt,".");if(En.length&&En[En.length-1]===""&&En.length--,(so=En.length)>4)return Zt;for(Un=[],dt=0;dt1&&Q(Ne,0)==="0"&&(nt=M(ee,Ne)?16:8,Ne=$(Ne,nt===8?1:2)),Ne==="")bn=0;else{if(!M(nt===10?z:nt===8?de:Y,Ne))return Zt;bn=T(Ne,nt)}F(Un,bn)}for(dt=0;dt=P(256,5-so))return null}else if(bn>255)return null;for(hn=I(Un),dt=0;dt1?arguments[1]:void 0,qn=y(Mt,new is(At,!1,Kt));n||(Mt.href=qn.serialize(),Mt.origin=qn.getOrigin(),Mt.protocol=qn.getProtocol(),Mt.username=qn.getUsername(),Mt.password=qn.getPassword(),Mt.host=qn.getHost(),Mt.hostname=qn.getHostname(),Mt.port=qn.getPort(),Mt.pathname=qn.getPathname(),Mt.search=qn.getSearch(),Mt.searchParams=qn.getSearchParams(),Mt.hash=qn.getHash())},Gt=yi.prototype,gi=function(At,Mt){return{get:function(){return C(this)[At]()},set:Mt&&function(Kt){return C(this)[Mt](Kt)},configurable:!0,enumerable:!0}};if(n&&(d(Gt,"href",gi("serialize","setHref")),d(Gt,"origin",gi("getOrigin")),d(Gt,"protocol",gi("getProtocol","setProtocol")),d(Gt,"username",gi("getUsername","setUsername")),d(Gt,"password",gi("getPassword","setPassword")),d(Gt,"host",gi("getHost","setHost")),d(Gt,"hostname",gi("getHostname","setHostname")),d(Gt,"port",gi("getPort","setPort")),d(Gt,"pathname",gi("getPathname","setPathname")),d(Gt,"search",gi("getSearch","setSearch")),d(Gt,"searchParams",gi("getSearchParams")),d(Gt,"hash",gi("getHash","setHash"))),l(Gt,"toJSON",function(){return C(this).serialize()},{enumerable:!0}),l(Gt,"toString",function(){return C(this).serialize()},{enumerable:!0}),L){var ri=L.createObjectURL,tr=L.revokeObjectURL;ri&&l(yi,"createObjectURL",s(ri,L)),tr&&l(yi,"revokeObjectURL",s(tr,L))}return p(yi,"URL"),t({global:!0,constructor:!0,forced:!r,sham:!n},{URL:yi}),gYt}var mYt,Gqo={},kYt,Yqo={},vYt,AYt,pYt,bYt,wYt,OYt;function Zqo(){return AYt?vYt:(AYt=1,fYt||(fYt=1,Xqo()),function(){if(mYt)return Gqo;mYt=1;var e=si(),t=nf(),n=Rs(),r=zV(),o=rf(),s=Jke(),a=t("URL"),l=s&&n(function(){a.canParse()}),d=n(function(){return a.canParse.length!==1});e({target:"URL",stat:!0,forced:!l||d},{canParse:function(h){var g=r(arguments.length,1),m=o(h),v=g<2||arguments[1]===void 0?void 0:o(arguments[1]);try{return!!new a(m,v)}catch{return!1}}})}(),function(){if(kYt)return Yqo;kYt=1;var e=si(),t=nf(),n=zV(),r=rf(),o=Jke(),s=t("URL");e({target:"URL",stat:!0,forced:!o},{parse:function(l){var d=n(arguments.length,1),u=r(l),h=d<2||arguments[1]===void 0?void 0:r(arguments[1]);try{return new s(u,h)}catch{return null}}})}(),vYt=vl().URL)}function qqo(){return bYt?pYt:(bYt=1,pYt=Zqo())}var yYt,PN=Fi(OYt?wYt:(OYt=1,wYt=qqo())),CYt={exports:{}},_Yt,Kqo=(yYt||(yYt=1,_Yt=CYt,function(e,t){_Yt.exports=t()}(0,function(){var e=function(K,ne){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ae,be){ae.__proto__=be}||function(ae,be){for(var Be in be)Object.prototype.hasOwnProperty.call(be,Be)&&(ae[Be]=be[Be])},e(K,ne)};function t(Fe,K){if(typeof K!="function"&&K!==null)throw new TypeError("Class extends value "+String(K)+" is not a constructor or null");function ne(){this.constructor=Fe}e(Fe,K),Fe.prototype=K===null?Object.create(K):(ne.prototype=K.prototype,new ne)}var n=function(){return n=Object.assign||function(K){for(var ne,ae=1,be=arguments.length;ae0&&be[be.length-1])||Ot[0]!==6&&Ot[0]!==2)){Xe=0;continue}if(Ot[0]===3&&(!be||Ot[1]>be[0]&&Ot[1]=55296&&Be<=56319&&ae>10),Ke%1024+56320)),(Be+1===ae||be.length>16384)&&(Xe+=String.fromCharCode.apply(String,be),be.length=0)}return Xe},h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g=typeof Uint8Array>"u"?[]:new Uint8Array(256),m=0;m<64;m++)g[h.charCodeAt(m)]=m;for(var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=typeof Uint8Array>"u"?[]:new Uint8Array(256),k=0;k<64;k++)f[v.charCodeAt(k)]=k;for(var A=function(K,ne,ae){return K.slice?K.slice(ne,ae):new Uint16Array(Array.prototype.slice.call(K,ne,ae))},p=function(){function Fe(K,ne,ae,be,Be,Xe){this.initialValue=K,this.errorValue=ne,this.highStart=ae,this.highValueIndex=be,this.index=Be,this.data=Xe}return Fe.prototype.get=function(K){var ne;if(K>=0){if(K<55296||K>56319&&K<=65535)return ne=((ne=this.index[K>>5])<<2)+(31&K),this.data[ne];if(K<=65535)return ne=((ne=this.index[2048+(K-55296>>5)])<<2)+(31&K),this.data[ne];if(K>11),ne=this.index[ne],ne+=K>>5&63,ne=((ne=this.index[ne])<<2)+(31&K),this.data[ne];if(K<=1114111)return this.data[this.highValueIndex]}return this.errorValue},Fe}(),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",w=typeof Uint8Array>"u"?[]:new Uint8Array(256),O=0;O<64;O++)w[b.charCodeAt(O)]=O;var y=10,C=13,_=15,S=17,L=18,E=19,T=20,D=21,P=22,Q=24,M=25,B=26,R=27,I=28,F=30,j=32,W=33,H=34,$=35,G=37,q=38,re=39,J=40,oe=42,se=[9001,65288],le="×",ue="÷",ee=function(Fe){var K,ne,ae,be=function(qe){var Ot,Lt,Vt,Vn,Dn,$n=.75*qe.length,Ai=qe.length,mr=0;qe[qe.length-1]==="="&&($n--,qe[qe.length-2]==="="&&$n--);var $i=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&Uint8Array.prototype.slice!==void 0?new ArrayBuffer($n):new Array($n),Go=Array.isArray($i)?$i:new Uint8Array($i);for(Ot=0;Ot>4,Go[mr++]=(15&Vt)<<4|Vn>>2,Go[mr++]=(3&Vn)<<6|63&Dn;return $i}(Fe),Be=Array.isArray(be)?function(qe){for(var Ot=qe.length,Lt=[],Vt=0;Vt0;){var Ke=be[--Xe];if(Array.isArray(K)?K.indexOf(Ke)!==-1:K===Ke)for(var vt=ae;vt<=be.length;){var qe;if((qe=be[++vt])===ne)return!0;if(qe!==y)break}if(Ke!==y)break}return!1},Ce=function(K,ne){for(var ae=K;ae>=0;){var be=ne[ae];if(be!==y)return be;ae--}return 0},Qe=function(K,ne,ae,be,Be){if(ae[be]===0)return le;var Xe=be-1;if(Array.isArray(Be)&&Be[Xe]===!0)return le;var Ke=Xe-1,vt=Xe+1,qe=ne[Xe],Ot=Ke>=0?ne[Ke]:0,Lt=ne[vt];if(qe===2&&Lt===3)return le;if(z.indexOf(qe)!==-1)return"!";if(z.indexOf(Lt)!==-1||Y.indexOf(Lt)!==-1)return le;if(Ce(Xe,ne)===8)return ue;if(ee.get(K[Xe])===11||(qe===j||qe===W)&&ee.get(K[vt])===11||qe===7||Lt===7||qe===9||[y,C,_].indexOf(qe)===-1&&Lt===9||[S,L,E,Q,I].indexOf(Lt)!==-1||Ce(Xe,ne)===P||pe(23,P,Xe,ne)||pe([S,L],D,Xe,ne)||pe(12,12,Xe,ne))return le;if(qe===y)return ue;if(qe===23||Lt===23)return le;if(Lt===16||qe===16)return ue;if([C,_,D].indexOf(Lt)!==-1||qe===14||Ot===36&&he.indexOf(qe)!==-1||qe===I&&Lt===36||Lt===T||de.indexOf(Lt)!==-1&&qe===M||de.indexOf(qe)!==-1&&Lt===M||qe===R&&[G,j,W].indexOf(Lt)!==-1||[G,j,W].indexOf(qe)!==-1&&Lt===B||de.indexOf(qe)!==-1&&ie.indexOf(Lt)!==-1||ie.indexOf(qe)!==-1&&de.indexOf(Lt)!==-1||[R,B].indexOf(qe)!==-1&&(Lt===M||[P,_].indexOf(Lt)!==-1&&ne[vt+1]===M)||[P,_].indexOf(qe)!==-1&&Lt===M||qe===M&&[M,I,Q].indexOf(Lt)!==-1)return le;if([M,I,Q,S,L].indexOf(Lt)!==-1)for(var Vt=Xe;Vt>=0;){if((Vn=ne[Vt])===M)return le;if([I,Q].indexOf(Vn)===-1)break;Vt--}if([R,B].indexOf(Lt)!==-1)for(Vt=[S,L].indexOf(qe)!==-1?Ke:Xe;Vt>=0;){var Vn;if((Vn=ne[Vt])===M)return le;if([I,Q].indexOf(Vn)===-1)break;Vt--}if(q===qe&&[q,re,H,$].indexOf(Lt)!==-1||[re,H].indexOf(qe)!==-1&&[re,J].indexOf(Lt)!==-1||[J,$].indexOf(qe)!==-1&&Lt===J||Z.indexOf(qe)!==-1&&[T,B].indexOf(Lt)!==-1||Z.indexOf(Lt)!==-1&&qe===R||de.indexOf(qe)!==-1&&de.indexOf(Lt)!==-1||qe===Q&&de.indexOf(Lt)!==-1||de.concat(M).indexOf(qe)!==-1&&Lt===P&&se.indexOf(K[vt])===-1||de.concat(M).indexOf(Lt)!==-1&&qe===L)return le;if(qe===41&&Lt===41){for(var Dn=ae[Xe],$n=1;Dn>0&&ne[--Dn]===41;)$n++;if($n%2!=0)return le}return qe===j&&Lt===W?le:ue},ke=function(K,ne){ne||(ne={lineBreak:"normal",wordBreak:"normal"});var ae=function(vt,qe){qe===void 0&&(qe="strict");var Ot=[],Lt=[],Vt=[];return vt.forEach(function(Vn,Dn){var $n=ee.get(Vn);if($n>50?(Vt.push(!0),$n-=50):Vt.push(!1),["normal","auto","loose"].indexOf(qe)!==-1&&[8208,8211,12316,12448].indexOf(Vn)!==-1)return Lt.push(Dn),Ot.push(16);if($n===4||$n===11){if(Dn===0)return Lt.push(Dn),Ot.push(F);var Ai=Ot[Dn-1];return te.indexOf(Ai)===-1?(Lt.push(Lt[Dn-1]),Ot.push(Ai)):(Lt.push(Dn),Ot.push(F))}return Lt.push(Dn),$n===31?Ot.push(qe==="strict"?D:G):$n===oe||$n===29?Ot.push(F):$n===43?Vn>=131072&&Vn<=196605||Vn>=196608&&Vn<=262141?Ot.push(G):Ot.push(F):void Ot.push($n)}),[Lt,Ot,Vt]}(K,ne.lineBreak),be=ae[0],Be=ae[1],Xe=ae[2];ne.wordBreak!=="break-all"&&ne.wordBreak!=="break-word"||(Be=Be.map(function(vt){return[M,F,oe].indexOf(vt)!==-1?G:vt}));var Ke=ne.wordBreak==="keep-all"?Xe.map(function(vt,qe){return vt&&K[qe]>=19968&&K[qe]<=40959}):void 0;return[be,Be,Ke]},me=function(){function Fe(K,ne,ae,be){this.codePoints=K,this.required=ne==="!",this.start=ae,this.end=be}return Fe.prototype.slice=function(){return u.apply(void 0,this.codePoints.slice(this.start,this.end))},Fe}(),_e=45,Te=43,De=-1,Ye=function(K){return K>=48&&K<=57},ot=function(K){return Ye(K)||K>=65&&K<=70||K>=97&&K<=102},We=function(K){return K===10||K===9||K===32},et=function(K){return function(ne){return function(ae){return ae>=97&&ae<=122}(ne)||function(ae){return ae>=65&&ae<=90}(ne)}(K)||function(ne){return ne>=128}(K)||K===95},st=function(K){return et(K)||Ye(K)||K===_e},Me=function(K){return K>=0&&K<=8||K===11||K>=14&&K<=31||K===127},Se=function(K,ne){return K===92&&ne!==10},Ie=function(K,ne,ae){return K===_e?et(ne)||Se(ne,ae):!!et(K)||!(K!==92||!Se(K,ne))},ze=function(K,ne,ae){return K===Te||K===_e?!!Ye(ne)||ne===46&&Ye(ae):Ye(K===46?ne:K)},Ze=function(K){var ne=0,ae=1;K[ne]!==Te&&K[ne]!==_e||(K[ne]===_e&&(ae=-1),ne++);for(var be=[];Ye(K[ne]);)be.push(K[ne++]);var Be=be.length?parseInt(u.apply(void 0,be),10):0;K[ne]===46&&ne++;for(var Xe=[];Ye(K[ne]);)Xe.push(K[ne++]);var Ke=Xe.length,vt=Ke?parseInt(u.apply(void 0,Xe),10):0;K[ne]!==69&&K[ne]!==101||ne++;var qe=1;K[ne]!==Te&&K[ne]!==_e||(K[ne]===_e&&(qe=-1),ne++);for(var Ot=[];Ye(K[ne]);)Ot.push(K[ne++]);var Lt=Ot.length?parseInt(u.apply(void 0,Ot),10):0;return ae*(Be+vt*Math.pow(10,-Ke))*Math.pow(10,qe*Lt)},gt={type:2},St={type:3},Pt={type:4},dn={type:13},on={type:8},pn={type:21},ni={type:9},Zn={type:10},Pi={type:11},rr={type:12},Hr={type:14},Bo={type:23},lo={type:1},Fr={type:25},is={type:24},yi={type:26},Gt={type:27},gi={type:28},ri={type:29},tr={type:31},ht={type:32},At=function(){function Fe(){this._value=[]}return Fe.prototype.write=function(K){this._value=this._value.concat(d(K))},Fe.prototype.read=function(){for(var K=[],ne=this.consumeToken();ne!==ht;)K.push(ne),ne=this.consumeToken();return K},Fe.prototype.consumeToken=function(){var K=this.consumeCodePoint();switch(K){case 34:return this.consumeStringToken(34);case 35:var ne=this.peekCodePoint(0),ae=this.peekCodePoint(1),be=this.peekCodePoint(2);if(st(ne)||Se(ae,be)){var Be=Ie(ne,ae,be)?2:1;return{type:5,value:this.consumeName(),flags:Be}}break;case 36:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),dn;break;case 39:return this.consumeStringToken(39);case 40:return gt;case 41:return St;case 42:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),Hr;break;case Te:if(ze(K,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(K),this.consumeNumericToken();break;case 44:return Pt;case _e:var Xe=K,Ke=this.peekCodePoint(0),vt=this.peekCodePoint(1);if(ze(Xe,Ke,vt))return this.reconsumeCodePoint(K),this.consumeNumericToken();if(Ie(Xe,Ke,vt))return this.reconsumeCodePoint(K),this.consumeIdentLikeToken();if(Ke===_e&&vt===62)return this.consumeCodePoint(),this.consumeCodePoint(),is;break;case 46:if(ze(K,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(K),this.consumeNumericToken();break;case 47:if(this.peekCodePoint(0)===42)for(this.consumeCodePoint();;){var qe=this.consumeCodePoint();if(qe===42&&(qe=this.consumeCodePoint())===47)return this.consumeToken();if(qe===De)return this.consumeToken()}break;case 58:return yi;case 59:return Gt;case 60:if(this.peekCodePoint(0)===33&&this.peekCodePoint(1)===_e&&this.peekCodePoint(2)===_e)return this.consumeCodePoint(),this.consumeCodePoint(),Fr;break;case 64:var Ot=this.peekCodePoint(0),Lt=this.peekCodePoint(1),Vt=this.peekCodePoint(2);if(Ie(Ot,Lt,Vt))return{type:7,value:this.consumeName()};break;case 91:return gi;case 92:if(Se(K,this.peekCodePoint(0)))return this.reconsumeCodePoint(K),this.consumeIdentLikeToken();break;case 93:return ri;case 61:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),on;break;case 123:return Pi;case 125:return rr;case 117:case 85:var Vn=this.peekCodePoint(0),Dn=this.peekCodePoint(1);return Vn!==Te||!ot(Dn)&&Dn!==63||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(K),this.consumeIdentLikeToken();case 124:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),ni;if(this.peekCodePoint(0)===124)return this.consumeCodePoint(),pn;break;case 126:if(this.peekCodePoint(0)===61)return this.consumeCodePoint(),Zn;break;case De:return ht}return We(K)?(this.consumeWhiteSpace(),tr):Ye(K)?(this.reconsumeCodePoint(K),this.consumeNumericToken()):et(K)?(this.reconsumeCodePoint(K),this.consumeIdentLikeToken()):{type:6,value:u(K)}},Fe.prototype.consumeCodePoint=function(){var K=this._value.shift();return K===void 0?-1:K},Fe.prototype.reconsumeCodePoint=function(K){this._value.unshift(K)},Fe.prototype.peekCodePoint=function(K){return K>=this._value.length?-1:this._value[K]},Fe.prototype.consumeUnicodeRangeToken=function(){for(var K=[],ne=this.consumeCodePoint();ot(ne)&&K.length<6;)K.push(ne),ne=this.consumeCodePoint();for(var ae=!1;ne===63&&K.length<6;)K.push(ne),ne=this.consumeCodePoint(),ae=!0;if(ae)return{type:30,start:parseInt(u.apply(void 0,K.map(function(Xe){return Xe===63?48:Xe})),16),end:parseInt(u.apply(void 0,K.map(function(Xe){return Xe===63?70:Xe})),16)};var be=parseInt(u.apply(void 0,K),16);if(this.peekCodePoint(0)===_e&&ot(this.peekCodePoint(1))){this.consumeCodePoint(),ne=this.consumeCodePoint();for(var Be=[];ot(ne)&&Be.length<6;)Be.push(ne),ne=this.consumeCodePoint();return{type:30,start:be,end:parseInt(u.apply(void 0,Be),16)}}return{type:30,start:be,end:be}},Fe.prototype.consumeIdentLikeToken=function(){var K=this.consumeName();return K.toLowerCase()==="url"&&this.peekCodePoint(0)===40?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===40?(this.consumeCodePoint(),{type:19,value:K}):{type:20,value:K}},Fe.prototype.consumeUrlToken=function(){var K=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===De)return{type:22,value:""};var ne=this.peekCodePoint(0);if(ne===39||ne===34){var ae=this.consumeStringToken(this.consumeCodePoint());return ae.type===0&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===De||this.peekCodePoint(0)===41)?(this.consumeCodePoint(),{type:22,value:ae.value}):(this.consumeBadUrlRemnants(),Bo)}for(;;){var be=this.consumeCodePoint();if(be===De||be===41)return{type:22,value:u.apply(void 0,K)};if(We(be))return this.consumeWhiteSpace(),this.peekCodePoint(0)===De||this.peekCodePoint(0)===41?(this.consumeCodePoint(),{type:22,value:u.apply(void 0,K)}):(this.consumeBadUrlRemnants(),Bo);if(be===34||be===39||be===40||Me(be))return this.consumeBadUrlRemnants(),Bo;if(be===92){if(!Se(be,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Bo;K.push(this.consumeEscapedCodePoint())}else K.push(be)}},Fe.prototype.consumeWhiteSpace=function(){for(;We(this.peekCodePoint(0));)this.consumeCodePoint()},Fe.prototype.consumeBadUrlRemnants=function(){for(;;){var K=this.consumeCodePoint();if(K===41||K===De)return;Se(K,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},Fe.prototype.consumeStringSlice=function(K){for(var ne="";K>0;){var ae=Math.min(5e4,K);ne+=u.apply(void 0,this._value.splice(0,ae)),K-=ae}return this._value.shift(),ne},Fe.prototype.consumeStringToken=function(K){for(var ne="",ae=0;;){var be=this._value[ae];if(be===De||be===void 0||be===K)return{type:0,value:ne+=this.consumeStringSlice(ae)};if(be===10)return this._value.splice(0,ae),lo;if(be===92){var Be=this._value[ae+1];Be!==De&&Be!==void 0&&(Be===10?(ne+=this.consumeStringSlice(ae),ae=-1,this._value.shift()):Se(be,Be)&&(ne+=this.consumeStringSlice(ae),ne+=u(this.consumeEscapedCodePoint()),ae=-1))}ae++}},Fe.prototype.consumeNumber=function(){var K=[],ne=4,ae=this.peekCodePoint(0);for(ae!==Te&&ae!==_e||K.push(this.consumeCodePoint());Ye(this.peekCodePoint(0));)K.push(this.consumeCodePoint());ae=this.peekCodePoint(0);var be=this.peekCodePoint(1);if(ae===46&&Ye(be))for(K.push(this.consumeCodePoint(),this.consumeCodePoint()),ne=8;Ye(this.peekCodePoint(0));)K.push(this.consumeCodePoint());ae=this.peekCodePoint(0),be=this.peekCodePoint(1);var Be=this.peekCodePoint(2);if((ae===69||ae===101)&&((be===Te||be===_e)&&Ye(Be)||Ye(be)))for(K.push(this.consumeCodePoint(),this.consumeCodePoint()),ne=8;Ye(this.peekCodePoint(0));)K.push(this.consumeCodePoint());return[Ze(K),ne]},Fe.prototype.consumeNumericToken=function(){var K=this.consumeNumber(),ne=K[0],ae=K[1],be=this.peekCodePoint(0),Be=this.peekCodePoint(1),Xe=this.peekCodePoint(2);return Ie(be,Be,Xe)?{type:15,number:ne,flags:ae,unit:this.consumeName()}:be===37?(this.consumeCodePoint(),{type:16,number:ne,flags:ae}):{type:17,number:ne,flags:ae}},Fe.prototype.consumeEscapedCodePoint=function(){var K=this.consumeCodePoint();if(ot(K)){for(var ne=u(K);ot(this.peekCodePoint(0))&&ne.length<6;)ne+=u(this.consumeCodePoint());We(this.peekCodePoint(0))&&this.consumeCodePoint();var ae=parseInt(ne,16);return ae===0||function(be){return be>=55296&&be<=57343}(ae)||ae>1114111?65533:ae}return K===De?65533:K},Fe.prototype.consumeName=function(){for(var K="";;){var ne=this.consumeCodePoint();if(st(ne))K+=u(ne);else{if(!Se(ne,this.peekCodePoint(0)))return this.reconsumeCodePoint(ne),K;K+=u(this.consumeEscapedCodePoint())}}},Fe}(),Mt=function(){function Fe(K){this._tokens=K}return Fe.create=function(K){var ne=new At;return ne.write(K),new Fe(ne.read())},Fe.parseValue=function(K){return Fe.create(K).parseComponentValue()},Fe.parseValues=function(K){return Fe.create(K).parseComponentValues()},Fe.prototype.parseComponentValue=function(){for(var K=this.consumeToken();K.type===31;)K=this.consumeToken();if(K.type===32)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(K);var ne=this.consumeComponentValue();do K=this.consumeToken();while(K.type===31);if(K.type===32)return ne;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},Fe.prototype.parseComponentValues=function(){for(var K=[];;){var ne=this.consumeComponentValue();if(ne.type===32)return K;K.push(ne),K.push()}},Fe.prototype.consumeComponentValue=function(){var K=this.consumeToken();switch(K.type){case 11:case 28:case 2:return this.consumeSimpleBlock(K.type);case 19:return this.consumeFunction(K)}return K},Fe.prototype.consumeSimpleBlock=function(K){for(var ne={type:K,values:[]},ae=this.consumeToken();;){if(ae.type===32||bn(ae,K))return ne;this.reconsumeToken(ae),ne.values.push(this.consumeComponentValue()),ae=this.consumeToken()}},Fe.prototype.consumeFunction=function(K){for(var ne={name:K.value,values:[],type:18};;){var ae=this.consumeToken();if(ae.type===32||ae.type===3)return ne;this.reconsumeToken(ae),ne.values.push(this.consumeComponentValue())}},Fe.prototype.consumeToken=function(){var K=this._tokens.shift();return K===void 0?ht:K},Fe.prototype.reconsumeToken=function(K){this._tokens.unshift(K)},Fe}(),Kt=function(K){return K.type===15},qn=function(K){return K.type===17},Zt=function(K){return K.type===20},so=function(K){return K.type===0},Un=function(K,ne){return Zt(K)&&K.value===ne},dt=function(K){return K.type!==31},Ne=function(K){return K.type!==31&&K.type!==4},nt=function(K){var ne=[],ae=[];return K.forEach(function(be){if(be.type===4){if(ae.length===0)throw new Error("Error parsing function args, zero tokens for arg");return ne.push(ae),void(ae=[])}be.type!==31&&ae.push(be)}),ae.length&&ne.push(ae),ne},bn=function(K,ne){return ne===11&&K.type===12||ne===28&&K.type===29||ne===2&&K.type===3},hn=function(K){return K.type===17||K.type===15},En=function(K){return K.type===16||hn(K)},wi=function(K){return K.length>1?[K[0],K[1]]:[K[0]]},Ue={type:17,number:0,flags:4},ut={type:16,number:50,flags:4},Nt={type:16,number:100,flags:4},wn=function(K,ne,ae){var be=K[0],Be=K[1];return[Cn(be,ne),Cn(Be!==void 0?Be:be,ae)]},Cn=function(K,ne){if(K.type===16)return K.number/100*ne;if(Kt(K))switch(K.unit){case"rem":case"em":return 16*K.number;default:return K.number}return K.number},wr="grad",Kr="turn",Wo=function(K,ne){if(ne.type===15)switch(ne.unit){case"deg":return Math.PI*ne.number/180;case wr:return Math.PI/200*ne.number;case"rad":return ne.number;case Kr:return 2*Math.PI*ne.number}throw new Error("Unsupported angle type")},pl=function(K){return K.type===15&&(K.unit==="deg"||K.unit===wr||K.unit==="rad"||K.unit===Kr)},pu=function(K){switch(K.filter(Zt).map(function(ne){return ne.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Ue,Ue];case"to top":case"bottom":return bu(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Ue,Nt];case"to right":case"left":return bu(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Nt,Nt];case"to bottom":case"top":return bu(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Nt,Ue];case"to left":case"right":return bu(270)}return 0},bu=function(K){return Math.PI*K/180},T1=function(K,ne){if(ne.type===18){var ae=UL[ne.name];if(ae===void 0)throw new Error('Attempting to parse an unsupported color function "'+ne.name+'"');return ae(K,ne.values)}if(ne.type===5){if(ne.value.length===3){var be=ne.value.substring(0,1),Be=ne.value.substring(1,2),Xe=ne.value.substring(2,3);return Em(parseInt(be+be,16),parseInt(Be+Be,16),parseInt(Xe+Xe,16),1)}if(ne.value.length===4){be=ne.value.substring(0,1),Be=ne.value.substring(1,2),Xe=ne.value.substring(2,3);var Ke=ne.value.substring(3,4);return Em(parseInt(be+be,16),parseInt(Be+Be,16),parseInt(Xe+Xe,16),parseInt(Ke+Ke,16)/255)}if(ne.value.length===6)return be=ne.value.substring(0,2),Be=ne.value.substring(2,4),Xe=ne.value.substring(4,6),Em(parseInt(be,16),parseInt(Be,16),parseInt(Xe,16),1);if(ne.value.length===8)return be=ne.value.substring(0,2),Be=ne.value.substring(2,4),Xe=ne.value.substring(4,6),Ke=ne.value.substring(6,8),Em(parseInt(be,16),parseInt(Be,16),parseInt(Xe,16),parseInt(Ke,16)/255)}if(ne.type===20){var vt=jf[ne.value.toUpperCase()];if(vt!==void 0)return vt}return jf.TRANSPARENT},xm=function(K){return!(255&K)},Gd=function(K){var ne=255&K,ae=255&K>>8,be=255&K>>16,Be=255&K>>24;return ne<255?"rgba("+Be+","+be+","+ae+","+ne/255+")":"rgb("+Be+","+be+","+ae+")"},Em=function(K,ne,ae,be){return(K<<24|ne<<16|ae<<8|Math.round(255*be))>>>0},$3=function(K,ne){if(K.type===17)return K.number;if(K.type===16){var ae=ne===3?1:255;return ne===3?K.number/100*ae:Math.round(K.number/100*ae)}return 0},FL=function(K,ne){var ae=ne.filter(Ne);if(ae.length===3){var be=ae.map($3),Be=be[0],Xe=be[1],Ke=be[2];return Em(Be,Xe,Ke,1)}if(ae.length===4){var vt=ae.map($3),qe=(Be=vt[0],Xe=vt[1],Ke=vt[2],vt[3]);return Em(Be,Xe,Ke,qe)}return 0};function NL(Fe,K,ne){return ne<0&&(ne+=1),ne>=1&&(ne-=1),ne<1/6?(K-Fe)*ne*6+Fe:ne<.5?K:ne<2/3?6*(K-Fe)*(2/3-ne)+Fe:Fe}var TA,fC=function(K,ne){var ae=ne.filter(Ne),be=ae[0],Be=ae[1],Xe=ae[2],Ke=ae[3],vt=(be.type===17?bu(be.number):Wo(K,be))/(2*Math.PI),qe=En(Be)?Be.number/100:0,Ot=En(Xe)?Xe.number/100:0,Lt=Ke!==void 0&&En(Ke)?Cn(Ke,1):1;if(qe===0)return Em(255*Ot,255*Ot,255*Ot,1);var Vt=Ot<=.5?Ot*(qe+1):Ot+qe-Ot*qe,Vn=2*Ot-Vt,Dn=NL(Vn,Vt,vt+1/3),$n=NL(Vn,Vt,vt),Ai=NL(Vn,Vt,vt-1/3);return Em(255*Dn,255*$n,255*Ai,Lt)},UL={hsl:fC,hsla:fC,rgb:FL,rgba:FL},tk=function(K,ne){return T1(K,Mt.create(ne).parseComponentValue())},jf={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},gC={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(K,ne){return ne.map(function(ae){if(Zt(ae))switch(ae.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},mC={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Q1=function(K,ne){var ae=T1(K,ne[0]),be=ne[1];return be&&En(be)?{color:ae,stop:be}:{color:ae,stop:null}},kC=function(K,ne){var ae=K[0],be=K[K.length-1];ae.stop===null&&(ae.stop=Ue),be.stop===null&&(be.stop=Nt);for(var Be=[],Xe=0,Ke=0;KeXe?Be.push(qe):Be.push(Xe),Xe=qe}else Be.push(null)}var Ot=null;for(Ke=0;KeXe.optimumDistance)?{optimumCorner:Ke,optimumDistance:Ot}:Xe},{optimumDistance:Be?1/0:-1/0,optimumCorner:null}).optimumCorner},QA=function(K,ne){var ae=bu(180),be=[];return nt(ne).forEach(function(Be,Xe){if(Xe===0){var Ke=Be[0];if(Ke.type===20&&["top","left","right","bottom"].indexOf(Ke.value)!==-1)return void(ae=pu(Be));if(pl(Ke))return void(ae=(Wo(K,Ke)+bu(270))%bu(360))}var vt=Q1(K,Be);be.push(vt)}),{angle:ae,stops:be,type:1}},vC="closest-side",AC="farthest-side",G3="closest-corner",DA="farthest-corner",R2="circle",Y3="ellipse",Tm="cover",BA="contain",D1=function(K,ne){var ae=0,be=3,Be=[],Xe=[];return nt(ne).forEach(function(Ke,vt){var qe=!0;if(vt===0?qe=Ke.reduce(function(Lt,Vt){if(Zt(Vt))switch(Vt.value){case"center":return Xe.push(ut),!1;case"top":case"left":return Xe.push(Ue),!1;case"right":case"bottom":return Xe.push(Nt),!1}else if(En(Vt)||hn(Vt))return Xe.push(Vt),!1;return Lt},qe):vt===1&&(qe=Ke.reduce(function(Lt,Vt){if(Zt(Vt))switch(Vt.value){case R2:return ae=0,!1;case Y3:return ae=1,!1;case BA:case vC:return be=0,!1;case AC:return be=1,!1;case G3:return be=2,!1;case Tm:case DA:return be=3,!1}else if(hn(Vt)||En(Vt))return Array.isArray(be)||(be=[]),be.push(Vt),!1;return Lt},qe)),qe){var Ot=Q1(K,Ke);Be.push(Ot)}}),{size:be,shape:ae,stops:Be,position:Xe,type:2}},Bp=function(K,ne){if(ne.type===22){var ae={url:ne.value,type:0};return K.cache.addImage(ne.value),ae}if(ne.type===18){var be=gM[ne.name];if(be===void 0)throw new Error('Attempting to parse an unsupported image function "'+ne.name+'"');return be(K,ne.values)}throw new Error("Unsupported image type "+ne.type)},gM={"linear-gradient":function(K,ne){var ae=bu(180),be=[];return nt(ne).forEach(function(Be,Xe){if(Xe===0){var Ke=Be[0];if(Ke.type===20&&Ke.value==="to")return void(ae=pu(Be));if(pl(Ke))return void(ae=Wo(K,Ke))}var vt=Q1(K,Be);be.push(vt)}),{angle:ae,stops:be,type:1}},"-moz-linear-gradient":QA,"-ms-linear-gradient":QA,"-o-linear-gradient":QA,"-webkit-linear-gradient":QA,"radial-gradient":function(K,ne){var ae=0,be=3,Be=[],Xe=[];return nt(ne).forEach(function(Ke,vt){var qe=!0;if(vt===0){var Ot=!1;qe=Ke.reduce(function(Vt,Vn){if(Ot)if(Zt(Vn))switch(Vn.value){case"center":return Xe.push(ut),Vt;case"top":case"left":return Xe.push(Ue),Vt;case"right":case"bottom":return Xe.push(Nt),Vt}else(En(Vn)||hn(Vn))&&Xe.push(Vn);else if(Zt(Vn))switch(Vn.value){case R2:return ae=0,!1;case Y3:return ae=1,!1;case"at":return Ot=!0,!1;case vC:return be=0,!1;case Tm:case AC:return be=1,!1;case BA:case G3:return be=2,!1;case DA:return be=3,!1}else if(hn(Vn)||En(Vn))return Array.isArray(be)||(be=[]),be.push(Vn),!1;return Vt},qe)}if(qe){var Lt=Q1(K,Ke);Be.push(Lt)}}),{size:be,shape:ae,stops:Be,position:Xe,type:2}},"-moz-radial-gradient":D1,"-ms-radial-gradient":D1,"-o-radial-gradient":D1,"-webkit-radial-gradient":D1,"-webkit-gradient":function(K,ne){var ae=bu(180),be=[],Be=1;return nt(ne).forEach(function(Xe,Ke){var vt=Xe[0];if(Ke===0){if(Zt(vt)&&vt.value==="linear")return void(Be=1);if(Zt(vt)&&vt.value==="radial")return void(Be=2)}if(vt.type===18){if(vt.name==="from"){var qe=T1(K,vt.values[0]);be.push({stop:Ue,color:qe})}else if(vt.name==="to")qe=T1(K,vt.values[0]),be.push({stop:Nt,color:qe});else if(vt.name==="color-stop"){var Ot=vt.values.filter(Ne);if(Ot.length===2){qe=T1(K,Ot[1]);var Lt=Ot[0];qn(Lt)&&be.push({stop:{type:16,number:100*Lt.number,flags:Lt.flags},color:qe})}}}}),Be===1?{angle:(ae+bu(180))%bu(360),stops:be,type:Be}:{size:3,shape:0,stops:be,position:[],type:Be}}},rye={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(K,ne){if(ne.length===0)return[];var ae=ne[0];return ae.type===20&&ae.value==="none"?[]:ne.filter(function(be){return Ne(be)&&function(Be){return!(Be.type===20&&Be.value==="none"||Be.type===18&&!gM[Be.name])}(be)}).map(function(be){return Bp(K,be)})}},oye={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(K,ne){return ne.map(function(ae){if(Zt(ae))switch(ae.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},sye={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(K,ne){return nt(ne).map(function(ae){return ae.filter(En)}).map(wi)}},aye={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(K,ne){return nt(ne).map(function(ae){return ae.filter(Zt).map(function(be){return be.value}).join(" ")}).map(lye)}},lye=function(K){switch(K){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};(function(Fe){Fe.AUTO="auto",Fe.CONTAIN="contain",Fe.COVER="cover"})(TA||(TA={}));var Bl,kc={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(K,ne){return nt(ne).map(function(ae){return ae.filter(cye)})}},cye=function(K){return Zt(K)||En(K)},mM=function(K){return{name:"border-"+K+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},dye=mM("top"),uye=mM("right"),hye=mM("bottom"),fye=mM("left"),QE=function(K){return{name:"border-radius-"+K,initialValue:"0 0",prefix:!1,type:1,parse:function(ae,be){return wi(be.filter(En))}}},gye=QE("top-left"),lf=QE("top-right"),jH=QE("bottom-right"),pC=QE("bottom-left"),DE=function(K){return{name:"border-"+K+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(ae,be){switch(be){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},WH=DE("top"),nk=DE("right"),ioe=DE("bottom"),roe=DE("left"),BE=function(K){return{name:"border-"+K+"-width",initialValue:"0",type:0,prefix:!1,parse:function(ae,be){return Kt(be)?be.number:0}}},ooe=BE("top"),soe=BE("right"),aoe=BE("bottom"),B1=BE("left"),mye={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ik={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(K,ne){return ne==="rtl"?1:0}},kye={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(K,ne){return ne.filter(Zt).reduce(function(ae,be){return ae|loe(be.value)},0)}},loe=function(K){switch(K){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},Z3={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},kM={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(K,ne){return ne.type===20&&ne.value==="normal"?0:ne.type===17||ne.type===15?ne.number:0}};(function(Fe){Fe.NORMAL="normal",Fe.STRICT="strict"})(Bl||(Bl={}));var bC,Hc={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(K,ne){return ne==="strict"?Bl.STRICT:Bl.NORMAL}},q3={name:"line-height",initialValue:"normal",prefix:!1,type:4},vM=function(K,ne){return Zt(K)&&K.value==="normal"?1.2*ne:K.type===17?ne*K.number:En(K)?Cn(K,ne):ne},vye={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(K,ne){return ne.type===20&&ne.value==="none"?null:Bp(K,ne)}},VH={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(K,ne){return ne==="inside"?0:1}},zH={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},AM=function(K){return{name:"margin-"+K,initialValue:"0",prefix:!1,type:4}},Aye=AM("top"),coe=AM("right"),pM=AM("bottom"),jL=AM("left"),pye={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(K,ne){return ne.filter(Zt).map(function(ae){switch(ae.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},doe={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(K,ne){return ne==="break-word"?"break-word":"normal"}},RE=function(K){return{name:"padding-"+K,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},HH=RE("top"),$H=RE("right"),uoe=RE("bottom"),bye=RE("left"),XH={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},GH={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(K,ne){switch(ne){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},wye={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(K,ne){return ne.length===1&&Un(ne[0],"none")?[]:nt(ne).map(function(ae){for(var be={color:jf.TRANSPARENT,offsetX:Ue,offsetY:Ue,blur:Ue},Be=0,Xe=0;Xe1?1:0],this.overflowWrap=Et(K,doe,ne.overflowWrap),this.paddingTop=Et(K,HH,ne.paddingTop),this.paddingRight=Et(K,$H,ne.paddingRight),this.paddingBottom=Et(K,uoe,ne.paddingBottom),this.paddingLeft=Et(K,bye,ne.paddingLeft),this.paintOrder=Et(K,Qye,ne.paintOrder),this.position=Et(K,GH,ne.position),this.textAlign=Et(K,XH,ne.textAlign),this.textDecorationColor=Et(K,VL,(ae=ne.textDecorationColor)!==null&&ae!==void 0?ae:ne.color),this.textDecorationLine=Et(K,Sye,(be=ne.textDecorationLine)!==null&&be!==void 0?be:ne.textDecoration),this.textShadow=Et(K,wye,ne.textShadow),this.textTransform=Et(K,hoe,ne.textTransform),this.transform=Et(K,R1,ne.transform),this.transformOrigin=Et(K,goe,ne.transformOrigin),this.visibility=Et(K,Oye,ne.visibility),this.webkitTextStrokeColor=Et(K,Dye,ne.webkitTextStrokeColor),this.webkitTextStrokeWidth=Et(K,Bye,ne.webkitTextStrokeWidth),this.wordBreak=Et(K,yye,ne.wordBreak),this.zIndex=Et(K,Cye,ne.zIndex)}return Fe.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&this.visibility===0},Fe.prototype.isTransparent=function(){return xm(this.backgroundColor)},Fe.prototype.isTransformed=function(){return this.transform!==null},Fe.prototype.isPositioned=function(){return this.position!==0},Fe.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},Fe.prototype.isFloating=function(){return this.float!==0},Fe.prototype.isInlineLevel=function(){return Xu(this.display,4)||Xu(this.display,33554432)||Xu(this.display,268435456)||Xu(this.display,536870912)||Xu(this.display,67108864)||Xu(this.display,134217728)},Fe}(),Wt=function(K,ne){this.content=Et(K,xye,ne.content),this.quotes=Et(K,voe,ne.quotes)},Sn=function(K,ne){this.counterIncrement=Et(K,Eye,ne.counterIncrement),this.counterReset=Et(K,zL,ne.counterReset)},Et=function(K,ne,ae){var be=new At,Be=ae!=null?ae.toString():ne.initialValue;be.write(Be);var Xe=new Mt(be.read());switch(ne.type){case 2:var Ke=Xe.parseComponentValue();return ne.parse(K,Zt(Ke)?Ke.value:ne.initialValue);case 0:return ne.parse(K,Xe.parseComponentValue());case 1:return ne.parse(K,Xe.parseComponentValues());case 4:return Xe.parseComponentValue();case 3:switch(ne.format){case"angle":return Wo(K,Xe.parseComponentValue());case"color":return T1(K,Xe.parseComponentValue());case"image":return Bp(K,Xe.parseComponentValue());case"length":var vt=Xe.parseComponentValue();return hn(vt)?vt:Ue;case"length-percentage":var qe=Xe.parseComponentValue();return En(qe)?qe:Ue;case"time":return moe(K,Xe.parseComponentValue())}}},or=function(K,ne){var ae=function(be){switch(be.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(K);return ae===1||ne===ae},Jr=function(K,ne){this.context=K,this.textNodes=[],this.elements=[],this.flags=0,or(ne,3),this.styles=new HL(K,window.getComputedStyle(ne,null)),n$(ne)&&(this.styles.animationDuration.some(function(ae){return ae>0})&&(ne.style.animationDuration="0s"),this.styles.transform!==null&&(ne.style.transform="none")),this.bounds=l(this.context,ne),or(ne,4)&&(this.flags|=16)},za="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ad=typeof Uint8Array>"u"?[]:new Uint8Array(256),sl=0;sl<64;sl++)ad[za.charCodeAt(sl)]=sl;for(var wM=function(K,ne,ae){return K.slice?K.slice(ne,ae):new Uint16Array(Array.prototype.slice.call(K,ne,ae))},Rye=function(){function Fe(K,ne,ae,be,Be,Xe){this.initialValue=K,this.errorValue=ne,this.highStart=ae,this.highValueIndex=be,this.index=Be,this.data=Xe}return Fe.prototype.get=function(K){var ne;if(K>=0){if(K<55296||K>56319&&K<=65535)return ne=((ne=this.index[K>>5])<<2)+(31&K),this.data[ne];if(K<=65535)return ne=((ne=this.index[2048+(K-55296>>5)])<<2)+(31&K),this.data[ne];if(K>11),ne=this.index[ne],ne+=K>>5&63,ne=((ne=this.index[ne])<<2)+(31&K),this.data[ne];if(K<=1114111)return this.data[this.highValueIndex]}return this.errorValue},Fe}(),rk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",OM=typeof Uint8Array>"u"?[]:new Uint8Array(256),yM=0;yM<64;yM++)OM[rk.charCodeAt(yM)]=yM;var RA,IE=8,$L=9,Ha=11,poe=12,boe=function(){for(var K=[],ne=0;ne>10),Ke%1024+56320)),(Be+1===ae||be.length>16384)&&(Xe+=String.fromCharCode.apply(String,be),be.length=0)}return Xe},CM=function(Fe){var K,ne,ae,be=function(qe){var Ot,Lt,Vt,Vn,Dn,$n=.75*qe.length,Ai=qe.length,mr=0;qe[qe.length-1]==="="&&($n--,qe[qe.length-2]==="="&&$n--);var $i=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&Uint8Array.prototype.slice!==void 0?new ArrayBuffer($n):new Array($n),Go=Array.isArray($i)?$i:new Uint8Array($i);for(Ot=0;Ot>4,Go[mr++]=(15&Vt)<<4|Vn>>2,Go[mr++]=(3&Vn)<<6|63&Dn;return $i}(Fe),Be=Array.isArray(be)?function(qe){for(var Ot=qe.length,Lt=[],Vt=0;Vt=55296&&Lt<=56319&&qe=ae)return{done:!0,value:null};for(var vt=ok;beKe.x||Lt.y>Ke.y;return Ke=Lt,Ot===0||Vt});return K.body.removeChild(ne),vt}(document);return Object.defineProperty(wu,"SUPPORT_WORD_BREAKING",{value:Fe}),Fe},get SUPPORT_SVG_DRAWING(){var Fe=function(K){var ne=new Image,ae=K.createElement("canvas"),be=ae.getContext("2d");if(!be)return!1;ne.src="data:image/svg+xml,";try{be.drawImage(ne,0,0),ae.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(wu,"SUPPORT_SVG_DRAWING",{value:Fe}),Fe},get SUPPORT_FOREIGNOBJECT_DRAWING(){var Fe=typeof Array.from=="function"&&typeof window.fetch=="function"?function(K){var ne=K.createElement("canvas"),ae=100;ne.width=ae,ne.height=ae;var be=ne.getContext("2d");if(!be)return Promise.reject(!1);be.fillStyle="rgb(0, 255, 0)",be.fillRect(0,0,ae,ae);var Be=new Image,Xe=ne.toDataURL();Be.src=Xe;var Ke=XL(ae,ae,0,0,Be);return be.fillStyle="red",be.fillRect(0,0,ae,ae),qH(Ke).then(function(vt){be.drawImage(vt,0,0);var qe=be.getImageData(0,0,ae,ae).data;be.fillStyle="red",be.fillRect(0,0,ae,ae);var Ot=K.createElement("div");return Ot.style.backgroundImage="url("+Xe+")",Ot.style.height=ae+"px",Rp(qe)?qH(XL(ae,ae,0,0,Ot)):Promise.reject(!1)}).then(function(vt){return be.drawImage(vt,0,0),Rp(be.getImageData(0,0,ae,ae).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(wu,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:Fe}),Fe},get SUPPORT_CORS_IMAGES(){var Fe=new Image().crossOrigin!==void 0;return Object.defineProperty(wu,"SUPPORT_CORS_IMAGES",{value:Fe}),Fe},get SUPPORT_RESPONSE_TYPE(){var Fe=typeof new XMLHttpRequest().responseType=="string";return Object.defineProperty(wu,"SUPPORT_RESPONSE_TYPE",{value:Fe}),Fe},get SUPPORT_CORS_XHR(){var Fe="withCredentials"in new XMLHttpRequest;return Object.defineProperty(wu,"SUPPORT_CORS_XHR",{value:Fe}),Fe},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var Fe=!(typeof Intl>"u"||!Intl.Segmenter);return Object.defineProperty(wu,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:Fe}),Fe}},GL=function(K,ne){this.text=K,this.bounds=ne},woe=function(K,ne){var ae=ne.ownerDocument;if(ae){var be=ae.createElement("html2canvaswrapper");be.appendChild(ne.cloneNode(!0));var Be=ne.parentNode;if(Be){Be.replaceChild(be,ne);var Xe=l(K,be);return be.firstChild&&Be.replaceChild(be.firstChild,be),Xe}}return a.EMPTY},ME=function(K,ne,ae){var be=K.ownerDocument;if(!be)throw new Error("Node has no owner document");var Be=be.createRange();return Be.setStart(K,ne),Be.setEnd(K,ne+ae),Be},SM=function(K){if(wu.SUPPORT_NATIVE_TEXT_SEGMENTATION){var ne=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(ne.segment(K)).map(function(ae){return ae.segment})}return function(ae){for(var be,Be=_M(ae),Xe=[];!(be=Be.next()).done;)be.value&&Xe.push(be.value.slice());return Xe}(K)},PE=function(K,ne){return ne.letterSpacing!==0?SM(K):function(ae,be){if(wu.SUPPORT_NATIVE_TEXT_SEGMENTATION){var Be=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(Be.segment(ae)).map(function(Xe){return Xe.segment})}return LM(ae,be)}(K,ne)},wC=[32,160,4961,65792,65793,4153,4241],LM=function(K,ne){for(var ae,be=function(Ke,vt){var qe=d(Ke),Ot=ke(qe,vt),Lt=Ot[0],Vt=Ot[1],Vn=Ot[2],Dn=qe.length,$n=0,Ai=0;return{next:function(){if(Ai>=Dn)return{done:!0,value:null};for(var $i=le;Ai0)if(wu.SUPPORT_RANGE_BOUNDS){var Vt=ME(Ke,Ot,Lt.length).getClientRects();if(Vt.length>1){var Vn=SM(Lt),Dn=0;Vn.forEach(function(Ai){qe.push(new GL(Ai,a.fromDOMRectList(be,ME(Ke,Dn+Ot,Ai.length).getClientRects()))),Dn+=Ai.length})}else qe.push(new GL(Lt,a.fromDOMRectList(be,Vt)))}else{var $n=Ke.splitText(Lt.length);qe.push(new GL(Lt,woe(be,Ke))),Ke=$n}else wu.SUPPORT_RANGE_BOUNDS||(Ke=Ke.splitText(Lt.length));Ot+=Lt.length}),qe}(K,this.text,ae,ne)},Fye=function(K,ne){switch(ne){case 1:return K.toLowerCase();case 3:return K.replace(Nye,xM);case 2:return K.toUpperCase();default:return K}},Nye=/(^|\s|:|-|\(|\))([a-z])/g,xM=function(K,ne,ae){return K.length>0?ne+ae.toUpperCase():K},FE=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.src=ae.currentSrc||ae.src,be.intrinsicWidth=ae.naturalWidth,be.intrinsicHeight=ae.naturalHeight,be.context.cache.addImage(be.src),be}return t(K,Fe),K}(Jr),EM=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.canvas=ae,be.intrinsicWidth=ae.width,be.intrinsicHeight=ae.height,be}return t(K,Fe),K}(Jr),Ooe=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this,Be=new XMLSerializer,Xe=l(ne,ae);return ae.setAttribute("width",Xe.width+"px"),ae.setAttribute("height",Xe.height+"px"),be.svg="data:image/svg+xml,"+encodeURIComponent(Be.serializeToString(ae)),be.intrinsicWidth=ae.width.baseVal.value,be.intrinsicHeight=ae.height.baseVal.value,be.context.cache.addImage(be.svg),be}return t(K,Fe),K}(Jr),KH=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.value=ae.value,be}return t(K,Fe),K}(Jr),JH=function(Fe){function K(ne,ae){var be=Fe.call(this,ne,ae)||this;return be.start=ae.start,be.reversed=typeof ae.reversed=="boolean"&&ae.reversed===!0,be}return t(K,Fe),K}(Jr),Uye=[{type:15,flags:0,unit:"px",number:3}],Gu=[{type:16,flags:0,number:50}],Yu="checkbox",TM="radio",jye="password",e$=707406591,t$=function(Fe){function K(ne,ae){var be,Be,Xe,Ke=Fe.call(this,ne,ae)||this;switch(Ke.type=ae.type.toLowerCase(),Ke.checked=ae.checked,Ke.value=(Be=(be=ae).type===jye?new Array(be.value.length+1).join("•"):be.value).length===0?be.placeholder||"":Be,Ke.type!==Yu&&Ke.type!==TM||(Ke.styles.backgroundColor=3739148031,Ke.styles.borderTopColor=Ke.styles.borderRightColor=Ke.styles.borderBottomColor=Ke.styles.borderLeftColor=2779096575,Ke.styles.borderTopWidth=Ke.styles.borderRightWidth=Ke.styles.borderBottomWidth=Ke.styles.borderLeftWidth=1,Ke.styles.borderTopStyle=Ke.styles.borderRightStyle=Ke.styles.borderBottomStyle=Ke.styles.borderLeftStyle=1,Ke.styles.backgroundClip=[0],Ke.styles.backgroundOrigin=[0],Ke.bounds=(Xe=Ke.bounds).width>Xe.height?new a(Xe.left+(Xe.width-Xe.height)/2,Xe.top,Xe.height,Xe.height):Xe.width0)ae.textNodes.push(new Pye(K,Be,ae.styles));else if(JL(Be))if(Loe(Be)&&Be.assignedNodes)Be.assignedNodes().forEach(function(vt){return Fe(K,vt,ae,be)});else{var Ke=qL(K,Be);Ke.styles.isVisible()&&(KL(Be,Ke,be)?Ke.flags|=4:Wye(Ke.styles)&&(Ke.flags|=2),ZL.indexOf(Be.tagName)!==-1&&(Ke.flags|=8),ae.elements.push(Ke),Be.slot,Be.shadowRoot?Fe(K,Be.shadowRoot,Ke,be):IM(Be)||tt(Be)||IA(Be)||Fe(K,Be,Ke,be))}},qL=function(K,ne){return Is(ne)?new FE(K,ne):WE(ne)?new EM(K,ne):tt(ne)?new Ooe(K,ne):RM(ne)?new KH(K,ne):jE(ne)?new JH(K,ne):Coe(ne)?new t$(K,ne):IA(ne)?new QM(K,ne):IM(ne)?new YL(K,ne):_oe(ne)?new DM(K,ne):new Jr(K,ne)},UE=function(K,ne){var ae=qL(K,ne);return ae.flags|=4,NE(K,ne,ae,ae),ae},KL=function(K,ne,ae){return ne.styles.isPositionedWithZIndex()||ne.styles.opacity<1||ne.styles.isTransformed()||J3(K)&&ae.styles.isTransparent()},Wye=function(K){return K.isPositioned()||K.isFloating()},yoe=function(K){return K.nodeType===Node.TEXT_NODE},JL=function(K){return K.nodeType===Node.ELEMENT_NODE},n$=function(K){return JL(K)&&K.style!==void 0&&!BM(K)},BM=function(K){return kn(K.className)=="object"},RM=function(K){return K.tagName==="LI"},jE=function(K){return K.tagName==="OL"},Coe=function(K){return K.tagName==="INPUT"},tt=function(K){return K.tagName==="svg"},J3=function(K){return K.tagName==="BODY"},WE=function(K){return K.tagName==="CANVAS"},I1=function(K){return K.tagName==="VIDEO"},Is=function(K){return K.tagName==="IMG"},_oe=function(K){return K.tagName==="IFRAME"},Soe=function(K){return K.tagName==="STYLE"},IM=function(K){return K.tagName==="TEXTAREA"},IA=function(K){return K.tagName==="SELECT"},Loe=function(K){return K.tagName==="SLOT"},xoe=function(K){return K.tagName.indexOf("-")>0},Vye=function(){function Fe(){this.counters={}}return Fe.prototype.getCounterValue=function(K){var ne=this.counters[K];return ne&&ne.length?ne[ne.length-1]:1},Fe.prototype.getCounterValues=function(K){var ne=this.counters[K];return ne||[]},Fe.prototype.pop=function(K){var ne=this;K.forEach(function(ae){return ne.counters[ae].pop()})},Fe.prototype.parse=function(K){var ne=this,ae=K.counterIncrement,be=K.counterReset,Be=!0;ae!==null&&ae.forEach(function(Ke){var vt=ne.counters[Ke.counter];vt&&Ke.increment!==0&&(Be=!1,vt.length||vt.push(1),vt[Math.max(0,vt.length-1)]+=Ke.increment)});var Xe=[];return Be&&be.forEach(function(Ke){var vt=ne.counters[Ke.counter];Xe.push(Ke.counter),vt||(vt=ne.counters[Ke.counter]=[]),vt.push(Ke.reset)}),Xe},Fe}(),Eoe={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Toe={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Ip={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},zye={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},ex=function(K,ne,ae,be,Be,Xe){return Kae?VE(K,Be,Xe.length>0):be.integers.reduce(function(Ke,vt,qe){for(;K>=vt;)K-=vt,Ke+=be.values[qe];return Ke},"")+Xe},Qoe=function(K,ne,ae,be){var Be="";do ae||K--,Be=be(K)+Be,K/=ne;while(K*ne>=ne);return Be},Yd=function(K,ne,ae,be,Be){var Xe=ae-ne+1;return(K<0?"-":"")+(Qoe(Math.abs(K),Xe,be,function(Ke){return u(Math.floor(Ke%Xe)+ne)})+Be)},OC=function(K,ne,ae){ae===void 0&&(ae=". ");var be=ne.length;return Qoe(Math.abs(K),be,!1,function(Be){return ne[Math.floor(Be%be)]})+ae},cf=function(K,ne,ae,be,Be,Xe){if(K<-9999||K>9999)return VE(K,4,Be.length>0);var Ke=Math.abs(K),vt=Be;if(Ke===0)return ne[0]+vt;for(var qe=0;Ke>0&&qe<=4;qe++){var Ot=Ke%10;Ot===0&&Xu(Xe,1)&&vt!==""?vt=ne[Ot]+vt:Ot>1||Ot===1&&qe===0||Ot===1&&qe===1&&Xu(Xe,2)||Ot===1&&qe===1&&Xu(Xe,4)&&K>100||Ot===1&&qe>1&&Xu(Xe,8)?vt=ne[Ot]+(qe>0?ae[qe-1]:"")+vt:Ot===1&&qe>0&&(vt=ae[qe-1]+vt),Ke=Math.floor(Ke/10)}return(K<0?be:"")+vt},Doe="十百千萬",Boe="拾佰仟萬",Roe="マイナス",i$="마이너스",VE=function(K,ne,ae){var be=ae?". ":"",Be=ae?"、":"",Xe=ae?", ":"",Ke=ae?" ":"";switch(ne){case 0:return"•"+Ke;case 1:return"◦"+Ke;case 2:return"◾"+Ke;case 5:var vt=Yd(K,48,57,!0,be);return vt.length<4?"0"+vt:vt;case 4:return OC(K,"〇一二三四五六七八九",Be);case 6:return ex(K,1,3999,Eoe,3,be).toLowerCase();case 7:return ex(K,1,3999,Eoe,3,be);case 8:return Yd(K,945,969,!1,be);case 9:return Yd(K,97,122,!1,be);case 10:return Yd(K,65,90,!1,be);case 11:return Yd(K,1632,1641,!0,be);case 12:case 49:return ex(K,1,9999,Toe,3,be);case 35:return ex(K,1,9999,Toe,3,be).toLowerCase();case 13:return Yd(K,2534,2543,!0,be);case 14:case 30:return Yd(K,6112,6121,!0,be);case 15:return OC(K,"子丑寅卯辰巳午未申酉戌亥",Be);case 16:return OC(K,"甲乙丙丁戊己庚辛壬癸",Be);case 17:case 48:return cf(K,"零一二三四五六七八九",Doe,"負",Be,14);case 47:return cf(K,"零壹貳參肆伍陸柒捌玖",Boe,"負",Be,15);case 42:return cf(K,"零一二三四五六七八九",Doe,"负",Be,14);case 41:return cf(K,"零壹贰叁肆伍陆柒捌玖",Boe,"负",Be,15);case 26:return cf(K,"〇一二三四五六七八九","十百千万",Roe,Be,0);case 25:return cf(K,"零壱弐参四伍六七八九","拾百千万",Roe,Be,7);case 31:return cf(K,"영일이삼사오육칠팔구","십백천만",i$,Xe,7);case 33:return cf(K,"零一二三四五六七八九","十百千萬",i$,Xe,0);case 32:return cf(K,"零壹貳參四五六七八九","拾百千",i$,Xe,7);case 18:return Yd(K,2406,2415,!0,be);case 20:return ex(K,1,19999,zye,3,be);case 21:return Yd(K,2790,2799,!0,be);case 22:return Yd(K,2662,2671,!0,be);case 22:return ex(K,1,10999,Ip,3,be);case 23:return OC(K,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return OC(K,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Yd(K,3302,3311,!0,be);case 28:return OC(K,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",Be);case 29:return OC(K,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",Be);case 34:return Yd(K,3792,3801,!0,be);case 37:return Yd(K,6160,6169,!0,be);case 38:return Yd(K,4160,4169,!0,be);case 39:return Yd(K,2918,2927,!0,be);case 40:return Yd(K,1776,1785,!0,be);case 43:return Yd(K,3046,3055,!0,be);case 44:return Yd(K,3174,3183,!0,be);case 45:return Yd(K,3664,3673,!0,be);case 46:return Yd(K,3872,3881,!0,be);default:return Yd(K,48,57,!0,be)}},ew="data-html2canvas-ignore",Ioe=function(){function Fe(K,ne,ae){if(this.context=K,this.options=ae,this.scrolledElements=[],this.referenceElement=ne,this.counters=new Vye,this.quoteDepth=0,!ne.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(ne.ownerDocument.documentElement,!1)}return Fe.prototype.toIFrame=function(K,ne){var ae=this,be=M2(K,ne);if(!be.contentWindow)return Promise.reject("Unable to find iframe window");var Be=K.defaultView.pageXOffset,Xe=K.defaultView.pageYOffset,Ke=be.contentWindow,vt=Ke.document,qe=Xye(be).then(function(){return r(ae,void 0,void 0,function(){var Ot,Lt;return o(this,function(Vt){switch(Vt.label){case 0:return this.scrolledElements.forEach(Yye),Ke&&(Ke.scrollTo(ne.left,ne.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||Ke.scrollY===ne.top&&Ke.scrollX===ne.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(Ke.scrollX-ne.left,Ke.scrollY-ne.top,0,0))),Ot=this.options.onclone,(Lt=this.clonedReferenceElement)===void 0?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:vt.fonts&&vt.fonts.ready?[4,vt.fonts.ready]:[3,2];case 1:Vt.sent(),Vt.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,$ye(vt)]:[3,4];case 3:Vt.sent(),Vt.label=4;case 4:return typeof Ot=="function"?[2,Promise.resolve().then(function(){return Ot(vt,Lt)}).then(function(){return be})]:[2,be]}})})});return vt.open(),vt.write(Moe(document.doctype)+""),Poe(this.referenceElement.ownerDocument,Be,Xe),vt.replaceChild(vt.adoptNode(this.documentElement),vt.documentElement),vt.close(),qe},Fe.prototype.createElementClone=function(K){if(or(K,2),WE(K))return this.createCanvasClone(K);if(I1(K))return this.createVideoClone(K);if(Soe(K))return this.createStyleClone(K);var ne=K.cloneNode(!1);return Is(ne)&&(Is(K)&&K.currentSrc&&K.currentSrc!==K.src&&(ne.src=K.currentSrc,ne.srcset=""),ne.loading==="lazy"&&(ne.loading="eager")),xoe(ne)?this.createCustomElementClone(ne):ne},Fe.prototype.createCustomElementClone=function(K){var ne=document.createElement("html2canvascustomelement");return r$(K.style,ne),ne},Fe.prototype.createStyleClone=function(K){try{var ne=K.sheet;if(ne&&ne.cssRules){var ae=[].slice.call(ne.cssRules,0).reduce(function(Be,Xe){return Xe&&typeof Xe.cssText=="string"?Be+Xe.cssText:Be},""),be=K.cloneNode(!1);return be.textContent=ae,be}}catch(Be){if(this.context.logger.error("Unable to access cssRules property",Be),Be.name!=="SecurityError")throw Be}return K.cloneNode(!1)},Fe.prototype.createCanvasClone=function(K){var ne;if(this.options.inlineImages&&K.ownerDocument){var ae=K.ownerDocument.createElement("img");try{return ae.src=K.toDataURL(),ae}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",K)}}var be=K.cloneNode(!1);try{be.width=K.width,be.height=K.height;var Be=K.getContext("2d"),Xe=be.getContext("2d");if(Xe)if(!this.options.allowTaint&&Be)Xe.putImageData(Be.getImageData(0,0,K.width,K.height),0,0);else{var Ke=(ne=K.getContext("webgl2"))!==null&&ne!==void 0?ne:K.getContext("webgl");if(Ke){var vt=Ke.getContextAttributes();(vt==null?void 0:vt.preserveDrawingBuffer)===!1&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",K)}Xe.drawImage(K,0,0)}return be}catch{this.context.logger.info("Unable to clone canvas as it is tainted",K)}return be},Fe.prototype.createVideoClone=function(K){var ne=K.ownerDocument.createElement("canvas");ne.width=K.offsetWidth,ne.height=K.offsetHeight;var ae=ne.getContext("2d");try{return ae&&(ae.drawImage(K,0,0,ne.width,ne.height),this.options.allowTaint||ae.getImageData(0,0,ne.width,ne.height)),ne}catch{this.context.logger.info("Unable to clone video as it is tainted",K)}var be=K.ownerDocument.createElement("canvas");return be.width=K.offsetWidth,be.height=K.offsetHeight,be},Fe.prototype.appendChildNode=function(K,ne,ae){JL(ne)&&(ne.tagName==="SCRIPT"||ne.hasAttribute(ew)||typeof this.options.ignoreElements=="function"&&this.options.ignoreElements(ne))||this.options.copyStyles&&JL(ne)&&Soe(ne)||K.appendChild(this.cloneNode(ne,ae))},Fe.prototype.cloneChildNodes=function(K,ne,ae){for(var be=this,Be=K.shadowRoot?K.shadowRoot.firstChild:K.firstChild;Be;Be=Be.nextSibling)if(JL(Be)&&Loe(Be)&&typeof Be.assignedNodes=="function"){var Xe=Be.assignedNodes();Xe.length&&Xe.forEach(function(Ke){return be.appendChildNode(ne,Ke,ae)})}else this.appendChildNode(ne,Be,ae)},Fe.prototype.cloneNode=function(K,ne){if(yoe(K))return document.createTextNode(K.data);if(!K.ownerDocument)return K.cloneNode(!1);var ae=K.ownerDocument.defaultView;if(ae&&JL(K)&&(n$(K)||BM(K))){var be=this.createElementClone(K);be.style.transitionProperty="none";var Be=ae.getComputedStyle(K),Xe=ae.getComputedStyle(K,":before"),Ke=ae.getComputedStyle(K,":after");this.referenceElement===K&&n$(be)&&(this.clonedReferenceElement=be),J3(be)&&MM(be);var vt=this.counters.parse(new Sn(this.context,Be)),qe=this.resolvePseudoContent(K,be,Xe,RA.BEFORE);xoe(K)&&(ne=!0),I1(K)||this.cloneChildNodes(K,be,ne),qe&&be.insertBefore(qe,be.firstChild);var Ot=this.resolvePseudoContent(K,be,Ke,RA.AFTER);return Ot&&be.appendChild(Ot),this.counters.pop(vt),(Be&&(this.options.copyStyles||BM(K))&&!_oe(K)||ne)&&r$(Be,be),K.scrollTop===0&&K.scrollLeft===0||this.scrolledElements.push([be,K.scrollLeft,K.scrollTop]),(IM(K)||IA(K))&&(IM(be)||IA(be))&&(be.value=K.value),be}return K.cloneNode(!1)},Fe.prototype.resolvePseudoContent=function(K,ne,ae,be){var Be=this;if(ae){var Xe=ae.content,Ke=ne.ownerDocument;if(Ke&&Xe&&Xe!=="none"&&Xe!=="-moz-alt-content"&&ae.display!=="none"){this.counters.parse(new Sn(this.context,ae));var vt=new Wt(this.context,ae),qe=Ke.createElement("html2canvaspseudoelement");r$(ae,qe),vt.content.forEach(function(Lt){if(Lt.type===0)qe.appendChild(Ke.createTextNode(Lt.value));else if(Lt.type===22){var Vt=Ke.createElement("img");Vt.src=Lt.value,Vt.style.opacity="1",qe.appendChild(Vt)}else if(Lt.type===18){if(Lt.name==="attr"){var Vn=Lt.values.filter(Zt);Vn.length&&qe.appendChild(Ke.createTextNode(K.getAttribute(Vn[0].value)||""))}else if(Lt.name==="counter"){var Dn=Lt.values.filter(Ne),$n=Dn[0],Ai=Dn[1];if($n&&Zt($n)){var mr=Be.counters.getCounterValue($n.value),$i=Ai&&Zt(Ai)?zH.parse(Be.context,Ai.value):3;qe.appendChild(Ke.createTextNode(VE(mr,$i,!1)))}}else if(Lt.name==="counters"){var Go=Lt.values.filter(Ne),Vo=($n=Go[0],Go[1]);if(Ai=Go[2],$n&&Zt($n)){var ho=Be.counters.getCounterValues($n.value),lr=Ai&&Zt(Ai)?zH.parse(Be.context,Ai.value):3,rs=Vo&&Vo.type===0?Vo.value:"",os=ho.map(function(ko){return VE(ko,lr,!1)}).join(rs);qe.appendChild(Ke.createTextNode(os))}}}else if(Lt.type===20)switch(Lt.value){case"open-quote":qe.appendChild(Ke.createTextNode(Aoe(vt.quotes,Be.quoteDepth++,!0)));break;case"close-quote":qe.appendChild(Ke.createTextNode(Aoe(vt.quotes,--Be.quoteDepth,!1)));break;default:qe.appendChild(Ke.createTextNode(Lt.value))}}),qe.className=o$+" "+zE;var Ot=be===RA.BEFORE?" "+o$:" "+zE;return BM(ne)?ne.className.baseValue+=Ot:ne.className+=Ot,qe}}},Fe.destroy=function(K){return!!K.parentNode&&(K.parentNode.removeChild(K),!0)},Fe}();(function(Fe){Fe[Fe.BEFORE=0]="BEFORE",Fe[Fe.AFTER=1]="AFTER"})(RA||(RA={}));var al,M2=function(K,ne){var ae=K.createElement("iframe");return ae.className="html2canvas-container",ae.style.visibility="hidden",ae.style.position="fixed",ae.style.left="-10000px",ae.style.top="0px",ae.style.border="0",ae.width=ne.width.toString(),ae.height=ne.height.toString(),ae.scrolling="no",ae.setAttribute(ew,"true"),K.body.appendChild(ae),ae},Hye=function(K){return new Promise(function(ne){K.complete?ne():K.src?(K.onload=ne,K.onerror=ne):ne()})},$ye=function(K){return Promise.all([].slice.call(K.images,0).map(Hye))},Xye=function(K){return new Promise(function(ne,ae){var be=K.contentWindow;if(!be)return ae("No window assigned for iframe");var Be=be.document;be.onload=K.onload=function(){be.onload=K.onload=null;var Xe=setInterval(function(){Be.body.childNodes.length>0&&Be.readyState==="complete"&&(clearInterval(Xe),ne(K))},50)}})},Gye=["all","d","content"],r$=function(K,ne){for(var ae=K.length-1;ae>=0;ae--){var be=K.item(ae);Gye.indexOf(be)===-1&&ne.style.setProperty(be,K.getPropertyValue(be))}return ne},Moe=function(K){var ne="";return K&&(ne+=""),ne},Poe=function(K,ne,ae){K&&K.defaultView&&(ne!==K.defaultView.pageXOffset||ae!==K.defaultView.pageYOffset)&&K.defaultView.scrollTo(ne,ae)},Yye=function(K){var ne=K[0],ae=K[1],be=K[2];ne.scrollLeft=ae,ne.scrollTop=be},o$="___html2canvas___pseudoelement_before",zE="___html2canvas___pseudoelement_after",tx=`{ content: "" !important; display: none !important; }`,MM=function(K){Zye(K,"."+o$+":before"+tx+` - .`+zE+":after"+tx)},Zye=function(K,ne){var ae=K.ownerDocument;if(ae){var be=ae.createElement("style");be.textContent=ne,K.appendChild(be)}},s$=function(){function Fe(){}return Fe.getOrigin=function(K){var ne=Fe._link;return ne?(ne.href=K,ne.href=ne.href,ne.protocol+ne.hostname+ne.port):"about:blank"},Fe.isSameOrigin=function(K){return Fe.getOrigin(K)===Fe._origin},Fe.setContext=function(K){Fe._link=K.document.createElement("a"),Fe._origin=Fe.getOrigin(K.location.href)},Fe._origin="about:blank",Fe}(),qye=function(){function Fe(K,ne){this.context=K,this._options=ne,this._cache={}}return Fe.prototype.addImage=function(K){var ne=Promise.resolve();return this.has(K)||(PM(K)||sk(K))&&(this._cache[K]=this.loadImage(K)).catch(function(){}),ne},Fe.prototype.match=function(K){return this._cache[K]},Fe.prototype.loadImage=function(K){return r(this,void 0,void 0,function(){var ne,ae,be,Be,Xe=this;return o(this,function(Ke){switch(Ke.label){case 0:return ne=s$.isSameOrigin(K),ae=!l$(K)&&this._options.useCORS===!0&&wu.SUPPORT_CORS_IMAGES&&!ne,be=!l$(K)&&!ne&&!PM(K)&&typeof this._options.proxy=="string"&&wu.SUPPORT_CORS_XHR&&!ae,ne||this._options.allowTaint!==!1||l$(K)||PM(K)||be||ae?(Be=K,be?[4,this.proxy(Be)]:[3,2]):[2];case 1:Be=Ke.sent(),Ke.label=2;case 2:return this.context.logger.debug("Added image "+K.substring(0,256)),[4,new Promise(function(vt,qe){var Ot=new Image;Ot.onload=function(){return vt(Ot)},Ot.onerror=qe,(Foe(Be)||ae)&&(Ot.crossOrigin="anonymous"),Ot.src=Be,Ot.complete===!0&&setTimeout(function(){return vt(Ot)},500),Xe._options.imageTimeout>0&&setTimeout(function(){return qe("Timed out ("+Xe._options.imageTimeout+"ms) loading image")},Xe._options.imageTimeout)})];case 3:return[2,Ke.sent()]}})})},Fe.prototype.has=function(K){return this._cache[K]!==void 0},Fe.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},Fe.prototype.proxy=function(K){var ne=this,ae=this._options.proxy;if(!ae)throw new Error("No proxy defined");var be=K.substring(0,256);return new Promise(function(Be,Xe){var Ke=wu.SUPPORT_RESPONSE_TYPE?"blob":"text",vt=new XMLHttpRequest;vt.onload=function(){if(vt.status===200)if(Ke==="text")Be(vt.response);else{var Lt=new FileReader;Lt.addEventListener("load",function(){return Be(Lt.result)},!1),Lt.addEventListener("error",function(Vt){return Xe(Vt)},!1),Lt.readAsDataURL(vt.response)}else Xe("Failed to proxy resource "+be+" with status code "+vt.status)},vt.onerror=Xe;var qe=ae.indexOf("?")>-1?"&":"?";if(vt.open("GET",""+ae+qe+"url="+encodeURIComponent(K)+"&responseType="+Ke),Ke!=="text"&&vt instanceof XMLHttpRequest&&(vt.responseType=Ke),ne._options.imageTimeout){var Ot=ne._options.imageTimeout;vt.timeout=Ot,vt.ontimeout=function(){return Xe("Timed out ("+Ot+"ms) proxying "+be)}}vt.send()})},Fe}(),Mp=/^data:image\/svg\+xml/i,a$=/^data:image\/.*;base64,/i,yC=/^data:image\/.*/i,sk=function(K){return wu.SUPPORT_SVG_DRAWING||!HE(K)},l$=function(K){return yC.test(K)},Foe=function(K){return a$.test(K)},PM=function(K){return K.substr(0,4)==="blob"},HE=function(K){return K.substr(-3).toLowerCase()==="svg"||Mp.test(K)},Mi=function(){function Fe(K,ne){this.type=0,this.x=K,this.y=ne}return Fe.prototype.add=function(K,ne){return new Fe(this.x+K,this.y+ne)},Fe}(),CC=function(K,ne,ae){return new Mi(K.x+(ne.x-K.x)*ae,K.y+(ne.y-K.y)*ae)},FM=function(){function Fe(K,ne,ae,be){this.type=1,this.start=K,this.startControl=ne,this.endControl=ae,this.end=be}return Fe.prototype.subdivide=function(K,ne){var ae=CC(this.start,this.startControl,K),be=CC(this.startControl,this.endControl,K),Be=CC(this.endControl,this.end,K),Xe=CC(ae,be,K),Ke=CC(be,Be,K),vt=CC(Xe,Ke,K);return ne?new Fe(this.start,ae,Xe,vt):new Fe(vt,Ke,Be,this.end)},Fe.prototype.add=function(K,ne){return new Fe(this.start.add(K,ne),this.startControl.add(K,ne),this.endControl.add(K,ne),this.end.add(K,ne))},Fe.prototype.reverse=function(){return new Fe(this.end,this.endControl,this.startControl,this.start)},Fe}(),Ig=function(K){return K.type===1},Kye=function(K){var ne=K.styles,ae=K.bounds,be=wn(ne.borderTopLeftRadius,ae.width,ae.height),Be=be[0],Xe=be[1],Ke=wn(ne.borderTopRightRadius,ae.width,ae.height),vt=Ke[0],qe=Ke[1],Ot=wn(ne.borderBottomRightRadius,ae.width,ae.height),Lt=Ot[0],Vt=Ot[1],Vn=wn(ne.borderBottomLeftRadius,ae.width,ae.height),Dn=Vn[0],$n=Vn[1],Ai=[];Ai.push((Be+vt)/ae.width),Ai.push((Dn+Lt)/ae.width),Ai.push((Xe+$n)/ae.height),Ai.push((qe+Vt)/ae.height);var mr=Math.max.apply(Math,Ai);mr>1&&(Be/=mr,Xe/=mr,vt/=mr,qe/=mr,Lt/=mr,Vt/=mr,Dn/=mr,$n/=mr);var $i=ae.width-vt,Go=ae.height-Vt,Vo=ae.width-Lt,uo=ae.height-$n,lr=ne.borderTopWidth,rs=ne.borderRightWidth,os=ne.borderBottomWidth,ko=ne.borderLeftWidth,Zd=Cn(ne.paddingTop,K.bounds.width),Mg=Cn(ne.paddingRight,K.bounds.width),Pg=Cn(ne.paddingBottom,K.bounds.width),yu=Cn(ne.paddingLeft,K.bounds.width);this.topLeftBorderDoubleOuterBox=Be>0||Xe>0?xc(ae.left+ko/3,ae.top+lr/3,Be-ko/3,Xe-lr/3,al.TOP_LEFT):new Mi(ae.left+ko/3,ae.top+lr/3),this.topRightBorderDoubleOuterBox=Be>0||Xe>0?xc(ae.left+$i,ae.top+lr/3,vt-rs/3,qe-lr/3,al.TOP_RIGHT):new Mi(ae.left+ae.width-rs/3,ae.top+lr/3),this.bottomRightBorderDoubleOuterBox=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt-rs/3,Vt-os/3,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-rs/3,ae.top+ae.height-os/3),this.bottomLeftBorderDoubleOuterBox=Dn>0||$n>0?xc(ae.left+ko/3,ae.top+uo,Dn-ko/3,$n-os/3,al.BOTTOM_LEFT):new Mi(ae.left+ko/3,ae.top+ae.height-os/3),this.topLeftBorderDoubleInnerBox=Be>0||Xe>0?xc(ae.left+2*ko/3,ae.top+2*lr/3,Be-2*ko/3,Xe-2*lr/3,al.TOP_LEFT):new Mi(ae.left+2*ko/3,ae.top+2*lr/3),this.topRightBorderDoubleInnerBox=Be>0||Xe>0?xc(ae.left+$i,ae.top+2*lr/3,vt-2*rs/3,qe-2*lr/3,al.TOP_RIGHT):new Mi(ae.left+ae.width-2*rs/3,ae.top+2*lr/3),this.bottomRightBorderDoubleInnerBox=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt-2*rs/3,Vt-2*os/3,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-2*rs/3,ae.top+ae.height-2*os/3),this.bottomLeftBorderDoubleInnerBox=Dn>0||$n>0?xc(ae.left+2*ko/3,ae.top+uo,Dn-2*ko/3,$n-2*os/3,al.BOTTOM_LEFT):new Mi(ae.left+2*ko/3,ae.top+ae.height-2*os/3),this.topLeftBorderStroke=Be>0||Xe>0?xc(ae.left+ko/2,ae.top+lr/2,Be-ko/2,Xe-lr/2,al.TOP_LEFT):new Mi(ae.left+ko/2,ae.top+lr/2),this.topRightBorderStroke=Be>0||Xe>0?xc(ae.left+$i,ae.top+lr/2,vt-rs/2,qe-lr/2,al.TOP_RIGHT):new Mi(ae.left+ae.width-rs/2,ae.top+lr/2),this.bottomRightBorderStroke=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt-rs/2,Vt-os/2,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-rs/2,ae.top+ae.height-os/2),this.bottomLeftBorderStroke=Dn>0||$n>0?xc(ae.left+ko/2,ae.top+uo,Dn-ko/2,$n-os/2,al.BOTTOM_LEFT):new Mi(ae.left+ko/2,ae.top+ae.height-os/2),this.topLeftBorderBox=Be>0||Xe>0?xc(ae.left,ae.top,Be,Xe,al.TOP_LEFT):new Mi(ae.left,ae.top),this.topRightBorderBox=vt>0||qe>0?xc(ae.left+$i,ae.top,vt,qe,al.TOP_RIGHT):new Mi(ae.left+ae.width,ae.top),this.bottomRightBorderBox=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt,Vt,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width,ae.top+ae.height),this.bottomLeftBorderBox=Dn>0||$n>0?xc(ae.left,ae.top+uo,Dn,$n,al.BOTTOM_LEFT):new Mi(ae.left,ae.top+ae.height),this.topLeftPaddingBox=Be>0||Xe>0?xc(ae.left+ko,ae.top+lr,Math.max(0,Be-ko),Math.max(0,Xe-lr),al.TOP_LEFT):new Mi(ae.left+ko,ae.top+lr),this.topRightPaddingBox=vt>0||qe>0?xc(ae.left+Math.min($i,ae.width-rs),ae.top+lr,$i>ae.width+rs?0:Math.max(0,vt-rs),Math.max(0,qe-lr),al.TOP_RIGHT):new Mi(ae.left+ae.width-rs,ae.top+lr),this.bottomRightPaddingBox=Lt>0||Vt>0?xc(ae.left+Math.min(Vo,ae.width-ko),ae.top+Math.min(Go,ae.height-os),Math.max(0,Lt-rs),Math.max(0,Vt-os),al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-rs,ae.top+ae.height-os),this.bottomLeftPaddingBox=Dn>0||$n>0?xc(ae.left+ko,ae.top+Math.min(uo,ae.height-os),Math.max(0,Dn-ko),Math.max(0,$n-os),al.BOTTOM_LEFT):new Mi(ae.left+ko,ae.top+ae.height-os),this.topLeftContentBox=Be>0||Xe>0?xc(ae.left+ko+yu,ae.top+lr+Zd,Math.max(0,Be-(ko+yu)),Math.max(0,Xe-(lr+Zd)),al.TOP_LEFT):new Mi(ae.left+ko+yu,ae.top+lr+Zd),this.topRightContentBox=vt>0||qe>0?xc(ae.left+Math.min($i,ae.width+ko+yu),ae.top+lr+Zd,$i>ae.width+ko+yu?0:vt-ko+yu,qe-(lr+Zd),al.TOP_RIGHT):new Mi(ae.left+ae.width-(rs+Mg),ae.top+lr+Zd),this.bottomRightContentBox=Lt>0||Vt>0?xc(ae.left+Math.min(Vo,ae.width-(ko+yu)),ae.top+Math.min(Go,ae.height+lr+Zd),Math.max(0,Lt-(rs+Mg)),Vt-(os+Pg),al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-(rs+Mg),ae.top+ae.height-(os+Pg)),this.bottomLeftContentBox=Dn>0||$n>0?xc(ae.left+ko+yu,ae.top+uo,Math.max(0,Dn-(ko+yu)),$n-(os+Pg),al.BOTTOM_LEFT):new Mi(ae.left+ko+yu,ae.top+ae.height-(os+Pg))};(function(Fe){Fe[Fe.TOP_LEFT=0]="TOP_LEFT",Fe[Fe.TOP_RIGHT=1]="TOP_RIGHT",Fe[Fe.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",Fe[Fe.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(al||(al={}));var xc=function(K,ne,ae,be,Be){var Xe=(Math.sqrt(2)-1)/3*4,Ke=ae*Xe,vt=be*Xe,qe=K+ae,Ot=ne+be;switch(Be){case al.TOP_LEFT:return new FM(new Mi(K,Ot),new Mi(K,Ot-vt),new Mi(qe-Ke,ne),new Mi(qe,ne));case al.TOP_RIGHT:return new FM(new Mi(K,ne),new Mi(K+Ke,ne),new Mi(qe,Ot-vt),new Mi(qe,Ot));case al.BOTTOM_RIGHT:return new FM(new Mi(qe,ne),new Mi(qe,ne+vt),new Mi(K+Ke,Ot),new Mi(K,Ot));case al.BOTTOM_LEFT:default:return new FM(new Mi(qe,Ot),new Mi(qe-Ke,Ot),new Mi(K,ne+vt),new Mi(K,ne))}},Ou=function(K){return[K.topLeftBorderBox,K.topRightBorderBox,K.bottomRightBorderBox,K.bottomLeftBorderBox]},nx=function(K){return[K.topLeftPaddingBox,K.topRightPaddingBox,K.bottomRightPaddingBox,K.bottomLeftPaddingBox]},Noe=function(K,ne,ae){this.offsetX=K,this.offsetY=ne,this.matrix=ae,this.type=0,this.target=6},M1=function(K,ne){this.path=K,this.target=ne,this.type=1},c$=function(K){this.opacity=K,this.type=2,this.target=6},$E=function(K){return K.type===1},tw=function(K,ne){return K.length===ne.length&&K.some(function(ae,be){return ae===ne[be]})},d$=function(K){this.element=K,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Vf=function(){function Fe(K,ne){if(this.container=K,this.parent=ne,this.effects=[],this.curves=new Kye(this.container),this.container.styles.opacity<1&&this.effects.push(new c$(this.container.styles.opacity)),this.container.styles.transform!==null){var ae=this.container.bounds.left+this.container.styles.transformOrigin[0].number,be=this.container.bounds.top+this.container.styles.transformOrigin[1].number,Be=this.container.styles.transform;this.effects.push(new Noe(ae,be,Be))}if(this.container.styles.overflowX!==0){var Xe=Ou(this.curves),Ke=nx(this.curves);tw(Xe,Ke)?this.effects.push(new M1(Xe,6)):(this.effects.push(new M1(Xe,2)),this.effects.push(new M1(Ke,4)))}}return Fe.prototype.getEffects=function(K){for(var ne=[2,3].indexOf(this.container.styles.position)===-1,ae=this.parent,be=this.effects.slice(0);ae;){var Be=ae.effects.filter(function(vt){return!$E(vt)});if(ne||ae.container.styles.position!==0||!ae.parent){if(be.unshift.apply(be,Be),ne=[2,3].indexOf(ae.container.styles.position)===-1,ae.container.styles.overflowX!==0){var Xe=Ou(ae.curves),Ke=nx(ae.curves);tw(Xe,Ke)||be.unshift(new M1(Ke,6))}}else be.unshift.apply(be,Be);ae=ae.parent}return be.filter(function(vt){return Xu(vt.target,K)})},Fe}(),u$=function Fe(K,ne,ae,be){K.container.elements.forEach(function(Be){var Xe=Xu(Be.flags,4),Ke=Xu(Be.flags,2),vt=new Vf(Be,K);Xu(Be.styles.display,2048)&&be.push(vt);var qe=Xu(Be.flags,8)?[]:be;if(Xe||Ke){var Ot=Xe||Be.styles.isPositioned()?ae:ne,Lt=new d$(vt);if(Be.styles.isPositioned()||Be.styles.opacity<1||Be.styles.isTransformed()){var Vt=Be.styles.zIndex.order;if(Vt<0){var Vn=0;Ot.negativeZIndex.some(function($n,Ai){return Vt>$n.element.container.styles.zIndex.order?(Vn=Ai,!1):Vn>0}),Ot.negativeZIndex.splice(Vn,0,Lt)}else if(Vt>0){var Dn=0;Ot.positiveZIndex.some(function($n,Ai){return Vt>=$n.element.container.styles.zIndex.order?(Dn=Ai+1,!1):Dn>0}),Ot.positiveZIndex.splice(Dn,0,Lt)}else Ot.zeroOrAutoZIndexOrTransformedOrOpacity.push(Lt)}else Be.styles.isFloating()?Ot.nonPositionedFloats.push(Lt):Ot.nonPositionedInlineLevel.push(Lt);Fe(vt,Lt,Xe?Lt:ae,qe)}else Be.styles.isInlineLevel()?ne.inlineLevel.push(vt):ne.nonInlineLevel.push(vt),Fe(vt,ne,ae,qe);Xu(Be.flags,8)&&Uoe(Be,qe)})},Uoe=function(K,ne){for(var ae=K instanceof JH?K.start:1,be=K instanceof JH&&K.reversed,Be=0;Be0&&ne.intrinsicHeight>0){var Be=nw(ne),Xe=nx(ae);this.path(Xe),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(be,0,0,ne.intrinsicWidth,ne.intrinsicHeight,Be.left,Be.top,Be.width,Be.height),this.ctx.restore()}},K.prototype.renderNodeContent=function(ne){return r(this,void 0,void 0,function(){var ae,be,Be,Xe,Ke,vt,qe,Ot,Lt,Vt,Vn,Dn,$n,Ai,mr,$i,Go,Vo;return o(this,function(uo){switch(uo.label){case 0:this.applyEffects(ne.getEffects(4)),ae=ne.container,be=ne.curves,Be=ae.styles,Xe=0,Ke=ae.textNodes,uo.label=1;case 1:return Xe0&&uf>0&&(ko=Be.ctx.createPattern(lr,"repeat"),Be.renderRepeat(Mg,ko,ak,Zu))):function(ll){return ll.type===2}(Lt)&&(Zd=UM(ne,ae,[null,null,null]),Mg=Zd[0],Pg=Zd[1],yu=Zd[2],df=Zd[3],uf=Zd[4],Fg=Lt.position.length===0?[ut]:Lt.position,ak=Cn(Fg[0],df),Zu=Cn(Fg[Fg.length-1],uf),iw=function(ll,rc,Ts,_d,P1){var F2=0,F1=0;switch(ll.size){case 0:ll.shape===0?F2=F1=Math.min(Math.abs(rc),Math.abs(rc-_d),Math.abs(Ts),Math.abs(Ts-P1)):ll.shape===1&&(F2=Math.min(Math.abs(rc),Math.abs(rc-_d)),F1=Math.min(Math.abs(Ts),Math.abs(Ts-P1)));break;case 2:if(ll.shape===0)F2=F1=Math.min(Wf(rc,Ts),Wf(rc,Ts-P1),Wf(rc-_d,Ts),Wf(rc-_d,Ts-P1));else if(ll.shape===1){var PA=Math.min(Math.abs(Ts),Math.abs(Ts-P1))/Math.min(Math.abs(rc),Math.abs(rc-_d)),g$=X3(_d,P1,rc,Ts,!0),zM=g$[0],m$=g$[1];F1=PA*(F2=Wf(zM-rc,(m$-Ts)/PA))}break;case 1:ll.shape===0?F2=F1=Math.max(Math.abs(rc),Math.abs(rc-_d),Math.abs(Ts),Math.abs(Ts-P1)):ll.shape===1&&(F2=Math.max(Math.abs(rc),Math.abs(rc-_d)),F1=Math.max(Math.abs(Ts),Math.abs(Ts-P1)));break;case 3:if(ll.shape===0)F2=F1=Math.max(Wf(rc,Ts),Wf(rc,Ts-P1),Wf(rc-_d,Ts),Wf(rc-_d,Ts-P1));else if(ll.shape===1){PA=Math.max(Math.abs(Ts),Math.abs(Ts-P1))/Math.max(Math.abs(rc),Math.abs(rc-_d));var k$=X3(_d,P1,rc,Ts,!1);zM=k$[0],m$=k$[1],F1=PA*(F2=Wf(zM-rc,(m$-Ts)/PA))}}return Array.isArray(ll.size)&&(F2=Cn(ll.size[0],_d),F1=ll.size.length===2?Cn(ll.size[1],P1):F2),[F2,F1]}(Lt,ak,Zu,df,uf),P2=iw[0],MA=iw[1],P2>0&&MA>0&&(_C=Be.ctx.createRadialGradient(Pg+ak,yu+Zu,0,Pg+ak,yu+Zu,P2),kC(Lt.stops,2*P2).forEach(function(ll){return _C.addColorStop(ll.stop,Gd(ll.color))}),Be.path(Mg),Be.ctx.fillStyle=_C,P2!==MA?(SC=ne.bounds.left+.5*ne.bounds.width,Pp=ne.bounds.top+.5*ne.bounds.height,LC=1/(Fp=MA/P2),Be.ctx.save(),Be.ctx.translate(SC,Pp),Be.ctx.transform(1,0,0,Fp,0,0),Be.ctx.translate(-SC,-Pp),Be.ctx.fillRect(Pg,LC*(yu-Pp)+Pp,df,uf*LC),Be.ctx.restore()):Be.ctx.fill())),Dm.label=6;case 6:return ae--,[2]}})},Be=this,Xe=0,Ke=ne.styles.backgroundImage.slice(0).reverse(),qe.label=1;case 1:return Xe0?Ot.style!==2?[3,5]:[4,this.renderDashedDottedBorder(Ot.color,Ot.width,Ke,ne.curves,2)]:[3,11]:[3,13];case 4:return Vt.sent(),[3,11];case 5:return Ot.style!==3?[3,7]:[4,this.renderDashedDottedBorder(Ot.color,Ot.width,Ke,ne.curves,3)];case 6:return Vt.sent(),[3,11];case 7:return Ot.style!==4?[3,9]:[4,this.renderDoubleBorder(Ot.color,Ot.width,Ke,ne.curves)];case 8:return Vt.sent(),[3,11];case 9:return[4,this.renderSolidBorder(Ot.color,Ke,ne.curves)];case 10:Vt.sent(),Vt.label=11;case 11:Ke++,Vt.label=12;case 12:return vt++,[3,3];case 13:return[2]}})})},K.prototype.renderDashedDottedBorder=function(ne,ae,be,Be,Xe){return r(this,void 0,void 0,function(){var Ke,vt,qe,Ot,Lt,Vt,Vn,Dn,$n,Ai,mr,$i,Go,Vo,uo,lr;return o(this,function(rs){return this.ctx.save(),Ke=function(os,ko){switch(ko){case 0:return NM(os.topLeftBorderStroke,os.topRightBorderStroke);case 1:return NM(os.topRightBorderStroke,os.bottomRightBorderStroke);case 2:return NM(os.bottomRightBorderStroke,os.bottomLeftBorderStroke);default:return NM(os.bottomLeftBorderStroke,os.topLeftBorderStroke)}}(Be,be),vt=joe(Be,be),Xe===2&&(this.path(vt),this.ctx.clip()),Ig(vt[0])?(qe=vt[0].start.x,Ot=vt[0].start.y):(qe=vt[0].x,Ot=vt[0].y),Ig(vt[1])?(Lt=vt[1].end.x,Vt=vt[1].end.y):(Lt=vt[1].x,Vt=vt[1].y),Vn=Math.abs(be===0||be===2?qe-Lt:Ot-Vt),this.ctx.beginPath(),Xe===3?this.formatPath(Ke):this.formatPath(vt.slice(0,2)),Dn=ae<3?3*ae:2*ae,$n=ae<3?2*ae:ae,Xe===3&&(Dn=ae,$n=ae),Ai=!0,Vn<=2*Dn?Ai=!1:Vn<=2*Dn+$n?(Dn*=mr=Vn/(2*Dn+$n),$n*=mr):($i=Math.floor((Vn+$n)/(Dn+$n)),Go=(Vn-$i*Dn)/($i-1),$n=(Vo=(Vn-($i+1)*Dn)/$i)<=0||Math.abs($n-Go)1&&arguments[1]!==void 0?arguments[1]:{};if(t.format!=="svg"){var n=t.width,r=n===void 0?e.width.baseVal.value:n,o=t.height,s=o===void 0?e.height.baseVal.value:o,a=t.scale,l=a===void 0?5:a,d=t.quality,u=d===void 0?1:d,h=t.backgroundColor,g=h===void 0?"white":h,m=t.filename,v=m===void 0?"formula":m,f=t.format,k=f===void 0?"png":f,A=t.mimeType,p=A===void 0?"image/png":A,b=e2e(e),w=document.createElement("canvas"),O=w.getContext("2d"),y=new Image;y.src="data:image/svg+xml;base64,".concat(btoa(unescape(encodeURIComponent(b)))),y.onload=function(){w.width=r*l,w.height=s*l,O.fillStyle=g,O.fillRect(0,0,w.width,w.height),O.drawImage(y,0,0,w.width,w.height),w.toBlob(function(_){var S,L=PN.createObjectURL(_);SYt(L,rt(S="".concat(v,".")).call(S,k)),PN.revokeObjectURL(L)},p,u)}}else{var C;(function(_,S){var L=e2e(_),E=new Blob([L],{type:"image/svg+xml;charset=utf-8"}),T=PN.createObjectURL(E);SYt(T,S),PN.revokeObjectURL(T)})(e,(C=t.filename)!==null&&C!==void 0?C:"formula.svg")}}function e2e(e){return new XMLSerializer().serializeToString(e)}function tKo(e,t){var n=XI!==void 0&&GI(e)||e["@@iterator"];if(!n){if(Tf(e)||(n=function(d,u){if(d){var h;if(typeof d=="string")return LYt(d,u);var g=ka(h={}.toString.call(d)).call(h,8,-1);return g==="Object"&&d.constructor&&(g=d.constructor.name),g==="Map"||g==="Set"?Wl(d):g==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(g)?LYt(d,u):void 0}}(e))||t){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. + .`+zE+":after"+tx)},Zye=function(K,ne){var ae=K.ownerDocument;if(ae){var be=ae.createElement("style");be.textContent=ne,K.appendChild(be)}},s$=function(){function Fe(){}return Fe.getOrigin=function(K){var ne=Fe._link;return ne?(ne.href=K,ne.href=ne.href,ne.protocol+ne.hostname+ne.port):"about:blank"},Fe.isSameOrigin=function(K){return Fe.getOrigin(K)===Fe._origin},Fe.setContext=function(K){Fe._link=K.document.createElement("a"),Fe._origin=Fe.getOrigin(K.location.href)},Fe._origin="about:blank",Fe}(),qye=function(){function Fe(K,ne){this.context=K,this._options=ne,this._cache={}}return Fe.prototype.addImage=function(K){var ne=Promise.resolve();return this.has(K)||(PM(K)||sk(K))&&(this._cache[K]=this.loadImage(K)).catch(function(){}),ne},Fe.prototype.match=function(K){return this._cache[K]},Fe.prototype.loadImage=function(K){return r(this,void 0,void 0,function(){var ne,ae,be,Be,Xe=this;return o(this,function(Ke){switch(Ke.label){case 0:return ne=s$.isSameOrigin(K),ae=!l$(K)&&this._options.useCORS===!0&&wu.SUPPORT_CORS_IMAGES&&!ne,be=!l$(K)&&!ne&&!PM(K)&&typeof this._options.proxy=="string"&&wu.SUPPORT_CORS_XHR&&!ae,ne||this._options.allowTaint!==!1||l$(K)||PM(K)||be||ae?(Be=K,be?[4,this.proxy(Be)]:[3,2]):[2];case 1:Be=Ke.sent(),Ke.label=2;case 2:return this.context.logger.debug("Added image "+K.substring(0,256)),[4,new Promise(function(vt,qe){var Ot=new Image;Ot.onload=function(){return vt(Ot)},Ot.onerror=qe,(Foe(Be)||ae)&&(Ot.crossOrigin="anonymous"),Ot.src=Be,Ot.complete===!0&&setTimeout(function(){return vt(Ot)},500),Xe._options.imageTimeout>0&&setTimeout(function(){return qe("Timed out ("+Xe._options.imageTimeout+"ms) loading image")},Xe._options.imageTimeout)})];case 3:return[2,Ke.sent()]}})})},Fe.prototype.has=function(K){return this._cache[K]!==void 0},Fe.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},Fe.prototype.proxy=function(K){var ne=this,ae=this._options.proxy;if(!ae)throw new Error("No proxy defined");var be=K.substring(0,256);return new Promise(function(Be,Xe){var Ke=wu.SUPPORT_RESPONSE_TYPE?"blob":"text",vt=new XMLHttpRequest;vt.onload=function(){if(vt.status===200)if(Ke==="text")Be(vt.response);else{var Lt=new FileReader;Lt.addEventListener("load",function(){return Be(Lt.result)},!1),Lt.addEventListener("error",function(Vt){return Xe(Vt)},!1),Lt.readAsDataURL(vt.response)}else Xe("Failed to proxy resource "+be+" with status code "+vt.status)},vt.onerror=Xe;var qe=ae.indexOf("?")>-1?"&":"?";if(vt.open("GET",""+ae+qe+"url="+encodeURIComponent(K)+"&responseType="+Ke),Ke!=="text"&&vt instanceof XMLHttpRequest&&(vt.responseType=Ke),ne._options.imageTimeout){var Ot=ne._options.imageTimeout;vt.timeout=Ot,vt.ontimeout=function(){return Xe("Timed out ("+Ot+"ms) proxying "+be)}}vt.send()})},Fe}(),Mp=/^data:image\/svg\+xml/i,a$=/^data:image\/.*;base64,/i,yC=/^data:image\/.*/i,sk=function(K){return wu.SUPPORT_SVG_DRAWING||!HE(K)},l$=function(K){return yC.test(K)},Foe=function(K){return a$.test(K)},PM=function(K){return K.substr(0,4)==="blob"},HE=function(K){return K.substr(-3).toLowerCase()==="svg"||Mp.test(K)},Mi=function(){function Fe(K,ne){this.type=0,this.x=K,this.y=ne}return Fe.prototype.add=function(K,ne){return new Fe(this.x+K,this.y+ne)},Fe}(),CC=function(K,ne,ae){return new Mi(K.x+(ne.x-K.x)*ae,K.y+(ne.y-K.y)*ae)},FM=function(){function Fe(K,ne,ae,be){this.type=1,this.start=K,this.startControl=ne,this.endControl=ae,this.end=be}return Fe.prototype.subdivide=function(K,ne){var ae=CC(this.start,this.startControl,K),be=CC(this.startControl,this.endControl,K),Be=CC(this.endControl,this.end,K),Xe=CC(ae,be,K),Ke=CC(be,Be,K),vt=CC(Xe,Ke,K);return ne?new Fe(this.start,ae,Xe,vt):new Fe(vt,Ke,Be,this.end)},Fe.prototype.add=function(K,ne){return new Fe(this.start.add(K,ne),this.startControl.add(K,ne),this.endControl.add(K,ne),this.end.add(K,ne))},Fe.prototype.reverse=function(){return new Fe(this.end,this.endControl,this.startControl,this.start)},Fe}(),Ig=function(K){return K.type===1},Kye=function(K){var ne=K.styles,ae=K.bounds,be=wn(ne.borderTopLeftRadius,ae.width,ae.height),Be=be[0],Xe=be[1],Ke=wn(ne.borderTopRightRadius,ae.width,ae.height),vt=Ke[0],qe=Ke[1],Ot=wn(ne.borderBottomRightRadius,ae.width,ae.height),Lt=Ot[0],Vt=Ot[1],Vn=wn(ne.borderBottomLeftRadius,ae.width,ae.height),Dn=Vn[0],$n=Vn[1],Ai=[];Ai.push((Be+vt)/ae.width),Ai.push((Dn+Lt)/ae.width),Ai.push((Xe+$n)/ae.height),Ai.push((qe+Vt)/ae.height);var mr=Math.max.apply(Math,Ai);mr>1&&(Be/=mr,Xe/=mr,vt/=mr,qe/=mr,Lt/=mr,Vt/=mr,Dn/=mr,$n/=mr);var $i=ae.width-vt,Go=ae.height-Vt,Vo=ae.width-Lt,ho=ae.height-$n,lr=ne.borderTopWidth,rs=ne.borderRightWidth,os=ne.borderBottomWidth,ko=ne.borderLeftWidth,Zd=Cn(ne.paddingTop,K.bounds.width),Mg=Cn(ne.paddingRight,K.bounds.width),Pg=Cn(ne.paddingBottom,K.bounds.width),yu=Cn(ne.paddingLeft,K.bounds.width);this.topLeftBorderDoubleOuterBox=Be>0||Xe>0?xc(ae.left+ko/3,ae.top+lr/3,Be-ko/3,Xe-lr/3,al.TOP_LEFT):new Mi(ae.left+ko/3,ae.top+lr/3),this.topRightBorderDoubleOuterBox=Be>0||Xe>0?xc(ae.left+$i,ae.top+lr/3,vt-rs/3,qe-lr/3,al.TOP_RIGHT):new Mi(ae.left+ae.width-rs/3,ae.top+lr/3),this.bottomRightBorderDoubleOuterBox=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt-rs/3,Vt-os/3,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-rs/3,ae.top+ae.height-os/3),this.bottomLeftBorderDoubleOuterBox=Dn>0||$n>0?xc(ae.left+ko/3,ae.top+ho,Dn-ko/3,$n-os/3,al.BOTTOM_LEFT):new Mi(ae.left+ko/3,ae.top+ae.height-os/3),this.topLeftBorderDoubleInnerBox=Be>0||Xe>0?xc(ae.left+2*ko/3,ae.top+2*lr/3,Be-2*ko/3,Xe-2*lr/3,al.TOP_LEFT):new Mi(ae.left+2*ko/3,ae.top+2*lr/3),this.topRightBorderDoubleInnerBox=Be>0||Xe>0?xc(ae.left+$i,ae.top+2*lr/3,vt-2*rs/3,qe-2*lr/3,al.TOP_RIGHT):new Mi(ae.left+ae.width-2*rs/3,ae.top+2*lr/3),this.bottomRightBorderDoubleInnerBox=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt-2*rs/3,Vt-2*os/3,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-2*rs/3,ae.top+ae.height-2*os/3),this.bottomLeftBorderDoubleInnerBox=Dn>0||$n>0?xc(ae.left+2*ko/3,ae.top+ho,Dn-2*ko/3,$n-2*os/3,al.BOTTOM_LEFT):new Mi(ae.left+2*ko/3,ae.top+ae.height-2*os/3),this.topLeftBorderStroke=Be>0||Xe>0?xc(ae.left+ko/2,ae.top+lr/2,Be-ko/2,Xe-lr/2,al.TOP_LEFT):new Mi(ae.left+ko/2,ae.top+lr/2),this.topRightBorderStroke=Be>0||Xe>0?xc(ae.left+$i,ae.top+lr/2,vt-rs/2,qe-lr/2,al.TOP_RIGHT):new Mi(ae.left+ae.width-rs/2,ae.top+lr/2),this.bottomRightBorderStroke=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt-rs/2,Vt-os/2,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-rs/2,ae.top+ae.height-os/2),this.bottomLeftBorderStroke=Dn>0||$n>0?xc(ae.left+ko/2,ae.top+ho,Dn-ko/2,$n-os/2,al.BOTTOM_LEFT):new Mi(ae.left+ko/2,ae.top+ae.height-os/2),this.topLeftBorderBox=Be>0||Xe>0?xc(ae.left,ae.top,Be,Xe,al.TOP_LEFT):new Mi(ae.left,ae.top),this.topRightBorderBox=vt>0||qe>0?xc(ae.left+$i,ae.top,vt,qe,al.TOP_RIGHT):new Mi(ae.left+ae.width,ae.top),this.bottomRightBorderBox=Lt>0||Vt>0?xc(ae.left+Vo,ae.top+Go,Lt,Vt,al.BOTTOM_RIGHT):new Mi(ae.left+ae.width,ae.top+ae.height),this.bottomLeftBorderBox=Dn>0||$n>0?xc(ae.left,ae.top+ho,Dn,$n,al.BOTTOM_LEFT):new Mi(ae.left,ae.top+ae.height),this.topLeftPaddingBox=Be>0||Xe>0?xc(ae.left+ko,ae.top+lr,Math.max(0,Be-ko),Math.max(0,Xe-lr),al.TOP_LEFT):new Mi(ae.left+ko,ae.top+lr),this.topRightPaddingBox=vt>0||qe>0?xc(ae.left+Math.min($i,ae.width-rs),ae.top+lr,$i>ae.width+rs?0:Math.max(0,vt-rs),Math.max(0,qe-lr),al.TOP_RIGHT):new Mi(ae.left+ae.width-rs,ae.top+lr),this.bottomRightPaddingBox=Lt>0||Vt>0?xc(ae.left+Math.min(Vo,ae.width-ko),ae.top+Math.min(Go,ae.height-os),Math.max(0,Lt-rs),Math.max(0,Vt-os),al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-rs,ae.top+ae.height-os),this.bottomLeftPaddingBox=Dn>0||$n>0?xc(ae.left+ko,ae.top+Math.min(ho,ae.height-os),Math.max(0,Dn-ko),Math.max(0,$n-os),al.BOTTOM_LEFT):new Mi(ae.left+ko,ae.top+ae.height-os),this.topLeftContentBox=Be>0||Xe>0?xc(ae.left+ko+yu,ae.top+lr+Zd,Math.max(0,Be-(ko+yu)),Math.max(0,Xe-(lr+Zd)),al.TOP_LEFT):new Mi(ae.left+ko+yu,ae.top+lr+Zd),this.topRightContentBox=vt>0||qe>0?xc(ae.left+Math.min($i,ae.width+ko+yu),ae.top+lr+Zd,$i>ae.width+ko+yu?0:vt-ko+yu,qe-(lr+Zd),al.TOP_RIGHT):new Mi(ae.left+ae.width-(rs+Mg),ae.top+lr+Zd),this.bottomRightContentBox=Lt>0||Vt>0?xc(ae.left+Math.min(Vo,ae.width-(ko+yu)),ae.top+Math.min(Go,ae.height+lr+Zd),Math.max(0,Lt-(rs+Mg)),Vt-(os+Pg),al.BOTTOM_RIGHT):new Mi(ae.left+ae.width-(rs+Mg),ae.top+ae.height-(os+Pg)),this.bottomLeftContentBox=Dn>0||$n>0?xc(ae.left+ko+yu,ae.top+ho,Math.max(0,Dn-(ko+yu)),$n-(os+Pg),al.BOTTOM_LEFT):new Mi(ae.left+ko+yu,ae.top+ae.height-(os+Pg))};(function(Fe){Fe[Fe.TOP_LEFT=0]="TOP_LEFT",Fe[Fe.TOP_RIGHT=1]="TOP_RIGHT",Fe[Fe.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",Fe[Fe.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(al||(al={}));var xc=function(K,ne,ae,be,Be){var Xe=(Math.sqrt(2)-1)/3*4,Ke=ae*Xe,vt=be*Xe,qe=K+ae,Ot=ne+be;switch(Be){case al.TOP_LEFT:return new FM(new Mi(K,Ot),new Mi(K,Ot-vt),new Mi(qe-Ke,ne),new Mi(qe,ne));case al.TOP_RIGHT:return new FM(new Mi(K,ne),new Mi(K+Ke,ne),new Mi(qe,Ot-vt),new Mi(qe,Ot));case al.BOTTOM_RIGHT:return new FM(new Mi(qe,ne),new Mi(qe,ne+vt),new Mi(K+Ke,Ot),new Mi(K,Ot));case al.BOTTOM_LEFT:default:return new FM(new Mi(qe,Ot),new Mi(qe-Ke,Ot),new Mi(K,ne+vt),new Mi(K,ne))}},Ou=function(K){return[K.topLeftBorderBox,K.topRightBorderBox,K.bottomRightBorderBox,K.bottomLeftBorderBox]},nx=function(K){return[K.topLeftPaddingBox,K.topRightPaddingBox,K.bottomRightPaddingBox,K.bottomLeftPaddingBox]},Noe=function(K,ne,ae){this.offsetX=K,this.offsetY=ne,this.matrix=ae,this.type=0,this.target=6},M1=function(K,ne){this.path=K,this.target=ne,this.type=1},c$=function(K){this.opacity=K,this.type=2,this.target=6},$E=function(K){return K.type===1},tw=function(K,ne){return K.length===ne.length&&K.some(function(ae,be){return ae===ne[be]})},d$=function(K){this.element=K,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Vf=function(){function Fe(K,ne){if(this.container=K,this.parent=ne,this.effects=[],this.curves=new Kye(this.container),this.container.styles.opacity<1&&this.effects.push(new c$(this.container.styles.opacity)),this.container.styles.transform!==null){var ae=this.container.bounds.left+this.container.styles.transformOrigin[0].number,be=this.container.bounds.top+this.container.styles.transformOrigin[1].number,Be=this.container.styles.transform;this.effects.push(new Noe(ae,be,Be))}if(this.container.styles.overflowX!==0){var Xe=Ou(this.curves),Ke=nx(this.curves);tw(Xe,Ke)?this.effects.push(new M1(Xe,6)):(this.effects.push(new M1(Xe,2)),this.effects.push(new M1(Ke,4)))}}return Fe.prototype.getEffects=function(K){for(var ne=[2,3].indexOf(this.container.styles.position)===-1,ae=this.parent,be=this.effects.slice(0);ae;){var Be=ae.effects.filter(function(vt){return!$E(vt)});if(ne||ae.container.styles.position!==0||!ae.parent){if(be.unshift.apply(be,Be),ne=[2,3].indexOf(ae.container.styles.position)===-1,ae.container.styles.overflowX!==0){var Xe=Ou(ae.curves),Ke=nx(ae.curves);tw(Xe,Ke)||be.unshift(new M1(Ke,6))}}else be.unshift.apply(be,Be);ae=ae.parent}return be.filter(function(vt){return Xu(vt.target,K)})},Fe}(),u$=function Fe(K,ne,ae,be){K.container.elements.forEach(function(Be){var Xe=Xu(Be.flags,4),Ke=Xu(Be.flags,2),vt=new Vf(Be,K);Xu(Be.styles.display,2048)&&be.push(vt);var qe=Xu(Be.flags,8)?[]:be;if(Xe||Ke){var Ot=Xe||Be.styles.isPositioned()?ae:ne,Lt=new d$(vt);if(Be.styles.isPositioned()||Be.styles.opacity<1||Be.styles.isTransformed()){var Vt=Be.styles.zIndex.order;if(Vt<0){var Vn=0;Ot.negativeZIndex.some(function($n,Ai){return Vt>$n.element.container.styles.zIndex.order?(Vn=Ai,!1):Vn>0}),Ot.negativeZIndex.splice(Vn,0,Lt)}else if(Vt>0){var Dn=0;Ot.positiveZIndex.some(function($n,Ai){return Vt>=$n.element.container.styles.zIndex.order?(Dn=Ai+1,!1):Dn>0}),Ot.positiveZIndex.splice(Dn,0,Lt)}else Ot.zeroOrAutoZIndexOrTransformedOrOpacity.push(Lt)}else Be.styles.isFloating()?Ot.nonPositionedFloats.push(Lt):Ot.nonPositionedInlineLevel.push(Lt);Fe(vt,Lt,Xe?Lt:ae,qe)}else Be.styles.isInlineLevel()?ne.inlineLevel.push(vt):ne.nonInlineLevel.push(vt),Fe(vt,ne,ae,qe);Xu(Be.flags,8)&&Uoe(Be,qe)})},Uoe=function(K,ne){for(var ae=K instanceof JH?K.start:1,be=K instanceof JH&&K.reversed,Be=0;Be0&&ne.intrinsicHeight>0){var Be=nw(ne),Xe=nx(ae);this.path(Xe),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(be,0,0,ne.intrinsicWidth,ne.intrinsicHeight,Be.left,Be.top,Be.width,Be.height),this.ctx.restore()}},K.prototype.renderNodeContent=function(ne){return r(this,void 0,void 0,function(){var ae,be,Be,Xe,Ke,vt,qe,Ot,Lt,Vt,Vn,Dn,$n,Ai,mr,$i,Go,Vo;return o(this,function(ho){switch(ho.label){case 0:this.applyEffects(ne.getEffects(4)),ae=ne.container,be=ne.curves,Be=ae.styles,Xe=0,Ke=ae.textNodes,ho.label=1;case 1:return Xe0&&uf>0&&(ko=Be.ctx.createPattern(lr,"repeat"),Be.renderRepeat(Mg,ko,ak,Zu))):function(ll){return ll.type===2}(Lt)&&(Zd=UM(ne,ae,[null,null,null]),Mg=Zd[0],Pg=Zd[1],yu=Zd[2],df=Zd[3],uf=Zd[4],Fg=Lt.position.length===0?[ut]:Lt.position,ak=Cn(Fg[0],df),Zu=Cn(Fg[Fg.length-1],uf),iw=function(ll,rc,Ts,_d,P1){var F2=0,F1=0;switch(ll.size){case 0:ll.shape===0?F2=F1=Math.min(Math.abs(rc),Math.abs(rc-_d),Math.abs(Ts),Math.abs(Ts-P1)):ll.shape===1&&(F2=Math.min(Math.abs(rc),Math.abs(rc-_d)),F1=Math.min(Math.abs(Ts),Math.abs(Ts-P1)));break;case 2:if(ll.shape===0)F2=F1=Math.min(Wf(rc,Ts),Wf(rc,Ts-P1),Wf(rc-_d,Ts),Wf(rc-_d,Ts-P1));else if(ll.shape===1){var PA=Math.min(Math.abs(Ts),Math.abs(Ts-P1))/Math.min(Math.abs(rc),Math.abs(rc-_d)),g$=X3(_d,P1,rc,Ts,!0),zM=g$[0],m$=g$[1];F1=PA*(F2=Wf(zM-rc,(m$-Ts)/PA))}break;case 1:ll.shape===0?F2=F1=Math.max(Math.abs(rc),Math.abs(rc-_d),Math.abs(Ts),Math.abs(Ts-P1)):ll.shape===1&&(F2=Math.max(Math.abs(rc),Math.abs(rc-_d)),F1=Math.max(Math.abs(Ts),Math.abs(Ts-P1)));break;case 3:if(ll.shape===0)F2=F1=Math.max(Wf(rc,Ts),Wf(rc,Ts-P1),Wf(rc-_d,Ts),Wf(rc-_d,Ts-P1));else if(ll.shape===1){PA=Math.max(Math.abs(Ts),Math.abs(Ts-P1))/Math.max(Math.abs(rc),Math.abs(rc-_d));var k$=X3(_d,P1,rc,Ts,!1);zM=k$[0],m$=k$[1],F1=PA*(F2=Wf(zM-rc,(m$-Ts)/PA))}}return Array.isArray(ll.size)&&(F2=Cn(ll.size[0],_d),F1=ll.size.length===2?Cn(ll.size[1],P1):F2),[F2,F1]}(Lt,ak,Zu,df,uf),P2=iw[0],MA=iw[1],P2>0&&MA>0&&(_C=Be.ctx.createRadialGradient(Pg+ak,yu+Zu,0,Pg+ak,yu+Zu,P2),kC(Lt.stops,2*P2).forEach(function(ll){return _C.addColorStop(ll.stop,Gd(ll.color))}),Be.path(Mg),Be.ctx.fillStyle=_C,P2!==MA?(SC=ne.bounds.left+.5*ne.bounds.width,Pp=ne.bounds.top+.5*ne.bounds.height,LC=1/(Fp=MA/P2),Be.ctx.save(),Be.ctx.translate(SC,Pp),Be.ctx.transform(1,0,0,Fp,0,0),Be.ctx.translate(-SC,-Pp),Be.ctx.fillRect(Pg,LC*(yu-Pp)+Pp,df,uf*LC),Be.ctx.restore()):Be.ctx.fill())),Dm.label=6;case 6:return ae--,[2]}})},Be=this,Xe=0,Ke=ne.styles.backgroundImage.slice(0).reverse(),qe.label=1;case 1:return Xe0?Ot.style!==2?[3,5]:[4,this.renderDashedDottedBorder(Ot.color,Ot.width,Ke,ne.curves,2)]:[3,11]:[3,13];case 4:return Vt.sent(),[3,11];case 5:return Ot.style!==3?[3,7]:[4,this.renderDashedDottedBorder(Ot.color,Ot.width,Ke,ne.curves,3)];case 6:return Vt.sent(),[3,11];case 7:return Ot.style!==4?[3,9]:[4,this.renderDoubleBorder(Ot.color,Ot.width,Ke,ne.curves)];case 8:return Vt.sent(),[3,11];case 9:return[4,this.renderSolidBorder(Ot.color,Ke,ne.curves)];case 10:Vt.sent(),Vt.label=11;case 11:Ke++,Vt.label=12;case 12:return vt++,[3,3];case 13:return[2]}})})},K.prototype.renderDashedDottedBorder=function(ne,ae,be,Be,Xe){return r(this,void 0,void 0,function(){var Ke,vt,qe,Ot,Lt,Vt,Vn,Dn,$n,Ai,mr,$i,Go,Vo,ho,lr;return o(this,function(rs){return this.ctx.save(),Ke=function(os,ko){switch(ko){case 0:return NM(os.topLeftBorderStroke,os.topRightBorderStroke);case 1:return NM(os.topRightBorderStroke,os.bottomRightBorderStroke);case 2:return NM(os.bottomRightBorderStroke,os.bottomLeftBorderStroke);default:return NM(os.bottomLeftBorderStroke,os.topLeftBorderStroke)}}(Be,be),vt=joe(Be,be),Xe===2&&(this.path(vt),this.ctx.clip()),Ig(vt[0])?(qe=vt[0].start.x,Ot=vt[0].start.y):(qe=vt[0].x,Ot=vt[0].y),Ig(vt[1])?(Lt=vt[1].end.x,Vt=vt[1].end.y):(Lt=vt[1].x,Vt=vt[1].y),Vn=Math.abs(be===0||be===2?qe-Lt:Ot-Vt),this.ctx.beginPath(),Xe===3?this.formatPath(Ke):this.formatPath(vt.slice(0,2)),Dn=ae<3?3*ae:2*ae,$n=ae<3?2*ae:ae,Xe===3&&(Dn=ae,$n=ae),Ai=!0,Vn<=2*Dn?Ai=!1:Vn<=2*Dn+$n?(Dn*=mr=Vn/(2*Dn+$n),$n*=mr):($i=Math.floor((Vn+$n)/(Dn+$n)),Go=(Vn-$i*Dn)/($i-1),$n=(Vo=(Vn-($i+1)*Dn)/$i)<=0||Math.abs($n-Go)1&&arguments[1]!==void 0?arguments[1]:{};if(t.format!=="svg"){var n=t.width,r=n===void 0?e.width.baseVal.value:n,o=t.height,s=o===void 0?e.height.baseVal.value:o,a=t.scale,l=a===void 0?5:a,d=t.quality,u=d===void 0?1:d,h=t.backgroundColor,g=h===void 0?"white":h,m=t.filename,v=m===void 0?"formula":m,f=t.format,k=f===void 0?"png":f,A=t.mimeType,p=A===void 0?"image/png":A,b=e2e(e),w=document.createElement("canvas"),O=w.getContext("2d"),y=new Image;y.src="data:image/svg+xml;base64,".concat(btoa(unescape(encodeURIComponent(b)))),y.onload=function(){w.width=r*l,w.height=s*l,O.fillStyle=g,O.fillRect(0,0,w.width,w.height),O.drawImage(y,0,0,w.width,w.height),w.toBlob(function(_){var S,L=PN.createObjectURL(_);SYt(L,rt(S="".concat(v,".")).call(S,k)),PN.revokeObjectURL(L)},p,u)}}else{var C;(function(_,S){var L=e2e(_),E=new Blob([L],{type:"image/svg+xml;charset=utf-8"}),T=PN.createObjectURL(E);SYt(T,S),PN.revokeObjectURL(T)})(e,(C=t.filename)!==null&&C!==void 0?C:"formula.svg")}}function e2e(e){return new XMLSerializer().serializeToString(e)}function tKo(e,t){var n=XI!==void 0&&GI(e)||e["@@iterator"];if(!n){if(Tf(e)||(n=function(d,u){if(d){var h;if(typeof d=="string")return LYt(d,u);var g=ka(h={}.toString.call(d)).call(h,8,-1);return g==="Object"&&d.constructor&&(g=d.constructor.name),g==="Map"||g==="Set"?Wl(d):g==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(g)?LYt(d,u):void 0}}(e))||t){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return a=u.done,u},e:function(u){l=!0,s=u},f:function(){try{a||n.return==null||n.return()}finally{if(l)throw s}}}}function LYt(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n3&&arguments[3]!==void 0?arguments[3]:"block",o=document.createElement("img");return o.src=e,o.width=t,o.height=n,o.style.maxWidth="100%",o.style.height="auto",o.style.display=r,o}var iKo=['[data-type="mermaid"]','[data-type="mathBlock"]'];function rKo(e,t,n){return new e3(function(r,o){try{var s=e2e(e),a=document.createElement("canvas"),l=a.getContext("2d");a.width=2*t,a.height=2*n;var d=new Image;d.onload=function(){try{l&&l.drawImage(d,0,0,a.width,a.height),r(a.toDataURL("image/png"))}catch(u){z0.log("SVG 绘制到 Canvas 失败:",u),o(u)}},d.onerror=function(u){z0.log("SVG 图片加载失败:",u),o(u)},d.src="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(s))}catch(u){o(u)}})}function oKo(e,t){return LXe.apply(this,arguments)}function LXe(){return LXe=j6(d1.mark(function e(t,n){var r,o,s,a,l,d;return d1.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:if((r=t.querySelector("svg"))instanceof SVGSVGElement){u.next=3;break}return u.abrupt("return",!1);case 3:return o=r.getBoundingClientRect(),s=Math.max(1,Math.round(o.width)),a=Math.max(1,Math.round(o.height)),u.next=8,rKo(r,s,a);case 8:return l=u.sent,d=nKo(l,s,a,n),t.replaceWith(d),u.abrupt("return",!0);case 12:case"end":return u.stop()}},e)})),LXe.apply(this,arguments)}function sKo(e){return xXe.apply(this,arguments)}function xXe(){return xXe=j6(d1.mark(function e(t){var n,r,o,s,a,l,d,u,h;return d1.wrap(function(g){for(;;)switch(g.prev=g.next){case 0:n=document.createElement("div"),CD(n.style,{position:"fixed",left:"-100000px",top:"0",visibility:"hidden",pointerEvents:"none",width:"".concat(document.documentElement.clientWidth||document.body.clientWidth||1e3,"px")}),(r=document.createElement("div")).className="cherry-export-word-container",r.innerHTML=t,n.appendChild(r),document.body.appendChild(n),o=Wl(r.querySelectorAll(iKo.join(","))),s=tKo(o),g.prev=9,s.s();case 11:if((a=s.n()).done){g.next=25;break}return l=a.value,g.prev=13,d=l.getAttribute("data-type"),u=d==="mathBlock"?"inline-block":"block",g.next=18,oKo(l,u);case 18:g.next=23;break;case 20:g.prev=20,g.t0=g.catch(13),z0.log("[exportWord] 处理节点失败,已跳过该节点:",g.t0);case 23:g.next=11;break;case 25:g.next=30;break;case 27:g.prev=27,g.t1=g.catch(9),s.e(g.t1);case 30:return g.prev=30,s.f(),g.finish(30);case 33:return h=r.innerHTML,n.remove(),g.abrupt("return",h);case 36:case"end":return g.stop()}},e,null,[[9,27,30,33],[13,20]])})),xXe.apply(this,arguments)}function aKo(e,t){return Tzn.apply(this,arguments)}function Tzn(){return(Tzn=j6(d1.mark(function e(t,n){var r,o,s,a;return d1.wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return o=t,l.prev=1,l.next=4,sKo(t);case 4:o=l.sent,l.next=10;break;case 7:l.prev=7,l.t0=l.catch(1),z0.warn("[exportWord] 预处理失败,降级为原始 HTML:",l.t0);case 10:if(s=rt(r=` @@ -15449,7 +15449,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * @tdesign-vue-next/chat v0.5.1 * (c) 2026 tdesign * @license MIT - */var JGn=Cm(VXn),eYn=Cm(B0s);Cm(OGn);Cm(pGe);Cm(yGn);Cm(P0s,"t-chat-thinking");Cm(T2s,"t-chatbot");var tYn=Cm(WXn,"t-chat-message");Cm(AGe);Cm(Q2s,"t-chat-search-content");Cm(D2s,"t-chat-suggestion-content");Cm(AGn,"t-chat-markdown");Cm(VXn);Cm(OGn);Cm(T0s);Cm(bGe);Cm(x0s);const wGe={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(e,{emit:t}){const n=t,r=e,o=TAn(),s=fe([]),a=X(()=>s.value.reduce((J,oe)=>(J[~~oe.id]=oe)&&J,{})),l=X(()=>s.value.length),d=fe(null),u=fe(!1),h=fe({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),g=fe({splitter:null,timeoutId:null}),m=X(()=>({[`splitpanes splitpanes--${r.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":h.value.dragging})),v=()=>{document.addEventListener("mousemove",A,{passive:!1}),document.addEventListener("mouseup",p),"ontouchstart"in window&&(document.addEventListener("touchmove",A,{passive:!1}),document.addEventListener("touchend",p))},f=()=>{document.removeEventListener("mousemove",A,{passive:!1}),document.removeEventListener("mouseup",p),"ontouchstart"in window&&(document.removeEventListener("touchmove",A,{passive:!1}),document.removeEventListener("touchend",p))},k=(J,oe)=>{const se=J.target.closest(".splitpanes__splitter");if(se){const{left:le,top:ue}=se.getBoundingClientRect(),{clientX:ee,clientY:de}="ontouchstart"in window&&J.touches?J.touches[0]:J;h.value.cursorOffset=r.horizontal?de-ue:ee-le}v(),h.value.mouseDown=!0,h.value.activeSplitter=oe},A=J=>{h.value.mouseDown&&(J.preventDefault(),h.value.dragging=!0,requestAnimationFrame(()=>{_(y(J)),q("resize",{event:J},!0)}))},p=J=>{h.value.dragging&&(window.getSelection().removeAllRanges(),q("resized",{event:J},!0)),h.value.mouseDown=!1,h.value.activeSplitter=null,setTimeout(()=>{h.value.dragging=!1,f()},100)},b=(J,oe)=>{"ontouchstart"in window&&(J.preventDefault(),g.value.splitter===oe?(clearTimeout(g.value.timeoutId),g.value.timeoutId=null,w(J,oe),g.value.splitter=null):(g.value.splitter=oe,g.value.timeoutId=setTimeout(()=>g.value.splitter=null,500))),h.value.dragging||q("splitter-click",{event:J,index:oe},!0)},w=(J,oe)=>{if(q("splitter-dblclick",{event:J,index:oe},!0),r.maximizePanes){let se=0;s.value=s.value.map((le,ue)=>(le.size=ue===oe?le.max:le.min,ue!==oe&&(se+=le.min),le)),s.value[oe].size-=se,q("pane-maximize",{event:J,index:oe,pane:s.value[oe]}),q("resized",{event:J,index:oe},!0)}},O=(J,oe)=>{q("pane-click",{event:J,index:a.value[oe].index,pane:a.value[oe]})},y=J=>{const oe=d.value.getBoundingClientRect(),{clientX:se,clientY:le}="ontouchstart"in window&&J.touches?J.touches[0]:J;return{x:se-(r.horizontal?0:h.value.cursorOffset)-oe.left,y:le-(r.horizontal?h.value.cursorOffset:0)-oe.top}},C=J=>{J=J[r.horizontal?"y":"x"];const oe=d.value[r.horizontal?"clientHeight":"clientWidth"];return r.rtl&&!r.horizontal&&(J=oe-J),J*100/oe},_=J=>{const oe=h.value.activeSplitter;let se={prevPanesSize:L(oe),nextPanesSize:E(oe),prevReachedMinPanes:0,nextReachedMinPanes:0};const le=0+(r.pushOtherPanes?0:se.prevPanesSize),ue=100-(r.pushOtherPanes?0:se.nextPanesSize),ee=Math.max(Math.min(C(J),ue),le);let de=[oe,oe+1],z=s.value[de[0]]||null,Y=s.value[de[1]]||null;const ie=z.max<100&&ee>=z.max+se.prevPanesSize,te=Y.max<100&&ee<=100-(Y.max+E(oe+1));if(ie||te){ie?(z.size=z.max,Y.size=Math.max(100-z.max-se.prevPanesSize-se.nextPanesSize,0)):(z.size=Math.max(100-Y.max-se.prevPanesSize-E(oe+1),0),Y.size=Y.max);return}if(r.pushOtherPanes){const Z=S(se,ee);if(!Z)return;({sums:se,panesToResize:de}=Z),z=s.value[de[0]]||null,Y=s.value[de[1]]||null}z!==null&&(z.size=Math.min(Math.max(ee-se.prevPanesSize-se.prevReachedMinPanes,z.min),z.max)),Y!==null&&(Y.size=Math.min(Math.max(100-ee-se.nextPanesSize-se.nextReachedMinPanes,Y.min),Y.max))},S=(J,oe)=>{const se=h.value.activeSplitter,le=[se,se+1];return oe{ee>le[0]&&ee<=se&&(ue.size=ue.min,J.prevReachedMinPanes+=ue.min)}),J.prevPanesSize=L(le[0]),le[0]===void 0)?(J.prevReachedMinPanes=0,s.value[0].size=s.value[0].min,s.value.forEach((ue,ee)=>{ee>0&&ee<=se&&(ue.size=ue.min,J.prevReachedMinPanes+=ue.min)}),s.value[le[1]].size=100-J.prevReachedMinPanes-s.value[0].min-J.prevPanesSize-J.nextPanesSize,null):oe>100-J.nextPanesSize-s.value[le[1]].min&&(le[1]=D(se).index,J.nextReachedMinPanes=0,le[1]>se+1&&s.value.forEach((ue,ee)=>{ee>se&&ee{ee=se+1&&(ue.size=ue.min,J.nextReachedMinPanes+=ue.min)}),s.value[le[0]].size=100-J.prevPanesSize-E(le[0]-1),null):{sums:J,panesToResize:le}},L=J=>s.value.reduce((oe,se,le)=>oe+(les.value.reduce((oe,se,le)=>oe+(le>J+1?se.size:0),0),T=J=>[...s.value].reverse().find(oe=>oe.indexoe.min)||{},D=J=>s.value.find(oe=>oe.index>J+1&&oe.size>oe.min)||{},P=()=>{var J;const oe=Array.from(((J=d.value)==null?void 0:J.children)||[]);for(const se of oe){const le=se.classList.contains("splitpanes__pane"),ue=se.classList.contains("splitpanes__splitter");!le&&!ue&&(se.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},Q=(J,oe,se=!1)=>{const le=J-1,ue=document.createElement("div");ue.classList.add("splitpanes__splitter"),se||(ue.onmousedown=ee=>k(ee,le),typeof window<"u"&&"ontouchstart"in window&&(ue.ontouchstart=ee=>k(ee,le)),ue.onclick=ee=>b(ee,le+1)),ue.ondblclick=ee=>w(ee,le+1),oe.parentNode.insertBefore(ue,oe)},M=J=>{J.onmousedown=void 0,J.onclick=void 0,J.ondblclick=void 0,J.remove()},B=()=>{var J;const oe=Array.from(((J=d.value)==null?void 0:J.children)||[]);for(const le of oe)le.className.includes("splitpanes__splitter")&&M(le);let se=0;for(const le of oe)le.className.includes("splitpanes__pane")&&(!se&&r.firstSplitter?Q(se,le,!0):se&&Q(se,le),se++)},R=({uid:J,...oe})=>{const se=a.value[J];for(const[le,ue]of Object.entries(oe))se[le]=ue},I=J=>{var oe;let se=-1;Array.from(((oe=d.value)==null?void 0:oe.children)||[]).some(le=>(le.className.includes("splitpanes__pane")&&se++,le.isSameNode(J.el))),s.value.splice(se,0,{...J,index:se}),s.value.forEach((le,ue)=>le.index=ue),u.value&&ai(()=>{B(),j({addedPane:s.value[se]}),q("pane-add",{pane:s.value[se]})})},F=J=>{const oe=s.value.findIndex(le=>le.id===J);s.value[oe].el=null;const se=s.value.splice(oe,1)[0];s.value.forEach((le,ue)=>le.index=ue),ai(()=>{B(),q("pane-remove",{pane:se}),j({removedPane:{...se}})})},j=(J={})=>{!J.addedPane&&!J.removedPane?H():s.value.some(oe=>oe.givenSize!==null||oe.min||oe.max<100)?$(J):W(),u.value&&q("resized")},W=()=>{const J=100/l.value;let oe=0;const se=[],le=[];for(const ue of s.value)ue.size=Math.max(Math.min(J,ue.max),ue.min),oe-=ue.size,ue.size>=ue.max&&se.push(ue.id),ue.size<=ue.min&&le.push(ue.id);oe>.1&&G(oe,se,le)},H=()=>{let J=100;const oe=[],se=[];let le=0;for(const ee of s.value)J-=ee.size,ee.givenSize!==null&&le++,ee.size>=ee.max&&oe.push(ee.id),ee.size<=ee.min&&se.push(ee.id);let ue=100;if(J>.1){for(const ee of s.value)ee.givenSize===null&&(ee.size=Math.max(Math.min(J/(l.value-le),ee.max),ee.min)),ue-=ee.size;ue>.1&&G(ue,oe,se)}},$=({addedPane:J,removedPane:oe}={})=>{let se=100/l.value,le=0;const ue=[],ee=[];((J==null?void 0:J.givenSize)??null)!==null&&(se=(100-J.givenSize)/(l.value-1));for(const de of s.value)le-=de.size,de.size>=de.max&&ue.push(de.id),de.size<=de.min&&ee.push(de.id);if(!(Math.abs(le)<.1)){for(const de of s.value)(J==null?void 0:J.givenSize)!==null&&(J==null?void 0:J.id)===de.id||(de.size=Math.max(Math.min(se,de.max),de.min)),le-=de.size,de.size>=de.max&&ue.push(de.id),de.size<=de.min&&ee.push(de.id);le>.1&&G(le,ue,ee)}},G=(J,oe,se)=>{let le;J>0?le=J/(l.value-oe.length):le=J/(l.value-se.length),s.value.forEach((ue,ee)=>{if(J>0&&!oe.includes(ue.id)){const de=Math.max(Math.min(ue.size+le,ue.max),ue.min),z=de-ue.size;J-=z,ue.size=de}else if(!se.includes(ue.id)){const de=Math.max(Math.min(ue.size+le,ue.max),ue.min),z=de-ue.size;J-=z,ue.size=de}}),Math.abs(J)>.1&&ai(()=>{u.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},q=(J,oe=void 0,se=!1)=>{const le=(oe==null?void 0:oe.index)??h.value.activeSplitter??null;n(J,{...oe,...le!==null&&{index:le},...se&&le!==null&&{prevPane:s.value[le-(r.firstSplitter?1:0)],nextPane:s.value[le+(r.firstSplitter?0:1)]},panes:s.value.map(ue=>({min:ue.min,max:ue.max,size:ue.size}))})};pt(()=>r.firstSplitter,()=>B()),An(()=>{P(),B(),j(),q("ready"),u.value=!0}),qs(()=>u.value=!1);const re=()=>{var J;return xn("div",{ref:d,class:m.value},(J=o.default)==null?void 0:J.call(o))};return Yi("panes",s),Yi("indexedPanes",a),Yi("horizontal",X(()=>r.horizontal)),Yi("requestUpdate",R),Yi("onPaneAdd",I),Yi("onPaneRemove",F),Yi("onPaneClick",O),(J,oe)=>(xe(),Ut(Bd(re)))}},PT={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){var t;const n=e,r=bt("requestUpdate"),o=bt("onPaneAdd"),s=bt("horizontal"),a=bt("onPaneRemove"),l=bt("onPaneClick"),d=(t=ps())==null?void 0:t.uid,u=bt("indexedPanes"),h=X(()=>u.value[d]),g=fe(null),m=X(()=>{const A=isNaN(n.size)||n.size===void 0?0:parseFloat(n.size);return Math.max(Math.min(A,f.value),v.value)}),v=X(()=>{const A=parseFloat(n.minSize);return isNaN(A)?0:A}),f=X(()=>{const A=parseFloat(n.maxSize);return isNaN(A)?100:A}),k=X(()=>{var A;return`${s.value?"height":"width"}: ${(A=h.value)==null?void 0:A.size}%`});return pt(()=>m.value,A=>r({uid:d,size:A})),pt(()=>v.value,A=>r({uid:d,min:A})),pt(()=>f.value,A=>r({uid:d,max:A})),An(()=>{o({id:d,el:g.value,min:v.value,max:f.value,givenSize:n.size===void 0?null:m.value,size:m.value})}),qs(()=>a(d)),(A,p)=>(xe(),Ge("div",{ref_key:"paneEl",ref:g,class:"splitpanes__pane",onClick:p[0]||(p[0]=b=>Ae(l)(b,A._.uid)),style:no(k.value)},[Zr(A.$slots,"default")],4))}},F2s=Je({__name:"editMdPreivew",props:Fc({content:{}},{modelValue:{default:!1},modelModifiers:{}}),emits:Fc(["save"],["update:modelValue"]),setup(e,{emit:t}){const n=e,r=fe(""),o=Pf(e,"modelValue"),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];pt(()=>o.value,()=>{r.value=n.content});const a=t;function l(){a("save",r.value),o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=gc;return xe(),Ut(m,{visible:o.value,"onUpdate:visible":g[2]||(g[2]=v=>o.value=v),header:h.$t("components.editMdPreivew.title"),width:"90vw","confirm-btn":h.$t("components.editMdPreivew.confirm"),"cancel-btn":h.$t("components.editMdPreivew.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:Ae(r),"onUpdate:modelValue":g[0]||(g[0]=v=>Fn(r)?r.value=v:null),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[1]||(g[1]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])}}}),Ny=Object.create(null);Ny.open="0";Ny.close="1";Ny.ping="2";Ny.pong="3";Ny.message="4";Ny.upgrade="5";Ny.noop="6";const Xhe=Object.create(null);Object.keys(Ny).forEach(e=>{Xhe[Ny[e]]=e});const OGe={type:"error",data:"parser error"},nYn=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",iYn=typeof ArrayBuffer=="function",rYn=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Qst=({type:e,data:t},n,r)=>nYn&&t instanceof Blob?n?r(t):A0n(t,r):iYn&&(t instanceof ArrayBuffer||rYn(t))?n?r(t):A0n(new Blob([t]),r):r(Ny[e]+(t||"")),A0n=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function p0n(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let JBe;function N2s(e,t){if(nYn&&e.data instanceof Blob)return e.data.arrayBuffer().then(p0n).then(t);if(iYn&&(e.data instanceof ArrayBuffer||rYn(e.data)))return t(p0n(e.data));Qst(e,!1,n=>{JBe||(JBe=new TextEncoder),t(JBe.encode(n))})}const b0n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sY=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,n=e.length,r,o=0,s,a,l,d;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const u=new ArrayBuffer(t),h=new Uint8Array(u);for(r=0;r>4,h[o++]=(a&15)<<4|l>>2,h[o++]=(l&3)<<6|d&63;return u},j2s=typeof ArrayBuffer=="function",Dst=(e,t)=>{if(typeof e!="string")return{type:"message",data:oYn(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:W2s(e.substring(1),t)}:Xhe[n]?e.length>1?{type:Xhe[n],data:e.substring(1)}:{type:Xhe[n]}:OGe},W2s=(e,t)=>{if(j2s){const n=U2s(e);return oYn(n,t)}else return{base64:!0,data:e}},oYn=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},sYn="",V2s=(e,t)=>{const n=e.length,r=new Array(n);let o=0;e.forEach((s,a)=>{Qst(s,!1,l=>{r[a]=l,++o===n&&t(r.join(sYn))})})},z2s=(e,t)=>{const n=e.split(sYn),r=[];for(let o=0;o{const r=n.length;let o;if(r<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,r);else if(r<65536){o=new Uint8Array(3);const s=new DataView(o.buffer);s.setUint8(0,126),s.setUint16(1,r)}else{o=new Uint8Array(9);const s=new DataView(o.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(o[0]|=128),t.enqueue(o),t.enqueue(n)})}})}let eRe;function xde(e){return e.reduce((t,n)=>t+n.length,0)}function Ede(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let o=0;oMath.pow(2,21)-1){l.enqueue(OGe);break}o=h*Math.pow(2,32)+u.getUint32(4),r=3}else{if(xde(n)e){l.enqueue(OGe);break}}}})}const aYn=4;function Gh(e){if(e)return X2s(e)}function X2s(e){for(var t in Gh.prototype)e[t]=Gh.prototype[t];return e}Gh.prototype.on=Gh.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Gh.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};Gh.prototype.off=Gh.prototype.removeListener=Gh.prototype.removeAllListeners=Gh.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,o=0;oPromise.resolve().then(t):(t,n)=>n(t,0),D4=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),G2s="arraybuffer";function lYn(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const Y2s=D4.setTimeout,Z2s=D4.clearTimeout;function NOe(e,t){t.useNativeTimers?(e.setTimeoutFn=Y2s.bind(D4),e.clearTimeoutFn=Z2s.bind(D4)):(e.setTimeoutFn=D4.setTimeout.bind(D4),e.clearTimeoutFn=D4.clearTimeout.bind(D4))}const q2s=1.33;function K2s(e){return typeof e=="string"?J2s(e):Math.ceil((e.byteLength||e.size)*q2s)}function J2s(e){let t=0,n=0;for(let r=0,o=e.length;r=57344?n+=3:(r++,n+=4);return n}function cYn(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function evs(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function tvs(e){let t={},n=e.split("&");for(let r=0,o=n.length;r{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};z2s(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,V2s(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=cYn()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let dYn=!1;try{dYn=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const rvs=dYn;function ovs(){}class svs extends ivs{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(o,s)=>{this.onError("xhr post error",o,s)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class my extends Gh{constructor(t,n,r){super(),this.createRequest=t,NOe(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=lYn(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let o in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(o)&&r.setRequestHeader(o,this._opts.extraHeaders[o])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var o;r.readyState===3&&((o=this._opts.cookieJar)===null||o===void 0||o.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(o){this.setTimeoutFn(()=>{this._onError(o)},0);return}typeof document<"u"&&(this._index=my.requestsCount++,my.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ovs,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete my.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}my.requestsCount=0;my.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",w0n);else if(typeof addEventListener=="function"){const e="onpagehide"in D4?"pagehide":"unload";addEventListener(e,w0n,!1)}}function w0n(){for(let e in my.requests)my.requests.hasOwnProperty(e)&&my.requests[e].abort()}const avs=function(){const e=uYn({xdomain:!1});return e&&e.responseType!==null}();class lvs extends svs{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=avs&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new my(uYn,this.uri(),t)}}function uYn(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||rvs))return new XMLHttpRequest}catch{}if(!t)try{return new D4[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const hYn=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class cvs extends Bst{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=hYn?{}:lYn(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(o){return this.emitReserved("error",o)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n{try{this.doWrite(r,s)}catch{}o&&FOe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=cYn()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const tRe=D4.WebSocket||D4.MozWebSocket;class dvs extends cvs{createSocket(t,n,r){return hYn?new tRe(t,n,r):n?new tRe(t,n):new tRe(t)}doWrite(t,n){this.ws.send(n)}}class uvs extends Bst{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=$2s(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),o=H2s();o.readable.pipeTo(t.writable),this._writer=o.writable.getWriter();const s=()=>{r.read().then(({done:l,value:d})=>{l||(this.onPacket(d),s())}).catch(l=>{})};s();const a={type:"open"};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n{o&&FOe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const hvs={websocket:dvs,webtransport:uvs,polling:lvs},fvs=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,gvs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function yGe(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let o=fvs.exec(e||""),s={},a=14;for(;a--;)s[gvs[a]]=o[a]||"";return n!=-1&&r!=-1&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=mvs(s,s.path),s.queryKey=kvs(s,s.query),s}function mvs(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function kvs(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,o,s){o&&(n[o]=s)}),n}const CGe=typeof addEventListener=="function"&&typeof removeEventListener=="function",Ghe=[];CGe&&addEventListener("offline",()=>{Ghe.forEach(e=>e())},!1);class z9 extends Gh{constructor(t,n){if(super(),this.binaryType=G2s,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=yGe(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=yGe(n.host).host);NOe(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const o=r.prototype.name;this.transports.push(o),this._transportsByName[o]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=tvs(this.opts.query)),CGe&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Ghe.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=aYn,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&z9.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",z9.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,FOe(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,o){if(typeof n=="function"&&(o=n,n=void 0),typeof r=="function"&&(o=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const s={type:t,data:n,options:r};this.emitReserved("packetCreate",s),this.writeBuffer.push(s),o&&this.once("flush",o),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(z9.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),CGe&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Ghe.indexOf(this._offlineEventListener);r!==-1&&Ghe.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}z9.protocol=aYn;class vvs extends z9{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",g=>{if(!r)if(g.type==="pong"&&g.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;z9.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(h(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const m=new Error("probe error");m.transport=n.name,this.emitReserved("upgradeError",m)}}))};function s(){r||(r=!0,h(),n.close(),n=null)}const a=g=>{const m=new Error("probe error: "+g);m.transport=n.name,s(),this.emitReserved("upgradeError",m)};function l(){a("transport closed")}function d(){a("socket closed")}function u(g){n&&g.name!==n.name&&s()}const h=()=>{n.removeListener("open",o),n.removeListener("error",a),n.removeListener("close",l),this.off("close",d),this.off("upgrading",u)};n.once("open",o),n.once("error",a),n.once("close",l),this.once("close",d),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;rhvs[o]).filter(o=>!!o)),super(t,r)}};function pvs(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=yGe(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const s=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+s+":"+r.port+t,r.href=r.protocol+"://"+s+(n&&n.port===r.port?"":":"+r.port),r}const bvs=typeof ArrayBuffer=="function",wvs=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,fYn=Object.prototype.toString,Ovs=typeof Blob=="function"||typeof Blob<"u"&&fYn.call(Blob)==="[object BlobConstructor]",yvs=typeof File=="function"||typeof File<"u"&&fYn.call(File)==="[object FileConstructor]";function Rst(e){return bvs&&(e instanceof ArrayBuffer||wvs(e))||Ovs&&e instanceof Blob||yvs&&e instanceof File}function Yhe(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n=0&&e.numthis.opts.maxAttachments)throw new Error("too many attachments");r.attachments=l}if(t.charAt(n+1)==="/"){const s=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(s,n)}else r.nsp="/";const o=t.charAt(n+1);if(o!==""&&Number(o)==o){const s=n+1;for(;++n;){const a=t.charAt(n);if(a==null||Number(a)!=a){--n;break}if(n===t.length)break}r.id=Number(t.substring(s,n+1))}if(t.charAt(++n)){const s=this.tryParse(t.substr(n));if(Ist.isPayloadValid(r.type,s))r.data=s;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.opts.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case _a.CONNECT:return O0n(n);case _a.DISCONNECT:return n===void 0;case _a.CONNECT_ERROR:return typeof n=="string"||O0n(n);case _a.EVENT:case _a.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&Svs.indexOf(n[0])===-1);case _a.ACK:case _a.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class xvs{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=_vs(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Evs=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};function O0n(e){return Object.prototype.toString.call(e)==="[object Object]"}const Tvs=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Ist,Encoder:Lvs,get PacketType(){return _a}},Symbol.toStringTag,{value:"Module"}));function Rb(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const Qvs=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class gYn extends Gh{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[Rb(t,"open",this.onopen.bind(this)),Rb(t,"packet",this.onpacket.bind(this)),Rb(t,"error",this.onerror.bind(this)),Rb(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,o,s;if(Qvs.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const a={type:_a.EVENT,data:n};if(a.options={},a.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const h=this.ids++,g=n.pop();this._registerAckCallback(h,g),a.id=h}const l=(o=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||o===void 0?void 0:o.writable,d=this.connected&&!(!((s=this.io.engine)===null||s===void 0)&&s._hasPingExpired());return this.flags.volatile&&!l||(d?(this.notifyOutgoingListeners(a),this.packet(a)):this.sendBuffer.push(a)),this.flags={},this}_registerAckCallback(t,n){var r;const o=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(o===void 0){this.acks[t]=n;return}const s=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let l=0;l{this.io.clearTimeoutFn(s),n.apply(this,l)};a.withError=!0,this.acks[t]=a}emitWithAck(t,...n){return new Promise((r,o)=>{const s=(a,l)=>a?o(a):r(l);s.withError=!0,n.push(s),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((o,...s)=>(this._queue[0],o!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(o)):(this._queue.shift(),n&&n(null,...s)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:_a.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case _a.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case _a.EVENT:case _a.BINARY_EVENT:this.onevent(t);break;case _a.ACK:case _a.BINARY_ACK:this.onack(t);break;case _a.DISCONNECT:this.ondisconnect();break;case _a.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...o){r||(r=!0,n.packet({type:_a.ACK,id:t,data:o}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:_a.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}RH.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};RH.prototype.reset=function(){this.attempts=0};RH.prototype.setMin=function(e){this.ms=e};RH.prototype.setMax=function(e){this.max=e};RH.prototype.setJitter=function(e){this.jitter=e};class LGe extends Gh{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,NOe(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new RH({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const o=n.parser||Tvs;this.encoder=new o.Encoder,this.decoder=new o.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Avs(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const o=Rb(n,"open",function(){r.onopen(),t&&t()}),s=l=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",l),t?t(l):this.maybeReconnectOnOpen()},a=Rb(n,"error",s);if(this._timeout!==!1){const l=this._timeout,d=this.setTimeoutFn(()=>{o(),s(new Error("timeout")),n.close()},l);this.opts.autoUnref&&d.unref(),this.subs.push(()=>{this.clearTimeoutFn(d)})}return this.subs.push(o),this.subs.push(a),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(Rb(t,"ping",this.onping.bind(this)),Rb(t,"data",this.ondata.bind(this)),Rb(t,"error",this.onerror.bind(this)),Rb(t,"close",this.onclose.bind(this)),Rb(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){FOe(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new gYn(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;rt()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(o=>{o?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",o)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const sG={};function Zhe(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=pvs(e,t.path||"/socket.io"),r=n.source,o=n.id,s=n.path,a=sG[o]&&s in sG[o].nsps,l=t.forceNew||t["force new connection"]||t.multiplex===!1||a;let d;return l?d=new LGe(r,t):(sG[o]||(sG[o]=new LGe(r,t)),d=sG[o]),n.query&&!t.query&&(t.query=n.queryKey),d.socket(n.path,t)}Object.assign(Zhe,{Manager:LGe,Socket:gYn,io:Zhe,connect:Zhe});function mYn(e){const{url:t,auth:n,autoConnect:r=!0,xmlTags:o=[],keepXmlInMessage:s=!0,onXmlTag:a,onError:l,onConnect:d,onDisconnect:u,manageLifecycle:h=!0}=e,g=nd(null),m=fe(!1),v=fe(!1),f=fe([]),k=fe(null),A=fe("idle"),p=fe({}),b=fe({}),w=Array.from(new Map(o.map(ke=>typeof ke=="string"?{tag:ke}:ke).filter(ke=>!!(ke!=null&&ke.tag)).map(ke=>[ke.tag,ke])).values()),O=w.map(ke=>ke.tag),y=w.filter(ke=>!(ke.keepInMessage??s)).map(ke=>ke.tag),C=new Map,_=new Map,S=X(()=>{var Te;const ke=f.value[f.value.length-1];if(!ke||ke.role!=="assistant")return!1;const me=ke.status;return!!(me==="pending"||me==="streaming"||(Te=ke.content)!=null&&Te.some(De=>De.status==="pending"||De.status==="streaming"))}),L=X(()=>f.value[f.value.length-1]),E=ke=>f.value.find(me=>me.id===ke),T=ke=>f.value.findIndex(me=>me.id===ke),D=(ke,me)=>{var _e;return(_e=ke.content)==null?void 0:_e.find(Te=>Te.id===me)},P=ke=>(ke.type==="text"||ke.type==="markdown")&&typeof ke.data=="string",Q=(ke,me)=>`${ke}:${me.id??me.type}`,M=ke=>ke.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),B=ke=>{const me={},_e=/([\w-]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;let Te;for(;(Te=_e.exec(ke))!==null;)me[Te[1]]=Te[2]??Te[3];return me},R=ke=>{const me=[],_e=/<(\w+)((?:\s+[\w-]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*(?:\/>|>([\s\S]*?)<\/\1>)/g;let Te,De=0;for(;(Te=_e.exec(ke))!==null;)me.push({tag:Te[1],attrs:B(Te[2]),value:Te[3]??""}),De=_e.lastIndex;const ot=ke.slice(De).match(/<(\w+)((?:\s+[\w-]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*>([\s\S]*)$/);return ot&&me.push({tag:ot[1],attrs:B(ot[2]),value:ot[3]}),me},I=(ke,me)=>{const _e=M(me),Te=new RegExp(`<${_e}(\\s[^>]*)?>`,"g");let De=null,Ye;for(;(Ye=Te.exec(ke))!==null;)De=Ye;if(!De)return null;const ot=B(De[1]??""),We=De.index+De[0].length,et=``,st=ke.indexOf(et,We),Me=st!==-1,Se=ke.slice(We,Me?st:ke.length).trim(),Ie=R(Se);return{value:Se,attrs:ot,children:Ie,isComplete:Me}},F=ke=>{let me=ke;for(const _e of y){const Te=M(_e);me=me.replace(new RegExp(`<${Te}(?:\\s[^>]*)?>[\\s\\S]*?<\\/${Te}>`,"g"),""),me=me.replace(new RegExp(`<${Te}(?:\\s[^>]*)?>[\\s\\S]*$`,"g"),"")}return me},j=(ke,me)=>P(me)?_.get(Q(ke,me))??me.data:null,W=(ke,me)=>{if(!P(me))return;const _e=j(ke,me)??"";me.data=y.length?F(_e):_e},H=(ke,me,_e)=>{if(!O.length||!P(me))return;const Te=Q(ke,me),De=C.get(Te)??{},Ye={...De},ot={...b.value[ke]??{}},We=me.status??_e??"pending",et=j(ke,me);if(et===null)return;let st=!1;for(const Me of O){const Se=I(et,Me);if(Se===null)continue;const{value:Ie,isComplete:ze}=Se,Ze=ze?We==="error"||We==="stop"?We:"complete":We;(De[Me]!==Ie||Ze==="complete")&&(Ye[Me]=Ie,ot[Me]=Ie,p.value={...p.value,[Me]:Ie},st=!0,a==null||a({messageId:ke,contentId:me.id,type:me.type,tag:Me,value:Ie,attrs:Se.attrs,children:Se.children,status:Ze}))}st&&(C.set(Te,Ye),b.value={...b.value,[ke]:ot})},$=(ke,me,_e)=>{var De;if(!me||me.role!=="assistant")return;const Te=me;(De=Te.content)==null||De.forEach(Ye=>H(ke,Ye,_e??Te.status))},G=(ke,me)=>{if(typeof me!="object"||me===null)return me;const _e={...ke};for(const Te in me){const De=me[Te],Ye=_e[Te];if(Array.isArray(De))_e[Te]=[...Array.isArray(Ye)?Ye:[],...De];else if(typeof De=="object"&&De!==null){const ot=typeof Ye=="object"&&Ye!==null?Ye:{};_e[Te]=G(ot,De)}else De!==void 0&&(_e[Te]=De)}return _e},q=(ke,me)=>{typeof ke.data=="string"?ke.data+=me:typeof ke.data=="object"&&ke.data!==null&&"text"in ke.data&&typeof me=="string"&&(ke.data.text=(ke.data.text||"")+me)},re=ke=>{const{messageId:me,contentId:_e,type:Te,data:De,strategy:Ye,status:ot}=ke,We=E(me);if(!We||We.role!=="assistant")return;const et=D(We,_e);if(et){if(ot&&(et.status=ot),(ot==="streaming"||Ye==="append"&&De)&&(We.status==="pending"&&(We.status="streaming"),k.value===me&&(A.value="streaming")),De==null){H(me,et,We.status);return}if(P(et)&&typeof De=="string"){const st=Q(me,et),Me=_.get(st)??et.data,Se=Ye==="append"?Me+De:De;_.set(st,Se),W(me,et)}else Ye==="append"?typeof De=="string"?q(et,De):typeof De=="object"&&(et.data=G(et.data,De)):typeof et.data=="object"&&typeof De=="object"?et.data={...et.data,...De}:et.data=De;!ot&&Ye==="append"&&(et.status="streaming"),H(me,et,We.status)}},J=()=>{g.value&&(g.value.on("message",ke=>{var _e,Te;const me={id:ke.id,role:ke.role,name:ke.name,status:ke.status||"pending",datetime:ke.datetime,content:ke.content||[],ext:ke.ext};if(ke.role==="assistant"&&((_e=me.content)==null||_e.forEach(Ye=>{P(Ye)&&(_.set(Q(ke.id,Ye),Ye.data),W(ke.id,Ye))})),f.value.push(me),ke.role==="assistant"){const De=me;(Te=De.content)==null||Te.forEach(Ye=>H(ke.id,Ye,De.status))}ke.role==="assistant"&&(k.value=ke.id,A.value=ke.status==="streaming"?"streaming":"pending")}),g.value.on("message:update",ke=>{const me=E(ke.id);me&&(ke.status&&(me.status=ke.status),ke.ext&&(me.ext={...me.ext,...ke.ext}),ke.status&&$(ke.id,me,ke.status),ke.status==="streaming"&&(A.value="streaming"),(ke.status==="complete"||ke.status==="error"||ke.status==="stop")&&k.value===ke.id&&(k.value=null,A.value="idle"))}),g.value.on("content:add",ke=>{const me=E(ke.messageId);if(!me||me.role!=="assistant")return;me.content||(me.content=[]);const _e={...ke.content,status:ke.content.status||"pending",...ke.content.type==="thinking"?{ext:{collapsed:!0,...ke.content.ext}}:{}};if(P(_e)&&(_.set(Q(ke.messageId,_e),_e.data),W(ke.messageId,_e)),_e.type==="thinking"){const Te=me.content.findIndex(De=>De.type!=="thinking");Te===-1?me.content.push(_e):me.content.splice(Te,0,_e)}else me.content.push(_e);H(ke.messageId,_e,me.status),_e.status==="streaming"&&me.status==="pending"&&(me.status="streaming")}),g.value.on("content:update",re),g.value.on("error",ke=>{console.error("[Chat Error]",ke),l==null||l(ke)}),g.value.on("connect",()=>{m.value=!0,v.value=!1,d==null||d()}),g.value.on("disconnect",ke=>{m.value=!1,v.value=!1,u==null||u(),console.log("[Chat Disconnected]",ke)}),g.value.on("connect_error",ke=>{m.value=!1,v.value=!1,console.error("[Chat Connect Error]",ke)}))},oe=()=>{var ke;(ke=g.value)!=null&&ke.connected||v.value||(v.value=!0,g.value?g.value.connect():(g.value=Zhe(t,{transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:10,reconnectionDelay:1e3,reconnectionDelayMax:5e3,timeout:1e4,auth:{token:localStorage.getItem("token"),...typeof n=="function"?n():n}}),J()))},se=()=>{var ke;(ke=g.value)==null||ke.disconnect(),m.value=!1,v.value=!1},le=()=>{se(),setTimeout(oe,100)},ue=(ke,me)=>{var _e;return(_e=g.value)!=null&&_e.connected?(g.value.emit(ke,me),!0):(console.warn("[Chat] Socket not connected"),!1)},ee=(ke,me)=>{var _e;return(_e=g.value)==null||_e.on(ke,me),()=>{var Te;return(Te=g.value)==null?void 0:Te.off(ke,me)}},de=(ke,me)=>{var _e;(_e=g.value)==null||_e.once(ke,me)},z=(ke,me)=>{var _e;(_e=g.value)==null||_e.off(ke,me)},Y=(ke,me)=>{if(!ke.trim()&&!(me!=null&&me.length))return!1;const _e={id:`user_${Date.now()}`,role:"user",status:"complete",datetime:new Date().toISOString(),content:[{type:"text",data:ke,status:"complete"}]};return me!=null&&me.length&&_e.content.push({type:"attachment",data:me,status:"complete"}),f.value.push(_e),ue("chat",{content:ke,attachments:me})},ie=ke=>{const me=ke||k.value;if(!me)return!1;const _e=E(me);return _e&&(_e.status="stop"),k.value=null,A.value="idle",ue("stop",{messageId:me})},te=ke=>ue("regenerate",{messageId:ke}),Z=()=>{f.value=[],k.value=null,A.value="idle",p.value={},b.value={},C.clear(),_.clear()},he=ke=>{var _e;const me=T(ke);if(me>-1){const Te=f.value[me];(_e=Te==null?void 0:Te.content)==null||_e.forEach(Ye=>{C.delete(Q(ke,Ye)),_.delete(Q(ke,Ye))});const De={...b.value};delete De[ke],b.value=De,f.value.splice(me,1)}},pe=ke=>{const me=T(ke);me>-1&&f.value.splice(me+1)},Ce=(ke,me)=>{const _e=E(ke);_e&&Object.assign(_e,me)},Qe=(ke,me)=>{var Te;const _e=E(ke);return!_e||_e.role!=="assistant"?[]:((Te=_e.content)==null?void 0:Te.filter(De=>De.type===me))||[]};return h?(An(()=>{r&&oe()}),Qa(()=>{var ke;se(),(ke=g.value)==null||ke.removeAllListeners(),g.value=null})):r&&oe(),{socket:g,connected:m,connecting:v,status:A,messages:f,currentMessageId:k,xmlData:p,xmlDataByMessage:b,isGenerating:S,lastMessage:L,connect:oe,disconnect:se,reconnect:le,emit:ue,on:ee,once:de,off:z,chat:Y,stopGenerate:ie,regenerate:te,clearMessages:Z,removeMessage:he,removeMessagesAfter:pe,updateMessage:Ce,findMessage:E,getContentByType:Qe}}const nRe=new Map;function Dvs(e){return nRe.has(e)||nRe.set(e,Wy(`scriptAgent-${e}`,()=>{const t=fe({storySkeleton:"",adaptationStrategy:"",script:[]}),{connected:n,messages:r,chat:o,stopGenerate:s,socket:a,status:l,disconnect:d,connect:u}=mYn({url:`${ku().baseUrl}/socket/scriptAgent`,auth:()=>({isolationKey:`${e}:scriptAgent`,projectId:e}),manageLifecycle:!1,xmlTags:[{tag:"storySkeleton",keepInMessage:!1},{tag:"adaptationStrategy",keepInMessage:!1},{tag:"scriptItem",keepInMessage:!1}],onXmlTag:g=>{const{tag:m,value:v,children:f,status:k,attrs:A}=g;if(m==="storySkeleton")t.value.storySkeleton=v;else if(m==="adaptationStrategy")t.value.adaptationStrategy=v;else if(m==="scriptItem"){const p=A.name??"",b=v;if(p){const w=t.value.script.findIndex(O=>O.name===p);w!==-1?t.value.script[w].content=b:t.value.script.push({name:p,content:b})}}k==="complete"&&h()},autoConnect:!1});pt(a,g=>{g&&g.on("getPlanData",(m,v)=>{v(t.value)})},{immediate:!0});async function h(){await mn.post("/scriptAgent/setPlanData",{projectId:e,agentType:"scriptAgent",data:t.value})}return{connected:n,messages:r,chat:o,stopGenerate:s,socket:a,status:l,planData:t,setPlanData:h,connect:u,disconnect:d}})),nRe.get(e)}function R7(){var t;const e=(t=ph().project)==null?void 0:t.id;if(!e)throw new Error("No project selected");return Dvs(e)()}const iRe=new Map;function Bvs(e){return iRe.has(e)||iRe.set(e,Wy(`productionAgent-${e}`,()=>{const t=[{id:"welcome",role:"assistant",content:[{type:"text",status:"complete",data:$t("workbench.production.chatBox.welcomeMessage")},{type:"suggestion",status:"complete",data:[{title:$t("workbench.production.chatBox.startMakingVideo"),prompt:$t("workbench.production.chatBox.startMakingVideoPrompt")}]}]}];An(()=>{s.value.length<=0&&(s.value=[...t,...s.value])});const n=fe({script:"",scriptPlan:"",storyboardTable:"",assets:[],storyboard:[],workbench:{videoList:[]}}),r=fe(),{connected:o,messages:s,chat:a,stopGenerate:l,socket:d,status:u,reconnect:h,connect:g}=mYn({url:`${ku().baseUrl}/socket/productionAgent`,auth:()=>({isolationKey:`${e}:productionAgent:${r.value}`,projectId:e,scriptId:r.value}),manageLifecycle:!1,autoConnect:!1,xmlTags:[{tag:"script",keepInMessage:!1},{tag:"scriptPlan",keepInMessage:!1},{tag:"storyboardTable",keepInMessage:!1},{tag:"storyboardItem",keepInMessage:!1}],onXmlTag:async R=>{const{tag:I,value:F,children:j,attrs:W,status:H}=R;if(I==="script")n.value.script=F??"";else if(I==="scriptPlan")n.value.scriptPlan=F??"";else if(I==="storyboardTable")n.value.storyboardTable=F??"";else if(I==="storyboardItem"&&H==="complete"){const $=W.prompt??"",G=Number(W.duration)||0,q=W.track||"",re=W.shouldGenerateImage=="true"?1:0,J=(W==null?void 0:W.videoDesc)??"",oe=n.value.storyboard.findIndex(se=>se.prompt==$&&se.duration==G&&J==se.videoDesc);oe!==-1?n.value.storyboard[oe].prompt=$:(n.value.storyboard.push({prompt:$||"",duration:Number(G)||0,state:"未生成",src:null,associateAssetsIds:JSON.parse(W.associateAssetsIds)||[],videoDesc:J,shouldGenerateImage:re}),await Q([{prompt:$||"",duration:Number(G)||0,track:q||"",state:"未生成",src:null,videoDesc:J,shouldGenerateImage:re,associateAssetsIds:JSON.parse(W.associateAssetsIds)||[]}]))}H=="complete"&&m()}}),m=_yi(()=>{v(r.value)},500,!0,!0);pt(d,R=>{R&&(R.on("connect",()=>{B()}),R.on("getFlowData",(I,F)=>{F(n.value)}),R.on("addDeriveAsset",async(I,F)=>{const j=n.value.assets.find($=>$.id===I.assetsId);if(!j)return F({success:!1,message:$t("storyboard.assets.notExist")});const W=j.derive||[],H=W.find($=>$.id===I.id);if(H){if(!H)return F({success:!1,message:$t("storyboard.assets.notDerivativeExist")});H.name=I.name,H.type=j.type,F({success:!0,message:$t("storyboard.assets.derivativeUpdateSuccess")})}else W.push({assetsId:I.assetsId,id:I.id,name:I.name,type:j.type,desc:I.describe,prompt:"",state:"未生成",src:""}),F({success:!0,message:$t("storyboard.assets.derivativeAddSuccess")})}),R.on("delDeriveAsset",async(I,F)=>{const j=n.value.assets.find($=>$.id===I.assetsId);if(!j)return F({success:!1,message:$t("storyboard.assets.notExist")});const W=j.derive||[],H=W.findIndex($=>$.id===I.id);if(H===-1)return F({success:!1,message:$t("storyboard.assets.notDerivativeExist")});W.splice(H,1),F({success:!0,message:$t("storyboard.assets.derivativeDelSuccess")})}),R.on("generateDeriveAsset",async(I,F)=>{const j=await A(I.ids);F({success:!0,message:j})}),R.on("generateStoryboard",async(I,F)=>{const j=await k(I.ids);F({success:!0,message:j})}))},{immediate:!0});async function v(R){await mn.post("/production/saveFlowData",{projectId:e,data:n.value,episodesId:R||r.value})}async function f(){const{data:R}=await mn.post("/production/getFlowData",{projectId:e,episodesId:r.value});n.value=R}async function k(R){n.value.storyboard.forEach(F=>{R.includes(F.id)&&(F.state="生成中")});const{data:I}=await mn.post("/production/storyboard/batchGenerateImage",{scriptId:r.value,projectId:e,storyboardIds:R,script:n.value.script,scriptPlan:n.value.scriptPlan,storyboardTable:n.value.storyboardTable,assets:n.value.assets});if(I){if(n.value.storyboard.length===0)return n.value.storyboard=I,I;n.value.storyboard.forEach(F=>{const j=I.find(W=>W.id==F.id);j&&(F.state=j.state,F.src=j.src)})}return I}async function A(R){n.value.assets.forEach(I=>{I.derive&&I.derive.forEach(F=>{R.includes(F.id)&&(F.state="生成中")})});try{const{data:I}=await mn.post("/production/assets/batchGenerateAssetsImage",{assetIds:R,projectId:e,scriptId:r.value,concurrentCount:ku().otherSetting.assetsBatchGenereateSize});return I&&I.forEach(F=>{n.value.assets.forEach(j=>{j.derive&&j.derive.forEach(W=>{W.id===F.id&&(W.state=F.state,W.src=F.src)})})}),I}catch{}}const p=X(()=>{const R=[];return n.value.assets.forEach(I=>{I.derive&&I.derive.forEach(F=>{F.state=="生成中"&&R.push(F.id)})}),R}),b=X(()=>{const R=[];return n.value.storyboard.forEach(I=>{I.state=="生成中"&&I.id&&R.push(I.id)}),R});let w=null,O=!1;async function y(){const R=p.value;if(!(R.length===0||O)){O=!0;try{const{data:I}=await mn.post("/production/assets/pollingImage",{ids:R});if(!I||I.length===0)return;I.forEach(j=>{n.value.assets.forEach(W=>{W.derive&&W.derive.forEach(H=>{H.id===j.id&&(H.state=j.state,j.src&&(H.src=j.src),H.errorReason=(j==null?void 0:j.errorReason)??"",H.prompt=(j==null?void 0:j.prompt)??"")})})})}catch(I){console.error("[assetsPolling] error",I)}finally{O=!1}}}function C(){w||(w=window.setInterval(async()=>{if(p.value.length===0){_();return}await y()},5e3),y())}function _(){w&&(clearInterval(w),w=null)}pt(()=>p.value,R=>{R.length>0?C():_()});let S=null,L=!1;async function E(){const R=b.value;if(!(R.length===0||L)){L=!0;try{const{data:I}=await mn.post("/production/storyboard/pollingImage",{ids:R});if(!I||I.length===0)return;I.forEach(j=>{const W=n.value.storyboard.find(H=>H.id===j.id);W&&(W.state=j.state,j.src&&(W.src=j.src),W.reason=(j==null?void 0:j.reason)??"")})}catch(I){console.error("[storyboardPolling] error",I)}finally{L=!1}}}function T(){S||(S=window.setInterval(async()=>{if(b.value.length===0){D();return}await E()},5e3),E())}function D(){S&&(clearInterval(S),S=null)}pt(()=>b.value,R=>{R.length>0?T():D()});function P(){if(r.value<0)return;const R={isolationKey:`${e}:productionAgent:${r.value}`,projectId:e,scriptId:r.value};o.value||g(),d.value.emit("updateContext",R)}async function Q(R){const{data:I}=await mn.post("/production/storyboard/batchAddStoryboardInfo",{scriptId:r.value,data:R,projectId:e});n.value.storyboard.forEach(F=>{const j=I.find(W=>W.prompt==F.prompt&&W.duration==F.duration);j&&(F.id=j.id,F.trackId=j.trackId,F.src=j.src,F.state=j.state,F.associateAssetsIds=j.associateAssetsIds)})}const M=fe(!1);async function B(){M.value=!0;const{data:R}=await mn.post("/agents/getMemory",{projectId:e,episodesId:r.value,agentType:"productionAgent"});s.value=[],s.value=[...t,...R],M.value=!1}return{connected:o,messages:s,chat:a,stopGenerate:l,socket:d,status:u,flowData:n,setFlowData:v,getFlowData:f,episodesId:r,stopAssetsPolling:_,stopStoryboardPolling:D,updateContext:P,getHistory:B,loadingHistory:M,batchGenerateStoryboard:k,reconnect:h}})),iRe.get(e)}function g0(){var t;const e=(t=ph().project)==null?void 0:t.id;if(!e)throw new Error("No project selected");return Bvs(e)()}const Rvs={class:"scriptAgent"},Ivs={class:"box pr"},Mvs={class:"settingMenu"},Pvs={key:0,class:"forceGenerateMask"},Fvs={class:"forceGenerateCard"},Nvs={class:"forceGenerateDesc"},Uvs={class:"forceGenerateActions"},jvs={class:"tabsWrapper"},Wvs={key:0,class:"ac"},Vvs={key:1,class:"ac"},zvs={class:"panelContent"},Hvs={class:"panelContent"},$vs={class:"panelContent"},Xvs={key:1,class:"scriptList"},Gvs={class:"scriptCardHeader"},Yvs={class:"scriptCardHeaderLeft"},Zvs={class:"scriptIndex"},qvs={class:"scriptTitle"},Kvs={class:"scriptCardActions"},Jvs={class:"scriptCardBody"},eAs={key:0},tAs={key:1,class:"emptyContent"},nAs={class:"scriptEditForm"},iAs={class:"scriptEditField"},rAs={class:"scriptEditField"},oAs=Je({__name:"index",setup(e){const{project:t}=xs(ph()),{connected:n,messages:r,status:o,planData:s}=xs(R7()),a=fe(1),l=fe(""),d=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"],u=[{id:"welcome",role:"assistant",content:[{type:"text",status:"complete",data:$t("workbench.scriptAgent.welcomeMsg")},{type:"suggestion",status:"complete",data:[{title:$t("workbench.scriptAgent.start"),prompt:$t("workbench.scriptAgent.start")}]}]}];An(()=>{r.value.length<=0&&(r.value=[...u,...r.value]),g(),C(),R7().connect(),r.value.length<=1&&w()});const h=fe();async function g(){var I;const{data:R}=await mn.post("/scriptAgent/getPlanData",{projectId:(I=t.value)==null?void 0:I.id,agentType:"scriptAgent"});s.value.storySkeleton=R.data.storySkeleton,s.value.adaptationStrategy=R.data.adaptationStrategy,s.value.script=R.data.script||[],h.value=R.id}const m={suggestion:R=>{var I;R7().chat((I=R==null?void 0:R.content)==null?void 0:I.prompt)}};function v(R){R7().chat(R),l.value=""}function f(){R7().stopGenerate()}const k={message:$t("workbench.scriptAgent.memoryType.message"),summary:$t("workbench.scriptAgent.memoryType.summary"),all:$t("workbench.scriptAgent.memoryType.all")};function A(R){const I=fo.confirm({header:$t("workbench.scriptAgent.msg.clearConfirm"),body:$t("workbench.scriptAgent.msg.clearBody",{type:k[R]}),confirmBtn:$t("workbench.scriptAgent.msg.confirmClear"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"warning",onConfirm:async()=>{var F;await mn.post("/agents/clearMemory",{projectId:(F=t.value)==null?void 0:F.id,agentType:"scriptAgent",type:R}),window.$message.success($t("workbench.scriptAgent.msg.memoryCleared",{type:k[R]})),I.destroy(),w()}})}function p(){const R=fo.confirm({header:$t("workbench.scriptAgent.msg.reconnect"),body:$t("workbench.scriptAgent.msg.notReconnect"),confirmBtn:$t("workbench.scriptAgent.msg.keepReconnect"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"warning",onConfirm:async()=>{g0().reconnect(),R.destroy()}})}const b=fe(!1);async function w(){var I;b.value=!0;const{data:R}=await mn.post("/agents/getMemory",{projectId:(I=t.value)==null?void 0:I.id,agentType:"scriptAgent"});r.value=[...u,...R],b.value=!1}const O=fe(!1),y=fe([]);function C(){var R;mn.post("/novel/getNovelData",{projectId:(R=t.value)==null?void 0:R.id}).then(({data:I})=>{y.value=I,y.value.some(j=>j.eventState===0)&&!O.value&&(O.value=!0)})}const _=fe(!1),S=fe("");function L(){a.value==1?S.value=s.value.storySkeleton:a.value==2&&(S.value=s.value.adaptationStrategy),_.value=!0}const E=fe(-1),T=fe({name:"",content:""}),D=fe(!1);function P(R){const I=s.value.script[R];E.value=R,T.value={name:I.name,content:I.content},D.value=!0}async function Q(){E.value<0||(s.value.script[E.value]={...T.value},await R7().setPlanData(),await g(),window.$message.success($t("workbench.scriptAgent.msg.scriptUpdated")),D.value=!1)}async function M(R){const I=s.value.script[R],F=fo.confirm({header:$t("workbench.scriptAgent.msg.deleteConfirm"),body:$t("workbench.scriptAgent.msg.deleteBody"),confirmBtn:$t("workbench.scriptAgent.msg.confirmDelete"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"danger",onConfirm:async()=>{I.id&&await mn.post("/script/delScript",{id:[I.id]}),s.value.script.splice(R,1),await R7().setPlanData(),await g(),window.$message.success($t("workbench.scriptAgent.msg.scriptDeleted")),F.destroy()}})}function B(R){mn.post("/scriptAgent/updateData",{id:h.value,data:{storySkeleton:a.value==1?R:s.value.storySkeleton,adaptationStrategy:a.value==2?R:s.value.adaptationStrategy,script:s.value.script}}).then(()=>{window.$message.success($t("workbench.scriptAgent.msg.updated")),g()}).catch(I=>{window.$message.success($t("workbench.scriptAgent.msg.error"))})}return(R,I)=>{const F=tYn,j=JGn,W=_n("i-setting-config"),H=Si,$=_n("i-api"),G=_n("i-delete"),q=_n("i-close"),re=_n("i-delete-one"),J=y1,oe=eYn,se=_n("i-dot"),le=Xy,ue=Mne,ee=_n("i-edit"),de=Ine,z=gc;return xe(),Ge("div",Rvs,[c(Ae(wGe),{class:"default-theme data f"},{default:Oe(()=>[c(Ae(PT),{size:30,"min-size":15,class:"operate"},{default:Oe(()=>[ge("div",Ivs,[c(j,{"clear-history":!1},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(r),Y=>(xe(),Ut(F,{key:Y.id,message:Y,name:Y.name,placement:Y.role==="user"?"right":"left",variant:Y.role==="user"?"base":"outline",handleActions:Y.role==="user"?{}:m,status:Y.status,allowContentSegmentCustom:""},null,8,["message","name","placement","variant","handleActions","status"]))),128))]),_:1}),c(oe,{class:"inputBox",disabled:Ae(o)==="pending"||Ae(o)==="streaming",modelValue:Ae(l),"onUpdate:modelValue":I[4]||(I[4]=Y=>Fn(l)?l.value=Y:null),loading:Ae(o)==="pending"||Ae(o)==="streaming",placeholder:"$t('workbench.scriptAgent.inputPlaceholder')",onSend:v,onStop:f},{"footer-prefix":Oe(()=>[c(J,{trigger:"click",placement:"top-left"},{content:Oe(()=>[ge("div",Mvs,[ge("div",{class:"settingMenuItem",onClick:I[0]||(I[0]=Y=>p())},[c($,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.reconnect")),1)]),ge("div",{class:"settingMenuItem",onClick:I[1]||(I[1]=Y=>A("message"))},[c(G,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.clearMessageMemory")),1)]),ge("div",{class:"settingMenuItem",onClick:I[2]||(I[2]=Y=>A("summary"))},[c(q,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.clearSummaryMemory")),1)]),ge("div",{class:"settingMenuItem danger",onClick:I[3]||(I[3]=Y=>A("all"))},[c(re,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.clearAllMemory")),1)])])]),default:Oe(()=>[c(H,{shape:"square",variant:"outline",size:"small",disabled:Ae(o)==="pending"||Ae(o)==="streaming"},{icon:Oe(()=>[c(W,{size:"16"})]),_:1},8,["disabled"])]),_:1})]),_:1},8,["disabled","modelValue","loading"]),c(se,{class:"dot",theme:"outline",fill:Ae(n)?"green":"red"},null,8,["fill"]),c(A8,{name:"fade"},{default:Oe(()=>[Ae(O)?(xe(),Ge("div",Pvs,[ge("div",Fvs,[ge("div",Nvs,Pe(R.$t("workbench.scriptAgent.forceGenerate.desc")),1),ge("div",Uvs,[c(H,{onClick:I[5]||(I[5]=Y=>O.value=!1)},{default:Oe(()=>[Bt(Pe(R.$t("workbench.scriptAgent.forceGenerate.confirm")),1)]),_:1})])])])):nn("",!0)]),_:1})])]),_:1}),c(Ae(PT),{size:70,"min-size":30,class:"data"},{default:Oe(()=>[ge("div",jvs,[c(de,{modelValue:Ae(a),"onUpdate:modelValue":I[6]||(I[6]=Y=>Fn(a)?a.value=Y:null)},{action:Oe(()=>[Ae(a)==1?(xe(),Ge("div",Wvs,[c(H,{onClick:L},{default:Oe(()=>[Bt(Pe(R.$t("workbench.scriptAgent.edit")),1)]),_:1})])):Ae(a)==2?(xe(),Ge("div",Vvs,[c(H,{onClick:L},{default:Oe(()=>[Bt(Pe(R.$t("workbench.scriptAgent.edit")),1)]),_:1})])):nn("",!0)]),default:Oe(()=>[c(ue,{value:1,label:R.$t("workbench.scriptAgent.storySkeleton")},{default:Oe(()=>[ge("div",zvs,[Ae(s).storySkeleton?(xe(),Ut(Ae(i3),{key:0,modelValue:Ae(s).storySkeleton},null,8,["modelValue"])):(xe(),Ut(le,{key:1,title:R.$t("workbench.scriptAgent.noContent")},null,8,["title"]))])]),_:1},8,["label"]),c(ue,{value:2,label:R.$t("workbench.scriptAgent.adaptationStrategy")},{default:Oe(()=>[ge("div",Hvs,[Ae(s).adaptationStrategy?(xe(),Ut(Ae(i3),{key:0,modelValue:Ae(s).adaptationStrategy},null,8,["modelValue"])):(xe(),Ut(le,{key:1,title:R.$t("workbench.scriptAgent.noContent")},null,8,["title"]))])]),_:1},8,["label"]),c(ue,{value:3,label:R.$t("workbench.scriptAgent.script")},{default:Oe(()=>{var Y;return[ge("div",$vs,[(Y=Ae(s).script)!=null&&Y.length?(xe(),Ge("div",Xvs,[(xe(!0),Ge(sn,null,Bi(Ae(s).script,(ie,te)=>(xe(),Ge("div",{key:te,class:"scriptCard"},[ge("div",Gvs,[ge("div",Yvs,[ge("span",Zvs,"#"+Pe(te+1),1),ge("span",qvs,Pe(ie.name),1)]),ge("div",Kvs,[c(H,{size:"small",onClick:Z=>P(te)},{icon:Oe(()=>[c(ee,{size:"14"})]),_:1},8,["onClick"]),c(H,{theme:"danger",variant:"outline",size:"small",onClick:Z=>M(te)},{icon:Oe(()=>[c(G,{size:"14"})]),_:1},8,["onClick"])])]),ge("div",Jvs,[ie.content?(xe(),Ge("pre",eAs,Pe(ie.content),1)):(xe(),Ge("span",tAs,Pe(R.$t("workbench.scriptAgent.noContent")),1))])]))),128))])):(xe(),Ut(le,{key:0,title:R.$t("workbench.scriptAgent.noContent")},null,8,["title"]))])]}),_:1},8,["label"])]),_:1},8,["modelValue"])])]),_:1})]),_:1}),c(F2s,{modelValue:Ae(_),"onUpdate:modelValue":I[7]||(I[7]=Y=>Fn(_)?_.value=Y:null),onSave:B,content:Ae(S)},null,8,["modelValue","content"]),c(z,{visible:Ae(D),"onUpdate:visible":I[10]||(I[10]=Y=>Fn(D)?D.value=Y:null),header:R.$t("workbench.scriptAgent.editScript"),width:"80%",top:"10vh",placement:"center","confirm-btn":{content:R.$t("workbench.scriptAgent.save"),theme:"primary"},onConfirm:Q,onClose:I[11]||(I[11]=Y=>D.value=!1)},{default:Oe(()=>[ge("div",nAs,[ge("div",iAs,[ge("strong",null,Pe(Ae(T).name),1)]),ge("div",rAs,[ge("label",null,Pe(R.$t("workbench.scriptAgent.content")),1),c(Ae(X4),{modelValue:Ae(T).content,"onUpdate:modelValue":I[8]||(I[8]=Y=>Ae(T).content=Y),theme:"light",toolbars:d,footers:[],style:{height:"50vh"},onOnUploadImg:()=>{},onDrop:I[9]||(I[9]=Mr(()=>{},["prevent"]))},null,8,["modelValue"])])])]),_:1},8,["visible","header","confirm-btn"])])}}}),sAs=oo(oAs,[["__scopeId","data-v-261a295a"]]),aAs=Object.freeze(Object.defineProperty({__proto__:null,default:sAs},Symbol.toStringTag,{value:"Module"})),lAs=Je({__name:"imageTools",props:{src:{},placement:{},position:{},margin:{}},setup(e){const t=e,n=X(function(){return t.placement||"bottom"}),r=X(function(){const d=t.margin??"4px",u=t.position||"none";return{br:{position:"absolute",bottom:d,right:d},bl:{position:"absolute",bottom:d,left:d},tr:{position:"absolute",top:d,right:d},tl:{position:"absolute",top:d,left:d},none:{margin:d}}[u]}),o=fe(!1);function s(){o.value=!0}async function a(){try{const d=new Image;d.crossOrigin="anonymous",d.src=t.src,await new Promise(function(m,v){d.onload=function(){m()},d.onerror=function(){v(new Error($t("components.imageTools.msg.imageLoadFailed")))}});const u=document.createElement("canvas");u.width=d.naturalWidth,u.height=d.naturalHeight,u.getContext("2d").drawImage(d,0,0);const g=await new Promise(function(m,v){u.toBlob(function(f){if(f){m(f);return}v(new Error($t("components.imageTools.msg.convertFailed")))},"image/png")});await navigator.clipboard.write([new ClipboardItem({"image/png":g})]),window.$message.success($t("components.imageTools.msg.copied"))}catch{window.$message.error($t("components.imageTools.msg.copyFailed"))}}async function l(){let d="";try{const u=await fetch(t.src,{mode:"cors"});if(!u.ok)throw new Error($t("components.imageTools.msg.downloadFailed"));const h=await u.blob();d=URL.createObjectURL(h);const g=document.createElement("a");g.href=d,g.download=t.src.split("/").pop()||"image",document.body.appendChild(g),g.click(),document.body.removeChild(g),window.$message.success($t("components.imageTools.msg.downloadStarted"))}catch{const u=document.createElement("a");u.href=t.src,u.download=t.src.split("/").pop()||"image",u.target="_blank",u.rel="noopener noreferrer",document.body.appendChild(u),u.click(),document.body.removeChild(u),window.$message.warning($t("components.imageTools.msg.downloadBlockedOpenNewWindow"))}finally{d&&URL.revokeObjectURL(d)}}return(d,u)=>{const h=_n("i-copy"),g=Si,m=el,v=_n("i-expand-text-input"),f=hL,k=_n("i-download");return xe(),Ge("div",{class:"imageTools",style:no(Ae(r))},[c(m,{theme:"primary",content:d.$t("components.imageTools.copy"),placement:Ae(n)},{default:Oe(()=>[c(g,{variant:"outline",size:"small",shape:"square",onClick:Mr(a,["stop"])},{icon:Oe(()=>[c(h,{size:"16"})]),_:1})]),_:1},8,["content","placement"]),c(m,{theme:"primary",content:d.$t("components.imageTools.preview"),placement:Ae(n)},{default:Oe(()=>[c(f,{visible:Ae(o),"onUpdate:visible":u[0]||(u[0]=A=>Fn(o)?o.value=A:null),images:[t.src]},{trigger:Oe(()=>[c(g,{variant:"outline",size:"small",shape:"square",onClick:Mr(s,["stop"])},{icon:Oe(()=>[c(v,{size:"16"})]),_:1})]),_:1},8,["visible","images"])]),_:1},8,["content","placement"]),c(m,{theme:"primary",content:d.$t("components.imageTools.download"),placement:Ae(n)},{default:Oe(()=>[c(g,{variant:"outline",size:"small",shape:"square",onClick:Mr(l,["stop"])},{icon:Oe(()=>[c(k,{size:"16"})]),_:1})]),_:1},8,["content","placement"])],4)}}}),jre=oo(lAs,[["__scopeId","data-v-5144fc67"]]),cAs={class:"cornerScape f"},dAs={class:"left"},uAs={class:"quickActions"},hAs={class:"content"},fAs={class:"imageBox"},gAs={key:1,class:"generatingBox"},mAs={class:"generatingText"},kAs={class:"imageToolsWrap"},vAs={class:"infoBox"},AAs={class:"title"},pAs={class:"meta"},bAs={key:0,class:"prompt"},wAs={class:"drawerHeader"},OAs={key:0,class:"drawerImageBox"},yAs={key:1,class:"generatingBox"},CAs={class:"generatingText"},_As={class:"imageToolsWrap show"},SAs={class:"historyImageList f"},LAs=["onClick"],xAs={class:"drawerActions"},EAs=Je({__name:"index",setup(e){var le;const{otherSetting:t}=xs(ku()),n=fe([]),{project:r}=xs(ph()),o=fe(((le=r.value)==null?void 0:le.imageModel)??""),s=fe("1K"),a=[{label:"1K",value:"1K"},{label:"2K",value:"2K"},{label:"4K",value:"4K"}],l=fe([{labelKey:"workbench.cornerScape.filterRole",value:"role"},{labelKey:"workbench.cornerScape.filterScene",value:"scene"},{labelKey:"workbench.cornerScape.filterTool",value:"tool"}]),d=X(()=>l.value.map(ue=>({...ue,label:$t(ue.labelKey)}))),u=fe([]),h=fe(!1);let g=null;function m(){return g==null||g.abort(),g=new AbortController,g}An(()=>{f()}),Qa(()=>{g&&(g.abort(),u.value,g=null),J(),se(),u.value.forEach(ue=>{ue.state==="生成中"&&(ue.state="")})});function v(){f()}async function f(){var ue;try{h.value=!0;const{data:ee}=await mn.post("/cornerScape/getAllAssets",{projectId:(ue=r.value)==null?void 0:ue.id,type:n.value});u.value=ee}catch(ee){console.error("加载资产数据失败:",ee),u.value=[]}finally{h.value=!1}}const k=fe([]),A=X(()=>{const ue=u.value.filter(ee=>k.value.includes(ee.id)&&ee.filePath).map(ee=>ee.filePath);return ue.length>0?ue:u.value.filter(ee=>ee.filePath).map(ee=>ee.filePath)}),p=X(()=>A.value.length>0),b=ue=>{const ee=k.value.indexOf(ue);ee===-1?k.value.push(ue):k.value.splice(ee,1)},w=ue=>{k.value=u.value.filter(ee=>ue===""?!ee.state:ee.state===ue).map(ee=>ee.id)};function O(){const ue=u.value.filter(ee=>!ee.prompt||ee.prompt.trim()==="").map(ee=>ee.id);if(ue.length===0){window.$message.warning($t("workbench.cornerScape.noEmptyPrompt"));return}k.value=ue,window.$message.success($t("workbench.cornerScape.selectedCount",{count:k.value.length}))}function y(){k.value.length===u.value.length?k.value=[]:k.value=u.value.map(ue=>ue.id)}function C(){k.value=[]}const _=fe(!1),S=fe(null),L=fe(null);async function E(ue){var de;if(L.value=L.value===ue?null:ue,!S.value)return;const ee=S.value.historyImages.find(z=>z.id===L.value);try{await mn.post("/assets/saveAssets",{id:S.value.id,type:S.value.type,projectId:(de=r.value)==null?void 0:de.id,prompt:S.value.prompt,imageId:ee==null?void 0:ee.id}),ee&&(S.value.filePath=ee.filePath,S.value.state="已完成"),f(),window.$message.success($t("workbench.cornerScape.msg.replaceSuccess"))}catch{window.$message.error($t("workbench.cornerScape.msg.replaceFailed"));return}}const T=hs({assetsId:0,model:"",type:"",resolution:"",prompt:"",name:"",describe:"",promptState:""});async function D(ue){var ee;L.value=null,T.assetsId=ue.id,T.name=ue.name||"",T.type=ue.type||"",T.model=ue.model||"",S.value=ue,T.resolution=ue.resolution||"",T.prompt=ue.prompt||"",T.describe=ue.describe||"",T.promptState=ue.promptState,_.value=!0;try{const{data:de}=await mn.post("/cornerScape/getAllAssets",{projectId:(ee=r.value)==null?void 0:ee.id,type:n.value}),z=de.find(Y=>Y.id===ue.id);if(z){const Y=u.value.findIndex(ie=>ie.id===ue.id);Y!==-1&&(u.value[Y]=z),S.value=z,T.prompt=z.prompt||T.prompt,T.resolution=z.resolution||T.resolution}}catch(de){console.error("刷新资产详情失败:",de)}}function P(ue,ee){var z;const de=u.value.find(Y=>Y.id===ue);de&&(de.state=ee),((z=S.value)==null?void 0:z.id)===ue&&(S.value.state=ee)}function Q(){var de;if(!S.value)return;if(!o.value){window.$message.warning($t("workbench.cornerScape.msg.selectModel"));return}if(!T.resolution){window.$message.warning($t("workbench.cornerScape.msg.selectResolution"));return}if(!T.prompt.trim()){window.$message.warning($t("workbench.cornerScape.msg.enterPrompt"));return}const ue=S.value;P(ue.id,"生成中"),_.value=!1;const ee=m();mn.post("/assetsGenerate/generateAssets",{type:ue.type??"props",projectId:(de=r.value)==null?void 0:de.id,name:ue.name??$t("workbench.cornerScape.unnamed"),base64:"",prompt:T.prompt,model:o.value,id:ue.id,resolution:T.resolution,concurrentCount:1},{signal:ee.signal}).then(async()=>{window.$message.success($t("workbench.cornerScape.msg.genSuccess",{name:ue.name})),await f()}).catch(z=>{z.name==="CanceledError"||z.code==="ERR_CANCELED"||(window.$message.error(z.message??$t("workbench.cornerScape.msg.genFailed",{name:ue.name})),P(ue.id,"生成失败"))})}async function M(){var ue;if(S.value&&T.prompt!==S.value.prompt)try{await mn.post("/assets/saveAssets",{id:S.value.id,type:S.value.type,projectId:(ue=r.value)==null?void 0:ue.id,prompt:T.prompt}),S.value.prompt=T.prompt;const ee=u.value.find(de=>de.id===S.value.id);ee&&(ee.prompt=T.prompt),window.$message.success($t("workbench.cornerScape.msg.saveSuccess"))}catch{window.$message.error($t("workbench.cornerScape.msg.saveFailed"))}}const B=fe(!1);async function R(){var ue;if(!T.prompt.trim()){window.$message.warning($t("workbench.cornerScape.msg.enterPromptFirst"));return}B.value=!0;try{const{data:ee}=await mn.post("/assetsGenerate/polishAssetsPrompt",{projectId:(ue=r.value)==null?void 0:ue.id,assetsId:T.assetsId,type:T.type??"props",name:T.name,describe:T.describe});window.$message.success($t("workbench.cornerScape.msg.promptGenSuccess")),ee.assetsId===T.assetsId&&(T.prompt=ee.prompt),f()}catch{window.$message.error($t("workbench.cornerScape.msg.polishFailed"))}finally{B.value=!1}}async function I(){var ee;if(k.value.length===0){window.$message.warning($t("workbench.cornerScape.msg.selectAtLeastOne"));return}const ue=u.value.filter(de=>k.value.includes(de.id));ue.forEach(de=>{de.promptState="生成中"}),k.value=[];try{await mn.post("/assetsGenerate/batchPolishAssetsPrompt",{projectId:(ee=r.value)==null?void 0:ee.id,items:ue.map(de=>({assetsId:de.id,type:de.type??"props",name:de.name,describe:de.describe})),concurrentCount:t.value.assetsBatchGenereateSize})}catch(de){window.$message.error(de.message??$t("workbench.cornerScape.msg.promptGenFail")),ue.forEach(z=>{const Y=u.value.find(ie=>ie.id===z.id);Y&&(Y.promptState="")})}}async function F(){var de;if(k.value.length===0){window.$message.warning($t("workbench.cornerScape.msg.selectAtLeastOne"));return}if(!o.value){window.$message.warning($t("workbench.cornerScape.msg.selectModel"));return}if(!s.value){window.$message.warning($t("workbench.cornerScape.msg.selectResolution"));return}const ue=u.value.filter(z=>k.value.includes(z.id)),ee=ue.filter(z=>!z.prompt);if(ee.length>0){const z=ee.map(Y=>Y.name).join(", ");window.$message.warning($t("workbench.cornerScape.msg.emptyPrompt",{emptyPromptNames:z}));return}ue.forEach(z=>P(z.id,"生成中")),window.$message.success($t("workbench.cornerScape.msg.batchStarted",{count:ue.length,concurrent:t.value.assetsBatchGenereateSize}));try{await mn.post("/assetsGenerate/batchGenerateImageAssets",{projectId:(de=r.value)==null?void 0:de.id,model:o.value,resolution:s.value,concurrentCount:t.value.assetsBatchGenereateSize,items:ue.map(z=>({id:z.id,type:z.type??"props",name:z.name??$t("workbench.cornerScape.unnamed"),prompt:z.prompt}))})}catch(z){if(z.name==="CanceledError"||z.code==="ERR_CANCELED")return;window.$message.error(z.message??$t("workbench.cornerScape.msg.batchFailed"))}}const j=X(()=>u.value.filter(ue=>ue.promptState=="生成中")),W=X(()=>u.value.filter(ue=>ue.state==="生成中"));let H=null,$=null;async function G(){var ee;if(j.value.length===0)return;const ue=j.value.map(de=>de.id);try{const{data:de}=await mn.post("/assets/pollingPromptAssets",{ids:ue});let z=!1;if(Array.isArray(de)&&de.length&&de.forEach(Y=>{const ie=u.value.find(te=>te.id===Y.id);ie&&(ie.promptState==="生成中"&&Y.promptState!=="生成中"&&(z=!0),ie.promptState=Y.promptState,Y.prompt!==void 0&&(ie.prompt=Y.prompt))}),z)try{const{data:Y}=await mn.post("/cornerScape/getAllAssets",{projectId:(ee=r.value)==null?void 0:ee.id,type:n.value});if(Y.forEach(ie=>{const te=u.value.find(Z=>Z.id===ie.id);te&&(te.historyImages=ie.historyImages)}),S.value){const ie=Y.find(te=>te.id===S.value.id);ie&&(S.value.historyImages=ie.historyImages)}}catch(Y){console.error("刷新历史图片失败:",Y)}}catch(de){console.error("轮询提示词状态失败:",de)}}async function q(){var ee;if(W.value.length===0)return;const ue=W.value.map(de=>de.id);try{const{data:de}=await mn.post("/assets/pollingImageAssets",{ids:ue});let z=!1;if(Array.isArray(de)&&de.length&&de.forEach(Y=>{const ie=u.value.find(te=>te.id===Y.id);ie&&(ie.state==="生成中"&&Y.state!=="生成中"&&(z=!0),ie.state=Y.state,Y.filePath!==void 0&&(ie.filePath=Y.filePath))}),z)try{const{data:Y}=await mn.post("/cornerScape/getAllAssets",{projectId:(ee=r.value)==null?void 0:ee.id,type:n.value});if(Y.forEach(ie=>{const te=u.value.find(Z=>Z.id===ie.id);te&&(te.historyImages=ie.historyImages)}),S.value){const ie=Y.find(te=>te.id===S.value.id);ie&&(S.value.historyImages=ie.historyImages)}}catch(Y){console.error("刷新历史图片失败:",Y)}}catch(de){console.error("轮询图片生成状态失败:",de)}}function re(){H||(H=setInterval(async()=>{if(j.value.length===0){J();return}await G()},3e3))}function J(){H&&(clearInterval(H),H=null)}function oe(){$||($=setInterval(async()=>{if(W.value.length===0){se();return}await q()},3e3))}function se(){$&&(clearInterval($),$=null)}return pt(j,ue=>{ue.length>0?re():J()}),pt(W,ue=>{ue.length>0?oe():se()}),(ue,ee)=>{const de=Si,z=hL,Y=p2,ie=U4e,te=pA,Z=A2,he=km,pe=py,Ce=Xy,Qe=Wc,ke=y1,me=jre,_e=Zh,Te=Sg,De=c2,Ye=dL,ot=b3i;return xe(),Ge("div",cAs,[ge("div",dAs,[c(he,{shadow:"",title:ue.$t("workbench.cornerScape.batchSettings"),class:"card"},{default:Oe(()=>[c(Z,{labelAlign:"top"},{default:Oe(()=>[c(Y,{label:ue.$t("workbench.cornerScape.quickActions")},{default:Oe(()=>[ge("div",uAs,[c(de,{theme:"primary",variant:"outline",onClick:ee[0]||(ee[0]=We=>O())},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectPromptEmpty")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:ee[1]||(ee[1]=We=>w(""))},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectUngenerated")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:ee[2]||(ee[2]=We=>w("已完成"))},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectGenerated")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:ee[3]||(ee[3]=We=>w("生成失败"))},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectFailed")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:y},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.invertSelection")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:C},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.clearSelection")),1)]),_:1}),c(z,{images:Ae(A),closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:We})=>[c(de,{theme:"primary",variant:"outline",disabled:!Ae(p),onClick:et=>Ae(p)&&We()},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.batchPreview")),1)]),_:1},8,["disabled","onClick"])]),_:1},8,["images"])])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.assetTypeFilter")},{default:Oe(()=>[c(ie,{onChange:v,modelValue:Ae(n),"onUpdate:modelValue":ee[4]||(ee[4]=We=>Fn(n)?n.value=We:null),options:Ae(d),class:"filterGroup"},null,8,["modelValue","options"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.genModel")},{default:Oe(()=>[c(T8,{modelValue:Ae(o),"onUpdate:modelValue":ee[5]||(ee[5]=We=>Fn(o)?o.value=We:null),type:"image"},null,8,["modelValue"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.resolution")},{default:Oe(()=>[c(te,{modelValue:Ae(s),"onUpdate:modelValue":ee[6]||(ee[6]=We=>Fn(s)?s.value=We:null),placeholder:ue.$t("workbench.cornerScape.resolutionPh"),options:[{label:"1K",value:"1K"},{label:"2K",value:"2K"},{label:"4K",value:"4K"}]},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(Y,null,{default:Oe(()=>[c(de,{theme:"primary",block:"",onClick:I},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.batchGenerationPrompt")),1)]),_:1}),c(de,{theme:"primary",block:"",onClick:F,style:{"margin-left":"10px"}},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.startBatch")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),ge("div",hAs,[(xe(!0),Ge(sn,null,Bi(Ae(u),We=>uu((xe(),Ut(he,{shadow:"",class:"card",key:We.id,onClick:et=>D(We)},{default:Oe(()=>[ge("div",fAs,[c(pe,{class:"selectBox",checked:Ae(k).includes(We.id),onClick:ee[7]||(ee[7]=Mr(()=>{},["stop"])),onChange:et=>b(We.id)},null,8,["checked","onChange"]),!We.state&&We.promptState!=="生成中"?(xe(),Ut(Ce,{key:0,type:"maintenance",title:ue.$t("workbench.cornerScape.waitingGen")},null,8,["title"])):We.state==="生成中"||We.promptState==="生成中"?(xe(),Ge("div",gAs,[c(Qe),ge("span",mAs,Pe(We.promptState==="生成中"?ue.$t("workbench.cornerScape.generatingPrompt"):ue.$t("workbench.cornerScape.generating")),1)])):We.state==="生成失败"?(xe(),Ut(ke,{key:2,content:We.errorReason},{default:Oe(()=>[c(Ce,{type:"fail",title:ue.$t("workbench.cornerScape.genFailed")},null,8,["title"])]),_:1},8,["content"])):(xe(),Ut(_e,{key:3,class:"image",src:We.filePath??void 0,fit:"contain",preview:!0,lazy:!0},{error:Oe(()=>[c(Ce,{type:"fail",title:ue.$t("workbench.cornerScape.imageError")},null,8,["title"])]),overlayContent:Oe(()=>[ge("div",kAs,[c(me,{src:We.filePath,position:"br"},null,8,["src"])])]),_:2},1032,["src"]))]),ge("div",vAs,[ge("div",AAs,Pe(We.name),1),ge("div",pAs,[c(Te,{size:"small",variant:"light-outline",theme:"warning",class:"typeTag"},{default:Oe(()=>[Bt(Pe(We.type==="role"?ue.$t("workbench.cornerScape.typeRole"):We.type==="scene"?ue.$t("workbench.cornerScape.typeScene"):We.type==="tool"?ue.$t("workbench.cornerScape.typeTool"):ue.$t("workbench.cornerScape.typeUnknown")),1)]),_:2},1024),We.model?(xe(),Ut(Te,{key:0,size:"small",variant:"outline",class:"stateTag"},{default:Oe(()=>[Bt(Pe(We.model),1)]),_:2},1024)):nn("",!0),We.resolution?(xe(),Ut(Te,{key:1,size:"small",variant:"outline"},{default:Oe(()=>[Bt(Pe(We.resolution),1)]),_:2},1024)):nn("",!0)]),We.describe?(xe(),Ge("div",bAs,Pe(We.type==="role"?ue.$t("workbench.cornerScape.typeRole"):We.type==="scene"?ue.$t("workbench.cornerScape.typeScene"):We.type==="tool"?ue.$t("workbench.cornerScape.typeTool"):ue.$t("workbench.cornerScape.typeUnknown"))+Pe(ue.$t("workbench.cornerScape.descriptionSuffix"))+Pe(We.describe),1)):nn("",!0)])]),_:2},1032,["onClick"])),[[h1,Ae(u).length>0]])),128)),Ae(u).length===0?(xe(),Ut(Ce,{key:0,type:"empty",title:ue.$t("workbench.cornerScape.operateScriptFirst")},null,8,["title"])):nn("",!0),c(ot,{closeBtn:!0,closeOnEscKeydown:"",showOverlay:!1,footer:!1,visible:Ae(_),"onUpdate:visible":ee[11]||(ee[11]=We=>Fn(_)?_.value=We:null),size:"480px"},{header:Oe(()=>{var We;return[ge("div",wAs,[ge("span",null,Pe((We=Ae(S))==null?void 0:We.name)+" - "+Pe(ue.$t("workbench.cornerScape.individualConfig")),1),c(Te,{size:"medium",variant:"light-outline",theme:"warning"},{default:Oe(()=>{var et,st,Me;return[Bt(Pe(((et=Ae(S))==null?void 0:et.type)==="role"?ue.$t("workbench.cornerScape.typeRole"):((st=Ae(S))==null?void 0:st.type)==="scene"?ue.$t("workbench.cornerScape.typeScene"):((Me=Ae(S))==null?void 0:Me.type)==="tool"?ue.$t("workbench.cornerScape.typeTool"):ue.$t("workbench.cornerScape.typeUnknown")),1)]}),_:1})])]}),default:Oe(()=>[Ae(S)?(xe(),Ge("div",OAs,[Ae(S).state?Ae(S).state==="生成中"?(xe(),Ge("div",yAs,[c(Qe),ge("span",CAs,Pe(ue.$t("workbench.cornerScape.generating")),1)])):Ae(S).state==="生成失败"?(xe(),Ut(Ce,{key:2,type:"fail",title:ue.$t("workbench.cornerScape.genFailed")},null,8,["title"])):Ae(S).filePath?(xe(),Ut(_e,{key:3,class:"image",src:Ae(S).filePath,fit:"contain"},{error:Oe(()=>[c(Ce,{type:"fail",title:ue.$t("workbench.cornerScape.imageError")},null,8,["title"])]),overlayContent:Oe(()=>[ge("div",_As,[c(me,{src:Ae(S).filePath,position:"br"},null,8,["src"])])]),_:1},8,["src"])):(xe(),Ut(Ce,{key:4,type:"maintenance",title:ue.$t("workbench.cornerScape.noImage")},null,8,["title"])):(xe(),Ut(Ce,{key:0,type:"maintenance",title:ue.$t("workbench.cornerScape.waitingGen")},null,8,["title"]))])):nn("",!0),Ae(S)?(xe(),Ut(Z,{key:1,labelAlign:"top"},{default:Oe(()=>[c(Y,{label:ue.$t("workbench.cornerScape.history")},{default:Oe(()=>[ge("div",SAs,[(xe(!0),Ge(sn,null,Bi(Ae(S).historyImages,We=>(xe(),Ge("div",{key:We.id,class:Eo(["historyImageItem",{selected:Ae(L)===We.id}]),onClick:Mr(et=>E(We.id),["stop"])},[c(_e,{src:We.filePath,style:{width:"100px",minWidth:"100px",height:"100px"},lazy:!0,fit:"contain"},null,8,["src"])],10,LAs))),128))])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.genModel")},{default:Oe(()=>[c(T8,{modelValue:Ae(o),"onUpdate:modelValue":ee[8]||(ee[8]=We=>Fn(o)?o.value=We:null),type:"image"},null,8,["modelValue"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.resolution")},{default:Oe(()=>[c(te,{modelValue:Ae(T).resolution,"onUpdate:modelValue":ee[9]||(ee[9]=We=>Ae(T).resolution=We),placeholder:ue.$t("workbench.cornerScape.resolutionPh"),options:a},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.promptLabel")},{default:Oe(()=>[c(Qe,{style:{width:"100%"},loading:Ae(S).promptState=="生成中"},{default:Oe(()=>[c(De,{modelValue:Ae(T).prompt,"onUpdate:modelValue":ee[10]||(ee[10]=We=>Ae(T).prompt=We),placeholder:ue.$t("workbench.cornerScape.promptPh"),autosize:{minRows:4,maxRows:10},disabled:Ae(B),onBlur:M},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["loading"])]),_:1},8,["label"]),c(Y,null,{default:Oe(()=>[ge("div",xAs,[c(de,{theme:"default",variant:"outline",loading:Ae(B),onClick:R,disabled:Ae(S).promptState=="生成中"},{icon:Oe(()=>[c(Ye,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ue.$t("workbench.cornerScape.aiPolish")),1)]),_:1},8,["loading","disabled"]),c(de,{theme:"primary",onClick:Q,disabled:Ae(S).state=="生成中"},{icon:Oe(()=>[c(Ye,{name:"refresh"})]),default:Oe(()=>[Bt(" "+Pe(ue.$t("workbench.cornerScape.regenerate")),1)]),_:1},8,["disabled"])])]),_:1})]),_:1})):nn("",!0)]),_:1},8,["visible"])])])}}}),TAs=oo(EAs,[["__scopeId","data-v-6f5829b2"]]),QAs=Object.freeze(Object.defineProperty({__proto__:null,default:TAs},Symbol.toStringTag,{value:"Module"}));function xte(e){return vz()?(YQ(e),!0):!1}function wS(e){return typeof e=="function"?e():Ae(e)}const DAs=typeof window<"u"&&typeof document<"u",BAs=e=>typeof e<"u",RAs=Object.prototype.toString,IAs=e=>RAs.call(e)==="[object Object]",MAs=()=>{};function PAs(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const kYn=e=>e();function FAs(e=kYn){const t=fe(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:d6(t),pause:n,resume:r,eventFilter:(...s)=>{t.value&&e(...s)}}}function y0n(e,t=!1,n="Timeout"){return new Promise((r,o)=>{setTimeout(t?()=>o(n):r,e)})}function NAs(e,t,n={}){const{eventFilter:r=kYn,...o}=n;return pt(e,PAs(r,t),o)}function rF(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:a,resume:l,isActive:d}=FAs(r);return{stop:NAs(e,t,{...o,eventFilter:s}),pause:a,resume:l,isActive:d}}function UAs(e,t={}){if(!Fn(e))return Li(e);const n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const r in e.value)n[r]=QYe(()=>({get(){return e.value[r]},set(o){var s;if((s=wS(t.replaceRef))!=null?s:!0)if(Array.isArray(e.value)){const l=[...e.value];l[r]=o,e.value=l}else{const l={...e.value,[r]:o};Object.setPrototypeOf(l,Object.getPrototypeOf(e.value)),e.value=l}else e.value[r]=o}}));return n}function xGe(e,t=!1){function n(g,{flush:m="sync",deep:v=!1,timeout:f,throwOnTimeout:k}={}){let A=null;const b=[new Promise(w=>{A=pt(e,O=>{g(O)!==t&&(A==null||A(),w(O))},{flush:m,deep:v,immediate:!0})})];return f!=null&&b.push(y0n(f,k).then(()=>wS(e)).finally(()=>A==null?void 0:A())),Promise.race(b)}function r(g,m){if(!Fn(g))return n(O=>O===g,m);const{flush:v="sync",deep:f=!1,timeout:k,throwOnTimeout:A}=m??{};let p=null;const w=[new Promise(O=>{p=pt([e,g],([y,C])=>{t!==(y===C)&&(p==null||p(),O(y))},{flush:v,deep:f,immediate:!0})})];return k!=null&&w.push(y0n(k,A).then(()=>wS(e)).finally(()=>(p==null||p(),wS(e)))),Promise.race(w)}function o(g){return n(m=>!!m,g)}function s(g){return r(null,g)}function a(g){return r(void 0,g)}function l(g){return n(Number.isNaN,g)}function d(g,m){return n(v=>{const f=Array.from(v);return f.includes(g)||f.includes(wS(g))},m)}function u(g){return h(1,g)}function h(g=1,m){let v=-1;return n(()=>(v+=1,v>=g),m)}return Array.isArray(wS(e))?{toMatch:n,toContains:d,changed:u,changedTimes:h,get not(){return xGe(e,!t)}}:{toMatch:n,toBe:r,toBeTruthy:o,toBeNull:s,toBeNaN:l,toBeUndefined:a,changed:u,changedTimes:h,get not(){return xGe(e,!t)}}}function EGe(e){return xGe(e)}function jAs(e){var t;const n=wS(e);return(t=n==null?void 0:n.$el)!=null?t:n}const vYn=DAs?window:void 0;function AYn(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=vYn):[t,n,r,o]=e,!t)return MAs;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],a=()=>{s.forEach(h=>h()),s.length=0},l=(h,g,m,v)=>(h.addEventListener(g,m,v),()=>h.removeEventListener(g,m,v)),d=pt(()=>[jAs(t),wS(o)],([h,g])=>{if(a(),!h)return;const m=IAs(g)?{...g}:g;s.push(...n.flatMap(v=>r.map(f=>l(h,v,f,m))))},{immediate:!0,flush:"post"}),u=()=>{d(),a()};return xte(u),u}function WAs(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function C0n(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:o=vYn,eventName:s="keydown",passive:a=!1,dedupe:l=!1}=r,d=WAs(t);return AYn(o,s,h=>{h.repeat&&wS(l)||d(h)&&n(h)},a)}function VAs(e){return JSON.parse(JSON.stringify(e))}function rRe(e,t,n,r={}){var o,s,a;const{clone:l=!1,passive:d=!1,eventName:u,deep:h=!1,defaultValue:g,shouldEmit:m}=r,v=ps(),f=n||(v==null?void 0:v.emit)||((o=v==null?void 0:v.$emit)==null?void 0:o.bind(v))||((a=(s=v==null?void 0:v.proxy)==null?void 0:s.$emit)==null?void 0:a.bind(v==null?void 0:v.proxy));let k=u;t||(t="modelValue"),k=k||`update:${t.toString()}`;const A=w=>l?typeof l=="function"?l(w):VAs(w):w,p=()=>BAs(e[t])?A(e[t]):g,b=w=>{m?m(w)&&f(k,w):f(k,w)};if(d){const w=p(),O=fe(w);let y=!1;return pt(()=>e[t],C=>{y||(y=!0,O.value=A(C),ai(()=>y=!1))}),pt(O,C=>{!y&&(C!==e[t]||h)&&b(C)},{deep:h}),O}else return X({get(){return p()},set(w){b(w)}})}var zAs={value:()=>{}};function UOe(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}qhe.prototype=UOe.prototype={constructor:qhe,on:function(e,t){var n=this._,r=HAs(e+"",n),o,s=-1,a=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(o),r=0,o,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),S0n.hasOwnProperty(t)?{space:S0n[t],local:e}:e}function XAs(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===TGe&&t.documentElement.namespaceURI===TGe?t.createElement(e):t.createElementNS(n,e)}}function GAs(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pYn(e){var t=jOe(e);return(t.local?GAs:XAs)(t)}function YAs(){}function Mst(e){return e==null?YAs:function(){return this.querySelector(e)}}function ZAs(e){typeof e!="function"&&(e=Mst(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o=w&&(w=b+1);!(y=A[w])&&++w=0;)(a=r[o])&&(s&&a.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(a,s),s=a);return this}function w4s(e){e||(e=O4s);function t(g,m){return g&&m?e(g.__data__,m.__data__):!g-!m}for(var n=this._groups,r=n.length,o=new Array(r),s=0;st?1:e>=t?0:NaN}function y4s(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function C4s(){return Array.from(this)}function _4s(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?M4s:typeof t=="function"?F4s:P4s)(e,t,n??"")):oz(this.node(),e)}function oz(e,t){return e.style.getPropertyValue(t)||CYn(e).getComputedStyle(e,null).getPropertyValue(t)}function U4s(e){return function(){delete this[e]}}function j4s(e,t){return function(){this[e]=t}}function W4s(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function V4s(e,t){return arguments.length>1?this.each((t==null?U4s:typeof t=="function"?W4s:j4s)(e,t)):this.node()[e]}function _Yn(e){return e.trim().split(/^|\s+/)}function Pst(e){return e.classList||new SYn(e)}function SYn(e){this._node=e,this._names=_Yn(e.getAttribute("class")||"")}SYn.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function LYn(e,t){for(var n=Pst(e),r=-1,o=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function vps(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,s;n()=>e;function QGe(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:s,x:a,y:l,dx:d,dy:u,dispatch:h}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:h}})}QGe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Lps(e){return!e.ctrlKey&&!e.button}function xps(){return this.parentNode}function Eps(e,t){return t??{x:e.x,y:e.y}}function Tps(){return navigator.maxTouchPoints||"ontouchstart"in this}function Qps(){var e=Lps,t=xps,n=Eps,r=Tps,o={},s=UOe("start","drag","end"),a=0,l,d,u,h,g=0;function m(O){O.on("mousedown.drag",v).filter(r).on("touchstart.drag",A).on("touchmove.drag",p,Sps).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(O,y){if(!(h||!e.call(this,O,y))){var C=w(this,t.call(this,O,y),O,y,"mouse");C&&($b(O.view).on("mousemove.drag",f,Ete).on("mouseup.drag",k,Ete),QYn(O.view),oRe(O),u=!1,l=O.clientX,d=O.clientY,C("start",O))}}function f(O){if(gj(O),!u){var y=O.clientX-l,C=O.clientY-d;u=y*y+C*C>g}o.mouse("drag",O)}function k(O){$b(O.view).on("mousemove.drag mouseup.drag",null),DYn(O.view,u),gj(O),o.mouse("end",O)}function A(O,y){if(e.call(this,O,y)){var C=O.changedTouches,_=t.call(this,O,y),S=C.length,L,E;for(L=0;L>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Qde(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Qde(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Bps.exec(e))?new qk(t[1],t[2],t[3],1):(t=Rps.exec(e))?new qk(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Ips.exec(e))?Qde(t[1],t[2],t[3],t[4]):(t=Mps.exec(e))?Qde(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Pps.exec(e))?B0n(t[1],t[2]/100,t[3]/100,1):(t=Fps.exec(e))?B0n(t[1],t[2]/100,t[3]/100,t[4]):L0n.hasOwnProperty(e)?T0n(L0n[e]):e==="transparent"?new qk(NaN,NaN,NaN,0):null}function T0n(e){return new qk(e>>16&255,e>>8&255,e&255,1)}function Qde(e,t,n,r){return r<=0&&(e=t=n=NaN),new qk(e,t,n,r)}function jps(e){return e instanceof Vre||(e=KR(e)),e?(e=e.rgb(),new qk(e.r,e.g,e.b,e.opacity)):new qk}function DGe(e,t,n,r){return arguments.length===1?jps(e):new qk(e,t,n,r??1)}function qk(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Fst(qk,DGe,BYn(Vre,{brighter(e){return e=e==null?M2e:Math.pow(M2e,e),new qk(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Tte:Math.pow(Tte,e),new qk(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new qk(SD(this.r),SD(this.g),SD(this.b),P2e(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Q0n,formatHex:Q0n,formatHex8:Wps,formatRgb:D0n,toString:D0n}));function Q0n(){return`#${_Q(this.r)}${_Q(this.g)}${_Q(this.b)}`}function Wps(){return`#${_Q(this.r)}${_Q(this.g)}${_Q(this.b)}${_Q((isNaN(this.opacity)?1:this.opacity)*255)}`}function D0n(){const e=P2e(this.opacity);return`${e===1?"rgb(":"rgba("}${SD(this.r)}, ${SD(this.g)}, ${SD(this.b)}${e===1?")":`, ${e})`}`}function P2e(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function SD(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function _Q(e){return e=SD(e),(e<16?"0":"")+e.toString(16)}function B0n(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Xb(e,t,n,r)}function RYn(e){if(e instanceof Xb)return new Xb(e.h,e.s,e.l,e.opacity);if(e instanceof Vre||(e=KR(e)),!e)return new Xb;if(e instanceof Xb)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),s=Math.max(t,n,r),a=NaN,l=s-o,d=(s+o)/2;return l?(t===s?a=(n-r)/l+(n0&&d<1?0:a,new Xb(a,l,d,e.opacity)}function Vps(e,t,n,r){return arguments.length===1?RYn(e):new Xb(e,t,n,r??1)}function Xb(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Fst(Xb,Vps,BYn(Vre,{brighter(e){return e=e==null?M2e:Math.pow(M2e,e),new Xb(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Tte:Math.pow(Tte,e),new Xb(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new qk(sRe(e>=240?e-240:e+120,o,r),sRe(e,o,r),sRe(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new Xb(R0n(this.h),Dde(this.s),Dde(this.l),P2e(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=P2e(this.opacity);return`${e===1?"hsl(":"hsla("}${R0n(this.h)}, ${Dde(this.s)*100}%, ${Dde(this.l)*100}%${e===1?")":`, ${e})`}`}}));function R0n(e){return e=(e||0)%360,e<0?e+360:e}function Dde(e){return Math.max(0,Math.min(1,e||0))}function sRe(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Nst=e=>()=>e;function zps(e,t){return function(n){return e+n*t}}function Hps(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function $ps(e){return(e=+e)==1?IYn:function(t,n){return n-t?Hps(t,n,e):Nst(isNaN(t)?n:t)}}function IYn(e,t){var n=t-e;return n?zps(e,n):Nst(isNaN(e)?t:e)}const F2e=function e(t){var n=$ps(t);function r(o,s){var a=n((o=DGe(o)).r,(s=DGe(s)).r),l=n(o.g,s.g),d=n(o.b,s.b),u=IYn(o.opacity,s.opacity);return function(h){return o.r=a(h),o.g=l(h),o.b=d(h),o.opacity=u(h),o+""}}return r.gamma=e,r}(1);function Xps(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(s){for(o=0;on&&(s=t.slice(n,s),l[a]?l[a]+=s:l[++a]=s),(r=r[0])===(o=o[0])?l[a]?l[a]+=o:l[++a]=o:(l[++a]=null,d.push({i:a,x:vO(r,o)})),n=aRe.lastIndex;return n180?h+=360:h-u>180&&(u+=360),m.push({i:g.push(o(g)+"rotate(",null,r)-2,x:vO(u,h)})):h&&g.push(o(g)+"rotate("+h+r)}function l(u,h,g,m){u!==h?m.push({i:g.push(o(g)+"skewX(",null,r)-2,x:vO(u,h)}):h&&g.push(o(g)+"skewX("+h+r)}function d(u,h,g,m,v,f){if(u!==g||h!==m){var k=v.push(o(v)+"scale(",null,",",null,")");f.push({i:k-4,x:vO(u,g)},{i:k-2,x:vO(h,m)})}else(g!==1||m!==1)&&v.push(o(v)+"scale("+g+","+m+")")}return function(u,h){var g=[],m=[];return u=e(u),h=e(h),s(u.translateX,u.translateY,h.translateX,h.translateY,g,m),a(u.rotate,h.rotate,g,m),l(u.skewX,h.skewX,g,m),d(u.scaleX,u.scaleY,h.scaleX,h.scaleY,g,m),u=h=null,function(v){for(var f=-1,k=m.length,A;++f=0&&e._call.call(void 0,t),e=e._next;--sz}function P0n(){JR=(U2e=Dte.now())+WOe,sz=aY=0;try{lbs()}finally{sz=0,dbs(),JR=0}}function cbs(){var e=Dte.now(),t=e-U2e;t>NYn&&(WOe-=t,U2e=e)}function dbs(){for(var e,t=N2e,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:N2e=n);lY=e,IGe(r)}function IGe(e){if(!sz){aY&&(aY=clearTimeout(aY));var t=e-JR;t>24?(e<1/0&&(aY=setTimeout(P0n,e-Dte.now()-WOe)),aG&&(aG=clearInterval(aG))):(aG||(U2e=Dte.now(),aG=setInterval(cbs,NYn)),sz=1,UYn(P0n))}}function F0n(e,t,n){var r=new j2e;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var ubs=UOe("start","end","cancel","interrupt"),hbs=[],WYn=0,N0n=1,MGe=2,Jhe=3,U0n=4,PGe=5,efe=6;function VOe(e,t,n,r,o,s){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;fbs(e,n,{name:t,index:r,group:o,on:ubs,tween:hbs,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:WYn})}function jst(e,t){var n=H3(e,t);if(n.state>WYn)throw new Error("too late; already scheduled");return n}function uC(e,t){var n=H3(e,t);if(n.state>Jhe)throw new Error("too late; already running");return n}function H3(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function fbs(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=jYn(s,0,n.time);function s(u){n.state=N0n,n.timer.restart(a,n.delay,n.time),n.delay<=u&&a(u-n.delay)}function a(u){var h,g,m,v;if(n.state!==N0n)return d();for(h in r)if(v=r[h],v.name===n.name){if(v.state===Jhe)return F0n(a);v.state===U0n?(v.state=efe,v.timer.stop(),v.on.call("interrupt",e,e.__data__,v.index,v.group),delete r[h]):+hMGe&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function Vbs(e,t,n){var r,o,s=Wbs(t)?jst:uC;return function(){var a=s(this,e),l=a.on;l!==r&&(o=(r=l).copy()).on(t,n),a.on=o}}function zbs(e,t){var n=this._id;return arguments.length<2?H3(this.node(),n).on.on(e):this.each(Vbs(n,e,t))}function Hbs(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function $bs(){return this.on("end.remove",Hbs(this._id))}function Xbs(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Mst(e));for(var r=this._groups,o=r.length,s=new Array(o),a=0;a()=>e;function A3s(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function FS(e,t,n){this.k=e,this.x=t,this.y=n}FS.prototype={constructor:FS,scale:function(e){return e===1?this:new FS(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new FS(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var az=new FS(1,0,0);FS.prototype;function lRe(e){e.stopImmediatePropagation()}function lG(e){e.preventDefault(),e.stopImmediatePropagation()}function p3s(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function b3s(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function j0n(){return this.__zoom||az}function w3s(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function O3s(){return navigator.maxTouchPoints||"ontouchstart"in this}function y3s(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>s?(s+a)/2:Math.min(0,s)||Math.max(0,a))}function C3s(){var e=p3s,t=b3s,n=y3s,r=w3s,o=O3s,s=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],l=250,d=Khe,u=UOe("start","zoom","end"),h,g,m,v=500,f=150,k=0,A=10;function p(Q){Q.property("__zoom",j0n).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",E).filter(o).on("touchstart.zoom",T).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}p.transform=function(Q,M,B,R){var I=Q.selection?Q.selection():Q;I.property("__zoom",j0n),Q!==I?y(Q,M,B,R):I.interrupt().each(function(){C(this,arguments).event(R).start().zoom(null,typeof M=="function"?M.apply(this,arguments):M).end()})},p.scaleBy=function(Q,M,B,R){p.scaleTo(Q,function(){var I=this.__zoom.k,F=typeof M=="function"?M.apply(this,arguments):M;return I*F},B,R)},p.scaleTo=function(Q,M,B,R){p.transform(Q,function(){var I=t.apply(this,arguments),F=this.__zoom,j=B==null?O(I):typeof B=="function"?B.apply(this,arguments):B,W=F.invert(j),H=typeof M=="function"?M.apply(this,arguments):M;return n(w(b(F,H),j,W),I,a)},B,R)},p.translateBy=function(Q,M,B,R){p.transform(Q,function(){return n(this.__zoom.translate(typeof M=="function"?M.apply(this,arguments):M,typeof B=="function"?B.apply(this,arguments):B),t.apply(this,arguments),a)},null,R)},p.translateTo=function(Q,M,B,R,I){p.transform(Q,function(){var F=t.apply(this,arguments),j=this.__zoom,W=R==null?O(F):typeof R=="function"?R.apply(this,arguments):R;return n(az.translate(W[0],W[1]).scale(j.k).translate(typeof M=="function"?-M.apply(this,arguments):-M,typeof B=="function"?-B.apply(this,arguments):-B),F,a)},R,I)};function b(Q,M){return M=Math.max(s[0],Math.min(s[1],M)),M===Q.k?Q:new FS(M,Q.x,Q.y)}function w(Q,M,B){var R=M[0]-B[0]*Q.k,I=M[1]-B[1]*Q.k;return R===Q.x&&I===Q.y?Q:new FS(Q.k,R,I)}function O(Q){return[(+Q[0][0]+ +Q[1][0])/2,(+Q[0][1]+ +Q[1][1])/2]}function y(Q,M,B,R){Q.on("start.zoom",function(){C(this,arguments).event(R).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(R).end()}).tween("zoom",function(){var I=this,F=arguments,j=C(I,F).event(R),W=t.apply(I,F),H=B==null?O(W):typeof B=="function"?B.apply(I,F):B,$=Math.max(W[1][0]-W[0][0],W[1][1]-W[0][1]),G=I.__zoom,q=typeof M=="function"?M.apply(I,F):M,re=d(G.invert(H).concat($/G.k),q.invert(H).concat($/q.k));return function(J){if(J===1)J=q;else{var oe=re(J),se=$/oe[2];J=new FS(se,H[0]-oe[0]*se,H[1]-oe[1]*se)}j.zoom(null,J)}})}function C(Q,M,B){return!B&&Q.__zooming||new _(Q,M)}function _(Q,M){this.that=Q,this.args=M,this.active=0,this.sourceEvent=null,this.extent=t.apply(Q,M),this.taps=0}_.prototype={event:function(Q){return Q&&(this.sourceEvent=Q),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(Q,M){return this.mouse&&Q!=="mouse"&&(this.mouse[1]=M.invert(this.mouse[0])),this.touch0&&Q!=="touch"&&(this.touch0[1]=M.invert(this.touch0[0])),this.touch1&&Q!=="touch"&&(this.touch1[1]=M.invert(this.touch1[0])),this.that.__zoom=M,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(Q){var M=$b(this.that).datum();u.call(Q,this.that,new A3s(Q,{sourceEvent:this.sourceEvent,target:p,transform:this.that.__zoom,dispatch:u}),M)}};function S(Q,...M){if(!e.apply(this,arguments))return;var B=C(this,M).event(Q),R=this.__zoom,I=Math.max(s[0],Math.min(s[1],R.k*Math.pow(2,r.apply(this,arguments)))),F=Kw(Q);if(B.wheel)(B.mouse[0][0]!==F[0]||B.mouse[0][1]!==F[1])&&(B.mouse[1]=R.invert(B.mouse[0]=F)),clearTimeout(B.wheel);else{if(R.k===I)return;B.mouse=[F,R.invert(F)],tfe(this),B.start()}lG(Q),B.wheel=setTimeout(j,f),B.zoom("mouse",n(w(b(R,I),B.mouse[0],B.mouse[1]),B.extent,a));function j(){B.wheel=null,B.end()}}function L(Q,...M){if(m||!e.apply(this,arguments))return;var B=Q.currentTarget,R=C(this,M,!0).event(Q),I=$b(Q.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",$,!0),F=Kw(Q,B),j=Q.clientX,W=Q.clientY;QYn(Q.view),lRe(Q),R.mouse=[F,this.__zoom.invert(F)],tfe(this),R.start();function H(G){if(lG(G),!R.moved){var q=G.clientX-j,re=G.clientY-W;R.moved=q*q+re*re>k}R.event(G).zoom("mouse",n(w(R.that.__zoom,R.mouse[0]=Kw(G,B),R.mouse[1]),R.extent,a))}function $(G){I.on("mousemove.zoom mouseup.zoom",null),DYn(G.view,R.moved),lG(G),R.event(G).end()}}function E(Q,...M){if(e.apply(this,arguments)){var B=this.__zoom,R=Kw(Q.changedTouches?Q.changedTouches[0]:Q,this),I=B.invert(R),F=B.k*(Q.shiftKey?.5:2),j=n(w(b(B,F),R,I),t.apply(this,M),a);lG(Q),l>0?$b(this).transition().duration(l).call(y,j,R,Q):$b(this).call(p.transform,j,R,Q)}}function T(Q,...M){if(e.apply(this,arguments)){var B=Q.touches,R=B.length,I=C(this,M,Q.changedTouches.length===R).event(Q),F,j,W,H;for(lRe(Q),j=0;j(e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom",e))(Vi||{}),Vst=(e=>(e.Partial="partial",e.Full="full",e))(Vst||{}),FT=(e=>(e.Bezier="default",e.SimpleBezier="simple-bezier",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e))(FT||{}),H6=(e=>(e.Strict="strict",e.Loose="loose",e))(H6||{}),FGe=(e=>(e.Arrow="arrow",e.ArrowClosed="arrowclosed",e))(FGe||{}),lq=(e=>(e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal",e))(lq||{}),$Yn=(e=>(e.TopLeft="top-left",e.TopCenter="top-center",e.TopRight="top-right",e.BottomLeft="bottom-left",e.BottomCenter="bottom-center",e.BottomRight="bottom-right",e))($Yn||{});const _3s=["INPUT","SELECT","TEXTAREA"],S3s=typeof document<"u"?document:null;function NGe(e){var t,n;const r=((n=(t=e.composedPath)==null?void 0:t.call(e))==null?void 0:n[0])||e.target,o=typeof(r==null?void 0:r.hasAttribute)=="function"?r.hasAttribute("contenteditable"):!1,s=typeof(r==null?void 0:r.closest)=="function"?r.closest(".nokey"):null;return _3s.includes(r==null?void 0:r.nodeName)||o||!!s}function L3s(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function W0n(e,t,n,r){const o=t.replace("+",` + */var JGn=Cm(VXn),eYn=Cm(B0s);Cm(OGn);Cm(pGe);Cm(yGn);Cm(P0s,"t-chat-thinking");Cm(T2s,"t-chatbot");var tYn=Cm(WXn,"t-chat-message");Cm(AGe);Cm(Q2s,"t-chat-search-content");Cm(D2s,"t-chat-suggestion-content");Cm(AGn,"t-chat-markdown");Cm(VXn);Cm(OGn);Cm(T0s);Cm(bGe);Cm(x0s);const wGe={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(e,{emit:t}){const n=t,r=e,o=TAn(),s=fe([]),a=X(()=>s.value.reduce((J,oe)=>(J[~~oe.id]=oe)&&J,{})),l=X(()=>s.value.length),d=fe(null),u=fe(!1),h=fe({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),g=fe({splitter:null,timeoutId:null}),m=X(()=>({[`splitpanes splitpanes--${r.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":h.value.dragging})),v=()=>{document.addEventListener("mousemove",A,{passive:!1}),document.addEventListener("mouseup",p),"ontouchstart"in window&&(document.addEventListener("touchmove",A,{passive:!1}),document.addEventListener("touchend",p))},f=()=>{document.removeEventListener("mousemove",A,{passive:!1}),document.removeEventListener("mouseup",p),"ontouchstart"in window&&(document.removeEventListener("touchmove",A,{passive:!1}),document.removeEventListener("touchend",p))},k=(J,oe)=>{const se=J.target.closest(".splitpanes__splitter");if(se){const{left:le,top:ue}=se.getBoundingClientRect(),{clientX:ee,clientY:de}="ontouchstart"in window&&J.touches?J.touches[0]:J;h.value.cursorOffset=r.horizontal?de-ue:ee-le}v(),h.value.mouseDown=!0,h.value.activeSplitter=oe},A=J=>{h.value.mouseDown&&(J.preventDefault(),h.value.dragging=!0,requestAnimationFrame(()=>{_(y(J)),q("resize",{event:J},!0)}))},p=J=>{h.value.dragging&&(window.getSelection().removeAllRanges(),q("resized",{event:J},!0)),h.value.mouseDown=!1,h.value.activeSplitter=null,setTimeout(()=>{h.value.dragging=!1,f()},100)},b=(J,oe)=>{"ontouchstart"in window&&(J.preventDefault(),g.value.splitter===oe?(clearTimeout(g.value.timeoutId),g.value.timeoutId=null,w(J,oe),g.value.splitter=null):(g.value.splitter=oe,g.value.timeoutId=setTimeout(()=>g.value.splitter=null,500))),h.value.dragging||q("splitter-click",{event:J,index:oe},!0)},w=(J,oe)=>{if(q("splitter-dblclick",{event:J,index:oe},!0),r.maximizePanes){let se=0;s.value=s.value.map((le,ue)=>(le.size=ue===oe?le.max:le.min,ue!==oe&&(se+=le.min),le)),s.value[oe].size-=se,q("pane-maximize",{event:J,index:oe,pane:s.value[oe]}),q("resized",{event:J,index:oe},!0)}},O=(J,oe)=>{q("pane-click",{event:J,index:a.value[oe].index,pane:a.value[oe]})},y=J=>{const oe=d.value.getBoundingClientRect(),{clientX:se,clientY:le}="ontouchstart"in window&&J.touches?J.touches[0]:J;return{x:se-(r.horizontal?0:h.value.cursorOffset)-oe.left,y:le-(r.horizontal?h.value.cursorOffset:0)-oe.top}},C=J=>{J=J[r.horizontal?"y":"x"];const oe=d.value[r.horizontal?"clientHeight":"clientWidth"];return r.rtl&&!r.horizontal&&(J=oe-J),J*100/oe},_=J=>{const oe=h.value.activeSplitter;let se={prevPanesSize:L(oe),nextPanesSize:E(oe),prevReachedMinPanes:0,nextReachedMinPanes:0};const le=0+(r.pushOtherPanes?0:se.prevPanesSize),ue=100-(r.pushOtherPanes?0:se.nextPanesSize),ee=Math.max(Math.min(C(J),ue),le);let de=[oe,oe+1],z=s.value[de[0]]||null,Y=s.value[de[1]]||null;const ie=z.max<100&&ee>=z.max+se.prevPanesSize,te=Y.max<100&&ee<=100-(Y.max+E(oe+1));if(ie||te){ie?(z.size=z.max,Y.size=Math.max(100-z.max-se.prevPanesSize-se.nextPanesSize,0)):(z.size=Math.max(100-Y.max-se.prevPanesSize-E(oe+1),0),Y.size=Y.max);return}if(r.pushOtherPanes){const Z=S(se,ee);if(!Z)return;({sums:se,panesToResize:de}=Z),z=s.value[de[0]]||null,Y=s.value[de[1]]||null}z!==null&&(z.size=Math.min(Math.max(ee-se.prevPanesSize-se.prevReachedMinPanes,z.min),z.max)),Y!==null&&(Y.size=Math.min(Math.max(100-ee-se.nextPanesSize-se.nextReachedMinPanes,Y.min),Y.max))},S=(J,oe)=>{const se=h.value.activeSplitter,le=[se,se+1];return oe{ee>le[0]&&ee<=se&&(ue.size=ue.min,J.prevReachedMinPanes+=ue.min)}),J.prevPanesSize=L(le[0]),le[0]===void 0)?(J.prevReachedMinPanes=0,s.value[0].size=s.value[0].min,s.value.forEach((ue,ee)=>{ee>0&&ee<=se&&(ue.size=ue.min,J.prevReachedMinPanes+=ue.min)}),s.value[le[1]].size=100-J.prevReachedMinPanes-s.value[0].min-J.prevPanesSize-J.nextPanesSize,null):oe>100-J.nextPanesSize-s.value[le[1]].min&&(le[1]=D(se).index,J.nextReachedMinPanes=0,le[1]>se+1&&s.value.forEach((ue,ee)=>{ee>se&&ee{ee=se+1&&(ue.size=ue.min,J.nextReachedMinPanes+=ue.min)}),s.value[le[0]].size=100-J.prevPanesSize-E(le[0]-1),null):{sums:J,panesToResize:le}},L=J=>s.value.reduce((oe,se,le)=>oe+(les.value.reduce((oe,se,le)=>oe+(le>J+1?se.size:0),0),T=J=>[...s.value].reverse().find(oe=>oe.indexoe.min)||{},D=J=>s.value.find(oe=>oe.index>J+1&&oe.size>oe.min)||{},P=()=>{var J;const oe=Array.from(((J=d.value)==null?void 0:J.children)||[]);for(const se of oe){const le=se.classList.contains("splitpanes__pane"),ue=se.classList.contains("splitpanes__splitter");!le&&!ue&&(se.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},Q=(J,oe,se=!1)=>{const le=J-1,ue=document.createElement("div");ue.classList.add("splitpanes__splitter"),se||(ue.onmousedown=ee=>k(ee,le),typeof window<"u"&&"ontouchstart"in window&&(ue.ontouchstart=ee=>k(ee,le)),ue.onclick=ee=>b(ee,le+1)),ue.ondblclick=ee=>w(ee,le+1),oe.parentNode.insertBefore(ue,oe)},M=J=>{J.onmousedown=void 0,J.onclick=void 0,J.ondblclick=void 0,J.remove()},B=()=>{var J;const oe=Array.from(((J=d.value)==null?void 0:J.children)||[]);for(const le of oe)le.className.includes("splitpanes__splitter")&&M(le);let se=0;for(const le of oe)le.className.includes("splitpanes__pane")&&(!se&&r.firstSplitter?Q(se,le,!0):se&&Q(se,le),se++)},R=({uid:J,...oe})=>{const se=a.value[J];for(const[le,ue]of Object.entries(oe))se[le]=ue},I=J=>{var oe;let se=-1;Array.from(((oe=d.value)==null?void 0:oe.children)||[]).some(le=>(le.className.includes("splitpanes__pane")&&se++,le.isSameNode(J.el))),s.value.splice(se,0,{...J,index:se}),s.value.forEach((le,ue)=>le.index=ue),u.value&&ai(()=>{B(),j({addedPane:s.value[se]}),q("pane-add",{pane:s.value[se]})})},F=J=>{const oe=s.value.findIndex(le=>le.id===J);s.value[oe].el=null;const se=s.value.splice(oe,1)[0];s.value.forEach((le,ue)=>le.index=ue),ai(()=>{B(),q("pane-remove",{pane:se}),j({removedPane:{...se}})})},j=(J={})=>{!J.addedPane&&!J.removedPane?H():s.value.some(oe=>oe.givenSize!==null||oe.min||oe.max<100)?$(J):W(),u.value&&q("resized")},W=()=>{const J=100/l.value;let oe=0;const se=[],le=[];for(const ue of s.value)ue.size=Math.max(Math.min(J,ue.max),ue.min),oe-=ue.size,ue.size>=ue.max&&se.push(ue.id),ue.size<=ue.min&&le.push(ue.id);oe>.1&&G(oe,se,le)},H=()=>{let J=100;const oe=[],se=[];let le=0;for(const ee of s.value)J-=ee.size,ee.givenSize!==null&&le++,ee.size>=ee.max&&oe.push(ee.id),ee.size<=ee.min&&se.push(ee.id);let ue=100;if(J>.1){for(const ee of s.value)ee.givenSize===null&&(ee.size=Math.max(Math.min(J/(l.value-le),ee.max),ee.min)),ue-=ee.size;ue>.1&&G(ue,oe,se)}},$=({addedPane:J,removedPane:oe}={})=>{let se=100/l.value,le=0;const ue=[],ee=[];((J==null?void 0:J.givenSize)??null)!==null&&(se=(100-J.givenSize)/(l.value-1));for(const de of s.value)le-=de.size,de.size>=de.max&&ue.push(de.id),de.size<=de.min&&ee.push(de.id);if(!(Math.abs(le)<.1)){for(const de of s.value)(J==null?void 0:J.givenSize)!==null&&(J==null?void 0:J.id)===de.id||(de.size=Math.max(Math.min(se,de.max),de.min)),le-=de.size,de.size>=de.max&&ue.push(de.id),de.size<=de.min&&ee.push(de.id);le>.1&&G(le,ue,ee)}},G=(J,oe,se)=>{let le;J>0?le=J/(l.value-oe.length):le=J/(l.value-se.length),s.value.forEach((ue,ee)=>{if(J>0&&!oe.includes(ue.id)){const de=Math.max(Math.min(ue.size+le,ue.max),ue.min),z=de-ue.size;J-=z,ue.size=de}else if(!se.includes(ue.id)){const de=Math.max(Math.min(ue.size+le,ue.max),ue.min),z=de-ue.size;J-=z,ue.size=de}}),Math.abs(J)>.1&&ai(()=>{u.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},q=(J,oe=void 0,se=!1)=>{const le=(oe==null?void 0:oe.index)??h.value.activeSplitter??null;n(J,{...oe,...le!==null&&{index:le},...se&&le!==null&&{prevPane:s.value[le-(r.firstSplitter?1:0)],nextPane:s.value[le+(r.firstSplitter?0:1)]},panes:s.value.map(ue=>({min:ue.min,max:ue.max,size:ue.size}))})};pt(()=>r.firstSplitter,()=>B()),An(()=>{P(),B(),j(),q("ready"),u.value=!0}),qs(()=>u.value=!1);const re=()=>{var J;return xn("div",{ref:d,class:m.value},(J=o.default)==null?void 0:J.call(o))};return Yi("panes",s),Yi("indexedPanes",a),Yi("horizontal",X(()=>r.horizontal)),Yi("requestUpdate",R),Yi("onPaneAdd",I),Yi("onPaneRemove",F),Yi("onPaneClick",O),(J,oe)=>(xe(),Ut(Bd(re)))}},PT={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){var t;const n=e,r=bt("requestUpdate"),o=bt("onPaneAdd"),s=bt("horizontal"),a=bt("onPaneRemove"),l=bt("onPaneClick"),d=(t=ps())==null?void 0:t.uid,u=bt("indexedPanes"),h=X(()=>u.value[d]),g=fe(null),m=X(()=>{const A=isNaN(n.size)||n.size===void 0?0:parseFloat(n.size);return Math.max(Math.min(A,f.value),v.value)}),v=X(()=>{const A=parseFloat(n.minSize);return isNaN(A)?0:A}),f=X(()=>{const A=parseFloat(n.maxSize);return isNaN(A)?100:A}),k=X(()=>{var A;return`${s.value?"height":"width"}: ${(A=h.value)==null?void 0:A.size}%`});return pt(()=>m.value,A=>r({uid:d,size:A})),pt(()=>v.value,A=>r({uid:d,min:A})),pt(()=>f.value,A=>r({uid:d,max:A})),An(()=>{o({id:d,el:g.value,min:v.value,max:f.value,givenSize:n.size===void 0?null:m.value,size:m.value})}),qs(()=>a(d)),(A,p)=>(xe(),Ge("div",{ref_key:"paneEl",ref:g,class:"splitpanes__pane",onClick:p[0]||(p[0]=b=>Ae(l)(b,A._.uid)),style:no(k.value)},[Zr(A.$slots,"default")],4))}},F2s=Je({__name:"editMdPreivew",props:Fc({content:{}},{modelValue:{default:!1},modelModifiers:{}}),emits:Fc(["save"],["update:modelValue"]),setup(e,{emit:t}){const n=e,r=fe(""),o=Pf(e,"modelValue"),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];pt(()=>o.value,()=>{r.value=n.content});const a=t;function l(){a("save",r.value),o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=gc;return xe(),Ut(m,{visible:o.value,"onUpdate:visible":g[2]||(g[2]=v=>o.value=v),header:h.$t("components.editMdPreivew.title"),width:"90vw","confirm-btn":h.$t("components.editMdPreivew.confirm"),"cancel-btn":h.$t("components.editMdPreivew.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:Ae(r),"onUpdate:modelValue":g[0]||(g[0]=v=>Fn(r)?r.value=v:null),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[1]||(g[1]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])}}}),Ny=Object.create(null);Ny.open="0";Ny.close="1";Ny.ping="2";Ny.pong="3";Ny.message="4";Ny.upgrade="5";Ny.noop="6";const Xhe=Object.create(null);Object.keys(Ny).forEach(e=>{Xhe[Ny[e]]=e});const OGe={type:"error",data:"parser error"},nYn=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",iYn=typeof ArrayBuffer=="function",rYn=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Qst=({type:e,data:t},n,r)=>nYn&&t instanceof Blob?n?r(t):A0n(t,r):iYn&&(t instanceof ArrayBuffer||rYn(t))?n?r(t):A0n(new Blob([t]),r):r(Ny[e]+(t||"")),A0n=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function p0n(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let JBe;function N2s(e,t){if(nYn&&e.data instanceof Blob)return e.data.arrayBuffer().then(p0n).then(t);if(iYn&&(e.data instanceof ArrayBuffer||rYn(e.data)))return t(p0n(e.data));Qst(e,!1,n=>{JBe||(JBe=new TextEncoder),t(JBe.encode(n))})}const b0n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sY=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,n=e.length,r,o=0,s,a,l,d;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const u=new ArrayBuffer(t),h=new Uint8Array(u);for(r=0;r>4,h[o++]=(a&15)<<4|l>>2,h[o++]=(l&3)<<6|d&63;return u},j2s=typeof ArrayBuffer=="function",Dst=(e,t)=>{if(typeof e!="string")return{type:"message",data:oYn(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:W2s(e.substring(1),t)}:Xhe[n]?e.length>1?{type:Xhe[n],data:e.substring(1)}:{type:Xhe[n]}:OGe},W2s=(e,t)=>{if(j2s){const n=U2s(e);return oYn(n,t)}else return{base64:!0,data:e}},oYn=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},sYn="",V2s=(e,t)=>{const n=e.length,r=new Array(n);let o=0;e.forEach((s,a)=>{Qst(s,!1,l=>{r[a]=l,++o===n&&t(r.join(sYn))})})},z2s=(e,t)=>{const n=e.split(sYn),r=[];for(let o=0;o{const r=n.length;let o;if(r<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,r);else if(r<65536){o=new Uint8Array(3);const s=new DataView(o.buffer);s.setUint8(0,126),s.setUint16(1,r)}else{o=new Uint8Array(9);const s=new DataView(o.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(o[0]|=128),t.enqueue(o),t.enqueue(n)})}})}let eRe;function xde(e){return e.reduce((t,n)=>t+n.length,0)}function Ede(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let o=0;oMath.pow(2,21)-1){l.enqueue(OGe);break}o=h*Math.pow(2,32)+u.getUint32(4),r=3}else{if(xde(n)e){l.enqueue(OGe);break}}}})}const aYn=4;function Gh(e){if(e)return X2s(e)}function X2s(e){for(var t in Gh.prototype)e[t]=Gh.prototype[t];return e}Gh.prototype.on=Gh.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Gh.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};Gh.prototype.off=Gh.prototype.removeListener=Gh.prototype.removeAllListeners=Gh.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,o=0;oPromise.resolve().then(t):(t,n)=>n(t,0),D4=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),G2s="arraybuffer";function lYn(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const Y2s=D4.setTimeout,Z2s=D4.clearTimeout;function NOe(e,t){t.useNativeTimers?(e.setTimeoutFn=Y2s.bind(D4),e.clearTimeoutFn=Z2s.bind(D4)):(e.setTimeoutFn=D4.setTimeout.bind(D4),e.clearTimeoutFn=D4.clearTimeout.bind(D4))}const q2s=1.33;function K2s(e){return typeof e=="string"?J2s(e):Math.ceil((e.byteLength||e.size)*q2s)}function J2s(e){let t=0,n=0;for(let r=0,o=e.length;r=57344?n+=3:(r++,n+=4);return n}function cYn(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function evs(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function tvs(e){let t={},n=e.split("&");for(let r=0,o=n.length;r{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};z2s(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,V2s(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=cYn()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let dYn=!1;try{dYn=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const rvs=dYn;function ovs(){}class svs extends ivs{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(o,s)=>{this.onError("xhr post error",o,s)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class my extends Gh{constructor(t,n,r){super(),this.createRequest=t,NOe(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=lYn(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let o in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(o)&&r.setRequestHeader(o,this._opts.extraHeaders[o])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var o;r.readyState===3&&((o=this._opts.cookieJar)===null||o===void 0||o.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(o){this.setTimeoutFn(()=>{this._onError(o)},0);return}typeof document<"u"&&(this._index=my.requestsCount++,my.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ovs,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete my.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}my.requestsCount=0;my.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",w0n);else if(typeof addEventListener=="function"){const e="onpagehide"in D4?"pagehide":"unload";addEventListener(e,w0n,!1)}}function w0n(){for(let e in my.requests)my.requests.hasOwnProperty(e)&&my.requests[e].abort()}const avs=function(){const e=uYn({xdomain:!1});return e&&e.responseType!==null}();class lvs extends svs{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=avs&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new my(uYn,this.uri(),t)}}function uYn(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||rvs))return new XMLHttpRequest}catch{}if(!t)try{return new D4[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const hYn=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class cvs extends Bst{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=hYn?{}:lYn(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(o){return this.emitReserved("error",o)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n{try{this.doWrite(r,s)}catch{}o&&FOe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=cYn()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const tRe=D4.WebSocket||D4.MozWebSocket;class dvs extends cvs{createSocket(t,n,r){return hYn?new tRe(t,n,r):n?new tRe(t,n):new tRe(t)}doWrite(t,n){this.ws.send(n)}}class uvs extends Bst{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=$2s(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),o=H2s();o.readable.pipeTo(t.writable),this._writer=o.writable.getWriter();const s=()=>{r.read().then(({done:l,value:d})=>{l||(this.onPacket(d),s())}).catch(l=>{})};s();const a={type:"open"};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n{o&&FOe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const hvs={websocket:dvs,webtransport:uvs,polling:lvs},fvs=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,gvs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function yGe(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let o=fvs.exec(e||""),s={},a=14;for(;a--;)s[gvs[a]]=o[a]||"";return n!=-1&&r!=-1&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=mvs(s,s.path),s.queryKey=kvs(s,s.query),s}function mvs(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function kvs(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,o,s){o&&(n[o]=s)}),n}const CGe=typeof addEventListener=="function"&&typeof removeEventListener=="function",Ghe=[];CGe&&addEventListener("offline",()=>{Ghe.forEach(e=>e())},!1);class z9 extends Gh{constructor(t,n){if(super(),this.binaryType=G2s,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=yGe(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=yGe(n.host).host);NOe(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const o=r.prototype.name;this.transports.push(o),this._transportsByName[o]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=tvs(this.opts.query)),CGe&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Ghe.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=aYn,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&z9.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",z9.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,FOe(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,o){if(typeof n=="function"&&(o=n,n=void 0),typeof r=="function"&&(o=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const s={type:t,data:n,options:r};this.emitReserved("packetCreate",s),this.writeBuffer.push(s),o&&this.once("flush",o),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(z9.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),CGe&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Ghe.indexOf(this._offlineEventListener);r!==-1&&Ghe.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}z9.protocol=aYn;class vvs extends z9{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",g=>{if(!r)if(g.type==="pong"&&g.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;z9.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(h(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const m=new Error("probe error");m.transport=n.name,this.emitReserved("upgradeError",m)}}))};function s(){r||(r=!0,h(),n.close(),n=null)}const a=g=>{const m=new Error("probe error: "+g);m.transport=n.name,s(),this.emitReserved("upgradeError",m)};function l(){a("transport closed")}function d(){a("socket closed")}function u(g){n&&g.name!==n.name&&s()}const h=()=>{n.removeListener("open",o),n.removeListener("error",a),n.removeListener("close",l),this.off("close",d),this.off("upgrading",u)};n.once("open",o),n.once("error",a),n.once("close",l),this.once("close",d),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;rhvs[o]).filter(o=>!!o)),super(t,r)}};function pvs(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=yGe(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const s=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+s+":"+r.port+t,r.href=r.protocol+"://"+s+(n&&n.port===r.port?"":":"+r.port),r}const bvs=typeof ArrayBuffer=="function",wvs=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,fYn=Object.prototype.toString,Ovs=typeof Blob=="function"||typeof Blob<"u"&&fYn.call(Blob)==="[object BlobConstructor]",yvs=typeof File=="function"||typeof File<"u"&&fYn.call(File)==="[object FileConstructor]";function Rst(e){return bvs&&(e instanceof ArrayBuffer||wvs(e))||Ovs&&e instanceof Blob||yvs&&e instanceof File}function Yhe(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n=0&&e.numthis.opts.maxAttachments)throw new Error("too many attachments");r.attachments=l}if(t.charAt(n+1)==="/"){const s=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(s,n)}else r.nsp="/";const o=t.charAt(n+1);if(o!==""&&Number(o)==o){const s=n+1;for(;++n;){const a=t.charAt(n);if(a==null||Number(a)!=a){--n;break}if(n===t.length)break}r.id=Number(t.substring(s,n+1))}if(t.charAt(++n)){const s=this.tryParse(t.substr(n));if(Ist.isPayloadValid(r.type,s))r.data=s;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.opts.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case _a.CONNECT:return O0n(n);case _a.DISCONNECT:return n===void 0;case _a.CONNECT_ERROR:return typeof n=="string"||O0n(n);case _a.EVENT:case _a.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&Svs.indexOf(n[0])===-1);case _a.ACK:case _a.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class xvs{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=_vs(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Evs=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};function O0n(e){return Object.prototype.toString.call(e)==="[object Object]"}const Tvs=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Ist,Encoder:Lvs,get PacketType(){return _a}},Symbol.toStringTag,{value:"Module"}));function Rb(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const Qvs=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class gYn extends Gh{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[Rb(t,"open",this.onopen.bind(this)),Rb(t,"packet",this.onpacket.bind(this)),Rb(t,"error",this.onerror.bind(this)),Rb(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,o,s;if(Qvs.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const a={type:_a.EVENT,data:n};if(a.options={},a.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const h=this.ids++,g=n.pop();this._registerAckCallback(h,g),a.id=h}const l=(o=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||o===void 0?void 0:o.writable,d=this.connected&&!(!((s=this.io.engine)===null||s===void 0)&&s._hasPingExpired());return this.flags.volatile&&!l||(d?(this.notifyOutgoingListeners(a),this.packet(a)):this.sendBuffer.push(a)),this.flags={},this}_registerAckCallback(t,n){var r;const o=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(o===void 0){this.acks[t]=n;return}const s=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let l=0;l{this.io.clearTimeoutFn(s),n.apply(this,l)};a.withError=!0,this.acks[t]=a}emitWithAck(t,...n){return new Promise((r,o)=>{const s=(a,l)=>a?o(a):r(l);s.withError=!0,n.push(s),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((o,...s)=>(this._queue[0],o!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(o)):(this._queue.shift(),n&&n(null,...s)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:_a.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case _a.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case _a.EVENT:case _a.BINARY_EVENT:this.onevent(t);break;case _a.ACK:case _a.BINARY_ACK:this.onack(t);break;case _a.DISCONNECT:this.ondisconnect();break;case _a.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...o){r||(r=!0,n.packet({type:_a.ACK,id:t,data:o}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:_a.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}RH.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};RH.prototype.reset=function(){this.attempts=0};RH.prototype.setMin=function(e){this.ms=e};RH.prototype.setMax=function(e){this.max=e};RH.prototype.setJitter=function(e){this.jitter=e};class LGe extends Gh{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,NOe(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new RH({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const o=n.parser||Tvs;this.encoder=new o.Encoder,this.decoder=new o.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Avs(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const o=Rb(n,"open",function(){r.onopen(),t&&t()}),s=l=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",l),t?t(l):this.maybeReconnectOnOpen()},a=Rb(n,"error",s);if(this._timeout!==!1){const l=this._timeout,d=this.setTimeoutFn(()=>{o(),s(new Error("timeout")),n.close()},l);this.opts.autoUnref&&d.unref(),this.subs.push(()=>{this.clearTimeoutFn(d)})}return this.subs.push(o),this.subs.push(a),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(Rb(t,"ping",this.onping.bind(this)),Rb(t,"data",this.ondata.bind(this)),Rb(t,"error",this.onerror.bind(this)),Rb(t,"close",this.onclose.bind(this)),Rb(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){FOe(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new gYn(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;rt()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(o=>{o?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",o)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const sG={};function Zhe(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=pvs(e,t.path||"/socket.io"),r=n.source,o=n.id,s=n.path,a=sG[o]&&s in sG[o].nsps,l=t.forceNew||t["force new connection"]||t.multiplex===!1||a;let d;return l?d=new LGe(r,t):(sG[o]||(sG[o]=new LGe(r,t)),d=sG[o]),n.query&&!t.query&&(t.query=n.queryKey),d.socket(n.path,t)}Object.assign(Zhe,{Manager:LGe,Socket:gYn,io:Zhe,connect:Zhe});function mYn(e){const{url:t,auth:n,autoConnect:r=!0,xmlTags:o=[],keepXmlInMessage:s=!0,onXmlTag:a,onError:l,onConnect:d,onDisconnect:u,manageLifecycle:h=!0}=e,g=nd(null),m=fe(!1),v=fe(!1),f=fe([]),k=fe(null),A=fe("idle"),p=fe({}),b=fe({}),w=Array.from(new Map(o.map(ke=>typeof ke=="string"?{tag:ke}:ke).filter(ke=>!!(ke!=null&&ke.tag)).map(ke=>[ke.tag,ke])).values()),O=w.map(ke=>ke.tag),y=w.filter(ke=>!(ke.keepInMessage??s)).map(ke=>ke.tag),C=new Map,_=new Map,S=X(()=>{var Te;const ke=f.value[f.value.length-1];if(!ke||ke.role!=="assistant")return!1;const me=ke.status;return!!(me==="pending"||me==="streaming"||(Te=ke.content)!=null&&Te.some(De=>De.status==="pending"||De.status==="streaming"))}),L=X(()=>f.value[f.value.length-1]),E=ke=>f.value.find(me=>me.id===ke),T=ke=>f.value.findIndex(me=>me.id===ke),D=(ke,me)=>{var _e;return(_e=ke.content)==null?void 0:_e.find(Te=>Te.id===me)},P=ke=>(ke.type==="text"||ke.type==="markdown")&&typeof ke.data=="string",Q=(ke,me)=>`${ke}:${me.id??me.type}`,M=ke=>ke.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),B=ke=>{const me={},_e=/([\w-]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;let Te;for(;(Te=_e.exec(ke))!==null;)me[Te[1]]=Te[2]??Te[3];return me},R=ke=>{const me=[],_e=/<(\w+)((?:\s+[\w-]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*(?:\/>|>([\s\S]*?)<\/\1>)/g;let Te,De=0;for(;(Te=_e.exec(ke))!==null;)me.push({tag:Te[1],attrs:B(Te[2]),value:Te[3]??""}),De=_e.lastIndex;const ot=ke.slice(De).match(/<(\w+)((?:\s+[\w-]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*>([\s\S]*)$/);return ot&&me.push({tag:ot[1],attrs:B(ot[2]),value:ot[3]}),me},I=(ke,me)=>{const _e=M(me),Te=new RegExp(`<${_e}(\\s[^>]*)?>`,"g");let De=null,Ye;for(;(Ye=Te.exec(ke))!==null;)De=Ye;if(!De)return null;const ot=B(De[1]??""),We=De.index+De[0].length,et=``,st=ke.indexOf(et,We),Me=st!==-1,Se=ke.slice(We,Me?st:ke.length).trim(),Ie=R(Se);return{value:Se,attrs:ot,children:Ie,isComplete:Me}},F=ke=>{let me=ke;for(const _e of y){const Te=M(_e);me=me.replace(new RegExp(`<${Te}(?:\\s[^>]*)?>[\\s\\S]*?<\\/${Te}>`,"g"),""),me=me.replace(new RegExp(`<${Te}(?:\\s[^>]*)?>[\\s\\S]*$`,"g"),"")}return me},j=(ke,me)=>P(me)?_.get(Q(ke,me))??me.data:null,W=(ke,me)=>{if(!P(me))return;const _e=j(ke,me)??"";me.data=y.length?F(_e):_e},H=(ke,me,_e)=>{if(!O.length||!P(me))return;const Te=Q(ke,me),De=C.get(Te)??{},Ye={...De},ot={...b.value[ke]??{}},We=me.status??_e??"pending",et=j(ke,me);if(et===null)return;let st=!1;for(const Me of O){const Se=I(et,Me);if(Se===null)continue;const{value:Ie,isComplete:ze}=Se,Ze=ze?We==="error"||We==="stop"?We:"complete":We;(De[Me]!==Ie||Ze==="complete")&&(Ye[Me]=Ie,ot[Me]=Ie,p.value={...p.value,[Me]:Ie},st=!0,a==null||a({messageId:ke,contentId:me.id,type:me.type,tag:Me,value:Ie,attrs:Se.attrs,children:Se.children,status:Ze}))}st&&(C.set(Te,Ye),b.value={...b.value,[ke]:ot})},$=(ke,me,_e)=>{var De;if(!me||me.role!=="assistant")return;const Te=me;(De=Te.content)==null||De.forEach(Ye=>H(ke,Ye,_e??Te.status))},G=(ke,me)=>{if(typeof me!="object"||me===null)return me;const _e={...ke};for(const Te in me){const De=me[Te],Ye=_e[Te];if(Array.isArray(De))_e[Te]=[...Array.isArray(Ye)?Ye:[],...De];else if(typeof De=="object"&&De!==null){const ot=typeof Ye=="object"&&Ye!==null?Ye:{};_e[Te]=G(ot,De)}else De!==void 0&&(_e[Te]=De)}return _e},q=(ke,me)=>{typeof ke.data=="string"?ke.data+=me:typeof ke.data=="object"&&ke.data!==null&&"text"in ke.data&&typeof me=="string"&&(ke.data.text=(ke.data.text||"")+me)},re=ke=>{const{messageId:me,contentId:_e,type:Te,data:De,strategy:Ye,status:ot}=ke,We=E(me);if(!We||We.role!=="assistant")return;const et=D(We,_e);if(et){if(ot&&(et.status=ot),(ot==="streaming"||Ye==="append"&&De)&&(We.status==="pending"&&(We.status="streaming"),k.value===me&&(A.value="streaming")),De==null){H(me,et,We.status);return}if(P(et)&&typeof De=="string"){const st=Q(me,et),Me=_.get(st)??et.data,Se=Ye==="append"?Me+De:De;_.set(st,Se),W(me,et)}else Ye==="append"?typeof De=="string"?q(et,De):typeof De=="object"&&(et.data=G(et.data,De)):typeof et.data=="object"&&typeof De=="object"?et.data={...et.data,...De}:et.data=De;!ot&&Ye==="append"&&(et.status="streaming"),H(me,et,We.status)}},J=()=>{g.value&&(g.value.on("message",ke=>{var _e,Te;const me={id:ke.id,role:ke.role,name:ke.name,status:ke.status||"pending",datetime:ke.datetime,content:ke.content||[],ext:ke.ext};if(ke.role==="assistant"&&((_e=me.content)==null||_e.forEach(Ye=>{P(Ye)&&(_.set(Q(ke.id,Ye),Ye.data),W(ke.id,Ye))})),f.value.push(me),ke.role==="assistant"){const De=me;(Te=De.content)==null||Te.forEach(Ye=>H(ke.id,Ye,De.status))}ke.role==="assistant"&&(k.value=ke.id,A.value=ke.status==="streaming"?"streaming":"pending")}),g.value.on("message:update",ke=>{const me=E(ke.id);me&&(ke.status&&(me.status=ke.status),ke.ext&&(me.ext={...me.ext,...ke.ext}),ke.status&&$(ke.id,me,ke.status),ke.status==="streaming"&&(A.value="streaming"),(ke.status==="complete"||ke.status==="error"||ke.status==="stop")&&k.value===ke.id&&(k.value=null,A.value="idle"))}),g.value.on("content:add",ke=>{const me=E(ke.messageId);if(!me||me.role!=="assistant")return;me.content||(me.content=[]);const _e={...ke.content,status:ke.content.status||"pending",...ke.content.type==="thinking"?{ext:{collapsed:!0,...ke.content.ext}}:{}};if(P(_e)&&(_.set(Q(ke.messageId,_e),_e.data),W(ke.messageId,_e)),_e.type==="thinking"){const Te=me.content.findIndex(De=>De.type!=="thinking");Te===-1?me.content.push(_e):me.content.splice(Te,0,_e)}else me.content.push(_e);H(ke.messageId,_e,me.status),_e.status==="streaming"&&me.status==="pending"&&(me.status="streaming")}),g.value.on("content:update",re),g.value.on("error",ke=>{console.error("[Chat Error]",ke),l==null||l(ke)}),g.value.on("connect",()=>{m.value=!0,v.value=!1,d==null||d()}),g.value.on("disconnect",ke=>{m.value=!1,v.value=!1,u==null||u(),console.log("[Chat Disconnected]",ke)}),g.value.on("connect_error",ke=>{m.value=!1,v.value=!1,console.error("[Chat Connect Error]",ke)}))},oe=()=>{var ke;(ke=g.value)!=null&&ke.connected||v.value||(v.value=!0,g.value?g.value.connect():(g.value=Zhe(t,{transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:10,reconnectionDelay:1e3,reconnectionDelayMax:5e3,timeout:1e4,auth:{token:localStorage.getItem("token"),...typeof n=="function"?n():n}}),J()))},se=()=>{var ke;(ke=g.value)==null||ke.disconnect(),m.value=!1,v.value=!1},le=()=>{se(),setTimeout(oe,100)},ue=(ke,me)=>{var _e;return(_e=g.value)!=null&&_e.connected?(g.value.emit(ke,me),!0):(console.warn("[Chat] Socket not connected"),!1)},ee=(ke,me)=>{var _e;return(_e=g.value)==null||_e.on(ke,me),()=>{var Te;return(Te=g.value)==null?void 0:Te.off(ke,me)}},de=(ke,me)=>{var _e;(_e=g.value)==null||_e.once(ke,me)},z=(ke,me)=>{var _e;(_e=g.value)==null||_e.off(ke,me)},Y=(ke,me)=>{if(!ke.trim()&&!(me!=null&&me.length))return!1;const _e={id:`user_${Date.now()}`,role:"user",status:"complete",datetime:new Date().toISOString(),content:[{type:"text",data:ke,status:"complete"}]};return me!=null&&me.length&&_e.content.push({type:"attachment",data:me,status:"complete"}),f.value.push(_e),ue("chat",{content:ke,attachments:me})},ie=ke=>{const me=ke||k.value;if(!me)return!1;const _e=E(me);return _e&&(_e.status="stop"),k.value=null,A.value="idle",ue("stop",{messageId:me})},te=ke=>ue("regenerate",{messageId:ke}),Z=()=>{f.value=[],k.value=null,A.value="idle",p.value={},b.value={},C.clear(),_.clear()},he=ke=>{var _e;const me=T(ke);if(me>-1){const Te=f.value[me];(_e=Te==null?void 0:Te.content)==null||_e.forEach(Ye=>{C.delete(Q(ke,Ye)),_.delete(Q(ke,Ye))});const De={...b.value};delete De[ke],b.value=De,f.value.splice(me,1)}},pe=ke=>{const me=T(ke);me>-1&&f.value.splice(me+1)},Ce=(ke,me)=>{const _e=E(ke);_e&&Object.assign(_e,me)},Qe=(ke,me)=>{var Te;const _e=E(ke);return!_e||_e.role!=="assistant"?[]:((Te=_e.content)==null?void 0:Te.filter(De=>De.type===me))||[]};return h?(An(()=>{r&&oe()}),Qa(()=>{var ke;se(),(ke=g.value)==null||ke.removeAllListeners(),g.value=null})):r&&oe(),{socket:g,connected:m,connecting:v,status:A,messages:f,currentMessageId:k,xmlData:p,xmlDataByMessage:b,isGenerating:S,lastMessage:L,connect:oe,disconnect:se,reconnect:le,emit:ue,on:ee,once:de,off:z,chat:Y,stopGenerate:ie,regenerate:te,clearMessages:Z,removeMessage:he,removeMessagesAfter:pe,updateMessage:Ce,findMessage:E,getContentByType:Qe}}const nRe=new Map;function Dvs(e){return nRe.has(e)||nRe.set(e,Wy(`scriptAgent-${e}`,()=>{const t=fe({storySkeleton:"",adaptationStrategy:"",script:[]}),{connected:n,messages:r,chat:o,stopGenerate:s,socket:a,status:l,disconnect:d,connect:u}=mYn({url:`${ku().baseUrl}/socket/scriptAgent`,auth:()=>({isolationKey:`${e}:scriptAgent`,projectId:e}),manageLifecycle:!1,xmlTags:[{tag:"storySkeleton",keepInMessage:!1},{tag:"adaptationStrategy",keepInMessage:!1},{tag:"scriptItem",keepInMessage:!1}],onXmlTag:g=>{const{tag:m,value:v,children:f,status:k,attrs:A}=g;if(m==="storySkeleton")t.value.storySkeleton=v;else if(m==="adaptationStrategy")t.value.adaptationStrategy=v;else if(m==="scriptItem"){const p=A.name??"",b=v;if(p){const w=t.value.script.findIndex(O=>O.name===p);w!==-1?t.value.script[w].content=b:t.value.script.push({name:p,content:b})}}k==="complete"&&h()},autoConnect:!1});pt(a,g=>{g&&g.on("getPlanData",(m,v)=>{v(t.value)})},{immediate:!0});async function h(){await mn.post("/scriptAgent/setPlanData",{projectId:e,agentType:"scriptAgent",data:t.value})}return{connected:n,messages:r,chat:o,stopGenerate:s,socket:a,status:l,planData:t,setPlanData:h,connect:u,disconnect:d}})),nRe.get(e)}function R7(){var t;const e=(t=ph().project)==null?void 0:t.id;if(!e)throw new Error("No project selected");return Dvs(e)()}const iRe=new Map;function Bvs(e){return iRe.has(e)||iRe.set(e,Wy(`productionAgent-${e}`,()=>{const t=[{id:"welcome",role:"assistant",content:[{type:"text",status:"complete",data:$t("workbench.production.chatBox.welcomeMessage")},{type:"suggestion",status:"complete",data:[{title:$t("workbench.production.chatBox.startMakingVideo"),prompt:$t("workbench.production.chatBox.startMakingVideoPrompt")}]}]}];An(()=>{s.value.length<=0&&(s.value=[...t,...s.value])});const n=fe({script:"",scriptPlan:"",storyboardTable:"",assets:[],storyboard:[],workbench:{videoList:[]}}),r=fe(),{connected:o,messages:s,chat:a,stopGenerate:l,socket:d,status:u,reconnect:h,connect:g}=mYn({url:`${ku().baseUrl}/socket/productionAgent`,auth:()=>({isolationKey:`${e}:productionAgent:${r.value}`,projectId:e,scriptId:r.value}),manageLifecycle:!1,autoConnect:!1,xmlTags:[{tag:"script",keepInMessage:!1},{tag:"scriptPlan",keepInMessage:!1},{tag:"storyboardTable",keepInMessage:!1},{tag:"storyboardItem",keepInMessage:!1}],onXmlTag:async R=>{const{tag:I,value:F,children:j,attrs:W,status:H}=R;if(I==="script")n.value.script=F??"";else if(I==="scriptPlan")n.value.scriptPlan=F??"";else if(I==="storyboardTable")n.value.storyboardTable=F??"";else if(I==="storyboardItem"&&H==="complete"){const $=W.prompt??"",G=Number(W.duration)||0,q=W.track||"",re=W.shouldGenerateImage=="true"?1:0,J=(W==null?void 0:W.videoDesc)??"",oe=n.value.storyboard.findIndex(se=>se.prompt==$&&se.duration==G&&J==se.videoDesc);oe!==-1?n.value.storyboard[oe].prompt=$:(n.value.storyboard.push({prompt:$||"",duration:Number(G)||0,state:"未生成",src:null,associateAssetsIds:JSON.parse(W.associateAssetsIds)||[],videoDesc:J,shouldGenerateImage:re}),await Q([{prompt:$||"",duration:Number(G)||0,track:q||"",state:"未生成",src:null,videoDesc:J,shouldGenerateImage:re,associateAssetsIds:JSON.parse(W.associateAssetsIds)||[]}]))}H=="complete"&&m()}}),m=_yi(()=>{v(r.value)},500,!0,!0);pt(d,R=>{R&&(R.on("connect",()=>{B()}),R.on("getFlowData",(I,F)=>{F(n.value)}),R.on("addDeriveAsset",async(I,F)=>{const j=n.value.assets.find($=>$.id===I.assetsId);if(!j)return F({success:!1,message:$t("storyboard.assets.notExist")});const W=j.derive||[],H=W.find($=>$.id===I.id);if(H){if(!H)return F({success:!1,message:$t("storyboard.assets.notDerivativeExist")});H.name=I.name,H.type=j.type,F({success:!0,message:$t("storyboard.assets.derivativeUpdateSuccess")})}else W.push({assetsId:I.assetsId,id:I.id,name:I.name,type:j.type,desc:I.describe,prompt:"",state:"未生成",src:""}),F({success:!0,message:$t("storyboard.assets.derivativeAddSuccess")})}),R.on("delDeriveAsset",async(I,F)=>{const j=n.value.assets.find($=>$.id===I.assetsId);if(!j)return F({success:!1,message:$t("storyboard.assets.notExist")});const W=j.derive||[],H=W.findIndex($=>$.id===I.id);if(H===-1)return F({success:!1,message:$t("storyboard.assets.notDerivativeExist")});W.splice(H,1),F({success:!0,message:$t("storyboard.assets.derivativeDelSuccess")})}),R.on("generateDeriveAsset",async(I,F)=>{const j=await A(I.ids);F({success:!0,message:j})}),R.on("generateStoryboard",async(I,F)=>{const j=await k(I.ids);F({success:!0,message:j})}))},{immediate:!0});async function v(R){await mn.post("/production/saveFlowData",{projectId:e,data:n.value,episodesId:R||r.value})}async function f(){const{data:R}=await mn.post("/production/getFlowData",{projectId:e,episodesId:r.value});n.value=R}async function k(R){n.value.storyboard.forEach(F=>{R.includes(F.id)&&(F.state="生成中")});const{data:I}=await mn.post("/production/storyboard/batchGenerateImage",{scriptId:r.value,projectId:e,storyboardIds:R,script:n.value.script,scriptPlan:n.value.scriptPlan,storyboardTable:n.value.storyboardTable,assets:n.value.assets});if(I){if(n.value.storyboard.length===0)return n.value.storyboard=I,I;n.value.storyboard.forEach(F=>{const j=I.find(W=>W.id==F.id);j&&(F.state=j.state,F.src=j.src)})}return I}async function A(R){n.value.assets.forEach(I=>{I.derive&&I.derive.forEach(F=>{R.includes(F.id)&&(F.state="生成中")})});try{const{data:I}=await mn.post("/production/assets/batchGenerateAssetsImage",{assetIds:R,projectId:e,scriptId:r.value,concurrentCount:ku().otherSetting.assetsBatchGenereateSize});return I&&I.forEach(F=>{n.value.assets.forEach(j=>{j.derive&&j.derive.forEach(W=>{W.id===F.id&&(W.state=F.state,W.src=F.src)})})}),I}catch{}}const p=X(()=>{const R=[];return n.value.assets.forEach(I=>{I.derive&&I.derive.forEach(F=>{F.state=="生成中"&&R.push(F.id)})}),R}),b=X(()=>{const R=[];return n.value.storyboard.forEach(I=>{I.state=="生成中"&&I.id&&R.push(I.id)}),R});let w=null,O=!1;async function y(){const R=p.value;if(!(R.length===0||O)){O=!0;try{const{data:I}=await mn.post("/production/assets/pollingImage",{ids:R});if(!I||I.length===0)return;I.forEach(j=>{n.value.assets.forEach(W=>{W.derive&&W.derive.forEach(H=>{H.id===j.id&&(H.state=j.state,j.src&&(H.src=j.src),H.errorReason=(j==null?void 0:j.errorReason)??"",H.prompt=(j==null?void 0:j.prompt)??"")})})})}catch(I){console.error("[assetsPolling] error",I)}finally{O=!1}}}function C(){w||(w=window.setInterval(async()=>{if(p.value.length===0){_();return}await y()},5e3),y())}function _(){w&&(clearInterval(w),w=null)}pt(()=>p.value,R=>{R.length>0?C():_()});let S=null,L=!1;async function E(){const R=b.value;if(!(R.length===0||L)){L=!0;try{const{data:I}=await mn.post("/production/storyboard/pollingImage",{ids:R});if(!I||I.length===0)return;I.forEach(j=>{const W=n.value.storyboard.find(H=>H.id===j.id);W&&(W.state=j.state,j.src&&(W.src=j.src),W.reason=(j==null?void 0:j.reason)??"")})}catch(I){console.error("[storyboardPolling] error",I)}finally{L=!1}}}function T(){S||(S=window.setInterval(async()=>{if(b.value.length===0){D();return}await E()},5e3),E())}function D(){S&&(clearInterval(S),S=null)}pt(()=>b.value,R=>{R.length>0?T():D()});function P(){if(r.value<0)return;const R={isolationKey:`${e}:productionAgent:${r.value}`,projectId:e,scriptId:r.value};o.value||g(),d.value.emit("updateContext",R)}async function Q(R){const{data:I}=await mn.post("/production/storyboard/batchAddStoryboardInfo",{scriptId:r.value,data:R,projectId:e});n.value.storyboard.forEach(F=>{const j=I.find(W=>W.prompt==F.prompt&&W.duration==F.duration);j&&(F.id=j.id,F.trackId=j.trackId,F.src=j.src,F.state=j.state,F.associateAssetsIds=j.associateAssetsIds)})}const M=fe(!1);async function B(){M.value=!0;const{data:R}=await mn.post("/agents/getMemory",{projectId:e,episodesId:r.value,agentType:"productionAgent"});s.value=[],s.value=[...t,...R],M.value=!1}return{connected:o,messages:s,chat:a,stopGenerate:l,socket:d,status:u,flowData:n,setFlowData:v,getFlowData:f,episodesId:r,stopAssetsPolling:_,stopStoryboardPolling:D,updateContext:P,getHistory:B,loadingHistory:M,batchGenerateStoryboard:k,reconnect:h}})),iRe.get(e)}function g0(){var t;const e=(t=ph().project)==null?void 0:t.id;if(!e)throw new Error("No project selected");return Bvs(e)()}const Rvs={class:"scriptAgent"},Ivs={class:"box pr"},Mvs={class:"settingMenu"},Pvs={key:0,class:"forceGenerateMask"},Fvs={class:"forceGenerateCard"},Nvs={class:"forceGenerateDesc"},Uvs={class:"forceGenerateActions"},jvs={class:"tabsWrapper"},Wvs={key:0,class:"ac"},Vvs={key:1,class:"ac"},zvs={class:"panelContent"},Hvs={class:"panelContent"},$vs={class:"panelContent"},Xvs={key:1,class:"scriptList"},Gvs={class:"scriptCardHeader"},Yvs={class:"scriptCardHeaderLeft"},Zvs={class:"scriptIndex"},qvs={class:"scriptTitle"},Kvs={class:"scriptCardActions"},Jvs={class:"scriptCardBody"},eAs={key:0},tAs={key:1,class:"emptyContent"},nAs={class:"scriptEditForm"},iAs={class:"scriptEditField"},rAs={class:"scriptEditField"},oAs=Je({__name:"index",setup(e){const{project:t}=xs(ph()),{connected:n,messages:r,status:o,planData:s}=xs(R7()),a=fe(1),l=fe(""),d=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"],u=[{id:"welcome",role:"assistant",content:[{type:"text",status:"complete",data:$t("workbench.scriptAgent.welcomeMsg")},{type:"suggestion",status:"complete",data:[{title:$t("workbench.scriptAgent.start"),prompt:$t("workbench.scriptAgent.start")}]}]}];An(()=>{r.value.length<=0&&(r.value=[...u,...r.value]),g(),C(),R7().connect(),r.value.length<=1&&w()});const h=fe();async function g(){var I;const{data:R}=await mn.post("/scriptAgent/getPlanData",{projectId:(I=t.value)==null?void 0:I.id,agentType:"scriptAgent"});s.value.storySkeleton=R.data.storySkeleton,s.value.adaptationStrategy=R.data.adaptationStrategy,s.value.script=R.data.script||[],h.value=R.id}const m={suggestion:R=>{var I;R7().chat((I=R==null?void 0:R.content)==null?void 0:I.prompt)}};function v(R){R7().chat(R),l.value=""}function f(){R7().stopGenerate()}const k={message:$t("workbench.scriptAgent.memoryType.message"),summary:$t("workbench.scriptAgent.memoryType.summary"),all:$t("workbench.scriptAgent.memoryType.all")};function A(R){const I=co.confirm({header:$t("workbench.scriptAgent.msg.clearConfirm"),body:$t("workbench.scriptAgent.msg.clearBody",{type:k[R]}),confirmBtn:$t("workbench.scriptAgent.msg.confirmClear"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"warning",onConfirm:async()=>{var F;await mn.post("/agents/clearMemory",{projectId:(F=t.value)==null?void 0:F.id,agentType:"scriptAgent",type:R}),window.$message.success($t("workbench.scriptAgent.msg.memoryCleared",{type:k[R]})),I.destroy(),w()}})}function p(){const R=co.confirm({header:$t("workbench.scriptAgent.msg.reconnect"),body:$t("workbench.scriptAgent.msg.notReconnect"),confirmBtn:$t("workbench.scriptAgent.msg.keepReconnect"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"warning",onConfirm:async()=>{g0().reconnect(),R.destroy()}})}const b=fe(!1);async function w(){var I;b.value=!0;const{data:R}=await mn.post("/agents/getMemory",{projectId:(I=t.value)==null?void 0:I.id,agentType:"scriptAgent"});r.value=[...u,...R],b.value=!1}const O=fe(!1),y=fe([]);function C(){var R;mn.post("/novel/getNovelData",{projectId:(R=t.value)==null?void 0:R.id}).then(({data:I})=>{y.value=I,y.value.some(j=>j.eventState===0)&&!O.value&&(O.value=!0)})}const _=fe(!1),S=fe("");function L(){a.value==1?S.value=s.value.storySkeleton:a.value==2&&(S.value=s.value.adaptationStrategy),_.value=!0}const E=fe(-1),T=fe({name:"",content:""}),D=fe(!1);function P(R){const I=s.value.script[R];E.value=R,T.value={name:I.name,content:I.content},D.value=!0}async function Q(){E.value<0||(s.value.script[E.value]={...T.value},await R7().setPlanData(),await g(),window.$message.success($t("workbench.scriptAgent.msg.scriptUpdated")),D.value=!1)}async function M(R){const I=s.value.script[R],F=co.confirm({header:$t("workbench.scriptAgent.msg.deleteConfirm"),body:$t("workbench.scriptAgent.msg.deleteBody"),confirmBtn:$t("workbench.scriptAgent.msg.confirmDelete"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"danger",onConfirm:async()=>{I.id&&await mn.post("/script/delScript",{id:[I.id]}),s.value.script.splice(R,1),await R7().setPlanData(),await g(),window.$message.success($t("workbench.scriptAgent.msg.scriptDeleted")),F.destroy()}})}function B(R){mn.post("/scriptAgent/updateData",{id:h.value,data:{storySkeleton:a.value==1?R:s.value.storySkeleton,adaptationStrategy:a.value==2?R:s.value.adaptationStrategy,script:s.value.script}}).then(()=>{window.$message.success($t("workbench.scriptAgent.msg.updated")),g()}).catch(I=>{window.$message.success($t("workbench.scriptAgent.msg.error"))})}return(R,I)=>{const F=tYn,j=JGn,W=_n("i-setting-config"),H=Si,$=_n("i-api"),G=_n("i-delete"),q=_n("i-close"),re=_n("i-delete-one"),J=y1,oe=eYn,se=_n("i-dot"),le=Xy,ue=Mne,ee=_n("i-edit"),de=Ine,z=gc;return xe(),Ge("div",Rvs,[c(Ae(wGe),{class:"default-theme data f"},{default:Oe(()=>[c(Ae(PT),{size:30,"min-size":15,class:"operate"},{default:Oe(()=>[ge("div",Ivs,[c(j,{"clear-history":!1},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(r),Y=>(xe(),Ut(F,{key:Y.id,message:Y,name:Y.name,placement:Y.role==="user"?"right":"left",variant:Y.role==="user"?"base":"outline",handleActions:Y.role==="user"?{}:m,status:Y.status,allowContentSegmentCustom:""},null,8,["message","name","placement","variant","handleActions","status"]))),128))]),_:1}),c(oe,{class:"inputBox",disabled:Ae(o)==="pending"||Ae(o)==="streaming",modelValue:Ae(l),"onUpdate:modelValue":I[4]||(I[4]=Y=>Fn(l)?l.value=Y:null),loading:Ae(o)==="pending"||Ae(o)==="streaming",placeholder:"$t('workbench.scriptAgent.inputPlaceholder')",onSend:v,onStop:f},{"footer-prefix":Oe(()=>[c(J,{trigger:"click",placement:"top-left"},{content:Oe(()=>[ge("div",Mvs,[ge("div",{class:"settingMenuItem",onClick:I[0]||(I[0]=Y=>p())},[c($,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.reconnect")),1)]),ge("div",{class:"settingMenuItem",onClick:I[1]||(I[1]=Y=>A("message"))},[c(G,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.clearMessageMemory")),1)]),ge("div",{class:"settingMenuItem",onClick:I[2]||(I[2]=Y=>A("summary"))},[c(q,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.clearSummaryMemory")),1)]),ge("div",{class:"settingMenuItem danger",onClick:I[3]||(I[3]=Y=>A("all"))},[c(re,{size:"14"}),ge("span",null,Pe(R.$t("workbench.scriptAgent.clearAllMemory")),1)])])]),default:Oe(()=>[c(H,{shape:"square",variant:"outline",size:"small",disabled:Ae(o)==="pending"||Ae(o)==="streaming"},{icon:Oe(()=>[c(W,{size:"16"})]),_:1},8,["disabled"])]),_:1})]),_:1},8,["disabled","modelValue","loading"]),c(se,{class:"dot",theme:"outline",fill:Ae(n)?"green":"red"},null,8,["fill"]),c(A8,{name:"fade"},{default:Oe(()=>[Ae(O)?(xe(),Ge("div",Pvs,[ge("div",Fvs,[ge("div",Nvs,Pe(R.$t("workbench.scriptAgent.forceGenerate.desc")),1),ge("div",Uvs,[c(H,{onClick:I[5]||(I[5]=Y=>O.value=!1)},{default:Oe(()=>[Bt(Pe(R.$t("workbench.scriptAgent.forceGenerate.confirm")),1)]),_:1})])])])):nn("",!0)]),_:1})])]),_:1}),c(Ae(PT),{size:70,"min-size":30,class:"data"},{default:Oe(()=>[ge("div",jvs,[c(de,{modelValue:Ae(a),"onUpdate:modelValue":I[6]||(I[6]=Y=>Fn(a)?a.value=Y:null)},{action:Oe(()=>[Ae(a)==1?(xe(),Ge("div",Wvs,[c(H,{onClick:L},{default:Oe(()=>[Bt(Pe(R.$t("workbench.scriptAgent.edit")),1)]),_:1})])):Ae(a)==2?(xe(),Ge("div",Vvs,[c(H,{onClick:L},{default:Oe(()=>[Bt(Pe(R.$t("workbench.scriptAgent.edit")),1)]),_:1})])):nn("",!0)]),default:Oe(()=>[c(ue,{value:1,label:R.$t("workbench.scriptAgent.storySkeleton")},{default:Oe(()=>[ge("div",zvs,[Ae(s).storySkeleton?(xe(),Ut(Ae(i3),{key:0,modelValue:Ae(s).storySkeleton},null,8,["modelValue"])):(xe(),Ut(le,{key:1,title:R.$t("workbench.scriptAgent.noContent")},null,8,["title"]))])]),_:1},8,["label"]),c(ue,{value:2,label:R.$t("workbench.scriptAgent.adaptationStrategy")},{default:Oe(()=>[ge("div",Hvs,[Ae(s).adaptationStrategy?(xe(),Ut(Ae(i3),{key:0,modelValue:Ae(s).adaptationStrategy},null,8,["modelValue"])):(xe(),Ut(le,{key:1,title:R.$t("workbench.scriptAgent.noContent")},null,8,["title"]))])]),_:1},8,["label"]),c(ue,{value:3,label:R.$t("workbench.scriptAgent.script")},{default:Oe(()=>{var Y;return[ge("div",$vs,[(Y=Ae(s).script)!=null&&Y.length?(xe(),Ge("div",Xvs,[(xe(!0),Ge(sn,null,Bi(Ae(s).script,(ie,te)=>(xe(),Ge("div",{key:te,class:"scriptCard"},[ge("div",Gvs,[ge("div",Yvs,[ge("span",Zvs,"#"+Pe(te+1),1),ge("span",qvs,Pe(ie.name),1)]),ge("div",Kvs,[c(H,{size:"small",onClick:Z=>P(te)},{icon:Oe(()=>[c(ee,{size:"14"})]),_:1},8,["onClick"]),c(H,{theme:"danger",variant:"outline",size:"small",onClick:Z=>M(te)},{icon:Oe(()=>[c(G,{size:"14"})]),_:1},8,["onClick"])])]),ge("div",Jvs,[ie.content?(xe(),Ge("pre",eAs,Pe(ie.content),1)):(xe(),Ge("span",tAs,Pe(R.$t("workbench.scriptAgent.noContent")),1))])]))),128))])):(xe(),Ut(le,{key:0,title:R.$t("workbench.scriptAgent.noContent")},null,8,["title"]))])]}),_:1},8,["label"])]),_:1},8,["modelValue"])])]),_:1})]),_:1}),c(F2s,{modelValue:Ae(_),"onUpdate:modelValue":I[7]||(I[7]=Y=>Fn(_)?_.value=Y:null),onSave:B,content:Ae(S)},null,8,["modelValue","content"]),c(z,{visible:Ae(D),"onUpdate:visible":I[10]||(I[10]=Y=>Fn(D)?D.value=Y:null),header:R.$t("workbench.scriptAgent.editScript"),width:"80%",top:"10vh",placement:"center","confirm-btn":{content:R.$t("workbench.scriptAgent.save"),theme:"primary"},onConfirm:Q,onClose:I[11]||(I[11]=Y=>D.value=!1)},{default:Oe(()=>[ge("div",nAs,[ge("div",iAs,[ge("strong",null,Pe(Ae(T).name),1)]),ge("div",rAs,[ge("label",null,Pe(R.$t("workbench.scriptAgent.content")),1),c(Ae(X4),{modelValue:Ae(T).content,"onUpdate:modelValue":I[8]||(I[8]=Y=>Ae(T).content=Y),theme:"light",toolbars:d,footers:[],style:{height:"50vh"},onOnUploadImg:()=>{},onDrop:I[9]||(I[9]=Mr(()=>{},["prevent"]))},null,8,["modelValue"])])])]),_:1},8,["visible","header","confirm-btn"])])}}}),sAs=oo(oAs,[["__scopeId","data-v-261a295a"]]),aAs=Object.freeze(Object.defineProperty({__proto__:null,default:sAs},Symbol.toStringTag,{value:"Module"})),lAs=Je({__name:"imageTools",props:{src:{},placement:{},position:{},margin:{}},setup(e){const t=e,n=X(function(){return t.placement||"bottom"}),r=X(function(){const d=t.margin??"4px",u=t.position||"none";return{br:{position:"absolute",bottom:d,right:d},bl:{position:"absolute",bottom:d,left:d},tr:{position:"absolute",top:d,right:d},tl:{position:"absolute",top:d,left:d},none:{margin:d}}[u]}),o=fe(!1);function s(){o.value=!0}async function a(){try{const d=new Image;d.crossOrigin="anonymous",d.src=t.src,await new Promise(function(m,v){d.onload=function(){m()},d.onerror=function(){v(new Error($t("components.imageTools.msg.imageLoadFailed")))}});const u=document.createElement("canvas");u.width=d.naturalWidth,u.height=d.naturalHeight,u.getContext("2d").drawImage(d,0,0);const g=await new Promise(function(m,v){u.toBlob(function(f){if(f){m(f);return}v(new Error($t("components.imageTools.msg.convertFailed")))},"image/png")});await navigator.clipboard.write([new ClipboardItem({"image/png":g})]),window.$message.success($t("components.imageTools.msg.copied"))}catch{window.$message.error($t("components.imageTools.msg.copyFailed"))}}async function l(){let d="";try{const u=await fetch(t.src,{mode:"cors"});if(!u.ok)throw new Error($t("components.imageTools.msg.downloadFailed"));const h=await u.blob();d=URL.createObjectURL(h);const g=document.createElement("a");g.href=d,g.download=t.src.split("/").pop()||"image",document.body.appendChild(g),g.click(),document.body.removeChild(g),window.$message.success($t("components.imageTools.msg.downloadStarted"))}catch{const u=document.createElement("a");u.href=t.src,u.download=t.src.split("/").pop()||"image",u.target="_blank",u.rel="noopener noreferrer",document.body.appendChild(u),u.click(),document.body.removeChild(u),window.$message.warning($t("components.imageTools.msg.downloadBlockedOpenNewWindow"))}finally{d&&URL.revokeObjectURL(d)}}return(d,u)=>{const h=_n("i-copy"),g=Si,m=el,v=_n("i-expand-text-input"),f=hL,k=_n("i-download");return xe(),Ge("div",{class:"imageTools",style:no(Ae(r))},[c(m,{theme:"primary",content:d.$t("components.imageTools.copy"),placement:Ae(n)},{default:Oe(()=>[c(g,{variant:"outline",size:"small",shape:"square",onClick:Mr(a,["stop"])},{icon:Oe(()=>[c(h,{size:"16"})]),_:1})]),_:1},8,["content","placement"]),c(m,{theme:"primary",content:d.$t("components.imageTools.preview"),placement:Ae(n)},{default:Oe(()=>[c(f,{visible:Ae(o),"onUpdate:visible":u[0]||(u[0]=A=>Fn(o)?o.value=A:null),images:[t.src]},{trigger:Oe(()=>[c(g,{variant:"outline",size:"small",shape:"square",onClick:Mr(s,["stop"])},{icon:Oe(()=>[c(v,{size:"16"})]),_:1})]),_:1},8,["visible","images"])]),_:1},8,["content","placement"]),c(m,{theme:"primary",content:d.$t("components.imageTools.download"),placement:Ae(n)},{default:Oe(()=>[c(g,{variant:"outline",size:"small",shape:"square",onClick:Mr(l,["stop"])},{icon:Oe(()=>[c(k,{size:"16"})]),_:1})]),_:1},8,["content","placement"])],4)}}}),jre=oo(lAs,[["__scopeId","data-v-5144fc67"]]),cAs={class:"cornerScape f"},dAs={class:"left"},uAs={class:"quickActions"},hAs={class:"content"},fAs={class:"imageBox"},gAs={key:1,class:"generatingBox"},mAs={class:"generatingText"},kAs={class:"imageToolsWrap"},vAs={class:"infoBox"},AAs={class:"title"},pAs={class:"meta"},bAs={key:0,class:"prompt"},wAs={class:"drawerHeader"},OAs={key:0,class:"drawerImageBox"},yAs={key:1,class:"generatingBox"},CAs={class:"generatingText"},_As={class:"imageToolsWrap show"},SAs={class:"historyImageList f"},LAs=["onClick"],xAs={class:"drawerActions"},EAs=Je({__name:"index",setup(e){var le;const{otherSetting:t}=xs(ku()),n=fe([]),{project:r}=xs(ph()),o=fe(((le=r.value)==null?void 0:le.imageModel)??""),s=fe("1K"),a=[{label:"1K",value:"1K"},{label:"2K",value:"2K"},{label:"4K",value:"4K"}],l=fe([{labelKey:"workbench.cornerScape.filterRole",value:"role"},{labelKey:"workbench.cornerScape.filterScene",value:"scene"},{labelKey:"workbench.cornerScape.filterTool",value:"tool"}]),d=X(()=>l.value.map(ue=>({...ue,label:$t(ue.labelKey)}))),u=fe([]),h=fe(!1);let g=null;function m(){return g==null||g.abort(),g=new AbortController,g}An(()=>{f()}),Qa(()=>{g&&(g.abort(),u.value,g=null),J(),se(),u.value.forEach(ue=>{ue.state==="生成中"&&(ue.state="")})});function v(){f()}async function f(){var ue;try{h.value=!0;const{data:ee}=await mn.post("/cornerScape/getAllAssets",{projectId:(ue=r.value)==null?void 0:ue.id,type:n.value});u.value=ee}catch(ee){console.error("加载资产数据失败:",ee),u.value=[]}finally{h.value=!1}}const k=fe([]),A=X(()=>{const ue=u.value.filter(ee=>k.value.includes(ee.id)&&ee.filePath).map(ee=>ee.filePath);return ue.length>0?ue:u.value.filter(ee=>ee.filePath).map(ee=>ee.filePath)}),p=X(()=>A.value.length>0),b=ue=>{const ee=k.value.indexOf(ue);ee===-1?k.value.push(ue):k.value.splice(ee,1)},w=ue=>{k.value=u.value.filter(ee=>ue===""?!ee.state:ee.state===ue).map(ee=>ee.id)};function O(){const ue=u.value.filter(ee=>!ee.prompt||ee.prompt.trim()==="").map(ee=>ee.id);if(ue.length===0){window.$message.warning($t("workbench.cornerScape.noEmptyPrompt"));return}k.value=ue,window.$message.success($t("workbench.cornerScape.selectedCount",{count:k.value.length}))}function y(){k.value.length===u.value.length?k.value=[]:k.value=u.value.map(ue=>ue.id)}function C(){k.value=[]}const _=fe(!1),S=fe(null),L=fe(null);async function E(ue){var de;if(L.value=L.value===ue?null:ue,!S.value)return;const ee=S.value.historyImages.find(z=>z.id===L.value);try{await mn.post("/assets/saveAssets",{id:S.value.id,type:S.value.type,projectId:(de=r.value)==null?void 0:de.id,prompt:S.value.prompt,imageId:ee==null?void 0:ee.id}),ee&&(S.value.filePath=ee.filePath,S.value.state="已完成"),f(),window.$message.success($t("workbench.cornerScape.msg.replaceSuccess"))}catch{window.$message.error($t("workbench.cornerScape.msg.replaceFailed"));return}}const T=hs({assetsId:0,model:"",type:"",resolution:"",prompt:"",name:"",describe:"",promptState:""});async function D(ue){var ee;L.value=null,T.assetsId=ue.id,T.name=ue.name||"",T.type=ue.type||"",T.model=ue.model||"",S.value=ue,T.resolution=ue.resolution||"",T.prompt=ue.prompt||"",T.describe=ue.describe||"",T.promptState=ue.promptState,_.value=!0;try{const{data:de}=await mn.post("/cornerScape/getAllAssets",{projectId:(ee=r.value)==null?void 0:ee.id,type:n.value}),z=de.find(Y=>Y.id===ue.id);if(z){const Y=u.value.findIndex(ie=>ie.id===ue.id);Y!==-1&&(u.value[Y]=z),S.value=z,T.prompt=z.prompt||T.prompt,T.resolution=z.resolution||T.resolution}}catch(de){console.error("刷新资产详情失败:",de)}}function P(ue,ee){var z;const de=u.value.find(Y=>Y.id===ue);de&&(de.state=ee),((z=S.value)==null?void 0:z.id)===ue&&(S.value.state=ee)}function Q(){var de;if(!S.value)return;if(!o.value){window.$message.warning($t("workbench.cornerScape.msg.selectModel"));return}if(!T.resolution){window.$message.warning($t("workbench.cornerScape.msg.selectResolution"));return}if(!T.prompt.trim()){window.$message.warning($t("workbench.cornerScape.msg.enterPrompt"));return}const ue=S.value;P(ue.id,"生成中"),_.value=!1;const ee=m();mn.post("/assetsGenerate/generateAssets",{type:ue.type??"props",projectId:(de=r.value)==null?void 0:de.id,name:ue.name??$t("workbench.cornerScape.unnamed"),base64:"",prompt:T.prompt,model:o.value,id:ue.id,resolution:T.resolution,concurrentCount:1},{signal:ee.signal}).then(async()=>{window.$message.success($t("workbench.cornerScape.msg.genSuccess",{name:ue.name})),await f()}).catch(z=>{z.name==="CanceledError"||z.code==="ERR_CANCELED"||(window.$message.error(z.message??$t("workbench.cornerScape.msg.genFailed",{name:ue.name})),P(ue.id,"生成失败"))})}async function M(){var ue;if(S.value&&T.prompt!==S.value.prompt)try{await mn.post("/assets/saveAssets",{id:S.value.id,type:S.value.type,projectId:(ue=r.value)==null?void 0:ue.id,prompt:T.prompt}),S.value.prompt=T.prompt;const ee=u.value.find(de=>de.id===S.value.id);ee&&(ee.prompt=T.prompt),window.$message.success($t("workbench.cornerScape.msg.saveSuccess"))}catch{window.$message.error($t("workbench.cornerScape.msg.saveFailed"))}}const B=fe(!1);async function R(){var ue;if(!T.prompt.trim()){window.$message.warning($t("workbench.cornerScape.msg.enterPromptFirst"));return}B.value=!0;try{const{data:ee}=await mn.post("/assetsGenerate/polishAssetsPrompt",{projectId:(ue=r.value)==null?void 0:ue.id,assetsId:T.assetsId,type:T.type??"props",name:T.name,describe:T.describe});window.$message.success($t("workbench.cornerScape.msg.promptGenSuccess")),ee.assetsId===T.assetsId&&(T.prompt=ee.prompt),f()}catch{window.$message.error($t("workbench.cornerScape.msg.polishFailed"))}finally{B.value=!1}}async function I(){var ee;if(k.value.length===0){window.$message.warning($t("workbench.cornerScape.msg.selectAtLeastOne"));return}const ue=u.value.filter(de=>k.value.includes(de.id));ue.forEach(de=>{de.promptState="生成中"}),k.value=[];try{await mn.post("/assetsGenerate/batchPolishAssetsPrompt",{projectId:(ee=r.value)==null?void 0:ee.id,items:ue.map(de=>({assetsId:de.id,type:de.type??"props",name:de.name,describe:de.describe})),concurrentCount:t.value.assetsBatchGenereateSize})}catch(de){window.$message.error(de.message??$t("workbench.cornerScape.msg.promptGenFail")),ue.forEach(z=>{const Y=u.value.find(ie=>ie.id===z.id);Y&&(Y.promptState="")})}}async function F(){var de;if(k.value.length===0){window.$message.warning($t("workbench.cornerScape.msg.selectAtLeastOne"));return}if(!o.value){window.$message.warning($t("workbench.cornerScape.msg.selectModel"));return}if(!s.value){window.$message.warning($t("workbench.cornerScape.msg.selectResolution"));return}const ue=u.value.filter(z=>k.value.includes(z.id)),ee=ue.filter(z=>!z.prompt);if(ee.length>0){const z=ee.map(Y=>Y.name).join(", ");window.$message.warning($t("workbench.cornerScape.msg.emptyPrompt",{emptyPromptNames:z}));return}ue.forEach(z=>P(z.id,"生成中")),window.$message.success($t("workbench.cornerScape.msg.batchStarted",{count:ue.length,concurrent:t.value.assetsBatchGenereateSize}));try{await mn.post("/assetsGenerate/batchGenerateImageAssets",{projectId:(de=r.value)==null?void 0:de.id,model:o.value,resolution:s.value,concurrentCount:t.value.assetsBatchGenereateSize,items:ue.map(z=>({id:z.id,type:z.type??"props",name:z.name??$t("workbench.cornerScape.unnamed"),prompt:z.prompt}))})}catch(z){if(z.name==="CanceledError"||z.code==="ERR_CANCELED")return;window.$message.error(z.message??$t("workbench.cornerScape.msg.batchFailed"))}}const j=X(()=>u.value.filter(ue=>ue.promptState=="生成中")),W=X(()=>u.value.filter(ue=>ue.state==="生成中"));let H=null,$=null;async function G(){var ee;if(j.value.length===0)return;const ue=j.value.map(de=>de.id);try{const{data:de}=await mn.post("/assets/pollingPromptAssets",{ids:ue});let z=!1;if(Array.isArray(de)&&de.length&&de.forEach(Y=>{const ie=u.value.find(te=>te.id===Y.id);ie&&(ie.promptState==="生成中"&&Y.promptState!=="生成中"&&(z=!0),ie.promptState=Y.promptState,Y.prompt!==void 0&&(ie.prompt=Y.prompt))}),z)try{const{data:Y}=await mn.post("/cornerScape/getAllAssets",{projectId:(ee=r.value)==null?void 0:ee.id,type:n.value});if(Y.forEach(ie=>{const te=u.value.find(Z=>Z.id===ie.id);te&&(te.historyImages=ie.historyImages)}),S.value){const ie=Y.find(te=>te.id===S.value.id);ie&&(S.value.historyImages=ie.historyImages)}}catch(Y){console.error("刷新历史图片失败:",Y)}}catch(de){console.error("轮询提示词状态失败:",de)}}async function q(){var ee;if(W.value.length===0)return;const ue=W.value.map(de=>de.id);try{const{data:de}=await mn.post("/assets/pollingImageAssets",{ids:ue});let z=!1;if(Array.isArray(de)&&de.length&&de.forEach(Y=>{const ie=u.value.find(te=>te.id===Y.id);ie&&(ie.state==="生成中"&&Y.state!=="生成中"&&(z=!0),ie.state=Y.state,Y.filePath!==void 0&&(ie.filePath=Y.filePath))}),z)try{const{data:Y}=await mn.post("/cornerScape/getAllAssets",{projectId:(ee=r.value)==null?void 0:ee.id,type:n.value});if(Y.forEach(ie=>{const te=u.value.find(Z=>Z.id===ie.id);te&&(te.historyImages=ie.historyImages)}),S.value){const ie=Y.find(te=>te.id===S.value.id);ie&&(S.value.historyImages=ie.historyImages)}}catch(Y){console.error("刷新历史图片失败:",Y)}}catch(de){console.error("轮询图片生成状态失败:",de)}}function re(){H||(H=setInterval(async()=>{if(j.value.length===0){J();return}await G()},3e3))}function J(){H&&(clearInterval(H),H=null)}function oe(){$||($=setInterval(async()=>{if(W.value.length===0){se();return}await q()},3e3))}function se(){$&&(clearInterval($),$=null)}return pt(j,ue=>{ue.length>0?re():J()}),pt(W,ue=>{ue.length>0?oe():se()}),(ue,ee)=>{const de=Si,z=hL,Y=p2,ie=U4e,te=pA,Z=A2,he=km,pe=py,Ce=Xy,Qe=Wc,ke=y1,me=jre,_e=Zh,Te=Sg,De=c2,Ye=dL,ot=b3i;return xe(),Ge("div",cAs,[ge("div",dAs,[c(he,{shadow:"",title:ue.$t("workbench.cornerScape.batchSettings"),class:"card"},{default:Oe(()=>[c(Z,{labelAlign:"top"},{default:Oe(()=>[c(Y,{label:ue.$t("workbench.cornerScape.quickActions")},{default:Oe(()=>[ge("div",uAs,[c(de,{theme:"primary",variant:"outline",onClick:ee[0]||(ee[0]=We=>O())},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectPromptEmpty")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:ee[1]||(ee[1]=We=>w(""))},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectUngenerated")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:ee[2]||(ee[2]=We=>w("已完成"))},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectGenerated")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:ee[3]||(ee[3]=We=>w("生成失败"))},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.selectFailed")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:y},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.invertSelection")),1)]),_:1}),c(de,{theme:"primary",variant:"outline",onClick:C},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.clearSelection")),1)]),_:1}),c(z,{images:Ae(A),closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:We})=>[c(de,{theme:"primary",variant:"outline",disabled:!Ae(p),onClick:et=>Ae(p)&&We()},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.batchPreview")),1)]),_:1},8,["disabled","onClick"])]),_:1},8,["images"])])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.assetTypeFilter")},{default:Oe(()=>[c(ie,{onChange:v,modelValue:Ae(n),"onUpdate:modelValue":ee[4]||(ee[4]=We=>Fn(n)?n.value=We:null),options:Ae(d),class:"filterGroup"},null,8,["modelValue","options"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.genModel")},{default:Oe(()=>[c(T8,{modelValue:Ae(o),"onUpdate:modelValue":ee[5]||(ee[5]=We=>Fn(o)?o.value=We:null),type:"image"},null,8,["modelValue"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.resolution")},{default:Oe(()=>[c(te,{modelValue:Ae(s),"onUpdate:modelValue":ee[6]||(ee[6]=We=>Fn(s)?s.value=We:null),placeholder:ue.$t("workbench.cornerScape.resolutionPh"),options:[{label:"1K",value:"1K"},{label:"2K",value:"2K"},{label:"4K",value:"4K"}]},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(Y,null,{default:Oe(()=>[c(de,{theme:"primary",block:"",onClick:I},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.batchGenerationPrompt")),1)]),_:1}),c(de,{theme:"primary",block:"",onClick:F,style:{"margin-left":"10px"}},{default:Oe(()=>[Bt(Pe(ue.$t("workbench.cornerScape.startBatch")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),ge("div",hAs,[(xe(!0),Ge(sn,null,Bi(Ae(u),We=>uu((xe(),Ut(he,{shadow:"",class:"card",key:We.id,onClick:et=>D(We)},{default:Oe(()=>[ge("div",fAs,[c(pe,{class:"selectBox",checked:Ae(k).includes(We.id),onClick:ee[7]||(ee[7]=Mr(()=>{},["stop"])),onChange:et=>b(We.id)},null,8,["checked","onChange"]),!We.state&&We.promptState!=="生成中"?(xe(),Ut(Ce,{key:0,type:"maintenance",title:ue.$t("workbench.cornerScape.waitingGen")},null,8,["title"])):We.state==="生成中"||We.promptState==="生成中"?(xe(),Ge("div",gAs,[c(Qe),ge("span",mAs,Pe(We.promptState==="生成中"?ue.$t("workbench.cornerScape.generatingPrompt"):ue.$t("workbench.cornerScape.generating")),1)])):We.state==="生成失败"?(xe(),Ut(ke,{key:2,content:We.errorReason},{default:Oe(()=>[c(Ce,{type:"fail",title:ue.$t("workbench.cornerScape.genFailed")},null,8,["title"])]),_:1},8,["content"])):(xe(),Ut(_e,{key:3,class:"image",src:We.filePath??void 0,fit:"contain",preview:!0,lazy:!0},{error:Oe(()=>[c(Ce,{type:"fail",title:ue.$t("workbench.cornerScape.imageError")},null,8,["title"])]),overlayContent:Oe(()=>[ge("div",kAs,[c(me,{src:We.filePath,position:"br"},null,8,["src"])])]),_:2},1032,["src"]))]),ge("div",vAs,[ge("div",AAs,Pe(We.name),1),ge("div",pAs,[c(Te,{size:"small",variant:"light-outline",theme:"warning",class:"typeTag"},{default:Oe(()=>[Bt(Pe(We.type==="role"?ue.$t("workbench.cornerScape.typeRole"):We.type==="scene"?ue.$t("workbench.cornerScape.typeScene"):We.type==="tool"?ue.$t("workbench.cornerScape.typeTool"):ue.$t("workbench.cornerScape.typeUnknown")),1)]),_:2},1024),We.model?(xe(),Ut(Te,{key:0,size:"small",variant:"outline",class:"stateTag"},{default:Oe(()=>[Bt(Pe(We.model),1)]),_:2},1024)):nn("",!0),We.resolution?(xe(),Ut(Te,{key:1,size:"small",variant:"outline"},{default:Oe(()=>[Bt(Pe(We.resolution),1)]),_:2},1024)):nn("",!0)]),We.describe?(xe(),Ge("div",bAs,Pe(We.type==="role"?ue.$t("workbench.cornerScape.typeRole"):We.type==="scene"?ue.$t("workbench.cornerScape.typeScene"):We.type==="tool"?ue.$t("workbench.cornerScape.typeTool"):ue.$t("workbench.cornerScape.typeUnknown"))+Pe(ue.$t("workbench.cornerScape.descriptionSuffix"))+Pe(We.describe),1)):nn("",!0)])]),_:2},1032,["onClick"])),[[h1,Ae(u).length>0]])),128)),Ae(u).length===0?(xe(),Ut(Ce,{key:0,type:"empty",title:ue.$t("workbench.cornerScape.operateScriptFirst")},null,8,["title"])):nn("",!0),c(ot,{closeBtn:!0,closeOnEscKeydown:"",showOverlay:!1,footer:!1,visible:Ae(_),"onUpdate:visible":ee[11]||(ee[11]=We=>Fn(_)?_.value=We:null),size:"480px"},{header:Oe(()=>{var We;return[ge("div",wAs,[ge("span",null,Pe((We=Ae(S))==null?void 0:We.name)+" - "+Pe(ue.$t("workbench.cornerScape.individualConfig")),1),c(Te,{size:"medium",variant:"light-outline",theme:"warning"},{default:Oe(()=>{var et,st,Me;return[Bt(Pe(((et=Ae(S))==null?void 0:et.type)==="role"?ue.$t("workbench.cornerScape.typeRole"):((st=Ae(S))==null?void 0:st.type)==="scene"?ue.$t("workbench.cornerScape.typeScene"):((Me=Ae(S))==null?void 0:Me.type)==="tool"?ue.$t("workbench.cornerScape.typeTool"):ue.$t("workbench.cornerScape.typeUnknown")),1)]}),_:1})])]}),default:Oe(()=>[Ae(S)?(xe(),Ge("div",OAs,[Ae(S).state?Ae(S).state==="生成中"?(xe(),Ge("div",yAs,[c(Qe),ge("span",CAs,Pe(ue.$t("workbench.cornerScape.generating")),1)])):Ae(S).state==="生成失败"?(xe(),Ut(Ce,{key:2,type:"fail",title:ue.$t("workbench.cornerScape.genFailed")},null,8,["title"])):Ae(S).filePath?(xe(),Ut(_e,{key:3,class:"image",src:Ae(S).filePath,fit:"contain"},{error:Oe(()=>[c(Ce,{type:"fail",title:ue.$t("workbench.cornerScape.imageError")},null,8,["title"])]),overlayContent:Oe(()=>[ge("div",_As,[c(me,{src:Ae(S).filePath,position:"br"},null,8,["src"])])]),_:1},8,["src"])):(xe(),Ut(Ce,{key:4,type:"maintenance",title:ue.$t("workbench.cornerScape.noImage")},null,8,["title"])):(xe(),Ut(Ce,{key:0,type:"maintenance",title:ue.$t("workbench.cornerScape.waitingGen")},null,8,["title"]))])):nn("",!0),Ae(S)?(xe(),Ut(Z,{key:1,labelAlign:"top"},{default:Oe(()=>[c(Y,{label:ue.$t("workbench.cornerScape.history")},{default:Oe(()=>[ge("div",SAs,[(xe(!0),Ge(sn,null,Bi(Ae(S).historyImages,We=>(xe(),Ge("div",{key:We.id,class:Eo(["historyImageItem",{selected:Ae(L)===We.id}]),onClick:Mr(et=>E(We.id),["stop"])},[c(_e,{src:We.filePath,style:{width:"100px",minWidth:"100px",height:"100px"},lazy:!0,fit:"contain"},null,8,["src"])],10,LAs))),128))])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.genModel")},{default:Oe(()=>[c(T8,{modelValue:Ae(o),"onUpdate:modelValue":ee[8]||(ee[8]=We=>Fn(o)?o.value=We:null),type:"image"},null,8,["modelValue"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.resolution")},{default:Oe(()=>[c(te,{modelValue:Ae(T).resolution,"onUpdate:modelValue":ee[9]||(ee[9]=We=>Ae(T).resolution=We),placeholder:ue.$t("workbench.cornerScape.resolutionPh"),options:a},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),c(Y,{label:ue.$t("workbench.cornerScape.promptLabel")},{default:Oe(()=>[c(Qe,{style:{width:"100%"},loading:Ae(S).promptState=="生成中"},{default:Oe(()=>[c(De,{modelValue:Ae(T).prompt,"onUpdate:modelValue":ee[10]||(ee[10]=We=>Ae(T).prompt=We),placeholder:ue.$t("workbench.cornerScape.promptPh"),autosize:{minRows:4,maxRows:10},disabled:Ae(B),onBlur:M},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["loading"])]),_:1},8,["label"]),c(Y,null,{default:Oe(()=>[ge("div",xAs,[c(de,{theme:"default",variant:"outline",loading:Ae(B),onClick:R,disabled:Ae(S).promptState=="生成中"},{icon:Oe(()=>[c(Ye,{name:"edit"})]),default:Oe(()=>[Bt(" "+Pe(ue.$t("workbench.cornerScape.aiPolish")),1)]),_:1},8,["loading","disabled"]),c(de,{theme:"primary",onClick:Q,disabled:Ae(S).state=="生成中"},{icon:Oe(()=>[c(Ye,{name:"refresh"})]),default:Oe(()=>[Bt(" "+Pe(ue.$t("workbench.cornerScape.regenerate")),1)]),_:1},8,["disabled"])])]),_:1})]),_:1})):nn("",!0)]),_:1},8,["visible"])])])}}}),TAs=oo(EAs,[["__scopeId","data-v-6f5829b2"]]),QAs=Object.freeze(Object.defineProperty({__proto__:null,default:TAs},Symbol.toStringTag,{value:"Module"}));function xte(e){return vz()?(YQ(e),!0):!1}function wS(e){return typeof e=="function"?e():Ae(e)}const DAs=typeof window<"u"&&typeof document<"u",BAs=e=>typeof e<"u",RAs=Object.prototype.toString,IAs=e=>RAs.call(e)==="[object Object]",MAs=()=>{};function PAs(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const kYn=e=>e();function FAs(e=kYn){const t=fe(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:d6(t),pause:n,resume:r,eventFilter:(...s)=>{t.value&&e(...s)}}}function y0n(e,t=!1,n="Timeout"){return new Promise((r,o)=>{setTimeout(t?()=>o(n):r,e)})}function NAs(e,t,n={}){const{eventFilter:r=kYn,...o}=n;return pt(e,PAs(r,t),o)}function rF(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:a,resume:l,isActive:d}=FAs(r);return{stop:NAs(e,t,{...o,eventFilter:s}),pause:a,resume:l,isActive:d}}function UAs(e,t={}){if(!Fn(e))return Li(e);const n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const r in e.value)n[r]=QYe(()=>({get(){return e.value[r]},set(o){var s;if((s=wS(t.replaceRef))!=null?s:!0)if(Array.isArray(e.value)){const l=[...e.value];l[r]=o,e.value=l}else{const l={...e.value,[r]:o};Object.setPrototypeOf(l,Object.getPrototypeOf(e.value)),e.value=l}else e.value[r]=o}}));return n}function xGe(e,t=!1){function n(g,{flush:m="sync",deep:v=!1,timeout:f,throwOnTimeout:k}={}){let A=null;const b=[new Promise(w=>{A=pt(e,O=>{g(O)!==t&&(A==null||A(),w(O))},{flush:m,deep:v,immediate:!0})})];return f!=null&&b.push(y0n(f,k).then(()=>wS(e)).finally(()=>A==null?void 0:A())),Promise.race(b)}function r(g,m){if(!Fn(g))return n(O=>O===g,m);const{flush:v="sync",deep:f=!1,timeout:k,throwOnTimeout:A}=m??{};let p=null;const w=[new Promise(O=>{p=pt([e,g],([y,C])=>{t!==(y===C)&&(p==null||p(),O(y))},{flush:v,deep:f,immediate:!0})})];return k!=null&&w.push(y0n(k,A).then(()=>wS(e)).finally(()=>(p==null||p(),wS(e)))),Promise.race(w)}function o(g){return n(m=>!!m,g)}function s(g){return r(null,g)}function a(g){return r(void 0,g)}function l(g){return n(Number.isNaN,g)}function d(g,m){return n(v=>{const f=Array.from(v);return f.includes(g)||f.includes(wS(g))},m)}function u(g){return h(1,g)}function h(g=1,m){let v=-1;return n(()=>(v+=1,v>=g),m)}return Array.isArray(wS(e))?{toMatch:n,toContains:d,changed:u,changedTimes:h,get not(){return xGe(e,!t)}}:{toMatch:n,toBe:r,toBeTruthy:o,toBeNull:s,toBeNaN:l,toBeUndefined:a,changed:u,changedTimes:h,get not(){return xGe(e,!t)}}}function EGe(e){return xGe(e)}function jAs(e){var t;const n=wS(e);return(t=n==null?void 0:n.$el)!=null?t:n}const vYn=DAs?window:void 0;function AYn(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=vYn):[t,n,r,o]=e,!t)return MAs;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],a=()=>{s.forEach(h=>h()),s.length=0},l=(h,g,m,v)=>(h.addEventListener(g,m,v),()=>h.removeEventListener(g,m,v)),d=pt(()=>[jAs(t),wS(o)],([h,g])=>{if(a(),!h)return;const m=IAs(g)?{...g}:g;s.push(...n.flatMap(v=>r.map(f=>l(h,v,f,m))))},{immediate:!0,flush:"post"}),u=()=>{d(),a()};return xte(u),u}function WAs(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function C0n(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:o=vYn,eventName:s="keydown",passive:a=!1,dedupe:l=!1}=r,d=WAs(t);return AYn(o,s,h=>{h.repeat&&wS(l)||d(h)&&n(h)},a)}function VAs(e){return JSON.parse(JSON.stringify(e))}function rRe(e,t,n,r={}){var o,s,a;const{clone:l=!1,passive:d=!1,eventName:u,deep:h=!1,defaultValue:g,shouldEmit:m}=r,v=ps(),f=n||(v==null?void 0:v.emit)||((o=v==null?void 0:v.$emit)==null?void 0:o.bind(v))||((a=(s=v==null?void 0:v.proxy)==null?void 0:s.$emit)==null?void 0:a.bind(v==null?void 0:v.proxy));let k=u;t||(t="modelValue"),k=k||`update:${t.toString()}`;const A=w=>l?typeof l=="function"?l(w):VAs(w):w,p=()=>BAs(e[t])?A(e[t]):g,b=w=>{m?m(w)&&f(k,w):f(k,w)};if(d){const w=p(),O=fe(w);let y=!1;return pt(()=>e[t],C=>{y||(y=!0,O.value=A(C),ai(()=>y=!1))}),pt(O,C=>{!y&&(C!==e[t]||h)&&b(C)},{deep:h}),O}else return X({get(){return p()},set(w){b(w)}})}var zAs={value:()=>{}};function UOe(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}qhe.prototype=UOe.prototype={constructor:qhe,on:function(e,t){var n=this._,r=HAs(e+"",n),o,s=-1,a=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(o),r=0,o,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),S0n.hasOwnProperty(t)?{space:S0n[t],local:e}:e}function XAs(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===TGe&&t.documentElement.namespaceURI===TGe?t.createElement(e):t.createElementNS(n,e)}}function GAs(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pYn(e){var t=jOe(e);return(t.local?GAs:XAs)(t)}function YAs(){}function Mst(e){return e==null?YAs:function(){return this.querySelector(e)}}function ZAs(e){typeof e!="function"&&(e=Mst(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o=w&&(w=b+1);!(y=A[w])&&++w=0;)(a=r[o])&&(s&&a.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(a,s),s=a);return this}function w4s(e){e||(e=O4s);function t(g,m){return g&&m?e(g.__data__,m.__data__):!g-!m}for(var n=this._groups,r=n.length,o=new Array(r),s=0;st?1:e>=t?0:NaN}function y4s(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function C4s(){return Array.from(this)}function _4s(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?M4s:typeof t=="function"?F4s:P4s)(e,t,n??"")):oz(this.node(),e)}function oz(e,t){return e.style.getPropertyValue(t)||CYn(e).getComputedStyle(e,null).getPropertyValue(t)}function U4s(e){return function(){delete this[e]}}function j4s(e,t){return function(){this[e]=t}}function W4s(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function V4s(e,t){return arguments.length>1?this.each((t==null?U4s:typeof t=="function"?W4s:j4s)(e,t)):this.node()[e]}function _Yn(e){return e.trim().split(/^|\s+/)}function Pst(e){return e.classList||new SYn(e)}function SYn(e){this._node=e,this._names=_Yn(e.getAttribute("class")||"")}SYn.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function LYn(e,t){for(var n=Pst(e),r=-1,o=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function vps(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,s;n()=>e;function QGe(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:s,x:a,y:l,dx:d,dy:u,dispatch:h}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:h}})}QGe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Lps(e){return!e.ctrlKey&&!e.button}function xps(){return this.parentNode}function Eps(e,t){return t??{x:e.x,y:e.y}}function Tps(){return navigator.maxTouchPoints||"ontouchstart"in this}function Qps(){var e=Lps,t=xps,n=Eps,r=Tps,o={},s=UOe("start","drag","end"),a=0,l,d,u,h,g=0;function m(O){O.on("mousedown.drag",v).filter(r).on("touchstart.drag",A).on("touchmove.drag",p,Sps).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(O,y){if(!(h||!e.call(this,O,y))){var C=w(this,t.call(this,O,y),O,y,"mouse");C&&($b(O.view).on("mousemove.drag",f,Ete).on("mouseup.drag",k,Ete),QYn(O.view),oRe(O),u=!1,l=O.clientX,d=O.clientY,C("start",O))}}function f(O){if(gj(O),!u){var y=O.clientX-l,C=O.clientY-d;u=y*y+C*C>g}o.mouse("drag",O)}function k(O){$b(O.view).on("mousemove.drag mouseup.drag",null),DYn(O.view,u),gj(O),o.mouse("end",O)}function A(O,y){if(e.call(this,O,y)){var C=O.changedTouches,_=t.call(this,O,y),S=C.length,L,E;for(L=0;L>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Qde(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Qde(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Bps.exec(e))?new qk(t[1],t[2],t[3],1):(t=Rps.exec(e))?new qk(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Ips.exec(e))?Qde(t[1],t[2],t[3],t[4]):(t=Mps.exec(e))?Qde(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Pps.exec(e))?B0n(t[1],t[2]/100,t[3]/100,1):(t=Fps.exec(e))?B0n(t[1],t[2]/100,t[3]/100,t[4]):L0n.hasOwnProperty(e)?T0n(L0n[e]):e==="transparent"?new qk(NaN,NaN,NaN,0):null}function T0n(e){return new qk(e>>16&255,e>>8&255,e&255,1)}function Qde(e,t,n,r){return r<=0&&(e=t=n=NaN),new qk(e,t,n,r)}function jps(e){return e instanceof Vre||(e=KR(e)),e?(e=e.rgb(),new qk(e.r,e.g,e.b,e.opacity)):new qk}function DGe(e,t,n,r){return arguments.length===1?jps(e):new qk(e,t,n,r??1)}function qk(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Fst(qk,DGe,BYn(Vre,{brighter(e){return e=e==null?M2e:Math.pow(M2e,e),new qk(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Tte:Math.pow(Tte,e),new qk(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new qk(SD(this.r),SD(this.g),SD(this.b),P2e(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Q0n,formatHex:Q0n,formatHex8:Wps,formatRgb:D0n,toString:D0n}));function Q0n(){return`#${_Q(this.r)}${_Q(this.g)}${_Q(this.b)}`}function Wps(){return`#${_Q(this.r)}${_Q(this.g)}${_Q(this.b)}${_Q((isNaN(this.opacity)?1:this.opacity)*255)}`}function D0n(){const e=P2e(this.opacity);return`${e===1?"rgb(":"rgba("}${SD(this.r)}, ${SD(this.g)}, ${SD(this.b)}${e===1?")":`, ${e})`}`}function P2e(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function SD(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function _Q(e){return e=SD(e),(e<16?"0":"")+e.toString(16)}function B0n(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Xb(e,t,n,r)}function RYn(e){if(e instanceof Xb)return new Xb(e.h,e.s,e.l,e.opacity);if(e instanceof Vre||(e=KR(e)),!e)return new Xb;if(e instanceof Xb)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),s=Math.max(t,n,r),a=NaN,l=s-o,d=(s+o)/2;return l?(t===s?a=(n-r)/l+(n0&&d<1?0:a,new Xb(a,l,d,e.opacity)}function Vps(e,t,n,r){return arguments.length===1?RYn(e):new Xb(e,t,n,r??1)}function Xb(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Fst(Xb,Vps,BYn(Vre,{brighter(e){return e=e==null?M2e:Math.pow(M2e,e),new Xb(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Tte:Math.pow(Tte,e),new Xb(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new qk(sRe(e>=240?e-240:e+120,o,r),sRe(e,o,r),sRe(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new Xb(R0n(this.h),Dde(this.s),Dde(this.l),P2e(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=P2e(this.opacity);return`${e===1?"hsl(":"hsla("}${R0n(this.h)}, ${Dde(this.s)*100}%, ${Dde(this.l)*100}%${e===1?")":`, ${e})`}`}}));function R0n(e){return e=(e||0)%360,e<0?e+360:e}function Dde(e){return Math.max(0,Math.min(1,e||0))}function sRe(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Nst=e=>()=>e;function zps(e,t){return function(n){return e+n*t}}function Hps(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function $ps(e){return(e=+e)==1?IYn:function(t,n){return n-t?Hps(t,n,e):Nst(isNaN(t)?n:t)}}function IYn(e,t){var n=t-e;return n?zps(e,n):Nst(isNaN(e)?t:e)}const F2e=function e(t){var n=$ps(t);function r(o,s){var a=n((o=DGe(o)).r,(s=DGe(s)).r),l=n(o.g,s.g),d=n(o.b,s.b),u=IYn(o.opacity,s.opacity);return function(h){return o.r=a(h),o.g=l(h),o.b=d(h),o.opacity=u(h),o+""}}return r.gamma=e,r}(1);function Xps(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(s){for(o=0;on&&(s=t.slice(n,s),l[a]?l[a]+=s:l[++a]=s),(r=r[0])===(o=o[0])?l[a]?l[a]+=o:l[++a]=o:(l[++a]=null,d.push({i:a,x:vO(r,o)})),n=aRe.lastIndex;return n180?h+=360:h-u>180&&(u+=360),m.push({i:g.push(o(g)+"rotate(",null,r)-2,x:vO(u,h)})):h&&g.push(o(g)+"rotate("+h+r)}function l(u,h,g,m){u!==h?m.push({i:g.push(o(g)+"skewX(",null,r)-2,x:vO(u,h)}):h&&g.push(o(g)+"skewX("+h+r)}function d(u,h,g,m,v,f){if(u!==g||h!==m){var k=v.push(o(v)+"scale(",null,",",null,")");f.push({i:k-4,x:vO(u,g)},{i:k-2,x:vO(h,m)})}else(g!==1||m!==1)&&v.push(o(v)+"scale("+g+","+m+")")}return function(u,h){var g=[],m=[];return u=e(u),h=e(h),s(u.translateX,u.translateY,h.translateX,h.translateY,g,m),a(u.rotate,h.rotate,g,m),l(u.skewX,h.skewX,g,m),d(u.scaleX,u.scaleY,h.scaleX,h.scaleY,g,m),u=h=null,function(v){for(var f=-1,k=m.length,A;++f=0&&e._call.call(void 0,t),e=e._next;--sz}function P0n(){JR=(U2e=Dte.now())+WOe,sz=aY=0;try{lbs()}finally{sz=0,dbs(),JR=0}}function cbs(){var e=Dte.now(),t=e-U2e;t>NYn&&(WOe-=t,U2e=e)}function dbs(){for(var e,t=N2e,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:N2e=n);lY=e,IGe(r)}function IGe(e){if(!sz){aY&&(aY=clearTimeout(aY));var t=e-JR;t>24?(e<1/0&&(aY=setTimeout(P0n,e-Dte.now()-WOe)),aG&&(aG=clearInterval(aG))):(aG||(U2e=Dte.now(),aG=setInterval(cbs,NYn)),sz=1,UYn(P0n))}}function F0n(e,t,n){var r=new j2e;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var ubs=UOe("start","end","cancel","interrupt"),hbs=[],WYn=0,N0n=1,MGe=2,Jhe=3,U0n=4,PGe=5,efe=6;function VOe(e,t,n,r,o,s){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;fbs(e,n,{name:t,index:r,group:o,on:ubs,tween:hbs,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:WYn})}function jst(e,t){var n=H3(e,t);if(n.state>WYn)throw new Error("too late; already scheduled");return n}function uC(e,t){var n=H3(e,t);if(n.state>Jhe)throw new Error("too late; already running");return n}function H3(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function fbs(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=jYn(s,0,n.time);function s(u){n.state=N0n,n.timer.restart(a,n.delay,n.time),n.delay<=u&&a(u-n.delay)}function a(u){var h,g,m,v;if(n.state!==N0n)return d();for(h in r)if(v=r[h],v.name===n.name){if(v.state===Jhe)return F0n(a);v.state===U0n?(v.state=efe,v.timer.stop(),v.on.call("interrupt",e,e.__data__,v.index,v.group),delete r[h]):+hMGe&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function Vbs(e,t,n){var r,o,s=Wbs(t)?jst:uC;return function(){var a=s(this,e),l=a.on;l!==r&&(o=(r=l).copy()).on(t,n),a.on=o}}function zbs(e,t){var n=this._id;return arguments.length<2?H3(this.node(),n).on.on(e):this.each(Vbs(n,e,t))}function Hbs(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function $bs(){return this.on("end.remove",Hbs(this._id))}function Xbs(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Mst(e));for(var r=this._groups,o=r.length,s=new Array(o),a=0;a()=>e;function A3s(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function FS(e,t,n){this.k=e,this.x=t,this.y=n}FS.prototype={constructor:FS,scale:function(e){return e===1?this:new FS(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new FS(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var az=new FS(1,0,0);FS.prototype;function lRe(e){e.stopImmediatePropagation()}function lG(e){e.preventDefault(),e.stopImmediatePropagation()}function p3s(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function b3s(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function j0n(){return this.__zoom||az}function w3s(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function O3s(){return navigator.maxTouchPoints||"ontouchstart"in this}function y3s(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>s?(s+a)/2:Math.min(0,s)||Math.max(0,a))}function C3s(){var e=p3s,t=b3s,n=y3s,r=w3s,o=O3s,s=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],l=250,d=Khe,u=UOe("start","zoom","end"),h,g,m,v=500,f=150,k=0,A=10;function p(Q){Q.property("__zoom",j0n).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",E).filter(o).on("touchstart.zoom",T).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}p.transform=function(Q,M,B,R){var I=Q.selection?Q.selection():Q;I.property("__zoom",j0n),Q!==I?y(Q,M,B,R):I.interrupt().each(function(){C(this,arguments).event(R).start().zoom(null,typeof M=="function"?M.apply(this,arguments):M).end()})},p.scaleBy=function(Q,M,B,R){p.scaleTo(Q,function(){var I=this.__zoom.k,F=typeof M=="function"?M.apply(this,arguments):M;return I*F},B,R)},p.scaleTo=function(Q,M,B,R){p.transform(Q,function(){var I=t.apply(this,arguments),F=this.__zoom,j=B==null?O(I):typeof B=="function"?B.apply(this,arguments):B,W=F.invert(j),H=typeof M=="function"?M.apply(this,arguments):M;return n(w(b(F,H),j,W),I,a)},B,R)},p.translateBy=function(Q,M,B,R){p.transform(Q,function(){return n(this.__zoom.translate(typeof M=="function"?M.apply(this,arguments):M,typeof B=="function"?B.apply(this,arguments):B),t.apply(this,arguments),a)},null,R)},p.translateTo=function(Q,M,B,R,I){p.transform(Q,function(){var F=t.apply(this,arguments),j=this.__zoom,W=R==null?O(F):typeof R=="function"?R.apply(this,arguments):R;return n(az.translate(W[0],W[1]).scale(j.k).translate(typeof M=="function"?-M.apply(this,arguments):-M,typeof B=="function"?-B.apply(this,arguments):-B),F,a)},R,I)};function b(Q,M){return M=Math.max(s[0],Math.min(s[1],M)),M===Q.k?Q:new FS(M,Q.x,Q.y)}function w(Q,M,B){var R=M[0]-B[0]*Q.k,I=M[1]-B[1]*Q.k;return R===Q.x&&I===Q.y?Q:new FS(Q.k,R,I)}function O(Q){return[(+Q[0][0]+ +Q[1][0])/2,(+Q[0][1]+ +Q[1][1])/2]}function y(Q,M,B,R){Q.on("start.zoom",function(){C(this,arguments).event(R).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(R).end()}).tween("zoom",function(){var I=this,F=arguments,j=C(I,F).event(R),W=t.apply(I,F),H=B==null?O(W):typeof B=="function"?B.apply(I,F):B,$=Math.max(W[1][0]-W[0][0],W[1][1]-W[0][1]),G=I.__zoom,q=typeof M=="function"?M.apply(I,F):M,re=d(G.invert(H).concat($/G.k),q.invert(H).concat($/q.k));return function(J){if(J===1)J=q;else{var oe=re(J),se=$/oe[2];J=new FS(se,H[0]-oe[0]*se,H[1]-oe[1]*se)}j.zoom(null,J)}})}function C(Q,M,B){return!B&&Q.__zooming||new _(Q,M)}function _(Q,M){this.that=Q,this.args=M,this.active=0,this.sourceEvent=null,this.extent=t.apply(Q,M),this.taps=0}_.prototype={event:function(Q){return Q&&(this.sourceEvent=Q),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(Q,M){return this.mouse&&Q!=="mouse"&&(this.mouse[1]=M.invert(this.mouse[0])),this.touch0&&Q!=="touch"&&(this.touch0[1]=M.invert(this.touch0[0])),this.touch1&&Q!=="touch"&&(this.touch1[1]=M.invert(this.touch1[0])),this.that.__zoom=M,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(Q){var M=$b(this.that).datum();u.call(Q,this.that,new A3s(Q,{sourceEvent:this.sourceEvent,target:p,transform:this.that.__zoom,dispatch:u}),M)}};function S(Q,...M){if(!e.apply(this,arguments))return;var B=C(this,M).event(Q),R=this.__zoom,I=Math.max(s[0],Math.min(s[1],R.k*Math.pow(2,r.apply(this,arguments)))),F=Kw(Q);if(B.wheel)(B.mouse[0][0]!==F[0]||B.mouse[0][1]!==F[1])&&(B.mouse[1]=R.invert(B.mouse[0]=F)),clearTimeout(B.wheel);else{if(R.k===I)return;B.mouse=[F,R.invert(F)],tfe(this),B.start()}lG(Q),B.wheel=setTimeout(j,f),B.zoom("mouse",n(w(b(R,I),B.mouse[0],B.mouse[1]),B.extent,a));function j(){B.wheel=null,B.end()}}function L(Q,...M){if(m||!e.apply(this,arguments))return;var B=Q.currentTarget,R=C(this,M,!0).event(Q),I=$b(Q.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",$,!0),F=Kw(Q,B),j=Q.clientX,W=Q.clientY;QYn(Q.view),lRe(Q),R.mouse=[F,this.__zoom.invert(F)],tfe(this),R.start();function H(G){if(lG(G),!R.moved){var q=G.clientX-j,re=G.clientY-W;R.moved=q*q+re*re>k}R.event(G).zoom("mouse",n(w(R.that.__zoom,R.mouse[0]=Kw(G,B),R.mouse[1]),R.extent,a))}function $(G){I.on("mousemove.zoom mouseup.zoom",null),DYn(G.view,R.moved),lG(G),R.event(G).end()}}function E(Q,...M){if(e.apply(this,arguments)){var B=this.__zoom,R=Kw(Q.changedTouches?Q.changedTouches[0]:Q,this),I=B.invert(R),F=B.k*(Q.shiftKey?.5:2),j=n(w(b(B,F),R,I),t.apply(this,M),a);lG(Q),l>0?$b(this).transition().duration(l).call(y,j,R,Q):$b(this).call(p.transform,j,R,Q)}}function T(Q,...M){if(e.apply(this,arguments)){var B=Q.touches,R=B.length,I=C(this,M,Q.changedTouches.length===R).event(Q),F,j,W,H;for(lRe(Q),j=0;j(e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom",e))(Vi||{}),Vst=(e=>(e.Partial="partial",e.Full="full",e))(Vst||{}),FT=(e=>(e.Bezier="default",e.SimpleBezier="simple-bezier",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e))(FT||{}),H6=(e=>(e.Strict="strict",e.Loose="loose",e))(H6||{}),FGe=(e=>(e.Arrow="arrow",e.ArrowClosed="arrowclosed",e))(FGe||{}),lq=(e=>(e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal",e))(lq||{}),$Yn=(e=>(e.TopLeft="top-left",e.TopCenter="top-center",e.TopRight="top-right",e.BottomLeft="bottom-left",e.BottomCenter="bottom-center",e.BottomRight="bottom-right",e))($Yn||{});const _3s=["INPUT","SELECT","TEXTAREA"],S3s=typeof document<"u"?document:null;function NGe(e){var t,n;const r=((n=(t=e.composedPath)==null?void 0:t.call(e))==null?void 0:n[0])||e.target,o=typeof(r==null?void 0:r.hasAttribute)=="function"?r.hasAttribute("contenteditable"):!1,s=typeof(r==null?void 0:r.closest)=="function"?r.closest(".nokey"):null;return _3s.includes(r==null?void 0:r.nodeName)||o||!!s}function L3s(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function W0n(e,t,n,r){const o=t.replace("+",` `).replace(` `,` @@ -15474,12 +15474,12 @@ Edge: ${e} Source: ${t} Target: ${n}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found -Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Lf extends Error{constructor(t,...n){var r;super((r=ekn[t])==null?void 0:r.call(ekn,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function Hst(e){return"clientX"in e}function X3s(e){return"sourceEvent"in e}function QO(e,t){const n=Hst(e);let r,o;return n?(r=e.clientX,o=e.clientY):"touches"in e&&e.touches.length>0?(r=e.touches[0].clientX,o=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(r=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY):(r=0,o=0),{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}}const z2e=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function G3s(e){var t,n;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((n=e.dimensions)==null?void 0:n.height)??e.height??0}}function HOe(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const Y3s=()=>!0;function uRe(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function Z3s(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())V2e(o,W2e(s))>0&&r.push(s);return r}const q3s=250;function K3s(e,t,n,r){var o,s;let a=[],l=Number.POSITIVE_INFINITY;const d=Z3s(e,n,t+q3s);for(const u of d){const h=[...((o=u.handleBounds)==null?void 0:o.source)??[],...((s=u.handleBounds)==null?void 0:s.target)??[]];for(const g of h){if(r.nodeId===g.nodeId&&r.type===g.type&&r.id===g.id)continue;const{x:m,y:v}=lz(u,g,g.position,!0),f=Math.sqrt((m-e.x)**2+(v-e.y)**2);f>t||(f1){const u=r.type==="source"?"target":"source";return a.find(h=>h.type===u)??a[0]}return a[0]}function tkn(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:s,doc:a,lib:l,flowId:d,isValidConnection:u=Y3s},h,g,m,v){const f=s==="target",k=t?a.querySelector(`.${l}-flow__handle[data-id="${d}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:A,y:p}=QO(e),b=a.elementFromPoint(A,p),w=b!=null&&b.classList.contains(`${l}-flow__handle`)?b:k,O={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const y=aZn(void 0,w),C=w.getAttribute("data-nodeid"),_=w.getAttribute("data-handleid"),S=w.classList.contains("connectable"),L=w.classList.contains("connectableend");if(!C||!y)return O;const E={source:f?C:r,sourceHandle:f?_:o,target:f?r:C,targetHandle:f?o:_};O.connection=E;const D=S&&L&&(n===H6.Strict?f&&y==="source"||!f&&y==="target":C!==r||_!==o);O.isValid=D&&u(E,{nodes:g,edges:h,sourceNode:m(E.source),targetNode:m(E.target)}),O.toHandle=lZn(C,y,_,v,n,!0)}return O}function aZn(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function J3s(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function ews(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}function lZn(e,t,n,r,o,s=!1){var a,l,d;const u=r.get(e);if(!u)return null;const h=o===H6.Strict?(a=u.handleBounds)==null?void 0:a[t]:[...((l=u.handleBounds)==null?void 0:l.source)??[],...((d=u.handleBounds)==null?void 0:d.target)??[]],g=(n?h==null?void 0:h.find(m=>m.id===n):h==null?void 0:h[0])??null;return g&&s?{...g,...lz(u,g,g.position,!0)}:g}const UGe={[Vi.Left]:Vi.Right,[Vi.Right]:Vi.Left,[Vi.Top]:Vi.Bottom,[Vi.Bottom]:Vi.Top},tws=["production","prod"];function zre(e,...t){cZn()&&console.warn(`[Vue Flow]: ${e}`,...t)}function cZn(){return!tws.includes("production")}function nkn(e,t,n,r,o){const s=t.querySelectorAll(`.vue-flow__handle.${e}`);return s!=null&&s.length?Array.from(s).map(a=>{const l=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:o,position:a.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...zOe(a)}}):null}function jGe(e,t,n,r,o,s=!1,a){o.value=!1,e.selected?(s||e.selected&&t)&&(r([e]),ai(()=>{a.blur()})):n([e])}function Nh(e){return typeof Ae(e)<"u"}function nws(e,t,n,r){if(!e||!e.source||!e.target)return n(new Lf(Yh.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let o;return $6(e)?o=e:o={...e,id:JYn(e)},o=qYn(o,void 0,r),I3s(o,t)?!1:o}function iws(e,t,n,r,o){if(!t.source||!t.target)return o(new Lf(Yh.EDGE_INVALID,e.id)),!1;if(!n)return o(new Lf(Yh.EDGE_NOT_FOUND,e.id)),!1;const{id:s,...a}=e;return{...a,id:r?JYn(t):s,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function ikn(e,t,n){const r={},o=[];for(let s=0;sl.id===s.parentNode);s.parentNode&&!a&&n(new Lf(Yh.NODE_MISSING_PARENT,s.id,s.parentNode)),(s.parentNode||r[s.id])&&(r[s.id]&&(s.isParent=!0),a&&(a.isParent=!0))}return o}function rkn(e,t,n,r,o,s){let a=o;const l=r.get(a)||new Map;r.set(a,l.set(n,t)),a=`${o}-${e}`;const d=r.get(a)||new Map;if(r.set(a,d.set(n,t)),s){a=`${o}-${e}-${s}`;const u=r.get(a)||new Map;r.set(a,u.set(n,t))}}function hRe(e,t,n){e.clear();for(const r of n){const{source:o,target:s,sourceHandle:a=null,targetHandle:l=null}=r,d={edgeId:r.id,source:o,target:s,sourceHandle:a,targetHandle:l},u=`${o}-${a}--${s}-${l}`,h=`${s}-${l}--${o}-${a}`;rkn("source",d,h,e,o,a),rkn("target",d,u,e,s,l)}}function okn(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function fRe(e,t,n,r,o,s,a,l){const d=[];for(const u of e){const h=$6(u)?u:nws(u,l,o,s);if(!h)continue;const g=n(h.source),m=n(h.target);if(!g||!m){o(new Lf(Yh.EDGE_SOURCE_TARGET_MISSING,h.id,h.source,h.target));continue}if(!g){o(new Lf(Yh.EDGE_SOURCE_MISSING,h.id,h.source));continue}if(!m){o(new Lf(Yh.EDGE_TARGET_MISSING,h.id,h.target));continue}if(t&&!t(h,{edges:l,nodes:a,sourceNode:g,targetNode:m})){o(new Lf(Yh.EDGE_INVALID,h.id));continue}const v=r(h.id);d.push({...qYn(h,v,s),sourceNode:g,targetNode:m})}return d}const skn=Symbol("vueFlow"),dZn=Symbol("nodeId"),uZn=Symbol("nodeRef"),rws=Symbol("edgeId"),ows=Symbol("edgeRef"),$Oe=Symbol("slots");function hZn(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:r,noDragClassName:o,nodeLookup:s,nodeExtent:a,nodeDragThreshold:l,viewport:d,autoPanOnNodeDrag:u,autoPanSpeed:h,nodesDraggable:g,panBy:m,findNode:v,multiSelectionActive:f,nodesSelectionActive:k,selectNodesOnDrag:A,removeSelectedElements:p,addSelectedNodes:b,updateNodePositions:w,emits:O}=nl(),{onStart:y,onDrag:C,onStop:_,onClick:S,el:L,disabled:E,id:T,selectable:D,dragHandle:P}=e,Q=nd(!1);let M=[],B,R=null,I={x:void 0,y:void 0},F={x:0,y:0},j=null,W=!1,H=!1,$=0,G=!1;const q=lws(),re=({x:ee,y:de})=>{I={x:ee,y:de};let z=!1;if(M=M.map(Y=>{const ie={x:ee-Y.distance.x,y:de-Y.distance.y},{computedPosition:te}=zst(Y,n.value?HOe(ie,r.value):ie,O.error,a.value,Y.parentNode?v(Y.parentNode):void 0);return z=z||Y.position.x!==te.x||Y.position.y!==te.y,Y.position=te,Y}),H=H||z,!!z&&(w(M,!0,!0),Q.value=!0,j)){const[Y,ie]=dRe({id:T,dragItems:M,findNode:v});C({event:j,node:Y,nodes:ie})}},J=()=>{if(!R)return;const[ee,de]=oZn(F,R,h.value);if(ee!==0||de!==0){const z={x:(I.x??0)-ee/d.value.zoom,y:(I.y??0)-de/d.value.zoom};m({x:ee,y:de})&&re(z)}$=requestAnimationFrame(J)},oe=(ee,de)=>{W=!0;const z=v(T);!A.value&&!f.value&&z&&(z.selected||p()),z&&Fo(D)&&A.value&&jGe(z,f.value,b,p,k,!1,de);const Y=q(ee.sourceEvent);if(I=Y,M=j3s(s.value,g.value,Y,T),M.length){const[ie,te]=dRe({id:T,dragItems:M,findNode:v});y({event:ee.sourceEvent,node:ie,nodes:te})}},se=(ee,de)=>{var z;ee.sourceEvent.type==="touchmove"&&ee.sourceEvent.touches.length>1||(H=!1,l.value===0&&oe(ee,de),I=q(ee.sourceEvent),R=((z=t.value)==null?void 0:z.getBoundingClientRect())||null,F=QO(ee.sourceEvent,R))},le=(ee,de)=>{const z=q(ee.sourceEvent);if(!G&&W&&u.value&&(G=!0,J()),!W){const Y=z.xSnapped-(I.x??0),ie=z.ySnapped-(I.y??0);Math.sqrt(Y*Y+ie*ie)>l.value&&oe(ee,de)}(I.x!==z.xSnapped||I.y!==z.ySnapped)&&M.length&&W&&(j=ee.sourceEvent,F=QO(ee.sourceEvent,R),re(z))},ue=ee=>{let de=!1;if(!W&&!Q.value&&!f.value){const z=ee.sourceEvent,Y=q(z),ie=Y.xSnapped-(I.x??0),te=Y.ySnapped-(I.y??0),Z=Math.sqrt(ie*ie+te*te);Z!==0&&Z<=l.value&&(S==null||S(z),de=!0)}if(M.length&&!de){H&&(w(M,!1,!1),H=!1);const[z,Y]=dRe({id:T,dragItems:M,findNode:v});_({event:ee.sourceEvent,node:z,nodes:Y})}M=[],Q.value=!1,G=!1,W=!1,I={x:void 0,y:void 0},cancelAnimationFrame($)};return pt([()=>Fo(E),L],([ee,de],z,Y)=>{if(de){const ie=$b(de);ee||(B=Qps().on("start",te=>se(te,de)).on("drag",te=>le(te,de)).on("end",te=>ue(te)).filter(te=>{const Z=te.target,he=Fo(P);return!te.button&&(!o.value||!K0n(Z,`.${o.value}`,de)&&(!he||K0n(Z,he,de)))}),ie.call(B)),Y(()=>{ie.on(".drag",null),B&&(B.on("start",null),B.on("drag",null),B.on("end",null))})}}),Q}function sws(){return{doubleClick:sr(),click:sr(),mouseEnter:sr(),mouseMove:sr(),mouseLeave:sr(),contextMenu:sr(),updateStart:sr(),update:sr(),updateEnd:sr()}}function aws(e,t){const n=sws();return n.doubleClick.on(r=>{var o,s;t.edgeDoubleClick(r),(s=(o=e.events)==null?void 0:o.doubleClick)==null||s.call(o,r)}),n.click.on(r=>{var o,s;t.edgeClick(r),(s=(o=e.events)==null?void 0:o.click)==null||s.call(o,r)}),n.mouseEnter.on(r=>{var o,s;t.edgeMouseEnter(r),(s=(o=e.events)==null?void 0:o.mouseEnter)==null||s.call(o,r)}),n.mouseMove.on(r=>{var o,s;t.edgeMouseMove(r),(s=(o=e.events)==null?void 0:o.mouseMove)==null||s.call(o,r)}),n.mouseLeave.on(r=>{var o,s;t.edgeMouseLeave(r),(s=(o=e.events)==null?void 0:o.mouseLeave)==null||s.call(o,r)}),n.contextMenu.on(r=>{var o,s;t.edgeContextMenu(r),(s=(o=e.events)==null?void 0:o.contextMenu)==null||s.call(o,r)}),n.updateStart.on(r=>{var o,s;t.edgeUpdateStart(r),(s=(o=e.events)==null?void 0:o.updateStart)==null||s.call(o,r)}),n.update.on(r=>{var o,s;t.edgeUpdate(r),(s=(o=e.events)==null?void 0:o.update)==null||s.call(o,r)}),n.updateEnd.on(r=>{var o,s;t.edgeUpdateEnd(r),(s=(o=e.events)==null?void 0:o.updateEnd)==null||s.call(o,r)}),Object.entries(n).reduce((r,[o,s])=>(r.emit[o]=s.trigger,r.on[o]=s.on,r),{emit:{},on:{}})}function lws(){const{viewport:e,snapGrid:t,snapToGrid:n,vueFlowRef:r}=nl();return o=>{var s;const a=((s=r.value)==null?void 0:s.getBoundingClientRect())??{left:0,top:0},l=X3s(o)?o.sourceEvent:o,{x:d,y:u}=QO(l,a),h=Rte({x:d,y:u},e.value),{x:g,y:m}=n.value?HOe(h,t.value):h;return{xSnapped:g,ySnapped:m,...h}}}function Mde(){return!0}function fZn({handleId:e,nodeId:t,type:n,isValidConnection:r,edgeUpdaterType:o,onEdgeUpdate:s,onEdgeUpdateEnd:a}){const{id:l,vueFlowRef:d,connectionMode:u,connectionRadius:h,connectOnClick:g,connectionClickStartHandle:m,nodesConnectable:v,autoPanOnConnect:f,autoPanSpeed:k,findNode:A,panBy:p,startConnection:b,updateConnection:w,endConnection:O,emits:y,viewport:C,edges:_,nodes:S,isValidConnection:L,nodeLookup:E}=nl();let T=null,D=!1,P=null;function Q(B){var R;const I=Fo(n)==="target",F=Hst(B),j=V0n(B.target),W=B.currentTarget;if(W&&(F&&B.button===0||!F)){let H=function(Qe){z=QO(Qe,ue),re=K3s(Rte(z,C.value,!1,[1,1]),h.value,E.value,te),Y||(ie(),Y=!0);const ke=tkn(Qe,{handle:re,connectionMode:u.value,fromNodeId:Fo(t),fromHandleId:Fo(e),fromType:I?"target":"source",isValidConnection:q,doc:j,lib:"vue",flowId:l,nodeLookup:E.value},_.value,S.value,A,E.value);P=ke.handleDomNode,T=ke.connection,D=ews(!!re,ke.isValid);const me={...Ce,isValid:D,to:ke.toHandle&&D?Bte({x:ke.toHandle.x,y:ke.toHandle.y},C.value):z,toHandle:ke.toHandle,toPosition:D&&ke.toHandle?ke.toHandle.position:UGe[te.position],toNode:ke.toHandle?E.value.get(ke.toHandle.nodeId):null};if(D&&re&&(Ce!=null&&Ce.toHandle)&&me.toHandle&&Ce.toHandle.type===me.toHandle.type&&Ce.toHandle.nodeId===me.toHandle.nodeId&&Ce.toHandle.id===me.toHandle.id&&Ce.to.x===me.to.x&&Ce.to.y===me.to.y)return;const _e=re??ke.toHandle;if(w(_e&&D?Bte({x:_e.x,y:_e.y},C.value):z,_e,J3s(!!_e,D)),Ce=me,!re&&!D&&!P)return uRe(de);T&&T.source!==T.target&&P&&(uRe(de),de=P,P.classList.add("connecting","vue-flow__handle-connecting"),P.classList.toggle("valid",!!D),P.classList.toggle("vue-flow__handle-valid",!!D))},$=function(Qe){"touches"in Qe&&Qe.touches.length>0||((re||P)&&T&&D&&(s?s(Qe,T):y.connect(T)),y.connectEnd(Qe),o&&(a==null||a(Qe)),uRe(de),cancelAnimationFrame(J),O(Qe),Y=!1,D=!1,T=null,P=null,j.removeEventListener("mousemove",H),j.removeEventListener("mouseup",$),j.removeEventListener("touchmove",H),j.removeEventListener("touchend",$))};const G=A(Fo(t));let q=Fo(r)||L.value||Mde;!q&&G&&(q=(I?G.isValidSourcePos:G.isValidTargetPos)||Mde);let re,J=0;const{x:oe,y:se}=QO(B),le=aZn(Fo(o),W),ue=(R=d.value)==null?void 0:R.getBoundingClientRect();if(!ue||!le)return;const ee=lZn(Fo(t),le,Fo(e),E.value,u.value);if(!ee)return;let de,z=QO(B,ue),Y=!1;const ie=()=>{if(!f.value)return;const[Qe,ke]=oZn(z,ue,k.value);p({x:Qe,y:ke}),J=requestAnimationFrame(ie)},te={...ee,nodeId:Fo(t),type:le,position:ee.position},Z=E.value.get(Fo(t)),pe={inProgress:!0,isValid:null,from:lz(Z,te,Vi.Left,!0),fromHandle:te,fromPosition:te.position,fromNode:Z,to:z,toHandle:null,toPosition:UGe[te.position],toNode:null};b({nodeId:Fo(t),id:Fo(e),type:le,position:(W==null?void 0:W.getAttribute("data-handlepos"))||Vi.Top,...z},{x:oe-ue.left,y:se-ue.top}),y.connectStart({event:B,nodeId:Fo(t),handleId:Fo(e),handleType:le});let Ce=pe;j.addEventListener("mousemove",H),j.addEventListener("mouseup",$),j.addEventListener("touchmove",H),j.addEventListener("touchend",$)}}function M(B){var R,I;if(!g.value)return;const F=Fo(n)==="target";if(!m.value){y.clickConnectStart({event:B,nodeId:Fo(t),handleId:Fo(e)}),b({nodeId:Fo(t),type:Fo(n),id:Fo(e),position:Vi.Top,...QO(B)},void 0,!0);return}let j=Fo(r)||L.value||Mde;const W=A(Fo(t));if(!j&&W&&(j=(F?W.isValidSourcePos:W.isValidTargetPos)||Mde),W&&(typeof W.connectable>"u"?v.value:W.connectable)===!1)return;const H=V0n(B.target),$=tkn(B,{handle:{nodeId:Fo(t),id:Fo(e),type:Fo(n),position:Vi.Top,...QO(B)},connectionMode:u.value,fromNodeId:m.value.nodeId,fromHandleId:m.value.id??null,fromType:m.value.type,isValidConnection:j,doc:H,lib:"vue",flowId:l,nodeLookup:E.value},_.value,S.value,A,E.value),G=((R=$.connection)==null?void 0:R.source)===((I=$.connection)==null?void 0:I.target);$.isValid&&$.connection&&!G&&y.connect($.connection),y.clickConnectEnd(B),O(B,!0)}return{handlePointerDown:Q,handleClick:M}}function cws(){return bt(dZn,"")}function gZn(e){const t=e??cws()??"",n=bt(uZn,fe(null)),{findNode:r,edges:o,emits:s}=nl(),a=r(t);return a||s.error(new Lf(Yh.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:a,parentNode:X(()=>r(a.parentNode)),connectedEdges:X(()=>iZn([a],o.value))}}function dws(){return{doubleClick:sr(),click:sr(),mouseEnter:sr(),mouseMove:sr(),mouseLeave:sr(),contextMenu:sr(),dragStart:sr(),drag:sr(),dragStop:sr()}}function uws(e,t){const n=dws();return n.doubleClick.on(r=>{var o,s;t.nodeDoubleClick(r),(s=(o=e.events)==null?void 0:o.doubleClick)==null||s.call(o,r)}),n.click.on(r=>{var o,s;t.nodeClick(r),(s=(o=e.events)==null?void 0:o.click)==null||s.call(o,r)}),n.mouseEnter.on(r=>{var o,s;t.nodeMouseEnter(r),(s=(o=e.events)==null?void 0:o.mouseEnter)==null||s.call(o,r)}),n.mouseMove.on(r=>{var o,s;t.nodeMouseMove(r),(s=(o=e.events)==null?void 0:o.mouseMove)==null||s.call(o,r)}),n.mouseLeave.on(r=>{var o,s;t.nodeMouseLeave(r),(s=(o=e.events)==null?void 0:o.mouseLeave)==null||s.call(o,r)}),n.contextMenu.on(r=>{var o,s;t.nodeContextMenu(r),(s=(o=e.events)==null?void 0:o.contextMenu)==null||s.call(o,r)}),n.dragStart.on(r=>{var o,s;t.nodeDragStart(r),(s=(o=e.events)==null?void 0:o.dragStart)==null||s.call(o,r)}),n.drag.on(r=>{var o,s;t.nodeDrag(r),(s=(o=e.events)==null?void 0:o.drag)==null||s.call(o,r)}),n.dragStop.on(r=>{var o,s;t.nodeDragStop(r),(s=(o=e.events)==null?void 0:o.dragStop)==null||s.call(o,r)}),Object.entries(n).reduce((r,[o,s])=>(r.emit[o]=s.trigger,r.on[o]=s.on,r),{emit:{},on:{}})}function mZn(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:r,snapGrid:o,snapToGrid:s,nodesDraggable:a,emits:l}=nl();return(d,u=!1)=>{const h=s.value?o.value[0]:5,g=s.value?o.value[1]:5,m=u?4:1,v=d.x*h*m,f=d.y*g*m,k=[];for(const A of e.value)if(A.draggable||a&&typeof A.draggable>"u"){const p={x:A.computedPosition.x+v,y:A.computedPosition.y+f},{position:b}=zst(A,p,l.error,t.value,A.parentNode?r(A.parentNode):void 0);k.push({id:A.id,position:b,from:A.position,distance:{x:d.x,y:d.y},dimensions:A.dimensions})}n(k,!0,!1)}}const Pde=.1,hws=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function Tx(){return zre("Viewport not initialized yet."),Promise.resolve(!1)}const fws={zoomIn:Tx,zoomOut:Tx,zoomTo:Tx,fitView:Tx,setCenter:Tx,fitBounds:Tx,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:Tx,setTransform:Tx,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function gws(e){function t(r,o){return new Promise(s=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((o==null?void 0:o.interpolate)==="linear"?aq:Khe).scaleBy(gRe(e.d3Selection,o==null?void 0:o.duration,o==null?void 0:o.ease,()=>{s(!0)}),r):s(!1)})}function n(r,o,s,a){return new Promise(l=>{var d;const{x:u,y:h}=ZYn({x:-r,y:-o},e.translateExtent),g=az.translate(-u,-h).scale(s);e.d3Selection&&e.d3Zoom?(d=e.d3Zoom)==null||d.interpolate((a==null?void 0:a.interpolate)==="linear"?aq:Khe).transform(gRe(e.d3Selection,a==null?void 0:a.duration,a==null?void 0:a.ease,()=>{l(!0)}),g):l(!1)})}return X(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:o=>t(1.2,o),zoomOut:o=>t(1/1.2,o),zoomTo:(o,s)=>new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((s==null?void 0:s.interpolate)==="linear"?aq:Khe).scaleTo(gRe(e.d3Selection,s==null?void 0:s.duration,s==null?void 0:s.ease,()=>{a(!0)}),o):a(!1)}),setViewport:(o,s)=>n(o.x,o.y,o.zoom,s),setTransform:(o,s)=>n(o.x,o.y,o.zoom,s),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(o={padding:Pde,includeHiddenNodes:!1,duration:0})=>{var s,a;const l=[];for(const m of e.nodes)m.dimensions.width&&m.dimensions.height&&((o==null?void 0:o.includeHiddenNodes)||!m.hidden)&&(!((s=o.nodes)!=null&&s.length)||(a=o.nodes)!=null&&a.length&&o.nodes.includes(m.id))&&l.push(m);if(!l.length)return Promise.resolve(!1);const d=tZn(l),{x:u,y:h,zoom:g}=z0n(d,e.dimensions.width,e.dimensions.height,o.minZoom??e.minZoom,o.maxZoom??e.maxZoom,o.padding??Pde);return n(u,h,g,o)},setCenter:(o,s,a)=>{const l=typeof(a==null?void 0:a.zoom)<"u"?a.zoom:e.maxZoom,d=e.dimensions.width/2-o*l,u=e.dimensions.height/2-s*l;return n(d,u,l,a)},fitBounds:(o,s={padding:Pde})=>{const{x:a,y:l,zoom:d}=z0n(o,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,s.padding??Pde);return n(a,l,d,s)},project:o=>Rte(o,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:o=>{if(e.vueFlowRef){const{x:s,y:a}=e.vueFlowRef.getBoundingClientRect(),l={x:o.x-s,y:o.y-a};return Rte(l,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:o=>{if(e.vueFlowRef){const{x:s,y:a}=e.vueFlowRef.getBoundingClientRect(),l={x:o.x+s,y:o.y+a};return Bte(l,e.viewport)}return{x:0,y:0}}}:fws)}function gRe(e,t=0,n=hws,r=()=>{}){const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e}function mws(e,t,n){const r=One(!0);return r.run(()=>{const o=()=>{r.run(()=>{let k,A,p=!!(n.nodes.value.length||n.edges.value.length);k=rF([e.modelValue,()=>{var b,w;return(w=(b=e.modelValue)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(A==null||A.pause(),n.setElements(b),!A&&!p&&b.length?p=!0:A==null||A.resume())}),A=rF([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([b,w])=>{var O;(O=e.modelValue)!=null&&O.value&&Array.isArray(e.modelValue.value)&&(k==null||k.pause(),e.modelValue.value=[...b,...w],ai(()=>{k==null||k.resume()}))},{immediate:p}),YQ(()=>{k==null||k.stop(),A==null||A.stop()})})},s=()=>{r.run(()=>{let k,A,p=!!n.nodes.value.length;k=rF([e.nodes,()=>{var b,w;return(w=(b=e.nodes)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(A==null||A.pause(),n.setNodes(b),!A&&!p&&b.length?p=!0:A==null||A.resume())}),A=rF([n.nodes,()=>n.nodes.value.length],([b])=>{var w;(w=e.nodes)!=null&&w.value&&Array.isArray(e.nodes.value)&&(k==null||k.pause(),e.nodes.value=[...b],ai(()=>{k==null||k.resume()}))},{immediate:p}),YQ(()=>{k==null||k.stop(),A==null||A.stop()})})},a=()=>{r.run(()=>{let k,A,p=!!n.edges.value.length;k=rF([e.edges,()=>{var b,w;return(w=(b=e.edges)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(A==null||A.pause(),n.setEdges(b),!A&&!p&&b.length?p=!0:A==null||A.resume())}),A=rF([n.edges,()=>n.edges.value.length],([b])=>{var w;(w=e.edges)!=null&&w.value&&Array.isArray(e.edges.value)&&(k==null||k.pause(),e.edges.value=[...b],ai(()=>{k==null||k.resume()}))},{immediate:p}),YQ(()=>{k==null||k.stop(),A==null||A.stop()})})},l=()=>{r.run(()=>{pt(()=>t.maxZoom,()=>{t.maxZoom&&Nh(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},d=()=>{r.run(()=>{pt(()=>t.minZoom,()=>{t.minZoom&&Nh(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},u=()=>{r.run(()=>{pt(()=>t.translateExtent,()=>{t.translateExtent&&Nh(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},h=()=>{r.run(()=>{pt(()=>t.nodeExtent,()=>{t.nodeExtent&&Nh(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},g=()=>{r.run(()=>{pt(()=>t.applyDefault,()=>{Nh(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},m=()=>{r.run(()=>{const k=async A=>{let p=A;typeof t.autoConnect=="function"&&(p=await t.autoConnect(A)),p!==!1&&n.addEdges([p])};pt(()=>t.autoConnect,()=>{Nh(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),pt(n.autoConnect,(A,p,b)=>{A?n.onConnect(k):n.hooks.value.connect.off(k),b(()=>{n.hooks.value.connect.off(k)})},{immediate:!0})})},v=()=>{const k=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const A of Object.keys(t)){const p=A;if(!k.includes(p)){const b=Pa(()=>t[p]),w=n[p];Fn(w)&&r.run(()=>{pt(b,O=>{Nh(O)&&(w.value=O)},{immediate:!0})})}}};(()=>{o(),s(),a(),d(),l(),u(),h(),g(),m(),v()})()}),()=>r.stop()}function kws(){return{edgesChange:sr(),nodesChange:sr(),nodeDoubleClick:sr(),nodeClick:sr(),nodeMouseEnter:sr(),nodeMouseMove:sr(),nodeMouseLeave:sr(),nodeContextMenu:sr(),nodeDragStart:sr(),nodeDrag:sr(),nodeDragStop:sr(),nodesInitialized:sr(),miniMapNodeClick:sr(),miniMapNodeDoubleClick:sr(),miniMapNodeMouseEnter:sr(),miniMapNodeMouseMove:sr(),miniMapNodeMouseLeave:sr(),connect:sr(),connectStart:sr(),connectEnd:sr(),clickConnectStart:sr(),clickConnectEnd:sr(),paneReady:sr(),init:sr(),move:sr(),moveStart:sr(),moveEnd:sr(),selectionDragStart:sr(),selectionDrag:sr(),selectionDragStop:sr(),selectionContextMenu:sr(),selectionStart:sr(),selectionEnd:sr(),viewportChangeStart:sr(),viewportChange:sr(),viewportChangeEnd:sr(),paneScroll:sr(),paneClick:sr(),paneContextMenu:sr(),paneMouseEnter:sr(),paneMouseMove:sr(),paneMouseLeave:sr(),edgeContextMenu:sr(),edgeMouseEnter:sr(),edgeMouseMove:sr(),edgeMouseLeave:sr(),edgeDoubleClick:sr(),edgeClick:sr(),edgeUpdateStart:sr(),edgeUpdate:sr(),edgeUpdateEnd:sr(),updateNodeInternals:sr(),error:sr(e=>zre(e.message))}}function vws(e,t){const n=ps();TB(()=>{for(const[o,s]of Object.entries(t.value)){const a=l=>{e(o,l)};s.setEmitter(a),xte(s.removeEmitter),s.setHasEmitListeners(()=>r(o)),xte(s.removeHasEmitListeners)}});function r(o){var s;const a=Aws(o);return!!((s=n==null?void 0:n.vnode.props)==null?void 0:s[a])}}function Aws(e){const[t,...n]=e.split(":");return`on${t.replace(/(?:^|-)(\w)/g,(o,s)=>s.toUpperCase())}${n.length?`:${n.join(":")}`:""}`}function kZn(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:Vst.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:lq.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:FT.Bezier,style:{}},connectionMode:H6.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:z2e()?"Meta":"Control",zoomActivationKeyCode:z2e()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:kws(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const pws=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function bws(e,t,n){const r=gws(e),o=z=>{const Y=z??[];e.hooks.updateNodeInternals.trigger(Y)},s=z=>R3s(z,e.nodes,e.edges),a=z=>B3s(z,e.nodes,e.edges),l=z=>iZn(z,e.edges),d=({id:z,type:Y,nodeId:ie})=>{var te;const Z=z?`-${Y}-${z}`:`-${Y}`;return Array.from(((te=e.connectionLookup.get(`${ie}${Z}`))==null?void 0:te.values())??[])},u=z=>{if(z)return t.value.get(z)},h=z=>{if(z)return n.value.get(z)},g=(z,Y,ie)=>{var te,Z;const he=[];for(const pe of z){const Ce={id:pe.id,type:"position",dragging:ie,from:pe.from};if(Y&&(Ce.position=pe.position,pe.parentNode)){const Qe=u(pe.parentNode);Ce.position={x:Ce.position.x-(((te=Qe==null?void 0:Qe.computedPosition)==null?void 0:te.x)??0),y:Ce.position.y-(((Z=Qe==null?void 0:Qe.computedPosition)==null?void 0:Z.y)??0)}}he.push(Ce)}he!=null&&he.length&&e.hooks.nodesChange.trigger(he)},m=z=>{if(!e.vueFlowRef)return;const Y=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!Y)return;const ie=window.getComputedStyle(Y),{m22:te}=new window.DOMMatrixReadOnly(ie.transform),Z=[];for(const he of z){const pe=he,Ce=u(pe.id);if(Ce){const Qe=zOe(pe.nodeElement);if(!!(Qe.width&&Qe.height&&(Ce.dimensions.width!==Qe.width||Ce.dimensions.height!==Qe.height||pe.forceUpdate))){const me=pe.nodeElement.getBoundingClientRect();Ce.dimensions=Qe,Ce.handleBounds.source=nkn("source",pe.nodeElement,me,te,Ce.id),Ce.handleBounds.target=nkn("target",pe.nodeElement,me,te,Ce.id),Z.push({id:Ce.id,type:"dimensions",dimensions:Qe})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&r.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),Z.length&&e.hooks.nodesChange.trigger(Z)},v=(z,Y)=>{const ie=new Set,te=new Set;for(const pe of z)LD(pe)?ie.add(pe.id):$6(pe)&&te.add(pe.id);const Z=m5(t.value,ie,!0),he=m5(n.value,te);if(e.multiSelectionActive){for(const pe of ie)Z.push($x(pe,Y));for(const pe of te)he.push($x(pe,Y))}Z.length&&e.hooks.nodesChange.trigger(Z),he.length&&e.hooks.edgesChange.trigger(he)},f=z=>{if(e.multiSelectionActive){const Y=z.map(ie=>$x(ie.id,!0));e.hooks.nodesChange.trigger(Y);return}e.hooks.nodesChange.trigger(m5(t.value,new Set(z.map(Y=>Y.id)),!0)),e.hooks.edgesChange.trigger(m5(n.value))},k=z=>{if(e.multiSelectionActive){const Y=z.map(ie=>$x(ie.id,!0));e.hooks.edgesChange.trigger(Y);return}e.hooks.edgesChange.trigger(m5(n.value,new Set(z.map(Y=>Y.id)))),e.hooks.nodesChange.trigger(m5(t.value,new Set,!0))},A=z=>{v(z,!0)},p=z=>{const ie=(z||e.nodes).map(te=>(te.selected=!1,$x(te.id,!1)));e.hooks.nodesChange.trigger(ie)},b=z=>{const ie=(z||e.edges).map(te=>(te.selected=!1,$x(te.id,!1)));e.hooks.edgesChange.trigger(ie)},w=z=>{if(!z||!z.length)return v([],!1);const Y=z.reduce((ie,te)=>{const Z=$x(te.id,!1);return LD(te)?ie.nodes.push(Z):ie.edges.push(Z),ie},{nodes:[],edges:[]});Y.nodes.length&&e.hooks.nodesChange.trigger(Y.nodes),Y.edges.length&&e.hooks.edgesChange.trigger(Y.edges)},O=z=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([z,e.maxZoom]),e.minZoom=z},y=z=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([e.minZoom,z]),e.maxZoom=z},C=z=>{var Y;(Y=e.d3Zoom)==null||Y.translateExtent(z),e.translateExtent=z},_=z=>{e.nodeExtent=z,o()},S=z=>{var Y;(Y=e.d3Zoom)==null||Y.clickDistance(z)},L=z=>{e.nodesDraggable=z,e.nodesConnectable=z,e.elementsSelectable=z},E=z=>{const Y=z instanceof Function?z(e.nodes):z;!e.initialized&&!Y.length||(e.nodes=ikn(Y,u,e.hooks.error.trigger))},T=z=>{const Y=z instanceof Function?z(e.edges):z;if(!e.initialized&&!Y.length)return;const ie=fRe(Y,e.isValidConnection,u,h,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);hRe(e.connectionLookup,n.value,ie),e.edges=ie},D=z=>{const Y=z instanceof Function?z([...e.nodes,...e.edges]):z;!e.initialized&&!Y.length||(E(Y.filter(LD)),T(Y.filter($6)))},P=z=>{let Y=z instanceof Function?z(e.nodes):z;Y=Array.isArray(Y)?Y:[Y];const ie=ikn(Y,u,e.hooks.error.trigger),te=[];for(const Z of ie)te.push(G0n(Z));te.length&&e.hooks.nodesChange.trigger(te)},Q=z=>{let Y=z instanceof Function?z(e.edges):z;Y=Array.isArray(Y)?Y:[Y];const ie=fRe(Y,e.isValidConnection,u,h,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),te=[];for(const Z of ie)te.push(G0n(Z));te.length&&e.hooks.edgesChange.trigger(te)},M=(z,Y=!0,ie=!1)=>{const te=z instanceof Function?z(e.nodes):z,Z=Array.isArray(te)?te:[te],he=[],pe=[];function Ce(ke){const me=l(ke);for(const _e of me)(!Nh(_e.deletable)||_e.deletable)&&pe.push(Z0n(_e.id,_e.source,_e.target,_e.sourceHandle,_e.targetHandle))}function Qe(ke){const me=[];for(const _e of e.nodes)_e.parentNode===ke&&me.push(_e);if(me.length){for(const _e of me)he.push(Y0n(_e.id));Y&&Ce(me);for(const _e of me)Qe(_e.id)}}for(const ke of Z){const me=typeof ke=="string"?u(ke):ke;me&&(Nh(me.deletable)&&!me.deletable||(he.push(Y0n(me.id)),Y&&Ce([me]),ie&&Qe(me.id)))}pe.length&&e.hooks.edgesChange.trigger(pe),he.length&&e.hooks.nodesChange.trigger(he)},B=z=>{const Y=z instanceof Function?z(e.edges):z,ie=Array.isArray(Y)?Y:[Y],te=[];for(const Z of ie){const he=typeof Z=="string"?h(Z):Z;he&&(Nh(he.deletable)&&!he.deletable||te.push(Z0n(typeof Z=="string"?Z:Z.id,he.source,he.target,he.sourceHandle,he.targetHandle)))}e.hooks.edgesChange.trigger(te)},R=(z,Y,ie=!0)=>{const te=h(z.id);if(!te)return!1;const Z=e.edges.indexOf(te),he=iws(z,Y,te,ie,e.hooks.error.trigger);if(he){const[pe]=fRe([he],e.isValidConnection,u,h,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((Ce,Qe)=>Qe===Z?pe:Ce),hRe(e.connectionLookup,n.value,[pe]),pe}return!1},I=(z,Y,ie={replace:!1})=>{const te=h(z);if(!te)return;const Z=typeof Y=="function"?Y(te):Y;te.data=ie.replace?Z:{...te.data,...Z}},F=z=>X0n(z,e.nodes),j=z=>{const Y=X0n(z,e.edges);return hRe(e.connectionLookup,n.value,Y),Y},W=(z,Y,ie={replace:!1})=>{const te=u(z);if(!te)return;const Z=typeof Y=="function"?Y(te):Y;ie.replace?e.nodes.splice(e.nodes.indexOf(te),1,Z):Object.assign(te,Z)},H=(z,Y,ie={replace:!1})=>{const te=u(z);if(!te)return;const Z=typeof Y=="function"?Y(te):Y;te.data=ie.replace?Z:{...te.data,...Z}},$=(z,Y,ie=!1)=>{ie?e.connectionClickStartHandle=z:e.connectionStartHandle=z,e.connectionEndHandle=null,e.connectionStatus=null,Y&&(e.connectionPosition=Y)},G=(z,Y=null,ie=null)=>{e.connectionStartHandle&&(e.connectionPosition=z,e.connectionEndHandle=Y,e.connectionStatus=ie)},q=(z,Y)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,Y?e.connectionClickStartHandle=null:e.connectionStartHandle=null},re=z=>{const Y=Q3s(z),ie=Y?null:cY(z)?z:u(z.id);return!Y&&!ie?[null,null,Y]:[Y?z:W2e(ie),ie,Y]},J=(z,Y=!0,ie=e.nodes)=>{const[te,Z,he]=re(z);if(!te)return[];const pe=[];for(const Ce of ie||e.nodes){if(!he&&(Ce.id===Z.id||!Ce.computedPosition))continue;const Qe=W2e(Ce),ke=V2e(Qe,te);(Y&&ke>0||ke>=Qe.width*Qe.height||ke>=Number(te.width)*Number(te.height))&&pe.push(Ce)}return pe},oe=(z,Y,ie=!0)=>{const[te]=re(z);if(!te)return!1;const Z=V2e(te,Y);return ie&&Z>0||Z>=Number(te.width)*Number(te.height)},se=z=>{const{viewport:Y,dimensions:ie,d3Zoom:te,d3Selection:Z,translateExtent:he}=e;if(!te||!Z||!z.x&&!z.y)return!1;const pe=az.translate(Y.x+z.x,Y.y+z.y).scale(Y.zoom),Ce=[[0,0],[ie.width,ie.height]],Qe=te.constrain()(pe,Ce,he),ke=e.viewport.x!==Qe.x||e.viewport.y!==Qe.y||e.viewport.zoom!==Qe.k;return te.transform(Z,Qe),ke},le=z=>{const Y=z instanceof Function?z(e):z,ie=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Nh(Y.defaultEdgeOptions)&&(e.defaultEdgeOptions=Y.defaultEdgeOptions);const te=Y.modelValue||Y.nodes||Y.edges?[]:void 0;te&&(Y.modelValue&&te.push(...Y.modelValue),Y.nodes&&te.push(...Y.nodes),Y.edges&&te.push(...Y.edges),D(te));const Z=()=>{Nh(Y.maxZoom)&&y(Y.maxZoom),Nh(Y.minZoom)&&O(Y.minZoom),Nh(Y.translateExtent)&&C(Y.translateExtent)};for(const he of Object.keys(Y)){const pe=he,Ce=Y[pe];![...pws,...ie].includes(pe)&&Nh(Ce)&&(e[pe]=Ce)}EGe(()=>e.d3Zoom).not.toBeNull().then(Z),e.initialized||(e.initialized=!0)};return{updateNodePositions:g,updateNodeDimensions:m,setElements:D,setNodes:E,setEdges:T,addNodes:P,addEdges:Q,removeNodes:M,removeEdges:B,findNode:u,findEdge:h,updateEdge:R,updateEdgeData:I,updateNode:W,updateNodeData:H,applyEdgeChanges:j,applyNodeChanges:F,addSelectedElements:A,addSelectedNodes:f,addSelectedEdges:k,setMinZoom:O,setMaxZoom:y,setTranslateExtent:C,setNodeExtent:_,setPaneClickDistance:S,removeSelectedElements:w,removeSelectedNodes:p,removeSelectedEdges:b,startConnection:$,updateConnection:G,endConnection:q,setInteractive:L,setState:le,getIntersectingNodes:J,getIncomers:s,getOutgoers:a,getConnectedEdges:l,getHandleConnections:d,isNodeIntersecting:oe,panBy:se,fitView:z=>r.value.fitView(z),zoomIn:z=>r.value.zoomIn(z),zoomOut:z=>r.value.zoomOut(z),zoomTo:(z,Y)=>r.value.zoomTo(z,Y),setViewport:(z,Y)=>r.value.setViewport(z,Y),setTransform:(z,Y)=>r.value.setTransform(z,Y),getViewport:()=>r.value.getViewport(),getTransform:()=>r.value.getTransform(),setCenter:(z,Y,ie)=>r.value.setCenter(z,Y,ie),fitBounds:(z,Y)=>r.value.fitBounds(z,Y),project:z=>r.value.project(z),screenToFlowCoordinate:z=>r.value.screenToFlowCoordinate(z),flowToScreenCoordinate:z=>r.value.flowToScreenCoordinate(z),toObject:()=>{const z=[],Y=[];for(const ie of e.nodes){const{computedPosition:te,handleBounds:Z,selected:he,dimensions:pe,isParent:Ce,resizing:Qe,dragging:ke,events:me,..._e}=ie;z.push(_e)}for(const ie of e.edges){const{selected:te,sourceNode:Z,targetNode:he,events:pe,...Ce}=ie;Y.push(Ce)}return JSON.parse(JSON.stringify({nodes:z,edges:Y,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:z=>new Promise(Y=>{const{nodes:ie,edges:te,position:Z,zoom:he,viewport:pe}=z;ie&&E(ie),te&&T(te);const[Ce,Qe]=pe!=null&&pe.x&&(pe!=null&&pe.y)?[pe.x,pe.y]:Z??[null,null];if(Ce&&Qe){const ke=(pe==null?void 0:pe.zoom)||he||e.viewport.zoom;return EGe(()=>r.value.viewportInitialized).toBe(!0).then(()=>{r.value.setViewport({x:Ce,y:Qe,zoom:ke}).then(()=>{Y(!0)})})}else Y(!0)}),updateNodeInternals:o,viewportHelper:r,$reset:()=>{const z=kZn();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const Y=az.translate(z.defaultViewport.x??0,z.defaultViewport.y??0).scale(eI(z.defaultViewport.zoom??1,z.minZoom,z.maxZoom)),ie=e.viewportRef.getBoundingClientRect(),te=[[0,0],[ie.width,ie.height]],Z=e.d3Zoom.constrain()(Y,te,z.translateExtent);e.d3Zoom.transform(e.d3Selection,Z)}le(z)},$destroy:()=>{}}}const wws=["data-id","data-handleid","data-nodeid","data-handlepos"],Ows={name:"Handle",compatConfig:{MODE:3}},mm=Je({...Ows,props:{id:{default:null},type:{},position:{default:()=>Vi.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=mri(e,["position","connectable","connectableStart","connectableEnd","id"]),r=Pa(()=>n.type??"source"),o=Pa(()=>n.isValidConnection??null),{id:s,connectionStartHandle:a,connectionClickStartHandle:l,connectionEndHandle:d,vueFlowRef:u,nodesConnectable:h,noDragClassName:g,noPanClassName:m}=nl(),{id:v,node:f,nodeEl:k,connectedEdges:A}=gZn(),p=fe(),b=Pa(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),w=Pa(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),O=Pa(()=>{var T,D,P,Q,M,B;return((T=a.value)==null?void 0:T.nodeId)===v&&((D=a.value)==null?void 0:D.id)===e.id&&((P=a.value)==null?void 0:P.type)===r.value||((Q=d.value)==null?void 0:Q.nodeId)===v&&((M=d.value)==null?void 0:M.id)===e.id&&((B=d.value)==null?void 0:B.type)===r.value}),y=Pa(()=>{var T,D,P;return((T=l.value)==null?void 0:T.nodeId)===v&&((D=l.value)==null?void 0:D.id)===e.id&&((P=l.value)==null?void 0:P.type)===r.value}),{handlePointerDown:C,handleClick:_}=fZn({nodeId:v,handleId:e.id,isValidConnection:o,type:r}),S=X(()=>typeof e.connectable=="string"&&e.connectable==="single"?!A.value.some(T=>{const D=T[`${r.value}Handle`];return T[r.value]!==v?!1:D?D===e.id:!0}):typeof e.connectable=="number"?A.value.filter(T=>{const D=T[`${r.value}Handle`];return T[r.value]!==v?!1:D?D===e.id:!0}).length{var T;if(!f.dimensions.width||!f.dimensions.height)return;const D=(T=f.handleBounds[r.value])==null?void 0:T.find(F=>F.id===e.id);if(!u.value||D)return;const P=u.value.querySelector(".vue-flow__transformationpane");if(!k.value||!p.value||!P||!e.id)return;const Q=k.value.getBoundingClientRect(),M=p.value.getBoundingClientRect(),B=window.getComputedStyle(P),{m22:R}=new window.DOMMatrixReadOnly(B.transform),I={id:e.id,position:e.position,x:(M.left-Q.left)/R,y:(M.top-Q.top)/R,type:r.value,nodeId:v,...zOe(p.value)};f.handleBounds[r.value]=[...f.handleBounds[r.value]??[],I]});function L(T){const D=Hst(T);S.value&&b.value&&(D&&T.button===0||!D)&&C(T)}function E(T){!v||!l.value&&!b.value||S.value&&_(T)}return t({handleClick:_,handlePointerDown:C,onClick:E,onPointerDown:L}),(T,D)=>(xe(),Ge("div",{ref_key:"handle",ref:p,"data-id":`${Ae(s)}-${Ae(v)}-${e.id}-${r.value}`,"data-handleid":e.id,"data-nodeid":Ae(v),"data-handlepos":T.position,class:Eo(["vue-flow__handle",[`vue-flow__handle-${T.position}`,`vue-flow__handle-${e.id}`,Ae(g),Ae(m),r.value,{connectable:S.value,connecting:y.value,connectablestart:b.value,connectableend:w.value,connectionindicator:S.value&&(b.value&&!O.value||w.value&&O.value)}]]),onMousedown:L,onTouchstartPassive:L,onClick:E},[Zr(T.$slots,"default",{id:T.id})],42,wws))}}),XOe=function({sourcePosition:e=Vi.Bottom,targetPosition:t=Vi.Top,label:n,connectable:r=!0,isValidTargetPos:o,isValidSourcePos:s,data:a}){const l=a.label??n;return[xn(mm,{type:"target",position:t,connectable:r,isValidConnection:o}),typeof l!="string"&&l?xn(l):xn(sn,[l]),xn(mm,{type:"source",position:e,connectable:r,isValidConnection:s})]};XOe.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"];XOe.inheritAttrs=!1;XOe.compatConfig={MODE:3};const yws=XOe,GOe=function({targetPosition:e=Vi.Top,label:t,connectable:n=!0,isValidTargetPos:r,data:o}){const s=o.label??t;return[xn(mm,{type:"target",position:e,connectable:n,isValidConnection:r}),typeof s!="string"&&s?xn(s):xn(sn,[s])]};GOe.props=["targetPosition","label","isValidTargetPos","connectable","data"];GOe.inheritAttrs=!1;GOe.compatConfig={MODE:3};const Cws=GOe,YOe=function({sourcePosition:e=Vi.Bottom,label:t,connectable:n=!0,isValidSourcePos:r,data:o}){const s=o.label??t;return[typeof s!="string"&&s?xn(s):xn(sn,[s]),xn(mm,{type:"source",position:e,connectable:n,isValidConnection:r})]};YOe.props=["sourcePosition","label","isValidSourcePos","connectable","data"];YOe.inheritAttrs=!1;YOe.compatConfig={MODE:3};const _ws=YOe,Sws=["transform"],Lws=["width","height","x","y","rx","ry"],xws=["y"],Ews={name:"EdgeText",compatConfig:{MODE:3}},Tws=Je({...Ews,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=fe({x:0,y:0,width:0,height:0}),n=fe(null),r=X(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);An(o),pt([()=>e.x,()=>e.y,n,()=>e.label],o);function o(){if(!n.value)return;const s=n.value.getBBox();(s.width!==t.value.width||s.height!==t.value.height)&&(t.value=s)}return(s,a)=>(xe(),Ge("g",{transform:r.value,class:"vue-flow__edge-textwrapper"},[s.labelShowBg?(xe(),Ge("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*s.labelBgPadding[0]}px`,height:`${t.value.height+2*s.labelBgPadding[1]}px`,x:-s.labelBgPadding[0],y:-s.labelBgPadding[1],style:no(s.labelBgStyle),rx:s.labelBgBorderRadius,ry:s.labelBgBorderRadius},null,12,Lws)):nn("",!0),ge("text",Gn(s.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:s.labelStyle}),[Zr(s.$slots,"default",{},()=>[typeof s.label!="string"?(xe(),Ut(Bd(s.label),{key:0})):(xe(),Ge(sn,{key:1},[Bt(Pe(s.label),1)],64))])],16,xws)],8,Sws))}}),Qws=["id","d","marker-end","marker-start"],Dws=["d","stroke-width"],Bws={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Hre=Je({...Bws,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=fe(null),r=fe(null),o=fe(null),s=gri();return t({pathEl:n,interactionEl:r,labelEl:o}),(a,l)=>(xe(),Ge(sn,null,[ge("path",Gn(Ae(s),{id:a.id,ref_key:"pathEl",ref:n,d:a.path,class:"vue-flow__edge-path","marker-end":a.markerEnd,"marker-start":a.markerStart}),null,16,Qws),a.interactionWidth?(xe(),Ge("path",{key:0,ref_key:"interactionEl",ref:r,fill:"none",d:a.path,"stroke-width":a.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,Dws)):nn("",!0),a.label&&a.labelX&&a.labelY?(xe(),Ut(Tws,{key:1,ref_key:"labelEl",ref:o,x:a.labelX,y:a.labelY,label:a.label,"label-show-bg":a.labelShowBg,"label-bg-style":a.labelBgStyle,"label-bg-padding":a.labelBgPadding,"label-bg-border-radius":a.labelBgBorderRadius,"label-style":a.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):nn("",!0)],64))}});function vZn({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,s=n=0?.5*e:t*25*Math.sqrt(-e)}function akn({pos:e,x1:t,y1:n,x2:r,y2:o,c:s}){let a,l;switch(e){case Vi.Left:a=t-Fde(t-r,s),l=n;break;case Vi.Right:a=t+Fde(r-t,s),l=n;break;case Vi.Top:a=t,l=n-Fde(n-o,s);break;case Vi.Bottom:a=t,l=n+Fde(o-n,s);break}return[a,l]}function $st(e){const{sourceX:t,sourceY:n,sourcePosition:r=Vi.Bottom,targetX:o,targetY:s,targetPosition:a=Vi.Top,curvature:l=.25}=e,[d,u]=akn({pos:r,x1:t,y1:n,x2:o,y2:s,c:l}),[h,g]=akn({pos:a,x1:o,y1:s,x2:t,y2:n,c:l}),[m,v,f,k]=AZn({sourceX:t,sourceY:n,targetX:o,targetY:s,sourceControlX:d,sourceControlY:u,targetControlX:h,targetControlY:g});return[`M${t},${n} C${d},${u} ${h},${g} ${o},${s}`,m,v,f,k]}function lkn({pos:e,x1:t,y1:n,x2:r,y2:o}){let s,a;switch(e){case Vi.Left:case Vi.Right:s=.5*(t+r),a=n;break;case Vi.Top:case Vi.Bottom:s=t,a=.5*(n+o);break}return[s,a]}function pZn(e){const{sourceX:t,sourceY:n,sourcePosition:r=Vi.Bottom,targetX:o,targetY:s,targetPosition:a=Vi.Top}=e,[l,d]=lkn({pos:r,x1:t,y1:n,x2:o,y2:s}),[u,h]=lkn({pos:a,x1:o,y1:s,x2:t,y2:n}),[g,m,v,f]=AZn({sourceX:t,sourceY:n,targetX:o,targetY:s,sourceControlX:l,sourceControlY:d,targetControlX:u,targetControlY:h});return[`M${t},${n} C${l},${d} ${u},${h} ${o},${s}`,g,m,v,f]}const ckn={[Vi.Left]:{x:-1,y:0},[Vi.Right]:{x:1,y:0},[Vi.Top]:{x:0,y:-1},[Vi.Bottom]:{x:0,y:1}};function Rws({source:e,sourcePosition:t=Vi.Bottom,target:n}){return t===Vi.Left||t===Vi.Right?e.xe[g]?-1:1)*Q:p[g]=(u[g]>n[g]?-1:1)*Q}}if(t!==r){const P=g==="x"?"y":"x",Q=a[g]===l[P],M=d[P]>u[P],B=d[P]=D?(f=(L.x+E.x)/2,k=v[0].y):(f=v[0].x,k=(L.y+E.y)/2)}return[[e,{x:d.x+A.x,y:d.y+A.y},...v,{x:u.x+p.x,y:u.y+p.y},n],f,k,O,y]}function Mws(e,t,n,r){const o=Math.min(dkn(e,t)/2,dkn(t,n)/2,r),{x:s,y:a}=t;if(e.x===s&&s===n.x||e.y===a&&a===n.y)return`L${s} ${a}`;if(e.y===a){const u=e.x{let O;return w>0&&w{const[n,r,o]=Pws(e);return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),Nws=Fws,Uws=Je({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,r,o]=WGe({...e,sourcePosition:e.sourcePosition??Vi.Bottom,targetPosition:e.targetPosition??Vi.Top});return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),bZn=Uws,jws=Je({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>xn(bZn,{...e,...t,borderRadius:0})}}),Wws=jws,Vws=Je({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,r,o]=$st({...e,sourcePosition:e.sourcePosition??Vi.Bottom,targetPosition:e.targetPosition??Vi.Top});return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),zws=Vws,Hws=Je({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,r,o]=pZn({...e,sourcePosition:e.sourcePosition??Vi.Bottom,targetPosition:e.targetPosition??Vi.Top});return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),$ws=Hws,Xws={input:_ws,default:yws,output:Cws},Gws={default:zws,straight:Nws,step:Wws,smoothstep:bZn,simplebezier:$ws};function Yws(e,t,n){const r=X(()=>k=>t.value.get(k)),o=X(()=>k=>n.value.get(k)),s=X(()=>{const k={...Gws,...e.edgeTypes},A=Object.keys(k);for(const p of e.edges)p.type&&!A.includes(p.type)&&(k[p.type]=p.type);return k}),a=X(()=>{const k={...Xws,...e.nodeTypes},A=Object.keys(k);for(const p of e.nodes)p.type&&!A.includes(p.type)&&(k[p.type]=p.type);return k}),l=X(()=>e.onlyRenderVisibleElements?nZn(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),d=X(()=>{if(e.onlyRenderVisibleElements){const k=[];for(const A of e.edges){const p=t.value.get(A.source),b=t.value.get(A.target);H3s({sourcePos:p.computedPosition||{x:0,y:0},targetPos:b.computedPosition||{x:0,y:0},sourceWidth:p.dimensions.width,sourceHeight:p.dimensions.height,targetWidth:b.dimensions.width,targetHeight:b.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&k.push(A)}return k}return e.edges}),u=X(()=>[...l.value,...d.value]),h=X(()=>{const k=[];for(const A of e.nodes)A.selected&&k.push(A);return k}),g=X(()=>{const k=[];for(const A of e.edges)A.selected&&k.push(A);return k}),m=X(()=>[...h.value,...g.value]),v=X(()=>{const k=[];for(const A of e.nodes)A.dimensions.width&&A.dimensions.height&&A.handleBounds!==void 0&&k.push(A);return k}),f=X(()=>l.value.length>0&&v.value.length===l.value.length);return{getNode:r,getEdge:o,getElements:u,getEdgeTypes:s,getNodeTypes:a,getEdges:d,getNodes:l,getSelectedElements:m,getSelectedNodes:h,getSelectedEdges:g,getNodesInitialized:v,areNodesInitialized:f}}let Zws=class jF{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=ps())==null?void 0:t.appContext.app,r=(n==null?void 0:n.config.globalProperties.$vueFlowStorage)??jF.instance;return jF.instance=r??new jF,n&&(n.config.globalProperties.$vueFlowStorage=jF.instance),jF.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const r=kZn(),o=hs(r),s={};for(const[m,v]of Object.entries(o.hooks)){const f=`on${m.charAt(0).toUpperCase()+m.slice(1)}`;s[f]=v.on}const a={};for(const[m,v]of Object.entries(o.hooks))a[m]=v.trigger;const l=X(()=>{const m=new Map;for(const v of o.nodes)m.set(v.id,v);return m}),d=X(()=>{const m=new Map;for(const v of o.edges)m.set(v.id,v);return m}),u=Yws(o,l,d),h=bws(o,l,d);h.setState({...o,...n});const g={...s,...u,...h,...UAs(o),nodeLookup:l,edgeLookup:d,emits:a,id:t,vueFlowVersion:"1.48.2",$destroy:()=>{this.remove(t)}};return this.set(t,g),g}getId(){return`vue-flow-${this.currentId++}`}};function nl(e){const t=Zws.getInstance(),n=vz(),r=typeof e=="object",o=r?e:{id:e},s=o.id,a=s??(n==null?void 0:n.vueFlowId);let l;if(n){const d=bt(skn,null);typeof d<"u"&&d!==null&&(!a||d.id===a)&&(l=d)}if(l||a&&(l=t.get(a)),!l||a&&l.id!==a){const d=s??t.getId(),u=t.create(d,o);l=u,(n??One(!0)).run(()=>{pt(u.applyDefault,(g,m,v)=>{const f=A=>{u.applyNodeChanges(A)},k=A=>{u.applyEdgeChanges(A)};g?(u.onNodesChange(f),u.onEdgesChange(k)):(u.hooks.value.nodesChange.off(f),u.hooks.value.edgesChange.off(k)),v(()=>{u.hooks.value.nodesChange.off(f),u.hooks.value.edgesChange.off(k)})},{immediate:!0}),xte(()=>{if(l){const g=t.get(l.id);g?g.$destroy():zre(`No store instance found for id ${l.id} in storage.`)}})})}else r&&l.setState(o);if(n&&(Yi(skn,l),n.vueFlowId=l.id),r){const d=ps();(d==null?void 0:d.type.name)!=="VueFlow"&&l.emits.error(new Lf(Yh.USEVUEFLOW_OPTIONS))}return l}function qws(e){const{emits:t,dimensions:n}=nl();let r;An(()=>{const o=()=>{var s,a;if(!e.value||!(((a=(s=e.value).checkVisibility)==null?void 0:a.call(s))??!0))return;const l=zOe(e.value);(l.width===0||l.height===0)&&t.error(new Lf(Yh.MISSING_VIEWPORT_DIMENSIONS)),n.value={width:l.width||500,height:l.height||500}};o(),window.addEventListener("resize",o),e.value&&(r=new ResizeObserver(()=>o()),r.observe(e.value)),qs(()=>{window.removeEventListener("resize",o),r&&e.value&&r.unobserve(e.value)})})}const Kws={name:"UserSelection",compatConfig:{MODE:3}},Jws=Je({...Kws,props:{userSelectionRect:{}},setup(e){return(t,n)=>(xe(),Ge("div",{class:"vue-flow__selection vue-flow__container",style:no({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),eOs=["tabIndex"],tOs={name:"NodesSelection",compatConfig:{MODE:3}},nOs=Je({...tOs,setup(e){const{emits:t,viewport:n,getSelectedNodes:r,noPanClassName:o,disableKeyboardA11y:s,userSelectionActive:a}=nl(),l=mZn(),d=fe(null),u=hZn({el:d,onStart(f){t.selectionDragStart(f),t.nodeDragStart(f)},onDrag(f){t.selectionDrag(f),t.nodeDrag(f)},onStop(f){t.selectionDragStop(f),t.nodeDragStop(f)}});An(()=>{var f;s.value||(f=d.value)==null||f.focus({preventScroll:!0})});const h=X(()=>tZn(r.value)),g=X(()=>({width:`${h.value.width}px`,height:`${h.value.height}px`,top:`${h.value.y}px`,left:`${h.value.x}px`}));function m(f){t.selectionContextMenu({event:f,nodes:r.value})}function v(f){s.value||kj[f.key]&&(f.preventDefault(),l({x:kj[f.key].x,y:kj[f.key].y},f.shiftKey))}return(f,k)=>!Ae(a)&&h.value.width&&h.value.height?(xe(),Ge("div",{key:0,class:Eo(["vue-flow__nodesselection vue-flow__container",Ae(o)]),style:no({transform:`translate(${Ae(n).x}px,${Ae(n).y}px) scale(${Ae(n).zoom})`})},[ge("div",{ref_key:"el",ref:d,class:Eo([{dragging:Ae(u)},"vue-flow__nodesselection-rect"]),style:no(g.value),tabIndex:Ae(s)?void 0:-1,onContextmenu:m,onKeydown:v},null,46,eOs)],6)):nn("",!0)}});function iOs(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const rOs={name:"Pane",compatConfig:{MODE:3}},oOs=Je({...rOs,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:n,viewport:r,emits:o,userSelectionActive:s,removeSelectedElements:a,userSelectionRect:l,elementsSelectable:d,nodesSelectionActive:u,getSelectedEdges:h,getSelectedNodes:g,removeNodes:m,removeEdges:v,selectionMode:f,deleteKeyCode:k,multiSelectionKeyCode:A,multiSelectionActive:p,edgeLookup:b,nodeLookup:w,connectionLookup:O,defaultEdgeOptions:y,connectionStartHandle:C,panOnDrag:_}=nl(),S=nd(null),L=nd(new Set),E=nd(new Set),T=nd(null),D=Pa(()=>d.value&&(e.isSelecting||s.value)),P=Pa(()=>C.value!==null);let Q=!1,M=!1;const B=cq(k,{actInsideInputWithModifier:!1}),R=cq(A);pt(B,q=>{q&&(m(g.value),v(h.value),u.value=!1)}),pt(R,q=>{p.value=q});function I(q,re){return J=>{J.target===re&&(q==null||q(J))}}function F(q){if(Q||P.value){Q=!1;return}o.paneClick(q),a(),u.value=!1}function j(q){var re;if(Array.isArray(_.value)&&((re=_.value)!=null&&re.includes(2))){q.preventDefault();return}o.paneContextMenu(q)}function W(q){o.paneScroll(q)}function H(q){var re,J,oe;if(T.value=((re=t.value)==null?void 0:re.getBoundingClientRect())??null,!d.value||!e.isSelecting||q.button!==0||q.target!==S.value||!T.value)return;(oe=(J=q.target)==null?void 0:J.setPointerCapture)==null||oe.call(J,q.pointerId);const{x:se,y:le}=iOs(q,T.value);M=!0,Q=!1,a(),l.value={width:0,height:0,startX:se,startY:le,x:se,y:le},o.selectionStart(q)}function $(q){var re;if(!T.value||!l.value)return;Q=!0;const{x:J,y:oe}=QO(q,T.value),{startX:se=0,startY:le=0}=l.value,ue={startX:se,startY:le,x:JY.id)),E.value=new Set;const z=((re=y.value)==null?void 0:re.selectable)??!0;for(const Y of L.value){const ie=O.value.get(Y);if(ie)for(const{edgeId:te}of ie.values()){const Z=b.value.get(te);Z&&(Z.selectable??z)&&E.value.add(te)}}if(!okn(ee,L.value)){const Y=m5(w.value,L.value,!0);o.nodesChange(Y)}if(!okn(de,E.value)){const Y=m5(b.value,E.value);o.edgesChange(Y)}l.value=ue,s.value=!0,u.value=!1}function G(q){var re;q.button!==0||!M||((re=q.target)==null||re.releasePointerCapture(q.pointerId),!s.value&&l.value&&q.target===S.value&&F(q),s.value=!1,l.value=null,u.value=L.value.size>0,o.selectionEnd(q),e.selectionKeyPressed&&(Q=!1),M=!1)}return(q,re)=>(xe(),Ge("div",{ref_key:"container",ref:S,class:Eo(["vue-flow__pane vue-flow__container",{selection:q.isSelecting}]),onClick:re[0]||(re[0]=J=>D.value?void 0:I(F,S.value)(J)),onContextmenu:re[1]||(re[1]=J=>I(j,S.value)(J)),onWheelPassive:re[2]||(re[2]=J=>I(W,S.value)(J)),onPointerenter:re[3]||(re[3]=J=>D.value?void 0:Ae(o).paneMouseEnter(J)),onPointerdown:re[4]||(re[4]=J=>D.value?H(J):Ae(o).paneMouseMove(J)),onPointermove:re[5]||(re[5]=J=>D.value?$(J):Ae(o).paneMouseMove(J)),onPointerup:re[6]||(re[6]=J=>D.value?G(J):void 0),onPointerleave:re[7]||(re[7]=J=>Ae(o).paneMouseLeave(J))},[Zr(q.$slots,"default"),Ae(s)&&Ae(l)?(xe(),Ut(Jws,{key:0,"user-selection-rect":Ae(l)},null,8,["user-selection-rect"])):nn("",!0),Ae(u)&&Ae(g).length?(xe(),Ut(nOs,{key:1})):nn("",!0)],34))}}),sOs={name:"Transform",compatConfig:{MODE:3}},aOs=Je({...sOs,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:r}=nl(),o=X(()=>n.value?!r.value:!1),s=X(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(a,l)=>(xe(),Ge("div",{class:"vue-flow__transformationpane vue-flow__container",style:no({transform:s.value,opacity:o.value?0:void 0})},[Zr(a.$slots,"default")],4))}}),lOs={name:"Viewport",compatConfig:{MODE:3}},cOs=Je({...lOs,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:r,translateExtent:o,zoomActivationKeyCode:s,selectionKeyCode:a,panActivationKeyCode:l,panOnScroll:d,panOnScrollMode:u,panOnScrollSpeed:h,panOnDrag:g,zoomOnDoubleClick:m,zoomOnPinch:v,zoomOnScroll:f,preventScrolling:k,noWheelClassName:A,noPanClassName:p,emits:b,connectionStartHandle:w,userSelectionActive:O,paneDragging:y,d3Zoom:C,d3Selection:_,d3ZoomHandler:S,viewport:L,viewportRef:E,paneClickDistance:T}=nl();qws(E);const D=nd(!1),P=nd(!1);let Q=null,M=!1,B=0,R={x:0,y:0,zoom:0};const I=cq(l),F=cq(a),j=cq(s),W=Pa(()=>(!F.value||F.value&&a.value===!0)&&(I.value||g.value)),H=Pa(()=>I.value||d.value),$=Pa(()=>a.value===!0&&W.value!==!0),G=Pa(()=>F.value&&a.value!==!0||O.value||$.value),q=Pa(()=>w.value!==null);An(()=>{if(!E.value){zre("Viewport element is missing");return}const le=E.value,ue=le.getBoundingClientRect(),ee=C3s().clickDistance(T.value).scaleExtent([t.value,n.value]).translateExtent(o.value),de=$b(le).call(ee),z=de.on("wheel.zoom"),Y=az.translate(r.value.x??0,r.value.y??0).scale(eI(r.value.zoom??1,t.value,n.value)),ie=[[0,0],[ue.width,ue.height]],te=ee.constrain()(Y,ie,o.value);ee.transform(de,te),ee.wheelDelta(H0n),C.value=ee,_.value=de,S.value=z,L.value={x:te.x,y:te.y,zoom:te.k},ee.on("start",Z=>{var he;if(!Z.sourceEvent)return null;B=Z.sourceEvent.button,D.value=!0;const pe=oe(Z.transform);((he=Z.sourceEvent)==null?void 0:he.type)==="mousedown"&&(y.value=!0),R=pe,b.viewportChangeStart(pe),b.moveStart({event:Z,flowTransform:pe})}),ee.on("end",Z=>{if(!Z.sourceEvent)return null;if(D.value=!1,y.value=!1,re(W.value,B??0)&&!M&&b.paneContextMenu(Z.sourceEvent),M=!1,J(R,Z.transform)){const he=oe(Z.transform);R=he,b.viewportChangeEnd(he),b.moveEnd({event:Z,flowTransform:he})}}),ee.filter(Z=>{var he;const pe=j.value||f.value,Ce=v.value&&Z.ctrlKey,Qe=Z.button,ke=Z.type==="wheel";if(Qe===1&&Z.type==="mousedown"&&(se(Z,"vue-flow__node")||se(Z,"vue-flow__edge")))return!0;if(!W.value&&!pe&&!H.value&&!m.value&&!v.value||O.value||q.value&&!ke||!m.value&&Z.type==="dblclick"||se(Z,A.value)&&ke||se(Z,p.value)&&(!ke||H.value&&ke&&!j.value)||!v.value&&Z.ctrlKey&&ke||!pe&&!H.value&&!Ce&&ke)return!1;if(!v&&Z.type==="touchstart"&&((he=Z.touches)==null?void 0:he.length)>1)return Z.preventDefault(),!1;if(!W.value&&(Z.type==="mousedown"||Z.type==="touchstart")||$.value&&Array.isArray(g.value)&&g.value.includes(0)&&Qe===0||Array.isArray(g.value)&&!g.value.includes(Qe)&&(Z.type==="mousedown"||Z.type==="touchstart"))return!1;const me=Array.isArray(g.value)&&g.value.includes(Qe)||a.value===!0&&Array.isArray(g.value)&&!g.value.includes(0)||!Qe||Qe<=1;return(!Z.ctrlKey||I.value||ke)&&me}),pt([O,W],()=>{O.value&&!D.value?ee.on("zoom",null):O.value||ee.on("zoom",Z=>{L.value={x:Z.transform.x,y:Z.transform.y,zoom:Z.transform.k};const he=oe(Z.transform);M=re(W.value,B??0),b.viewportChange(he),b.move({event:Z,flowTransform:he})})},{immediate:!0}),pt([O,H,u,j,v,k,A],()=>{H.value&&!j.value&&!O.value?de.on("wheel.zoom",Z=>{if(se(Z,A.value))return!1;const he=j.value||f.value,pe=v.value&&Z.ctrlKey;if(!(!k.value||H.value||he||pe))return!1;Z.preventDefault(),Z.stopImmediatePropagation();const Qe=de.property("__zoom").k||1,ke=z2e();if(!I.value&&Z.ctrlKey&&v.value&&ke){const Ye=Kw(Z),ot=H0n(Z),We=Qe*2**ot;ee.scaleTo(de,We,Ye,Z);return}const me=Z.deltaMode===1?20:1;let _e=u.value===lq.Vertical?0:Z.deltaX*me,Te=u.value===lq.Horizontal?0:Z.deltaY*me;!ke&&Z.shiftKey&&u.value!==lq.Vertical&&!_e&&Te&&(_e=Te,Te=0),ee.translateBy(de,-(_e/Qe)*h.value,-(Te/Qe)*h.value);const De=oe(de.property("__zoom"));Q&&clearTimeout(Q),P.value?(b.move({event:Z,flowTransform:De}),b.viewportChange(De),Q=setTimeout(()=>{b.moveEnd({event:Z,flowTransform:De}),b.viewportChangeEnd(De),P.value=!1},150)):(P.value=!0,b.moveStart({event:Z,flowTransform:De}),b.viewportChangeStart(De))},{passive:!1}):typeof z<"u"&&de.on("wheel.zoom",function(Z,he){const pe=!k.value&&Z.type==="wheel"&&!Z.ctrlKey,Ce=j.value||f.value,Qe=v.value&&Z.ctrlKey;if(!Ce&&!d.value&&!Qe&&Z.type==="wheel"||pe||se(Z,A.value))return null;Z.preventDefault(),z.call(this,Z,he)},{passive:!1})},{immediate:!0})});function re(le,ue){return ue===2&&Array.isArray(le)&&le.includes(2)}function J(le,ue){return le.x!==ue.x&&!Number.isNaN(ue.x)||le.y!==ue.y&&!Number.isNaN(ue.y)||le.zoom!==ue.k&&!Number.isNaN(ue.k)}function oe(le){return{x:le.x,y:le.y,zoom:le.k}}function se(le,ue){return le.target.closest(`.${ue}`)}return(le,ue)=>(xe(),Ge("div",{ref_key:"viewportRef",ref:E,class:"vue-flow__viewport vue-flow__container"},[c(oOs,{"is-selecting":G.value,"selection-key-pressed":Ae(F),class:Eo({connecting:q.value,dragging:Ae(y),draggable:Ae(g)===!0||Array.isArray(Ae(g))&&Ae(g).includes(0)})},{default:Oe(()=>[c(aOs,null,{default:Oe(()=>[Zr(le.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),dOs=["id"],uOs=["id"],hOs=["id"],fOs={name:"A11yDescriptions",compatConfig:{MODE:3}},gOs=Je({...fOs,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:r}=nl();return(o,s)=>(xe(),Ge(sn,null,[ge("div",{id:`${Ae(XYn)}-${Ae(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+Pe(Ae(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,dOs),ge("div",{id:`${Ae(GYn)}-${Ae(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,uOs),Ae(n)?nn("",!0):(xe(),Ge("div",{key:0,id:`${Ae(T3s)}-${Ae(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},Pe(Ae(r)),9,hOs))],64))}});function mOs(){const e=nl();pt(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function kOs(e,t,n){return n===Vi.Left?e-t:n===Vi.Right?e+t:e}function vOs(e,t,n){return n===Vi.Top?e-t:n===Vi.Bottom?e+t:e}const Xst=function({radius:e=10,centerX:t=0,centerY:n=0,position:r=Vi.Top,type:o}){return xn("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${o}`,cx:kOs(t,e,r),cy:vOs(n,e,r),r:e,stroke:"transparent",fill:"transparent"})};Xst.props=["radius","centerX","centerY","position","type"];Xst.compatConfig={MODE:3};const ukn=Xst,AOs=Je({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:r,edgeUpdaterRadius:o,emits:s,nodesSelectionActive:a,noPanClassName:l,getEdgeTypes:d,removeSelectedEdges:u,findEdge:h,findNode:g,isValidConnection:m,multiSelectionActive:v,disableKeyboardA11y:f,elementsSelectable:k,edgesUpdatable:A,edgesFocusable:p,hooks:b}=nl(),w=X(()=>h(e.id)),{emit:O,on:y}=aws(w.value,s),C=bt($Oe),_=ps(),S=fe(!1),L=fe(!1),E=fe(""),T=fe(null),D=fe("source"),P=fe(null),Q=Pa(()=>typeof w.value.selectable>"u"?k.value:w.value.selectable),M=Pa(()=>typeof w.value.updatable>"u"?A.value:w.value.updatable),B=Pa(()=>typeof w.value.focusable>"u"?p.value:w.value.focusable);Yi(rws,e.id),Yi(ows,P);const R=X(()=>w.value.class instanceof Function?w.value.class(w.value):w.value.class),I=X(()=>w.value.style instanceof Function?w.value.style(w.value):w.value.style),F=X(()=>{const Y=w.value.type||"default",ie=C==null?void 0:C[`edge-${Y}`];if(ie)return ie;let te=w.value.template??d.value[Y];if(typeof te=="string"&&_){const Z=Object.keys(_.appContext.components);Z&&Z.includes(Y)&&(te=_n(Y,!1))}return te&&typeof te!="string"?te:(s.error(new Lf(Yh.EDGE_TYPE_MISSING,te)),!1)}),{handlePointerDown:j}=fZn({nodeId:E,handleId:T,type:D,isValidConnection:m,edgeUpdaterType:D,onEdgeUpdate:$,onEdgeUpdateEnd:G});return()=>{const Y=g(w.value.source),ie=g(w.value.target),te="pathOptions"in w.value?w.value.pathOptions:{};if(!Y&&!ie)return s.error(new Lf(Yh.EDGE_SOURCE_TARGET_MISSING,w.value.id,w.value.source,w.value.target)),null;if(!Y)return s.error(new Lf(Yh.EDGE_SOURCE_MISSING,w.value.id,w.value.source)),null;if(!ie)return s.error(new Lf(Yh.EDGE_TARGET_MISSING,w.value.id,w.value.target)),null;if(!w.value||w.value.hidden||Y.hidden||ie.hidden)return null;let Z;r.value===H6.Strict?Z=Y.handleBounds.source:Z=[...Y.handleBounds.source||[],...Y.handleBounds.target||[]];const he=J0n(Z,w.value.sourceHandle);let pe;r.value===H6.Strict?pe=ie.handleBounds.target:pe=[...ie.handleBounds.target||[],...ie.handleBounds.source||[]];const Ce=J0n(pe,w.value.targetHandle),Qe=(he==null?void 0:he.position)||Vi.Bottom,ke=(Ce==null?void 0:Ce.position)||Vi.Top,{x:me,y:_e}=lz(Y,he,Qe),{x:Te,y:De}=lz(ie,Ce,ke);return w.value.sourceX=me,w.value.sourceY=_e,w.value.targetX=Te,w.value.targetY=De,xn("g",{ref:P,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${F.value===!1?"default":w.value.type||"default"}`,l.value,R.value,{updating:S.value,selected:w.value.selected,animated:w.value.animated,inactive:!Q.value&&!b.value.edgeClick.hasListeners()}],tabIndex:B.value?0:void 0,"aria-label":w.value.ariaLabel===null?void 0:w.value.ariaLabel??`Edge from ${w.value.source} to ${w.value.target}`,"aria-describedby":B.value?`${GYn}-${t}`:void 0,"aria-roledescription":"edge",role:B.value?"group":"img",...w.value.domAttributes,onClick:re,onContextmenu:J,onDblclick:oe,onMouseenter:se,onMousemove:le,onMouseleave:ue,onKeyDown:B.value?z:void 0},[L.value?null:xn(F.value===!1?d.value.default:F.value,{id:e.id,sourceNode:Y,targetNode:ie,source:w.value.source,target:w.value.target,type:w.value.type,updatable:M.value,selected:w.value.selected,animated:w.value.animated,label:w.value.label,labelStyle:w.value.labelStyle,labelShowBg:w.value.labelShowBg,labelBgStyle:w.value.labelBgStyle,labelBgPadding:w.value.labelBgPadding,labelBgBorderRadius:w.value.labelBgBorderRadius,data:w.value.data,events:{...w.value.events,...y},style:I.value,markerStart:`url('#${Ite(w.value.markerStart,t)}')`,markerEnd:`url('#${Ite(w.value.markerEnd,t)}')`,sourcePosition:Qe,targetPosition:ke,sourceX:me,sourceY:_e,targetX:Te,targetY:De,sourceHandleId:w.value.sourceHandle,targetHandleId:w.value.targetHandle,interactionWidth:w.value.interactionWidth,...te}),[M.value==="source"||M.value===!0?[xn("g",{onMousedown:ee,onMouseenter:W,onMouseout:H},xn(ukn,{position:Qe,centerX:me,centerY:_e,radius:o.value,type:"source","data-type":"source"}))]:null,M.value==="target"||M.value===!0?[xn("g",{onMousedown:de,onMouseenter:W,onMouseout:H},xn(ukn,{position:ke,centerX:Te,centerY:De,radius:o.value,type:"target","data-type":"target"}))]:null]])};function W(){S.value=!0}function H(){S.value=!1}function $(Y,ie){O.update({event:Y,edge:w.value,connection:ie})}function G(Y){O.updateEnd({event:Y,edge:w.value}),L.value=!1}function q(Y,ie){Y.button===0&&(L.value=!0,E.value=ie?w.value.target:w.value.source,T.value=(ie?w.value.targetHandle:w.value.sourceHandle)??null,D.value=ie?"target":"source",O.updateStart({event:Y,edge:w.value}),j(Y))}function re(Y){var ie;const te={event:Y,edge:w.value};Q.value&&(a.value=!1,w.value.selected&&v.value?(u([w.value]),(ie=P.value)==null||ie.blur()):n([w.value])),O.click(te)}function J(Y){O.contextMenu({event:Y,edge:w.value})}function oe(Y){O.doubleClick({event:Y,edge:w.value})}function se(Y){O.mouseEnter({event:Y,edge:w.value})}function le(Y){O.mouseMove({event:Y,edge:w.value})}function ue(Y){O.mouseLeave({event:Y,edge:w.value})}function ee(Y){q(Y,!0)}function de(Y){q(Y,!1)}function z(Y){var ie;!f.value&&YYn.includes(Y.key)&&Q.value&&(Y.key==="Escape"?((ie=P.value)==null||ie.blur(),u([h(e.id)])):n([h(e.id)]))}}}),pOs=AOs,bOs=Je({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:r,connectionEndHandle:o,connectionPosition:s,connectionLineType:a,connectionLineStyle:l,connectionLineOptions:d,connectionStatus:u,viewport:h,findNode:g}=nl(),m=(e=bt($Oe))==null?void 0:e["connection-line"],v=X(()=>{var b;return g((b=r.value)==null?void 0:b.nodeId)}),f=X(()=>{var b;return g((b=o.value)==null?void 0:b.nodeId)??null}),k=X(()=>({x:(s.value.x-h.value.x)/h.value.zoom,y:(s.value.y-h.value.y)/h.value.zoom})),A=X(()=>d.value.markerStart?`url(#${Ite(d.value.markerStart,t)})`:""),p=X(()=>d.value.markerEnd?`url(#${Ite(d.value.markerEnd,t)})`:"");return()=>{var b,w,O;if(!v.value||!r.value)return null;const y=r.value.id,C=r.value.type,_=v.value.handleBounds;let S=(_==null?void 0:_[C])??[];if(n.value===H6.Loose){const I=(_==null?void 0:_[C==="source"?"target":"source"])??[];S=[...S,...I]}if(!S)return null;const L=(y?S.find(I=>I.id===y):S[0])??null,E=(L==null?void 0:L.position)??Vi.Top,{x:T,y:D}=lz(v.value,L,E);let P=null;f.value&&(n.value===H6.Strict?P=((b=f.value.handleBounds[C==="source"?"target":"source"])==null?void 0:b.find(I=>{var F;return I.id===((F=o.value)==null?void 0:F.id)}))||null:P=((w=[...f.value.handleBounds.source??[],...f.value.handleBounds.target??[]])==null?void 0:w.find(I=>{var F;return I.id===((F=o.value)==null?void 0:F.id)}))||null);const Q=((O=o.value)==null?void 0:O.position)??(E?UGe[E]:null);if(!E||!Q)return null;const M=a.value??d.value.type??FT.Bezier;let B="";const R={sourceX:T,sourceY:D,sourcePosition:E,targetX:k.value.x,targetY:k.value.y,targetPosition:Q};return M===FT.Bezier?[B]=$st(R):M===FT.Step?[B]=WGe({...R,borderRadius:0}):M===FT.SmoothStep?[B]=WGe(R):M===FT.SimpleBezier?[B]=pZn(R):B=`M${T},${D} ${k.value.x},${k.value.y}`,xn("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},xn("g",{class:"vue-flow__connection"},m?xn(m,{sourceX:T,sourceY:D,sourcePosition:E,targetX:k.value.x,targetY:k.value.y,targetPosition:Q,sourceNode:v.value,sourceHandle:L,targetNode:f.value,targetHandle:P,markerEnd:p.value,markerStart:A.value,connectionStatus:u.value}):xn("path",{d:B,class:[d.value.class,u.value,"vue-flow__connection-path"],style:{...l.value,...d.value.style},"marker-end":p.value,"marker-start":A.value})))}}}),wOs=bOs,OOs=["id","markerWidth","markerHeight","markerUnits","orient"],yOs={name:"MarkerType",compatConfig:{MODE:3}},COs=Je({...yOs,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(xe(),Ge("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===Ae(FGe).ArrowClosed?(xe(),Ge("polyline",{key:0,style:no({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):nn("",!0),t.type===Ae(FGe).Arrow?(xe(),Ge("polyline",{key:1,style:no({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):nn("",!0)],8,OOs))}}),_Os={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},SOs={name:"MarkerDefinitions",compatConfig:{MODE:3}},LOs=Je({...SOs,setup(e){const{id:t,edges:n,connectionLineOptions:r,defaultMarkerColor:o}=nl(),s=X(()=>{const a=new Set,l=[],d=u=>{if(u){const h=Ite(u,t);a.has(h)||(typeof u=="object"?l.push({...u,id:h,color:u.color||o.value}):l.push({id:h,color:o.value,type:u}),a.add(h))}};for(const u of[r.value.markerEnd,r.value.markerStart])d(u);for(const u of n.value)for(const h of[u.markerStart,u.markerEnd])d(h);return l.sort((u,h)=>u.id.localeCompare(h.id))});return(a,l)=>(xe(),Ge("svg",_Os,[ge("defs",null,[(xe(!0),Ge(sn,null,Bi(s.value,d=>(xe(),Ut(COs,{id:d.id,key:d.id,type:d.type,color:d.color,width:d.width,height:d.height,markerUnits:d.markerUnits,"stroke-width":d.strokeWidth,orient:d.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),xOs={name:"Edges",compatConfig:{MODE:3}},EOs=Je({...xOs,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:r}=nl();return(o,s)=>(xe(),Ge(sn,null,[c(LOs),(xe(!0),Ge(sn,null,Bi(Ae(n),a=>(xe(),Ge("svg",{key:a.id,class:"vue-flow__edges vue-flow__container",style:no({zIndex:Ae($3s)(a,Ae(t),Ae(r))})},[c(Ae(pOs),{id:a.id},null,8,["id"])],4))),128)),c(Ae(wOs))],64))}}),TOs=Je({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:r,nodesSelectionActive:o,multiSelectionActive:s,emits:a,removeSelectedNodes:l,addSelectedNodes:d,updateNodeDimensions:u,onUpdateNodeInternals:h,getNodeTypes:g,nodeExtent:m,elevateNodesOnSelect:v,disableKeyboardA11y:f,ariaLiveMessage:k,snapToGrid:A,snapGrid:p,nodeDragThreshold:b,nodesDraggable:w,elementsSelectable:O,nodesConnectable:y,nodesFocusable:C,hooks:_}=nl(),S=fe(null);Yi(uZn,S),Yi(dZn,e.id);const L=bt($Oe),E=ps(),T=mZn(),{node:D,parentNode:P}=gZn(e.id),{emit:Q,on:M}=uws(D,a),B=Pa(()=>typeof D.draggable>"u"?w.value:D.draggable),R=Pa(()=>typeof D.selectable>"u"?O.value:D.selectable),I=Pa(()=>typeof D.connectable>"u"?y.value:D.connectable),F=Pa(()=>typeof D.focusable>"u"?C.value:D.focusable),j=X(()=>R.value||B.value||_.value.nodeClick.hasListeners()||_.value.nodeDoubleClick.hasListeners()||_.value.nodeMouseEnter.hasListeners()||_.value.nodeMouseMove.hasListeners()||_.value.nodeMouseLeave.hasListeners()),W=Pa(()=>!!D.dimensions.width&&!!D.dimensions.height),H=X(()=>{const ie=D.type||"default",te=L==null?void 0:L[`node-${ie}`];if(te)return te;let Z=D.template||g.value[ie];if(typeof Z=="string"&&E){const he=Object.keys(E.appContext.components);he&&he.includes(ie)&&(Z=_n(ie,!1))}return Z&&typeof Z!="string"?Z:(a.error(new Lf(Yh.NODE_TYPE_MISSING,Z)),!1)}),$=hZn({id:e.id,el:S,disabled:()=>!B.value,selectable:R,dragHandle:()=>D.dragHandle,onStart(ie){Q.dragStart(ie)},onDrag(ie){Q.drag(ie)},onStop(ie){Q.dragStop(ie)},onClick(ie){z(ie)}}),G=X(()=>D.class instanceof Function?D.class(D):D.class),q=X(()=>{const ie=(D.style instanceof Function?D.style(D):D.style)||{},te=D.width instanceof Function?D.width(D):D.width,Z=D.height instanceof Function?D.height(D):D.height;return!ie.width&&te&&(ie.width=typeof te=="string"?te:`${te}px`),!ie.height&&Z&&(ie.height=typeof Z=="string"?Z:`${Z}px`),ie}),re=Pa(()=>Number(D.zIndex??q.value.zIndex??0));return h(ie=>{(ie.includes(e.id)||!ie.length)&&oe()}),An(()=>{pt(()=>D.hidden,(ie=!1,te,Z)=>{!ie&&S.value&&(e.resizeObserver.observe(S.value),Z(()=>{S.value&&e.resizeObserver.unobserve(S.value)}))},{immediate:!0,flush:"post"})}),pt([()=>D.type,()=>D.sourcePosition,()=>D.targetPosition],()=>{ai(()=>{u([{id:e.id,nodeElement:S.value,forceUpdate:!0}])})}),pt([()=>D.position.x,()=>D.position.y,()=>{var ie;return(ie=P.value)==null?void 0:ie.computedPosition.x},()=>{var ie;return(ie=P.value)==null?void 0:ie.computedPosition.y},()=>{var ie;return(ie=P.value)==null?void 0:ie.computedPosition.z},re,()=>D.selected,()=>D.dimensions.height,()=>D.dimensions.width,()=>{var ie;return(ie=P.value)==null?void 0:ie.dimensions.height},()=>{var ie;return(ie=P.value)==null?void 0:ie.dimensions.width}],([ie,te,Z,he,pe,Ce])=>{const Qe={x:ie,y:te,z:Ce+(v.value&&D.selected?1e3:0)};typeof Z<"u"&&typeof he<"u"?D.computedPosition=U3s({x:Z,y:he,z:pe},Qe):D.computedPosition=Qe},{flush:"post",immediate:!0}),pt([()=>D.extent,m],([ie,te],[Z,he])=>{(ie!==Z||te!==he)&&J()}),D.extent==="parent"||typeof D.extent=="object"&&"range"in D.extent&&D.extent.range==="parent"?EGe(()=>W).toBe(!0).then(J):J(),()=>D.hidden?null:xn("div",{ref:S,"data-id":D.id,class:["vue-flow__node",`vue-flow__node-${H.value===!1?"default":D.type||"default"}`,{[n.value]:B.value,dragging:$==null?void 0:$.value,draggable:B.value,selected:D.selected,selectable:R.value,parent:D.isParent},G.value],style:{visibility:W.value?"visible":"hidden",zIndex:D.computedPosition.z??re.value,transform:`translate(${D.computedPosition.x}px,${D.computedPosition.y}px)`,pointerEvents:j.value?"all":"none",...q.value},tabIndex:F.value?0:void 0,role:F.value?"group":void 0,"aria-describedby":f.value?void 0:`${XYn}-${t}`,"aria-label":D.ariaLabel,"aria-roledescription":"node",...D.domAttributes,onMouseenter:se,onMousemove:le,onMouseleave:ue,onContextmenu:ee,onClick:z,onDblclick:de,onKeydown:Y},[xn(H.value===!1?g.value.default:H.value,{id:D.id,type:D.type,data:D.data,events:{...D.events,...M},selected:D.selected,resizing:D.resizing,dragging:$.value,connectable:I.value,position:D.computedPosition,dimensions:D.dimensions,isValidTargetPos:D.isValidTargetPos,isValidSourcePos:D.isValidSourcePos,parent:D.parentNode,parentNodeId:D.parentNode,zIndex:D.computedPosition.z??re.value,targetPosition:D.targetPosition,sourcePosition:D.sourcePosition,label:D.label,dragHandle:D.dragHandle,onUpdateNodeInternals:oe})]);function J(){const ie=D.computedPosition,{computedPosition:te,position:Z}=zst(D,A.value?HOe(ie,p.value):ie,a.error,m.value,P.value);(D.computedPosition.x!==te.x||D.computedPosition.y!==te.y)&&(D.computedPosition={...D.computedPosition,...te}),(D.position.x!==Z.x||D.position.y!==Z.y)&&(D.position=Z)}function oe(){S.value&&u([{id:e.id,nodeElement:S.value,forceUpdate:!0}])}function se(ie){$!=null&&$.value||Q.mouseEnter({event:ie,node:D})}function le(ie){$!=null&&$.value||Q.mouseMove({event:ie,node:D})}function ue(ie){$!=null&&$.value||Q.mouseLeave({event:ie,node:D})}function ee(ie){return Q.contextMenu({event:ie,node:D})}function de(ie){return Q.doubleClick({event:ie,node:D})}function z(ie){R.value&&(!r.value||!B.value||b.value>0)&&jGe(D,s.value,d,l,o,!1,S.value),Q.click({event:ie,node:D})}function Y(ie){if(!(NGe(ie)||f.value))if(YYn.includes(ie.key)&&R.value){const te=ie.key==="Escape";jGe(D,s.value,d,l,o,te,S.value)}else B.value&&D.selected&&kj[ie.key]&&(ie.preventDefault(),k.value=`Moved selected node ${ie.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~D.position.x}, y: ${~~D.position.y}`,T({x:kj[ie.key].x,y:kj[ie.key].y},ie.shiftKey))}}}),QOs=TOs,DOs={height:"0",width:"0"},BOs={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},ROs=Je({...BOs,setup(e){const{viewportRef:t}=nl(),n=Pa(()=>{var r;return(r=t.value)==null?void 0:r.getElementsByClassName("vue-flow__edge-labels")[0]});return(r,o)=>(xe(),Ge("svg",null,[(xe(),Ge("foreignObject",DOs,[(xe(),Ut(f3,{to:n.value,disabled:!n.value},[Zr(r.$slots,"default")],8,["to","disabled"]))]))]))}});function IOs(e={includeHiddenNodes:!1}){const{nodes:t}=nl();return X(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&((n==null?void 0:n.handleBounds)===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const MOs={class:"vue-flow__nodes vue-flow__container"},POs={name:"Nodes",compatConfig:{MODE:3}},FOs=Je({...POs,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:r}=nl(),o=IOs(),s=fe();return pt(o,a=>{a&&ai(()=>{r.nodesInitialized(t.value)})},{immediate:!0}),An(()=>{s.value=new ResizeObserver(a=>{const l=a.map(d=>({id:d.target.getAttribute("data-id"),nodeElement:d.target,forceUpdate:!0}));ai(()=>n(l))})}),qs(()=>{var a;return(a=s.value)==null?void 0:a.disconnect()}),(a,l)=>(xe(),Ge("div",MOs,[s.value?(xe(!0),Ge(sn,{key:0},Bi(Ae(t),(d,u,h,g)=>{const m=[d.id];if(g&&g.key===d.id&&Zri(g,m))return g;const v=(xe(),Ut(Ae(QOs),{id:d.id,key:d.id,"resize-observer":s.value},null,8,["id","resize-observer"]));return v.memo=m,v},l,0),128)):nn("",!0)]))}});function NOs(){const{emits:e}=nl();An(()=>{if(cZn()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Lf(Yh.MISSING_STYLES))}})}const UOs=ge("div",{class:"vue-flow__edge-labels"},null,-1),jOs={name:"VueFlow",compatConfig:{MODE:3}},wZn=Je({...jOs,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const r=e,o=TAn(),s=rRe(r,"modelValue",n),a=rRe(r,"nodes",n),l=rRe(r,"edges",n),d=nl(r),u=mws({modelValue:s,nodes:a,edges:l},r,d);return vws(n,d.hooks),mOs(),NOs(),Yi($Oe,o),Qa(u),t(d),(h,g)=>(xe(),Ge("div",{ref:Ae(d).vueFlowRef,class:"vue-flow"},[c(cOs,null,{default:Oe(()=>[c(EOs),UOs,c(FOs),Zr(h.$slots,"zoom-pane")]),_:3}),Zr(h.$slots,"default"),c(gOs)],512))}}),WOs={name:"Panel",compatConfig:{MODE:3}},OZn=Je({...WOs,props:{position:{}},setup(e){const t=e,{userSelectionActive:n}=nl(),r=X(()=>`${t.position}`.split("-"));return(o,s)=>(xe(),Ge("div",{class:Eo(["vue-flow__panel",r.value]),style:no({pointerEvents:Ae(n)?"none":"all"})},[Zr(o.$slots,"default")],6))}});var NS=(e=>(e.Lines="lines",e.Dots="dots",e))(NS||{});const yZn=function({dimensions:e,size:t,color:n}){return xn("path",{stroke:n,"stroke-width":t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},CZn=function({radius:e,color:t}){return xn("circle",{cx:e,cy:e,r:e,fill:t})};NS.Lines+"",NS.Dots+"";const VOs={[NS.Dots]:"#81818a",[NS.Lines]:"#eee"},zOs=["id","x","y","width","height","patternTransform"],HOs={key:2,height:"100",width:"100"},$Os=["fill"],XOs=["x","y","fill"],GOs={name:"Background",compatConfig:{MODE:3}},_Zn=Je({...GOs,props:{id:{},variant:{default:()=>NS.Dots},gap:{default:20},size:{default:1},lineWidth:{default:1},patternColor:{},color:{},bgColor:{},height:{default:100},width:{default:100},x:{default:0},y:{default:0},offset:{default:0}},setup(e){const{id:t,viewport:n}=nl(),r=X(()=>{const a=n.value.zoom,[l,d]=Array.isArray(e.gap)?e.gap:[e.gap,e.gap],u=[l*a||1,d*a||1],h=e.size*a,[g,m]=Array.isArray(e.offset)?e.offset:[e.offset,e.offset],v=[g*a||1+u[0]/2,m*a||1+u[1]/2];return{scaledGap:u,offset:v,size:h}}),o=Pa(()=>`pattern-${t}${e.id?`-${e.id}`:""}`),s=Pa(()=>e.color||e.patternColor||VOs[e.variant||NS.Dots]);return(a,l)=>(xe(),Ge("svg",{class:"vue-flow__background vue-flow__container",style:no({height:`${a.height>100?100:a.height}%`,width:`${a.width>100?100:a.width}%`})},[Zr(a.$slots,"pattern-container",{id:o.value},()=>[ge("pattern",{id:o.value,x:Ae(n).x%r.value.scaledGap[0],y:Ae(n).y%r.value.scaledGap[1],width:r.value.scaledGap[0],height:r.value.scaledGap[1],patternTransform:`translate(-${r.value.offset[0]},-${r.value.offset[1]})`,patternUnits:"userSpaceOnUse"},[Zr(a.$slots,"pattern",{},()=>[a.variant===Ae(NS).Lines?(xe(),Ut(Ae(yZn),{key:0,size:a.lineWidth,color:s.value,dimensions:r.value.scaledGap},null,8,["size","color","dimensions"])):a.variant===Ae(NS).Dots?(xe(),Ut(Ae(CZn),{key:1,color:s.value,radius:r.value.size/2},null,8,["color","radius"])):nn("",!0),a.bgColor?(xe(),Ge("svg",HOs,[ge("rect",{width:"100%",height:"100%",fill:a.bgColor},null,8,$Os)])):nn("",!0)])],8,zOs)]),ge("rect",{x:a.x,y:a.y,width:"100%",height:"100%",fill:`url(#${o.value})`},null,8,XOs),Zr(a.$slots,"default",{id:o.value})],4))}}),YOs={name:"ControlButton",compatConfig:{MODE:3}},ZOs=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},qOs={type:"button",class:"vue-flow__controls-button"};function KOs(e,t,n,r,o,s){return xe(),Ge("button",qOs,[Zr(e.$slots,"default")])}const Nde=ZOs(YOs,[["render",KOs]]),JOs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},eys=ge("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1),tys=[eys];function nys(e,t){return xe(),Ge("svg",JOs,tys)}const iys={render:nys},rys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},oys=ge("path",{d:"M0 0h32v4.2H0z"},null,-1),sys=[oys];function ays(e,t){return xe(),Ge("svg",rys,sys)}const lys={render:ays},cys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},dys=ge("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1),uys=[dys];function hys(e,t){return xe(),Ge("svg",cys,uys)}const fys={render:hys},gys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},mys=ge("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"},null,-1),kys=[mys];function vys(e,t){return xe(),Ge("svg",gys,kys)}const Ays={render:vys},pys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},bys=ge("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1),wys=[bys];function Oys(e,t){return xe(),Ge("svg",pys,wys)}const yys={render:Oys},Cys={name:"Controls",compatConfig:{MODE:3}},SZn=Je({...Cys,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>$Yn.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:t}){const{nodesDraggable:n,nodesConnectable:r,elementsSelectable:o,setInteractive:s,zoomIn:a,zoomOut:l,fitView:d,viewport:u,minZoom:h,maxZoom:g}=nl(),m=Pa(()=>n.value||r.value||o.value),v=Pa(()=>u.value.zoom<=h.value),f=Pa(()=>u.value.zoom>=g.value);function k(){a(),t("zoomIn")}function A(){l(),t("zoomOut")}function p(){d(e.fitViewParams),t("fitView")}function b(){s(!m.value),t("interactionChange",!m.value)}return(w,O)=>(xe(),Ut(Ae(OZn),{class:"vue-flow__controls",position:w.position},{default:Oe(()=>[Zr(w.$slots,"top"),w.showZoom?(xe(),Ge(sn,{key:0},[Zr(w.$slots,"control-zoom-in",{},()=>[c(Nde,{class:"vue-flow__controls-zoomin",disabled:f.value,onClick:k},{default:Oe(()=>[Zr(w.$slots,"icon-zoom-in",{},()=>[(xe(),Ut(Bd(Ae(iys))))])]),_:3},8,["disabled"])]),Zr(w.$slots,"control-zoom-out",{},()=>[c(Nde,{class:"vue-flow__controls-zoomout",disabled:v.value,onClick:A},{default:Oe(()=>[Zr(w.$slots,"icon-zoom-out",{},()=>[(xe(),Ut(Bd(Ae(lys))))])]),_:3},8,["disabled"])])],64)):nn("",!0),w.showFitView?Zr(w.$slots,"control-fit-view",{key:1},()=>[c(Nde,{class:"vue-flow__controls-fitview",onClick:p},{default:Oe(()=>[Zr(w.$slots,"icon-fit-view",{},()=>[(xe(),Ut(Bd(Ae(fys))))])]),_:3})]):nn("",!0),w.showInteractive?Zr(w.$slots,"control-interactive",{key:2},()=>[w.showInteractive?(xe(),Ut(Nde,{key:0,class:"vue-flow__controls-interactive",onClick:b},{default:Oe(()=>[m.value?Zr(w.$slots,"icon-unlock",{key:0},()=>[(xe(),Ut(Bd(Ae(yys))))]):nn("",!0),m.value?nn("",!0):Zr(w.$slots,"icon-lock",{key:1},()=>[(xe(),Ut(Bd(Ae(Ays))))])]),_:3})):nn("",!0)]):nn("",!0),Zr(w.$slots,"default")]),_:3},8,["position"]))}}),_ys={class:"titleBar dragHandle pr"},Sys={class:"title c"},Lys={class:"content"},xys=Je({__name:"script",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(""),o=fe(!1),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];function a(){r.value=n.value??"",o.value=!0}function l(){n.value=r.value,o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=Si,v=km,f=gc;return xe(),Ge(sn,null,[c(v,{class:"script"},{default:Oe(()=>[ge("div",_ys,[ge("div",Sys,Pe(h.$t("workbench.production.node.script.title")),1),c(m,{size:"small",variant:"text",onClick:a},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.edit")),1)]),_:1}),c(Ae(mm),{id:t.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",Lys,[c(Ae(i3),{modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=k=>n.value=k),theme:"light"},null,8,["modelValue"])]),c(Ae(mm),{id:t.handleIds.assets,type:"source",position:Ae(Vi).Bottom},null,8,["id","position"])]),_:1}),c(f,{visible:o.value,"onUpdate:visible":g[3]||(g[3]=k=>o.value=k),header:h.$t("workbench.production.node.script.editDialog"),width:"90vw","confirm-btn":h.$t("workbench.production.save"),"cancel-btn":h.$t("workbench.production.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:r.value,"onUpdate:modelValue":g[1]||(g[1]=k=>r.value=k),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[2]||(g[2]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])],64)}}}),Eys=oo(xys,[["__scopeId","data-v-e1680278"]]),Tys={class:"titleBar dragHandle pr"},Qys={class:"title c"},Dys={class:"content"},Bys=Je({__name:"scriptPlan",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(""),o=fe(!1),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];function a(){r.value=n.value??"",o.value=!0}function l(){n.value=r.value,o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=Si,v=Xy,f=km,k=gc;return xe(),Ge(sn,null,[c(f,{class:"scriptPlan"},{default:Oe(()=>[ge("div",Tys,[ge("div",Qys,Pe(h.$t("workbench.production.node.scriptPlan.title")),1),c(m,{size:"small",variant:"text",onClick:a},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.edit")),1)]),_:1}),c(Ae(mm),{id:t.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"]),c(Ae(mm),{id:t.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",Dys,[n.value?(xe(),Ut(Ae(i3),{key:1,modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=A=>n.value=A),theme:"light"},null,8,["modelValue"])):(xe(),Ut(v,{key:0,style:{"margin-top":"16px"}}))])]),_:1}),c(k,{visible:o.value,"onUpdate:visible":g[3]||(g[3]=A=>o.value=A),header:h.$t("workbench.production.node.scriptPlan.editDialog"),width:"90vw","confirm-btn":h.$t("workbench.production.save"),"cancel-btn":h.$t("workbench.production.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:r.value,"onUpdate:modelValue":g[1]||(g[1]=A=>r.value=A),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[2]||(g[2]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])],64)}}}),Rys=oo(Bys,[["__scopeId","data-v-7bff2864"]]),Iys={class:"uploadNode"},Mys={class:"data"},Pys={class:"title ac"},Fys={class:"imageBox"},Nys={class:"imageToolsWrap"},Uys={class:"upload ac"},jys={style:{"margin-left":"5px",color:"#fff"}},Wys={class:"fc ac",style:{gap:"6px"}},Vys=Je({__name:"uploadNode",props:{id:{},data:{}},emits:["upload","keep"],setup(e,{emit:t}){var k;const n=e,r=bt("openStoryboardCheck"),{updateNodeData:o,removeNodes:s}=nl("editImage"),a=fe(((k=n.data)==null?void 0:k.image)||""),l=fe(null),d=[{content:$t("workbench.production.editImage.uploadImage"),value:1},{content:$t("workbench.production.editImage.uploadStoryboardImage"),value:2}];pt(()=>{var A;return(A=n.data)==null?void 0:A.image},A=>{a.value=A||""}),qs(()=>{l.value&&URL.revokeObjectURL(l.value)});function u(){s(n.id)}const h=t;function g(A){A.value==1?v():A.value==2&&f()}function m(){if(!a.value)return window.$message.error($t("workbench.production.editImage.noImage"));h("keep",a.value)}async function v(){const A=await jV({multiple:!1,title:$t("workbench.production.editImage.selectImage")});if(A.length>0){const p=A[0].src;a.value=p,o(n.id,{image:p}),h("upload")}}async function f(){const A=await r();if(A.length>0){const p=A[0].src;a.value=p,o(n.id,{image:p}),h("upload")}}return(A,p)=>{const b=_n("i-pic"),w=jre,O=Zh,y=_n("i-upload"),C=Si,_=Rne,S=_n("i-save"),L=y1,E=_n("i-delete"),T=el;return xe(),Ge("div",Iys,[c(Ae(mm),{type:"source",position:Ae(Vi).Right,style:{"z-index":"999999"}},null,8,["position"]),ge("div",Mys,[ge("div",Pys,[c(b,{theme:"outline",size:"16",fill:"#000000"}),p[0]||(p[0]=ge("span",{style:{"margin-left":"5px",color:"#4b4b4b"}},"Image",-1))]),ge("div",Fys,[c(O,{class:"image",src:a.value,fit:"contain",style:{width:"100%",height:"100%",borderRadius:"10px"}},{overlayContent:Oe(()=>[ge("div",Nys,[c(w,{src:a.value,position:"br"},null,8,["src"])])]),_:1},8,["src"]),c(_,{options:d,onClick:g},{content:Oe(()=>[ge("div",Wys,[c(C,{variant:"outline",onClick:v},{default:Oe(()=>[...p[1]||(p[1]=[Bt("资产图片",-1)])]),_:1}),c(C,{variant:"outline",onClick:f},{default:Oe(()=>[...p[2]||(p[2]=[Bt("分镜图片",-1)])]),_:1})])]),default:Oe(()=>[ge("div",Uys,[c(y,{theme:"outline",size:"18",fill:"#fff"}),ge("span",jys,Pe(A.$t("workbench.production.editImage.upload")),1)])]),_:1}),c(L,{content:A.$t("workbench.production.save")},{default:Oe(()=>[a.value?(xe(),Ut(C,{key:0,theme:"primary",size:"small",class:"keepBottomLeftBtn",onClick:m},{icon:Oe(()=>[c(S)]),_:1})):nn("",!0)]),_:1},8,["content"]),c(T,{theme:"primary",content:A.$t("workbench.production.editImage.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",onClick:u},[c(E,{theme:"outline",size:"18",fill:"#fff"})])]),_:1},8,["content"])])])])}}}),zys=oo(Vys,[["__scopeId","data-v-87f647b2"]]),Hys={class:"textareaWrapper"},$ys=["data-placeholder"],Xys={class:"referencesList"},Gys=["onMousedown"],Yys={class:"reference-label"},Zys={class:"ref-index-badge"},qys={key:0,class:"no-references"},Kys=Je({__name:"promptEditor",props:Fc({references:{},placeholder:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(null),o=fe(!1),s=fe(0),a=fe({left:0,top:0}),l=fe("");let d=null,u=!1;function h(w){var T;const O=(T=t.references)==null?void 0:T[w],y=(O==null?void 0:O.type)??"image",C=(O==null?void 0:O.src)??"",_=document.createElement("span");_.contentEditable="false",_.dataset.refIndex=String(w),_.dataset.imgSrc=C;const S=()=>y==="image"?xn("img",{src:C,style:{width:"200px",borderRadius:"8px",display:"block"},alt:""}):xn("span",{style:{padding:"8px",display:"block"}},C),L=()=>y==="image"?xn("img",{src:C,alt:""}):xn(y==="video"?x8n:E8n),E=xn(y1,{content:S,placement:"top"},{default:()=>[xn("div",{class:"tag"},[L(),xn("span",null,$t("workbench.production.editImage.reference",{index:w+1}))])]});return p8(E,_),_}function g(w){if(!r.value)return;r.value.innerHTML="";const O=/@图(\d+)/g;let y=0,C;for(;(C=O.exec(w))!==null;)C.index>y&&r.value.appendChild(document.createTextNode(w.substring(y,C.index))),r.value.appendChild(h(Number(C[1])-1)),r.value.appendChild(document.createTextNode("​")),y=O.lastIndex;y{r.value&&n.value&&g(n.value)}),pt(()=>t.references,()=>{r.value&&n.value&&g(n.value)}),pt(n,w=>{var y;if(u){u=!1;return}if(!r.value)return;const O=((y=r.value.textContent)==null?void 0:y.replace(/\u200B/g,""))||"";w!==void 0&&w!==O&&g(w)});function m(){var C;const w=window.getSelection();if(!w||w.rangeCount===0)return"";const O=w.getRangeAt(0),y=O.startContainer;return y.nodeType===Node.TEXT_NODE?((C=y.textContent)==null?void 0:C.substring(0,O.startOffset))??"":""}function v(){const w=window.getSelection();if(!w||w.rangeCount===0)return{left:0,top:24};const O=w.getRangeAt(0).cloneRange();O.collapse(!0);const y=O.getBoundingClientRect(),C=r.value.getBoundingClientRect();return{left:Math.max(0,y.left-C.left),top:y.bottom-C.top+4}}function f(){var y;l.value=((y=r.value)==null?void 0:y.textContent)||"",p();const w=m(),O=w.lastIndexOf("@");if(O!==-1&&!w.substring(O+1).includes(" ")){o.value=!0,s.value=0;const C=window.getSelection();C&&C.rangeCount>0&&(d=C.getRangeAt(0).cloneRange()),ai(()=>{a.value=v()});return}o.value=!1,d=null}function k(w){var y;if(!o.value||!((y=t.references)!=null&&y.length))return;const O=t.references.length-1;switch(w.key){case"ArrowDown":w.preventDefault(),s.value=Math.min(s.value+1,O);break;case"ArrowUp":w.preventDefault(),s.value=Math.max(s.value-1,0);break;case"Enter":case"Tab":w.preventDefault(),A(s.value);break;case"Escape":o.value=!1;break}}function A(w){var M;if(!r.value||!d)return;const O=window.getSelection();if(!O)return;const y=d.cloneRange(),C=y.startContainer,_=y.startOffset,L=(C.textContent||"").lastIndexOf("@",_-1);if(L===-1)return;const E=h(w),T=C.splitText(L),D=_-L;T.deleteData(0,D),C.parentNode.insertBefore(E,T);const P=document.createTextNode("​");E.after(P);const Q=document.createRange();Q.setStart(P,1),Q.collapse(!0),O.removeAllRanges(),O.addRange(Q),o.value=!1,d=null,l.value=((M=r.value)==null?void 0:M.textContent)||"",p()}function p(){if(!r.value)return;let w="";r.value.childNodes.forEach(O=>{var y;if(O.nodeType===Node.TEXT_NODE)w+=(O.textContent||"").replace(/\u200B/g,"");else if(((y=O.dataset)==null?void 0:y.refIndex)!==void 0){const C=O.dataset.refIndex;w+=` @图${Number(C)+1} `}}),u=!0,n.value=w}function b(){setTimeout(()=>{o.value=!1},150)}return(w,O)=>{var S;const y=Zh,C=_n("i-video"),_=_n("i-volume-mute");return xe(),Ge("div",Hys,[ge("div",{ref_key:"editorRef",ref:r,class:"promptEditor",contenteditable:"true","data-placeholder":Ae(l).length===0?t.placeholder:"",onInput:f,onKeydown:k,onBlur:b,onMousedown:O[0]||(O[0]=Mr(()=>{},["stop"]))},null,40,$ys),Ae(o)?(xe(),Ge("div",{key:0,class:"referencesPopup",style:no({left:Ae(a).left+"px",top:Ae(a).top+"px"})},[ge("div",Xys,[(xe(!0),Ge(sn,null,Bi(e.references,(L,E)=>(xe(),Ge("div",{key:E,class:Eo(["reference-item",{active:Ae(s)===E}]),onMousedown:Mr(T=>A(E),["prevent"])},[L.type==="image"?(xe(),Ut(y,{key:0,src:L.src,fit:"cover",class:"ref-popup-img"},null,8,["src"])):L.type==="video"?(xe(),Ut(C,{key:1,class:"ref-popup-icon"})):L.type==="audio"?(xe(),Ut(_,{key:2,class:"ref-popup-icon"})):nn("",!0),ge("span",Yys,Pe(w.$t("workbench.production.editImage.reference",{index:E+1})),1),ge("span",Zys,"#"+Pe(E+1),1)],42,Gys))),128)),(S=e.references)!=null&&S.length?nn("",!0):(xe(),Ge("div",qys,Pe(w.$t("workbench.production.editImage.noReferences")),1))])],4)):nn("",!0)])}}}),LZn=oo(Kys,[["__scopeId","data-v-3d78a0de"]]),hkn={type:"removeLine",animated:!0,style:{stroke:"#00000"}};function Jys(e="",t=""){return{generatedImage:e,references:[],prompt:t,model:"",ratio:"",quality:"",steps:49}}function fkn(e){return e.map(t=>{var n;return{id:t.id,type:t.type,position:t.position,data:t.type==="upload"?{image:t.data.image}:{generatedImage:t.data.generatedImage,references:((n=t.data.references)==null?void 0:n.map(r=>({image:r.image})))??[],prompt:t.data.prompt,model:t.data.model,ratio:t.data.ratio,quality:t.data.quality}}})}function gkn(e){return e.map(t=>({id:t.id,source:t.source,target:t.target}))}const eCs={class:"generatedNode"},tCs={class:"title ac"},nCs={class:"titleText"},iCs={class:"image"},rCs={key:0,class:"imageLoading"},oCs={class:"loadingText"},sCs={key:1,class:"imageWrapper"},aCs={class:"imageToolsWrap"},lCs={class:"upload ac"},cCs={style:{"margin-left":"5px",color:"#fff"}},dCs={class:"imageRefs f w"},uCs={class:"text w"},hCs={class:"operate ac jb"},fCs={class:"ac"},gCs={class:"f",style:{gap:"5px","margin-left":"5px"}},mCs=Je({__name:"generatedNode",props:{id:{},data:{},projectId:{},imageDefaultModle:{}},emits:["keep"],setup(e,{emit:t}){const n=bt("openStoryboardCheck"),{open:r,onChange:o,onCancel:s}=cOn({multiple:!1,reset:!0,accept:".png,.jpg,.jpeg"}),a=fe(!0),l=fe(!1),d=bt("episodesId"),u=t,{removeNodes:h}=nl("editImage"),g=[{content:$t("workbench.production.editImage.uploadImage"),value:1},{content:$t("workbench.production.editImage.uploadStoryboardImage"),value:2},{content:$t("workbench.production.generatedNode.localUpload"),value:3}],m=X(()=>v.data.references.map(y=>({type:"image",src:y.image})).filter(Boolean)),v=e;function f(){a.value=!a.value}function k(y){y.value==1?p():y.value==2?b():y.value==3&&(console.log("%c Line:124 🍷","background:#4fff4B"),A())}async function A(){const y=await new Promise(S=>{r(),o(L=>S(L)),s(()=>S(null))});if(!(y!=null&&y.length))return;const C=y[0],_=new FileReader;_.onload=async()=>{const S=_.result;try{const{data:L}=await mn.post("/production/editImage/uploadImage",{base64Data:S,projectId:v.projectId,scriptId:d.value});v.data.generatedImage=L}catch(L){return window.$message.error((L==null?void 0:L.message)||$t("workbench.production.editImage.uploadFailed"))}},_.readAsDataURL(C)}async function p(){const y=await jV({multiple:!1,title:$t("workbench.production.editImage.selectImage")});if(y.length>0){const C=y[0].src;v.data.generatedImage=C}}async function b(){const y=await n();if(y.length>0){const C=y[0].src;v.data.generatedImage=C}}async function w(){if(!v.data.model)return window.$message.error($t("workbench.production.editImage.selectModel"));if(!v.data.quality)return window.$message.error($t("workbench.production.editImage.selectQuality"));if(!v.data.ratio)return window.$message.error($t("workbench.production.editImage.selectRatio"));l.value=!0;try{const{data:y}=await mn.post("/production/editImage/generateFlowImage",{references:v.data.references.map(C=>C.image).filter(Boolean),model:v.data.model,quality:v.data.quality,ratio:v.data.ratio,prompt:v.data.prompt,projectId:v.projectId});v.data.generatedImage=y.url}catch(y){return window.$message.error((y==null?void 0:y.message)||$t("workbench.production.editImage.generateFailed"))}finally{l.value=!1}}function O(){if(!v.data.generatedImage)return window.$message.error($t("workbench.production.editImage.generateFirst"));u("keep",v.data.generatedImage)}return An(()=>{var y,C;v.imageDefaultModle&&(v.data.model=((y=v.imageDefaultModle)==null?void 0:y.imageModel)??"",v.data.quality=((C=v.imageDefaultModle)==null?void 0:C.imageQuality)??"",v.data.ratio="16:9")}),(y,C)=>{const _=_n("i-pic"),S=jre,L=Zh,E=_n("i-upload"),T=Rne,D=_n("i-delete"),P=el,Q=uL,M=pA,B=_n("i-arrow-up"),R=Si,I=y1,F=_n("i-save");return xe(),Ge("div",eCs,[c(Ae(mm),{type:"target",position:Ae(Vi).Left},null,8,["position"]),ge("div",{class:"data",onClick:f},[ge("div",tCs,[c(_,{theme:"outline",size:"16",fill:"#000000"}),ge("span",nCs,Pe(y.$t("workbench.production.editImage.imageGeneration")),1)]),ge("div",iCs,[Ae(l)?(xe(),Ge("div",rCs,[C[7]||(C[7]=ge("div",{class:"loadingSpinner"},null,-1)),ge("span",oCs,Pe(y.$t("workbench.production.editImage.generating")),1)])):(xe(),Ge("div",sCs,[c(L,{class:Eo(["image",["nodeImage",{selected:Ae(a)}]]),src:e.data.generatedImage,fit:"contain"},{overlayContent:Oe(()=>[ge("div",aCs,[c(S,{src:e.data.generatedImage??"",position:"br"},null,8,["src"])])]),_:1},8,["src","class"])])),c(T,{options:g,onClick:k},{default:Oe(()=>[ge("div",lCs,[c(E,{theme:"outline",size:"18",fill:"#fff"}),ge("span",cCs,Pe(y.$t("workbench.production.editImage.upload")),1)])]),_:1}),c(P,{theme:"primary",content:y.$t("workbench.production.editImage.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",onClick:C[0]||(C[0]=j=>Ae(h)(v.id))},[c(D,{theme:"outline",size:"18",fill:"#fff"})])]),_:1},8,["content"])])]),uu(ge("div",{class:"parameter",onWheel:C[5]||(C[5]=Mr(()=>{},["stop"])),onMousedown:C[6]||(C[6]=Mr(()=>{},["stop"]))},[ge("div",dCs,[(xe(!0),Ge(sn,null,Bi(e.data.references,(j,W)=>(xe(),Ge("div",{key:W,class:"refThumb"},[c(L,{src:j.image,fit:"cover",class:"refImg"},null,8,["src"])]))),128))]),ge("div",uCs,[c(LZn,{modelValue:e.data.prompt,"onUpdate:modelValue":C[1]||(C[1]=j=>e.data.prompt=j),references:Ae(m),placeholder:y.$t("workbench.production.editImage.promptPlaceholder")},null,8,["modelValue","references","placeholder"])]),ge("div",hCs,[ge("div",fCs,[c(T8,{modelValue:e.data.model,"onUpdate:modelValue":C[2]||(C[2]=j=>e.data.model=j),type:"image",size:"small"},null,8,["modelValue"]),c(M,{modelValue:e.data.ratio,"onUpdate:modelValue":C[3]||(C[3]=j=>e.data.ratio=j),class:"paramSelect ml-5",size:"small",placeholder:y.$t("workbench.production.editImage.ratio")},{default:Oe(()=>[c(Q,{value:"16:9",label:"16:9"}),c(Q,{value:"9:16",label:"9:16"}),c(Q,{value:"1:1",label:"1:1"})]),_:1},8,["modelValue","placeholder"]),c(M,{modelValue:e.data.quality,"onUpdate:modelValue":C[4]||(C[4]=j=>e.data.quality=j),class:"paramSelect ml-5",size:"small",placeholder:y.$t("workbench.production.editImage.quality")},{default:Oe(()=>[c(Q,{value:"1K",label:"1K"}),c(Q,{value:"2K",label:"2K"}),c(Q,{value:"4K",label:"4K"})]),_:1},8,["modelValue","placeholder"])]),ge("div",gCs,[c(I,{content:y.$t("workbench.production.editImage.generateBtn")},{default:Oe(()=>[c(R,{theme:"primary",size:"small",class:"generateBtn",disabled:Ae(l),loading:Ae(l),onClick:w},{icon:Oe(()=>[c(B)]),_:1},8,["disabled","loading"])]),_:1},8,["content"]),c(I,{content:y.$t("workbench.production.save")},{default:Oe(()=>[c(R,{theme:"primary",size:"small",class:"keepBtn",disabled:Ae(l),loading:Ae(l),onClick:O},{icon:Oe(()=>[c(F)]),_:1},8,["disabled","loading"])]),_:1},8,["content"])])])],544),[[h1,Ae(a)]]),c(Ae(mm),{type:"source",position:Ae(Vi).Right,style:{"z-index":"999999"}},null,8,["position"])])}}}),kCs=oo(mCs,[["__scopeId","data-v-e13a8b56"]]),vCs={class:"assets"},ACs={class:"data"},pCs={class:"panelContent"},bCs={class:"toolbar"},wCs={class:"f ac"},OCs={class:"assetsList f w"},yCs={class:"previewCell"},CCs=["onClick"],_Cs=["src","alt"],SCs={class:"mediaHoverOverlay"},LCs={class:"hoverText"},xCs=Je({__name:"storyboardImageCheck",props:Fc({allowedTypes:{},multiple:{type:Boolean,default:!1},scriptId:{}},{modelValue:{default:!1},modelModifiers:{}}),emits:Fc(["confirm","cancel"],["update:modelValue"]),setup(e,{emit:t}){const n=e,r=t,o=Pf(e,"modelValue");pt(()=>o.value,_=>{_&&(v.value.page=1,s.value="",a.value=[],p())}),An(()=>{p()});const s=fe(""),a=fe([]),l=fe([]),d=fe(!1),u=fe(new Set),h=fe(new Set),g=_=>u.value.has(_)||h.value.has(_),m=fe([]),v=fe({page:1,pageSize:10,total:0,showJumper:!0}),k=[{colKey:"row-select",type:n.multiple?"multiple":"single",width:50,align:"center",fixed:"left",disabled:_=>{var S;return g(((S=_.row)==null?void 0:S.id)??_.id)}},{colKey:"src",title:$t("components.storyboardImageCheck.src"),width:100,align:"center",cell:"preview"},{colKey:"prompt",title:$t("workbench.project.dialog.prompt.title"),width:100,align:"left",ellipsis:!0},{colKey:"duration",title:$t("components.storyboardImageCheck.duration"),minWidth:80,align:"left",ellipsis:!0},{colKey:"createTime",title:$t("components.storyboardImageCheck.createTime"),width:200,align:"center",cell:"createTime"}];function A(){v.value.page=1,p()}async function p(){try{d.value=!0;const{data:_}=await mn.post("/production/storyboard/getStoryboardData",{scriptId:n.scriptId,name:s.value||void 0,page:v.value.page,limit:v.value.pageSize});return m.value=_.data||[],v.value.total=_.total||0,m.value}catch(_){console.error("加载资产数据失败:",_),m.value=[],v.value.total=0}finally{d.value=!1}}function b(_){const S=_.filter(L=>!g(L));n.multiple?a.value=S:a.value=S.length>0?[S[S.length-1]]:[]}function w(_){_.length>3&&(_=_.slice(-3)),l.value=_}function O(_){v.value.page=_.current,v.value.pageSize=_.pageSize,p()}function y(){const _=m.value.filter(S=>a.value.includes(S.id));r("confirm",_),o.value=!1}function C(){r("cancel")}return(_,S)=>{const L=Wu,E=dL,T=Si,D=hL,P=jne,Q=gc;return xe(),Ut(Q,{visible:o.value,"onUpdate:visible":S[1]||(S[1]=M=>o.value=M),header:_.$t("components.storyboardImageCheck.dialogTitle"),width:"80vw",footer:!0,placement:"center",zIndex:999999999999,onClose:C,onConfirm:y,onCancel:C},{default:Oe(()=>[ge("div",vCs,[ge("div",ACs,[ge("div",pCs,[ge("div",bCs,[ge("div",wCs,[c(L,{modelValue:Ae(s),"onUpdate:modelValue":S[0]||(S[0]=M=>Fn(s)?s.value=M:null),placeholder:_.$t("workbench.assets.searchPlaceholder"),clearable:"",style:{width:"260px"}},null,8,["modelValue","placeholder"]),c(T,{style:{"margin-left":"5px"},onClick:A},{icon:Oe(()=>[c(E,{name:"search"})]),default:Oe(()=>[Bt(" "+Pe(_.$t("workbench.assets.search")),1)]),_:1})])]),ge("div",OCs,[c(P,{columns:k,data:Ae(m),"selected-row-keys":Ae(a),"expanded-row-keys":Ae(l),"row-key":"id",hover:"",stripe:"",size:"small",pagination:Ae(v),loading:Ae(d),"lazy-load":"","table-layout":"fixed",onSelectChange:b,onExpandChange:w,onPageChange:O},{preview:Oe(({row:M})=>[ge("div",yCs,[c(D,{images:[M.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:B})=>[ge("div",{class:"mediaTrigger",onClick:R=>M.src&&B()},[ge("img",{src:M.src,alt:M.name},null,8,_Cs),ge("div",SCs,[c(E,{name:"browse",size:"20px"}),ge("span",LCs,Pe(_.$t("components.storyboardImageCheck.preview")),1)])],8,CCs)]),_:2},1032,["images"])])]),startTime:Oe(({row:M})=>[ge("span",null,Pe(Ae(JB)(M.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),_:1},8,["data","selected-row-keys","expanded-row-keys","pagination","loading"])])])])])]),_:1},8,["visible","header"])}}}),ECs=oo(xCs,[["__scopeId","data-v-ff556e8b"]]),TCs={class:"remove c"},QCs={__name:"removeLine",props:["id","sourceX","sourceY","targetX","targetY","sourcePosition","targetPosition","sourceNode","targetNode","source","target","type","updatable","data","markerEnd","markerStart","style","selected","animated","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","events","sourceHandleId","targetHandleId","interactionWidth"],setup(e){const{removeEdges:t}=nl("editImage"),n=e,r=X(()=>$st(n));function o(s){t(s)}return(s,a)=>{const l=_n("i-close");return xe(),Ge(sn,null,[c(Ae(Hre),{id:e.id,path:Ae(r)[0],"label-x":Ae(r)[1],"label-y":Ae(r)[2],"label-bg-style":"fill: whitesmoke"},null,8,["id","path","label-x","label-y"]),c(Ae(ROs),null,{default:Oe(()=>[ge("div",{style:no({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${Ae(r)[1]}px,${Ae(r)[2]}px)`})},[ge("div",TCs,[c(l,{theme:"outline",size:"32",onClick:a[0]||(a[0]=d=>o(e.id))})])],4)]),_:1})],64)}}},DCs=oo(QCs,[["__scopeId","data-v-791ad826"]]);var xZn=Object.defineProperty,BCs=(e,t,n)=>t in e?xZn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,RCs=(e,t)=>{for(var n in t)xZn(e,n,{get:t[n],enumerable:!0})},ICs=(e,t,n)=>BCs(e,t+"",n),EZn={};RCs(EZn,{Graph:()=>Tp,alg:()=>Gst,json:()=>QZn,version:()=>FCs});var MCs=Object.defineProperty,TZn=(e,t)=>{for(var n in t)MCs(e,n,{get:t[n],enumerable:!0})},Tp=class{constructor(t){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},t&&(this._isDirected="directed"in t?t.directed:!0,this._isMultigraph="multigraph"in t?t.multigraph:!1,this._isCompound="compound"in t?t.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return typeof t!="function"?this._defaultNodeLabelFn=()=>t:this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(t=>Object.keys(this._in[t]).length===0)}sinks(){return this.nodes().filter(t=>Object.keys(this._out[t]).length===0)}setNodes(t,n){return t.forEach(r=>{n!==void 0?this.setNode(r,n):this.setNode(r)}),this}setNode(t,n){return t in this._nodes?(arguments.length>1&&(this._nodes[t]=n),this):(this._nodes[t]=arguments.length>1?n:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]="\0",this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return t in this._nodes}removeNode(t){if(t in this._nodes){let n=r=>this.removeEdge(this._edgeObjs[r]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],this.children(t).forEach(r=>{this.setParent(r)}),delete this._children[t]),Object.keys(this._in[t]).forEach(n),delete this._in[t],delete this._preds[t],Object.keys(this._out[t]).forEach(n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(n===void 0)n="\0";else{n+="";for(let r=n;r!==void 0;r=this.parent(r))if(r===t)throw new Error("Setting "+n+" as parent of "+t+" would create a cycle");this.setNode(n)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=n,this._children[n][t]=!0,this}parent(t){if(this._isCompound){let n=this._parent[t];if(n!=="\0")return n}}children(t="\0"){if(this._isCompound){let n=this._children[t];if(n)return Object.keys(n)}else{if(t==="\0")return this.nodes();if(this.hasNode(t))return[]}return[]}predecessors(t){let n=this._preds[t];if(n)return Object.keys(n)}successors(t){let n=this._sucs[t];if(n)return Object.keys(n)}neighbors(t){let n=this.predecessors(t);if(n){let r=new Set(n);for(let o of this.successors(t))r.add(o);return Array.from(r.values())}}isLeaf(t){let n;return this.isDirected()?n=this.successors(t):n=this.neighbors(t),n.length===0}filterNodes(t){let n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph()),Object.entries(this._nodes).forEach(([s,a])=>{t(s)&&n.setNode(s,a)}),Object.values(this._edgeObjs).forEach(s=>{n.hasNode(s.v)&&n.hasNode(s.w)&&n.setEdge(s,this.edge(s))});let r={},o=s=>{let a=this.parent(s);return!a||n.hasNode(a)?(r[s]=a??void 0,a??void 0):a in r?r[a]:o(a)};return this._isCompound&&n.nodes().forEach(s=>n.setParent(s,o(s))),n}setDefaultEdgeLabel(t){return typeof t!="function"?this._defaultEdgeLabelFn=()=>t:this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(t,n){return t.reduce((r,o)=>(n!==void 0?this.setEdge(r,o,n):this.setEdge(r,o),o)),this}setEdge(t,n,r,o){let s,a,l,d,u=!1;typeof t=="object"&&t!==null&&"v"in t?(s=t.v,a=t.w,l=t.name,arguments.length===2&&(d=n,u=!0)):(s=t,a=n,l=o,arguments.length>2&&(d=r,u=!0)),s=""+s,a=""+a,l!==void 0&&(l=""+l);let h=dY(this._isDirected,s,a,l);if(h in this._edgeLabels)return u&&(this._edgeLabels[h]=d),this;if(l!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(s),this.setNode(a),this._edgeLabels[h]=u?d:this._defaultEdgeLabelFn(s,a,l);let g=PCs(this._isDirected,s,a,l);return s=g.v,a=g.w,Object.freeze(g),this._edgeObjs[h]=g,mkn(this._preds[a],s),mkn(this._sucs[s],a),this._in[a][h]=g,this._out[s][h]=g,this._edgeCount++,this}edge(t,n,r){let o=arguments.length===1?mRe(this._isDirected,t):dY(this._isDirected,t,n,r);return this._edgeLabels[o]}edgeAsObj(t,n,r){let o=arguments.length===1?this.edge(t):this.edge(t,n,r);return typeof o!="object"?{label:o}:o}hasEdge(t,n,r){return(arguments.length===1?mRe(this._isDirected,t):dY(this._isDirected,t,n,r))in this._edgeLabels}removeEdge(t,n,r){let o=arguments.length===1?mRe(this._isDirected,t):dY(this._isDirected,t,n,r),s=this._edgeObjs[o];if(s){let a=s.v,l=s.w;delete this._edgeLabels[o],delete this._edgeObjs[o],kkn(this._preds[l],a),kkn(this._sucs[a],l),delete this._in[l][o],delete this._out[a][o],this._edgeCount--}return this}inEdges(t,n){return this.isDirected()?this.filterEdges(this._in[t],t,n):this.nodeEdges(t,n)}outEdges(t,n){return this.isDirected()?this.filterEdges(this._out[t],t,n):this.nodeEdges(t,n)}nodeEdges(t,n){if(t in this._nodes)return this.filterEdges({...this._in[t],...this._out[t]},t,n)}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}filterEdges(t,n,r){if(!t)return;let o=Object.values(t);return r?o.filter(s=>s.v===n&&s.w===r||s.v===r&&s.w===n):o}};function mkn(e,t){e[t]?e[t]++:e[t]=1}function kkn(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function dY(e,t,n,r){let o=""+t,s=""+n;if(!e&&o>s){let a=o;o=s,s=a}return o+""+s+""+(r===void 0?"\0":r)}function PCs(e,t,n,r){let o=""+t,s=""+n;if(!e&&o>s){let l=o;o=s,s=l}let a={v:o,w:s};return r&&(a.name=r),a}function mRe(e,t){return dY(e,t.v,t.w,t.name)}var FCs="4.0.1",QZn={};TZn(QZn,{read:()=>WCs,write:()=>NCs});function NCs(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:UCs(e),edges:jCs(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function UCs(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),o={v:t};return n!==void 0&&(o.value=n),r!==void 0&&(o.parent=r),o})}function jCs(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function WCs(e){let t=new Tp(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(n=>{t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(n=>{t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var Gst={};TZn(Gst,{CycleException:()=>$2e,bellmanFord:()=>DZn,components:()=>HCs,dijkstra:()=>H2e,dijkstraAll:()=>GCs,findCycles:()=>YCs,floydWarshall:()=>qCs,isAcyclic:()=>JCs,postorder:()=>t_s,preorder:()=>n_s,prim:()=>i_s,shortestPaths:()=>r_s,tarjan:()=>RZn,topsort:()=>IZn});var VCs=()=>1;function DZn(e,t,n,r){return zCs(e,String(t),n||VCs,r||function(o){return e.outEdges(o)})}function zCs(e,t,n,r){let o={},s,a=0,l=e.nodes(),d=function(g){let m=n(g);o[g.v].distance+mt.key)}has(t){return t in this._keyIndices}priority(t){let n=this._keyIndices[t];if(n!==void 0)return this._arr[n].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(t,n){let r=this._keyIndices,o=String(t);if(!(o in r)){let s=this._arr,a=s.length;return r[o]=a,s.push({key:o,priority:n}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key}decrease(t,n){let r=this._keyIndices[t];if(r===void 0)throw new Error(`Key not found: ${t}`);let o=this._arr[r].priority;if(n>o)throw new Error(`New priority is greater than current priority. Key: ${t} Old: ${o} New: ${n}`);this._arr[r].priority=n,this._decrease(r)}_heapify(t){let n=this._arr,r=2*t,o=r+1,s=t;r>1,!(n[o].priority1;function H2e(e,t,n,r){let o=function(s){return e.outEdges(s)};return XCs(e,String(t),n||$Cs,r||o)}function XCs(e,t,n,r){let o={},s=new BZn,a,l,d=function(u){let h=u.v!==a?u.v:u.w,g=o[h],m=n(u),v=l.distance+m;if(m<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+u+" Weight: "+m);v0&&(a=s.removeMin(),l=o[a],l.distance!==Number.POSITIVE_INFINITY);)r(a).forEach(d);return o}function GCs(e,t,n){return e.nodes().reduce(function(r,o){return r[o]=H2e(e,o,t,n),r},{})}function RZn(e){let t=0,n=[],r={},o=[];function s(a){let l=r[a]={onStack:!0,lowlink:t,index:t++};if(n.push(a),e.successors(a).forEach(function(d){d in r?r[d].onStack&&(l.lowlink=Math.min(l.lowlink,r[d].index)):(s(d),l.lowlink=Math.min(l.lowlink,r[d].lowlink))}),l.lowlink===l.index){let d=[],u;do u=n.pop(),r[u].onStack=!1,d.push(u);while(a!==u);o.push(d)}}return e.nodes().forEach(function(a){a in r||s(a)}),o}function YCs(e){return RZn(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var ZCs=()=>1;function qCs(e,t,n){return KCs(e,t||ZCs,n||function(r){return e.outEdges(r)})}function KCs(e,t,n){let r={},o=e.nodes();return o.forEach(function(s){r[s]={},r[s][s]={distance:0,predecessor:""},o.forEach(function(a){s!==a&&(r[s][a]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),n(s).forEach(function(a){let l=a.v===s?a.w:a.v,d=t(a);r[s][l]={distance:d,predecessor:s}})}),o.forEach(function(s){let a=r[s];o.forEach(function(l){let d=r[l];o.forEach(function(u){let h=d[s],g=a[u],m=d[u],v=h.distance+g.distance;v{var d;return(d=e.isDirected()?e.successors(l):e.neighbors(l))!=null?d:[]},a={};return t.forEach(function(l){if(!e.hasNode(l))throw new Error("Graph does not have node: "+l);o=MZn(e,l,n==="post",a,s,r,o)}),o}function MZn(e,t,n,r,o,s,a){return t in r||(r[t]=!0,n||(a=s(a,t)),o(t).forEach(function(l){a=MZn(e,l,n,r,o,s,a)}),n&&(a=s(a,t))),a}function PZn(e,t,n){return e_s(e,t,n,function(r,o){return r.push(o),r},[])}function t_s(e,t){return PZn(e,t,"post")}function n_s(e,t){return PZn(e,t,"pre")}function i_s(e,t){let n=new Tp,r={},o=new BZn,s;function a(d){let u=d.v===s?d.w:d.v,h=o.priority(u);if(h!==void 0){let g=t(d);g0;){if(s=o.removeMin(),s in r)n.setEdge(s,r[s]);else{if(l)throw new Error("Input graph is not connected: "+e);l=!0}e.nodeEdges(s).forEach(a)}return n}function r_s(e,t,n,r){return o_s(e,t,n,r??(o=>{let s=e.outEdges(o);return s??[]}))}function o_s(e,t,n,r){if(n===void 0)return H2e(e,t,n,r);let o=!1,s=e.nodes();for(let a=0;at.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t}function FZn(e){let t=new Tp({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function vkn(e,t){let n=e.x,r=e.y,o=t.x-n,s=t.y-r,a=e.width/2,l=e.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");let d,u;return Math.abs(s)*a>Math.abs(o)*l?(s<0&&(l=-l),d=l*o/s,u=l):(o<0&&(a=-a),d=a,u=a*s/o),{x:n+d,y:r+u}}function $re(e){let t=Mte(UZn(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),o=r.rank;o!==void 0&&(t[o]||(t[o]=[]),t[o][r.order]=n)}),t}function a_s(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),n=JO(Math.min,t);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=n)})}function l_s(e){let t=e.nodes().map(a=>e.node(a).rank).filter(a=>a!==void 0),n=JO(Math.min,t),r=[];e.nodes().forEach(a=>{let l=e.node(a).rank-n;r[l]||(r[l]=[]),r[l].push(a)});let o=0,s=e.graph().nodeRankFactor;Array.from(r).forEach((a,l)=>{a===void 0&&l%s!==0?--o:a!==void 0&&o&&a.forEach(d=>e.node(d).rank+=o)})}function Akn(e,t,n,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),IH(e,"border",o,t)}function c_s(e,t=NZn){let n=[];for(let r=0;rNZn){let n=c_s(t);return e(...n.map(r=>e(...r)))}else return e(...t)}function UZn(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return JO(Math.max,t)}function d_s(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function jZn(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function WZn(e,t){return t()}var u_s=0;function Yst(e){let t=++u_s;return e+(""+t)}function Mte(e,t,n=1){t==null&&(t=e,e=0);let r=s=>str[t]:n=t,Object.entries(e).reduce((r,[o,s])=>(r[o]=n(s,o),r),{})}function h_s(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}var qOe="\0",f_s="3.0.0",g_s=class{constructor(){ICs(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return pkn(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&pkn(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,m_s)),n=n._prev;return"["+e.join(", ")+"]"}};function pkn(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function m_s(e,t){if(e!=="_next"&&e!=="_prev")return t}var k_s=g_s,v_s=()=>1;function A_s(e,t){if(e.nodeCount()<=1)return[];let n=b_s(e,t||v_s);return p_s(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function p_s(e,t,n){var r;let o=[],s=t[t.length-1],a=t[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)kRe(e,t,n,l);for(;l=s.dequeue();)kRe(e,t,n,l);if(e.nodeCount()){for(let d=t.length-2;d>0;--d)if(l=(r=t[d])==null?void 0:r.dequeue(),l){o=o.concat(kRe(e,t,n,l,!0)||[]);break}}}return o}function kRe(e,t,n,r,o){let s=[],a=o?s:void 0;return(e.inEdges(r.v)||[]).forEach(l=>{let d=e.edge(l),u=e.node(l.v);o&&s.push({v:l.v,w:l.w}),u.out-=d,VGe(t,n,u)}),(e.outEdges(r.v)||[]).forEach(l=>{let d=e.edge(l),u=l.w,h=e.node(u);h.in-=d,VGe(t,n,h)}),e.removeNode(r.v),a}function b_s(e,t){let n=new Tp,r=0,o=0;e.nodes().forEach(l=>{n.setNode(l,{v:l,in:0,out:0})}),e.edges().forEach(l=>{let d=n.edge(l.v,l.w)||0,u=t(l),h=d+u;n.setEdge(l.v,l.w,h);let g=n.node(l.v),m=n.node(l.w);o=Math.max(o,g.out+=u),r=Math.max(r,m.in+=u)});let s=w_s(o+r+3).map(()=>new k_s),a=r+1;return n.nodes().forEach(l=>{VGe(s,a,n.node(l))}),{graph:n,buckets:s,zeroIdx:a}}function VGe(e,t,n){var r,o,s;n.out?n.in?(s=e[n.out-n.in+t])==null||s.enqueue(n):(o=e[e.length-1])==null||o.enqueue(n):(r=e[0])==null||r.enqueue(n)}function w_s(e){let t=[];for(let n=0;n{let r=e.edge(n);e.removeEdge(n),r.forwardName=n.name,r.reversed=!0,e.setEdge(n.w,n.v,r,Yst("rev"))});function t(n){return r=>n.edge(r).weight}}function y_s(e){let t=[],n={},r={};function o(s){Object.hasOwn(r,s)||(r[s]=!0,n[s]=!0,e.outEdges(s).forEach(a=>{Object.hasOwn(n,a.w)?t.push(a):o(a.w)}),delete n[s])}return e.nodes().forEach(o),t}function C_s(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function __s(e){e.graph().dummyChains=[],e.edges().forEach(t=>S_s(e,t))}function S_s(e,t){let n=t.v,r=e.node(n).rank,o=t.w,s=e.node(o).rank,a=t.name,l=e.edge(t),d=l.labelRank;if(s===r+1)return;e.removeEdge(t);let u,h,g;for(g=0,++r;r{let n=e.node(t),r=n.edgeLabel,o;for(e.setEdge(n.edgeObj,r);n.dummy;)o=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=o,n=e.node(t)})}function Zst(e){let t={};function n(r){let o=e.node(r);if(Object.hasOwn(t,r))return o.rank;t[r]=!0;let s=e.outEdges(r),a=s?s.map(d=>d==null?Number.POSITIVE_INFINITY:n(d.w)-e.edge(d).minlen):[],l=JO(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),o.rank=l}e.sources().forEach(n)}function cz(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var VZn=x_s;function x_s(e){let t=new Tp({directed:!1}),n=e.nodes();if(n.length===0)throw new Error("Graph must have at least one node");let r=n[0],o=e.nodeCount();t.setNode(r,{});let s,a;for(;E_s(t,e){let a=s.v,l=r===a?s.w:a;!e.hasNode(l)&&!cz(t,s)&&(e.setNode(l,{}),e.setEdge(r,l,{}),n(l))})}return e.nodes().forEach(n),e.nodeCount()}function T_s(e,t){return t.edges().reduce((n,r)=>{let o=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(o=cz(t,r)),ot.node(r).rank+=n)}var{preorder:D_s,postorder:B_s}=Gst,R_s=oM;oM.initLowLimValues=Kst;oM.initCutValues=qst;oM.calcCutValue=zZn;oM.leaveEdge=$Zn;oM.enterEdge=XZn;oM.exchangeEdges=GZn;function oM(e){e=s_s(e),Zst(e);let t=VZn(e);Kst(t),qst(t,e);let n,r;for(;n=$Zn(t);)r=XZn(t,e,n),GZn(t,e,n,r)}function qst(e,t){let n=B_s(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>I_s(e,t,r))}function I_s(e,t,n){let r=e.node(n).parent,o=e.edge(n,r);o.cutvalue=zZn(e,t,n)}function zZn(e,t,n){let r=e.node(n).parent,o=!0,s=t.edge(n,r),a=0;s||(o=!1,s=t.edge(r,n)),a=s.weight;let l=t.nodeEdges(n);return l&&l.forEach(d=>{let u=d.v===n,h=u?d.w:d.v;if(h!==r){let g=u===o,m=t.edge(d).weight;if(a+=g?m:-m,P_s(e,n,h)){let v=e.edge(n,h).cutvalue;a+=g?-v:v}}}),a}function Kst(e,t){arguments.length<2&&(t=e.nodes()[0]),HZn(e,{},1,t)}function HZn(e,t,n,r,o){let s=n,a=e.node(r);t[r]=!0;let l=e.neighbors(r);return l&&l.forEach(d=>{Object.hasOwn(t,d)||(n=HZn(e,t,n,d,r))}),a.low=s,a.lim=n++,o?a.parent=o:delete a.parent,n}function $Zn(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function XZn(e,t,n){let r=n.v,o=n.w;t.hasEdge(r,o)||(r=n.w,o=n.v);let s=e.node(r),a=e.node(o),l=s,d=!1;return s.lim>a.lim&&(l=a,d=!0),t.edges().filter(u=>d===bkn(e,e.node(u.v),l)&&d!==bkn(e,e.node(u.w),l)).reduce((u,h)=>cz(t,h)!e.node(o).parent);if(!n)return;let r=D_s(e,[n]);r=r.slice(1),r.forEach(o=>{let s=e.node(o).parent,a=t.edge(o,s),l=!1;a||(a=t.edge(s,o),l=!0),t.node(o).rank=t.node(s).rank+(l?a.minlen:-a.minlen)})}function P_s(e,t,n){return e.hasEdge(t,n)}function bkn(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var F_s=N_s;function N_s(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":wkn(e);break;case"tight-tree":j_s(e);break;case"longest-path":U_s(e);break;case"none":break;default:wkn(e)}}var U_s=Zst;function j_s(e){Zst(e),VZn(e)}function wkn(e){R_s(e)}var W_s=V_s;function V_s(e){let t=H_s(e);e.graph().dummyChains.forEach(n=>{let r=e.node(n),o=r.edgeObj,s=z_s(e,t,o.v,o.w),a=s.path,l=s.lca,d=0,u=a[d],h=!0;for(;n!==o.w;){if(r=e.node(n),h){for(;(u=a[d])!==l&&e.node(u).maxRanka||l>t[d].lim));let u=d,h=r;for(;(h=e.parent(h))!==u;)s.push(h);return{path:o.concat(s.reverse()),lca:u}}function H_s(e){let t={},n=0;function r(o){let s=n;e.children(o).forEach(r),t[o]={low:s,lim:n++}}return e.children(qOe).forEach(r),t}function $_s(e){let t=IH(e,"root",{},"_root"),n=X_s(e),r=Object.values(n),o=JO(Math.max,r)-1,s=2*o+1;e.graph().nestingRoot=t,e.edges().forEach(l=>e.edge(l).minlen*=s);let a=G_s(e)+1;e.children(qOe).forEach(l=>YZn(e,t,s,a,o,n,l)),e.graph().nodeRankFactor=s}function YZn(e,t,n,r,o,s,a){var l;let d=e.children(a);if(!d.length){a!==t&&e.setEdge(t,a,{weight:0,minlen:n});return}let u=Akn(e,"_bt"),h=Akn(e,"_bb"),g=e.node(a);e.setParent(u,a),g.borderTop=u,e.setParent(h,a),g.borderBottom=h,d.forEach(m=>{var v;YZn(e,t,n,r,o,s,m);let f=e.node(m),k=f.borderTop?f.borderTop:m,A=f.borderBottom?f.borderBottom:m,p=f.borderTop?r:2*r,b=k!==A?1:o-((v=s[a])!=null?v:0)+1;e.setEdge(u,k,{weight:p,minlen:b,nestingEdge:!0}),e.setEdge(A,h,{weight:p,minlen:b,nestingEdge:!0})}),e.parent(a)||e.setEdge(t,u,{weight:0,minlen:o+((l=s[a])!=null?l:0)})}function X_s(e){let t={};function n(r,o){let s=e.children(r);s&&s.length&&s.forEach(a=>n(a,o+1)),t[r]=o}return e.children(qOe).forEach(r=>n(r,1)),t}function G_s(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function Y_s(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var Z_s=q_s;function q_s(e){function t(n){let r=e.children(n),o=e.node(n);if(r.length&&r.forEach(t),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let s=o.minRank,a=o.maxRank+1;sykn(e.node(t))),e.edges().forEach(t=>ykn(e.edge(t)))}function ykn(e){let t=e.width;e.width=e.height,e.height=t}function eSs(e){e.nodes().forEach(t=>vRe(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(vRe),Object.hasOwn(r,"y")&&vRe(r)})}function vRe(e){e.y=-e.y}function tSs(e){e.nodes().forEach(t=>ARe(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(ARe),Object.hasOwn(r,"x")&&ARe(r)})}function ARe(e){let t=e.x;e.x=e.y,e.y=t}function nSs(e){let t={},n=e.nodes().filter(l=>!e.children(l).length),r=n.map(l=>e.node(l).rank),o=JO(Math.max,r),s=Mte(o+1).map(()=>[]);function a(l){if(t[l])return;t[l]=!0;let d=e.node(l);s[d.rank].push(l);let u=e.successors(l);u&&u.forEach(a)}return n.sort((l,d)=>e.node(l).rank-e.node(d).rank).forEach(a),s}function iSs(e,t){let n=0;for(let r=1;rh)),o=t.flatMap(u=>{let h=e.outEdges(u);return h?h.map(g=>({pos:r[g.w],weight:e.edge(g).weight})).sort((g,m)=>g.pos-m.pos):[]}),s=1;for(;s{let h=u.pos+s;l[h]+=u.weight;let g=0;for(;h>0;)h%2&&(g+=l[h+1]),h=h-1>>1,l[h]+=u.weight;d+=u.weight*g}),d}function oSs(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(!r||!r.length)return{v:n};{let o=r.reduce((s,a)=>{let l=e.edge(a),d=e.node(a.v);return{sum:s.sum+l.weight*d.order,weight:s.weight+l.weight}},{sum:0,weight:0});return{v:n,barycenter:o.sum/o.weight,weight:o.weight}}})}function sSs(e,t){let n={};e.forEach((o,s)=>{let a={indegree:0,in:[],out:[],vs:[o.v],i:s};o.barycenter!==void 0&&(a.barycenter=o.barycenter,a.weight=o.weight),n[o.v]=a}),t.edges().forEach(o=>{let s=n[o.v],a=n[o.w];s!==void 0&&a!==void 0&&(a.indegree++,s.out.push(a))});let r=Object.values(n).filter(o=>!o.indegree);return aSs(r)}function aSs(e){let t=[];function n(o){return s=>{s.merged||(s.barycenter===void 0||o.barycenter===void 0||s.barycenter>=o.barycenter)&&lSs(o,s)}}function r(o){return s=>{s.in.push(o),--s.indegree===0&&e.push(s)}}for(;e.length;){let o=e.pop();t.push(o),o.in.reverse().forEach(n(o)),o.out.forEach(r(o))}return t.filter(o=>!o.merged).map(o=>X2e(o,["vs","i","barycenter","weight"]))}function lSs(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function cSs(e,t){let n=d_s(e,h=>Object.hasOwn(h,"barycenter")),r=n.lhs,o=n.rhs.sort((h,g)=>g.i-h.i),s=[],a=0,l=0,d=0;r.sort(dSs(!!t)),d=Ckn(s,o,d),r.forEach(h=>{d+=h.vs.length,s.push(h.vs),a+=h.barycenter*h.weight,l+=h.weight,d=Ckn(s,o,d)});let u={vs:s.flat(1)};return l&&(u.barycenter=a/l,u.weight=l),u}function Ckn(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function dSs(e){return(t,n)=>t.barycentern.barycenter?1:e?n.i-t.i:t.i-n.i}function qZn(e,t,n,r){let o=e.children(t),s=e.node(t),a=s?s.borderLeft:void 0,l=s?s.borderRight:void 0,d={};a&&(o=o.filter(m=>m!==a&&m!==l));let u=oSs(e,o);u.forEach(m=>{if(e.children(m.v).length){let v=qZn(e,m.v,n,r);d[m.v]=v,Object.hasOwn(v,"barycenter")&&hSs(m,v)}});let h=sSs(u,n);uSs(h,d);let g=cSs(h,r);if(a&&l){g.vs=[a,g.vs,l].flat(1);let m=e.predecessors(a);if(m&&m.length){let v=e.node(m[0]),f=e.predecessors(l),k=e.node(f[0]);Object.hasOwn(g,"barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+v.order+k.order)/(g.weight+2),g.weight+=2}}return g}function uSs(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function hSs(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}function fSs(e,t,n,r){r||(r=e.nodes());let o=gSs(e),s=new Tp({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(a=>e.node(a));return r.forEach(a=>{let l=e.node(a),d=e.parent(a);if(l.rank===t||l.minRank<=t&&t<=l.maxRank){s.setNode(a),s.setParent(a,d||o);let u=e[n](a);u&&u.forEach(h=>{let g=h.v===a?h.w:h.v,m=s.edge(g,a),v=m!==void 0?m.weight:0;s.setEdge(g,a,{weight:e.edge(h).weight+v})}),Object.hasOwn(l,"minRank")&&s.setNode(a,{borderLeft:l.borderLeft[t],borderRight:l.borderRight[t]})}}),s}function gSs(e){let t;for(;e.hasNode(t=Yst("_root")););return t}function mSs(e,t,n){let r={},o;n.forEach(s=>{let a=e.parent(s),l,d;for(;a;){if(l=e.parent(a),l?(d=r[l],r[l]=a):(d=o,o=a),d&&d!==a){t.setEdge(d,a);return}a=l}})}function KZn(e,t={}){if(typeof t.customOrder=="function"){t.customOrder(e,KZn);return}let n=UZn(e),r=_kn(e,Mte(1,n+1),"inEdges"),o=_kn(e,Mte(n-1,-1,-1),"outEdges"),s=nSs(e);if(Skn(e,s),t.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,l,d=t.constraints||[];for(let u=0,h=0;h<4;++u,++h){kSs(u%2?r:o,u%4>=2,d),s=$re(e);let g=iSs(e,s);g{r.has(s)||r.set(s,[]),r.get(s).push(a)};for(let s of e.nodes()){let a=e.node(s);if(typeof a.rank=="number"&&o(a.rank,s),typeof a.minRank=="number"&&typeof a.maxRank=="number")for(let l=a.minRank;l<=a.maxRank;l++)l!==a.rank&&o(l,s)}return t.map(function(s){return fSs(e,s,n,r.get(s)||[])})}function kSs(e,t,n){let r=new Tp;e.forEach(function(o){n.forEach(l=>r.setEdge(l.left,l.right));let s=o.graph().root,a=qZn(o,s,r,t);a.vs.forEach((l,d)=>o.node(l).order=d),mSs(o,r,a.vs)})}function Skn(e,t){Object.values(t).forEach(n=>n.forEach((r,o)=>e.node(r).order=o))}function vSs(e,t){let n={};function r(o,s){let a=0,l=0,d=o.length,u=s[s.length-1];return s.forEach((h,g)=>{let m=pSs(e,h),v=m?e.node(m).order:d;(m||h===u)&&(s.slice(l,g+1).forEach(f=>{let k=e.predecessors(f);k&&k.forEach(A=>{let p=e.node(A),b=p.order;(b{let g=s[h];if(g!==void 0&&e.node(g).dummy){let m=e.predecessors(g);m&&m.forEach(v=>{if(v===void 0)return;let f=e.node(v);f.dummy&&(f.orderu)&&JZn(n,v,g)})}})}function o(s,a){let l=-1,d=-1,u=0;return a.forEach((h,g)=>{if(e.node(h).dummy==="border"){let m=e.predecessors(h);if(m&&m.length){let v=m[0];if(v===void 0)return;d=e.node(v).order,r(a,u,g,l,d),u=g,l=d}}r(a,u,a.length,d,s.length)}),a}return t.length&&t.reduce(o),n}function pSs(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function JZn(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];r||(e[t]=r={}),r[n]=!0}function bSs(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function wSs(e,t,n,r){let o={},s={},a={};return t.forEach(l=>{l.forEach((d,u)=>{o[d]=d,s[d]=d,a[d]=u})}),t.forEach(l=>{let d=-1;l.forEach(u=>{let h=r(u);if(h&&h.length){let g=h.sort((v,f)=>{let k=a[v],A=a[f];return(k!==void 0?k:0)-(A!==void 0?A:0)}),m=(g.length-1)/2;for(let v=Math.floor(m),f=Math.ceil(m);v<=f;++v){let k=g[v];if(k===void 0)continue;let A=a[k];if(A!==void 0&&s[u]===u&&d{var p;let b=(p=s[A.v])!=null?p:0,w=a.edge(A);return Math.max(k,b+(w!==void 0?w:0))},0):s[v]=0}function h(v){let f=a.outEdges(v),k=Number.POSITIVE_INFINITY;f&&(k=f.reduce((p,b)=>{let w=s[b.w],O=a.edge(b);return Math.min(p,(w!==void 0?w:0)-(O!==void 0?O:0))},Number.POSITIVE_INFINITY));let A=e.node(v);k!==Number.POSITIVE_INFINITY&&A.borderType!==l&&(s[v]=Math.max(s[v]!==void 0?s[v]:0,k))}function g(v){return a.predecessors(v)||[]}function m(v){return a.successors(v)||[]}return d(u,g),d(h,m),Object.keys(r).forEach(v=>{var f;let k=n[v];k!==void 0&&(s[v]=(f=s[k])!=null?f:0)}),s}function ySs(e,t,n,r){let o=new Tp,s=e.graph(),a=xSs(s.nodesep,s.edgesep,r);return t.forEach(l=>{let d;l.forEach(u=>{let h=n[u];if(h!==void 0){if(o.setNode(h),d!==void 0){let g=n[d];if(g!==void 0){let m=o.edge(g,h);o.setEdge(g,h,Math.max(a(e,u,d),m||0))}}d=u}})}),o}function CSs(e,t){return Object.values(t).reduce((n,r)=>{let o=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([l,d])=>{let u=ESs(e,l)/2;o=Math.max(d+u,o),s=Math.min(d-u,s)});let a=o-s;return a{["l","r"].forEach(a=>{let l=s+a,d=e[l];if(!d||d===t)return;let u=Object.values(d),h=r-JO(Math.min,u);a!=="l"&&(h=o-JO(Math.max,u)),h&&(e[l]=ZOe(d,g=>g+h))})})}function SSs(e,t=void 0){let n=e.ul;return n?ZOe(n,(r,o)=>{var s,a;if(t){let d=t.toLowerCase(),u=e[d];if(u&&u[o]!==void 0)return u[o]}let l=Object.values(e).map(d=>{let u=d[o];return u!==void 0?u:0}).sort((d,u)=>d-u);return(((s=l[1])!=null?s:0)+((a=l[2])!=null?a:0))/2}):{}}function LSs(e){let t=$re(e),n=Object.assign(vSs(e,t),ASs(e,t)),r={},o;["u","d"].forEach(a=>{o=a==="u"?t:Object.values(t).reverse(),["l","r"].forEach(l=>{l==="r"&&(o=o.map(h=>Object.values(h).reverse()));let d=wSs(e,o,n,h=>(a==="u"?e.predecessors(h):e.successors(h))||[]),u=OSs(e,o,d.root,d.align,l==="r");l==="r"&&(u=ZOe(u,h=>-h)),r[a+l]=u})});let s=CSs(e,r);return _Ss(r,s),SSs(r,e.graph().align)}function xSs(e,t,n){return(r,o,s)=>{let a=r.node(o),l=r.node(s),d=0,u;if(d+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":u=-a.width/2;break;case"r":u=a.width/2;break}if(u&&(d+=n?u:-u),u=void 0,d+=(a.dummy?t:e)/2,d+=(l.dummy?t:e)/2,d+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":u=l.width/2;break;case"r":u=-l.width/2;break}return u&&(d+=n?u:-u),d}}function ESs(e,t){return e.node(t).width}function TSs(e){e=FZn(e),QSs(e),Object.entries(LSs(e)).forEach(([t,n])=>e.node(t).x=n)}function QSs(e){let t=$re(e),n=e.graph(),r=n.ranksep,o=n.rankalign,s=0;t.forEach(a=>{let l=a.reduce((d,u)=>{var h;let g=(h=e.node(u).height)!=null?h:0;return d>g?d:g},0);a.forEach(d=>{let u=e.node(d);o==="top"?u.y=s+u.height/2:o==="bottom"?u.y=s+l-u.height/2:u.y=s+l/2}),s+=l+r})}function DSs(e,t={}){let n=t.debugTiming?jZn:WZn;return n("layout",()=>{let r=n(" buildLayoutGraph",()=>WSs(e));return n(" runLayout",()=>BSs(r,n,t)),n(" updateInputGraph",()=>RSs(e,r)),r})}function BSs(e,t,n){t(" makeSpaceForEdgeLabels",()=>VSs(e)),t(" removeSelfEdges",()=>KSs(e)),t(" acyclic",()=>O_s(e)),t(" nestingGraph.run",()=>$_s(e)),t(" rank",()=>F_s(FZn(e))),t(" injectEdgeLabelProxies",()=>zSs(e)),t(" removeEmptyRanks",()=>l_s(e)),t(" nestingGraph.cleanup",()=>Y_s(e)),t(" normalizeRanks",()=>a_s(e)),t(" assignRankMinMax",()=>HSs(e)),t(" removeEdgeLabelProxies",()=>$Ss(e)),t(" normalize.run",()=>__s(e)),t(" parentDummyChains",()=>W_s(e)),t(" addBorderSegments",()=>Z_s(e)),t(" order",()=>KZn(e,n)),t(" insertSelfEdges",()=>JSs(e)),t(" adjustCoordinateSystem",()=>K_s(e)),t(" position",()=>TSs(e)),t(" positionSelfEdges",()=>e8s(e)),t(" removeBorderNodes",()=>qSs(e)),t(" normalize.undo",()=>L_s(e)),t(" fixupEdgeLabelCoords",()=>YSs(e)),t(" undoCoordinateSystem",()=>J_s(e)),t(" translateGraph",()=>XSs(e)),t(" assignNodeIntersects",()=>GSs(e)),t(" reversePoints",()=>ZSs(e)),t(" acyclic.undo",()=>C_s(e))}function RSs(e,t){e.nodes().forEach(n=>{let r=e.node(n),o=t.node(n);r&&(r.x=o.x,r.y=o.y,r.order=o.order,r.rank=o.rank,t.children(n).length&&(r.width=o.width,r.height=o.height))}),e.edges().forEach(n=>{let r=e.edge(n),o=t.edge(n);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var ISs=["nodesep","edgesep","ranksep","marginx","marginy"],MSs={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},PSs=["acyclicer","ranker","rankdir","align","rankalign"],FSs=["width","height","rank"],Lkn={width:0,height:0},NSs=["minlen","weight","width","height","labeloffset"],USs={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},jSs=["labelpos"];function WSs(e){let t=new Tp({multigraph:!0,compound:!0}),n=bRe(e.graph());return t.setGraph(Object.assign({},MSs,pRe(n,ISs),X2e(n,PSs))),e.nodes().forEach(r=>{let o=bRe(e.node(r)),s=pRe(o,FSs);Object.keys(Lkn).forEach(l=>{s[l]===void 0&&(s[l]=Lkn[l])}),t.setNode(r,s);let a=e.parent(r);a!==void 0&&t.setParent(r,a)}),e.edges().forEach(r=>{let o=bRe(e.edge(r));t.setEdge(r,Object.assign({},USs,pRe(o,NSs),X2e(o,jSs)))}),t}function VSs(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function zSs(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v),o={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};IH(e,"edge-proxy",o,"_ep")}})}function HSs(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function $Ss(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="edge-proxy"){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function XSs(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,o=0,s=e.graph(),a=s.marginx||0,l=s.marginy||0;function d(u){let h=u.x,g=u.y,m=u.width,v=u.height;t=Math.min(t,h-m/2),n=Math.max(n,h+m/2),r=Math.min(r,g-v/2),o=Math.max(o,g+v/2)}e.nodes().forEach(u=>d(e.node(u))),e.edges().forEach(u=>{let h=e.edge(u);Object.hasOwn(h,"x")&&d(h)}),t-=a,r-=l,e.nodes().forEach(u=>{let h=e.node(u);h.x-=t,h.y-=r}),e.edges().forEach(u=>{let h=e.edge(u);h.points.forEach(g=>{g.x-=t,g.y-=r}),Object.hasOwn(h,"x")&&(h.x-=t),Object.hasOwn(h,"y")&&(h.y-=r)}),s.width=n-t+a,s.height=o-r+l}function GSs(e){e.edges().forEach(t=>{let n=e.edge(t),r=e.node(t.v),o=e.node(t.w),s,a;n.points?(s=n.points[0],a=n.points[n.points.length-1]):(n.points=[],s=o,a=r),n.points.unshift(vkn(r,s)),n.points.push(vkn(o,a))})}function YSs(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}function ZSs(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function qSs(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),o=e.node(n.borderBottom),s=e.node(n.borderLeft[n.borderLeft.length-1]),a=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(a.x-s.x),n.height=Math.abs(o.y-r.y),n.x=s.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function KSs(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function JSs(e){$re(e).forEach(t=>{let n=0;t.forEach((r,o)=>{let s=e.node(r);s.order=o+n,(s.selfEdges||[]).forEach(a=>{IH(e,"selfedge",{width:a.label.width,height:a.label.height,rank:s.rank,order:o+ ++n,e:a.e,label:a.label},"_se")}),delete s.selfEdges})})}function e8s(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="selfedge"){let r=n,o=e.node(r.e.v),s=o.x+o.width/2,a=o.y,l=n.x-s,d=o.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:s+2*l/3,y:a-d},{x:s+5*l/6,y:a-d},{x:s+l,y:a},{x:s+5*l/6,y:a+d},{x:s+2*l/3,y:a+d}],r.label.x=n.x,r.label.y=n.y}})}function pRe(e,t){return ZOe(X2e(e,t),Number)}function bRe(e){let t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}function t8s(e){let t=$re(e),n=new Tp({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{n.setNode(r,{label:r}),n.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>n.setEdge(r.v,r.w,{},r.name)),t.forEach((r,o)=>{let s="layer"+o;n.setNode(s,{rank:"same"}),r.reduce((a,l)=>(n.setEdge(a,l,{style:"invis"}),l))}),n}var n8s={graphlib:EZn,version:f_s,layout:DSs,debug:t8s,util:{time:jZn,notime:WZn}},wRe=n8s;/*! For license information please see dagre.esm.js.LEGAL.txt */function eqn(e){const{findNode:t,fitView:n}=nl(e?{id:e}:void 0),r=fe(new wRe.graphlib.Graph),o=fe("LR");function s(a,l,d,u=250,h){const g=new wRe.graphlib.Graph;r.value=g,g.setDefaultEdgeLabel(()=>({})),g.setGraph({rankdir:d,nodesep:u,ranksep:h??u}),o.value=d;const m=d==="LR";for(const v of a){const f=t(v.id);g.setNode(v.id,{width:(f==null?void 0:f.dimensions.width)||150,height:(f==null?void 0:f.dimensions.height)||50})}for(const v of l)g.setEdge(v.source,v.target);return wRe.layout(g),a.map(v=>{const f=g.node(v.id);return{...v,targetPosition:m?Vi.Left:Vi.Top,sourcePosition:m?Vi.Right:Vi.Bottom,position:{x:f.x,y:f.y}}})}return{graph:r,layout:s,previousDirection:o}}const jg=[];for(let e=0;e<256;++e)jg.push((e+256).toString(16).slice(1));function i8s(e,t=0){return(jg[e[t+0]]+jg[e[t+1]]+jg[e[t+2]]+jg[e[t+3]]+"-"+jg[e[t+4]]+jg[e[t+5]]+"-"+jg[e[t+6]]+jg[e[t+7]]+"-"+jg[e[t+8]]+jg[e[t+9]]+"-"+jg[e[t+10]]+jg[e[t+11]]+jg[e[t+12]]+jg[e[t+13]]+jg[e[t+14]]+jg[e[t+15]]).toLowerCase()}let ORe;const r8s=new Uint8Array(16);function o8s(){if(!ORe){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ORe=crypto.getRandomValues.bind(crypto)}return ORe(r8s)}const s8s=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),xkn={randomUUID:s8s};function a8s(e,t,n){var o;e=e||{};const r=e.random??((o=e.rng)==null?void 0:o.call(e))??o8s();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,i8s(r)}function yRe(e,t,n){return xkn.randomUUID&&!e?xkn.randomUUID():a8s(e)}const l8s={class:"closure"},c8s={class:"ac",style:{gap:"8px"}},d8s=Je({__name:"index",props:Fc({flowData:{default:()=>({resultImages:[],referanceImages:[]})},type:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["save"],["update:modelValue"]),setup(e,{emit:t}){const n=bt("episodesId"),{project:r}=xs(ph()),o=fe(!1);let s=null;Yi("openStoryboardCheck",O);const{toObject:a,fromObject:l,fitView:d}=nl("editImage"),{layout:u}=eqn("editImage"),h=e,g=t,m=Pf(e,"modelValue"),{addEdges:v,getNodes:f,getEdges:k,updateNodeData:A}=nl("editImage"),p=fe([]),b=fe([]);let w=null;function O(){return o.value=!0,new Promise(R=>{s=R})}function y(R){o.value=!1,s==null||s(R),s=null}function C(){o.value=!1,s==null||s([]),s=null}function _(){w&&clearTimeout(w),w=setTimeout(S,60)}function S(){const R=f.value,I=k.value,F=new Map(R.map(W=>[W.id,W])),j=new Map;for(const W of I){const H=j.get(W.target);H?H.push(W.source):j.set(W.target,[W.source])}for(const W of R){if(W.type!=="generated")continue;const $=(j.get(W.id)??[]).map(re=>F.get(re)).filter(re=>!!re).map(re=>re.type==="upload"?{image:re.data.image||""}:re.type==="generated"?{image:re.data.generatedImage||""}:{image:""}).filter(re=>re.image),G=W.data.references??[];G.length===$.length&&$.every((re,J)=>{var oe;return((oe=G[J])==null?void 0:oe.image)===re.image})||A(W.id,{references:$})}}const L=R=>{R.source===R.target||k.value.some(F=>F.source===R.source&&F.target===R.target||F.source===R.target&&F.target===R.source)||(v([{id:yRe(),source:R.source,target:R.target,...hkn}]),ai(_))};function E(R){const I=R.value===1?"upload":"generated";T(I)}const T=(R,I="",F="")=>{const j=yRe(),W=p.value.filter(G=>G.type===R).pop(),H=W?W.position.y+350:100,$=R==="generated"?600:100;return p.value.push({id:j,type:R,position:{x:$,y:H},data:R==="generated"?Jys(I,F):{image:I}}),j};async function D(R){try{const I={nodes:fkn(f.value),edges:gkn(k.value)};if(h.flowData.flowId)await mn.post("/production/editImage/updateImageFlow",{...I,flowId:h.flowData.flowId}),g("save",{imageUrl:R,flowId:h.flowData.flowId});else{const{data:F}=await mn.post("/production/editImage/saveImageFlow",{...I});g("save",{imageUrl:R,flowId:F==null?void 0:F.id})}m.value=!1}catch(I){window.$message.error(I.message||$t("workbench.production.editImage.saveFailed"))}}const P=fe({imageModel:"",imageQuality:""});An(async()=>{try{const{data:R}=await mn.post("/production/editImage/getImageDefaultModle",{projectId:r.value.id});if(R&&(P.value=R),console.log("%c Line:268 🥔 props.flowData.flowId","background:#33a5ff",h.flowData.flowId),!h.flowData.flowId)return Q();const{data:I}=await mn.post("/production/editImage/getImageFlow",{id:h.flowData.flowId});if(!I)return Q();b.value=I.edges,p.value=I.nodes}catch(R){window.$message.error(R.message||$t("workbench.production.editImage.fetchFailed"))}});function Q(){const R=[],I=[];h.flowData.referanceImages.forEach(F=>{R.push(T("upload",F))}),h.flowData.resultImages.forEach(F=>{I.push(T("generated",F.src,F.prompt))});for(const F of R)for(const j of I)b.value.push({id:yRe(),source:F,target:j,...hkn});ai(_)}function M(){const R=fo.confirm({header:$t("workbench.production.editImage.closeConfirmTitle"),body:$t("workbench.production.editImage.closeConfirmBody"),confirmBtn:$t("common.confirm"),cancelBtn:$t("common.cancel"),onConfirm:()=>{if(h.flowData.flowId){const I={flowId:h.flowData.flowId,nodes:fkn(f.value),edges:gkn(k.value)};mn.post("/production/editImage/updateImageFlow",{...I})}m.value=!1,R.destroy()}})}async function B(R){const I=a();I.nodes=u(I.nodes,I.edges,R),await l(I),await ai(),d({duration:300})}return(R,I)=>{const F=_n("i-close-small"),j=_n("i-plus"),W=Si,H=Rne,$=_n("i-tree-diagram"),G=el,q=gc;return xe(),Ut(q,{footer:!1,header:!1,closeBtn:!1,visible:m.value,"onUpdate:visible":I[4]||(I[4]=re=>m.value=re),attach:"body",placement:"center",mode:"full-screen",class:"fullscreenDialog"},{default:Oe(()=>[ge("div",l8s,[c(F,{theme:"outline",size:"24",fill:"#4a4a4a",onClick:M})]),c(Ae(wZn),{id:"editImage",class:"editImage",nodes:Ae(p),"onUpdate:nodes":I[1]||(I[1]=re=>Fn(p)?p.value=re:null),edges:Ae(b),"onUpdate:edges":I[2]||(I[2]=re=>Fn(b)?b.value=re:null),"min-zoom":.01,"fit-view-on-init":"",onConnect:L,onEdgesChange:_},{"node-upload":Oe(({id:re,data:J})=>[c(zys,{id:re,data:J,onUpload:_,onKeep:D},null,8,["id","data"])]),"node-generated":Oe(({id:re,data:J})=>[c(kCs,{id:re,data:J,projectId:+Ae(r).id,imageDefaultModle:Ae(P),onKeep:D},null,8,["id","data","projectId","imageDefaultModle"])]),"edge-removeLine":Oe(re=>[c(DCs,Qx(D_(re)),null,16)]),default:Oe(()=>[c(Ae(_Zn)),c(Ae(SZn)),c(Ae(OZn),{position:"top-left"},{default:Oe(()=>[ge("div",c8s,[c(H,{options:[{content:R.$t("workbench.production.editImage.upload"),value:1},{content:R.$t("workbench.production.editImage.generate"),value:2}],onClick:E},{default:Oe(()=>[c(W,{theme:"primary",shape:"circle"},{icon:Oe(()=>[c(j)]),_:1})]),_:1},8,["options"]),c(G,{theme:"primary",content:R.$t("workbench.production.autoLayoutLR")},{default:Oe(()=>[c(W,{class:"guide-layout-btn",onClick:I[0]||(I[0]=re=>B("LR")),variant:"outline",shape:"circle"},{icon:Oe(()=>[c($)]),_:1})]),_:1},8,["content"])])]),_:1})]),_:1},8,["nodes","edges"]),c(ECs,{telepor:"",modelValue:Ae(o),"onUpdate:modelValue":I[3]||(I[3]=re=>Fn(o)?o.value=re:null),scriptId:Ae(n),onConfirm:y,onCancel:C},null,8,["modelValue","scriptId"])]),_:1},8,["visible"])}}}),tqn=oo(d8s,[["__scopeId","data-v-dc3fbf5a"]]),Ekn={script:"script",scriptPlan:"scriptPlan",assets:"assets",storyboardTable:"storyboardTable",storyboard:"storyboard",workbench:"workbench"},cG={stroke:"#00000",strokeWidth:4};function u8s(e,t){const n=X(()=>{const o=e.value,s=t.value,a=Ekn;return[{id:a.script,type:"script",dragHandle:".dragHandle",position:s[a.script]||{x:0,y:0},data:{script:o.script,handleIds:{assets:`${a.script}-assets`,source:`${a.script}-source`}}},{id:a.scriptPlan,type:"scriptPlan",dragHandle:".dragHandle",position:s[a.scriptPlan]||{x:0,y:0},data:{scriptPlan:o.scriptPlan,handleIds:{target:`${a.scriptPlan}-target`,source:`${a.scriptPlan}-source`}}},{id:a.assets,type:"assets",dragHandle:".dragHandle",position:s[a.assets]||{x:0,y:0},data:{assets:o.assets,handleIds:{target:`${a.assets}-target`}}},{id:a.storyboardTable,type:"storyboardTable",dragHandle:".dragHandle",position:s[a.storyboardTable]||{x:0,y:0},data:{storyboardTable:o.storyboardTable,handleIds:{target:`${a.storyboardTable}-target`,source:`${a.storyboardTable}-source`}}},{id:a.storyboard,type:"storyboard",dragHandle:".dragHandle",position:s[a.storyboard]||{x:0,y:0},data:{storyboard:o.storyboard,handleIds:{target:`${a.storyboard}-target`,source:`${a.storyboard}-source`}}},{id:a.workbench,type:"workbench",dragHandle:".dragHandle",position:s[a.workbench]||{x:0,y:0},data:{...o.workbench,handleIds:{target:`${a.workbench}-target`,source:`${a.workbench}-source`}}}]}),r=X(()=>{const o=Ekn;return[{id:`${o.script}-${o.assets}`,source:o.script,target:o.assets,sourceHandle:`${o.script}-assets`,targetHandle:`${o.assets}-target`,animated:!1,style:cG},{id:`${o.script}-${o.scriptPlan}`,source:o.script,target:o.scriptPlan,sourceHandle:`${o.script}-source`,targetHandle:`${o.scriptPlan}-target`,animated:!1,style:cG},{id:`${o.scriptPlan}-${o.storyboardTable}`,source:o.scriptPlan,target:o.storyboardTable,sourceHandle:`${o.scriptPlan}-source`,targetHandle:`${o.storyboardTable}-target`,animated:!1,style:cG},{id:`${o.storyboardTable}-${o.storyboard}`,source:o.storyboardTable,target:o.storyboard,sourceHandle:`${o.storyboardTable}-source`,targetHandle:`${o.storyboard}-target`,animated:!1,style:cG},{id:`${o.storyboard}-${o.workbench}`,source:o.storyboard,target:o.workbench,sourceHandle:`${o.storyboard}-source`,targetHandle:`${o.workbench}-target`,animated:!1,style:cG}]});return{nodes:n,edges:r}}const h8s={class:"titleBar dragHandle"},f8s={class:"title"},g8s={class:"content"},m8s={class:"cardGrid"},k8s={key:0,class:"assetImageWrap"},v8s={class:"imageToolsWrap show"},A8s={key:1,class:"assetImageWrap assetImagePlaceholder"},p8s={key:1,style:{color:"red"}},b8s={class:"cardInfo"},w8s={class:"cardName"},O8s={class:"nameText"},y8s={class:"cardDesc"},C8s={class:"divider"},_8s={class:"deriveAssets"},S8s={key:0,class:"assetImageWrap"},L8s={class:"imageToolsWrap show"},x8s={key:1,class:"assetImageWrap assetImagePlaceholder"},E8s={style:{color:"red",cursor:"pointer"}},T8s=["onClick"],Q8s={class:"cardInfo"},D8s={class:"cardName"},B8s={class:"nameText"},R8s={class:"cardDesc"},I8s=Je({__name:"assets",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const{project:t}=xs(ph()),n=e,r=Pf(e,"modelValue"),o=fe({resultImages:[],referanceImages:[]}),s=fe(!1),a=fe();function l(h,g){o.value={flowId:h==null?void 0:h.flowId,resultImages:[{src:h.src,prompt:h.prompt}],referanceImages:[g]},a.value=h.id,s.value=!0}async function d({imageUrl:h,flowId:g}){if(h){for(const m of r.value){const v=m.derive.find(f=>f.id===a.value);if(v){v.src=h,v.flowId=g;break}}await mn.post("/production/assets/updateAssetsUrl",{id:a.value,url:h,flowId:g})}}async function u(h){const g=fo.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.production.node.assets.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{var m;try{await mn.post("/production/assets/deleteAssetsDireve",{id:h,projectId:(m=t.value)==null?void 0:m.id}),r.value.forEach(v=>{const f=v.derive.findIndex(k=>k.id===h);f!==-1&&v.derive.splice(f,1)})}catch(v){window.$message.error((v==null?void 0:v.message)||$t("workbench.production.node.assets.removeFailed"))}finally{g.destroy()}}})}return(h,g)=>{const m=jre,v=Zh,f=Wc,k=Xy,A=Sg,p=km,b=_n("i-right"),w=el,O=_n("i-delete");return xe(),Ut(p,{class:"assets"},{default:Oe(()=>[c(Ae(mm),{id:n.handleIds.target,type:"target",position:Ae(Vi).Top},null,8,["id","position"]),ge("div",h8s,[ge("div",f8s,Pe(h.$t("workbench.production.node.assets.title")),1)]),ge("div",g8s,[ge("div",m8s,[(xe(!0),Ge(sn,null,Bi(r.value,y=>(xe(),Ge("div",{key:y.id,class:"assetItemBox"},[c(p,{class:"assetCard"},{default:Oe(()=>[y.src?(xe(),Ge("div",k8s,[c(v,{src:y.src,fit:"contain",class:"assetImage",preview:!0},{overlayContent:Oe(()=>[ge("div",v8s,[c(m,{src:y.src,position:"br"},null,8,["src"])])]),_:2},1032,["src"])])):(xe(),Ge("div",A8s,[y.state=="生成中"?(xe(),Ut(f,{key:0,size:"small"})):y.state=="生成失败"?(xe(),Ge("span",p8s,Pe(h.$t("workbench.production.node.assets.generateFailed")),1)):(xe(),Ut(k,{key:2,size:"small",title:h.$t("workbench.production.node.assets.notGenerated")},null,8,["title"]))])),ge("div",b8s,[ge("div",w8s,[ge("span",O8s,Pe(y.name),1),c(A,{theme:"success"},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.node.assets.originalAsset")),1)]),_:1})]),ge("div",y8s,Pe(y.desc),1)])]),_:2},1024),ge("div",C8s,[c(b,{size:"32"})]),ge("div",_8s,[(xe(!0),Ge(sn,null,Bi(y.derive,(C,_)=>(xe(),Ut(p,{key:_,class:"assetCard",onClick:S=>l(C,y.src)},{default:Oe(()=>[C.src&&C.state=="已完成"?(xe(),Ge("div",S8s,[c(v,{src:C.src,fit:"contain",class:"assetImage",preview:!0},{overlayContent:Oe(()=>[ge("div",L8s,[c(m,{src:C.src,position:"br"},null,8,["src"])])]),_:2},1032,["src"])])):(xe(),Ge("div",x8s,[C.state=="生成中"?(xe(),Ut(f,{key:0,size:"small"})):C.state=="生成失败"?(xe(),Ut(w,{key:1,content:C==null?void 0:C.errorReason},{default:Oe(()=>[ge("div",E8s,Pe(h.$t("workbench.novel.genFailed")),1)]),_:1},8,["content"])):(xe(),Ut(k,{key:2,size:"small",title:h.$t("workbench.production.node.assets.notGenerated")},null,8,["title"]))])),c(w,{theme:"primary",content:h.$t("workbench.production.node.storyboard.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",onClick:Mr(S=>u(C.id),["stop"])},[c(O,{theme:"outline",size:"18",fill:"#fff"})],8,T8s)]),_:2},1032,["content"]),ge("div",Q8s,[ge("div",D8s,[ge("span",B8s,Pe(C.name),1),c(A,{theme:"warning"},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.node.assets.derived")),1)]),_:1})]),ge("div",R8s,Pe(C.desc),1)])]),_:2},1032,["onClick"]))),128)),y.derive.length<=0?(xe(),Ut(p,{key:0,class:"assetCard emptyCard"},{default:Oe(()=>[c(k,{title:h.$t("workbench.production.node.assets.noDerivedAssets")},null,8,["title"])]),_:1})):nn("",!0)])]))),128))])]),Ae(s)?(xe(),Ut(tqn,{key:0,modelValue:Ae(s),"onUpdate:modelValue":g[0]||(g[0]=y=>Fn(s)?s.value=y:null),flowData:Ae(o),onSave:d},null,8,["modelValue","flowData"])):nn("",!0)]),_:1})}}}),M8s=oo(I8s,[["__scopeId","data-v-d4a8f944"]]),P8s={class:"titleBar dragHandle pr"},F8s={class:"title c"},N8s={class:"storyboardList"},U8s=Je({__name:"storyboardTable",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(""),o=fe(!1),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];function a(){r.value=n.value??"",o.value=!0}function l(){n.value=r.value,o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=Si,v=Xy,f=km,k=gc;return xe(),Ge(sn,null,[c(f,{class:"storyboardTable"},{default:Oe(()=>[ge("div",P8s,[ge("div",F8s,Pe(h.$t("workbench.production.node.storyboardTable.title")),1),c(m,{size:"small",variant:"text",onClick:a},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.edit")),1)]),_:1}),c(Ae(mm),{id:t.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"]),c(Ae(mm),{id:t.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",N8s,[n.value?(xe(),Ut(Ae(i3),{key:1,modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=A=>n.value=A),theme:"light"},null,8,["modelValue"])):(xe(),Ut(v,{key:0,style:{"margin-top":"16px"}}))])]),_:1}),c(k,{visible:o.value,"onUpdate:visible":g[3]||(g[3]=A=>o.value=A),header:h.$t("workbench.production.node.storyboardTable.editDialog"),width:"90vw","confirm-btn":h.$t("workbench.production.save"),"cancel-btn":h.$t("workbench.production.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:r.value,"onUpdate:modelValue":g[1]||(g[1]=A=>r.value=A),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[2]||(g[2]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])],64)}}}),j8s=oo(U8s,[["__scopeId","data-v-1ef204e0"]]),W8s={class:"titleBar dragHandle pr"},V8s={class:"title"},z8s={class:"content"},H8s={class:"frameGrid"},$8s=["onMouseenter"],X8s=["onClick"],G8s={class:"frameCard"},Y8s={class:"imageToolsWrap show"},Z8s=["onClick"],q8s=["onClick"],K8s=["onClick"],J8s=["onClick"],eLs={class:"scaleControl"},tLs={class:"ac",style:{gap:"10px"}},nLs=Je({__name:"storyboard",props:Fc({id:{},handleIds:{},assetsData:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const{project:t}=xs(ph()),{episodesId:n}=xs(g0()),r=e,o=Pf(e,"modelValue"),s=fe(!1),a=fe(!1),l=fe([]),d=q4e("storyboardGridScale",1),u=fe(null);function h(C){u.value=C}const g=fe({flowId:null,resultImages:[],referanceImages:[]}),m=["#5bccb3","#9c7cfc","#fbbf24","#5b9afc","#e86b6b","#7cb8fc","#e8a855","#34d399"];function v(){l.value=[]}async function f(){Wh(!0);const C=(o.value??[]).filter(_=>_.src).map(_=>_.id);if(!C.length){window.$message.warning($t("workbench.production.node.storyboard.noPreviewImages")),Wh(!1);return}try{const _=await mn.post("/production/storyboard/downPreviewImage",{storyboardIds:C},{responseType:"blob"}),S=URL.createObjectURL(_),L=document.createElement("a");L.href=S,L.download=`storyboardImagePreview-${Date.now()}.png`,L.click(),URL.revokeObjectURL(S)}catch{window.$message.error($t("workbench.production.node.storyboard.imageLoadFailed"))}finally{Wh(!1)}}async function k(){var _;Wh(!0);const C=(o.value??[]).filter(S=>S.src).map(S=>S.id);if(!C.length){window.$message.warning($t("workbench.production.node.storyboard.noPreviewImages")),Wh(!1);return}try{const{data:S}=await mn.post("/production/storyboard/previewImage",{storyboardIds:C,projectId:(_=t.value)==null?void 0:_.id});l.value=[S],a.value=!0}catch{window.$message.error($t("workbench.production.node.storyboard.imageLoadFailed"))}finally{Wh(!1)}}const A=fe({id:null,insertAfterIndex:null}),p=X(()=>{if(d.value<=1)return d.value});function b(C,_,S=null){var L;if(A.value={id:S==null?C==null?void 0:C.id:null,insertAfterIndex:S},g.value={flowId:(C==null?void 0:C.flowId)??null,resultImages:[],referanceImages:[]},A.value.id){let E=[];if(C.associateAssetsIds&&C.associateAssetsIds.length>0){const T=[];for(const D of r.assetsData)C.associateAssetsIds.includes(D.id)&&D.src&&T.push(D.src),(L=D.derive)==null||L.forEach(P=>{C!=null&&C.associateAssetsIds.includes(P.id)&&P.src&&T.push(P.src)});E=E.concat(T)}g.value.referanceImages=E,g.value.resultImages=[{src:_.length?_[0]:"",prompt:C.prompt??""}]}else g.value.referanceImages=_.filter(Boolean);s.value=!0}async function w({imageUrl:C,flowId:_}){var T;if(!C)return;const{id:S,insertAfterIndex:L}=A.value;if(S===null&&L!==null){const D={duration:0,prompt:"",src:C,videoDesc:"",shouldGenerateImage:1,state:"已完成"},{data:P}=await mn.post("/production/storyboard/addStoryboard",{...D,projectId:(T=t.value)==null?void 0:T.id,scriptId:n.value,flowId:_});o.value.splice(L+1,0,{...D,id:P.id,flowId:_}),g0().setFlowData();return}const E=o.value.find(D=>D.id===S);E&&(E.src=C,E.state="已完成",E.flowId=_),await mn.post("/production/storyboard/updateStoryboardUrl",{id:S,url:C,flowId:_})}async function O(C){const _=fo.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.production.node.storyboard.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{var S;if(!C){const L=o.value.findIndex(E=>E.id===C);L!==-1&&o.value.splice(L,1),_.destroy();return}try{await mn.post("/production/storyboard/removeFrame",{id:C,projectId:(S=t.value)==null?void 0:S.id});const L=o.value.findIndex(E=>E.id===C);L!==-1&&o.value.splice(L,1)}catch(L){window.$message.error((L==null?void 0:L.message)||$t("workbench.production.node.storyboard.removeFailed"))}finally{_.destroy()}}})}function y(C){const _=hs({prompt:C.prompt??"",videoDesc:(C==null?void 0:C.videoDesc)??""}),S=()=>xn("div",{class:"editInfoForm"},[xn("div",{class:"editInfoField"},[xn("label",{class:"editInfoLabel"},$t("workbench.production.node.storyboard.prompt")),xn(c2,{value:_.prompt,placeholder:$t("workbench.production.node.storyboard.promptPlaceholder"),autosize:{minRows:3,maxRows:6},"onUpdate:value":E=>_.prompt=E})]),xn("div",{class:"editInfoField"},[xn("label",{class:"editInfoLabel"},$t("workbench.production.node.storyboard.videoDesc")),xn(c2,{value:_.videoDesc,placeholder:$t("workbench.production.node.storyboard.videoDescPlaceholder"),autosize:{minRows:3,maxRows:6},"onUpdate:value":E=>_.videoDesc=E})])]),L=fo.confirm({header:$t("workbench.production.node.storyboard.editInfo"),body:S,width:480,confirmBtn:{content:$t("common.submit"),theme:"primary",loading:!1},onConfirm:async()=>{L.update({confirmBtn:{content:$t("common.submitting"),loading:!0}});try{await mn.post("/production/storyboard/editStoryboardInfo",{id:C.id,prompt:_.prompt,videoDesc:_.videoDesc}),C.prompt=_.prompt,C.videoDesc=_.videoDesc,window.$message.success($t("common.editSuccess"))}catch(E){window.$message.error((E==null?void 0:E.message)||$t("common.editFailed"))}finally{L.update({confirmBtn:{content:$t("common.submit"),loading:!1}}),L.destroy()}}})}return(C,_)=>{const S=Xy,L=_n("i-plus"),E=Si,T=Sg,D=jre,P=Zh,Q=Wc,M=el,B=_n("i-delete"),R=_n("i-edit"),I=Lz,F=hL,j=km;return xe(),Ut(j,{class:"storyboard"},{default:Oe(()=>[ge("div",W8s,[ge("div",V8s,Pe(C.$t("workbench.production.node.storyboard.title")),1),c(Ae(mm),{id:r.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"]),c(Ae(mm),{id:r.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",z8s,[o.value.length?nn("",!0):(xe(),Ut(S,{key:0,style:{"margin-top":"16px"}})),ge("div",H8s,[(xe(!0),Ge(sn,null,Bi(o.value,(W,H)=>(xe(),Ge("div",{key:W.id,class:"frameItem",onMouseenter:$=>h(H),onMouseleave:_[0]||(_[0]=$=>h(null))},[ge("div",{class:Eo(["addBetween addBetween--left",{expanded:Ae(u)===H}]),onClick:Mr($=>{var G;return b(W,[H>0&&((G=o.value[H-1])==null?void 0:G.src)||"",W.src||""],H-1)},["stop"])},[c(E,{theme:"primary",variant:"outline",shape:"circle"},{icon:Oe(()=>[c(L)]),_:1})],10,X8s),ge("div",G8s,[ge("div",{class:"frameImage",style:no({width:`${200*Ae(d)}px`,height:`${200*Ae(d)}px`})},[c(T,{class:"frameTypeTag",style:no({backgroundColor:m[H%m.length],transform:`scale(${Ae(p)})`})},{default:Oe(()=>[Bt(" S"+Pe(String(H+1).padStart(2,"0")),1)]),_:2},1032,["style"]),W.src&&W.state=="已完成"?(xe(),Ut(P,{key:0,src:W.src,fit:"contain",class:"frameImg",onClick:$=>b(W,[W.src])},{overlayContent:Oe(()=>[ge("div",Y8s,[c(D,{style:no({transform:`scale(${Ae(p)})`}),src:W.src,position:"br"},null,8,["style","src"])])]),_:2},1032,["src","onClick"])):(xe(),Ge("div",{key:1,class:"generatingPlaceholder",onClick:$=>b(W,[])},[W.state==="生成中"?(xe(),Ut(Q,{key:0,size:"small"})):W.state=="生成失败"?(xe(),Ut(M,{key:1,content:W==null?void 0:W.reason},{default:Oe(()=>[..._[4]||(_[4]=[ge("span",{style:{color:"#ff4d4f"}},"生成失败",-1)])]),_:1},8,["content"])):(xe(),Ut(S,{key:2,size:"small",title:C.$t("workbench.production.node.storyboard.notGenerated")},null,8,["title"]))],8,Z8s)),c(M,{theme:"primary",content:C.$t("workbench.production.node.storyboard.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",style:no({transform:`scale(${Ae(p)})`}),onClick:Mr($=>O(W.id),["stop"])},[c(B,{theme:"outline",size:"18",fill:"#fff"})],12,q8s)]),_:2},1032,["content"]),c(M,{theme:"primary",content:C.$t("workbench.production.node.storyboard.editNode")},{default:Oe(()=>[ge("div",{class:"editNode ac",style:no({transform:`scale(${Ae(p)})`}),onClick:Mr($=>y(W),["stop"])},[c(R,{theme:"outline",size:"18",fill:"#fff"})],12,K8s)]),_:2},1032,["content"])],4)]),ge("div",{class:Eo(["addBetween addBetween--right",{expanded:Ae(u)===H}]),onClick:Mr($=>{var G,q;return b(W,[W.src||"",H<(((G=o.value)==null?void 0:G.length)??0)-1&&((q=o.value[H+1])==null?void 0:q.src)||""],H)},["stop"])},[c(E,{theme:"primary",variant:"outline",shape:"circle"},{icon:Oe(()=>[c(L)]),_:1})],10,J8s)],40,$8s))),128))]),ge("div",eLs,[ge("span",null,Pe(C.$t("workbench.production.node.storyboard.scaleRatio")),1),c(I,{modelValue:Ae(d),"onUpdate:modelValue":_[1]||(_[1]=W=>Fn(d)?d.value=W:null),min:.1,max:3,step:.1,"decimal-places":1,size:"small",style:{width:"120px"}},null,8,["modelValue"])]),ge("div",tLs,[c(E,{block:"",onClick:k,disabled:!o.value.length},{default:Oe(()=>[Bt(Pe(C.$t("workbench.production.node.storyboard.gridPreview")),1)]),_:1},8,["disabled"])])]),Ae(s)?(xe(),Ut(tqn,{key:0,modelValue:Ae(s),"onUpdate:modelValue":_[2]||(_[2]=W=>Fn(s)?s.value=W:null),flowData:Ae(g),type:"storyboard",onSave:w},null,8,["modelValue","flowData"])):nn("",!0),c(F,{visible:Ae(a),"onUpdate:visible":_[3]||(_[3]=W=>Fn(a)?a.value=W:null),images:Ae(l),onClose:v,onDownload:f,imageScale:{max:10,min:.1}},null,8,["visible","images"])]),_:1})}}}),iLs=oo(nLs,[["__scopeId","data-v-122b9e8f"]]);var rLs=Object.defineProperty,G2e=Object.getOwnPropertySymbols,nqn=Object.prototype.hasOwnProperty,iqn=Object.prototype.propertyIsEnumerable,Tkn=(e,t,n)=>t in e?rLs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,UN=(e,t)=>{for(var n in t||(t={}))nqn.call(t,n)&&Tkn(e,n,t[n]);if(G2e)for(var n of G2e(t))iqn.call(t,n)&&Tkn(e,n,t[n]);return e},rqn=(e,t)=>{var n={};for(var r in e)nqn.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&G2e)for(var r of G2e(e))t.indexOf(r)<0&&iqn.call(e,r)&&(n[r]=e[r]);return n};const oqn="[vue-draggable-plus]: ";function oLs(e){console.warn(oqn+e)}function sLs(e){console.error(oqn+e)}function Qkn(e,t,n){return n>=0&&nn?n.toUpperCase():"")}function lLs(e){return Object.keys(e).reduce((t,n)=>(typeof e[n]<"u"&&(t[aLs(n)]=e[n]),t),{})}function Dkn(e,t){return Array.isArray(e)&&e.splice(t,1),e}function Bkn(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function cLs(e){return typeof e>"u"}function dLs(e){return typeof e=="string"}function Rkn(e,t,n){const r=e.children[n];e.insertBefore(t,r)}function CRe(e){e.parentNode&&e.parentNode.removeChild(e)}function uLs(e,t=document){var n;let r=null;return typeof(t==null?void 0:t.querySelector)=="function"?r=(n=t==null?void 0:t.querySelector)==null?void 0:n.call(t,e):r=document.querySelector(e),r||oLs(`Element not found: ${e}`),r}function hLs(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function fLs(e,t){const n=UN({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=hLs(e[r],t[r]):n[r]=t[r]}),n}function gLs(e){return e instanceof HTMLElement}function Ikn(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function mLs(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}const kLs=Object.assign;/**! +Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Lf extends Error{constructor(t,...n){var r;super((r=ekn[t])==null?void 0:r.call(ekn,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function Hst(e){return"clientX"in e}function X3s(e){return"sourceEvent"in e}function QO(e,t){const n=Hst(e);let r,o;return n?(r=e.clientX,o=e.clientY):"touches"in e&&e.touches.length>0?(r=e.touches[0].clientX,o=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(r=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY):(r=0,o=0),{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}}const z2e=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function G3s(e){var t,n;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((n=e.dimensions)==null?void 0:n.height)??e.height??0}}function HOe(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const Y3s=()=>!0;function uRe(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function Z3s(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())V2e(o,W2e(s))>0&&r.push(s);return r}const q3s=250;function K3s(e,t,n,r){var o,s;let a=[],l=Number.POSITIVE_INFINITY;const d=Z3s(e,n,t+q3s);for(const u of d){const h=[...((o=u.handleBounds)==null?void 0:o.source)??[],...((s=u.handleBounds)==null?void 0:s.target)??[]];for(const g of h){if(r.nodeId===g.nodeId&&r.type===g.type&&r.id===g.id)continue;const{x:m,y:v}=lz(u,g,g.position,!0),f=Math.sqrt((m-e.x)**2+(v-e.y)**2);f>t||(f1){const u=r.type==="source"?"target":"source";return a.find(h=>h.type===u)??a[0]}return a[0]}function tkn(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:s,doc:a,lib:l,flowId:d,isValidConnection:u=Y3s},h,g,m,v){const f=s==="target",k=t?a.querySelector(`.${l}-flow__handle[data-id="${d}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:A,y:p}=QO(e),b=a.elementFromPoint(A,p),w=b!=null&&b.classList.contains(`${l}-flow__handle`)?b:k,O={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const y=aZn(void 0,w),C=w.getAttribute("data-nodeid"),_=w.getAttribute("data-handleid"),S=w.classList.contains("connectable"),L=w.classList.contains("connectableend");if(!C||!y)return O;const E={source:f?C:r,sourceHandle:f?_:o,target:f?r:C,targetHandle:f?o:_};O.connection=E;const D=S&&L&&(n===H6.Strict?f&&y==="source"||!f&&y==="target":C!==r||_!==o);O.isValid=D&&u(E,{nodes:g,edges:h,sourceNode:m(E.source),targetNode:m(E.target)}),O.toHandle=lZn(C,y,_,v,n,!0)}return O}function aZn(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function J3s(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function ews(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}function lZn(e,t,n,r,o,s=!1){var a,l,d;const u=r.get(e);if(!u)return null;const h=o===H6.Strict?(a=u.handleBounds)==null?void 0:a[t]:[...((l=u.handleBounds)==null?void 0:l.source)??[],...((d=u.handleBounds)==null?void 0:d.target)??[]],g=(n?h==null?void 0:h.find(m=>m.id===n):h==null?void 0:h[0])??null;return g&&s?{...g,...lz(u,g,g.position,!0)}:g}const UGe={[Vi.Left]:Vi.Right,[Vi.Right]:Vi.Left,[Vi.Top]:Vi.Bottom,[Vi.Bottom]:Vi.Top},tws=["production","prod"];function zre(e,...t){cZn()&&console.warn(`[Vue Flow]: ${e}`,...t)}function cZn(){return!tws.includes("production")}function nkn(e,t,n,r,o){const s=t.querySelectorAll(`.vue-flow__handle.${e}`);return s!=null&&s.length?Array.from(s).map(a=>{const l=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:o,position:a.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...zOe(a)}}):null}function jGe(e,t,n,r,o,s=!1,a){o.value=!1,e.selected?(s||e.selected&&t)&&(r([e]),ai(()=>{a.blur()})):n([e])}function Nh(e){return typeof Ae(e)<"u"}function nws(e,t,n,r){if(!e||!e.source||!e.target)return n(new Lf(Yh.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let o;return $6(e)?o=e:o={...e,id:JYn(e)},o=qYn(o,void 0,r),I3s(o,t)?!1:o}function iws(e,t,n,r,o){if(!t.source||!t.target)return o(new Lf(Yh.EDGE_INVALID,e.id)),!1;if(!n)return o(new Lf(Yh.EDGE_NOT_FOUND,e.id)),!1;const{id:s,...a}=e;return{...a,id:r?JYn(t):s,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function ikn(e,t,n){const r={},o=[];for(let s=0;sl.id===s.parentNode);s.parentNode&&!a&&n(new Lf(Yh.NODE_MISSING_PARENT,s.id,s.parentNode)),(s.parentNode||r[s.id])&&(r[s.id]&&(s.isParent=!0),a&&(a.isParent=!0))}return o}function rkn(e,t,n,r,o,s){let a=o;const l=r.get(a)||new Map;r.set(a,l.set(n,t)),a=`${o}-${e}`;const d=r.get(a)||new Map;if(r.set(a,d.set(n,t)),s){a=`${o}-${e}-${s}`;const u=r.get(a)||new Map;r.set(a,u.set(n,t))}}function hRe(e,t,n){e.clear();for(const r of n){const{source:o,target:s,sourceHandle:a=null,targetHandle:l=null}=r,d={edgeId:r.id,source:o,target:s,sourceHandle:a,targetHandle:l},u=`${o}-${a}--${s}-${l}`,h=`${s}-${l}--${o}-${a}`;rkn("source",d,h,e,o,a),rkn("target",d,u,e,s,l)}}function okn(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function fRe(e,t,n,r,o,s,a,l){const d=[];for(const u of e){const h=$6(u)?u:nws(u,l,o,s);if(!h)continue;const g=n(h.source),m=n(h.target);if(!g||!m){o(new Lf(Yh.EDGE_SOURCE_TARGET_MISSING,h.id,h.source,h.target));continue}if(!g){o(new Lf(Yh.EDGE_SOURCE_MISSING,h.id,h.source));continue}if(!m){o(new Lf(Yh.EDGE_TARGET_MISSING,h.id,h.target));continue}if(t&&!t(h,{edges:l,nodes:a,sourceNode:g,targetNode:m})){o(new Lf(Yh.EDGE_INVALID,h.id));continue}const v=r(h.id);d.push({...qYn(h,v,s),sourceNode:g,targetNode:m})}return d}const skn=Symbol("vueFlow"),dZn=Symbol("nodeId"),uZn=Symbol("nodeRef"),rws=Symbol("edgeId"),ows=Symbol("edgeRef"),$Oe=Symbol("slots");function hZn(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:r,noDragClassName:o,nodeLookup:s,nodeExtent:a,nodeDragThreshold:l,viewport:d,autoPanOnNodeDrag:u,autoPanSpeed:h,nodesDraggable:g,panBy:m,findNode:v,multiSelectionActive:f,nodesSelectionActive:k,selectNodesOnDrag:A,removeSelectedElements:p,addSelectedNodes:b,updateNodePositions:w,emits:O}=nl(),{onStart:y,onDrag:C,onStop:_,onClick:S,el:L,disabled:E,id:T,selectable:D,dragHandle:P}=e,Q=nd(!1);let M=[],B,R=null,I={x:void 0,y:void 0},F={x:0,y:0},j=null,W=!1,H=!1,$=0,G=!1;const q=lws(),re=({x:ee,y:de})=>{I={x:ee,y:de};let z=!1;if(M=M.map(Y=>{const ie={x:ee-Y.distance.x,y:de-Y.distance.y},{computedPosition:te}=zst(Y,n.value?HOe(ie,r.value):ie,O.error,a.value,Y.parentNode?v(Y.parentNode):void 0);return z=z||Y.position.x!==te.x||Y.position.y!==te.y,Y.position=te,Y}),H=H||z,!!z&&(w(M,!0,!0),Q.value=!0,j)){const[Y,ie]=dRe({id:T,dragItems:M,findNode:v});C({event:j,node:Y,nodes:ie})}},J=()=>{if(!R)return;const[ee,de]=oZn(F,R,h.value);if(ee!==0||de!==0){const z={x:(I.x??0)-ee/d.value.zoom,y:(I.y??0)-de/d.value.zoom};m({x:ee,y:de})&&re(z)}$=requestAnimationFrame(J)},oe=(ee,de)=>{W=!0;const z=v(T);!A.value&&!f.value&&z&&(z.selected||p()),z&&Fo(D)&&A.value&&jGe(z,f.value,b,p,k,!1,de);const Y=q(ee.sourceEvent);if(I=Y,M=j3s(s.value,g.value,Y,T),M.length){const[ie,te]=dRe({id:T,dragItems:M,findNode:v});y({event:ee.sourceEvent,node:ie,nodes:te})}},se=(ee,de)=>{var z;ee.sourceEvent.type==="touchmove"&&ee.sourceEvent.touches.length>1||(H=!1,l.value===0&&oe(ee,de),I=q(ee.sourceEvent),R=((z=t.value)==null?void 0:z.getBoundingClientRect())||null,F=QO(ee.sourceEvent,R))},le=(ee,de)=>{const z=q(ee.sourceEvent);if(!G&&W&&u.value&&(G=!0,J()),!W){const Y=z.xSnapped-(I.x??0),ie=z.ySnapped-(I.y??0);Math.sqrt(Y*Y+ie*ie)>l.value&&oe(ee,de)}(I.x!==z.xSnapped||I.y!==z.ySnapped)&&M.length&&W&&(j=ee.sourceEvent,F=QO(ee.sourceEvent,R),re(z))},ue=ee=>{let de=!1;if(!W&&!Q.value&&!f.value){const z=ee.sourceEvent,Y=q(z),ie=Y.xSnapped-(I.x??0),te=Y.ySnapped-(I.y??0),Z=Math.sqrt(ie*ie+te*te);Z!==0&&Z<=l.value&&(S==null||S(z),de=!0)}if(M.length&&!de){H&&(w(M,!1,!1),H=!1);const[z,Y]=dRe({id:T,dragItems:M,findNode:v});_({event:ee.sourceEvent,node:z,nodes:Y})}M=[],Q.value=!1,G=!1,W=!1,I={x:void 0,y:void 0},cancelAnimationFrame($)};return pt([()=>Fo(E),L],([ee,de],z,Y)=>{if(de){const ie=$b(de);ee||(B=Qps().on("start",te=>se(te,de)).on("drag",te=>le(te,de)).on("end",te=>ue(te)).filter(te=>{const Z=te.target,he=Fo(P);return!te.button&&(!o.value||!K0n(Z,`.${o.value}`,de)&&(!he||K0n(Z,he,de)))}),ie.call(B)),Y(()=>{ie.on(".drag",null),B&&(B.on("start",null),B.on("drag",null),B.on("end",null))})}}),Q}function sws(){return{doubleClick:sr(),click:sr(),mouseEnter:sr(),mouseMove:sr(),mouseLeave:sr(),contextMenu:sr(),updateStart:sr(),update:sr(),updateEnd:sr()}}function aws(e,t){const n=sws();return n.doubleClick.on(r=>{var o,s;t.edgeDoubleClick(r),(s=(o=e.events)==null?void 0:o.doubleClick)==null||s.call(o,r)}),n.click.on(r=>{var o,s;t.edgeClick(r),(s=(o=e.events)==null?void 0:o.click)==null||s.call(o,r)}),n.mouseEnter.on(r=>{var o,s;t.edgeMouseEnter(r),(s=(o=e.events)==null?void 0:o.mouseEnter)==null||s.call(o,r)}),n.mouseMove.on(r=>{var o,s;t.edgeMouseMove(r),(s=(o=e.events)==null?void 0:o.mouseMove)==null||s.call(o,r)}),n.mouseLeave.on(r=>{var o,s;t.edgeMouseLeave(r),(s=(o=e.events)==null?void 0:o.mouseLeave)==null||s.call(o,r)}),n.contextMenu.on(r=>{var o,s;t.edgeContextMenu(r),(s=(o=e.events)==null?void 0:o.contextMenu)==null||s.call(o,r)}),n.updateStart.on(r=>{var o,s;t.edgeUpdateStart(r),(s=(o=e.events)==null?void 0:o.updateStart)==null||s.call(o,r)}),n.update.on(r=>{var o,s;t.edgeUpdate(r),(s=(o=e.events)==null?void 0:o.update)==null||s.call(o,r)}),n.updateEnd.on(r=>{var o,s;t.edgeUpdateEnd(r),(s=(o=e.events)==null?void 0:o.updateEnd)==null||s.call(o,r)}),Object.entries(n).reduce((r,[o,s])=>(r.emit[o]=s.trigger,r.on[o]=s.on,r),{emit:{},on:{}})}function lws(){const{viewport:e,snapGrid:t,snapToGrid:n,vueFlowRef:r}=nl();return o=>{var s;const a=((s=r.value)==null?void 0:s.getBoundingClientRect())??{left:0,top:0},l=X3s(o)?o.sourceEvent:o,{x:d,y:u}=QO(l,a),h=Rte({x:d,y:u},e.value),{x:g,y:m}=n.value?HOe(h,t.value):h;return{xSnapped:g,ySnapped:m,...h}}}function Mde(){return!0}function fZn({handleId:e,nodeId:t,type:n,isValidConnection:r,edgeUpdaterType:o,onEdgeUpdate:s,onEdgeUpdateEnd:a}){const{id:l,vueFlowRef:d,connectionMode:u,connectionRadius:h,connectOnClick:g,connectionClickStartHandle:m,nodesConnectable:v,autoPanOnConnect:f,autoPanSpeed:k,findNode:A,panBy:p,startConnection:b,updateConnection:w,endConnection:O,emits:y,viewport:C,edges:_,nodes:S,isValidConnection:L,nodeLookup:E}=nl();let T=null,D=!1,P=null;function Q(B){var R;const I=Fo(n)==="target",F=Hst(B),j=V0n(B.target),W=B.currentTarget;if(W&&(F&&B.button===0||!F)){let H=function(Qe){z=QO(Qe,ue),re=K3s(Rte(z,C.value,!1,[1,1]),h.value,E.value,te),Y||(ie(),Y=!0);const ke=tkn(Qe,{handle:re,connectionMode:u.value,fromNodeId:Fo(t),fromHandleId:Fo(e),fromType:I?"target":"source",isValidConnection:q,doc:j,lib:"vue",flowId:l,nodeLookup:E.value},_.value,S.value,A,E.value);P=ke.handleDomNode,T=ke.connection,D=ews(!!re,ke.isValid);const me={...Ce,isValid:D,to:ke.toHandle&&D?Bte({x:ke.toHandle.x,y:ke.toHandle.y},C.value):z,toHandle:ke.toHandle,toPosition:D&&ke.toHandle?ke.toHandle.position:UGe[te.position],toNode:ke.toHandle?E.value.get(ke.toHandle.nodeId):null};if(D&&re&&(Ce!=null&&Ce.toHandle)&&me.toHandle&&Ce.toHandle.type===me.toHandle.type&&Ce.toHandle.nodeId===me.toHandle.nodeId&&Ce.toHandle.id===me.toHandle.id&&Ce.to.x===me.to.x&&Ce.to.y===me.to.y)return;const _e=re??ke.toHandle;if(w(_e&&D?Bte({x:_e.x,y:_e.y},C.value):z,_e,J3s(!!_e,D)),Ce=me,!re&&!D&&!P)return uRe(de);T&&T.source!==T.target&&P&&(uRe(de),de=P,P.classList.add("connecting","vue-flow__handle-connecting"),P.classList.toggle("valid",!!D),P.classList.toggle("vue-flow__handle-valid",!!D))},$=function(Qe){"touches"in Qe&&Qe.touches.length>0||((re||P)&&T&&D&&(s?s(Qe,T):y.connect(T)),y.connectEnd(Qe),o&&(a==null||a(Qe)),uRe(de),cancelAnimationFrame(J),O(Qe),Y=!1,D=!1,T=null,P=null,j.removeEventListener("mousemove",H),j.removeEventListener("mouseup",$),j.removeEventListener("touchmove",H),j.removeEventListener("touchend",$))};const G=A(Fo(t));let q=Fo(r)||L.value||Mde;!q&&G&&(q=(I?G.isValidSourcePos:G.isValidTargetPos)||Mde);let re,J=0;const{x:oe,y:se}=QO(B),le=aZn(Fo(o),W),ue=(R=d.value)==null?void 0:R.getBoundingClientRect();if(!ue||!le)return;const ee=lZn(Fo(t),le,Fo(e),E.value,u.value);if(!ee)return;let de,z=QO(B,ue),Y=!1;const ie=()=>{if(!f.value)return;const[Qe,ke]=oZn(z,ue,k.value);p({x:Qe,y:ke}),J=requestAnimationFrame(ie)},te={...ee,nodeId:Fo(t),type:le,position:ee.position},Z=E.value.get(Fo(t)),pe={inProgress:!0,isValid:null,from:lz(Z,te,Vi.Left,!0),fromHandle:te,fromPosition:te.position,fromNode:Z,to:z,toHandle:null,toPosition:UGe[te.position],toNode:null};b({nodeId:Fo(t),id:Fo(e),type:le,position:(W==null?void 0:W.getAttribute("data-handlepos"))||Vi.Top,...z},{x:oe-ue.left,y:se-ue.top}),y.connectStart({event:B,nodeId:Fo(t),handleId:Fo(e),handleType:le});let Ce=pe;j.addEventListener("mousemove",H),j.addEventListener("mouseup",$),j.addEventListener("touchmove",H),j.addEventListener("touchend",$)}}function M(B){var R,I;if(!g.value)return;const F=Fo(n)==="target";if(!m.value){y.clickConnectStart({event:B,nodeId:Fo(t),handleId:Fo(e)}),b({nodeId:Fo(t),type:Fo(n),id:Fo(e),position:Vi.Top,...QO(B)},void 0,!0);return}let j=Fo(r)||L.value||Mde;const W=A(Fo(t));if(!j&&W&&(j=(F?W.isValidSourcePos:W.isValidTargetPos)||Mde),W&&(typeof W.connectable>"u"?v.value:W.connectable)===!1)return;const H=V0n(B.target),$=tkn(B,{handle:{nodeId:Fo(t),id:Fo(e),type:Fo(n),position:Vi.Top,...QO(B)},connectionMode:u.value,fromNodeId:m.value.nodeId,fromHandleId:m.value.id??null,fromType:m.value.type,isValidConnection:j,doc:H,lib:"vue",flowId:l,nodeLookup:E.value},_.value,S.value,A,E.value),G=((R=$.connection)==null?void 0:R.source)===((I=$.connection)==null?void 0:I.target);$.isValid&&$.connection&&!G&&y.connect($.connection),y.clickConnectEnd(B),O(B,!0)}return{handlePointerDown:Q,handleClick:M}}function cws(){return bt(dZn,"")}function gZn(e){const t=e??cws()??"",n=bt(uZn,fe(null)),{findNode:r,edges:o,emits:s}=nl(),a=r(t);return a||s.error(new Lf(Yh.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:a,parentNode:X(()=>r(a.parentNode)),connectedEdges:X(()=>iZn([a],o.value))}}function dws(){return{doubleClick:sr(),click:sr(),mouseEnter:sr(),mouseMove:sr(),mouseLeave:sr(),contextMenu:sr(),dragStart:sr(),drag:sr(),dragStop:sr()}}function uws(e,t){const n=dws();return n.doubleClick.on(r=>{var o,s;t.nodeDoubleClick(r),(s=(o=e.events)==null?void 0:o.doubleClick)==null||s.call(o,r)}),n.click.on(r=>{var o,s;t.nodeClick(r),(s=(o=e.events)==null?void 0:o.click)==null||s.call(o,r)}),n.mouseEnter.on(r=>{var o,s;t.nodeMouseEnter(r),(s=(o=e.events)==null?void 0:o.mouseEnter)==null||s.call(o,r)}),n.mouseMove.on(r=>{var o,s;t.nodeMouseMove(r),(s=(o=e.events)==null?void 0:o.mouseMove)==null||s.call(o,r)}),n.mouseLeave.on(r=>{var o,s;t.nodeMouseLeave(r),(s=(o=e.events)==null?void 0:o.mouseLeave)==null||s.call(o,r)}),n.contextMenu.on(r=>{var o,s;t.nodeContextMenu(r),(s=(o=e.events)==null?void 0:o.contextMenu)==null||s.call(o,r)}),n.dragStart.on(r=>{var o,s;t.nodeDragStart(r),(s=(o=e.events)==null?void 0:o.dragStart)==null||s.call(o,r)}),n.drag.on(r=>{var o,s;t.nodeDrag(r),(s=(o=e.events)==null?void 0:o.drag)==null||s.call(o,r)}),n.dragStop.on(r=>{var o,s;t.nodeDragStop(r),(s=(o=e.events)==null?void 0:o.dragStop)==null||s.call(o,r)}),Object.entries(n).reduce((r,[o,s])=>(r.emit[o]=s.trigger,r.on[o]=s.on,r),{emit:{},on:{}})}function mZn(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:r,snapGrid:o,snapToGrid:s,nodesDraggable:a,emits:l}=nl();return(d,u=!1)=>{const h=s.value?o.value[0]:5,g=s.value?o.value[1]:5,m=u?4:1,v=d.x*h*m,f=d.y*g*m,k=[];for(const A of e.value)if(A.draggable||a&&typeof A.draggable>"u"){const p={x:A.computedPosition.x+v,y:A.computedPosition.y+f},{position:b}=zst(A,p,l.error,t.value,A.parentNode?r(A.parentNode):void 0);k.push({id:A.id,position:b,from:A.position,distance:{x:d.x,y:d.y},dimensions:A.dimensions})}n(k,!0,!1)}}const Pde=.1,hws=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function Tx(){return zre("Viewport not initialized yet."),Promise.resolve(!1)}const fws={zoomIn:Tx,zoomOut:Tx,zoomTo:Tx,fitView:Tx,setCenter:Tx,fitBounds:Tx,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:Tx,setTransform:Tx,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function gws(e){function t(r,o){return new Promise(s=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((o==null?void 0:o.interpolate)==="linear"?aq:Khe).scaleBy(gRe(e.d3Selection,o==null?void 0:o.duration,o==null?void 0:o.ease,()=>{s(!0)}),r):s(!1)})}function n(r,o,s,a){return new Promise(l=>{var d;const{x:u,y:h}=ZYn({x:-r,y:-o},e.translateExtent),g=az.translate(-u,-h).scale(s);e.d3Selection&&e.d3Zoom?(d=e.d3Zoom)==null||d.interpolate((a==null?void 0:a.interpolate)==="linear"?aq:Khe).transform(gRe(e.d3Selection,a==null?void 0:a.duration,a==null?void 0:a.ease,()=>{l(!0)}),g):l(!1)})}return X(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:o=>t(1.2,o),zoomOut:o=>t(1/1.2,o),zoomTo:(o,s)=>new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((s==null?void 0:s.interpolate)==="linear"?aq:Khe).scaleTo(gRe(e.d3Selection,s==null?void 0:s.duration,s==null?void 0:s.ease,()=>{a(!0)}),o):a(!1)}),setViewport:(o,s)=>n(o.x,o.y,o.zoom,s),setTransform:(o,s)=>n(o.x,o.y,o.zoom,s),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(o={padding:Pde,includeHiddenNodes:!1,duration:0})=>{var s,a;const l=[];for(const m of e.nodes)m.dimensions.width&&m.dimensions.height&&((o==null?void 0:o.includeHiddenNodes)||!m.hidden)&&(!((s=o.nodes)!=null&&s.length)||(a=o.nodes)!=null&&a.length&&o.nodes.includes(m.id))&&l.push(m);if(!l.length)return Promise.resolve(!1);const d=tZn(l),{x:u,y:h,zoom:g}=z0n(d,e.dimensions.width,e.dimensions.height,o.minZoom??e.minZoom,o.maxZoom??e.maxZoom,o.padding??Pde);return n(u,h,g,o)},setCenter:(o,s,a)=>{const l=typeof(a==null?void 0:a.zoom)<"u"?a.zoom:e.maxZoom,d=e.dimensions.width/2-o*l,u=e.dimensions.height/2-s*l;return n(d,u,l,a)},fitBounds:(o,s={padding:Pde})=>{const{x:a,y:l,zoom:d}=z0n(o,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,s.padding??Pde);return n(a,l,d,s)},project:o=>Rte(o,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:o=>{if(e.vueFlowRef){const{x:s,y:a}=e.vueFlowRef.getBoundingClientRect(),l={x:o.x-s,y:o.y-a};return Rte(l,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:o=>{if(e.vueFlowRef){const{x:s,y:a}=e.vueFlowRef.getBoundingClientRect(),l={x:o.x+s,y:o.y+a};return Bte(l,e.viewport)}return{x:0,y:0}}}:fws)}function gRe(e,t=0,n=hws,r=()=>{}){const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e}function mws(e,t,n){const r=One(!0);return r.run(()=>{const o=()=>{r.run(()=>{let k,A,p=!!(n.nodes.value.length||n.edges.value.length);k=rF([e.modelValue,()=>{var b,w;return(w=(b=e.modelValue)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(A==null||A.pause(),n.setElements(b),!A&&!p&&b.length?p=!0:A==null||A.resume())}),A=rF([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([b,w])=>{var O;(O=e.modelValue)!=null&&O.value&&Array.isArray(e.modelValue.value)&&(k==null||k.pause(),e.modelValue.value=[...b,...w],ai(()=>{k==null||k.resume()}))},{immediate:p}),YQ(()=>{k==null||k.stop(),A==null||A.stop()})})},s=()=>{r.run(()=>{let k,A,p=!!n.nodes.value.length;k=rF([e.nodes,()=>{var b,w;return(w=(b=e.nodes)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(A==null||A.pause(),n.setNodes(b),!A&&!p&&b.length?p=!0:A==null||A.resume())}),A=rF([n.nodes,()=>n.nodes.value.length],([b])=>{var w;(w=e.nodes)!=null&&w.value&&Array.isArray(e.nodes.value)&&(k==null||k.pause(),e.nodes.value=[...b],ai(()=>{k==null||k.resume()}))},{immediate:p}),YQ(()=>{k==null||k.stop(),A==null||A.stop()})})},a=()=>{r.run(()=>{let k,A,p=!!n.edges.value.length;k=rF([e.edges,()=>{var b,w;return(w=(b=e.edges)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(A==null||A.pause(),n.setEdges(b),!A&&!p&&b.length?p=!0:A==null||A.resume())}),A=rF([n.edges,()=>n.edges.value.length],([b])=>{var w;(w=e.edges)!=null&&w.value&&Array.isArray(e.edges.value)&&(k==null||k.pause(),e.edges.value=[...b],ai(()=>{k==null||k.resume()}))},{immediate:p}),YQ(()=>{k==null||k.stop(),A==null||A.stop()})})},l=()=>{r.run(()=>{pt(()=>t.maxZoom,()=>{t.maxZoom&&Nh(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},d=()=>{r.run(()=>{pt(()=>t.minZoom,()=>{t.minZoom&&Nh(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},u=()=>{r.run(()=>{pt(()=>t.translateExtent,()=>{t.translateExtent&&Nh(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},h=()=>{r.run(()=>{pt(()=>t.nodeExtent,()=>{t.nodeExtent&&Nh(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},g=()=>{r.run(()=>{pt(()=>t.applyDefault,()=>{Nh(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},m=()=>{r.run(()=>{const k=async A=>{let p=A;typeof t.autoConnect=="function"&&(p=await t.autoConnect(A)),p!==!1&&n.addEdges([p])};pt(()=>t.autoConnect,()=>{Nh(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),pt(n.autoConnect,(A,p,b)=>{A?n.onConnect(k):n.hooks.value.connect.off(k),b(()=>{n.hooks.value.connect.off(k)})},{immediate:!0})})},v=()=>{const k=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const A of Object.keys(t)){const p=A;if(!k.includes(p)){const b=Pa(()=>t[p]),w=n[p];Fn(w)&&r.run(()=>{pt(b,O=>{Nh(O)&&(w.value=O)},{immediate:!0})})}}};(()=>{o(),s(),a(),d(),l(),u(),h(),g(),m(),v()})()}),()=>r.stop()}function kws(){return{edgesChange:sr(),nodesChange:sr(),nodeDoubleClick:sr(),nodeClick:sr(),nodeMouseEnter:sr(),nodeMouseMove:sr(),nodeMouseLeave:sr(),nodeContextMenu:sr(),nodeDragStart:sr(),nodeDrag:sr(),nodeDragStop:sr(),nodesInitialized:sr(),miniMapNodeClick:sr(),miniMapNodeDoubleClick:sr(),miniMapNodeMouseEnter:sr(),miniMapNodeMouseMove:sr(),miniMapNodeMouseLeave:sr(),connect:sr(),connectStart:sr(),connectEnd:sr(),clickConnectStart:sr(),clickConnectEnd:sr(),paneReady:sr(),init:sr(),move:sr(),moveStart:sr(),moveEnd:sr(),selectionDragStart:sr(),selectionDrag:sr(),selectionDragStop:sr(),selectionContextMenu:sr(),selectionStart:sr(),selectionEnd:sr(),viewportChangeStart:sr(),viewportChange:sr(),viewportChangeEnd:sr(),paneScroll:sr(),paneClick:sr(),paneContextMenu:sr(),paneMouseEnter:sr(),paneMouseMove:sr(),paneMouseLeave:sr(),edgeContextMenu:sr(),edgeMouseEnter:sr(),edgeMouseMove:sr(),edgeMouseLeave:sr(),edgeDoubleClick:sr(),edgeClick:sr(),edgeUpdateStart:sr(),edgeUpdate:sr(),edgeUpdateEnd:sr(),updateNodeInternals:sr(),error:sr(e=>zre(e.message))}}function vws(e,t){const n=ps();TB(()=>{for(const[o,s]of Object.entries(t.value)){const a=l=>{e(o,l)};s.setEmitter(a),xte(s.removeEmitter),s.setHasEmitListeners(()=>r(o)),xte(s.removeHasEmitListeners)}});function r(o){var s;const a=Aws(o);return!!((s=n==null?void 0:n.vnode.props)==null?void 0:s[a])}}function Aws(e){const[t,...n]=e.split(":");return`on${t.replace(/(?:^|-)(\w)/g,(o,s)=>s.toUpperCase())}${n.length?`:${n.join(":")}`:""}`}function kZn(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:Vst.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:lq.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:FT.Bezier,style:{}},connectionMode:H6.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:z2e()?"Meta":"Control",zoomActivationKeyCode:z2e()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:kws(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const pws=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function bws(e,t,n){const r=gws(e),o=z=>{const Y=z??[];e.hooks.updateNodeInternals.trigger(Y)},s=z=>R3s(z,e.nodes,e.edges),a=z=>B3s(z,e.nodes,e.edges),l=z=>iZn(z,e.edges),d=({id:z,type:Y,nodeId:ie})=>{var te;const Z=z?`-${Y}-${z}`:`-${Y}`;return Array.from(((te=e.connectionLookup.get(`${ie}${Z}`))==null?void 0:te.values())??[])},u=z=>{if(z)return t.value.get(z)},h=z=>{if(z)return n.value.get(z)},g=(z,Y,ie)=>{var te,Z;const he=[];for(const pe of z){const Ce={id:pe.id,type:"position",dragging:ie,from:pe.from};if(Y&&(Ce.position=pe.position,pe.parentNode)){const Qe=u(pe.parentNode);Ce.position={x:Ce.position.x-(((te=Qe==null?void 0:Qe.computedPosition)==null?void 0:te.x)??0),y:Ce.position.y-(((Z=Qe==null?void 0:Qe.computedPosition)==null?void 0:Z.y)??0)}}he.push(Ce)}he!=null&&he.length&&e.hooks.nodesChange.trigger(he)},m=z=>{if(!e.vueFlowRef)return;const Y=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!Y)return;const ie=window.getComputedStyle(Y),{m22:te}=new window.DOMMatrixReadOnly(ie.transform),Z=[];for(const he of z){const pe=he,Ce=u(pe.id);if(Ce){const Qe=zOe(pe.nodeElement);if(!!(Qe.width&&Qe.height&&(Ce.dimensions.width!==Qe.width||Ce.dimensions.height!==Qe.height||pe.forceUpdate))){const me=pe.nodeElement.getBoundingClientRect();Ce.dimensions=Qe,Ce.handleBounds.source=nkn("source",pe.nodeElement,me,te,Ce.id),Ce.handleBounds.target=nkn("target",pe.nodeElement,me,te,Ce.id),Z.push({id:Ce.id,type:"dimensions",dimensions:Qe})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&r.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),Z.length&&e.hooks.nodesChange.trigger(Z)},v=(z,Y)=>{const ie=new Set,te=new Set;for(const pe of z)LD(pe)?ie.add(pe.id):$6(pe)&&te.add(pe.id);const Z=m5(t.value,ie,!0),he=m5(n.value,te);if(e.multiSelectionActive){for(const pe of ie)Z.push($x(pe,Y));for(const pe of te)he.push($x(pe,Y))}Z.length&&e.hooks.nodesChange.trigger(Z),he.length&&e.hooks.edgesChange.trigger(he)},f=z=>{if(e.multiSelectionActive){const Y=z.map(ie=>$x(ie.id,!0));e.hooks.nodesChange.trigger(Y);return}e.hooks.nodesChange.trigger(m5(t.value,new Set(z.map(Y=>Y.id)),!0)),e.hooks.edgesChange.trigger(m5(n.value))},k=z=>{if(e.multiSelectionActive){const Y=z.map(ie=>$x(ie.id,!0));e.hooks.edgesChange.trigger(Y);return}e.hooks.edgesChange.trigger(m5(n.value,new Set(z.map(Y=>Y.id)))),e.hooks.nodesChange.trigger(m5(t.value,new Set,!0))},A=z=>{v(z,!0)},p=z=>{const ie=(z||e.nodes).map(te=>(te.selected=!1,$x(te.id,!1)));e.hooks.nodesChange.trigger(ie)},b=z=>{const ie=(z||e.edges).map(te=>(te.selected=!1,$x(te.id,!1)));e.hooks.edgesChange.trigger(ie)},w=z=>{if(!z||!z.length)return v([],!1);const Y=z.reduce((ie,te)=>{const Z=$x(te.id,!1);return LD(te)?ie.nodes.push(Z):ie.edges.push(Z),ie},{nodes:[],edges:[]});Y.nodes.length&&e.hooks.nodesChange.trigger(Y.nodes),Y.edges.length&&e.hooks.edgesChange.trigger(Y.edges)},O=z=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([z,e.maxZoom]),e.minZoom=z},y=z=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([e.minZoom,z]),e.maxZoom=z},C=z=>{var Y;(Y=e.d3Zoom)==null||Y.translateExtent(z),e.translateExtent=z},_=z=>{e.nodeExtent=z,o()},S=z=>{var Y;(Y=e.d3Zoom)==null||Y.clickDistance(z)},L=z=>{e.nodesDraggable=z,e.nodesConnectable=z,e.elementsSelectable=z},E=z=>{const Y=z instanceof Function?z(e.nodes):z;!e.initialized&&!Y.length||(e.nodes=ikn(Y,u,e.hooks.error.trigger))},T=z=>{const Y=z instanceof Function?z(e.edges):z;if(!e.initialized&&!Y.length)return;const ie=fRe(Y,e.isValidConnection,u,h,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);hRe(e.connectionLookup,n.value,ie),e.edges=ie},D=z=>{const Y=z instanceof Function?z([...e.nodes,...e.edges]):z;!e.initialized&&!Y.length||(E(Y.filter(LD)),T(Y.filter($6)))},P=z=>{let Y=z instanceof Function?z(e.nodes):z;Y=Array.isArray(Y)?Y:[Y];const ie=ikn(Y,u,e.hooks.error.trigger),te=[];for(const Z of ie)te.push(G0n(Z));te.length&&e.hooks.nodesChange.trigger(te)},Q=z=>{let Y=z instanceof Function?z(e.edges):z;Y=Array.isArray(Y)?Y:[Y];const ie=fRe(Y,e.isValidConnection,u,h,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),te=[];for(const Z of ie)te.push(G0n(Z));te.length&&e.hooks.edgesChange.trigger(te)},M=(z,Y=!0,ie=!1)=>{const te=z instanceof Function?z(e.nodes):z,Z=Array.isArray(te)?te:[te],he=[],pe=[];function Ce(ke){const me=l(ke);for(const _e of me)(!Nh(_e.deletable)||_e.deletable)&&pe.push(Z0n(_e.id,_e.source,_e.target,_e.sourceHandle,_e.targetHandle))}function Qe(ke){const me=[];for(const _e of e.nodes)_e.parentNode===ke&&me.push(_e);if(me.length){for(const _e of me)he.push(Y0n(_e.id));Y&&Ce(me);for(const _e of me)Qe(_e.id)}}for(const ke of Z){const me=typeof ke=="string"?u(ke):ke;me&&(Nh(me.deletable)&&!me.deletable||(he.push(Y0n(me.id)),Y&&Ce([me]),ie&&Qe(me.id)))}pe.length&&e.hooks.edgesChange.trigger(pe),he.length&&e.hooks.nodesChange.trigger(he)},B=z=>{const Y=z instanceof Function?z(e.edges):z,ie=Array.isArray(Y)?Y:[Y],te=[];for(const Z of ie){const he=typeof Z=="string"?h(Z):Z;he&&(Nh(he.deletable)&&!he.deletable||te.push(Z0n(typeof Z=="string"?Z:Z.id,he.source,he.target,he.sourceHandle,he.targetHandle)))}e.hooks.edgesChange.trigger(te)},R=(z,Y,ie=!0)=>{const te=h(z.id);if(!te)return!1;const Z=e.edges.indexOf(te),he=iws(z,Y,te,ie,e.hooks.error.trigger);if(he){const[pe]=fRe([he],e.isValidConnection,u,h,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((Ce,Qe)=>Qe===Z?pe:Ce),hRe(e.connectionLookup,n.value,[pe]),pe}return!1},I=(z,Y,ie={replace:!1})=>{const te=h(z);if(!te)return;const Z=typeof Y=="function"?Y(te):Y;te.data=ie.replace?Z:{...te.data,...Z}},F=z=>X0n(z,e.nodes),j=z=>{const Y=X0n(z,e.edges);return hRe(e.connectionLookup,n.value,Y),Y},W=(z,Y,ie={replace:!1})=>{const te=u(z);if(!te)return;const Z=typeof Y=="function"?Y(te):Y;ie.replace?e.nodes.splice(e.nodes.indexOf(te),1,Z):Object.assign(te,Z)},H=(z,Y,ie={replace:!1})=>{const te=u(z);if(!te)return;const Z=typeof Y=="function"?Y(te):Y;te.data=ie.replace?Z:{...te.data,...Z}},$=(z,Y,ie=!1)=>{ie?e.connectionClickStartHandle=z:e.connectionStartHandle=z,e.connectionEndHandle=null,e.connectionStatus=null,Y&&(e.connectionPosition=Y)},G=(z,Y=null,ie=null)=>{e.connectionStartHandle&&(e.connectionPosition=z,e.connectionEndHandle=Y,e.connectionStatus=ie)},q=(z,Y)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,Y?e.connectionClickStartHandle=null:e.connectionStartHandle=null},re=z=>{const Y=Q3s(z),ie=Y?null:cY(z)?z:u(z.id);return!Y&&!ie?[null,null,Y]:[Y?z:W2e(ie),ie,Y]},J=(z,Y=!0,ie=e.nodes)=>{const[te,Z,he]=re(z);if(!te)return[];const pe=[];for(const Ce of ie||e.nodes){if(!he&&(Ce.id===Z.id||!Ce.computedPosition))continue;const Qe=W2e(Ce),ke=V2e(Qe,te);(Y&&ke>0||ke>=Qe.width*Qe.height||ke>=Number(te.width)*Number(te.height))&&pe.push(Ce)}return pe},oe=(z,Y,ie=!0)=>{const[te]=re(z);if(!te)return!1;const Z=V2e(te,Y);return ie&&Z>0||Z>=Number(te.width)*Number(te.height)},se=z=>{const{viewport:Y,dimensions:ie,d3Zoom:te,d3Selection:Z,translateExtent:he}=e;if(!te||!Z||!z.x&&!z.y)return!1;const pe=az.translate(Y.x+z.x,Y.y+z.y).scale(Y.zoom),Ce=[[0,0],[ie.width,ie.height]],Qe=te.constrain()(pe,Ce,he),ke=e.viewport.x!==Qe.x||e.viewport.y!==Qe.y||e.viewport.zoom!==Qe.k;return te.transform(Z,Qe),ke},le=z=>{const Y=z instanceof Function?z(e):z,ie=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Nh(Y.defaultEdgeOptions)&&(e.defaultEdgeOptions=Y.defaultEdgeOptions);const te=Y.modelValue||Y.nodes||Y.edges?[]:void 0;te&&(Y.modelValue&&te.push(...Y.modelValue),Y.nodes&&te.push(...Y.nodes),Y.edges&&te.push(...Y.edges),D(te));const Z=()=>{Nh(Y.maxZoom)&&y(Y.maxZoom),Nh(Y.minZoom)&&O(Y.minZoom),Nh(Y.translateExtent)&&C(Y.translateExtent)};for(const he of Object.keys(Y)){const pe=he,Ce=Y[pe];![...pws,...ie].includes(pe)&&Nh(Ce)&&(e[pe]=Ce)}EGe(()=>e.d3Zoom).not.toBeNull().then(Z),e.initialized||(e.initialized=!0)};return{updateNodePositions:g,updateNodeDimensions:m,setElements:D,setNodes:E,setEdges:T,addNodes:P,addEdges:Q,removeNodes:M,removeEdges:B,findNode:u,findEdge:h,updateEdge:R,updateEdgeData:I,updateNode:W,updateNodeData:H,applyEdgeChanges:j,applyNodeChanges:F,addSelectedElements:A,addSelectedNodes:f,addSelectedEdges:k,setMinZoom:O,setMaxZoom:y,setTranslateExtent:C,setNodeExtent:_,setPaneClickDistance:S,removeSelectedElements:w,removeSelectedNodes:p,removeSelectedEdges:b,startConnection:$,updateConnection:G,endConnection:q,setInteractive:L,setState:le,getIntersectingNodes:J,getIncomers:s,getOutgoers:a,getConnectedEdges:l,getHandleConnections:d,isNodeIntersecting:oe,panBy:se,fitView:z=>r.value.fitView(z),zoomIn:z=>r.value.zoomIn(z),zoomOut:z=>r.value.zoomOut(z),zoomTo:(z,Y)=>r.value.zoomTo(z,Y),setViewport:(z,Y)=>r.value.setViewport(z,Y),setTransform:(z,Y)=>r.value.setTransform(z,Y),getViewport:()=>r.value.getViewport(),getTransform:()=>r.value.getTransform(),setCenter:(z,Y,ie)=>r.value.setCenter(z,Y,ie),fitBounds:(z,Y)=>r.value.fitBounds(z,Y),project:z=>r.value.project(z),screenToFlowCoordinate:z=>r.value.screenToFlowCoordinate(z),flowToScreenCoordinate:z=>r.value.flowToScreenCoordinate(z),toObject:()=>{const z=[],Y=[];for(const ie of e.nodes){const{computedPosition:te,handleBounds:Z,selected:he,dimensions:pe,isParent:Ce,resizing:Qe,dragging:ke,events:me,..._e}=ie;z.push(_e)}for(const ie of e.edges){const{selected:te,sourceNode:Z,targetNode:he,events:pe,...Ce}=ie;Y.push(Ce)}return JSON.parse(JSON.stringify({nodes:z,edges:Y,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:z=>new Promise(Y=>{const{nodes:ie,edges:te,position:Z,zoom:he,viewport:pe}=z;ie&&E(ie),te&&T(te);const[Ce,Qe]=pe!=null&&pe.x&&(pe!=null&&pe.y)?[pe.x,pe.y]:Z??[null,null];if(Ce&&Qe){const ke=(pe==null?void 0:pe.zoom)||he||e.viewport.zoom;return EGe(()=>r.value.viewportInitialized).toBe(!0).then(()=>{r.value.setViewport({x:Ce,y:Qe,zoom:ke}).then(()=>{Y(!0)})})}else Y(!0)}),updateNodeInternals:o,viewportHelper:r,$reset:()=>{const z=kZn();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const Y=az.translate(z.defaultViewport.x??0,z.defaultViewport.y??0).scale(eI(z.defaultViewport.zoom??1,z.minZoom,z.maxZoom)),ie=e.viewportRef.getBoundingClientRect(),te=[[0,0],[ie.width,ie.height]],Z=e.d3Zoom.constrain()(Y,te,z.translateExtent);e.d3Zoom.transform(e.d3Selection,Z)}le(z)},$destroy:()=>{}}}const wws=["data-id","data-handleid","data-nodeid","data-handlepos"],Ows={name:"Handle",compatConfig:{MODE:3}},mm=Je({...Ows,props:{id:{default:null},type:{},position:{default:()=>Vi.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=mri(e,["position","connectable","connectableStart","connectableEnd","id"]),r=Pa(()=>n.type??"source"),o=Pa(()=>n.isValidConnection??null),{id:s,connectionStartHandle:a,connectionClickStartHandle:l,connectionEndHandle:d,vueFlowRef:u,nodesConnectable:h,noDragClassName:g,noPanClassName:m}=nl(),{id:v,node:f,nodeEl:k,connectedEdges:A}=gZn(),p=fe(),b=Pa(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),w=Pa(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),O=Pa(()=>{var T,D,P,Q,M,B;return((T=a.value)==null?void 0:T.nodeId)===v&&((D=a.value)==null?void 0:D.id)===e.id&&((P=a.value)==null?void 0:P.type)===r.value||((Q=d.value)==null?void 0:Q.nodeId)===v&&((M=d.value)==null?void 0:M.id)===e.id&&((B=d.value)==null?void 0:B.type)===r.value}),y=Pa(()=>{var T,D,P;return((T=l.value)==null?void 0:T.nodeId)===v&&((D=l.value)==null?void 0:D.id)===e.id&&((P=l.value)==null?void 0:P.type)===r.value}),{handlePointerDown:C,handleClick:_}=fZn({nodeId:v,handleId:e.id,isValidConnection:o,type:r}),S=X(()=>typeof e.connectable=="string"&&e.connectable==="single"?!A.value.some(T=>{const D=T[`${r.value}Handle`];return T[r.value]!==v?!1:D?D===e.id:!0}):typeof e.connectable=="number"?A.value.filter(T=>{const D=T[`${r.value}Handle`];return T[r.value]!==v?!1:D?D===e.id:!0}).length{var T;if(!f.dimensions.width||!f.dimensions.height)return;const D=(T=f.handleBounds[r.value])==null?void 0:T.find(F=>F.id===e.id);if(!u.value||D)return;const P=u.value.querySelector(".vue-flow__transformationpane");if(!k.value||!p.value||!P||!e.id)return;const Q=k.value.getBoundingClientRect(),M=p.value.getBoundingClientRect(),B=window.getComputedStyle(P),{m22:R}=new window.DOMMatrixReadOnly(B.transform),I={id:e.id,position:e.position,x:(M.left-Q.left)/R,y:(M.top-Q.top)/R,type:r.value,nodeId:v,...zOe(p.value)};f.handleBounds[r.value]=[...f.handleBounds[r.value]??[],I]});function L(T){const D=Hst(T);S.value&&b.value&&(D&&T.button===0||!D)&&C(T)}function E(T){!v||!l.value&&!b.value||S.value&&_(T)}return t({handleClick:_,handlePointerDown:C,onClick:E,onPointerDown:L}),(T,D)=>(xe(),Ge("div",{ref_key:"handle",ref:p,"data-id":`${Ae(s)}-${Ae(v)}-${e.id}-${r.value}`,"data-handleid":e.id,"data-nodeid":Ae(v),"data-handlepos":T.position,class:Eo(["vue-flow__handle",[`vue-flow__handle-${T.position}`,`vue-flow__handle-${e.id}`,Ae(g),Ae(m),r.value,{connectable:S.value,connecting:y.value,connectablestart:b.value,connectableend:w.value,connectionindicator:S.value&&(b.value&&!O.value||w.value&&O.value)}]]),onMousedown:L,onTouchstartPassive:L,onClick:E},[Zr(T.$slots,"default",{id:T.id})],42,wws))}}),XOe=function({sourcePosition:e=Vi.Bottom,targetPosition:t=Vi.Top,label:n,connectable:r=!0,isValidTargetPos:o,isValidSourcePos:s,data:a}){const l=a.label??n;return[xn(mm,{type:"target",position:t,connectable:r,isValidConnection:o}),typeof l!="string"&&l?xn(l):xn(sn,[l]),xn(mm,{type:"source",position:e,connectable:r,isValidConnection:s})]};XOe.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"];XOe.inheritAttrs=!1;XOe.compatConfig={MODE:3};const yws=XOe,GOe=function({targetPosition:e=Vi.Top,label:t,connectable:n=!0,isValidTargetPos:r,data:o}){const s=o.label??t;return[xn(mm,{type:"target",position:e,connectable:n,isValidConnection:r}),typeof s!="string"&&s?xn(s):xn(sn,[s])]};GOe.props=["targetPosition","label","isValidTargetPos","connectable","data"];GOe.inheritAttrs=!1;GOe.compatConfig={MODE:3};const Cws=GOe,YOe=function({sourcePosition:e=Vi.Bottom,label:t,connectable:n=!0,isValidSourcePos:r,data:o}){const s=o.label??t;return[typeof s!="string"&&s?xn(s):xn(sn,[s]),xn(mm,{type:"source",position:e,connectable:n,isValidConnection:r})]};YOe.props=["sourcePosition","label","isValidSourcePos","connectable","data"];YOe.inheritAttrs=!1;YOe.compatConfig={MODE:3};const _ws=YOe,Sws=["transform"],Lws=["width","height","x","y","rx","ry"],xws=["y"],Ews={name:"EdgeText",compatConfig:{MODE:3}},Tws=Je({...Ews,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=fe({x:0,y:0,width:0,height:0}),n=fe(null),r=X(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);An(o),pt([()=>e.x,()=>e.y,n,()=>e.label],o);function o(){if(!n.value)return;const s=n.value.getBBox();(s.width!==t.value.width||s.height!==t.value.height)&&(t.value=s)}return(s,a)=>(xe(),Ge("g",{transform:r.value,class:"vue-flow__edge-textwrapper"},[s.labelShowBg?(xe(),Ge("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*s.labelBgPadding[0]}px`,height:`${t.value.height+2*s.labelBgPadding[1]}px`,x:-s.labelBgPadding[0],y:-s.labelBgPadding[1],style:no(s.labelBgStyle),rx:s.labelBgBorderRadius,ry:s.labelBgBorderRadius},null,12,Lws)):nn("",!0),ge("text",Gn(s.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:s.labelStyle}),[Zr(s.$slots,"default",{},()=>[typeof s.label!="string"?(xe(),Ut(Bd(s.label),{key:0})):(xe(),Ge(sn,{key:1},[Bt(Pe(s.label),1)],64))])],16,xws)],8,Sws))}}),Qws=["id","d","marker-end","marker-start"],Dws=["d","stroke-width"],Bws={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Hre=Je({...Bws,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=fe(null),r=fe(null),o=fe(null),s=gri();return t({pathEl:n,interactionEl:r,labelEl:o}),(a,l)=>(xe(),Ge(sn,null,[ge("path",Gn(Ae(s),{id:a.id,ref_key:"pathEl",ref:n,d:a.path,class:"vue-flow__edge-path","marker-end":a.markerEnd,"marker-start":a.markerStart}),null,16,Qws),a.interactionWidth?(xe(),Ge("path",{key:0,ref_key:"interactionEl",ref:r,fill:"none",d:a.path,"stroke-width":a.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,Dws)):nn("",!0),a.label&&a.labelX&&a.labelY?(xe(),Ut(Tws,{key:1,ref_key:"labelEl",ref:o,x:a.labelX,y:a.labelY,label:a.label,"label-show-bg":a.labelShowBg,"label-bg-style":a.labelBgStyle,"label-bg-padding":a.labelBgPadding,"label-bg-border-radius":a.labelBgBorderRadius,"label-style":a.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):nn("",!0)],64))}});function vZn({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,s=n=0?.5*e:t*25*Math.sqrt(-e)}function akn({pos:e,x1:t,y1:n,x2:r,y2:o,c:s}){let a,l;switch(e){case Vi.Left:a=t-Fde(t-r,s),l=n;break;case Vi.Right:a=t+Fde(r-t,s),l=n;break;case Vi.Top:a=t,l=n-Fde(n-o,s);break;case Vi.Bottom:a=t,l=n+Fde(o-n,s);break}return[a,l]}function $st(e){const{sourceX:t,sourceY:n,sourcePosition:r=Vi.Bottom,targetX:o,targetY:s,targetPosition:a=Vi.Top,curvature:l=.25}=e,[d,u]=akn({pos:r,x1:t,y1:n,x2:o,y2:s,c:l}),[h,g]=akn({pos:a,x1:o,y1:s,x2:t,y2:n,c:l}),[m,v,f,k]=AZn({sourceX:t,sourceY:n,targetX:o,targetY:s,sourceControlX:d,sourceControlY:u,targetControlX:h,targetControlY:g});return[`M${t},${n} C${d},${u} ${h},${g} ${o},${s}`,m,v,f,k]}function lkn({pos:e,x1:t,y1:n,x2:r,y2:o}){let s,a;switch(e){case Vi.Left:case Vi.Right:s=.5*(t+r),a=n;break;case Vi.Top:case Vi.Bottom:s=t,a=.5*(n+o);break}return[s,a]}function pZn(e){const{sourceX:t,sourceY:n,sourcePosition:r=Vi.Bottom,targetX:o,targetY:s,targetPosition:a=Vi.Top}=e,[l,d]=lkn({pos:r,x1:t,y1:n,x2:o,y2:s}),[u,h]=lkn({pos:a,x1:o,y1:s,x2:t,y2:n}),[g,m,v,f]=AZn({sourceX:t,sourceY:n,targetX:o,targetY:s,sourceControlX:l,sourceControlY:d,targetControlX:u,targetControlY:h});return[`M${t},${n} C${l},${d} ${u},${h} ${o},${s}`,g,m,v,f]}const ckn={[Vi.Left]:{x:-1,y:0},[Vi.Right]:{x:1,y:0},[Vi.Top]:{x:0,y:-1},[Vi.Bottom]:{x:0,y:1}};function Rws({source:e,sourcePosition:t=Vi.Bottom,target:n}){return t===Vi.Left||t===Vi.Right?e.xe[g]?-1:1)*Q:p[g]=(u[g]>n[g]?-1:1)*Q}}if(t!==r){const P=g==="x"?"y":"x",Q=a[g]===l[P],M=d[P]>u[P],B=d[P]=D?(f=(L.x+E.x)/2,k=v[0].y):(f=v[0].x,k=(L.y+E.y)/2)}return[[e,{x:d.x+A.x,y:d.y+A.y},...v,{x:u.x+p.x,y:u.y+p.y},n],f,k,O,y]}function Mws(e,t,n,r){const o=Math.min(dkn(e,t)/2,dkn(t,n)/2,r),{x:s,y:a}=t;if(e.x===s&&s===n.x||e.y===a&&a===n.y)return`L${s} ${a}`;if(e.y===a){const u=e.x{let O;return w>0&&w{const[n,r,o]=Pws(e);return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),Nws=Fws,Uws=Je({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,r,o]=WGe({...e,sourcePosition:e.sourcePosition??Vi.Bottom,targetPosition:e.targetPosition??Vi.Top});return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),bZn=Uws,jws=Je({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>xn(bZn,{...e,...t,borderRadius:0})}}),Wws=jws,Vws=Je({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,r,o]=$st({...e,sourcePosition:e.sourcePosition??Vi.Bottom,targetPosition:e.targetPosition??Vi.Top});return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),zws=Vws,Hws=Je({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,r,o]=pZn({...e,sourcePosition:e.sourcePosition??Vi.Bottom,targetPosition:e.targetPosition??Vi.Top});return xn(Hre,{path:n,labelX:r,labelY:o,...t,...e})}}}),$ws=Hws,Xws={input:_ws,default:yws,output:Cws},Gws={default:zws,straight:Nws,step:Wws,smoothstep:bZn,simplebezier:$ws};function Yws(e,t,n){const r=X(()=>k=>t.value.get(k)),o=X(()=>k=>n.value.get(k)),s=X(()=>{const k={...Gws,...e.edgeTypes},A=Object.keys(k);for(const p of e.edges)p.type&&!A.includes(p.type)&&(k[p.type]=p.type);return k}),a=X(()=>{const k={...Xws,...e.nodeTypes},A=Object.keys(k);for(const p of e.nodes)p.type&&!A.includes(p.type)&&(k[p.type]=p.type);return k}),l=X(()=>e.onlyRenderVisibleElements?nZn(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),d=X(()=>{if(e.onlyRenderVisibleElements){const k=[];for(const A of e.edges){const p=t.value.get(A.source),b=t.value.get(A.target);H3s({sourcePos:p.computedPosition||{x:0,y:0},targetPos:b.computedPosition||{x:0,y:0},sourceWidth:p.dimensions.width,sourceHeight:p.dimensions.height,targetWidth:b.dimensions.width,targetHeight:b.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&k.push(A)}return k}return e.edges}),u=X(()=>[...l.value,...d.value]),h=X(()=>{const k=[];for(const A of e.nodes)A.selected&&k.push(A);return k}),g=X(()=>{const k=[];for(const A of e.edges)A.selected&&k.push(A);return k}),m=X(()=>[...h.value,...g.value]),v=X(()=>{const k=[];for(const A of e.nodes)A.dimensions.width&&A.dimensions.height&&A.handleBounds!==void 0&&k.push(A);return k}),f=X(()=>l.value.length>0&&v.value.length===l.value.length);return{getNode:r,getEdge:o,getElements:u,getEdgeTypes:s,getNodeTypes:a,getEdges:d,getNodes:l,getSelectedElements:m,getSelectedNodes:h,getSelectedEdges:g,getNodesInitialized:v,areNodesInitialized:f}}let Zws=class jF{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=ps())==null?void 0:t.appContext.app,r=(n==null?void 0:n.config.globalProperties.$vueFlowStorage)??jF.instance;return jF.instance=r??new jF,n&&(n.config.globalProperties.$vueFlowStorage=jF.instance),jF.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const r=kZn(),o=hs(r),s={};for(const[m,v]of Object.entries(o.hooks)){const f=`on${m.charAt(0).toUpperCase()+m.slice(1)}`;s[f]=v.on}const a={};for(const[m,v]of Object.entries(o.hooks))a[m]=v.trigger;const l=X(()=>{const m=new Map;for(const v of o.nodes)m.set(v.id,v);return m}),d=X(()=>{const m=new Map;for(const v of o.edges)m.set(v.id,v);return m}),u=Yws(o,l,d),h=bws(o,l,d);h.setState({...o,...n});const g={...s,...u,...h,...UAs(o),nodeLookup:l,edgeLookup:d,emits:a,id:t,vueFlowVersion:"1.48.2",$destroy:()=>{this.remove(t)}};return this.set(t,g),g}getId(){return`vue-flow-${this.currentId++}`}};function nl(e){const t=Zws.getInstance(),n=vz(),r=typeof e=="object",o=r?e:{id:e},s=o.id,a=s??(n==null?void 0:n.vueFlowId);let l;if(n){const d=bt(skn,null);typeof d<"u"&&d!==null&&(!a||d.id===a)&&(l=d)}if(l||a&&(l=t.get(a)),!l||a&&l.id!==a){const d=s??t.getId(),u=t.create(d,o);l=u,(n??One(!0)).run(()=>{pt(u.applyDefault,(g,m,v)=>{const f=A=>{u.applyNodeChanges(A)},k=A=>{u.applyEdgeChanges(A)};g?(u.onNodesChange(f),u.onEdgesChange(k)):(u.hooks.value.nodesChange.off(f),u.hooks.value.edgesChange.off(k)),v(()=>{u.hooks.value.nodesChange.off(f),u.hooks.value.edgesChange.off(k)})},{immediate:!0}),xte(()=>{if(l){const g=t.get(l.id);g?g.$destroy():zre(`No store instance found for id ${l.id} in storage.`)}})})}else r&&l.setState(o);if(n&&(Yi(skn,l),n.vueFlowId=l.id),r){const d=ps();(d==null?void 0:d.type.name)!=="VueFlow"&&l.emits.error(new Lf(Yh.USEVUEFLOW_OPTIONS))}return l}function qws(e){const{emits:t,dimensions:n}=nl();let r;An(()=>{const o=()=>{var s,a;if(!e.value||!(((a=(s=e.value).checkVisibility)==null?void 0:a.call(s))??!0))return;const l=zOe(e.value);(l.width===0||l.height===0)&&t.error(new Lf(Yh.MISSING_VIEWPORT_DIMENSIONS)),n.value={width:l.width||500,height:l.height||500}};o(),window.addEventListener("resize",o),e.value&&(r=new ResizeObserver(()=>o()),r.observe(e.value)),qs(()=>{window.removeEventListener("resize",o),r&&e.value&&r.unobserve(e.value)})})}const Kws={name:"UserSelection",compatConfig:{MODE:3}},Jws=Je({...Kws,props:{userSelectionRect:{}},setup(e){return(t,n)=>(xe(),Ge("div",{class:"vue-flow__selection vue-flow__container",style:no({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),eOs=["tabIndex"],tOs={name:"NodesSelection",compatConfig:{MODE:3}},nOs=Je({...tOs,setup(e){const{emits:t,viewport:n,getSelectedNodes:r,noPanClassName:o,disableKeyboardA11y:s,userSelectionActive:a}=nl(),l=mZn(),d=fe(null),u=hZn({el:d,onStart(f){t.selectionDragStart(f),t.nodeDragStart(f)},onDrag(f){t.selectionDrag(f),t.nodeDrag(f)},onStop(f){t.selectionDragStop(f),t.nodeDragStop(f)}});An(()=>{var f;s.value||(f=d.value)==null||f.focus({preventScroll:!0})});const h=X(()=>tZn(r.value)),g=X(()=>({width:`${h.value.width}px`,height:`${h.value.height}px`,top:`${h.value.y}px`,left:`${h.value.x}px`}));function m(f){t.selectionContextMenu({event:f,nodes:r.value})}function v(f){s.value||kj[f.key]&&(f.preventDefault(),l({x:kj[f.key].x,y:kj[f.key].y},f.shiftKey))}return(f,k)=>!Ae(a)&&h.value.width&&h.value.height?(xe(),Ge("div",{key:0,class:Eo(["vue-flow__nodesselection vue-flow__container",Ae(o)]),style:no({transform:`translate(${Ae(n).x}px,${Ae(n).y}px) scale(${Ae(n).zoom})`})},[ge("div",{ref_key:"el",ref:d,class:Eo([{dragging:Ae(u)},"vue-flow__nodesselection-rect"]),style:no(g.value),tabIndex:Ae(s)?void 0:-1,onContextmenu:m,onKeydown:v},null,46,eOs)],6)):nn("",!0)}});function iOs(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const rOs={name:"Pane",compatConfig:{MODE:3}},oOs=Je({...rOs,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:n,viewport:r,emits:o,userSelectionActive:s,removeSelectedElements:a,userSelectionRect:l,elementsSelectable:d,nodesSelectionActive:u,getSelectedEdges:h,getSelectedNodes:g,removeNodes:m,removeEdges:v,selectionMode:f,deleteKeyCode:k,multiSelectionKeyCode:A,multiSelectionActive:p,edgeLookup:b,nodeLookup:w,connectionLookup:O,defaultEdgeOptions:y,connectionStartHandle:C,panOnDrag:_}=nl(),S=nd(null),L=nd(new Set),E=nd(new Set),T=nd(null),D=Pa(()=>d.value&&(e.isSelecting||s.value)),P=Pa(()=>C.value!==null);let Q=!1,M=!1;const B=cq(k,{actInsideInputWithModifier:!1}),R=cq(A);pt(B,q=>{q&&(m(g.value),v(h.value),u.value=!1)}),pt(R,q=>{p.value=q});function I(q,re){return J=>{J.target===re&&(q==null||q(J))}}function F(q){if(Q||P.value){Q=!1;return}o.paneClick(q),a(),u.value=!1}function j(q){var re;if(Array.isArray(_.value)&&((re=_.value)!=null&&re.includes(2))){q.preventDefault();return}o.paneContextMenu(q)}function W(q){o.paneScroll(q)}function H(q){var re,J,oe;if(T.value=((re=t.value)==null?void 0:re.getBoundingClientRect())??null,!d.value||!e.isSelecting||q.button!==0||q.target!==S.value||!T.value)return;(oe=(J=q.target)==null?void 0:J.setPointerCapture)==null||oe.call(J,q.pointerId);const{x:se,y:le}=iOs(q,T.value);M=!0,Q=!1,a(),l.value={width:0,height:0,startX:se,startY:le,x:se,y:le},o.selectionStart(q)}function $(q){var re;if(!T.value||!l.value)return;Q=!0;const{x:J,y:oe}=QO(q,T.value),{startX:se=0,startY:le=0}=l.value,ue={startX:se,startY:le,x:JY.id)),E.value=new Set;const z=((re=y.value)==null?void 0:re.selectable)??!0;for(const Y of L.value){const ie=O.value.get(Y);if(ie)for(const{edgeId:te}of ie.values()){const Z=b.value.get(te);Z&&(Z.selectable??z)&&E.value.add(te)}}if(!okn(ee,L.value)){const Y=m5(w.value,L.value,!0);o.nodesChange(Y)}if(!okn(de,E.value)){const Y=m5(b.value,E.value);o.edgesChange(Y)}l.value=ue,s.value=!0,u.value=!1}function G(q){var re;q.button!==0||!M||((re=q.target)==null||re.releasePointerCapture(q.pointerId),!s.value&&l.value&&q.target===S.value&&F(q),s.value=!1,l.value=null,u.value=L.value.size>0,o.selectionEnd(q),e.selectionKeyPressed&&(Q=!1),M=!1)}return(q,re)=>(xe(),Ge("div",{ref_key:"container",ref:S,class:Eo(["vue-flow__pane vue-flow__container",{selection:q.isSelecting}]),onClick:re[0]||(re[0]=J=>D.value?void 0:I(F,S.value)(J)),onContextmenu:re[1]||(re[1]=J=>I(j,S.value)(J)),onWheelPassive:re[2]||(re[2]=J=>I(W,S.value)(J)),onPointerenter:re[3]||(re[3]=J=>D.value?void 0:Ae(o).paneMouseEnter(J)),onPointerdown:re[4]||(re[4]=J=>D.value?H(J):Ae(o).paneMouseMove(J)),onPointermove:re[5]||(re[5]=J=>D.value?$(J):Ae(o).paneMouseMove(J)),onPointerup:re[6]||(re[6]=J=>D.value?G(J):void 0),onPointerleave:re[7]||(re[7]=J=>Ae(o).paneMouseLeave(J))},[Zr(q.$slots,"default"),Ae(s)&&Ae(l)?(xe(),Ut(Jws,{key:0,"user-selection-rect":Ae(l)},null,8,["user-selection-rect"])):nn("",!0),Ae(u)&&Ae(g).length?(xe(),Ut(nOs,{key:1})):nn("",!0)],34))}}),sOs={name:"Transform",compatConfig:{MODE:3}},aOs=Je({...sOs,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:r}=nl(),o=X(()=>n.value?!r.value:!1),s=X(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(a,l)=>(xe(),Ge("div",{class:"vue-flow__transformationpane vue-flow__container",style:no({transform:s.value,opacity:o.value?0:void 0})},[Zr(a.$slots,"default")],4))}}),lOs={name:"Viewport",compatConfig:{MODE:3}},cOs=Je({...lOs,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:r,translateExtent:o,zoomActivationKeyCode:s,selectionKeyCode:a,panActivationKeyCode:l,panOnScroll:d,panOnScrollMode:u,panOnScrollSpeed:h,panOnDrag:g,zoomOnDoubleClick:m,zoomOnPinch:v,zoomOnScroll:f,preventScrolling:k,noWheelClassName:A,noPanClassName:p,emits:b,connectionStartHandle:w,userSelectionActive:O,paneDragging:y,d3Zoom:C,d3Selection:_,d3ZoomHandler:S,viewport:L,viewportRef:E,paneClickDistance:T}=nl();qws(E);const D=nd(!1),P=nd(!1);let Q=null,M=!1,B=0,R={x:0,y:0,zoom:0};const I=cq(l),F=cq(a),j=cq(s),W=Pa(()=>(!F.value||F.value&&a.value===!0)&&(I.value||g.value)),H=Pa(()=>I.value||d.value),$=Pa(()=>a.value===!0&&W.value!==!0),G=Pa(()=>F.value&&a.value!==!0||O.value||$.value),q=Pa(()=>w.value!==null);An(()=>{if(!E.value){zre("Viewport element is missing");return}const le=E.value,ue=le.getBoundingClientRect(),ee=C3s().clickDistance(T.value).scaleExtent([t.value,n.value]).translateExtent(o.value),de=$b(le).call(ee),z=de.on("wheel.zoom"),Y=az.translate(r.value.x??0,r.value.y??0).scale(eI(r.value.zoom??1,t.value,n.value)),ie=[[0,0],[ue.width,ue.height]],te=ee.constrain()(Y,ie,o.value);ee.transform(de,te),ee.wheelDelta(H0n),C.value=ee,_.value=de,S.value=z,L.value={x:te.x,y:te.y,zoom:te.k},ee.on("start",Z=>{var he;if(!Z.sourceEvent)return null;B=Z.sourceEvent.button,D.value=!0;const pe=oe(Z.transform);((he=Z.sourceEvent)==null?void 0:he.type)==="mousedown"&&(y.value=!0),R=pe,b.viewportChangeStart(pe),b.moveStart({event:Z,flowTransform:pe})}),ee.on("end",Z=>{if(!Z.sourceEvent)return null;if(D.value=!1,y.value=!1,re(W.value,B??0)&&!M&&b.paneContextMenu(Z.sourceEvent),M=!1,J(R,Z.transform)){const he=oe(Z.transform);R=he,b.viewportChangeEnd(he),b.moveEnd({event:Z,flowTransform:he})}}),ee.filter(Z=>{var he;const pe=j.value||f.value,Ce=v.value&&Z.ctrlKey,Qe=Z.button,ke=Z.type==="wheel";if(Qe===1&&Z.type==="mousedown"&&(se(Z,"vue-flow__node")||se(Z,"vue-flow__edge")))return!0;if(!W.value&&!pe&&!H.value&&!m.value&&!v.value||O.value||q.value&&!ke||!m.value&&Z.type==="dblclick"||se(Z,A.value)&&ke||se(Z,p.value)&&(!ke||H.value&&ke&&!j.value)||!v.value&&Z.ctrlKey&&ke||!pe&&!H.value&&!Ce&&ke)return!1;if(!v&&Z.type==="touchstart"&&((he=Z.touches)==null?void 0:he.length)>1)return Z.preventDefault(),!1;if(!W.value&&(Z.type==="mousedown"||Z.type==="touchstart")||$.value&&Array.isArray(g.value)&&g.value.includes(0)&&Qe===0||Array.isArray(g.value)&&!g.value.includes(Qe)&&(Z.type==="mousedown"||Z.type==="touchstart"))return!1;const me=Array.isArray(g.value)&&g.value.includes(Qe)||a.value===!0&&Array.isArray(g.value)&&!g.value.includes(0)||!Qe||Qe<=1;return(!Z.ctrlKey||I.value||ke)&&me}),pt([O,W],()=>{O.value&&!D.value?ee.on("zoom",null):O.value||ee.on("zoom",Z=>{L.value={x:Z.transform.x,y:Z.transform.y,zoom:Z.transform.k};const he=oe(Z.transform);M=re(W.value,B??0),b.viewportChange(he),b.move({event:Z,flowTransform:he})})},{immediate:!0}),pt([O,H,u,j,v,k,A],()=>{H.value&&!j.value&&!O.value?de.on("wheel.zoom",Z=>{if(se(Z,A.value))return!1;const he=j.value||f.value,pe=v.value&&Z.ctrlKey;if(!(!k.value||H.value||he||pe))return!1;Z.preventDefault(),Z.stopImmediatePropagation();const Qe=de.property("__zoom").k||1,ke=z2e();if(!I.value&&Z.ctrlKey&&v.value&&ke){const Ye=Kw(Z),ot=H0n(Z),We=Qe*2**ot;ee.scaleTo(de,We,Ye,Z);return}const me=Z.deltaMode===1?20:1;let _e=u.value===lq.Vertical?0:Z.deltaX*me,Te=u.value===lq.Horizontal?0:Z.deltaY*me;!ke&&Z.shiftKey&&u.value!==lq.Vertical&&!_e&&Te&&(_e=Te,Te=0),ee.translateBy(de,-(_e/Qe)*h.value,-(Te/Qe)*h.value);const De=oe(de.property("__zoom"));Q&&clearTimeout(Q),P.value?(b.move({event:Z,flowTransform:De}),b.viewportChange(De),Q=setTimeout(()=>{b.moveEnd({event:Z,flowTransform:De}),b.viewportChangeEnd(De),P.value=!1},150)):(P.value=!0,b.moveStart({event:Z,flowTransform:De}),b.viewportChangeStart(De))},{passive:!1}):typeof z<"u"&&de.on("wheel.zoom",function(Z,he){const pe=!k.value&&Z.type==="wheel"&&!Z.ctrlKey,Ce=j.value||f.value,Qe=v.value&&Z.ctrlKey;if(!Ce&&!d.value&&!Qe&&Z.type==="wheel"||pe||se(Z,A.value))return null;Z.preventDefault(),z.call(this,Z,he)},{passive:!1})},{immediate:!0})});function re(le,ue){return ue===2&&Array.isArray(le)&&le.includes(2)}function J(le,ue){return le.x!==ue.x&&!Number.isNaN(ue.x)||le.y!==ue.y&&!Number.isNaN(ue.y)||le.zoom!==ue.k&&!Number.isNaN(ue.k)}function oe(le){return{x:le.x,y:le.y,zoom:le.k}}function se(le,ue){return le.target.closest(`.${ue}`)}return(le,ue)=>(xe(),Ge("div",{ref_key:"viewportRef",ref:E,class:"vue-flow__viewport vue-flow__container"},[c(oOs,{"is-selecting":G.value,"selection-key-pressed":Ae(F),class:Eo({connecting:q.value,dragging:Ae(y),draggable:Ae(g)===!0||Array.isArray(Ae(g))&&Ae(g).includes(0)})},{default:Oe(()=>[c(aOs,null,{default:Oe(()=>[Zr(le.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),dOs=["id"],uOs=["id"],hOs=["id"],fOs={name:"A11yDescriptions",compatConfig:{MODE:3}},gOs=Je({...fOs,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:r}=nl();return(o,s)=>(xe(),Ge(sn,null,[ge("div",{id:`${Ae(XYn)}-${Ae(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+Pe(Ae(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,dOs),ge("div",{id:`${Ae(GYn)}-${Ae(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,uOs),Ae(n)?nn("",!0):(xe(),Ge("div",{key:0,id:`${Ae(T3s)}-${Ae(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},Pe(Ae(r)),9,hOs))],64))}});function mOs(){const e=nl();pt(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function kOs(e,t,n){return n===Vi.Left?e-t:n===Vi.Right?e+t:e}function vOs(e,t,n){return n===Vi.Top?e-t:n===Vi.Bottom?e+t:e}const Xst=function({radius:e=10,centerX:t=0,centerY:n=0,position:r=Vi.Top,type:o}){return xn("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${o}`,cx:kOs(t,e,r),cy:vOs(n,e,r),r:e,stroke:"transparent",fill:"transparent"})};Xst.props=["radius","centerX","centerY","position","type"];Xst.compatConfig={MODE:3};const ukn=Xst,AOs=Je({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:r,edgeUpdaterRadius:o,emits:s,nodesSelectionActive:a,noPanClassName:l,getEdgeTypes:d,removeSelectedEdges:u,findEdge:h,findNode:g,isValidConnection:m,multiSelectionActive:v,disableKeyboardA11y:f,elementsSelectable:k,edgesUpdatable:A,edgesFocusable:p,hooks:b}=nl(),w=X(()=>h(e.id)),{emit:O,on:y}=aws(w.value,s),C=bt($Oe),_=ps(),S=fe(!1),L=fe(!1),E=fe(""),T=fe(null),D=fe("source"),P=fe(null),Q=Pa(()=>typeof w.value.selectable>"u"?k.value:w.value.selectable),M=Pa(()=>typeof w.value.updatable>"u"?A.value:w.value.updatable),B=Pa(()=>typeof w.value.focusable>"u"?p.value:w.value.focusable);Yi(rws,e.id),Yi(ows,P);const R=X(()=>w.value.class instanceof Function?w.value.class(w.value):w.value.class),I=X(()=>w.value.style instanceof Function?w.value.style(w.value):w.value.style),F=X(()=>{const Y=w.value.type||"default",ie=C==null?void 0:C[`edge-${Y}`];if(ie)return ie;let te=w.value.template??d.value[Y];if(typeof te=="string"&&_){const Z=Object.keys(_.appContext.components);Z&&Z.includes(Y)&&(te=_n(Y,!1))}return te&&typeof te!="string"?te:(s.error(new Lf(Yh.EDGE_TYPE_MISSING,te)),!1)}),{handlePointerDown:j}=fZn({nodeId:E,handleId:T,type:D,isValidConnection:m,edgeUpdaterType:D,onEdgeUpdate:$,onEdgeUpdateEnd:G});return()=>{const Y=g(w.value.source),ie=g(w.value.target),te="pathOptions"in w.value?w.value.pathOptions:{};if(!Y&&!ie)return s.error(new Lf(Yh.EDGE_SOURCE_TARGET_MISSING,w.value.id,w.value.source,w.value.target)),null;if(!Y)return s.error(new Lf(Yh.EDGE_SOURCE_MISSING,w.value.id,w.value.source)),null;if(!ie)return s.error(new Lf(Yh.EDGE_TARGET_MISSING,w.value.id,w.value.target)),null;if(!w.value||w.value.hidden||Y.hidden||ie.hidden)return null;let Z;r.value===H6.Strict?Z=Y.handleBounds.source:Z=[...Y.handleBounds.source||[],...Y.handleBounds.target||[]];const he=J0n(Z,w.value.sourceHandle);let pe;r.value===H6.Strict?pe=ie.handleBounds.target:pe=[...ie.handleBounds.target||[],...ie.handleBounds.source||[]];const Ce=J0n(pe,w.value.targetHandle),Qe=(he==null?void 0:he.position)||Vi.Bottom,ke=(Ce==null?void 0:Ce.position)||Vi.Top,{x:me,y:_e}=lz(Y,he,Qe),{x:Te,y:De}=lz(ie,Ce,ke);return w.value.sourceX=me,w.value.sourceY=_e,w.value.targetX=Te,w.value.targetY=De,xn("g",{ref:P,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${F.value===!1?"default":w.value.type||"default"}`,l.value,R.value,{updating:S.value,selected:w.value.selected,animated:w.value.animated,inactive:!Q.value&&!b.value.edgeClick.hasListeners()}],tabIndex:B.value?0:void 0,"aria-label":w.value.ariaLabel===null?void 0:w.value.ariaLabel??`Edge from ${w.value.source} to ${w.value.target}`,"aria-describedby":B.value?`${GYn}-${t}`:void 0,"aria-roledescription":"edge",role:B.value?"group":"img",...w.value.domAttributes,onClick:re,onContextmenu:J,onDblclick:oe,onMouseenter:se,onMousemove:le,onMouseleave:ue,onKeyDown:B.value?z:void 0},[L.value?null:xn(F.value===!1?d.value.default:F.value,{id:e.id,sourceNode:Y,targetNode:ie,source:w.value.source,target:w.value.target,type:w.value.type,updatable:M.value,selected:w.value.selected,animated:w.value.animated,label:w.value.label,labelStyle:w.value.labelStyle,labelShowBg:w.value.labelShowBg,labelBgStyle:w.value.labelBgStyle,labelBgPadding:w.value.labelBgPadding,labelBgBorderRadius:w.value.labelBgBorderRadius,data:w.value.data,events:{...w.value.events,...y},style:I.value,markerStart:`url('#${Ite(w.value.markerStart,t)}')`,markerEnd:`url('#${Ite(w.value.markerEnd,t)}')`,sourcePosition:Qe,targetPosition:ke,sourceX:me,sourceY:_e,targetX:Te,targetY:De,sourceHandleId:w.value.sourceHandle,targetHandleId:w.value.targetHandle,interactionWidth:w.value.interactionWidth,...te}),[M.value==="source"||M.value===!0?[xn("g",{onMousedown:ee,onMouseenter:W,onMouseout:H},xn(ukn,{position:Qe,centerX:me,centerY:_e,radius:o.value,type:"source","data-type":"source"}))]:null,M.value==="target"||M.value===!0?[xn("g",{onMousedown:de,onMouseenter:W,onMouseout:H},xn(ukn,{position:ke,centerX:Te,centerY:De,radius:o.value,type:"target","data-type":"target"}))]:null]])};function W(){S.value=!0}function H(){S.value=!1}function $(Y,ie){O.update({event:Y,edge:w.value,connection:ie})}function G(Y){O.updateEnd({event:Y,edge:w.value}),L.value=!1}function q(Y,ie){Y.button===0&&(L.value=!0,E.value=ie?w.value.target:w.value.source,T.value=(ie?w.value.targetHandle:w.value.sourceHandle)??null,D.value=ie?"target":"source",O.updateStart({event:Y,edge:w.value}),j(Y))}function re(Y){var ie;const te={event:Y,edge:w.value};Q.value&&(a.value=!1,w.value.selected&&v.value?(u([w.value]),(ie=P.value)==null||ie.blur()):n([w.value])),O.click(te)}function J(Y){O.contextMenu({event:Y,edge:w.value})}function oe(Y){O.doubleClick({event:Y,edge:w.value})}function se(Y){O.mouseEnter({event:Y,edge:w.value})}function le(Y){O.mouseMove({event:Y,edge:w.value})}function ue(Y){O.mouseLeave({event:Y,edge:w.value})}function ee(Y){q(Y,!0)}function de(Y){q(Y,!1)}function z(Y){var ie;!f.value&&YYn.includes(Y.key)&&Q.value&&(Y.key==="Escape"?((ie=P.value)==null||ie.blur(),u([h(e.id)])):n([h(e.id)]))}}}),pOs=AOs,bOs=Je({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:r,connectionEndHandle:o,connectionPosition:s,connectionLineType:a,connectionLineStyle:l,connectionLineOptions:d,connectionStatus:u,viewport:h,findNode:g}=nl(),m=(e=bt($Oe))==null?void 0:e["connection-line"],v=X(()=>{var b;return g((b=r.value)==null?void 0:b.nodeId)}),f=X(()=>{var b;return g((b=o.value)==null?void 0:b.nodeId)??null}),k=X(()=>({x:(s.value.x-h.value.x)/h.value.zoom,y:(s.value.y-h.value.y)/h.value.zoom})),A=X(()=>d.value.markerStart?`url(#${Ite(d.value.markerStart,t)})`:""),p=X(()=>d.value.markerEnd?`url(#${Ite(d.value.markerEnd,t)})`:"");return()=>{var b,w,O;if(!v.value||!r.value)return null;const y=r.value.id,C=r.value.type,_=v.value.handleBounds;let S=(_==null?void 0:_[C])??[];if(n.value===H6.Loose){const I=(_==null?void 0:_[C==="source"?"target":"source"])??[];S=[...S,...I]}if(!S)return null;const L=(y?S.find(I=>I.id===y):S[0])??null,E=(L==null?void 0:L.position)??Vi.Top,{x:T,y:D}=lz(v.value,L,E);let P=null;f.value&&(n.value===H6.Strict?P=((b=f.value.handleBounds[C==="source"?"target":"source"])==null?void 0:b.find(I=>{var F;return I.id===((F=o.value)==null?void 0:F.id)}))||null:P=((w=[...f.value.handleBounds.source??[],...f.value.handleBounds.target??[]])==null?void 0:w.find(I=>{var F;return I.id===((F=o.value)==null?void 0:F.id)}))||null);const Q=((O=o.value)==null?void 0:O.position)??(E?UGe[E]:null);if(!E||!Q)return null;const M=a.value??d.value.type??FT.Bezier;let B="";const R={sourceX:T,sourceY:D,sourcePosition:E,targetX:k.value.x,targetY:k.value.y,targetPosition:Q};return M===FT.Bezier?[B]=$st(R):M===FT.Step?[B]=WGe({...R,borderRadius:0}):M===FT.SmoothStep?[B]=WGe(R):M===FT.SimpleBezier?[B]=pZn(R):B=`M${T},${D} ${k.value.x},${k.value.y}`,xn("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},xn("g",{class:"vue-flow__connection"},m?xn(m,{sourceX:T,sourceY:D,sourcePosition:E,targetX:k.value.x,targetY:k.value.y,targetPosition:Q,sourceNode:v.value,sourceHandle:L,targetNode:f.value,targetHandle:P,markerEnd:p.value,markerStart:A.value,connectionStatus:u.value}):xn("path",{d:B,class:[d.value.class,u.value,"vue-flow__connection-path"],style:{...l.value,...d.value.style},"marker-end":p.value,"marker-start":A.value})))}}}),wOs=bOs,OOs=["id","markerWidth","markerHeight","markerUnits","orient"],yOs={name:"MarkerType",compatConfig:{MODE:3}},COs=Je({...yOs,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(xe(),Ge("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===Ae(FGe).ArrowClosed?(xe(),Ge("polyline",{key:0,style:no({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):nn("",!0),t.type===Ae(FGe).Arrow?(xe(),Ge("polyline",{key:1,style:no({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):nn("",!0)],8,OOs))}}),_Os={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},SOs={name:"MarkerDefinitions",compatConfig:{MODE:3}},LOs=Je({...SOs,setup(e){const{id:t,edges:n,connectionLineOptions:r,defaultMarkerColor:o}=nl(),s=X(()=>{const a=new Set,l=[],d=u=>{if(u){const h=Ite(u,t);a.has(h)||(typeof u=="object"?l.push({...u,id:h,color:u.color||o.value}):l.push({id:h,color:o.value,type:u}),a.add(h))}};for(const u of[r.value.markerEnd,r.value.markerStart])d(u);for(const u of n.value)for(const h of[u.markerStart,u.markerEnd])d(h);return l.sort((u,h)=>u.id.localeCompare(h.id))});return(a,l)=>(xe(),Ge("svg",_Os,[ge("defs",null,[(xe(!0),Ge(sn,null,Bi(s.value,d=>(xe(),Ut(COs,{id:d.id,key:d.id,type:d.type,color:d.color,width:d.width,height:d.height,markerUnits:d.markerUnits,"stroke-width":d.strokeWidth,orient:d.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),xOs={name:"Edges",compatConfig:{MODE:3}},EOs=Je({...xOs,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:r}=nl();return(o,s)=>(xe(),Ge(sn,null,[c(LOs),(xe(!0),Ge(sn,null,Bi(Ae(n),a=>(xe(),Ge("svg",{key:a.id,class:"vue-flow__edges vue-flow__container",style:no({zIndex:Ae($3s)(a,Ae(t),Ae(r))})},[c(Ae(pOs),{id:a.id},null,8,["id"])],4))),128)),c(Ae(wOs))],64))}}),TOs=Je({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:r,nodesSelectionActive:o,multiSelectionActive:s,emits:a,removeSelectedNodes:l,addSelectedNodes:d,updateNodeDimensions:u,onUpdateNodeInternals:h,getNodeTypes:g,nodeExtent:m,elevateNodesOnSelect:v,disableKeyboardA11y:f,ariaLiveMessage:k,snapToGrid:A,snapGrid:p,nodeDragThreshold:b,nodesDraggable:w,elementsSelectable:O,nodesConnectable:y,nodesFocusable:C,hooks:_}=nl(),S=fe(null);Yi(uZn,S),Yi(dZn,e.id);const L=bt($Oe),E=ps(),T=mZn(),{node:D,parentNode:P}=gZn(e.id),{emit:Q,on:M}=uws(D,a),B=Pa(()=>typeof D.draggable>"u"?w.value:D.draggable),R=Pa(()=>typeof D.selectable>"u"?O.value:D.selectable),I=Pa(()=>typeof D.connectable>"u"?y.value:D.connectable),F=Pa(()=>typeof D.focusable>"u"?C.value:D.focusable),j=X(()=>R.value||B.value||_.value.nodeClick.hasListeners()||_.value.nodeDoubleClick.hasListeners()||_.value.nodeMouseEnter.hasListeners()||_.value.nodeMouseMove.hasListeners()||_.value.nodeMouseLeave.hasListeners()),W=Pa(()=>!!D.dimensions.width&&!!D.dimensions.height),H=X(()=>{const ie=D.type||"default",te=L==null?void 0:L[`node-${ie}`];if(te)return te;let Z=D.template||g.value[ie];if(typeof Z=="string"&&E){const he=Object.keys(E.appContext.components);he&&he.includes(ie)&&(Z=_n(ie,!1))}return Z&&typeof Z!="string"?Z:(a.error(new Lf(Yh.NODE_TYPE_MISSING,Z)),!1)}),$=hZn({id:e.id,el:S,disabled:()=>!B.value,selectable:R,dragHandle:()=>D.dragHandle,onStart(ie){Q.dragStart(ie)},onDrag(ie){Q.drag(ie)},onStop(ie){Q.dragStop(ie)},onClick(ie){z(ie)}}),G=X(()=>D.class instanceof Function?D.class(D):D.class),q=X(()=>{const ie=(D.style instanceof Function?D.style(D):D.style)||{},te=D.width instanceof Function?D.width(D):D.width,Z=D.height instanceof Function?D.height(D):D.height;return!ie.width&&te&&(ie.width=typeof te=="string"?te:`${te}px`),!ie.height&&Z&&(ie.height=typeof Z=="string"?Z:`${Z}px`),ie}),re=Pa(()=>Number(D.zIndex??q.value.zIndex??0));return h(ie=>{(ie.includes(e.id)||!ie.length)&&oe()}),An(()=>{pt(()=>D.hidden,(ie=!1,te,Z)=>{!ie&&S.value&&(e.resizeObserver.observe(S.value),Z(()=>{S.value&&e.resizeObserver.unobserve(S.value)}))},{immediate:!0,flush:"post"})}),pt([()=>D.type,()=>D.sourcePosition,()=>D.targetPosition],()=>{ai(()=>{u([{id:e.id,nodeElement:S.value,forceUpdate:!0}])})}),pt([()=>D.position.x,()=>D.position.y,()=>{var ie;return(ie=P.value)==null?void 0:ie.computedPosition.x},()=>{var ie;return(ie=P.value)==null?void 0:ie.computedPosition.y},()=>{var ie;return(ie=P.value)==null?void 0:ie.computedPosition.z},re,()=>D.selected,()=>D.dimensions.height,()=>D.dimensions.width,()=>{var ie;return(ie=P.value)==null?void 0:ie.dimensions.height},()=>{var ie;return(ie=P.value)==null?void 0:ie.dimensions.width}],([ie,te,Z,he,pe,Ce])=>{const Qe={x:ie,y:te,z:Ce+(v.value&&D.selected?1e3:0)};typeof Z<"u"&&typeof he<"u"?D.computedPosition=U3s({x:Z,y:he,z:pe},Qe):D.computedPosition=Qe},{flush:"post",immediate:!0}),pt([()=>D.extent,m],([ie,te],[Z,he])=>{(ie!==Z||te!==he)&&J()}),D.extent==="parent"||typeof D.extent=="object"&&"range"in D.extent&&D.extent.range==="parent"?EGe(()=>W).toBe(!0).then(J):J(),()=>D.hidden?null:xn("div",{ref:S,"data-id":D.id,class:["vue-flow__node",`vue-flow__node-${H.value===!1?"default":D.type||"default"}`,{[n.value]:B.value,dragging:$==null?void 0:$.value,draggable:B.value,selected:D.selected,selectable:R.value,parent:D.isParent},G.value],style:{visibility:W.value?"visible":"hidden",zIndex:D.computedPosition.z??re.value,transform:`translate(${D.computedPosition.x}px,${D.computedPosition.y}px)`,pointerEvents:j.value?"all":"none",...q.value},tabIndex:F.value?0:void 0,role:F.value?"group":void 0,"aria-describedby":f.value?void 0:`${XYn}-${t}`,"aria-label":D.ariaLabel,"aria-roledescription":"node",...D.domAttributes,onMouseenter:se,onMousemove:le,onMouseleave:ue,onContextmenu:ee,onClick:z,onDblclick:de,onKeydown:Y},[xn(H.value===!1?g.value.default:H.value,{id:D.id,type:D.type,data:D.data,events:{...D.events,...M},selected:D.selected,resizing:D.resizing,dragging:$.value,connectable:I.value,position:D.computedPosition,dimensions:D.dimensions,isValidTargetPos:D.isValidTargetPos,isValidSourcePos:D.isValidSourcePos,parent:D.parentNode,parentNodeId:D.parentNode,zIndex:D.computedPosition.z??re.value,targetPosition:D.targetPosition,sourcePosition:D.sourcePosition,label:D.label,dragHandle:D.dragHandle,onUpdateNodeInternals:oe})]);function J(){const ie=D.computedPosition,{computedPosition:te,position:Z}=zst(D,A.value?HOe(ie,p.value):ie,a.error,m.value,P.value);(D.computedPosition.x!==te.x||D.computedPosition.y!==te.y)&&(D.computedPosition={...D.computedPosition,...te}),(D.position.x!==Z.x||D.position.y!==Z.y)&&(D.position=Z)}function oe(){S.value&&u([{id:e.id,nodeElement:S.value,forceUpdate:!0}])}function se(ie){$!=null&&$.value||Q.mouseEnter({event:ie,node:D})}function le(ie){$!=null&&$.value||Q.mouseMove({event:ie,node:D})}function ue(ie){$!=null&&$.value||Q.mouseLeave({event:ie,node:D})}function ee(ie){return Q.contextMenu({event:ie,node:D})}function de(ie){return Q.doubleClick({event:ie,node:D})}function z(ie){R.value&&(!r.value||!B.value||b.value>0)&&jGe(D,s.value,d,l,o,!1,S.value),Q.click({event:ie,node:D})}function Y(ie){if(!(NGe(ie)||f.value))if(YYn.includes(ie.key)&&R.value){const te=ie.key==="Escape";jGe(D,s.value,d,l,o,te,S.value)}else B.value&&D.selected&&kj[ie.key]&&(ie.preventDefault(),k.value=`Moved selected node ${ie.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~D.position.x}, y: ${~~D.position.y}`,T({x:kj[ie.key].x,y:kj[ie.key].y},ie.shiftKey))}}}),QOs=TOs,DOs={height:"0",width:"0"},BOs={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},ROs=Je({...BOs,setup(e){const{viewportRef:t}=nl(),n=Pa(()=>{var r;return(r=t.value)==null?void 0:r.getElementsByClassName("vue-flow__edge-labels")[0]});return(r,o)=>(xe(),Ge("svg",null,[(xe(),Ge("foreignObject",DOs,[(xe(),Ut(f3,{to:n.value,disabled:!n.value},[Zr(r.$slots,"default")],8,["to","disabled"]))]))]))}});function IOs(e={includeHiddenNodes:!1}){const{nodes:t}=nl();return X(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&((n==null?void 0:n.handleBounds)===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const MOs={class:"vue-flow__nodes vue-flow__container"},POs={name:"Nodes",compatConfig:{MODE:3}},FOs=Je({...POs,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:r}=nl(),o=IOs(),s=fe();return pt(o,a=>{a&&ai(()=>{r.nodesInitialized(t.value)})},{immediate:!0}),An(()=>{s.value=new ResizeObserver(a=>{const l=a.map(d=>({id:d.target.getAttribute("data-id"),nodeElement:d.target,forceUpdate:!0}));ai(()=>n(l))})}),qs(()=>{var a;return(a=s.value)==null?void 0:a.disconnect()}),(a,l)=>(xe(),Ge("div",MOs,[s.value?(xe(!0),Ge(sn,{key:0},Bi(Ae(t),(d,u,h,g)=>{const m=[d.id];if(g&&g.key===d.id&&Zri(g,m))return g;const v=(xe(),Ut(Ae(QOs),{id:d.id,key:d.id,"resize-observer":s.value},null,8,["id","resize-observer"]));return v.memo=m,v},l,0),128)):nn("",!0)]))}});function NOs(){const{emits:e}=nl();An(()=>{if(cZn()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Lf(Yh.MISSING_STYLES))}})}const UOs=ge("div",{class:"vue-flow__edge-labels"},null,-1),jOs={name:"VueFlow",compatConfig:{MODE:3}},wZn=Je({...jOs,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const r=e,o=TAn(),s=rRe(r,"modelValue",n),a=rRe(r,"nodes",n),l=rRe(r,"edges",n),d=nl(r),u=mws({modelValue:s,nodes:a,edges:l},r,d);return vws(n,d.hooks),mOs(),NOs(),Yi($Oe,o),Qa(u),t(d),(h,g)=>(xe(),Ge("div",{ref:Ae(d).vueFlowRef,class:"vue-flow"},[c(cOs,null,{default:Oe(()=>[c(EOs),UOs,c(FOs),Zr(h.$slots,"zoom-pane")]),_:3}),Zr(h.$slots,"default"),c(gOs)],512))}}),WOs={name:"Panel",compatConfig:{MODE:3}},OZn=Je({...WOs,props:{position:{}},setup(e){const t=e,{userSelectionActive:n}=nl(),r=X(()=>`${t.position}`.split("-"));return(o,s)=>(xe(),Ge("div",{class:Eo(["vue-flow__panel",r.value]),style:no({pointerEvents:Ae(n)?"none":"all"})},[Zr(o.$slots,"default")],6))}});var NS=(e=>(e.Lines="lines",e.Dots="dots",e))(NS||{});const yZn=function({dimensions:e,size:t,color:n}){return xn("path",{stroke:n,"stroke-width":t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},CZn=function({radius:e,color:t}){return xn("circle",{cx:e,cy:e,r:e,fill:t})};NS.Lines+"",NS.Dots+"";const VOs={[NS.Dots]:"#81818a",[NS.Lines]:"#eee"},zOs=["id","x","y","width","height","patternTransform"],HOs={key:2,height:"100",width:"100"},$Os=["fill"],XOs=["x","y","fill"],GOs={name:"Background",compatConfig:{MODE:3}},_Zn=Je({...GOs,props:{id:{},variant:{default:()=>NS.Dots},gap:{default:20},size:{default:1},lineWidth:{default:1},patternColor:{},color:{},bgColor:{},height:{default:100},width:{default:100},x:{default:0},y:{default:0},offset:{default:0}},setup(e){const{id:t,viewport:n}=nl(),r=X(()=>{const a=n.value.zoom,[l,d]=Array.isArray(e.gap)?e.gap:[e.gap,e.gap],u=[l*a||1,d*a||1],h=e.size*a,[g,m]=Array.isArray(e.offset)?e.offset:[e.offset,e.offset],v=[g*a||1+u[0]/2,m*a||1+u[1]/2];return{scaledGap:u,offset:v,size:h}}),o=Pa(()=>`pattern-${t}${e.id?`-${e.id}`:""}`),s=Pa(()=>e.color||e.patternColor||VOs[e.variant||NS.Dots]);return(a,l)=>(xe(),Ge("svg",{class:"vue-flow__background vue-flow__container",style:no({height:`${a.height>100?100:a.height}%`,width:`${a.width>100?100:a.width}%`})},[Zr(a.$slots,"pattern-container",{id:o.value},()=>[ge("pattern",{id:o.value,x:Ae(n).x%r.value.scaledGap[0],y:Ae(n).y%r.value.scaledGap[1],width:r.value.scaledGap[0],height:r.value.scaledGap[1],patternTransform:`translate(-${r.value.offset[0]},-${r.value.offset[1]})`,patternUnits:"userSpaceOnUse"},[Zr(a.$slots,"pattern",{},()=>[a.variant===Ae(NS).Lines?(xe(),Ut(Ae(yZn),{key:0,size:a.lineWidth,color:s.value,dimensions:r.value.scaledGap},null,8,["size","color","dimensions"])):a.variant===Ae(NS).Dots?(xe(),Ut(Ae(CZn),{key:1,color:s.value,radius:r.value.size/2},null,8,["color","radius"])):nn("",!0),a.bgColor?(xe(),Ge("svg",HOs,[ge("rect",{width:"100%",height:"100%",fill:a.bgColor},null,8,$Os)])):nn("",!0)])],8,zOs)]),ge("rect",{x:a.x,y:a.y,width:"100%",height:"100%",fill:`url(#${o.value})`},null,8,XOs),Zr(a.$slots,"default",{id:o.value})],4))}}),YOs={name:"ControlButton",compatConfig:{MODE:3}},ZOs=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},qOs={type:"button",class:"vue-flow__controls-button"};function KOs(e,t,n,r,o,s){return xe(),Ge("button",qOs,[Zr(e.$slots,"default")])}const Nde=ZOs(YOs,[["render",KOs]]),JOs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},eys=ge("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1),tys=[eys];function nys(e,t){return xe(),Ge("svg",JOs,tys)}const iys={render:nys},rys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},oys=ge("path",{d:"M0 0h32v4.2H0z"},null,-1),sys=[oys];function ays(e,t){return xe(),Ge("svg",rys,sys)}const lys={render:ays},cys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},dys=ge("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1),uys=[dys];function hys(e,t){return xe(),Ge("svg",cys,uys)}const fys={render:hys},gys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},mys=ge("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"},null,-1),kys=[mys];function vys(e,t){return xe(),Ge("svg",gys,kys)}const Ays={render:vys},pys={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},bys=ge("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1),wys=[bys];function Oys(e,t){return xe(),Ge("svg",pys,wys)}const yys={render:Oys},Cys={name:"Controls",compatConfig:{MODE:3}},SZn=Je({...Cys,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>$Yn.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:t}){const{nodesDraggable:n,nodesConnectable:r,elementsSelectable:o,setInteractive:s,zoomIn:a,zoomOut:l,fitView:d,viewport:u,minZoom:h,maxZoom:g}=nl(),m=Pa(()=>n.value||r.value||o.value),v=Pa(()=>u.value.zoom<=h.value),f=Pa(()=>u.value.zoom>=g.value);function k(){a(),t("zoomIn")}function A(){l(),t("zoomOut")}function p(){d(e.fitViewParams),t("fitView")}function b(){s(!m.value),t("interactionChange",!m.value)}return(w,O)=>(xe(),Ut(Ae(OZn),{class:"vue-flow__controls",position:w.position},{default:Oe(()=>[Zr(w.$slots,"top"),w.showZoom?(xe(),Ge(sn,{key:0},[Zr(w.$slots,"control-zoom-in",{},()=>[c(Nde,{class:"vue-flow__controls-zoomin",disabled:f.value,onClick:k},{default:Oe(()=>[Zr(w.$slots,"icon-zoom-in",{},()=>[(xe(),Ut(Bd(Ae(iys))))])]),_:3},8,["disabled"])]),Zr(w.$slots,"control-zoom-out",{},()=>[c(Nde,{class:"vue-flow__controls-zoomout",disabled:v.value,onClick:A},{default:Oe(()=>[Zr(w.$slots,"icon-zoom-out",{},()=>[(xe(),Ut(Bd(Ae(lys))))])]),_:3},8,["disabled"])])],64)):nn("",!0),w.showFitView?Zr(w.$slots,"control-fit-view",{key:1},()=>[c(Nde,{class:"vue-flow__controls-fitview",onClick:p},{default:Oe(()=>[Zr(w.$slots,"icon-fit-view",{},()=>[(xe(),Ut(Bd(Ae(fys))))])]),_:3})]):nn("",!0),w.showInteractive?Zr(w.$slots,"control-interactive",{key:2},()=>[w.showInteractive?(xe(),Ut(Nde,{key:0,class:"vue-flow__controls-interactive",onClick:b},{default:Oe(()=>[m.value?Zr(w.$slots,"icon-unlock",{key:0},()=>[(xe(),Ut(Bd(Ae(yys))))]):nn("",!0),m.value?nn("",!0):Zr(w.$slots,"icon-lock",{key:1},()=>[(xe(),Ut(Bd(Ae(Ays))))])]),_:3})):nn("",!0)]):nn("",!0),Zr(w.$slots,"default")]),_:3},8,["position"]))}}),_ys={class:"titleBar dragHandle pr"},Sys={class:"title c"},Lys={class:"content"},xys=Je({__name:"script",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(""),o=fe(!1),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];function a(){r.value=n.value??"",o.value=!0}function l(){n.value=r.value,o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=Si,v=km,f=gc;return xe(),Ge(sn,null,[c(v,{class:"script"},{default:Oe(()=>[ge("div",_ys,[ge("div",Sys,Pe(h.$t("workbench.production.node.script.title")),1),c(m,{size:"small",variant:"text",onClick:a},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.edit")),1)]),_:1}),c(Ae(mm),{id:t.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",Lys,[c(Ae(i3),{modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=k=>n.value=k),theme:"light"},null,8,["modelValue"])]),c(Ae(mm),{id:t.handleIds.assets,type:"source",position:Ae(Vi).Bottom},null,8,["id","position"])]),_:1}),c(f,{visible:o.value,"onUpdate:visible":g[3]||(g[3]=k=>o.value=k),header:h.$t("workbench.production.node.script.editDialog"),width:"90vw","confirm-btn":h.$t("workbench.production.save"),"cancel-btn":h.$t("workbench.production.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:r.value,"onUpdate:modelValue":g[1]||(g[1]=k=>r.value=k),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[2]||(g[2]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])],64)}}}),Eys=oo(xys,[["__scopeId","data-v-e1680278"]]),Tys={class:"titleBar dragHandle pr"},Qys={class:"title c"},Dys={class:"content"},Bys=Je({__name:"scriptPlan",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(""),o=fe(!1),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];function a(){r.value=n.value??"",o.value=!0}function l(){n.value=r.value,o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=Si,v=Xy,f=km,k=gc;return xe(),Ge(sn,null,[c(f,{class:"scriptPlan"},{default:Oe(()=>[ge("div",Tys,[ge("div",Qys,Pe(h.$t("workbench.production.node.scriptPlan.title")),1),c(m,{size:"small",variant:"text",onClick:a},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.edit")),1)]),_:1}),c(Ae(mm),{id:t.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"]),c(Ae(mm),{id:t.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",Dys,[n.value?(xe(),Ut(Ae(i3),{key:1,modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=A=>n.value=A),theme:"light"},null,8,["modelValue"])):(xe(),Ut(v,{key:0,style:{"margin-top":"16px"}}))])]),_:1}),c(k,{visible:o.value,"onUpdate:visible":g[3]||(g[3]=A=>o.value=A),header:h.$t("workbench.production.node.scriptPlan.editDialog"),width:"90vw","confirm-btn":h.$t("workbench.production.save"),"cancel-btn":h.$t("workbench.production.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:r.value,"onUpdate:modelValue":g[1]||(g[1]=A=>r.value=A),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[2]||(g[2]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])],64)}}}),Rys=oo(Bys,[["__scopeId","data-v-7bff2864"]]),Iys={class:"uploadNode"},Mys={class:"data"},Pys={class:"title ac"},Fys={class:"imageBox"},Nys={class:"imageToolsWrap"},Uys={class:"upload ac"},jys={style:{"margin-left":"5px",color:"#fff"}},Wys={class:"fc ac",style:{gap:"6px"}},Vys=Je({__name:"uploadNode",props:{id:{},data:{}},emits:["upload","keep"],setup(e,{emit:t}){var k;const n=e,r=bt("openStoryboardCheck"),{updateNodeData:o,removeNodes:s}=nl("editImage"),a=fe(((k=n.data)==null?void 0:k.image)||""),l=fe(null),d=[{content:$t("workbench.production.editImage.uploadImage"),value:1},{content:$t("workbench.production.editImage.uploadStoryboardImage"),value:2}];pt(()=>{var A;return(A=n.data)==null?void 0:A.image},A=>{a.value=A||""}),qs(()=>{l.value&&URL.revokeObjectURL(l.value)});function u(){s(n.id)}const h=t;function g(A){A.value==1?v():A.value==2&&f()}function m(){if(!a.value)return window.$message.error($t("workbench.production.editImage.noImage"));h("keep",a.value)}async function v(){const A=await jV({multiple:!1,title:$t("workbench.production.editImage.selectImage")});if(A.length>0){const p=A[0].src;a.value=p,o(n.id,{image:p}),h("upload")}}async function f(){const A=await r();if(A.length>0){const p=A[0].src;a.value=p,o(n.id,{image:p}),h("upload")}}return(A,p)=>{const b=_n("i-pic"),w=jre,O=Zh,y=_n("i-upload"),C=Si,_=Rne,S=_n("i-save"),L=y1,E=_n("i-delete"),T=el;return xe(),Ge("div",Iys,[c(Ae(mm),{type:"source",position:Ae(Vi).Right,style:{"z-index":"999999"}},null,8,["position"]),ge("div",Mys,[ge("div",Pys,[c(b,{theme:"outline",size:"16",fill:"#000000"}),p[0]||(p[0]=ge("span",{style:{"margin-left":"5px",color:"#4b4b4b"}},"Image",-1))]),ge("div",Fys,[c(O,{class:"image",src:a.value,fit:"contain",style:{width:"100%",height:"100%",borderRadius:"10px"}},{overlayContent:Oe(()=>[ge("div",Nys,[c(w,{src:a.value,position:"br"},null,8,["src"])])]),_:1},8,["src"]),c(_,{options:d,onClick:g},{content:Oe(()=>[ge("div",Wys,[c(C,{variant:"outline",onClick:v},{default:Oe(()=>[...p[1]||(p[1]=[Bt("资产图片",-1)])]),_:1}),c(C,{variant:"outline",onClick:f},{default:Oe(()=>[...p[2]||(p[2]=[Bt("分镜图片",-1)])]),_:1})])]),default:Oe(()=>[ge("div",Uys,[c(y,{theme:"outline",size:"18",fill:"#fff"}),ge("span",jys,Pe(A.$t("workbench.production.editImage.upload")),1)])]),_:1}),c(L,{content:A.$t("workbench.production.save")},{default:Oe(()=>[a.value?(xe(),Ut(C,{key:0,theme:"primary",size:"small",class:"keepBottomLeftBtn",onClick:m},{icon:Oe(()=>[c(S)]),_:1})):nn("",!0)]),_:1},8,["content"]),c(T,{theme:"primary",content:A.$t("workbench.production.editImage.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",onClick:u},[c(E,{theme:"outline",size:"18",fill:"#fff"})])]),_:1},8,["content"])])])])}}}),zys=oo(Vys,[["__scopeId","data-v-87f647b2"]]),Hys={class:"textareaWrapper"},$ys=["data-placeholder"],Xys={class:"referencesList"},Gys=["onMousedown"],Yys={class:"reference-label"},Zys={class:"ref-index-badge"},qys={key:0,class:"no-references"},Kys=Je({__name:"promptEditor",props:Fc({references:{},placeholder:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(null),o=fe(!1),s=fe(0),a=fe({left:0,top:0}),l=fe("");let d=null,u=!1;function h(w){var T;const O=(T=t.references)==null?void 0:T[w],y=(O==null?void 0:O.type)??"image",C=(O==null?void 0:O.src)??"",_=document.createElement("span");_.contentEditable="false",_.dataset.refIndex=String(w),_.dataset.imgSrc=C;const S=()=>y==="image"?xn("img",{src:C,style:{width:"200px",borderRadius:"8px",display:"block"},alt:""}):xn("span",{style:{padding:"8px",display:"block"}},C),L=()=>y==="image"?xn("img",{src:C,alt:""}):xn(y==="video"?x8n:E8n),E=xn(y1,{content:S,placement:"top"},{default:()=>[xn("div",{class:"tag"},[L(),xn("span",null,$t("workbench.production.editImage.reference",{index:w+1}))])]});return p8(E,_),_}function g(w){if(!r.value)return;r.value.innerHTML="";const O=/@图(\d+)/g;let y=0,C;for(;(C=O.exec(w))!==null;)C.index>y&&r.value.appendChild(document.createTextNode(w.substring(y,C.index))),r.value.appendChild(h(Number(C[1])-1)),r.value.appendChild(document.createTextNode("​")),y=O.lastIndex;y{r.value&&n.value&&g(n.value)}),pt(()=>t.references,()=>{r.value&&n.value&&g(n.value)}),pt(n,w=>{var y;if(u){u=!1;return}if(!r.value)return;const O=((y=r.value.textContent)==null?void 0:y.replace(/\u200B/g,""))||"";w!==void 0&&w!==O&&g(w)});function m(){var C;const w=window.getSelection();if(!w||w.rangeCount===0)return"";const O=w.getRangeAt(0),y=O.startContainer;return y.nodeType===Node.TEXT_NODE?((C=y.textContent)==null?void 0:C.substring(0,O.startOffset))??"":""}function v(){const w=window.getSelection();if(!w||w.rangeCount===0)return{left:0,top:24};const O=w.getRangeAt(0).cloneRange();O.collapse(!0);const y=O.getBoundingClientRect(),C=r.value.getBoundingClientRect();return{left:Math.max(0,y.left-C.left),top:y.bottom-C.top+4}}function f(){var y;l.value=((y=r.value)==null?void 0:y.textContent)||"",p();const w=m(),O=w.lastIndexOf("@");if(O!==-1&&!w.substring(O+1).includes(" ")){o.value=!0,s.value=0;const C=window.getSelection();C&&C.rangeCount>0&&(d=C.getRangeAt(0).cloneRange()),ai(()=>{a.value=v()});return}o.value=!1,d=null}function k(w){var y;if(!o.value||!((y=t.references)!=null&&y.length))return;const O=t.references.length-1;switch(w.key){case"ArrowDown":w.preventDefault(),s.value=Math.min(s.value+1,O);break;case"ArrowUp":w.preventDefault(),s.value=Math.max(s.value-1,0);break;case"Enter":case"Tab":w.preventDefault(),A(s.value);break;case"Escape":o.value=!1;break}}function A(w){var M;if(!r.value||!d)return;const O=window.getSelection();if(!O)return;const y=d.cloneRange(),C=y.startContainer,_=y.startOffset,L=(C.textContent||"").lastIndexOf("@",_-1);if(L===-1)return;const E=h(w),T=C.splitText(L),D=_-L;T.deleteData(0,D),C.parentNode.insertBefore(E,T);const P=document.createTextNode("​");E.after(P);const Q=document.createRange();Q.setStart(P,1),Q.collapse(!0),O.removeAllRanges(),O.addRange(Q),o.value=!1,d=null,l.value=((M=r.value)==null?void 0:M.textContent)||"",p()}function p(){if(!r.value)return;let w="";r.value.childNodes.forEach(O=>{var y;if(O.nodeType===Node.TEXT_NODE)w+=(O.textContent||"").replace(/\u200B/g,"");else if(((y=O.dataset)==null?void 0:y.refIndex)!==void 0){const C=O.dataset.refIndex;w+=` @图${Number(C)+1} `}}),u=!0,n.value=w}function b(){setTimeout(()=>{o.value=!1},150)}return(w,O)=>{var S;const y=Zh,C=_n("i-video"),_=_n("i-volume-mute");return xe(),Ge("div",Hys,[ge("div",{ref_key:"editorRef",ref:r,class:"promptEditor",contenteditable:"true","data-placeholder":Ae(l).length===0?t.placeholder:"",onInput:f,onKeydown:k,onBlur:b,onMousedown:O[0]||(O[0]=Mr(()=>{},["stop"]))},null,40,$ys),Ae(o)?(xe(),Ge("div",{key:0,class:"referencesPopup",style:no({left:Ae(a).left+"px",top:Ae(a).top+"px"})},[ge("div",Xys,[(xe(!0),Ge(sn,null,Bi(e.references,(L,E)=>(xe(),Ge("div",{key:E,class:Eo(["reference-item",{active:Ae(s)===E}]),onMousedown:Mr(T=>A(E),["prevent"])},[L.type==="image"?(xe(),Ut(y,{key:0,src:L.src,fit:"cover",class:"ref-popup-img"},null,8,["src"])):L.type==="video"?(xe(),Ut(C,{key:1,class:"ref-popup-icon"})):L.type==="audio"?(xe(),Ut(_,{key:2,class:"ref-popup-icon"})):nn("",!0),ge("span",Yys,Pe(w.$t("workbench.production.editImage.reference",{index:E+1})),1),ge("span",Zys,"#"+Pe(E+1),1)],42,Gys))),128)),(S=e.references)!=null&&S.length?nn("",!0):(xe(),Ge("div",qys,Pe(w.$t("workbench.production.editImage.noReferences")),1))])],4)):nn("",!0)])}}}),LZn=oo(Kys,[["__scopeId","data-v-3d78a0de"]]),hkn={type:"removeLine",animated:!0,style:{stroke:"#00000"}};function Jys(e="",t=""){return{generatedImage:e,references:[],prompt:t,model:"",ratio:"",quality:"",steps:49}}function fkn(e){return e.map(t=>{var n;return{id:t.id,type:t.type,position:t.position,data:t.type==="upload"?{image:t.data.image}:{generatedImage:t.data.generatedImage,references:((n=t.data.references)==null?void 0:n.map(r=>({image:r.image})))??[],prompt:t.data.prompt,model:t.data.model,ratio:t.data.ratio,quality:t.data.quality}}})}function gkn(e){return e.map(t=>({id:t.id,source:t.source,target:t.target}))}const eCs={class:"generatedNode"},tCs={class:"title ac"},nCs={class:"titleText"},iCs={class:"image"},rCs={key:0,class:"imageLoading"},oCs={class:"loadingText"},sCs={key:1,class:"imageWrapper"},aCs={class:"imageToolsWrap"},lCs={class:"upload ac"},cCs={style:{"margin-left":"5px",color:"#fff"}},dCs={class:"imageRefs f w"},uCs={class:"text w"},hCs={class:"operate ac jb"},fCs={class:"ac"},gCs={class:"f",style:{gap:"5px","margin-left":"5px"}},mCs=Je({__name:"generatedNode",props:{id:{},data:{},projectId:{},imageDefaultModle:{}},emits:["keep"],setup(e,{emit:t}){const n=bt("openStoryboardCheck"),{open:r,onChange:o,onCancel:s}=cOn({multiple:!1,reset:!0,accept:".png,.jpg,.jpeg"}),a=fe(!0),l=fe(!1),d=bt("episodesId"),u=t,{removeNodes:h}=nl("editImage"),g=[{content:$t("workbench.production.editImage.uploadImage"),value:1},{content:$t("workbench.production.editImage.uploadStoryboardImage"),value:2},{content:$t("workbench.production.generatedNode.localUpload"),value:3}],m=X(()=>v.data.references.map(y=>({type:"image",src:y.image})).filter(Boolean)),v=e;function f(){a.value=!a.value}function k(y){y.value==1?p():y.value==2?b():y.value==3&&(console.log("%c Line:124 🍷","background:#4fff4B"),A())}async function A(){const y=await new Promise(S=>{r(),o(L=>S(L)),s(()=>S(null))});if(!(y!=null&&y.length))return;const C=y[0],_=new FileReader;_.onload=async()=>{const S=_.result;try{const{data:L}=await mn.post("/production/editImage/uploadImage",{base64Data:S,projectId:v.projectId,scriptId:d.value});v.data.generatedImage=L}catch(L){return window.$message.error((L==null?void 0:L.message)||$t("workbench.production.editImage.uploadFailed"))}},_.readAsDataURL(C)}async function p(){const y=await jV({multiple:!1,title:$t("workbench.production.editImage.selectImage")});if(y.length>0){const C=y[0].src;v.data.generatedImage=C}}async function b(){const y=await n();if(y.length>0){const C=y[0].src;v.data.generatedImage=C}}async function w(){if(!v.data.model)return window.$message.error($t("workbench.production.editImage.selectModel"));if(!v.data.quality)return window.$message.error($t("workbench.production.editImage.selectQuality"));if(!v.data.ratio)return window.$message.error($t("workbench.production.editImage.selectRatio"));l.value=!0;try{const{data:y}=await mn.post("/production/editImage/generateFlowImage",{references:v.data.references.map(C=>C.image).filter(Boolean),model:v.data.model,quality:v.data.quality,ratio:v.data.ratio,prompt:v.data.prompt,projectId:v.projectId});v.data.generatedImage=y.url}catch(y){return window.$message.error((y==null?void 0:y.message)||$t("workbench.production.editImage.generateFailed"))}finally{l.value=!1}}function O(){if(!v.data.generatedImage)return window.$message.error($t("workbench.production.editImage.generateFirst"));u("keep",v.data.generatedImage)}return An(()=>{var y,C;v.imageDefaultModle&&(v.data.model=((y=v.imageDefaultModle)==null?void 0:y.imageModel)??"",v.data.quality=((C=v.imageDefaultModle)==null?void 0:C.imageQuality)??"",v.data.ratio="16:9")}),(y,C)=>{const _=_n("i-pic"),S=jre,L=Zh,E=_n("i-upload"),T=Rne,D=_n("i-delete"),P=el,Q=uL,M=pA,B=_n("i-arrow-up"),R=Si,I=y1,F=_n("i-save");return xe(),Ge("div",eCs,[c(Ae(mm),{type:"target",position:Ae(Vi).Left},null,8,["position"]),ge("div",{class:"data",onClick:f},[ge("div",tCs,[c(_,{theme:"outline",size:"16",fill:"#000000"}),ge("span",nCs,Pe(y.$t("workbench.production.editImage.imageGeneration")),1)]),ge("div",iCs,[Ae(l)?(xe(),Ge("div",rCs,[C[7]||(C[7]=ge("div",{class:"loadingSpinner"},null,-1)),ge("span",oCs,Pe(y.$t("workbench.production.editImage.generating")),1)])):(xe(),Ge("div",sCs,[c(L,{class:Eo(["image",["nodeImage",{selected:Ae(a)}]]),src:e.data.generatedImage,fit:"contain"},{overlayContent:Oe(()=>[ge("div",aCs,[c(S,{src:e.data.generatedImage??"",position:"br"},null,8,["src"])])]),_:1},8,["src","class"])])),c(T,{options:g,onClick:k},{default:Oe(()=>[ge("div",lCs,[c(E,{theme:"outline",size:"18",fill:"#fff"}),ge("span",cCs,Pe(y.$t("workbench.production.editImage.upload")),1)])]),_:1}),c(P,{theme:"primary",content:y.$t("workbench.production.editImage.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",onClick:C[0]||(C[0]=j=>Ae(h)(v.id))},[c(D,{theme:"outline",size:"18",fill:"#fff"})])]),_:1},8,["content"])])]),uu(ge("div",{class:"parameter",onWheel:C[5]||(C[5]=Mr(()=>{},["stop"])),onMousedown:C[6]||(C[6]=Mr(()=>{},["stop"]))},[ge("div",dCs,[(xe(!0),Ge(sn,null,Bi(e.data.references,(j,W)=>(xe(),Ge("div",{key:W,class:"refThumb"},[c(L,{src:j.image,fit:"cover",class:"refImg"},null,8,["src"])]))),128))]),ge("div",uCs,[c(LZn,{modelValue:e.data.prompt,"onUpdate:modelValue":C[1]||(C[1]=j=>e.data.prompt=j),references:Ae(m),placeholder:y.$t("workbench.production.editImage.promptPlaceholder")},null,8,["modelValue","references","placeholder"])]),ge("div",hCs,[ge("div",fCs,[c(T8,{modelValue:e.data.model,"onUpdate:modelValue":C[2]||(C[2]=j=>e.data.model=j),type:"image",size:"small"},null,8,["modelValue"]),c(M,{modelValue:e.data.ratio,"onUpdate:modelValue":C[3]||(C[3]=j=>e.data.ratio=j),class:"paramSelect ml-5",size:"small",placeholder:y.$t("workbench.production.editImage.ratio")},{default:Oe(()=>[c(Q,{value:"16:9",label:"16:9"}),c(Q,{value:"9:16",label:"9:16"}),c(Q,{value:"1:1",label:"1:1"})]),_:1},8,["modelValue","placeholder"]),c(M,{modelValue:e.data.quality,"onUpdate:modelValue":C[4]||(C[4]=j=>e.data.quality=j),class:"paramSelect ml-5",size:"small",placeholder:y.$t("workbench.production.editImage.quality")},{default:Oe(()=>[c(Q,{value:"1K",label:"1K"}),c(Q,{value:"2K",label:"2K"}),c(Q,{value:"4K",label:"4K"})]),_:1},8,["modelValue","placeholder"])]),ge("div",gCs,[c(I,{content:y.$t("workbench.production.editImage.generateBtn")},{default:Oe(()=>[c(R,{theme:"primary",size:"small",class:"generateBtn",disabled:Ae(l),loading:Ae(l),onClick:w},{icon:Oe(()=>[c(B)]),_:1},8,["disabled","loading"])]),_:1},8,["content"]),c(I,{content:y.$t("workbench.production.save")},{default:Oe(()=>[c(R,{theme:"primary",size:"small",class:"keepBtn",disabled:Ae(l),loading:Ae(l),onClick:O},{icon:Oe(()=>[c(F)]),_:1},8,["disabled","loading"])]),_:1},8,["content"])])])],544),[[h1,Ae(a)]]),c(Ae(mm),{type:"source",position:Ae(Vi).Right,style:{"z-index":"999999"}},null,8,["position"])])}}}),kCs=oo(mCs,[["__scopeId","data-v-e13a8b56"]]),vCs={class:"assets"},ACs={class:"data"},pCs={class:"panelContent"},bCs={class:"toolbar"},wCs={class:"f ac"},OCs={class:"assetsList f w"},yCs={class:"previewCell"},CCs=["onClick"],_Cs=["src","alt"],SCs={class:"mediaHoverOverlay"},LCs={class:"hoverText"},xCs=Je({__name:"storyboardImageCheck",props:Fc({allowedTypes:{},multiple:{type:Boolean,default:!1},scriptId:{}},{modelValue:{default:!1},modelModifiers:{}}),emits:Fc(["confirm","cancel"],["update:modelValue"]),setup(e,{emit:t}){const n=e,r=t,o=Pf(e,"modelValue");pt(()=>o.value,_=>{_&&(v.value.page=1,s.value="",a.value=[],p())}),An(()=>{p()});const s=fe(""),a=fe([]),l=fe([]),d=fe(!1),u=fe(new Set),h=fe(new Set),g=_=>u.value.has(_)||h.value.has(_),m=fe([]),v=fe({page:1,pageSize:10,total:0,showJumper:!0}),k=[{colKey:"row-select",type:n.multiple?"multiple":"single",width:50,align:"center",fixed:"left",disabled:_=>{var S;return g(((S=_.row)==null?void 0:S.id)??_.id)}},{colKey:"src",title:$t("components.storyboardImageCheck.src"),width:100,align:"center",cell:"preview"},{colKey:"prompt",title:$t("workbench.project.dialog.prompt.title"),width:100,align:"left",ellipsis:!0},{colKey:"duration",title:$t("components.storyboardImageCheck.duration"),minWidth:80,align:"left",ellipsis:!0},{colKey:"createTime",title:$t("components.storyboardImageCheck.createTime"),width:200,align:"center",cell:"createTime"}];function A(){v.value.page=1,p()}async function p(){try{d.value=!0;const{data:_}=await mn.post("/production/storyboard/getStoryboardData",{scriptId:n.scriptId,name:s.value||void 0,page:v.value.page,limit:v.value.pageSize});return m.value=_.data||[],v.value.total=_.total||0,m.value}catch(_){console.error("加载资产数据失败:",_),m.value=[],v.value.total=0}finally{d.value=!1}}function b(_){const S=_.filter(L=>!g(L));n.multiple?a.value=S:a.value=S.length>0?[S[S.length-1]]:[]}function w(_){_.length>3&&(_=_.slice(-3)),l.value=_}function O(_){v.value.page=_.current,v.value.pageSize=_.pageSize,p()}function y(){const _=m.value.filter(S=>a.value.includes(S.id));r("confirm",_),o.value=!1}function C(){r("cancel")}return(_,S)=>{const L=Wu,E=dL,T=Si,D=hL,P=jne,Q=gc;return xe(),Ut(Q,{visible:o.value,"onUpdate:visible":S[1]||(S[1]=M=>o.value=M),header:_.$t("components.storyboardImageCheck.dialogTitle"),width:"80vw",footer:!0,placement:"center",zIndex:999999999999,onClose:C,onConfirm:y,onCancel:C},{default:Oe(()=>[ge("div",vCs,[ge("div",ACs,[ge("div",pCs,[ge("div",bCs,[ge("div",wCs,[c(L,{modelValue:Ae(s),"onUpdate:modelValue":S[0]||(S[0]=M=>Fn(s)?s.value=M:null),placeholder:_.$t("workbench.assets.searchPlaceholder"),clearable:"",style:{width:"260px"}},null,8,["modelValue","placeholder"]),c(T,{style:{"margin-left":"5px"},onClick:A},{icon:Oe(()=>[c(E,{name:"search"})]),default:Oe(()=>[Bt(" "+Pe(_.$t("workbench.assets.search")),1)]),_:1})])]),ge("div",OCs,[c(P,{columns:k,data:Ae(m),"selected-row-keys":Ae(a),"expanded-row-keys":Ae(l),"row-key":"id",hover:"",stripe:"",size:"small",pagination:Ae(v),loading:Ae(d),"lazy-load":"","table-layout":"fixed",onSelectChange:b,onExpandChange:w,onPageChange:O},{preview:Oe(({row:M})=>[ge("div",yCs,[c(D,{images:[M.src],closeOnEscKeydown:!0,closeOnOverlay:!0},{trigger:Oe(({open:B})=>[ge("div",{class:"mediaTrigger",onClick:R=>M.src&&B()},[ge("img",{src:M.src,alt:M.name},null,8,_Cs),ge("div",SCs,[c(E,{name:"browse",size:"20px"}),ge("span",LCs,Pe(_.$t("components.storyboardImageCheck.preview")),1)])],8,CCs)]),_:2},1032,["images"])])]),startTime:Oe(({row:M})=>[ge("span",null,Pe(Ae(JB)(M.startTime).format("YYYY-MM-DD HH:mm:ss")),1)]),_:1},8,["data","selected-row-keys","expanded-row-keys","pagination","loading"])])])])])]),_:1},8,["visible","header"])}}}),ECs=oo(xCs,[["__scopeId","data-v-ff556e8b"]]),TCs={class:"remove c"},QCs={__name:"removeLine",props:["id","sourceX","sourceY","targetX","targetY","sourcePosition","targetPosition","sourceNode","targetNode","source","target","type","updatable","data","markerEnd","markerStart","style","selected","animated","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","events","sourceHandleId","targetHandleId","interactionWidth"],setup(e){const{removeEdges:t}=nl("editImage"),n=e,r=X(()=>$st(n));function o(s){t(s)}return(s,a)=>{const l=_n("i-close");return xe(),Ge(sn,null,[c(Ae(Hre),{id:e.id,path:Ae(r)[0],"label-x":Ae(r)[1],"label-y":Ae(r)[2],"label-bg-style":"fill: whitesmoke"},null,8,["id","path","label-x","label-y"]),c(Ae(ROs),null,{default:Oe(()=>[ge("div",{style:no({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${Ae(r)[1]}px,${Ae(r)[2]}px)`})},[ge("div",TCs,[c(l,{theme:"outline",size:"32",onClick:a[0]||(a[0]=d=>o(e.id))})])],4)]),_:1})],64)}}},DCs=oo(QCs,[["__scopeId","data-v-791ad826"]]);var xZn=Object.defineProperty,BCs=(e,t,n)=>t in e?xZn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,RCs=(e,t)=>{for(var n in t)xZn(e,n,{get:t[n],enumerable:!0})},ICs=(e,t,n)=>BCs(e,t+"",n),EZn={};RCs(EZn,{Graph:()=>Tp,alg:()=>Gst,json:()=>QZn,version:()=>FCs});var MCs=Object.defineProperty,TZn=(e,t)=>{for(var n in t)MCs(e,n,{get:t[n],enumerable:!0})},Tp=class{constructor(t){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},t&&(this._isDirected="directed"in t?t.directed:!0,this._isMultigraph="multigraph"in t?t.multigraph:!1,this._isCompound="compound"in t?t.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return typeof t!="function"?this._defaultNodeLabelFn=()=>t:this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(t=>Object.keys(this._in[t]).length===0)}sinks(){return this.nodes().filter(t=>Object.keys(this._out[t]).length===0)}setNodes(t,n){return t.forEach(r=>{n!==void 0?this.setNode(r,n):this.setNode(r)}),this}setNode(t,n){return t in this._nodes?(arguments.length>1&&(this._nodes[t]=n),this):(this._nodes[t]=arguments.length>1?n:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]="\0",this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return t in this._nodes}removeNode(t){if(t in this._nodes){let n=r=>this.removeEdge(this._edgeObjs[r]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],this.children(t).forEach(r=>{this.setParent(r)}),delete this._children[t]),Object.keys(this._in[t]).forEach(n),delete this._in[t],delete this._preds[t],Object.keys(this._out[t]).forEach(n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(n===void 0)n="\0";else{n+="";for(let r=n;r!==void 0;r=this.parent(r))if(r===t)throw new Error("Setting "+n+" as parent of "+t+" would create a cycle");this.setNode(n)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=n,this._children[n][t]=!0,this}parent(t){if(this._isCompound){let n=this._parent[t];if(n!=="\0")return n}}children(t="\0"){if(this._isCompound){let n=this._children[t];if(n)return Object.keys(n)}else{if(t==="\0")return this.nodes();if(this.hasNode(t))return[]}return[]}predecessors(t){let n=this._preds[t];if(n)return Object.keys(n)}successors(t){let n=this._sucs[t];if(n)return Object.keys(n)}neighbors(t){let n=this.predecessors(t);if(n){let r=new Set(n);for(let o of this.successors(t))r.add(o);return Array.from(r.values())}}isLeaf(t){let n;return this.isDirected()?n=this.successors(t):n=this.neighbors(t),n.length===0}filterNodes(t){let n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph()),Object.entries(this._nodes).forEach(([s,a])=>{t(s)&&n.setNode(s,a)}),Object.values(this._edgeObjs).forEach(s=>{n.hasNode(s.v)&&n.hasNode(s.w)&&n.setEdge(s,this.edge(s))});let r={},o=s=>{let a=this.parent(s);return!a||n.hasNode(a)?(r[s]=a??void 0,a??void 0):a in r?r[a]:o(a)};return this._isCompound&&n.nodes().forEach(s=>n.setParent(s,o(s))),n}setDefaultEdgeLabel(t){return typeof t!="function"?this._defaultEdgeLabelFn=()=>t:this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(t,n){return t.reduce((r,o)=>(n!==void 0?this.setEdge(r,o,n):this.setEdge(r,o),o)),this}setEdge(t,n,r,o){let s,a,l,d,u=!1;typeof t=="object"&&t!==null&&"v"in t?(s=t.v,a=t.w,l=t.name,arguments.length===2&&(d=n,u=!0)):(s=t,a=n,l=o,arguments.length>2&&(d=r,u=!0)),s=""+s,a=""+a,l!==void 0&&(l=""+l);let h=dY(this._isDirected,s,a,l);if(h in this._edgeLabels)return u&&(this._edgeLabels[h]=d),this;if(l!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(s),this.setNode(a),this._edgeLabels[h]=u?d:this._defaultEdgeLabelFn(s,a,l);let g=PCs(this._isDirected,s,a,l);return s=g.v,a=g.w,Object.freeze(g),this._edgeObjs[h]=g,mkn(this._preds[a],s),mkn(this._sucs[s],a),this._in[a][h]=g,this._out[s][h]=g,this._edgeCount++,this}edge(t,n,r){let o=arguments.length===1?mRe(this._isDirected,t):dY(this._isDirected,t,n,r);return this._edgeLabels[o]}edgeAsObj(t,n,r){let o=arguments.length===1?this.edge(t):this.edge(t,n,r);return typeof o!="object"?{label:o}:o}hasEdge(t,n,r){return(arguments.length===1?mRe(this._isDirected,t):dY(this._isDirected,t,n,r))in this._edgeLabels}removeEdge(t,n,r){let o=arguments.length===1?mRe(this._isDirected,t):dY(this._isDirected,t,n,r),s=this._edgeObjs[o];if(s){let a=s.v,l=s.w;delete this._edgeLabels[o],delete this._edgeObjs[o],kkn(this._preds[l],a),kkn(this._sucs[a],l),delete this._in[l][o],delete this._out[a][o],this._edgeCount--}return this}inEdges(t,n){return this.isDirected()?this.filterEdges(this._in[t],t,n):this.nodeEdges(t,n)}outEdges(t,n){return this.isDirected()?this.filterEdges(this._out[t],t,n):this.nodeEdges(t,n)}nodeEdges(t,n){if(t in this._nodes)return this.filterEdges({...this._in[t],...this._out[t]},t,n)}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}filterEdges(t,n,r){if(!t)return;let o=Object.values(t);return r?o.filter(s=>s.v===n&&s.w===r||s.v===r&&s.w===n):o}};function mkn(e,t){e[t]?e[t]++:e[t]=1}function kkn(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function dY(e,t,n,r){let o=""+t,s=""+n;if(!e&&o>s){let a=o;o=s,s=a}return o+""+s+""+(r===void 0?"\0":r)}function PCs(e,t,n,r){let o=""+t,s=""+n;if(!e&&o>s){let l=o;o=s,s=l}let a={v:o,w:s};return r&&(a.name=r),a}function mRe(e,t){return dY(e,t.v,t.w,t.name)}var FCs="4.0.1",QZn={};TZn(QZn,{read:()=>WCs,write:()=>NCs});function NCs(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:UCs(e),edges:jCs(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function UCs(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),o={v:t};return n!==void 0&&(o.value=n),r!==void 0&&(o.parent=r),o})}function jCs(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function WCs(e){let t=new Tp(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(n=>{t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(n=>{t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var Gst={};TZn(Gst,{CycleException:()=>$2e,bellmanFord:()=>DZn,components:()=>HCs,dijkstra:()=>H2e,dijkstraAll:()=>GCs,findCycles:()=>YCs,floydWarshall:()=>qCs,isAcyclic:()=>JCs,postorder:()=>t_s,preorder:()=>n_s,prim:()=>i_s,shortestPaths:()=>r_s,tarjan:()=>RZn,topsort:()=>IZn});var VCs=()=>1;function DZn(e,t,n,r){return zCs(e,String(t),n||VCs,r||function(o){return e.outEdges(o)})}function zCs(e,t,n,r){let o={},s,a=0,l=e.nodes(),d=function(g){let m=n(g);o[g.v].distance+mt.key)}has(t){return t in this._keyIndices}priority(t){let n=this._keyIndices[t];if(n!==void 0)return this._arr[n].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(t,n){let r=this._keyIndices,o=String(t);if(!(o in r)){let s=this._arr,a=s.length;return r[o]=a,s.push({key:o,priority:n}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key}decrease(t,n){let r=this._keyIndices[t];if(r===void 0)throw new Error(`Key not found: ${t}`);let o=this._arr[r].priority;if(n>o)throw new Error(`New priority is greater than current priority. Key: ${t} Old: ${o} New: ${n}`);this._arr[r].priority=n,this._decrease(r)}_heapify(t){let n=this._arr,r=2*t,o=r+1,s=t;r>1,!(n[o].priority1;function H2e(e,t,n,r){let o=function(s){return e.outEdges(s)};return XCs(e,String(t),n||$Cs,r||o)}function XCs(e,t,n,r){let o={},s=new BZn,a,l,d=function(u){let h=u.v!==a?u.v:u.w,g=o[h],m=n(u),v=l.distance+m;if(m<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+u+" Weight: "+m);v0&&(a=s.removeMin(),l=o[a],l.distance!==Number.POSITIVE_INFINITY);)r(a).forEach(d);return o}function GCs(e,t,n){return e.nodes().reduce(function(r,o){return r[o]=H2e(e,o,t,n),r},{})}function RZn(e){let t=0,n=[],r={},o=[];function s(a){let l=r[a]={onStack:!0,lowlink:t,index:t++};if(n.push(a),e.successors(a).forEach(function(d){d in r?r[d].onStack&&(l.lowlink=Math.min(l.lowlink,r[d].index)):(s(d),l.lowlink=Math.min(l.lowlink,r[d].lowlink))}),l.lowlink===l.index){let d=[],u;do u=n.pop(),r[u].onStack=!1,d.push(u);while(a!==u);o.push(d)}}return e.nodes().forEach(function(a){a in r||s(a)}),o}function YCs(e){return RZn(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var ZCs=()=>1;function qCs(e,t,n){return KCs(e,t||ZCs,n||function(r){return e.outEdges(r)})}function KCs(e,t,n){let r={},o=e.nodes();return o.forEach(function(s){r[s]={},r[s][s]={distance:0,predecessor:""},o.forEach(function(a){s!==a&&(r[s][a]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),n(s).forEach(function(a){let l=a.v===s?a.w:a.v,d=t(a);r[s][l]={distance:d,predecessor:s}})}),o.forEach(function(s){let a=r[s];o.forEach(function(l){let d=r[l];o.forEach(function(u){let h=d[s],g=a[u],m=d[u],v=h.distance+g.distance;v{var d;return(d=e.isDirected()?e.successors(l):e.neighbors(l))!=null?d:[]},a={};return t.forEach(function(l){if(!e.hasNode(l))throw new Error("Graph does not have node: "+l);o=MZn(e,l,n==="post",a,s,r,o)}),o}function MZn(e,t,n,r,o,s,a){return t in r||(r[t]=!0,n||(a=s(a,t)),o(t).forEach(function(l){a=MZn(e,l,n,r,o,s,a)}),n&&(a=s(a,t))),a}function PZn(e,t,n){return e_s(e,t,n,function(r,o){return r.push(o),r},[])}function t_s(e,t){return PZn(e,t,"post")}function n_s(e,t){return PZn(e,t,"pre")}function i_s(e,t){let n=new Tp,r={},o=new BZn,s;function a(d){let u=d.v===s?d.w:d.v,h=o.priority(u);if(h!==void 0){let g=t(d);g0;){if(s=o.removeMin(),s in r)n.setEdge(s,r[s]);else{if(l)throw new Error("Input graph is not connected: "+e);l=!0}e.nodeEdges(s).forEach(a)}return n}function r_s(e,t,n,r){return o_s(e,t,n,r??(o=>{let s=e.outEdges(o);return s??[]}))}function o_s(e,t,n,r){if(n===void 0)return H2e(e,t,n,r);let o=!1,s=e.nodes();for(let a=0;at.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t}function FZn(e){let t=new Tp({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function vkn(e,t){let n=e.x,r=e.y,o=t.x-n,s=t.y-r,a=e.width/2,l=e.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");let d,u;return Math.abs(s)*a>Math.abs(o)*l?(s<0&&(l=-l),d=l*o/s,u=l):(o<0&&(a=-a),d=a,u=a*s/o),{x:n+d,y:r+u}}function $re(e){let t=Mte(UZn(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),o=r.rank;o!==void 0&&(t[o]||(t[o]=[]),t[o][r.order]=n)}),t}function a_s(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),n=JO(Math.min,t);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=n)})}function l_s(e){let t=e.nodes().map(a=>e.node(a).rank).filter(a=>a!==void 0),n=JO(Math.min,t),r=[];e.nodes().forEach(a=>{let l=e.node(a).rank-n;r[l]||(r[l]=[]),r[l].push(a)});let o=0,s=e.graph().nodeRankFactor;Array.from(r).forEach((a,l)=>{a===void 0&&l%s!==0?--o:a!==void 0&&o&&a.forEach(d=>e.node(d).rank+=o)})}function Akn(e,t,n,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),IH(e,"border",o,t)}function c_s(e,t=NZn){let n=[];for(let r=0;rNZn){let n=c_s(t);return e(...n.map(r=>e(...r)))}else return e(...t)}function UZn(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return JO(Math.max,t)}function d_s(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function jZn(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function WZn(e,t){return t()}var u_s=0;function Yst(e){let t=++u_s;return e+(""+t)}function Mte(e,t,n=1){t==null&&(t=e,e=0);let r=s=>str[t]:n=t,Object.entries(e).reduce((r,[o,s])=>(r[o]=n(s,o),r),{})}function h_s(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}var qOe="\0",f_s="3.0.0",g_s=class{constructor(){ICs(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return pkn(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&pkn(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,m_s)),n=n._prev;return"["+e.join(", ")+"]"}};function pkn(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function m_s(e,t){if(e!=="_next"&&e!=="_prev")return t}var k_s=g_s,v_s=()=>1;function A_s(e,t){if(e.nodeCount()<=1)return[];let n=b_s(e,t||v_s);return p_s(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function p_s(e,t,n){var r;let o=[],s=t[t.length-1],a=t[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)kRe(e,t,n,l);for(;l=s.dequeue();)kRe(e,t,n,l);if(e.nodeCount()){for(let d=t.length-2;d>0;--d)if(l=(r=t[d])==null?void 0:r.dequeue(),l){o=o.concat(kRe(e,t,n,l,!0)||[]);break}}}return o}function kRe(e,t,n,r,o){let s=[],a=o?s:void 0;return(e.inEdges(r.v)||[]).forEach(l=>{let d=e.edge(l),u=e.node(l.v);o&&s.push({v:l.v,w:l.w}),u.out-=d,VGe(t,n,u)}),(e.outEdges(r.v)||[]).forEach(l=>{let d=e.edge(l),u=l.w,h=e.node(u);h.in-=d,VGe(t,n,h)}),e.removeNode(r.v),a}function b_s(e,t){let n=new Tp,r=0,o=0;e.nodes().forEach(l=>{n.setNode(l,{v:l,in:0,out:0})}),e.edges().forEach(l=>{let d=n.edge(l.v,l.w)||0,u=t(l),h=d+u;n.setEdge(l.v,l.w,h);let g=n.node(l.v),m=n.node(l.w);o=Math.max(o,g.out+=u),r=Math.max(r,m.in+=u)});let s=w_s(o+r+3).map(()=>new k_s),a=r+1;return n.nodes().forEach(l=>{VGe(s,a,n.node(l))}),{graph:n,buckets:s,zeroIdx:a}}function VGe(e,t,n){var r,o,s;n.out?n.in?(s=e[n.out-n.in+t])==null||s.enqueue(n):(o=e[e.length-1])==null||o.enqueue(n):(r=e[0])==null||r.enqueue(n)}function w_s(e){let t=[];for(let n=0;n{let r=e.edge(n);e.removeEdge(n),r.forwardName=n.name,r.reversed=!0,e.setEdge(n.w,n.v,r,Yst("rev"))});function t(n){return r=>n.edge(r).weight}}function y_s(e){let t=[],n={},r={};function o(s){Object.hasOwn(r,s)||(r[s]=!0,n[s]=!0,e.outEdges(s).forEach(a=>{Object.hasOwn(n,a.w)?t.push(a):o(a.w)}),delete n[s])}return e.nodes().forEach(o),t}function C_s(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function __s(e){e.graph().dummyChains=[],e.edges().forEach(t=>S_s(e,t))}function S_s(e,t){let n=t.v,r=e.node(n).rank,o=t.w,s=e.node(o).rank,a=t.name,l=e.edge(t),d=l.labelRank;if(s===r+1)return;e.removeEdge(t);let u,h,g;for(g=0,++r;r{let n=e.node(t),r=n.edgeLabel,o;for(e.setEdge(n.edgeObj,r);n.dummy;)o=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=o,n=e.node(t)})}function Zst(e){let t={};function n(r){let o=e.node(r);if(Object.hasOwn(t,r))return o.rank;t[r]=!0;let s=e.outEdges(r),a=s?s.map(d=>d==null?Number.POSITIVE_INFINITY:n(d.w)-e.edge(d).minlen):[],l=JO(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),o.rank=l}e.sources().forEach(n)}function cz(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var VZn=x_s;function x_s(e){let t=new Tp({directed:!1}),n=e.nodes();if(n.length===0)throw new Error("Graph must have at least one node");let r=n[0],o=e.nodeCount();t.setNode(r,{});let s,a;for(;E_s(t,e){let a=s.v,l=r===a?s.w:a;!e.hasNode(l)&&!cz(t,s)&&(e.setNode(l,{}),e.setEdge(r,l,{}),n(l))})}return e.nodes().forEach(n),e.nodeCount()}function T_s(e,t){return t.edges().reduce((n,r)=>{let o=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(o=cz(t,r)),ot.node(r).rank+=n)}var{preorder:D_s,postorder:B_s}=Gst,R_s=oM;oM.initLowLimValues=Kst;oM.initCutValues=qst;oM.calcCutValue=zZn;oM.leaveEdge=$Zn;oM.enterEdge=XZn;oM.exchangeEdges=GZn;function oM(e){e=s_s(e),Zst(e);let t=VZn(e);Kst(t),qst(t,e);let n,r;for(;n=$Zn(t);)r=XZn(t,e,n),GZn(t,e,n,r)}function qst(e,t){let n=B_s(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>I_s(e,t,r))}function I_s(e,t,n){let r=e.node(n).parent,o=e.edge(n,r);o.cutvalue=zZn(e,t,n)}function zZn(e,t,n){let r=e.node(n).parent,o=!0,s=t.edge(n,r),a=0;s||(o=!1,s=t.edge(r,n)),a=s.weight;let l=t.nodeEdges(n);return l&&l.forEach(d=>{let u=d.v===n,h=u?d.w:d.v;if(h!==r){let g=u===o,m=t.edge(d).weight;if(a+=g?m:-m,P_s(e,n,h)){let v=e.edge(n,h).cutvalue;a+=g?-v:v}}}),a}function Kst(e,t){arguments.length<2&&(t=e.nodes()[0]),HZn(e,{},1,t)}function HZn(e,t,n,r,o){let s=n,a=e.node(r);t[r]=!0;let l=e.neighbors(r);return l&&l.forEach(d=>{Object.hasOwn(t,d)||(n=HZn(e,t,n,d,r))}),a.low=s,a.lim=n++,o?a.parent=o:delete a.parent,n}function $Zn(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function XZn(e,t,n){let r=n.v,o=n.w;t.hasEdge(r,o)||(r=n.w,o=n.v);let s=e.node(r),a=e.node(o),l=s,d=!1;return s.lim>a.lim&&(l=a,d=!0),t.edges().filter(u=>d===bkn(e,e.node(u.v),l)&&d!==bkn(e,e.node(u.w),l)).reduce((u,h)=>cz(t,h)!e.node(o).parent);if(!n)return;let r=D_s(e,[n]);r=r.slice(1),r.forEach(o=>{let s=e.node(o).parent,a=t.edge(o,s),l=!1;a||(a=t.edge(s,o),l=!0),t.node(o).rank=t.node(s).rank+(l?a.minlen:-a.minlen)})}function P_s(e,t,n){return e.hasEdge(t,n)}function bkn(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var F_s=N_s;function N_s(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":wkn(e);break;case"tight-tree":j_s(e);break;case"longest-path":U_s(e);break;case"none":break;default:wkn(e)}}var U_s=Zst;function j_s(e){Zst(e),VZn(e)}function wkn(e){R_s(e)}var W_s=V_s;function V_s(e){let t=H_s(e);e.graph().dummyChains.forEach(n=>{let r=e.node(n),o=r.edgeObj,s=z_s(e,t,o.v,o.w),a=s.path,l=s.lca,d=0,u=a[d],h=!0;for(;n!==o.w;){if(r=e.node(n),h){for(;(u=a[d])!==l&&e.node(u).maxRanka||l>t[d].lim));let u=d,h=r;for(;(h=e.parent(h))!==u;)s.push(h);return{path:o.concat(s.reverse()),lca:u}}function H_s(e){let t={},n=0;function r(o){let s=n;e.children(o).forEach(r),t[o]={low:s,lim:n++}}return e.children(qOe).forEach(r),t}function $_s(e){let t=IH(e,"root",{},"_root"),n=X_s(e),r=Object.values(n),o=JO(Math.max,r)-1,s=2*o+1;e.graph().nestingRoot=t,e.edges().forEach(l=>e.edge(l).minlen*=s);let a=G_s(e)+1;e.children(qOe).forEach(l=>YZn(e,t,s,a,o,n,l)),e.graph().nodeRankFactor=s}function YZn(e,t,n,r,o,s,a){var l;let d=e.children(a);if(!d.length){a!==t&&e.setEdge(t,a,{weight:0,minlen:n});return}let u=Akn(e,"_bt"),h=Akn(e,"_bb"),g=e.node(a);e.setParent(u,a),g.borderTop=u,e.setParent(h,a),g.borderBottom=h,d.forEach(m=>{var v;YZn(e,t,n,r,o,s,m);let f=e.node(m),k=f.borderTop?f.borderTop:m,A=f.borderBottom?f.borderBottom:m,p=f.borderTop?r:2*r,b=k!==A?1:o-((v=s[a])!=null?v:0)+1;e.setEdge(u,k,{weight:p,minlen:b,nestingEdge:!0}),e.setEdge(A,h,{weight:p,minlen:b,nestingEdge:!0})}),e.parent(a)||e.setEdge(t,u,{weight:0,minlen:o+((l=s[a])!=null?l:0)})}function X_s(e){let t={};function n(r,o){let s=e.children(r);s&&s.length&&s.forEach(a=>n(a,o+1)),t[r]=o}return e.children(qOe).forEach(r=>n(r,1)),t}function G_s(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function Y_s(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var Z_s=q_s;function q_s(e){function t(n){let r=e.children(n),o=e.node(n);if(r.length&&r.forEach(t),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let s=o.minRank,a=o.maxRank+1;sykn(e.node(t))),e.edges().forEach(t=>ykn(e.edge(t)))}function ykn(e){let t=e.width;e.width=e.height,e.height=t}function eSs(e){e.nodes().forEach(t=>vRe(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(vRe),Object.hasOwn(r,"y")&&vRe(r)})}function vRe(e){e.y=-e.y}function tSs(e){e.nodes().forEach(t=>ARe(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(ARe),Object.hasOwn(r,"x")&&ARe(r)})}function ARe(e){let t=e.x;e.x=e.y,e.y=t}function nSs(e){let t={},n=e.nodes().filter(l=>!e.children(l).length),r=n.map(l=>e.node(l).rank),o=JO(Math.max,r),s=Mte(o+1).map(()=>[]);function a(l){if(t[l])return;t[l]=!0;let d=e.node(l);s[d.rank].push(l);let u=e.successors(l);u&&u.forEach(a)}return n.sort((l,d)=>e.node(l).rank-e.node(d).rank).forEach(a),s}function iSs(e,t){let n=0;for(let r=1;rh)),o=t.flatMap(u=>{let h=e.outEdges(u);return h?h.map(g=>({pos:r[g.w],weight:e.edge(g).weight})).sort((g,m)=>g.pos-m.pos):[]}),s=1;for(;s{let h=u.pos+s;l[h]+=u.weight;let g=0;for(;h>0;)h%2&&(g+=l[h+1]),h=h-1>>1,l[h]+=u.weight;d+=u.weight*g}),d}function oSs(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(!r||!r.length)return{v:n};{let o=r.reduce((s,a)=>{let l=e.edge(a),d=e.node(a.v);return{sum:s.sum+l.weight*d.order,weight:s.weight+l.weight}},{sum:0,weight:0});return{v:n,barycenter:o.sum/o.weight,weight:o.weight}}})}function sSs(e,t){let n={};e.forEach((o,s)=>{let a={indegree:0,in:[],out:[],vs:[o.v],i:s};o.barycenter!==void 0&&(a.barycenter=o.barycenter,a.weight=o.weight),n[o.v]=a}),t.edges().forEach(o=>{let s=n[o.v],a=n[o.w];s!==void 0&&a!==void 0&&(a.indegree++,s.out.push(a))});let r=Object.values(n).filter(o=>!o.indegree);return aSs(r)}function aSs(e){let t=[];function n(o){return s=>{s.merged||(s.barycenter===void 0||o.barycenter===void 0||s.barycenter>=o.barycenter)&&lSs(o,s)}}function r(o){return s=>{s.in.push(o),--s.indegree===0&&e.push(s)}}for(;e.length;){let o=e.pop();t.push(o),o.in.reverse().forEach(n(o)),o.out.forEach(r(o))}return t.filter(o=>!o.merged).map(o=>X2e(o,["vs","i","barycenter","weight"]))}function lSs(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function cSs(e,t){let n=d_s(e,h=>Object.hasOwn(h,"barycenter")),r=n.lhs,o=n.rhs.sort((h,g)=>g.i-h.i),s=[],a=0,l=0,d=0;r.sort(dSs(!!t)),d=Ckn(s,o,d),r.forEach(h=>{d+=h.vs.length,s.push(h.vs),a+=h.barycenter*h.weight,l+=h.weight,d=Ckn(s,o,d)});let u={vs:s.flat(1)};return l&&(u.barycenter=a/l,u.weight=l),u}function Ckn(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function dSs(e){return(t,n)=>t.barycentern.barycenter?1:e?n.i-t.i:t.i-n.i}function qZn(e,t,n,r){let o=e.children(t),s=e.node(t),a=s?s.borderLeft:void 0,l=s?s.borderRight:void 0,d={};a&&(o=o.filter(m=>m!==a&&m!==l));let u=oSs(e,o);u.forEach(m=>{if(e.children(m.v).length){let v=qZn(e,m.v,n,r);d[m.v]=v,Object.hasOwn(v,"barycenter")&&hSs(m,v)}});let h=sSs(u,n);uSs(h,d);let g=cSs(h,r);if(a&&l){g.vs=[a,g.vs,l].flat(1);let m=e.predecessors(a);if(m&&m.length){let v=e.node(m[0]),f=e.predecessors(l),k=e.node(f[0]);Object.hasOwn(g,"barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+v.order+k.order)/(g.weight+2),g.weight+=2}}return g}function uSs(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function hSs(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}function fSs(e,t,n,r){r||(r=e.nodes());let o=gSs(e),s=new Tp({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(a=>e.node(a));return r.forEach(a=>{let l=e.node(a),d=e.parent(a);if(l.rank===t||l.minRank<=t&&t<=l.maxRank){s.setNode(a),s.setParent(a,d||o);let u=e[n](a);u&&u.forEach(h=>{let g=h.v===a?h.w:h.v,m=s.edge(g,a),v=m!==void 0?m.weight:0;s.setEdge(g,a,{weight:e.edge(h).weight+v})}),Object.hasOwn(l,"minRank")&&s.setNode(a,{borderLeft:l.borderLeft[t],borderRight:l.borderRight[t]})}}),s}function gSs(e){let t;for(;e.hasNode(t=Yst("_root")););return t}function mSs(e,t,n){let r={},o;n.forEach(s=>{let a=e.parent(s),l,d;for(;a;){if(l=e.parent(a),l?(d=r[l],r[l]=a):(d=o,o=a),d&&d!==a){t.setEdge(d,a);return}a=l}})}function KZn(e,t={}){if(typeof t.customOrder=="function"){t.customOrder(e,KZn);return}let n=UZn(e),r=_kn(e,Mte(1,n+1),"inEdges"),o=_kn(e,Mte(n-1,-1,-1),"outEdges"),s=nSs(e);if(Skn(e,s),t.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,l,d=t.constraints||[];for(let u=0,h=0;h<4;++u,++h){kSs(u%2?r:o,u%4>=2,d),s=$re(e);let g=iSs(e,s);g{r.has(s)||r.set(s,[]),r.get(s).push(a)};for(let s of e.nodes()){let a=e.node(s);if(typeof a.rank=="number"&&o(a.rank,s),typeof a.minRank=="number"&&typeof a.maxRank=="number")for(let l=a.minRank;l<=a.maxRank;l++)l!==a.rank&&o(l,s)}return t.map(function(s){return fSs(e,s,n,r.get(s)||[])})}function kSs(e,t,n){let r=new Tp;e.forEach(function(o){n.forEach(l=>r.setEdge(l.left,l.right));let s=o.graph().root,a=qZn(o,s,r,t);a.vs.forEach((l,d)=>o.node(l).order=d),mSs(o,r,a.vs)})}function Skn(e,t){Object.values(t).forEach(n=>n.forEach((r,o)=>e.node(r).order=o))}function vSs(e,t){let n={};function r(o,s){let a=0,l=0,d=o.length,u=s[s.length-1];return s.forEach((h,g)=>{let m=pSs(e,h),v=m?e.node(m).order:d;(m||h===u)&&(s.slice(l,g+1).forEach(f=>{let k=e.predecessors(f);k&&k.forEach(A=>{let p=e.node(A),b=p.order;(b{let g=s[h];if(g!==void 0&&e.node(g).dummy){let m=e.predecessors(g);m&&m.forEach(v=>{if(v===void 0)return;let f=e.node(v);f.dummy&&(f.orderu)&&JZn(n,v,g)})}})}function o(s,a){let l=-1,d=-1,u=0;return a.forEach((h,g)=>{if(e.node(h).dummy==="border"){let m=e.predecessors(h);if(m&&m.length){let v=m[0];if(v===void 0)return;d=e.node(v).order,r(a,u,g,l,d),u=g,l=d}}r(a,u,a.length,d,s.length)}),a}return t.length&&t.reduce(o),n}function pSs(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function JZn(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];r||(e[t]=r={}),r[n]=!0}function bSs(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function wSs(e,t,n,r){let o={},s={},a={};return t.forEach(l=>{l.forEach((d,u)=>{o[d]=d,s[d]=d,a[d]=u})}),t.forEach(l=>{let d=-1;l.forEach(u=>{let h=r(u);if(h&&h.length){let g=h.sort((v,f)=>{let k=a[v],A=a[f];return(k!==void 0?k:0)-(A!==void 0?A:0)}),m=(g.length-1)/2;for(let v=Math.floor(m),f=Math.ceil(m);v<=f;++v){let k=g[v];if(k===void 0)continue;let A=a[k];if(A!==void 0&&s[u]===u&&d{var p;let b=(p=s[A.v])!=null?p:0,w=a.edge(A);return Math.max(k,b+(w!==void 0?w:0))},0):s[v]=0}function h(v){let f=a.outEdges(v),k=Number.POSITIVE_INFINITY;f&&(k=f.reduce((p,b)=>{let w=s[b.w],O=a.edge(b);return Math.min(p,(w!==void 0?w:0)-(O!==void 0?O:0))},Number.POSITIVE_INFINITY));let A=e.node(v);k!==Number.POSITIVE_INFINITY&&A.borderType!==l&&(s[v]=Math.max(s[v]!==void 0?s[v]:0,k))}function g(v){return a.predecessors(v)||[]}function m(v){return a.successors(v)||[]}return d(u,g),d(h,m),Object.keys(r).forEach(v=>{var f;let k=n[v];k!==void 0&&(s[v]=(f=s[k])!=null?f:0)}),s}function ySs(e,t,n,r){let o=new Tp,s=e.graph(),a=xSs(s.nodesep,s.edgesep,r);return t.forEach(l=>{let d;l.forEach(u=>{let h=n[u];if(h!==void 0){if(o.setNode(h),d!==void 0){let g=n[d];if(g!==void 0){let m=o.edge(g,h);o.setEdge(g,h,Math.max(a(e,u,d),m||0))}}d=u}})}),o}function CSs(e,t){return Object.values(t).reduce((n,r)=>{let o=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([l,d])=>{let u=ESs(e,l)/2;o=Math.max(d+u,o),s=Math.min(d-u,s)});let a=o-s;return a{["l","r"].forEach(a=>{let l=s+a,d=e[l];if(!d||d===t)return;let u=Object.values(d),h=r-JO(Math.min,u);a!=="l"&&(h=o-JO(Math.max,u)),h&&(e[l]=ZOe(d,g=>g+h))})})}function SSs(e,t=void 0){let n=e.ul;return n?ZOe(n,(r,o)=>{var s,a;if(t){let d=t.toLowerCase(),u=e[d];if(u&&u[o]!==void 0)return u[o]}let l=Object.values(e).map(d=>{let u=d[o];return u!==void 0?u:0}).sort((d,u)=>d-u);return(((s=l[1])!=null?s:0)+((a=l[2])!=null?a:0))/2}):{}}function LSs(e){let t=$re(e),n=Object.assign(vSs(e,t),ASs(e,t)),r={},o;["u","d"].forEach(a=>{o=a==="u"?t:Object.values(t).reverse(),["l","r"].forEach(l=>{l==="r"&&(o=o.map(h=>Object.values(h).reverse()));let d=wSs(e,o,n,h=>(a==="u"?e.predecessors(h):e.successors(h))||[]),u=OSs(e,o,d.root,d.align,l==="r");l==="r"&&(u=ZOe(u,h=>-h)),r[a+l]=u})});let s=CSs(e,r);return _Ss(r,s),SSs(r,e.graph().align)}function xSs(e,t,n){return(r,o,s)=>{let a=r.node(o),l=r.node(s),d=0,u;if(d+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":u=-a.width/2;break;case"r":u=a.width/2;break}if(u&&(d+=n?u:-u),u=void 0,d+=(a.dummy?t:e)/2,d+=(l.dummy?t:e)/2,d+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":u=l.width/2;break;case"r":u=-l.width/2;break}return u&&(d+=n?u:-u),d}}function ESs(e,t){return e.node(t).width}function TSs(e){e=FZn(e),QSs(e),Object.entries(LSs(e)).forEach(([t,n])=>e.node(t).x=n)}function QSs(e){let t=$re(e),n=e.graph(),r=n.ranksep,o=n.rankalign,s=0;t.forEach(a=>{let l=a.reduce((d,u)=>{var h;let g=(h=e.node(u).height)!=null?h:0;return d>g?d:g},0);a.forEach(d=>{let u=e.node(d);o==="top"?u.y=s+u.height/2:o==="bottom"?u.y=s+l-u.height/2:u.y=s+l/2}),s+=l+r})}function DSs(e,t={}){let n=t.debugTiming?jZn:WZn;return n("layout",()=>{let r=n(" buildLayoutGraph",()=>WSs(e));return n(" runLayout",()=>BSs(r,n,t)),n(" updateInputGraph",()=>RSs(e,r)),r})}function BSs(e,t,n){t(" makeSpaceForEdgeLabels",()=>VSs(e)),t(" removeSelfEdges",()=>KSs(e)),t(" acyclic",()=>O_s(e)),t(" nestingGraph.run",()=>$_s(e)),t(" rank",()=>F_s(FZn(e))),t(" injectEdgeLabelProxies",()=>zSs(e)),t(" removeEmptyRanks",()=>l_s(e)),t(" nestingGraph.cleanup",()=>Y_s(e)),t(" normalizeRanks",()=>a_s(e)),t(" assignRankMinMax",()=>HSs(e)),t(" removeEdgeLabelProxies",()=>$Ss(e)),t(" normalize.run",()=>__s(e)),t(" parentDummyChains",()=>W_s(e)),t(" addBorderSegments",()=>Z_s(e)),t(" order",()=>KZn(e,n)),t(" insertSelfEdges",()=>JSs(e)),t(" adjustCoordinateSystem",()=>K_s(e)),t(" position",()=>TSs(e)),t(" positionSelfEdges",()=>e8s(e)),t(" removeBorderNodes",()=>qSs(e)),t(" normalize.undo",()=>L_s(e)),t(" fixupEdgeLabelCoords",()=>YSs(e)),t(" undoCoordinateSystem",()=>J_s(e)),t(" translateGraph",()=>XSs(e)),t(" assignNodeIntersects",()=>GSs(e)),t(" reversePoints",()=>ZSs(e)),t(" acyclic.undo",()=>C_s(e))}function RSs(e,t){e.nodes().forEach(n=>{let r=e.node(n),o=t.node(n);r&&(r.x=o.x,r.y=o.y,r.order=o.order,r.rank=o.rank,t.children(n).length&&(r.width=o.width,r.height=o.height))}),e.edges().forEach(n=>{let r=e.edge(n),o=t.edge(n);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var ISs=["nodesep","edgesep","ranksep","marginx","marginy"],MSs={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},PSs=["acyclicer","ranker","rankdir","align","rankalign"],FSs=["width","height","rank"],Lkn={width:0,height:0},NSs=["minlen","weight","width","height","labeloffset"],USs={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},jSs=["labelpos"];function WSs(e){let t=new Tp({multigraph:!0,compound:!0}),n=bRe(e.graph());return t.setGraph(Object.assign({},MSs,pRe(n,ISs),X2e(n,PSs))),e.nodes().forEach(r=>{let o=bRe(e.node(r)),s=pRe(o,FSs);Object.keys(Lkn).forEach(l=>{s[l]===void 0&&(s[l]=Lkn[l])}),t.setNode(r,s);let a=e.parent(r);a!==void 0&&t.setParent(r,a)}),e.edges().forEach(r=>{let o=bRe(e.edge(r));t.setEdge(r,Object.assign({},USs,pRe(o,NSs),X2e(o,jSs)))}),t}function VSs(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function zSs(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v),o={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};IH(e,"edge-proxy",o,"_ep")}})}function HSs(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function $Ss(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="edge-proxy"){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function XSs(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,o=0,s=e.graph(),a=s.marginx||0,l=s.marginy||0;function d(u){let h=u.x,g=u.y,m=u.width,v=u.height;t=Math.min(t,h-m/2),n=Math.max(n,h+m/2),r=Math.min(r,g-v/2),o=Math.max(o,g+v/2)}e.nodes().forEach(u=>d(e.node(u))),e.edges().forEach(u=>{let h=e.edge(u);Object.hasOwn(h,"x")&&d(h)}),t-=a,r-=l,e.nodes().forEach(u=>{let h=e.node(u);h.x-=t,h.y-=r}),e.edges().forEach(u=>{let h=e.edge(u);h.points.forEach(g=>{g.x-=t,g.y-=r}),Object.hasOwn(h,"x")&&(h.x-=t),Object.hasOwn(h,"y")&&(h.y-=r)}),s.width=n-t+a,s.height=o-r+l}function GSs(e){e.edges().forEach(t=>{let n=e.edge(t),r=e.node(t.v),o=e.node(t.w),s,a;n.points?(s=n.points[0],a=n.points[n.points.length-1]):(n.points=[],s=o,a=r),n.points.unshift(vkn(r,s)),n.points.push(vkn(o,a))})}function YSs(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}function ZSs(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function qSs(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),o=e.node(n.borderBottom),s=e.node(n.borderLeft[n.borderLeft.length-1]),a=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(a.x-s.x),n.height=Math.abs(o.y-r.y),n.x=s.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function KSs(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function JSs(e){$re(e).forEach(t=>{let n=0;t.forEach((r,o)=>{let s=e.node(r);s.order=o+n,(s.selfEdges||[]).forEach(a=>{IH(e,"selfedge",{width:a.label.width,height:a.label.height,rank:s.rank,order:o+ ++n,e:a.e,label:a.label},"_se")}),delete s.selfEdges})})}function e8s(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="selfedge"){let r=n,o=e.node(r.e.v),s=o.x+o.width/2,a=o.y,l=n.x-s,d=o.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:s+2*l/3,y:a-d},{x:s+5*l/6,y:a-d},{x:s+l,y:a},{x:s+5*l/6,y:a+d},{x:s+2*l/3,y:a+d}],r.label.x=n.x,r.label.y=n.y}})}function pRe(e,t){return ZOe(X2e(e,t),Number)}function bRe(e){let t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}function t8s(e){let t=$re(e),n=new Tp({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{n.setNode(r,{label:r}),n.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>n.setEdge(r.v,r.w,{},r.name)),t.forEach((r,o)=>{let s="layer"+o;n.setNode(s,{rank:"same"}),r.reduce((a,l)=>(n.setEdge(a,l,{style:"invis"}),l))}),n}var n8s={graphlib:EZn,version:f_s,layout:DSs,debug:t8s,util:{time:jZn,notime:WZn}},wRe=n8s;/*! For license information please see dagre.esm.js.LEGAL.txt */function eqn(e){const{findNode:t,fitView:n}=nl(e?{id:e}:void 0),r=fe(new wRe.graphlib.Graph),o=fe("LR");function s(a,l,d,u=250,h){const g=new wRe.graphlib.Graph;r.value=g,g.setDefaultEdgeLabel(()=>({})),g.setGraph({rankdir:d,nodesep:u,ranksep:h??u}),o.value=d;const m=d==="LR";for(const v of a){const f=t(v.id);g.setNode(v.id,{width:(f==null?void 0:f.dimensions.width)||150,height:(f==null?void 0:f.dimensions.height)||50})}for(const v of l)g.setEdge(v.source,v.target);return wRe.layout(g),a.map(v=>{const f=g.node(v.id);return{...v,targetPosition:m?Vi.Left:Vi.Top,sourcePosition:m?Vi.Right:Vi.Bottom,position:{x:f.x,y:f.y}}})}return{graph:r,layout:s,previousDirection:o}}const jg=[];for(let e=0;e<256;++e)jg.push((e+256).toString(16).slice(1));function i8s(e,t=0){return(jg[e[t+0]]+jg[e[t+1]]+jg[e[t+2]]+jg[e[t+3]]+"-"+jg[e[t+4]]+jg[e[t+5]]+"-"+jg[e[t+6]]+jg[e[t+7]]+"-"+jg[e[t+8]]+jg[e[t+9]]+"-"+jg[e[t+10]]+jg[e[t+11]]+jg[e[t+12]]+jg[e[t+13]]+jg[e[t+14]]+jg[e[t+15]]).toLowerCase()}let ORe;const r8s=new Uint8Array(16);function o8s(){if(!ORe){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ORe=crypto.getRandomValues.bind(crypto)}return ORe(r8s)}const s8s=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),xkn={randomUUID:s8s};function a8s(e,t,n){var o;e=e||{};const r=e.random??((o=e.rng)==null?void 0:o.call(e))??o8s();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,i8s(r)}function yRe(e,t,n){return xkn.randomUUID&&!e?xkn.randomUUID():a8s(e)}const l8s={class:"closure"},c8s={class:"ac",style:{gap:"8px"}},d8s=Je({__name:"index",props:Fc({flowData:{default:()=>({resultImages:[],referanceImages:[]})},type:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:Fc(["save"],["update:modelValue"]),setup(e,{emit:t}){const n=bt("episodesId"),{project:r}=xs(ph()),o=fe(!1);let s=null;Yi("openStoryboardCheck",O);const{toObject:a,fromObject:l,fitView:d}=nl("editImage"),{layout:u}=eqn("editImage"),h=e,g=t,m=Pf(e,"modelValue"),{addEdges:v,getNodes:f,getEdges:k,updateNodeData:A}=nl("editImage"),p=fe([]),b=fe([]);let w=null;function O(){return o.value=!0,new Promise(R=>{s=R})}function y(R){o.value=!1,s==null||s(R),s=null}function C(){o.value=!1,s==null||s([]),s=null}function _(){w&&clearTimeout(w),w=setTimeout(S,60)}function S(){const R=f.value,I=k.value,F=new Map(R.map(W=>[W.id,W])),j=new Map;for(const W of I){const H=j.get(W.target);H?H.push(W.source):j.set(W.target,[W.source])}for(const W of R){if(W.type!=="generated")continue;const $=(j.get(W.id)??[]).map(re=>F.get(re)).filter(re=>!!re).map(re=>re.type==="upload"?{image:re.data.image||""}:re.type==="generated"?{image:re.data.generatedImage||""}:{image:""}).filter(re=>re.image),G=W.data.references??[];G.length===$.length&&$.every((re,J)=>{var oe;return((oe=G[J])==null?void 0:oe.image)===re.image})||A(W.id,{references:$})}}const L=R=>{R.source===R.target||k.value.some(F=>F.source===R.source&&F.target===R.target||F.source===R.target&&F.target===R.source)||(v([{id:yRe(),source:R.source,target:R.target,...hkn}]),ai(_))};function E(R){const I=R.value===1?"upload":"generated";T(I)}const T=(R,I="",F="")=>{const j=yRe(),W=p.value.filter(G=>G.type===R).pop(),H=W?W.position.y+350:100,$=R==="generated"?600:100;return p.value.push({id:j,type:R,position:{x:$,y:H},data:R==="generated"?Jys(I,F):{image:I}}),j};async function D(R){try{const I={nodes:fkn(f.value),edges:gkn(k.value)};if(h.flowData.flowId)await mn.post("/production/editImage/updateImageFlow",{...I,flowId:h.flowData.flowId}),g("save",{imageUrl:R,flowId:h.flowData.flowId});else{const{data:F}=await mn.post("/production/editImage/saveImageFlow",{...I});g("save",{imageUrl:R,flowId:F==null?void 0:F.id})}m.value=!1}catch(I){window.$message.error(I.message||$t("workbench.production.editImage.saveFailed"))}}const P=fe({imageModel:"",imageQuality:""});An(async()=>{try{const{data:R}=await mn.post("/production/editImage/getImageDefaultModle",{projectId:r.value.id});if(R&&(P.value=R),console.log("%c Line:268 🥔 props.flowData.flowId","background:#33a5ff",h.flowData.flowId),!h.flowData.flowId)return Q();const{data:I}=await mn.post("/production/editImage/getImageFlow",{id:h.flowData.flowId});if(!I)return Q();b.value=I.edges,p.value=I.nodes}catch(R){window.$message.error(R.message||$t("workbench.production.editImage.fetchFailed"))}});function Q(){const R=[],I=[];h.flowData.referanceImages.forEach(F=>{R.push(T("upload",F))}),h.flowData.resultImages.forEach(F=>{I.push(T("generated",F.src,F.prompt))});for(const F of R)for(const j of I)b.value.push({id:yRe(),source:F,target:j,...hkn});ai(_)}function M(){const R=co.confirm({header:$t("workbench.production.editImage.closeConfirmTitle"),body:$t("workbench.production.editImage.closeConfirmBody"),confirmBtn:$t("common.confirm"),cancelBtn:$t("common.cancel"),onConfirm:()=>{if(h.flowData.flowId){const I={flowId:h.flowData.flowId,nodes:fkn(f.value),edges:gkn(k.value)};mn.post("/production/editImage/updateImageFlow",{...I})}m.value=!1,R.destroy()}})}async function B(R){const I=a();I.nodes=u(I.nodes,I.edges,R),await l(I),await ai(),d({duration:300})}return(R,I)=>{const F=_n("i-close-small"),j=_n("i-plus"),W=Si,H=Rne,$=_n("i-tree-diagram"),G=el,q=gc;return xe(),Ut(q,{footer:!1,header:!1,closeBtn:!1,visible:m.value,"onUpdate:visible":I[4]||(I[4]=re=>m.value=re),attach:"body",placement:"center",mode:"full-screen",class:"fullscreenDialog"},{default:Oe(()=>[ge("div",l8s,[c(F,{theme:"outline",size:"24",fill:"#4a4a4a",onClick:M})]),c(Ae(wZn),{id:"editImage",class:"editImage",nodes:Ae(p),"onUpdate:nodes":I[1]||(I[1]=re=>Fn(p)?p.value=re:null),edges:Ae(b),"onUpdate:edges":I[2]||(I[2]=re=>Fn(b)?b.value=re:null),"min-zoom":.01,"fit-view-on-init":"",onConnect:L,onEdgesChange:_},{"node-upload":Oe(({id:re,data:J})=>[c(zys,{id:re,data:J,onUpload:_,onKeep:D},null,8,["id","data"])]),"node-generated":Oe(({id:re,data:J})=>[c(kCs,{id:re,data:J,projectId:+Ae(r).id,imageDefaultModle:Ae(P),onKeep:D},null,8,["id","data","projectId","imageDefaultModle"])]),"edge-removeLine":Oe(re=>[c(DCs,Qx(D_(re)),null,16)]),default:Oe(()=>[c(Ae(_Zn)),c(Ae(SZn)),c(Ae(OZn),{position:"top-left"},{default:Oe(()=>[ge("div",c8s,[c(H,{options:[{content:R.$t("workbench.production.editImage.upload"),value:1},{content:R.$t("workbench.production.editImage.generate"),value:2}],onClick:E},{default:Oe(()=>[c(W,{theme:"primary",shape:"circle"},{icon:Oe(()=>[c(j)]),_:1})]),_:1},8,["options"]),c(G,{theme:"primary",content:R.$t("workbench.production.autoLayoutLR")},{default:Oe(()=>[c(W,{class:"guide-layout-btn",onClick:I[0]||(I[0]=re=>B("LR")),variant:"outline",shape:"circle"},{icon:Oe(()=>[c($)]),_:1})]),_:1},8,["content"])])]),_:1})]),_:1},8,["nodes","edges"]),c(ECs,{telepor:"",modelValue:Ae(o),"onUpdate:modelValue":I[3]||(I[3]=re=>Fn(o)?o.value=re:null),scriptId:Ae(n),onConfirm:y,onCancel:C},null,8,["modelValue","scriptId"])]),_:1},8,["visible"])}}}),tqn=oo(d8s,[["__scopeId","data-v-dc3fbf5a"]]),Ekn={script:"script",scriptPlan:"scriptPlan",assets:"assets",storyboardTable:"storyboardTable",storyboard:"storyboard",workbench:"workbench"},cG={stroke:"#00000",strokeWidth:4};function u8s(e,t){const n=X(()=>{const o=e.value,s=t.value,a=Ekn;return[{id:a.script,type:"script",dragHandle:".dragHandle",position:s[a.script]||{x:0,y:0},data:{script:o.script,handleIds:{assets:`${a.script}-assets`,source:`${a.script}-source`}}},{id:a.scriptPlan,type:"scriptPlan",dragHandle:".dragHandle",position:s[a.scriptPlan]||{x:0,y:0},data:{scriptPlan:o.scriptPlan,handleIds:{target:`${a.scriptPlan}-target`,source:`${a.scriptPlan}-source`}}},{id:a.assets,type:"assets",dragHandle:".dragHandle",position:s[a.assets]||{x:0,y:0},data:{assets:o.assets,handleIds:{target:`${a.assets}-target`}}},{id:a.storyboardTable,type:"storyboardTable",dragHandle:".dragHandle",position:s[a.storyboardTable]||{x:0,y:0},data:{storyboardTable:o.storyboardTable,handleIds:{target:`${a.storyboardTable}-target`,source:`${a.storyboardTable}-source`}}},{id:a.storyboard,type:"storyboard",dragHandle:".dragHandle",position:s[a.storyboard]||{x:0,y:0},data:{storyboard:o.storyboard,handleIds:{target:`${a.storyboard}-target`,source:`${a.storyboard}-source`}}},{id:a.workbench,type:"workbench",dragHandle:".dragHandle",position:s[a.workbench]||{x:0,y:0},data:{...o.workbench,handleIds:{target:`${a.workbench}-target`,source:`${a.workbench}-source`}}}]}),r=X(()=>{const o=Ekn;return[{id:`${o.script}-${o.assets}`,source:o.script,target:o.assets,sourceHandle:`${o.script}-assets`,targetHandle:`${o.assets}-target`,animated:!1,style:cG},{id:`${o.script}-${o.scriptPlan}`,source:o.script,target:o.scriptPlan,sourceHandle:`${o.script}-source`,targetHandle:`${o.scriptPlan}-target`,animated:!1,style:cG},{id:`${o.scriptPlan}-${o.storyboardTable}`,source:o.scriptPlan,target:o.storyboardTable,sourceHandle:`${o.scriptPlan}-source`,targetHandle:`${o.storyboardTable}-target`,animated:!1,style:cG},{id:`${o.storyboardTable}-${o.storyboard}`,source:o.storyboardTable,target:o.storyboard,sourceHandle:`${o.storyboardTable}-source`,targetHandle:`${o.storyboard}-target`,animated:!1,style:cG},{id:`${o.storyboard}-${o.workbench}`,source:o.storyboard,target:o.workbench,sourceHandle:`${o.storyboard}-source`,targetHandle:`${o.workbench}-target`,animated:!1,style:cG}]});return{nodes:n,edges:r}}const h8s={class:"titleBar dragHandle"},f8s={class:"title"},g8s={class:"content"},m8s={class:"cardGrid"},k8s={key:0,class:"assetImageWrap"},v8s={class:"imageToolsWrap show"},A8s={key:1,class:"assetImageWrap assetImagePlaceholder"},p8s={key:1,style:{color:"red"}},b8s={class:"cardInfo"},w8s={class:"cardName"},O8s={class:"nameText"},y8s={class:"cardDesc"},C8s={class:"divider"},_8s={class:"deriveAssets"},S8s={key:0,class:"assetImageWrap"},L8s={class:"imageToolsWrap show"},x8s={key:1,class:"assetImageWrap assetImagePlaceholder"},E8s={style:{color:"red",cursor:"pointer"}},T8s=["onClick"],Q8s={class:"cardInfo"},D8s={class:"cardName"},B8s={class:"nameText"},R8s={class:"cardDesc"},I8s=Je({__name:"assets",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const{project:t}=xs(ph()),n=e,r=Pf(e,"modelValue"),o=fe({resultImages:[],referanceImages:[]}),s=fe(!1),a=fe();function l(h,g){o.value={flowId:h==null?void 0:h.flowId,resultImages:[{src:h.src,prompt:h.prompt}],referanceImages:[g]},a.value=h.id,s.value=!0}async function d({imageUrl:h,flowId:g}){if(h){for(const m of r.value){const v=m.derive.find(f=>f.id===a.value);if(v){v.src=h,v.flowId=g;break}}await mn.post("/production/assets/updateAssetsUrl",{id:a.value,url:h,flowId:g})}}async function u(h){const g=co.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.production.node.assets.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{var m;try{await mn.post("/production/assets/deleteAssetsDireve",{id:h,projectId:(m=t.value)==null?void 0:m.id}),r.value.forEach(v=>{const f=v.derive.findIndex(k=>k.id===h);f!==-1&&v.derive.splice(f,1)})}catch(v){window.$message.error((v==null?void 0:v.message)||$t("workbench.production.node.assets.removeFailed"))}finally{g.destroy()}}})}return(h,g)=>{const m=jre,v=Zh,f=Wc,k=Xy,A=Sg,p=km,b=_n("i-right"),w=el,O=_n("i-delete");return xe(),Ut(p,{class:"assets"},{default:Oe(()=>[c(Ae(mm),{id:n.handleIds.target,type:"target",position:Ae(Vi).Top},null,8,["id","position"]),ge("div",h8s,[ge("div",f8s,Pe(h.$t("workbench.production.node.assets.title")),1)]),ge("div",g8s,[ge("div",m8s,[(xe(!0),Ge(sn,null,Bi(r.value,y=>(xe(),Ge("div",{key:y.id,class:"assetItemBox"},[c(p,{class:"assetCard"},{default:Oe(()=>[y.src?(xe(),Ge("div",k8s,[c(v,{src:y.src,fit:"contain",class:"assetImage",preview:!0},{overlayContent:Oe(()=>[ge("div",v8s,[c(m,{src:y.src,position:"br"},null,8,["src"])])]),_:2},1032,["src"])])):(xe(),Ge("div",A8s,[y.state=="生成中"?(xe(),Ut(f,{key:0,size:"small"})):y.state=="生成失败"?(xe(),Ge("span",p8s,Pe(h.$t("workbench.production.node.assets.generateFailed")),1)):(xe(),Ut(k,{key:2,size:"small",title:h.$t("workbench.production.node.assets.notGenerated")},null,8,["title"]))])),ge("div",b8s,[ge("div",w8s,[ge("span",O8s,Pe(y.name),1),c(A,{theme:"success"},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.node.assets.originalAsset")),1)]),_:1})]),ge("div",y8s,Pe(y.desc),1)])]),_:2},1024),ge("div",C8s,[c(b,{size:"32"})]),ge("div",_8s,[(xe(!0),Ge(sn,null,Bi(y.derive,(C,_)=>(xe(),Ut(p,{key:_,class:"assetCard",onClick:S=>l(C,y.src)},{default:Oe(()=>[C.src&&C.state=="已完成"?(xe(),Ge("div",S8s,[c(v,{src:C.src,fit:"contain",class:"assetImage",preview:!0},{overlayContent:Oe(()=>[ge("div",L8s,[c(m,{src:C.src,position:"br"},null,8,["src"])])]),_:2},1032,["src"])])):(xe(),Ge("div",x8s,[C.state=="生成中"?(xe(),Ut(f,{key:0,size:"small"})):C.state=="生成失败"?(xe(),Ut(w,{key:1,content:C==null?void 0:C.errorReason},{default:Oe(()=>[ge("div",E8s,Pe(h.$t("workbench.novel.genFailed")),1)]),_:1},8,["content"])):(xe(),Ut(k,{key:2,size:"small",title:h.$t("workbench.production.node.assets.notGenerated")},null,8,["title"]))])),c(w,{theme:"primary",content:h.$t("workbench.production.node.storyboard.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",onClick:Mr(S=>u(C.id),["stop"])},[c(O,{theme:"outline",size:"18",fill:"#fff"})],8,T8s)]),_:2},1032,["content"]),ge("div",Q8s,[ge("div",D8s,[ge("span",B8s,Pe(C.name),1),c(A,{theme:"warning"},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.node.assets.derived")),1)]),_:1})]),ge("div",R8s,Pe(C.desc),1)])]),_:2},1032,["onClick"]))),128)),y.derive.length<=0?(xe(),Ut(p,{key:0,class:"assetCard emptyCard"},{default:Oe(()=>[c(k,{title:h.$t("workbench.production.node.assets.noDerivedAssets")},null,8,["title"])]),_:1})):nn("",!0)])]))),128))])]),Ae(s)?(xe(),Ut(tqn,{key:0,modelValue:Ae(s),"onUpdate:modelValue":g[0]||(g[0]=y=>Fn(s)?s.value=y:null),flowData:Ae(o),onSave:d},null,8,["modelValue","flowData"])):nn("",!0)]),_:1})}}}),M8s=oo(I8s,[["__scopeId","data-v-d4a8f944"]]),P8s={class:"titleBar dragHandle pr"},F8s={class:"title c"},N8s={class:"storyboardList"},U8s=Je({__name:"storyboardTable",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Pf(e,"modelValue"),r=fe(""),o=fe(!1),s=["bold","underline","italic","strikeThrough","-","title","sub","sup","quote","unorderedList","orderedList","task","-","codeRow","code","table","-","revoke","next","=","preview"];function a(){r.value=n.value??"",o.value=!0}function l(){n.value=r.value,o.value=!1}function d(){o.value=!1}function u(h){var m;const g=(m=h.clipboardData)==null?void 0:m.items;if(g){for(const v of g)if(v.type.startsWith("image/")||v.type.startsWith("video/")){h.preventDefault();return}}}return(h,g)=>{const m=Si,v=Xy,f=km,k=gc;return xe(),Ge(sn,null,[c(f,{class:"storyboardTable"},{default:Oe(()=>[ge("div",P8s,[ge("div",F8s,Pe(h.$t("workbench.production.node.storyboardTable.title")),1),c(m,{size:"small",variant:"text",onClick:a},{default:Oe(()=>[Bt(Pe(h.$t("workbench.production.edit")),1)]),_:1}),c(Ae(mm),{id:t.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"]),c(Ae(mm),{id:t.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",N8s,[n.value?(xe(),Ut(Ae(i3),{key:1,modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=A=>n.value=A),theme:"light"},null,8,["modelValue"])):(xe(),Ut(v,{key:0,style:{"margin-top":"16px"}}))])]),_:1}),c(k,{visible:o.value,"onUpdate:visible":g[3]||(g[3]=A=>o.value=A),header:h.$t("workbench.production.node.storyboardTable.editDialog"),width:"90vw","confirm-btn":h.$t("workbench.production.save"),"cancel-btn":h.$t("workbench.production.cancel"),onConfirm:l,onCancel:d,onClose:d,"close-on-overlay-click":!1,placement:"center",attach:"body"},{default:Oe(()=>[c(Ae(X4),{modelValue:r.value,"onUpdate:modelValue":g[1]||(g[1]=A=>r.value=A),theme:"light",toolbars:s,footers:[],style:{height:"72vh"},onOnUploadImg:()=>{},onDrop:g[2]||(g[2]=Mr(()=>{},["prevent"])),onPaste:u},null,8,["modelValue"])]),_:1},8,["visible","header","confirm-btn","cancel-btn"])],64)}}}),j8s=oo(U8s,[["__scopeId","data-v-1ef204e0"]]),W8s={class:"titleBar dragHandle pr"},V8s={class:"title"},z8s={class:"content"},H8s={class:"frameGrid"},$8s=["onMouseenter"],X8s=["onClick"],G8s={class:"frameCard"},Y8s={class:"imageToolsWrap show"},Z8s=["onClick"],q8s=["onClick"],K8s=["onClick"],J8s=["onClick"],eLs={class:"scaleControl"},tLs={class:"ac",style:{gap:"10px"}},nLs=Je({__name:"storyboard",props:Fc({id:{},handleIds:{},assetsData:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const{project:t}=xs(ph()),{episodesId:n}=xs(g0()),r=e,o=Pf(e,"modelValue"),s=fe(!1),a=fe(!1),l=fe([]),d=q4e("storyboardGridScale",1),u=fe(null);function h(C){u.value=C}const g=fe({flowId:null,resultImages:[],referanceImages:[]}),m=["#5bccb3","#9c7cfc","#fbbf24","#5b9afc","#e86b6b","#7cb8fc","#e8a855","#34d399"];function v(){l.value=[]}async function f(){Wh(!0);const C=(o.value??[]).filter(_=>_.src).map(_=>_.id);if(!C.length){window.$message.warning($t("workbench.production.node.storyboard.noPreviewImages")),Wh(!1);return}try{const _=await mn.post("/production/storyboard/downPreviewImage",{storyboardIds:C},{responseType:"blob"}),S=URL.createObjectURL(_),L=document.createElement("a");L.href=S,L.download=`storyboardImagePreview-${Date.now()}.png`,L.click(),URL.revokeObjectURL(S)}catch{window.$message.error($t("workbench.production.node.storyboard.imageLoadFailed"))}finally{Wh(!1)}}async function k(){var _;Wh(!0);const C=(o.value??[]).filter(S=>S.src).map(S=>S.id);if(!C.length){window.$message.warning($t("workbench.production.node.storyboard.noPreviewImages")),Wh(!1);return}try{const{data:S}=await mn.post("/production/storyboard/previewImage",{storyboardIds:C,projectId:(_=t.value)==null?void 0:_.id});l.value=[S],a.value=!0}catch{window.$message.error($t("workbench.production.node.storyboard.imageLoadFailed"))}finally{Wh(!1)}}const A=fe({id:null,insertAfterIndex:null}),p=X(()=>{if(d.value<=1)return d.value});function b(C,_,S=null){var L;if(A.value={id:S==null?C==null?void 0:C.id:null,insertAfterIndex:S},g.value={flowId:(C==null?void 0:C.flowId)??null,resultImages:[],referanceImages:[]},A.value.id){let E=[];if(C.associateAssetsIds&&C.associateAssetsIds.length>0){const T=[];for(const D of r.assetsData)C.associateAssetsIds.includes(D.id)&&D.src&&T.push(D.src),(L=D.derive)==null||L.forEach(P=>{C!=null&&C.associateAssetsIds.includes(P.id)&&P.src&&T.push(P.src)});E=E.concat(T)}g.value.referanceImages=E,g.value.resultImages=[{src:_.length?_[0]:"",prompt:C.prompt??""}]}else g.value.referanceImages=_.filter(Boolean);s.value=!0}async function w({imageUrl:C,flowId:_}){var T;if(!C)return;const{id:S,insertAfterIndex:L}=A.value;if(S===null&&L!==null){const D={duration:0,prompt:"",src:C,videoDesc:"",shouldGenerateImage:1,state:"已完成"},{data:P}=await mn.post("/production/storyboard/addStoryboard",{...D,projectId:(T=t.value)==null?void 0:T.id,scriptId:n.value,flowId:_});o.value.splice(L+1,0,{...D,id:P.id,flowId:_}),g0().setFlowData();return}const E=o.value.find(D=>D.id===S);E&&(E.src=C,E.state="已完成",E.flowId=_),await mn.post("/production/storyboard/updateStoryboardUrl",{id:S,url:C,flowId:_})}async function O(C){const _=co.confirm({header:$t("workbench.assets.confirmDeleteHeader"),body:$t("workbench.production.node.storyboard.confirmDeleteBody"),confirmBtn:$t("workbench.assets.deleteBtn"),cancelBtn:$t("workbench.assets.cancelBtn"),theme:"warning",onConfirm:async()=>{var S;if(!C){const L=o.value.findIndex(E=>E.id===C);L!==-1&&o.value.splice(L,1),_.destroy();return}try{await mn.post("/production/storyboard/removeFrame",{id:C,projectId:(S=t.value)==null?void 0:S.id});const L=o.value.findIndex(E=>E.id===C);L!==-1&&o.value.splice(L,1)}catch(L){window.$message.error((L==null?void 0:L.message)||$t("workbench.production.node.storyboard.removeFailed"))}finally{_.destroy()}}})}function y(C){const _=hs({prompt:C.prompt??"",videoDesc:(C==null?void 0:C.videoDesc)??""}),S=()=>xn("div",{class:"editInfoForm"},[xn("div",{class:"editInfoField"},[xn("label",{class:"editInfoLabel"},$t("workbench.production.node.storyboard.prompt")),xn(c2,{value:_.prompt,placeholder:$t("workbench.production.node.storyboard.promptPlaceholder"),autosize:{minRows:3,maxRows:6},"onUpdate:value":E=>_.prompt=E})]),xn("div",{class:"editInfoField"},[xn("label",{class:"editInfoLabel"},$t("workbench.production.node.storyboard.videoDesc")),xn(c2,{value:_.videoDesc,placeholder:$t("workbench.production.node.storyboard.videoDescPlaceholder"),autosize:{minRows:3,maxRows:6},"onUpdate:value":E=>_.videoDesc=E})])]),L=co.confirm({header:$t("workbench.production.node.storyboard.editInfo"),body:S,width:480,confirmBtn:{content:$t("common.submit"),theme:"primary",loading:!1},onConfirm:async()=>{L.update({confirmBtn:{content:$t("common.submitting"),loading:!0}});try{await mn.post("/production/storyboard/editStoryboardInfo",{id:C.id,prompt:_.prompt,videoDesc:_.videoDesc}),C.prompt=_.prompt,C.videoDesc=_.videoDesc,window.$message.success($t("common.editSuccess"))}catch(E){window.$message.error((E==null?void 0:E.message)||$t("common.editFailed"))}finally{L.update({confirmBtn:{content:$t("common.submit"),loading:!1}}),L.destroy()}}})}return(C,_)=>{const S=Xy,L=_n("i-plus"),E=Si,T=Sg,D=jre,P=Zh,Q=Wc,M=el,B=_n("i-delete"),R=_n("i-edit"),I=Lz,F=hL,j=km;return xe(),Ut(j,{class:"storyboard"},{default:Oe(()=>[ge("div",W8s,[ge("div",V8s,Pe(C.$t("workbench.production.node.storyboard.title")),1),c(Ae(mm),{id:r.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"]),c(Ae(mm),{id:r.handleIds.source,type:"source",position:Ae(Vi).Right,style:{right:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",z8s,[o.value.length?nn("",!0):(xe(),Ut(S,{key:0,style:{"margin-top":"16px"}})),ge("div",H8s,[(xe(!0),Ge(sn,null,Bi(o.value,(W,H)=>(xe(),Ge("div",{key:W.id,class:"frameItem",onMouseenter:$=>h(H),onMouseleave:_[0]||(_[0]=$=>h(null))},[ge("div",{class:Eo(["addBetween addBetween--left",{expanded:Ae(u)===H}]),onClick:Mr($=>{var G;return b(W,[H>0&&((G=o.value[H-1])==null?void 0:G.src)||"",W.src||""],H-1)},["stop"])},[c(E,{theme:"primary",variant:"outline",shape:"circle"},{icon:Oe(()=>[c(L)]),_:1})],10,X8s),ge("div",G8s,[ge("div",{class:"frameImage",style:no({width:`${200*Ae(d)}px`,height:`${200*Ae(d)}px`})},[c(T,{class:"frameTypeTag",style:no({backgroundColor:m[H%m.length],transform:`scale(${Ae(p)})`})},{default:Oe(()=>[Bt(" S"+Pe(String(H+1).padStart(2,"0")),1)]),_:2},1032,["style"]),W.src&&W.state=="已完成"?(xe(),Ut(P,{key:0,src:W.src,fit:"contain",class:"frameImg",onClick:$=>b(W,[W.src])},{overlayContent:Oe(()=>[ge("div",Y8s,[c(D,{style:no({transform:`scale(${Ae(p)})`}),src:W.src,position:"br"},null,8,["style","src"])])]),_:2},1032,["src","onClick"])):(xe(),Ge("div",{key:1,class:"generatingPlaceholder",onClick:$=>b(W,[])},[W.state==="生成中"?(xe(),Ut(Q,{key:0,size:"small"})):W.state=="生成失败"?(xe(),Ut(M,{key:1,content:W==null?void 0:W.reason},{default:Oe(()=>[..._[4]||(_[4]=[ge("span",{style:{color:"#ff4d4f"}},"生成失败",-1)])]),_:1},8,["content"])):(xe(),Ut(S,{key:2,size:"small",title:C.$t("workbench.production.node.storyboard.notGenerated")},null,8,["title"]))],8,Z8s)),c(M,{theme:"primary",content:C.$t("workbench.production.node.storyboard.deleteNode")},{default:Oe(()=>[ge("div",{class:"remove ac",style:no({transform:`scale(${Ae(p)})`}),onClick:Mr($=>O(W.id),["stop"])},[c(B,{theme:"outline",size:"18",fill:"#fff"})],12,q8s)]),_:2},1032,["content"]),c(M,{theme:"primary",content:C.$t("workbench.production.node.storyboard.editNode")},{default:Oe(()=>[ge("div",{class:"editNode ac",style:no({transform:`scale(${Ae(p)})`}),onClick:Mr($=>y(W),["stop"])},[c(R,{theme:"outline",size:"18",fill:"#fff"})],12,K8s)]),_:2},1032,["content"])],4)]),ge("div",{class:Eo(["addBetween addBetween--right",{expanded:Ae(u)===H}]),onClick:Mr($=>{var G,q;return b(W,[W.src||"",H<(((G=o.value)==null?void 0:G.length)??0)-1&&((q=o.value[H+1])==null?void 0:q.src)||""],H)},["stop"])},[c(E,{theme:"primary",variant:"outline",shape:"circle"},{icon:Oe(()=>[c(L)]),_:1})],10,J8s)],40,$8s))),128))]),ge("div",eLs,[ge("span",null,Pe(C.$t("workbench.production.node.storyboard.scaleRatio")),1),c(I,{modelValue:Ae(d),"onUpdate:modelValue":_[1]||(_[1]=W=>Fn(d)?d.value=W:null),min:.1,max:3,step:.1,"decimal-places":1,size:"small",style:{width:"120px"}},null,8,["modelValue"])]),ge("div",tLs,[c(E,{block:"",onClick:k,disabled:!o.value.length},{default:Oe(()=>[Bt(Pe(C.$t("workbench.production.node.storyboard.gridPreview")),1)]),_:1},8,["disabled"])])]),Ae(s)?(xe(),Ut(tqn,{key:0,modelValue:Ae(s),"onUpdate:modelValue":_[2]||(_[2]=W=>Fn(s)?s.value=W:null),flowData:Ae(g),type:"storyboard",onSave:w},null,8,["modelValue","flowData"])):nn("",!0),c(F,{visible:Ae(a),"onUpdate:visible":_[3]||(_[3]=W=>Fn(a)?a.value=W:null),images:Ae(l),onClose:v,onDownload:f,imageScale:{max:10,min:.1}},null,8,["visible","images"])]),_:1})}}}),iLs=oo(nLs,[["__scopeId","data-v-122b9e8f"]]);var rLs=Object.defineProperty,G2e=Object.getOwnPropertySymbols,nqn=Object.prototype.hasOwnProperty,iqn=Object.prototype.propertyIsEnumerable,Tkn=(e,t,n)=>t in e?rLs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,UN=(e,t)=>{for(var n in t||(t={}))nqn.call(t,n)&&Tkn(e,n,t[n]);if(G2e)for(var n of G2e(t))iqn.call(t,n)&&Tkn(e,n,t[n]);return e},rqn=(e,t)=>{var n={};for(var r in e)nqn.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&G2e)for(var r of G2e(e))t.indexOf(r)<0&&iqn.call(e,r)&&(n[r]=e[r]);return n};const oqn="[vue-draggable-plus]: ";function oLs(e){console.warn(oqn+e)}function sLs(e){console.error(oqn+e)}function Qkn(e,t,n){return n>=0&&nn?n.toUpperCase():"")}function lLs(e){return Object.keys(e).reduce((t,n)=>(typeof e[n]<"u"&&(t[aLs(n)]=e[n]),t),{})}function Dkn(e,t){return Array.isArray(e)&&e.splice(t,1),e}function Bkn(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function cLs(e){return typeof e>"u"}function dLs(e){return typeof e=="string"}function Rkn(e,t,n){const r=e.children[n];e.insertBefore(t,r)}function CRe(e){e.parentNode&&e.parentNode.removeChild(e)}function uLs(e,t=document){var n;let r=null;return typeof(t==null?void 0:t.querySelector)=="function"?r=(n=t==null?void 0:t.querySelector)==null?void 0:n.call(t,e):r=document.querySelector(e),r||oLs(`Element not found: ${e}`),r}function hLs(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function fLs(e,t){const n=UN({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=hLs(e[r],t[r]):n[r]=t[r]}),n}function gLs(e){return e instanceof HTMLElement}function Ikn(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function mLs(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}const kLs=Object.assign;/**! * Sortable 1.15.2 * @author RubaXa * @author owenm * @license MIT - */function Mkn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Uy(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function pLs(e,t){if(e==null)return{};var n=ALs(e,t),r,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var bLs="1.15.2";function g8(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var IL=g8(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Xre=g8(/Edge/i),Pkn=g8(/firefox/i),dq=g8(/safari/i)&&!g8(/chrome/i)&&!g8(/android/i),sqn=g8(/iP(ad|od|hone)/i),aqn=g8(/chrome/i)&&g8(/android/i),lqn={capture:!1,passive:!1};function yl(e,t,n){e.addEventListener(t,n,!IL&&lqn)}function Ya(e,t,n){e.removeEventListener(t,n,!IL&&lqn)}function Y2e(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function wLs(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Ib(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Y2e(e,t):Y2e(e,t))||r&&e===n)return e;if(e===n)break}while(e=wLs(e))}return null}var Fkn=/\s+/g;function J2(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(Fkn," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(Fkn," ")}}function Mo(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function vj(e,t){var n="";if(typeof e=="string")n=e;else do{var r=Mo(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function cqn(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,s=r.length;if(n)for(;o=s,!a)return r;if(r===vy())break;r=T9(r,!1)}return!1}function dz(e,t,n,r){for(var o=0,s=0,a=e.children;s2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,o=pLs(n,ELs);Gre.pluginEvent.bind(Po)(e,t,Uy({dragEl:Ii,parentEl:Lu,ghostEl:ms,rootEl:Ed,nextEl:oT,lastDownEl:ife,cloneEl:tu,cloneHidden:M5,dragStarted:uY,putSortable:Vg,activeSortable:Po.active,originalEvent:r,oldIndex:jN,oldDraggableIndex:hq,newIndex:nv,newDraggableIndex:k5,hideGhostForTarget:vqn,unhideGhostForTarget:Aqn,cloneNowHidden:function(){M5=!0},cloneNowShown:function(){M5=!1},dispatchSortableEvent:function(s){X1({sortable:t,name:s,originalEvent:r})}},o))};function X1(e){xLs(Uy({putSortable:Vg,cloneEl:tu,targetEl:Ii,rootEl:Ed,oldIndex:jN,oldDraggableIndex:hq,newIndex:nv,newDraggableIndex:k5},e))}var Ii,Lu,ms,Ed,oT,ife,tu,M5,jN,nv,hq,k5,Ude,Vg,WF=!1,Z2e=!1,q2e=[],I7,qp,LRe,xRe,jkn,Wkn,uY,aF,fq,gq=!1,jde=!1,rfe,Pm,ERe=[],zGe=!1,K2e=[],KOe=typeof document<"u",Wde=sqn,Vkn=Xre||IL?"cssFloat":"float",TLs=KOe&&!aqn&&!sqn&&"draggable"in document.createElement("div"),gqn=function(){if(KOe){if(IL)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),mqn=function(e,t){var n=Mo(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=dz(e,0,t),s=dz(e,1,t),a=o&&Mo(o),l=s&&Mo(s),d=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+Uh(o).width,u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Uh(s).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&a.float&&a.float!=="none"){var h=a.float==="left"?"left":"right";return s&&(l.clear==="both"||l.clear===h)?"vertical":"horizontal"}return o&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||d>=r&&n[Vkn]==="none"||s&&n[Vkn]==="none"&&d+u>r)?"vertical":"horizontal"},QLs=function(e,t,n){var r=n?e.left:e.top,o=n?e.right:e.bottom,s=n?e.width:e.height,a=n?t.left:t.top,l=n?t.right:t.bottom,d=n?t.width:t.height;return r===a||o===l||r+s/2===a+d/2},DLs=function(e,t){var n;return q2e.some(function(r){var o=r[Fv].options.emptyInsertThreshold;if(!(!o||Jst(r))){var s=Uh(r),a=e>=s.left-o&&e<=s.right+o,l=t>=s.top-o&&t<=s.bottom+o;if(a&&l)return n=r}}),n},kqn=function(e){function t(o,s){return function(a,l,d,u){var h=a.options.group.name&&l.options.group.name&&a.options.group.name===l.options.group.name;if(o==null&&(s||h))return!0;if(o==null||o===!1)return!1;if(s&&o==="clone")return o;if(typeof o=="function")return t(o(a,l,d,u),s)(a,l,d,u);var g=(s?a:l).options.group.name;return o===!0||typeof o=="string"&&o===g||o.join&&o.indexOf(g)>-1}}var n={},r=e.group;(!r||nfe(r)!="object")&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},vqn=function(){!gqn&&ms&&Mo(ms,"display","none")},Aqn=function(){!gqn&&ms&&Mo(ms,"display","")};KOe&&!aqn&&document.addEventListener("click",function(e){if(Z2e)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Z2e=!1,!1},!0);var M7=function(e){if(Ii){e=e.touches?e.touches[0]:e;var t=DLs(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[Fv]._onDragOver(n)}}},BLs=function(e){Ii&&Ii.parentNode[Fv]._isOutsideThisEl(e.target)};function Po(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=nL({},t),e[Fv]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return mqn(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,a){s.setData("Text",a.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Po.supportPointer!==!1&&"PointerEvent"in window&&!dq,emptyInsertThreshold:5};Gre.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);kqn(t);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=t.forceFallback?!1:TLs,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?yl(e,"pointerdown",this._onTapStart):(yl(e,"mousedown",this._onTapStart),yl(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(yl(e,"dragover",this),yl(e,"dragenter",this)),q2e.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),nL(this,_Ls())}Po.prototype={constructor:Po,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(aF=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,Ii):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,s=e.type,a=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(a||e).target,d=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,u=r.filter;if(jLs(n),!Ii&&!(/mousedown|pointerdown/.test(s)&&e.button!==0||r.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&dq&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=Ib(l,r.draggable,n,!1),!(l&&l.animated)&&ife!==l)){if(jN=m4(l),hq=m4(l,r.draggable),typeof u=="function"){if(u.call(this,e,l,this)){X1({sortable:t,rootEl:d,name:"filter",targetEl:l,toEl:n,fromEl:n}),kk("filter",t,{evt:e}),o&&e.cancelable&&e.preventDefault();return}}else if(u&&(u=u.split(",").some(function(h){if(h=Ib(d,h.trim(),n,!1),h)return X1({sortable:t,rootEl:h,name:"filter",targetEl:l,fromEl:n,toEl:n}),kk("filter",t,{evt:e}),!0}),u)){o&&e.cancelable&&e.preventDefault();return}r.handle&&!Ib(d,r.handle,n,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(e,t,n){var r=this,o=r.el,s=r.options,a=o.ownerDocument,l;if(n&&!Ii&&n.parentNode===o){var d=Uh(n);if(Ed=o,Ii=n,Lu=Ii.parentNode,oT=Ii.nextSibling,ife=n,Ude=s.group,Po.dragged=Ii,I7={target:Ii,clientX:(t||e).clientX,clientY:(t||e).clientY},jkn=I7.clientX-d.left,Wkn=I7.clientY-d.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,Ii.style["will-change"]="all",l=function(){if(kk("delayEnded",r,{evt:e}),Po.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!Pkn&&r.nativeDraggable&&(Ii.draggable=!0),r._triggerDragStart(e,t),X1({sortable:r,name:"choose",originalEvent:e}),J2(Ii,s.chosenClass,!0)},s.ignore.split(",").forEach(function(u){cqn(Ii,u.trim(),TRe)}),yl(a,"dragover",M7),yl(a,"mousemove",M7),yl(a,"touchmove",M7),yl(a,"mouseup",r._onDrop),yl(a,"touchend",r._onDrop),yl(a,"touchcancel",r._onDrop),Pkn&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Ii.draggable=!0),kk("delayStart",this,{evt:e}),s.delay&&(!s.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Xre||IL))){if(Po.eventCanceled){this._onDrop();return}yl(a,"mouseup",r._disableDelayedDrag),yl(a,"touchend",r._disableDelayedDrag),yl(a,"touchcancel",r._disableDelayedDrag),yl(a,"mousemove",r._delayedDragTouchMoveHandler),yl(a,"touchmove",r._delayedDragTouchMoveHandler),s.supportPointer&&yl(a,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(l,s.delay)}else l()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Ii&&TRe(Ii),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Ya(e,"mouseup",this._disableDelayedDrag),Ya(e,"touchend",this._disableDelayedDrag),Ya(e,"touchcancel",this._disableDelayedDrag),Ya(e,"mousemove",this._delayedDragTouchMoveHandler),Ya(e,"touchmove",this._delayedDragTouchMoveHandler),Ya(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?yl(document,"pointermove",this._onTouchMove):t?yl(document,"touchmove",this._onTouchMove):yl(document,"mousemove",this._onTouchMove):(yl(Ii,"dragend",this),yl(Ed,"dragstart",this._onDragStart));try{document.selection?ofe(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(WF=!1,Ed&&Ii){kk("dragStarted",this,{evt:t}),this.nativeDraggable&&yl(document,"dragover",BLs);var n=this.options;!e&&J2(Ii,n.dragClass,!1),J2(Ii,n.ghostClass,!0),Po.active=this,e&&this._appendGhost(),X1({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(qp){this._lastX=qp.clientX,this._lastY=qp.clientY,vqn();for(var e=document.elementFromPoint(qp.clientX,qp.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(qp.clientX,qp.clientY),e!==t);)t=e;if(Ii.parentNode[Fv]._isOutsideThisEl(e),t)do{if(t[Fv]){var n=void 0;if(n=t[Fv]._onDragOver({clientX:qp.clientX,clientY:qp.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Aqn()}},_onTouchMove:function(e){if(I7){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,s=ms&&vj(ms,!0),a=ms&&s&&s.a,l=ms&&s&&s.d,d=Wde&&Pm&&Ukn(Pm),u=(o.clientX-I7.clientX+r.x)/(a||1)+(d?d[0]-ERe[0]:0)/(a||1),h=(o.clientY-I7.clientY+r.y)/(l||1)+(d?d[1]-ERe[1]:0)/(l||1);if(!Po.active&&!WF){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(X1({rootEl:Lu,name:"add",toEl:Lu,fromEl:Ed,originalEvent:e}),X1({sortable:this,name:"remove",toEl:Lu,originalEvent:e}),X1({rootEl:Lu,name:"sort",toEl:Lu,fromEl:Ed,originalEvent:e}),X1({sortable:this,name:"sort",toEl:Lu,originalEvent:e})),Vg&&Vg.save()):nv!==jN&&nv>=0&&(X1({sortable:this,name:"update",toEl:Lu,originalEvent:e}),X1({sortable:this,name:"sort",toEl:Lu,originalEvent:e})),Po.active&&((nv==null||nv===-1)&&(nv=jN,k5=hq),X1({sortable:this,name:"end",toEl:Lu,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){kk("nulling",this),Ed=Ii=Lu=ms=oT=tu=ife=M5=I7=qp=uY=nv=k5=jN=hq=aF=fq=Vg=Ude=Po.dragged=Po.ghost=Po.clone=Po.active=null,K2e.forEach(function(e){e.checked=!0}),K2e.length=LRe=xRe=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":Ii&&(this._onDragOver(e),RLs(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,o=n.length,s=this.options;ro.right+s||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+s||e.clientX>r.right&&e.clientY>r.top}function FLs(e,t,n,r,o,s,a,l){var d=r?e.clientY:e.clientX,u=r?n.height:n.width,h=r?n.top:n.left,g=r?n.bottom:n.right,m=!1;if(!a){if(l&&rfeh+u*s/2:dg-rfe)return-fq}else if(d>h+u*(1-o)/2&&dg-u*s/2)?d>h+u/2?1:-1:0}function NLs(e){return m4(Ii){if(R&&(o==null?void 0:o.length)!==Q.childNodes.length)return P.insertBefore(R,I.nextSibling),!0;const j=Q.childNodes[F];R=Q==null?void 0:Q.replaceChild(I,j)})}}catch(R){M=R}finally{o=null}ai(()=>{if(Hkn(),M)throw M})}const w={onUpdate:p,onStart:f,onAdd:k,onRemove:A,onEnd:b};function O(E){const T=Ae(s);return E||(E=dLs(T)?uLs(T,r==null?void 0:r.$el):T),E&&!gLs(E)&&(E=E.$el),E||sLs("Root element not found"),E}function y(){var E;const T=(E=Ae(l))!=null?E:{},{immediate:D,clone:P}=T,Q=rqn(T,["immediate","clone"]);return Ikn(Q,(M,B)=>{mLs(M)&&(Q[M]=(R,...I)=>{const F=$Ls();return kLs(R,F),B(R,...I)})}),fLs(a===null?{}:w,Q)}const C=E=>{E=O(E),d&&_.destroy(),d=new Po(E,y())};pt(()=>l,()=>{d&&Ikn(y(),(E,T)=>{d==null||d.option(E,T)})},{deep:!0});const _={option:(E,T)=>d==null?void 0:d.option(E,T),destroy:()=>{d==null||d.destroy(),d=null},save:()=>d==null?void 0:d.save(),toArray:()=>d==null?void 0:d.toArray(),closest:(...E)=>d==null?void 0:d.closest(...E)},S=()=>_==null?void 0:_.option("disabled",!0),L=()=>_==null?void 0:_.option("disabled",!1);return HLs(()=>{u&&C()}),zLs(_.destroy),UN({start:C,pause:S,resume:L},_)}const GGe=["update","start","add","remove","choose","unchoose","end","sort","filter","clone","move","change"],GLs=["clone","animation","ghostClass","group","sort","disabled","store","handle","draggable","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","chosenClass","dragClass","ignore","filter","preventOnFilter","easing","setData","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","emptyInsertThreshold","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","modelValue","tag","target","customUpdate",...GGe.map(e=>`on${e.replace(/^\S/,t=>t.toUpperCase())}`)],YLs=Je({name:"VueDraggable",model:{prop:"modelValue",event:"update:modelValue"},props:GLs,emits:["update:modelValue",...GGe],setup(e,{slots:t,emit:n,expose:r,attrs:o}){const s=GGe.reduce((h,g)=>{const m=`on${g.replace(/^\S/,v=>v.toUpperCase())}`;return h[m]=(...v)=>n(g,...v),h},{}),a=X(()=>{const h=Li(e),{modelValue:g}=h,m=rqn(h,["modelValue"]),v=Object.entries(m).reduce((f,[k,A])=>{const p=Ae(A);return p!==void 0&&(f[k]=p),f},{});return UN(UN({},s),lLs(UN(UN({},o),v)))}),l=X({get:()=>e.modelValue,set:h=>n("update:modelValue",h)}),d=fe(),u=hs(XLs(e.target||d,l,a));return r(u),()=>{var h;return xn(e.tag||"div",{ref:d},(h=t==null?void 0:t.default)==null?void 0:h.call(t,u))}}}),ZLs={class:"previewContainer"},qLs={class:"mainContent"},KLs={class:"previewArea"},JLs={class:"videoWrapper"},exs=["src","alt"],txs={key:1,class:"placeholderImage"},nxs={class:"playerControls"},ixs={class:"controlButtons"},rxs={class:"progressArea"},oxs={class:"timeLabel"},sxs={class:"progressTrack"},axs=["onClick"],lxs={class:"timeLabel"},cxs={class:"infoPanel"},dxs={class:"infoSection"},uxs={class:"sectionTitle"},hxs={class:"sectionContent"},fxs={class:"infoSection"},gxs={class:"sectionTitle"},mxs={class:"sectionContent"},kxs={class:"infoSection"},vxs={class:"sectionTitle"},Axs={class:"characterList"},pxs={key:0,class:"noCharacter"},bxs={class:"infoSection"},wxs={class:"sectionTitle"},Oxs={class:"shootingTips"},yxs={key:0,class:"tipItem"},Cxs={class:"tipLabel"},_xs={class:"tipValue"},Sxs={class:"shotListArea"},Lxs={class:"shotListHeader"},xxs={class:"headerLeft"},Exs=["onClick"],Txs={class:"shotImageWrapper"},Qxs=["src","alt"],Dxs={key:1,class:"shotPlaceholder"},Xkn=50,Bxs=Je({__name:"preview",setup(e){const t=bt("episodesId"),n=fe([]);An(()=>{r()});async function r(){const{data:G}=await mn.post("/production/getStoryboardData",{scriptId:t.value});n.value=G}const o=X(()=>n.value[a.value]||null),s=X(()=>{var G;return((G=o.value)==null?void 0:G.characters)||[]}),a=fe(0),l=fe(!1),d=fe(),u=fe(),h=fe(!1),g=fe(!1),m=fe(0);let v=null;const f=n.value.map(G=>G.id),k=X(()=>{var G;return((G=o.value)==null?void 0:G.duration)??3}),A=X(()=>a.value===0),p=X(()=>a.value===n.value.length-1),b=X(()=>n.value.reduce((G,q)=>G+(q.duration??3),0)),w=X(()=>{const G=C(a.value)+m.value;return Math.min(G/b.value*100,100)}),O=X(()=>{var G,q;return[{label:$t("workbench.production.preview.sceneDescription"),value:(G=o.value)==null?void 0:G.description},{label:$t("workbench.production.preview.promptLabel"),value:(q=o.value)==null?void 0:q.prompt}]}),y=G=>{var q;return((q=n.value[G])==null?void 0:q.duration)??3},C=G=>{let q=0;for(let re=0;rey(G)/b.value*100,S=G=>C(G)/b.value*100,L=G=>{const q=Math.floor(G);return`${String(Math.floor(q/60)).padStart(2,"0")}:${String(q%60).padStart(2,"0")}`},E=()=>{v&&(clearInterval(v),v=null),g.value=!1},T=()=>{v||(g.value=!0,v=setInterval(()=>{m.value+=Xkn/1e3,m.value>=k.value&&(p.value?(m.value=k.value,E()):(m.value=0,a.value++,F()))},Xkn))},D=()=>{if(g.value)return E();p.value&&m.value>=k.value&&(a.value=0,m.value=0),T()};Qa(E);const P=(G,q=!0)=>{q&&E(),a.value=G,m.value=0,F()},Q=()=>{A.value||P(a.value-1)},M=()=>{p.value||P(a.value+1)},B=G=>P(G),R=G=>P(G),I=G=>{const q=u.value;if(!q)return;E();const re=oe=>{const se=q.getBoundingClientRect(),ue=Math.max(0,Math.min(1,(oe.clientX-se.left)/se.width))*b.value;let ee=0;for(let de=0;deue){a.value=de,m.value=ue-ee,F();return}ee+=z}a.value=n.value.length-1,m.value=y(n.value.length-1)};re(G);const J=()=>{document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",J)};document.addEventListener("mousemove",re),document.addEventListener("mouseup",J)},F=()=>{ai(()=>{var q,re;const G=(q=d.value)==null?void 0:q.querySelectorAll(".shotItem");(re=G==null?void 0:G[a.value])==null||re.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})})},j=G=>{const q=Array.isArray(G)?G.length>0:G;n.value.forEach(re=>re.selected=q)},W=()=>{const G=fo.confirm({header:$t("workbench.production.preview.restoreSort"),body:$t("workbench.production.preview.restoreSortConfirm"),onConfirm:()=>{n.value.sort((q,re)=>f.indexOf(q.id)-f.indexOf(re.id)),G.destroy()},onClose:()=>G.destroy()})};pt(()=>n.value.map(G=>G.selected),G=>{l.value=G.length>0&&G.every(Boolean)},{deep:!0});const H=()=>ai(()=>h.value=!1);function $(){const G=n.value.filter(q=>q.selected).map(q=>({id:q.id}));if(G.length<=0){fo.alert({header:$t("workbench.production.preview.tip"),body:$t("workbench.production.preview.selectAtLeastOne")});return}mn.post("/production/exportImage",{shotId:G},{responseType:"blob"}).then(q=>{const re=URL.createObjectURL(q.data),J=document.createElement("a");J.href=re,J.download=$t("workbench.production.preview.exportFilename")+".zip",J.click(),URL.revokeObjectURL(re)}).catch(q=>{console.error("导出图片失败:",q)})}return(G,q)=>{var Y,ie,te;const re=_n("i-pic"),J=_n("i-go-start"),oe=Si,se=_n("i-go-end"),le=Zh,ue=Sg,ee=py,de=_n("i-undo"),z=_n("i-download");return xe(),Ge("div",ZLs,[ge("div",qLs,[ge("div",KLs,[ge("div",JLs,[(Y=o.value)!=null&&Y.filePath?(xe(),Ge("img",{key:0,src:o.value.filePath,alt:o.value.description,class:"previewImage"},null,8,exs)):(xe(),Ge("div",txs,[c(re,{theme:"outline",size:"48",fill:"#999"}),ge("span",null,Pe(G.$t("workbench.production.preview.noImage")),1)]))]),ge("div",nxs,[ge("div",ixs,[c(oe,{theme:"default",variant:"text",size:"small",shape:"circle",onClick:Q,disabled:A.value},{icon:Oe(()=>[c(J,{theme:"outline",size:"18"})]),_:1},8,["disabled"]),c(oe,{theme:"primary",variant:"text",size:"medium",shape:"circle",onClick:D},{icon:Oe(()=>[(xe(),Ut(Bd(g.value?"i-pause":"i-play"),{theme:"outline",size:"22"}))]),_:1}),c(oe,{theme:"default",variant:"text",size:"small",shape:"circle",onClick:M,disabled:p.value},{icon:Oe(()=>[c(se,{theme:"outline",size:"18"})]),_:1},8,["disabled"])]),ge("div",rxs,[ge("span",oxs,Pe(L(m.value)),1),ge("div",{class:"progressBarWrapper",ref_key:"progressBarRef",ref:u,onMousedown:I},[ge("div",sxs,[(xe(!0),Ge(sn,null,Bi(n.value,(Z,he)=>(xe(),Ge("div",{key:"seg-"+Z.id,class:Eo(["progressSegment",{active:he===a.value,completed:heB(he),["stop"])},null,14,axs))),128)),(xe(!0),Ge(sn,null,Bi(n.value.slice(0,-1),(Z,he)=>(xe(),Ge("div",{key:"div-"+he,class:"segmentDivider",style:no({left:S(he+1)+"%"})},null,4))),128)),ge("div",{class:"progressFill",style:no({width:w.value+"%"})},null,4),ge("div",{class:"progressHandle",style:no({left:w.value+"%"})},null,4)])],544),ge("span",lxs,Pe(L(b.value)),1)])])]),ge("div",cxs,[ge("div",dxs,[ge("div",uxs,[q[4]||(q[4]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.storyboardDesc")),1)]),ge("div",hxs," 【"+Pe(G.$t("workbench.production.preview.serialNumber"))+" "+Pe(a.value+1)+"】"+Pe(((ie=o.value)==null?void 0:ie.description)||G.$t("workbench.production.preview.noDescription")),1)]),ge("div",fxs,[ge("div",gxs,[q[5]||(q[5]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.duration")),1)]),ge("div",mxs,Pe(((te=o.value)==null?void 0:te.duration)!=null?o.value.duration+" "+G.$t("workbench.production.preview.seconds"):"3 "+G.$t("workbench.production.preview.seconds")),1)]),ge("div",kxs,[ge("div",vxs,[q[6]||(q[6]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.relatedAssets")),1)]),ge("div",Axs,[(xe(!0),Ge(sn,null,Bi(s.value,(Z,he)=>(xe(),Ge("div",{key:he,class:"characterItem"},[c(le,{src:Z.avatar,fit:"cover",class:"characterAvatar",style:{width:"80px",height:"80px",borderRadius:"8px"}},null,8,["src"]),c(ue,null,{default:Oe(()=>[Bt(Pe(Z.name)+"("+Pe(Z.type=="role"?G.$t("workbench.production.preview.role"):Z.type=="tool"?G.$t("workbench.production.preview.prop"):G.$t("workbench.production.preview.scene"))+") ",1)]),_:2},1024)]))),128)),s.value.length?nn("",!0):(xe(),Ge("div",pxs,[c(ue,{theme:"default",variant:"light"},{default:Oe(()=>[Bt(Pe(G.$t("workbench.production.preview.noCharacters")),1)]),_:1})]))])]),ge("div",bxs,[ge("div",wxs,[q[7]||(q[7]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.imagePrompt")),1)]),ge("div",Oxs,[(xe(!0),Ge(sn,null,Bi(O.value,Z=>(xe(),Ge(sn,{key:Z.label},[Z.value?(xe(),Ge("div",yxs,[ge("span",Cxs,Pe(Z.label)+":",1),ge("span",_xs,Pe(Z.value),1)])):nn("",!0)],64))),128))])])])]),ge("div",Sxs,[ge("div",Lxs,[ge("div",xxs,[c(ee,{modelValue:l.value,"onUpdate:modelValue":q[0]||(q[0]=Z=>l.value=Z),onChange:j},{default:Oe(()=>[Bt(Pe(G.$t("workbench.production.preview.selectAll")),1)]),_:1},8,["modelValue"]),c(oe,{theme:"default",variant:"text",size:"small",onClick:W},{icon:Oe(()=>[c(de,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(G.$t("workbench.production.preview.restoreSort")),1)]),_:1})]),c(oe,{theme:"default",variant:"text",size:"small",class:"exportBtn",onClick:$},{icon:Oe(()=>[c(z,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(G.$t("workbench.production.preview.exportImage")),1)]),_:1})]),ge("div",{class:"shotListWrapper",ref_key:"shotListWrapperRef",ref:d},[c(Ae(YLs),{modelValue:n.value,"onUpdate:modelValue":q[2]||(q[2]=Z=>n.value=Z),animation:150,ghostClass:"shotGhost",dragClass:"shotDrag",scroll:d.value,scrollSensitivity:80,scrollSpeed:10,forceFallback:!0,target:".shotList",onStart:q[3]||(q[3]=Z=>h.value=!0),onEnd:H},{default:Oe(()=>[c(l4n,{type:"transition",tag:"div",name:h.value?void 0:"shot-flip",class:"shotList"},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(n.value,(Z,he)=>(xe(),Ge("div",{key:Z.id,class:Eo(["shotItem",{active:a.value===he}]),onClick:pe=>R(he)},[c(ee,{modelValue:Z.selected,"onUpdate:modelValue":pe=>Z.selected=pe,class:"shotCheckbox",onClick:q[1]||(q[1]=Mr(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),ge("div",Txs,[Z.filePath?(xe(),Ge("img",{key:0,src:Z.filePath,alt:Z.description,class:"shotImage"},null,8,Qxs)):(xe(),Ge("div",Dxs,[c(re,{theme:"outline",size:"24",fill:"#999"})])),c(ue,{class:"shotNumber",size:"small",variant:"dark"},{default:Oe(()=>[Bt("#"+Pe(Z.id),1)]),_:2},1024)])],10,Exs))),128))]),_:1},8,["name"])]),_:1},8,["modelValue","scroll"])],512)])])}}}),Rxs=oo(Bxs,[["__scopeId","data-v-65b71e51"]]),Ixs={class:"generateContainer"},Mxs={class:"data f"},Pxs={class:"videoToImage"},Fxs=["src"],Nxs={key:1,class:"emptyVideo c"},Uxs={class:"promptsMenu f ac jb"},jxs={class:"title"},Wxs={class:"promptInput"},Vxs={class:"modeOpt f w"},zxs=["src"],Hxs={key:1,class:"uploadPreview c"},$xs=["onClick"],Xxs=["onClick"],Gxs=["src"],Yxs=["onClick"],Zxs={class:"storyboardGrid"},qxs=["onClick"],Kxs=["src"],Jxs={class:"modeMenu f ac jb"},e5s={class:"left f ac"},t5s={class:"model"},n5s={class:"status"},i5s={class:"resolutionDurationPicker"},r5s={key:0,class:"pickerSection"},o5s={class:"pickerLabel"},s5s={class:"pickerOptions"},a5s=["onClick"],l5s={key:1,class:"pickerSection"},c5s={class:"pickerLabel"},d5s={class:"pickerOptions"},u5s=["onClick"],h5s={class:"genBtn"},f5s={class:"history"},g5s={class:"titleBox f ac"},m5s={class:"title"},k5s={class:"historyItemBox"},v5s=["onClick"],A5s=["src"],p5s={key:0,class:"loadingOverlay c fc"},b5s={class:"loadingText"},w5s=["onClick"],O5s=["onClick"],y5s=["onClick"],C5s={class:"videoTrack"},_5s={class:"trackMenu f ac jb"},S5s={class:"left f ac"},L5s={key:0,class:"selectedCount"},x5s={class:"right f ac"},E5s={class:"itemBox"},T5s=["onClick"],Q5s={key:1,class:"thumbGroup"},D5s=["src"],B5s={key:1,class:"thumb placeholder c"},R5s={key:2,class:"emptyTrack"},I5s=["onClick"],M5s=Je({__name:"generate",emits:["importVideo"],setup(e,{emit:t}){const n=bt("episodesId"),{project:r}=xs(ph()),o=fe(""),s=X({get:()=>{const Me=P.value[Q.value];return(Me==null?void 0:Me.prompt)??""},set:Me=>{const Se=P.value[Q.value];Se&&(Se.prompt=Me)}}),a=fe("480p"),l=fe(8),d=fe(!1);function u(Me){var Ie;const Se=C.value.durationResolutionMap;if(Array.isArray(Se)&&Se.length>0&&((Ie=Se[0].duration)!=null&&Ie.length)){const ze=Se[0].duration,Ze=Math.min(...ze),gt=Math.max(...ze);return Math.max(Ze,Math.min(Me,gt))}return Me}const h=X(()=>{var Se;if(d.value)return l.value;const Me=((Se=P.value[Q.value])==null?void 0:Se.duration)||l.value;return u(Me)}),g=fe(!1),m=fe({}),v=X(()=>{var Se;const Me=(Se=P.value[Q.value])==null?void 0:Se.id;return Me!=null?!!m.value[Me]:!1}),f=fe({}),k=X(()=>{var Se;const Me=(Se=P.value[Q.value])==null?void 0:Se.id;return Me!=null?!!f.value[Me]:!1});async function A(){var gt;const Me=P.value[Q.value],Se=Me==null?void 0:Me.id;if(Se==null||f.value[Se])return;const Ze=(L.value==="text"?Me.medias:F.value.filter(St=>St.src).map(St=>({id:St.id,src:St.src,prompt:St.prompt,sources:St.sources}))).filter(St=>St.prompt).map(St=>({id:St.id,sources:St.sources?St.sources:"storyboard"}));f.value[Se]=!0;try{const{data:St}=await mn.post("/production/workbench/generateVideoPrompt",{projectId:(gt=r.value)==null?void 0:gt.id,trackId:Se,info:Ze,model:S.value}),Pt=P.value.find(dn=>dn.id===Se);Pt&&(Pt.prompt=St)}finally{f.value[Se]=!1}}const p=fe(null),b=fe([]),w=X(()=>{const Me=P.value[Q.value];return Me!=null&&Me.id?b.value.filter(Se=>Se.videoTrackId===Me.id):[]});function O(Me){Me.state==="生成中"||Me.state==="生成失败"||(o.value=Me.src)}async function y(Me){var Ie,ze;if(Me.state==="生成中"||Me.state==="生成失败")return;const Se=P.value[Q.value];Me.id!=null&&(p.value=Me.id,(Se==null?void 0:Se.id)!=null&&(M.value[Se.id]=Me.id)),o.value=Me.src;try{await mn.post("/production/workbench/selectVideo",{projectId:(Ie=r.value)==null?void 0:Ie.id,scriptId:n.value??0,videoId:Me.id,trackId:(ze=P.value[Q.value])==null?void 0:ze.id}),window.$message.success($t("workbench.generate.selectVideoSuccess")),Ce()}catch{window.$message.error($t("workbench.generate.selectVideoFailed"))}}const C=fe({}),_=X(()=>{const Me={singleImage:"单图",startEndRequired:"首尾帧",endFrameOptional:"尾帧可选",startFrameOptional:"首帧可选",text:"文本生视频",videoReference:"视频",imageReference:"图片",audioReference:"音频",textReference:"文本"};return C.value.mode?C.value.mode.map(Se=>Array.isArray(Se)?{value:JSON.stringify(Se),label:Se.map(Ie=>Me[Ie]||Ie).join(" + ")+"参考"}:{value:Se,label:Me[Se]||Se}):[]}),S=fe(),L=fe(),E=X(()=>{const Me=D(L.value||"");return Array.isArray(Me)}),T=X(()=>{const Me=D(L.value||"");if(!Array.isArray(Me))return[];const Se={audioReference:"audio",imageReference:"image",videoReference:"video"};return Me.filter(Ie=>Ie in Se).map(Ie=>Se[Ie])});function D(Me){if(!Me)return null;try{const Se=JSON.parse(Me);if(Array.isArray(Se))return Se}catch{return Me}return Me}const P=fe([]),Q=fe(0),M=fe({});async function B(){var Ie;const{data:Me}=await mn.post("/production/workbench/addTrack",{projectId:(Ie=r.value)==null?void 0:Ie.id,scriptId:n.value??0}),Se=typeof Me=="object"&&Me!==null?Me.id:Me;P.value.push({id:Se,prompt:"",state:"未生成",medias:[],videoList:[],duration:0}),Q.value=P.value.length-1}function R(Me){const Se=fo.confirm({header:$t("workbench.generate.del"),body:$t("workbench.generate.delConfirm"),onConfirm:()=>{Se.destroy(),I(Me),window.$message.success($t("workbench.generate.delSuccess")),Ce()},onCancel:()=>{Se.destroy()}})}async function I(Me){const Se=P.value[Me];Se&&(await mn.post("/production/workbench/deleteTrack",{id:Se.id}),Q.value>=P.value.length&&(Q.value=P.value.length-1))}const F=fe([]),j=X(()=>F.value.filter(Me=>Me.src).map(Me=>({type:Me.fileType,src:Me.src}))),W=fe([]),H=fe(!1),$=fe(-1);function G(Me){const Se=D(Me);if(!Se)return[];const Ie={videoReference:{fileType:"video",type:"videoReference",sources:"storyboard",label:"参考视频"},imageReference:{fileType:"image",type:"imageReference",sources:"storyboard",label:"参考图片"},audioReference:{fileType:"audio",type:"audioReference",sources:"storyboard",label:"参考音频"}},ze={singleImage:[{fileType:"image",type:"imageReference",sources:"storyboard",label:"参考图片"}],startEndRequired:[{fileType:"image",type:"startImage",sources:"storyboard",label:"首帧"},{fileType:"image",type:"endImage",sources:"storyboard",label:"末帧"}],endFrameOptional:[{fileType:"image",type:"startImage",sources:"storyboard",label:"首帧"},{fileType:"image",type:"endImage",sources:"storyboard",label:"末帧(可选)"}],startFrameOptional:[{fileType:"image",type:"startImage",sources:"storyboard",label:"首帧(可选)"},{fileType:"image",type:"endImage",sources:"storyboard",label:"末帧"}],text:[]};return Array.isArray(Se)?Se.filter(Ze=>Ze!=="textReference").map(Ze=>({...Ie[Ze]})):(ze[Se]||[]).map(Ze=>({...Ze}))}const q={image:["role","scene","tool"],video:["clip"],audio:["clip"]};function re(Me){const Se=F.value[Me];if(!Se)return;$.value=Me;const Ie=fo.confirm({header:$t("workbench.generate.selectSource"),confirmBtn:$t("workbench.generate.confirm"),cancelBtn:$t("workbench.generate.cancel"),onConfirm:async()=>{Ie.destroy();const ze=await jV({types:q[Se.fileType],multiple:!1});ze.length>0&&(de.value=!0,F.value[Me]={...Se,sources:"assets",src:ze[0].src,id:ze[0].id,prompt:ze[0].prompt})},onCancel:()=>{Ie.destroy(),H.value=!0}})}async function J(){const Me=fo.confirm({header:$t("workbench.generate.selectSource"),confirmBtn:$t("workbench.generate.confirm"),cancelBtn:$t("workbench.generate.cancel"),onConfirm:async()=>{Me.destroy();const Se=await jV({types:["role","tool","scene","clip"],clipMediaTypes:T.value,multiple:!0});if(Se.length){de.value=!0;for(const Ie of Se){const ze=se(Ie.src);F.value.push({fileType:ze,type:oe[ze],sources:"assets",src:Ie.src,id:Ie.id,prompt:Ie.prompt,label:""})}}},onCancel:()=>{Me.destroy(),$.value=-1,H.value=!0}})}const oe={image:"imageReference",video:"videoReference",audio:"audioReference"};function se(Me){var Ze;const Se=((Ze=Me==null?void 0:Me.split(".").pop())==null?void 0:Ze.toLowerCase())??"",Ie=["mp4","webm","mov","avi","mkv"],ze=["mp3","wav","ogg","aac","flac","m4a"];return Ie.includes(Se)?"video":ze.includes(Se)?"audio":"image"}function le(Me){if(H.value=!1,de.value=!0,E.value){const Ie=se(Me.src);F.value.push({fileType:Ie,type:oe[Ie],sources:"storyboard",src:Me.src,id:Me.id,prompt:Me.prompt??void 0,label:""});return}const Se=F.value[$.value];Se&&(F.value[$.value]={...Se,sources:"storyboard",src:Me.src,id:Me.id,prompt:Me.prompt??void 0})}function ue(Me){const Se=F.value[Me];Se&&(de.value=!0,E.value?F.value.splice(Me,1):F.value[Me]={...Se,sources:"storyboard",src:void 0,id:void 0,prompt:void 0})}async function ee(){var Ie;const Me=(Ie=P.value[Q.value])==null?void 0:Ie.id;if(Me==null||m.value[Me])return;const Se=fo.confirm({header:$t("workbench.generate.generateConfirm"),body:$t("workbench.generate.generateConfirmBody"),onConfirm:async()=>{var ze;Se.destroy(),m.value[Me]=!0;try{const Ze={projectId:(ze=r.value)==null?void 0:ze.id,scriptId:n.value,uploadData:F.value.filter(St=>!!St.src),prompt:s.value,model:S.value,mode:L.value,resolution:a.value,duration:h.value,audio:g.value,trackId:Me},{data:gt}=await mn.post("/production/workbench/generateVideo",Ze);window.$message.success($t("workbench.generate.generateStarted")),Ye()}finally{m.value[Me]=!1}},onCancel:()=>{Se.destroy()}})}pt(S,Me=>{if(!Me){C.value={},L.value=void 0;return}mn.post("/modelSelect/getModelDetail",{modelId:Me}).then(({data:Se})=>{var ze,Ze;C.value=Se;const Ie=Se.durationResolutionMap;Array.isArray(Ie)&&Ie.length>0&&((ze=Ie[0].resolution)!=null&&ze.length&&(a.value=Ie[0].resolution[0]),(Ze=Ie[0].duration)!=null&&Ze.length&&(l.value=Ie[0].duration[0])),d.value=!1})});const de=fe(!1),z=fe([]);pt(L,Me=>{if(!Me)return F.value=[];const Se=F.value;Se.some(gt=>gt.src)&&(z.value=Se.filter(gt=>gt.src).map(gt=>({...gt})));const Ie=G(Me),ze=D(Me);if(Array.isArray(ze))F.value=Se.filter(gt=>gt.src);else{const gt=z.value.filter(Pt=>Pt.src),St=new Set;F.value=Ie.map(Pt=>{const dn=gt.findIndex((on,pn)=>!St.has(pn)&&on.fileType===Pt.fileType&&on.src);if(dn!==-1){St.add(dn);const on=gt[dn];return{...Pt,src:on.src,id:on.id,prompt:on.prompt,sources:on.sources??Pt.sources}}return Pt})}de.value=!1}),pt(F,Me=>{if(!de.value)return;const Se=P.value[Q.value];Se&&(Se.medias=Me.filter(Ie=>Ie.src).map(Ie=>({src:Ie.src,id:Ie.id,prompt:Ie.prompt,fileType:Ie.fileType,sources:Ie.sources})))},{deep:!0});const Y=fe([]),ie=fe(!1);function te(Me){const Se=P.value.map(Ie=>Ie.id).filter(Ie=>Ie!=null);Y.value=Me?Se:[]}function Z(Me,Se){if(Me==null)return;Se?Y.value.includes(Me)||Y.value.push(Me):Y.value=Y.value.filter(ze=>ze!==Me);const Ie=P.value.map(ze=>ze.id).filter(ze=>ze!=null);ie.value=Ie.length>0&&Ie.every(ze=>Y.value.includes(ze))}pt(P,Me=>{const Se=Me.map(Ie=>Ie.id).filter(Ie=>Ie!=null);Y.value=Y.value.filter(Ie=>Se.includes(Ie)),ie.value=Se.length>0&&Se.every(Ie=>Y.value.includes(Ie)),f.value=Object.fromEntries(Object.entries(f.value).filter(([Ie])=>Se.includes(Number(Ie)))),m.value=Object.fromEntries(Object.entries(m.value).filter(([Ie])=>Se.includes(Number(Ie))))},{deep:!0});function he(){const Me=L.value==="text";P.value.filter(Se=>Y.value.includes(Se.id)).forEach(async Se=>{var St;const Ie=Se.id;if(Ie==null||f.value[Ie])return;const ze=L.value?G(L.value):[],gt=(Me?Se.medias:ze.map((Pt,dn)=>Se.medias[dn]).filter(Boolean)).filter(Pt=>Pt==null?void 0:Pt.prompt).map(Pt=>({id:Pt.id,sources:Pt.sources?Pt.sources:"storyboard"}));f.value[Ie]=!0;try{const{data:Pt}=await mn.post("/production/workbench/generateVideoPrompt",{projectId:(St=r.value)==null?void 0:St.id,trackId:Ie,info:gt,model:S.value}),dn=P.value.find(on=>on.id===Ie);dn&&(dn.prompt=Pt)}finally{f.value[Ie]=!1}})}function pe(){const Me=fo.confirm({header:$t("workbench.generate.generateConfirm"),body:$t("workbench.generate.generateVideosInBatches"),onConfirm:async()=>{Me.destroy();const Se=L.value?G(L.value):[];P.value.filter(Ie=>Y.value.includes(Ie.id)).forEach(async Ie=>{var Ze;const ze=Ie.id;if(!(ze==null||m.value[ze])){m.value[ze]=!0;try{const gt=Se.map((dn,on)=>Ie.medias[on]).filter(dn=>dn&&!!dn.src),St={projectId:(Ze=r.value)==null?void 0:Ze.id,duration:u(Ie.duration||l.value),scriptId:n.value,uploadData:gt.map(dn=>({id:dn.id,sources:dn.sources?dn.sources:"storyboard"})),prompt:Ie.prompt,model:S.value,mode:L.value,resolution:a.value,audio:g.value,trackId:ze};if(St.prompt==="")return window.$message.warning($t("workbench.generate.skipDataWithEmptyVideoPromptWords"));const{data:Pt}=await mn.post("/production/workbench/generateVideo",St);window.$message.success($t("workbench.generate.generateStarted")),Ye()}finally{m.value[ze]=!1}}})},onCancel:()=>{Me.destroy()}})}async function Ce(){var Se;const{data:Me}=await mn.post("/production/workbench/getGenerateData",{projectId:(Se=r.value)==null?void 0:Se.id,scriptId:n.value??0});P.value=Me.trackList,M.value={};for(const Ie of P.value)Ie.id!=null&&Ie.selectVideoId!=null&&(M.value[Ie.id]=Ie.selectVideoId);W.value=Me.storyboardList,Qe(),Ye()}function Qe(){const Me=P.value[Q.value];if(!Me)return;const Se=Me.medias;F.value=F.value.map((Ie,ze)=>{const Ze=Se[ze];return Ze!=null&&Ze.src?{...Ie,src:Ze.src,id:Ze.id,prompt:Ze.prompt,sources:Ze.sources??Ie.sources}:{...Ie,src:void 0,id:void 0,prompt:void 0}})}function ke(){const Me=P.value[Q.value];if(!(Me!=null&&Me.id)){p.value=null,o.value="";return}const Se=M.value[Me.id]??Me.selectVideoId??null;if(p.value=Se,Se==null){o.value="";return}const Ie=b.value.find(ze=>ze.videoTrackId===Me.id&&ze.id===Se);if(Ie&&Ie.state!=="生成中"&&Ie.state!=="生成失败"){o.value=Ie.src;return}o.value=""}An(()=>{var Me,Se;S.value=((Me=r.value)==null?void 0:Me.videoModel)||"",L.value=((Se=r.value)==null?void 0:Se.mode)||"",Ce()});const me=X(()=>b.value.some(Me=>Me.state==="生成中"));let _e=null;function Te(){_e===null&&(_e=window.setInterval(()=>{Ye()},3e3))}function De(){_e!==null&&(window.clearInterval(_e),_e=null)}pt(()=>me.value,Me=>{Me?Te():De()}),Qa(()=>{De()});async function Ye(){var Ie;const{data:Me}=await mn.post("/production/workbench/getVideoList",{projectId:(Ie=r.value)==null?void 0:Ie.id,scriptId:n.value??0}),Se=b.value;b.value=Me,ke();for(const ze of Me){const Ze=Se.find(gt=>gt.id===ze.id);Ze&&(Ze.state==="生成中"&&ze.state==="已完成"?window.$message.success($t("workbench.generate.generateSuccess")):Ze.state==="生成中"&&ze.state==="生成失败"&&window.$message.error(ze.errorReason||$t("workbench.generate.generateFailed")))}}pt(Q,()=>{d.value=!1,Qe(),ke()});function ot(Me){a.value=Me}function We(Me){l.value=Me,d.value=!0}function et(Me){const Se=fo.confirm({header:$t("workbench.generate.del"),body:$t("workbench.generate.delVideo"),onConfirm:()=>{mn.post("/production/workbench/delVideo",{id:Me.id}).then(()=>{window.$message.success($t("workbench.generate.delSuccess")),Se.destroy(),Ye()})},onCancel:()=>{Se.destroy()}})}async function st(Me){const Se=Me.src,ze=await(await fetch(Se)).blob(),Ze=document.createElement("a");Ze.href=URL.createObjectURL(ze);const gt="视频.mp4";Ze.download=gt,document.body.appendChild(Ze),Ze.click(),document.body.removeChild(Ze),URL.revokeObjectURL(Ze.href)}return(Me,Se)=>{const Ie=Sg,ze=Si,Ze=_n("i-volume-notice"),gt=_n("i-video"),St=_n("i-close"),Pt=_n("i-plus"),dn=gc,on=T8,pn=uL,ni=pA,Zn=_n("i-volume-mute"),Pi=y1,rr=_n("i-time"),Hr=Wc,Bo=el,lo=_n("i-check"),Fr=_n("i-delete"),is=_n("i-to-bottom"),yi=py;return xe(),Ge("div",Ixs,[ge("div",Mxs,[ge("div",Pxs,[Ae(o)?(xe(),Ge("video",{key:0,src:Ae(o),class:"previewVideo",controls:"",preload:"metadata"},null,8,Fxs)):(xe(),Ge("div",Nxs,Pe(Me.$t("workbench.generate.noVideo")),1))]),ge("div",{class:Eo(["configurationParameters",{hasActive:Ae(P).length>0}])},[ge("div",Uxs,[ge("div",jxs,[c(Ie,{theme:"primary",size:"small",style:{"margin-right":"10px"}},{default:Oe(()=>[Bt("#"+Pe(Ae(Q)+1),1)]),_:1}),Bt(" "+Pe(Me.$t("workbench.generate.prompt")),1)]),c(ze,{size:"small",class:"genTextbtn",loading:Ae(k),onClick:A},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.generateText")),1)]),_:1},8,["loading"])]),ge("div",Wxs,[c(LZn,{modelValue:Ae(s),"onUpdate:modelValue":Se[0]||(Se[0]=Gt=>Fn(s)?s.value=Gt:null),references:Ae(j),placeholder:Me.$t("workbench.generate.promptPlaceholder")},null,8,["modelValue","references","placeholder"])]),ge("div",Vxs,[Ae(E)?(xe(),Ge(sn,{key:0},[(xe(!0),Ge(sn,null,Bi(Ae(F),(Gt,gi)=>uu((xe(),Ge("div",{class:"uploadBtn c fc",key:gi},[Gt.src?(xe(),Ge(sn,{key:0},[Gt.fileType==="image"?(xe(),Ge("img",{key:0,src:Gt.src,class:"uploadPreview"},null,8,zxs)):(xe(),Ge("div",Hxs,[Gt.fileType==="audio"?(xe(),Ut(Ze,{key:0,size:"24"})):(xe(),Ut(gt,{key:1,size:"24"}))])),ge("div",{class:"clearBtn",onClick:Mr(ri=>ue(gi),["stop"])},[c(St,{size:"12"})],8,$xs)],64)):nn("",!0)])),[[h1,Gt.src]])),128)),ge("div",{class:"uploadBtn c fc",onClick:J},[c(Pt,{size:"24"}),Bt(" "+Pe(Me.$t("workbench.generate.addReference")),1)])],64)):(xe(!0),Ge(sn,{key:1},Bi(Ae(F),(Gt,gi)=>(xe(),Ge("div",{class:"uploadBtn c fc",key:gi,onClick:ri=>re(gi)},[Gt.src?(xe(),Ge(sn,{key:0},[ge("img",{src:Gt.src,class:"uploadPreview"},null,8,Gxs),ge("div",{class:"clearBtn",onClick:Mr(ri=>ue(gi),["stop"])},[c(St,{size:"12"})],8,Yxs)],64)):(xe(),Ge(sn,{key:1},[c(Pt,{size:"24"}),Bt(" "+Pe(Gt.label),1)],64))],8,Xxs))),128))]),c(dn,{visible:Ae(H),"onUpdate:visible":Se[1]||(Se[1]=Gt=>Fn(H)?H.value=Gt:null),header:Me.$t("workbench.generate.selectStoryboard"),footer:!1,width:"800px",placement:"center"},{default:Oe(()=>[ge("div",Zxs,[(xe(!0),Ge(sn,null,Bi(Ae(W),Gt=>(xe(),Ge("div",{class:"storyboardItem",key:Gt.id,onClick:gi=>le(Gt)},[ge("img",{src:Gt.src},null,8,Kxs)],8,qxs))),128))])]),_:1},8,["visible","header"]),ge("div",Jxs,[ge("div",e5s,[ge("div",t5s,[c(on,{modelValue:Ae(S),"onUpdate:modelValue":Se[2]||(Se[2]=Gt=>Fn(S)?S.value=Gt:null),type:"video",size:"small"},null,8,["modelValue"])]),c(ni,{size:"small",class:"mode",modelValue:Ae(L),"onUpdate:modelValue":Se[3]||(Se[3]=Gt=>Fn(L)?L.value=Gt:null)},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(_),(Gt,gi)=>(xe(),Ut(pn,{key:gi,value:Gt.value,label:Gt.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),c(ze,{size:"small",variant:"outline",theme:Ae(g)?"success":"danger",class:"audio",onClick:Se[4]||(Se[4]=Gt=>g.value=!Ae(g))},{icon:Oe(()=>[Ae(g)?(xe(),Ut(Ze,{key:0,size:"16"})):(xe(),Ut(Zn,{key:1,size:"16"}))]),_:1},8,["theme"]),ge("div",n5s,[c(Pi,{trigger:"click",placement:"top","overlay-class-name":"resDurPickerPopup","overlay-inner-style":{padding:"16px",borderRadius:"8px"}},{content:Oe(()=>[ge("div",i5s,[Array.isArray(Ae(C).durationResolutionMap)&&Ae(C).durationResolutionMap.length>0&&Ae(C).durationResolutionMap[0].resolution&&Ae(C).durationResolutionMap[0].resolution.length>0?(xe(),Ge("div",r5s,[ge("div",o5s,Pe(Me.$t("workbench.generate.resolution")),1),ge("div",s5s,[(xe(!0),Ge(sn,null,Bi(Ae(C).durationResolutionMap[0].resolution,Gt=>(xe(),Ge("div",{key:Gt,class:Eo(["pickerOption",{active:Ae(a)===Gt}]),onClick:gi=>ot(Gt)},Pe(Gt),11,a5s))),128))])])):nn("",!0),Array.isArray(Ae(C).durationResolutionMap)&&Ae(C).durationResolutionMap.length>0&&Ae(C).durationResolutionMap[0].duration&&Ae(C).durationResolutionMap[0].duration.length>0?(xe(),Ge("div",l5s,[ge("div",c5s,Pe(Me.$t("workbench.generate.duration")),1),ge("div",d5s,[(xe(!0),Ge(sn,null,Bi(Ae(C).durationResolutionMap[0].duration,Gt=>(xe(),Ge("div",{key:Gt,class:Eo(["pickerOption",{active:Ae(h)===Gt}]),onClick:gi=>We(Gt)},Pe(Gt)+"s ",11,u5s))),128))])])):nn("",!0)])]),default:Oe(()=>[c(Ie,{class:"btn",variant:"outline"},{default:Oe(()=>[Bt(Pe(Ae(a))+"·"+Pe(Ae(h))+"s",1)]),_:1})]),_:1})])]),ge("div",h5s,[c(ze,{size:"small",loading:Ae(v),onClick:ee},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.generate")),1)]),_:1},8,["loading"])])]),ge("div",f5s,[ge("div",g5s,[c(rr),ge("span",m5s,Pe(Me.$t("workbench.generate.history"))+"("+Pe(Ae(w).length)+")",1)]),ge("div",k5s,[(xe(!0),Ge(sn,null,Bi(Ae(w),Gt=>(xe(),Ge("div",{class:Eo(["historyItem",{active:Gt.id===Ae(p),generating:Gt.state==="生成中",failed:Gt.state==="生成失败"}]),key:Gt.id,onClick:gi=>O(Gt)},[ge("video",{src:Gt.src,preload:"metadata",muted:""},null,8,A5s),Gt.state==="生成中"?(xe(),Ge("div",p5s,[c(Hr,{size:"24px"}),ge("span",b5s,Pe(Me.$t("workbench.generate.generating")),1)])):Gt.state==="生成失败"?(xe(),Ut(Bo,{key:1,placement:"top",content:Gt.errorReason,theme:"light"},{default:Oe(()=>[c(Ie,{class:"stateTag",theme:"danger",size:"small"},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.generateFailed")),1)]),_:1})]),_:1},8,["content"])):nn("",!0),Gt.state!=="生成中"?(xe(),Ge("div",{key:2,class:"selectBtn",onClick:Mr(gi=>y(Gt),["stop"])},[c(lo,{size:"16"})],8,w5s)):nn("",!0),ge("div",{class:"delBtn",onClick:Mr(gi=>et(Gt),["stop"])},[c(Fr,{size:"16"})],8,O5s),Gt.state!=="生成中"&&Gt.state!=="生成失败"?(xe(),Ge("div",{key:3,class:"download",onClick:Mr(gi=>st(Gt),["stop"])},[c(is,{size:"16"})],8,y5s)):nn("",!0)],10,v5s))),128))])])],2)]),ge("div",C5s,[ge("div",_5s,[ge("div",S5s,[c(yi,{modelValue:Ae(ie),"onUpdate:modelValue":Se[5]||(Se[5]=Gt=>Fn(ie)?ie.value=Gt:null),onChange:te},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.selectAll")),1)]),_:1},8,["modelValue"]),Ae(Y).length?(xe(),Ge("span",L5s,Pe(Me.$t("workbench.generate.selected"))+" "+Pe(Ae(Y).length)+" 段",1)):nn("",!0)]),ge("div",x5s,[c(ze,{size:"small",variant:"outline",onClick:he},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.batchGenerateText")),1)]),_:1}),c(ze,{size:"small",variant:"outline",onClick:pe},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.batchGenerateVideo")),1)]),_:1})])]),ge("div",E5s,[(xe(!0),Ge(sn,null,Bi(Ae(P),(Gt,gi)=>(xe(),Ge("div",{class:Eo(["item",{active:gi===Ae(Q)}]),key:gi,onClick:ri=>Q.value=gi},[c(yi,{class:"trackCheck",checked:Gt.id!=null&&Ae(Y).includes(Gt.id),onClick:Se[6]||(Se[6]=Mr(()=>{},["stop"])),onChange:ri=>Z(Gt.id,ri)},null,8,["checked","onChange"]),c(Ie,{class:"indexTag",size:"small"},{default:Oe(()=>[Bt("#"+Pe(gi+1),1)]),_:2},1024),Gt.selectVideoId?(xe(),Ut(Ie,{key:0,class:"selectTag",theme:"success",size:"small"},{default:Oe(()=>[...Se[7]||(Se[7]=[Bt("已选择",-1)])]),_:1})):nn("",!0),Gt.medias.length?(xe(),Ge("div",Q5s,[(xe(!0),Ge(sn,null,Bi(Gt.medias,(ri,tr)=>(xe(),Ge(sn,{key:tr},[ri.fileType==="image"?(xe(),Ge("img",{key:0,src:ri.src,class:"thumb"},null,8,D5s)):(xe(),Ge("div",B5s,[ri.fileType==="audio"?(xe(),Ut(Ze,{key:0,size:"20"})):(xe(),Ut(gt,{key:1,size:"24"}))]))],64))),128))])):(xe(),Ge("span",R5s,Pe(Me.$t("workbench.generate.emptyTrack",gi+1)),1)),ge("div",{class:"deleteBtn",onClick:Mr(ri=>R(gi),["stop"])},[c(St,{size:"14"})],8,I5s)],10,T5s))),128)),ge("div",{class:"item addItem c",onClick:B},[c(Pt,{size:"36"})])])])])}}}),P5s=oo(M5s,[["__scopeId","data-v-8ebd1229"]]);var F5s=Object.defineProperty,Oqn=e=>{throw TypeError(e)},N5s=(e,t,n)=>t in e?F5s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jy=(e,t,n)=>N5s(e,typeof t!="symbol"?t+"":t,n),nat=(e,t,n)=>t.has(e)||Oqn("Cannot "+n),Ht=(e,t,n)=>(nat(e,t,"read from private field"),n?n.call(e):t.get(e)),bo=(e,t,n)=>t.has(e)?Oqn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Rr=(e,t,n,r)=>(nat(e,t,"write to private field"),t.set(e,n),n),U5s=(e,t,n)=>(nat(e,t,"access private method"),n);function Yre(e=""){return`${e}${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function j5s(){return/Mac|iPod|iPhone|iPad/.test(navigator.platform)}function Ar(e){return Math.round(e*1e3)/1e3}const G0=Wy("tracks",()=>{const e=fe([]),t=fe(new Set),n=fe({clips:[],operation:null}),r=X(()=>e.value.find(re=>re.isMain)),o=X(()=>[...e.value].sort((re,J)=>{const oe=ue=>ue.isMain?100:{effect:10,filter:20,sticker:30,subtitle:40,video:50,audio:200}[ue.type]||0,se=oe(re),le=oe(J);return se!==le?se-le:re.order-J.order})),s=X(()=>{let re=0;return e.value.forEach(J=>{J.clips.forEach(oe=>{oe.endTime>re&&(re=oe.endTime)})}),re}),a=X(()=>{const re=[];return e.value.forEach(J=>{J.clips.forEach(oe=>{t.value.has(oe.id)&&re.push(oe)})}),re});function l(re){if((re.type==="video"||re.type==="audio")&&"playbackRate"in re){const J=re,oe=J.playbackRate||1;if(typeof J.trimStart=="number"&&typeof J.trimEnd=="number"){const se=J.trimEnd-J.trimStart,le=Ar(se/oe);return{...J,endTime:Ar(J.startTime+le)}}}return re}function d(re){return re.map(J=>({...J,clips:J.clips?J.clips.map(l):[]}))}function u(re){e.value=d(re)}function h(re){re.clips&&re.clips.length>0&&(re.clips=re.clips.map(l)),e.value.push(re)}function g(re){const J=e.value.findIndex(oe=>oe.id===re);J!==-1&&e.value.splice(J,1)}function m(re,J){const oe=e.value.find(se=>se.id===re);oe&&Object.assign(oe,J)}function v(re,J){const oe=e.value.findIndex(le=>le.id===re);if(oe===-1)return null;const se={id:`track-${Date.now()}`,type:J,name:`${J} ${k(J)+1}`,visible:!0,locked:!1,clips:[],order:oe};return e.value.forEach(le=>{le.order>=oe&&le.order++}),e.value.splice(oe,0,se),se}function f(re,J){const oe=e.value.findIndex(le=>le.id===re);if(oe===-1)return null;const se={id:`track-${Date.now()}`,type:J,name:`${J} ${k(J)+1}`,visible:!0,locked:!1,clips:[],order:oe+1};return e.value.forEach(le=>{le.order>oe&&le.order++}),e.value.splice(oe+1,0,se),se}function k(re){return e.value.filter(J=>J.type===re).length}function A(re,J){const oe=e.value.find(se=>se.id===re);if(oe){const se=l(J);oe.clips.push(se)}}function p(re){e.value.forEach(J=>{const oe=J.clips.findIndex(se=>se.id===re);if(oe!==-1){const se=J.clips[oe];if(se.type==="video"){J.clips.filter(ue=>{if(ue.type!=="transition")return!1;const ee=ue,de=(ee.startTime+ee.endTime)/2,z=Math.abs(de-se.startTime){const ee=J.clips.findIndex(de=>de.id===ue.id);ee!==-1&&(J.clips.splice(ee,1),t.value.delete(ue.id))});const le=J.clips.findIndex(ue=>ue.id===re);le!==-1&&J.clips.splice(le,1)}else J.clips.splice(oe,1)}}),t.value.delete(re)}function b(re){re.forEach(J=>p(J))}function w(re,J){const oe={...re};for(const se in J)if(Object.prototype.hasOwnProperty.call(J,se)){const le=J[se],ue=re[se];le==null?oe[se]=le:typeof le=="object"&&!Array.isArray(le)&&typeof ue=="object"&&ue!==null&&!Array.isArray(ue)?oe[se]=w(ue,le):oe[se]=le}return oe}function O(re,J){e.value.forEach(oe=>{const se=oe.clips.findIndex(le=>le.id===re);if(se!==-1){const le=oe.clips[se];oe.clips[se]=w(le,J)}})}function y(re,J){let oe=null;for(const se of e.value){const le=se.clips.findIndex(ue=>ue.id===re);if(le!==-1){oe=se.clips.splice(le,1)[0],se.id;break}}if(oe){const se=e.value.find(le=>le.id===J);se&&(oe.trackId=J,se.clips.push(oe))}}function C(re){for(const J of e.value){const oe=J.clips.find(se=>se.id===re);if(oe)return oe}}function _(re,J=!1){J||t.value.clear(),t.value.add(re)}function S(re){t.value.has(re)?t.value.delete(re):t.value.add(re)}function L(re){t.value.delete(re)}function E(){t.value.clear()}function T(re,J,oe,se){const le=e.value.find(ue=>ue.id===re);return le?le.clips.some(ue=>se&&ue.id===se?!1:ue.startTimeJ):!1}function D(){e.value=[],t.value.clear()}function P(){const re=[];e.value.forEach(J=>{J.isMain||J.clips.some(oe=>oe.type!=="transition")||re.push(J.id)}),re.forEach(J=>{g(J)})}function Q(re){const J=re||Array.from(t.value);if(J.length===0)return!1;const oe=[];return J.forEach(se=>{const le=C(se);le&&oe.push(JSON.parse(JSON.stringify(le)))}),oe.length>0?(n.value={clips:oe,operation:"copy"},!0):!1}function M(re){const J=re||Array.from(t.value);if(J.length===0)return!1;const oe=[];return J.forEach(se=>{const le=C(se);le&&oe.push(JSON.parse(JSON.stringify(le)))}),oe.length>0?(n.value={clips:oe,operation:"cut"},!0):!1}function B(re,J,oe,se=[]){const le=e.value.find(z=>z.id===re);if(!le)return J;const ue=le.clips.filter(z=>!se.includes(z.id)).sort((z,Y)=>z.startTime-Y.startTime);if(ue.length===0)return J;let ee=J,de=J+oe;for(const z of ue)eez.startTime&&(ee=z.endTime,de=ee+oe);return Math.max(0,ee)}function R(re,J){if(n.value.clips.length===0)return null;const oe=e.value.find(Y=>Y.id===re);if(!oe)return null;const se=[],le=()=>`clip-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,ue=Math.min(...n.value.clips.map(Y=>Y.startTime)),ee=Math.max(...n.value.clips.map(Y=>Y.endTime-ue)),de=n.value.operation==="cut"?n.value.clips.map(Y=>Y.id):[],z=B(re,J,ee,de);return n.value.clips.forEach(Y=>{const ie=Y.endTime-Y.startTime,te=Y.startTime-ue,Z={...Y,id:le(),trackId:re,startTime:z+te,endTime:z+te+ie,selected:!1};oe.clips.push(Z),se.push(Z)}),n.value.operation==="cut"&&(n.value.clips.forEach(Y=>{p(Y.id)}),n.value={clips:[],operation:null}),se.length>0?se:null}function I(){return n.value.clips.length>0}function F(){return n.value}function j(){n.value={clips:[],operation:null}}function W(re,J){let oe=null,se=null,le=-1;for(const z of e.value){const Y=z.clips.findIndex(ie=>ie.id===re);if(Y!==-1){oe=z.clips[Y],se=z,le=Y;break}}if(!oe||!se||le===-1||J<=oe.startTime||J>=oe.endTime)return null;const ue=()=>`clip-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,ee={...JSON.parse(JSON.stringify(oe)),endTime:J},de={...JSON.parse(JSON.stringify(oe)),id:ue(),startTime:J,selected:!1};if("trimStart"in oe&&"trimEnd"in oe&&"originalDuration"in oe){const z=oe,Y=z.endTime-z.startTime,ie=(z.trimEnd-z.trimStart)/Y,te=(J-z.startTime)*ie,Z=z.trimStart+te;ee.trimEnd=Z,de.trimStart=Z}return se.clips.splice(le,1,ee,de),t.value.has(re)&&(t.value.delete(re),t.value.add(ee.id)),{leftClip:ee,rightClip:de}}function H(re,J,oe){const{allowShrink:se=!0,allowExpand:le=!0,handleCollision:ue=!0,keepStartTime:ee=!0}=oe||{};if(J<.25||J>4)return{success:!1,message:"播放倍速必须在 0.25 到 4 之间"};let de=null,z=null;for(const ot of e.value){const We=ot.clips.find(et=>et.id===re);if(We){de=We,z=ot;break}}if(!de||!z)return{success:!1,message:"未找到指定的 Clip"};if(de.type!=="video"&&de.type!=="audio")return{success:!1,message:"只有视频或音频类型的 Clip 可以调整倍速"};const Y=de,ie=Y.playbackRate||1;if(Math.abs(ie-J)<.001)return{success:!0};const te=Y.trimEnd-Y.trimStart,Z=Y.endTime-Y.startTime,he=Ar(te/J),pe=he>Z,Ce=he{if(ot.type!=="transition")return!1;const We=ot,et=(We.startTime+We.endTime)/2,st=Math.abs(et-Y.startTime)ot.id!==re&&ot.type!=="transition").sort((ot,We)=>ot.startTime-We.startTime),Ye=De.filter(ot=>Qeot.startTime);if(Ye.length>0){if(!ue)return{success:!1,message:"会与其他 Clip 产生碰撞"};const ot=Ye.filter(et=>et.startTime>=Y.startTime),We=ke-Math.min(...ot.map(et=>et.startTime));if(We>0){const et=De.filter(st=>st.startTime>=Y.endTime);for(const st of et){const Me=Ar(st.startTime+We),Se=Ar(st.endTime+We);O(st.id,{startTime:Me,endTime:Se}),_e.push({id:st.id,startTime:Me,endTime:Se})}}}O(re,{playbackRate:J,startTime:Qe,endTime:ke});for(const ot of Te){const We=ot,et=(We.startTime+We.endTime)/2,st=z.clips.filter(ze=>ze.type!=="transition");({...Y});const Me=Math.abs(et-Y.startTime)Ze.id!==re&&Math.abs(Ze.startTime-ke)<.01);if(Ie=!!ze,Ie&&ze){const Ze=(ke+ze.startTime)/2,gt=We.transitionDuration/2;O(ot.id,{startTime:Ar(Ze-gt),endTime:Ar(Ze+gt)})}}else if(Me&&!ee){const ze=st.find(Ze=>Ze.id!==re&&Math.abs(Ze.endTime-Qe)<.01);if(Ie=!!ze,Ie&&ze){const Ze=(ze.endTime+Qe)/2,gt=We.transitionDuration/2;O(ot.id,{startTime:Ar(Ze-gt),endTime:Ar(Ze+gt)})}}else Me&&ee&&(Ie=!0);Ie||(p(ot.id),me.push(ot.id))}return{success:!0,removedTransitions:me.length>0?me:void 0,adjustedClips:_e.length>0?_e:void 0}}function $(re,J){const oe=C(re);if(!oe||oe.type!=="video"&&oe.type!=="audio")return null;const se=oe,le=se.trimEnd-se.trimStart;return Ar(le/J)}function G(re,J,oe=!0){const se=C(re);if(!se||se.type!=="video"&&se.type!=="audio")return{willCollide:!1};const le=se,ue=le.trimEnd-le.trimStart,ee=Ar(ue/J);let de,z;oe?(de=le.startTime,z=Ar(le.startTime+ee)):(z=le.endTime,de=Ar(Math.max(0,le.endTime-ee)));let Y=null;for(const te of e.value)if(te.clips.some(Z=>Z.id===re)){Y=te;break}if(!Y)return{willCollide:!1,newDuration:ee};const ie=Y.clips.filter(te=>te.id!==re&&te.type!=="transition"&&dete.startTime);return{willCollide:ie.length>0,collidingClipIds:ie.map(te=>te.id),newDuration:ee}}function q(re,J,oe=1){const se=J-re;return Ar(se/oe)}return{tracks:e,selectedClipIds:t,clipboard:n,mainTrack:r,sortedTracks:o,totalDuration:s,selectedClips:a,addTrack:h,addTrackAbove:v,addTrackBelow:f,removeTrack:g,updateTrack:m,getTrackCountByType:k,setTracks:u,normalizeTracks:d,normalizeClipDuration:l,addClip:A,removeClip:p,removeClips:b,updateClip:O,moveClipToTrack:y,getClip:C,selectClip:_,toggleClipSelection:S,deselectClip:L,clearSelection:E,hasOverlap:T,reset:D,cleanupEmptyTracks:P,copyClips:Q,cutClips:M,pasteClips:R,hasClipboardContent:I,getClipboardContent:F,clearClipboard:j,splitClip:W,setClipPlaybackRate:H,getClipDurationAtRate:$,checkPlaybackRateCollision:G,calculateTrackDuration:q}}),ML=Wy("playback",()=>{const e=fe(!1),t=fe(0),n=fe(1),r=fe(0);let o=null,s=0;const a=X(()=>{const y=G0().totalDuration;return Math.max(y,r.value)}),l=X(()=>u(t.value)),d=X(()=>u(a.value));function u(y,C=30){const _=Math.floor(y*C),S=Math.floor(_/(C*3600)),L=Math.floor(_%(C*3600)/(C*60)),E=Math.floor(_%(C*60)/C),T=_%C;return`${String(S).padStart(2,"0")}:${String(L).padStart(2,"0")}:${String(E).padStart(2,"0")}:${String(T).padStart(2,"0")}`}function h(y){if(e.value){if(s>0){const C=(y-s)/1e3,_=t.value+C*n.value,S=a.value;if(_>=S){t.value=S,f();return}t.value=_}s=y,o=requestAnimationFrame(h)}}function g(){s=0,o=requestAnimationFrame(h)}function m(){o!==null&&(cancelAnimationFrame(o),o=null),s=0}function v(){e.value||(e.value=!0,g())}function f(){e.value&&(e.value=!1,m())}function k(){e.value?f():v()}function A(y){const C=a.value>0?a.value:1/0;t.value=Math.max(0,Math.min(y,C))}function p(y){n.value=y}function b(y){r.value=y}function w(y){const C=a.value;t.value=Math.max(0,Math.min(t.value+y,C))}function O(){f(),t.value=0,n.value=1,r.value=0}return{isPlaying:e,currentTime:t,playbackRate:n,duration:r,effectiveDuration:a,formattedCurrentTime:l,formattedDuration:d,formatTime:u,play:v,pause:f,togglePlay:k,seekTo:A,setPlaybackRate:p,setDuration:b,adjustTime:w,reset:O}}),TE=Wy("history",()=>{const e=fe([]),t=fe(-1),n=fe(50),r=X(()=>t.value>0),o=X(()=>t.valuen.value?e.value.shift():t.value++}function l(v){const f=G0(),k=JSON.parse(v.snapshot);f.tracks=k.tracks,f.selectedClipIds.clear(),k.selectedClipIds.forEach(A=>{f.selectedClipIds.add(A)})}function d(){if(!r.value)return;t.value--;const v=e.value[t.value];l(v)}function u(){if(!o.value)return;t.value++;const v=e.value[t.value];l(v)}function h(){e.value=[],t.value=-1,a("初始状态")}function g(){e.value=[],t.value=-1}function m(){g()}return{historyStack:e,currentIndex:t,maxHistorySize:n,canUndo:r,canRedo:o,createSnapshot:s,pushSnapshot:a,restoreSnapshot:l,undo:d,redo:u,initialize:h,clear:g,reset:m}}),iat="video-track-scale-settings";function W5s(){try{const e=localStorage.getItem(iat);if(e)return JSON.parse(e)}catch(e){console.warn("Failed to load scale settings from localStorage:",e)}return null}function V5s(e){try{localStorage.setItem(iat,JSON.stringify(e))}catch(t){console.warn("Failed to save scale settings to localStorage:",t)}}const EA=Wy("scale",()=>{const e=W5s(),t=fe((e==null?void 0:e.scale)??1),n=fe(.1),r=fe(10),o=fe(100),s=fe((e==null?void 0:e.snapEnabled)??!0),a=fe(10);pt([t,s],([y,C])=>{V5s({scale:y,snapEnabled:C})},{immediate:!1});const l=X(()=>o.value*t.value),d=X(()=>{const y=t.value;return y>=5?{majorInterval:1,minorInterval:1/30,majorHeight:20,minorHeight:8}:y>=2?{majorInterval:1,minorInterval:.1,majorHeight:20,minorHeight:10}:y>=1?{majorInterval:1,minorInterval:.2,majorHeight:20,minorHeight:10}:y>=.5?{majorInterval:2,minorInterval:.5,majorHeight:20,minorHeight:10}:y>=.2?{majorInterval:5,minorInterval:1,majorHeight:20,minorHeight:10}:{majorInterval:10,minorInterval:2,majorHeight:20,minorHeight:10}});function u(y){t.value=Math.max(n.value,Math.min(y,r.value))}function h(y=.1){u(t.value+y)}function g(y=.1){u(t.value-y)}function m(){s.value=!s.value}function v(y){s.value=y}function f(y){return y*l.value}function k(y){return y/l.value}function A(y,C){if(!s.value||C.length===0)return y;let _=y,S=a.value;for(const L of C){const E=Math.abs(y-L);E{const e=G0(),t=EA(),n=TE(),r=fe(!1),o=fe([]),s=fe(0),a=fe(0),l=fe(""),d=fe(new Map),u=fe(0),h=fe(0),g=fe({shift:!1}),m=fe(!0),v=fe({x:0,y:0}),f=fe({enabled:!0,edgeThreshold:80,scrollSpeed:8,maxScrollSpeed:25}),k=fe(null),A=fe(null),p=fe(null),b=fe(null),w=fe(0),O=fe({trackId:"",startTime:0,endTime:0,needNewTrack:!1,visible:!1,clipType:""}),y=fe("");let C=document;const _=X(()=>new Set(o.value.map(le=>le.id))),S=X(()=>!r.value||!O.value.visible?0:O.value.endTime);function L(le){le.enableCrossTrackDrag!==void 0&&(m.value=le.enableCrossTrackDrag),le.edgeScroll&&Object.assign(f.value,le.edgeScroll)}function E(le,ue,ee){k.value=le,A.value=ue,b.value=ee||null}function T(le){if(!A.value)return;const ue=Math.max(0,A.value.scrollLeft+le);A.value.scrollLeft=ue,b.value&&b.value(ue)}function D(){if(!r.value||!f.value.enabled){M();return}const le=k.value,ue=A.value;if(!le||!ue)return;const ee=le.getBoundingClientRect(),{edgeThreshold:de,scrollSpeed:z,maxScrollSpeed:Y}=f.value,ie=u.value-ee.left;let te=0;if(ie0){const Z=Math.max(0,de-ie)/de;te=-Math.min(z+Z*(Y-z),Y)}else if(ie>ee.width-de){const Z=ue.scrollWidth-ue.clientWidth+500;if(ue.scrollLeft40;let te=l.value;if(m.value&&ie){const Ce=oe(h.value);Ce&&(te=Ce)}y.value=te;let Z=Ar(Y.startTime+de);t.snapEnabled&&!g.value.shift&&(Z=J(Z,z,te)),Z=Math.max(0,Z);const he=Y.endTime-Y.startTime,pe=Z+he;I(te,Z,pe,z.type)}function Q(){p.value===null&&(p.value=requestAnimationFrame(D))}function M(){p.value!==null&&(cancelAnimationFrame(p.value),p.value=null)}function B(le,ue,ee){var de;le.type!=="transition"&&(C=ee||((de=ue.target)==null?void 0:de.ownerDocument)||document,e.selectClip(le.id),o.value=[le],r.value=!0,s.value=ue.clientX,a.value=ue.clientY,u.value=ue.clientX,h.value=ue.clientY,l.value=le.trackId,y.value=le.trackId,d.value.clear(),d.value.set(le.id,{startTime:le.startTime,endTime:le.endTime,trackId:le.trackId}),v.value={x:0,y:0},w.value=0,O.value={trackId:le.trackId,startTime:le.startTime,endTime:le.endTime,needNewTrack:!1,visible:!1,clipType:le.type},C.addEventListener("mousemove",R),C.addEventListener("mouseup",W),Q())}function R(le){if(!r.value||o.value.length===0)return;g.value.shift=le.shiftKey,u.value=le.clientX,h.value=le.clientY;const ue=le.clientX-s.value,ee=le.clientY-a.value;v.value={x:ue,y:ee};const de=(ue+w.value)/t.actualPixelsPerSecond,z=o.value[0],Y=d.value.get(z.id);if(!Y)return;const ie=Math.abs(ee)>40;let te=l.value;if(m.value&&ie){const Ce=oe(h.value);Ce&&(te=Ce)}y.value=te;let Z=Ar(Y.startTime+de);t.snapEnabled&&!g.value.shift&&(Z=J(Z,z,te)),Z=Math.max(0,Z);const he=Y.endTime-Y.startTime,pe=Z+he;I(te,Z,pe,z.type)}function I(le,ue,ee,de){const z=e.tracks.find(Ce=>Ce.id===le),Y=l.value,ie=le!==Y,te=ee-ue;let Z=ue,he=ee,pe=!1;if(ie)if(!z)pe=!0;else{const Ce=de;z.type===Ce?j(le,ue,ee)&&(pe=!0):pe=!0}else{const Ce=F(le,ue,te);Z=Ce.startTime,he=Ce.endTime}O.value={trackId:le,startTime:Z,endTime:he,needNewTrack:pe,visible:!0,clipType:de}}function F(le,ue,ee){const de=e.tracks.find(Z=>Z.id===le);if(!de)return{startTime:ue,endTime:ue+ee};const z=new Set(o.value.map(Z=>Z.id)),Y=de.clips.filter(Z=>!z.has(Z.id)&&Z.type!=="transition").sort((Z,he)=>Z.startTime-he.startTime);let ie=ue,te=ue+ee;for(const Z of Y)if(ieZ.startTime){const he=(ie+te)/2,pe=(Z.startTime+Z.endTime)/2;(heZ.startTime&&(ie=Ar(Z.endTime)))):ie=Ar(Z.endTime),te=ie+ee;break}return{startTime:ie,endTime:te}}function j(le,ue,ee){const de=e.tracks.find(Y=>Y.id===le);if(!de)return!1;const z=new Set(o.value.map(Y=>Y.id));return de.clips.some(Y=>z.has(Y.id)||Y.type==="transition"?!1:Y.startTimeue)}function W(){if(!r.value||o.value.length===0){q();return}const le=y.value!==l.value;if(!m.value&&le){q();return}le?G():H(),se(),e.cleanupEmptyTracks(),n.pushSnapshot("移动片段"),q()}function H(){const le=O.value,ue=o.value[0],ee=d.value.get(ue.id);if(!ee)return;const de=le.startTime-ee.startTime,z=new Map;o.value.forEach(Y=>{const ie=d.value.get(Y.id);if(ie){const te=ie.endTime-ie.startTime,Z=Ar(Math.max(0,ie.startTime+de)),he=Ar(Z+te);e.updateClip(Y.id,{startTime:Z,endTime:he}),z.set(Y.id,{startTime:Z,endTime:he})}}),$(le.trackId,z)}function $(le,ue){const ee=e.tracks.find(Y=>Y.id===le);if(!ee)return;const de=[...ee.clips].filter(Y=>Y.type!=="transition").map(Y=>{const ie=ue.get(Y.id);return{id:Y.id,startTime:ie?ie.startTime:Y.startTime,endTime:ie?ie.endTime:Y.endTime}}).sort((Y,ie)=>Y.startTime-ie.startTime);if(de.length<2)return;const z=[];for(let Y=0;Yte.startTime){const Z=te.endTime-te.startTime,he=Ar(ie.endTime),pe=Ar(he+Z);te.startTime=he,te.endTime=pe,z.push({id:te.id,startTime:he,endTime:pe})}}z.forEach(Y=>{e.updateClip(Y.id,{startTime:Y.startTime,endTime:Y.endTime})})}function G(){const le=O.value,ue=o.value[0],ee=d.value.get(ue.id);if(!ee)return;const de=ue.type;let z=null;if(le.needNewTrack){const te=re(de);e.addTrack(te),z=te}else z=e.tracks.find(te=>te.id===le.trackId)||null;if(!z)return;const Y=le.startTime-ee.startTime,ie=new Map;o.value.forEach(te=>{const Z=d.value.get(te.id);if(Z){const he=Z.endTime-Z.startTime,pe=Ar(Math.max(0,Z.startTime+Y)),Ce=Ar(pe+he);te.trackId!==z.id&&e.moveClipToTrack(te.id,z.id),e.updateClip(te.id,{startTime:pe,endTime:Ce}),ie.set(te.id,{startTime:pe,endTime:Ce})}}),$(z.id,ie)}function q(){M(),r.value=!1,o.value=[],d.value.clear(),v.value={x:0,y:0},w.value=0,O.value={trackId:"",startTime:0,endTime:0,needNewTrack:!1,visible:!1,clipType:""},y.value="",C.removeEventListener("mousemove",R),C.removeEventListener("mouseup",W)}function re(le){const ue=e.getTrackCountByType(le),ee={video:"视频",audio:"音频",subtitle:"字幕",sticker:"贴纸",filter:"滤镜",effect:"特效"};return{id:Yre("track-"),type:le,name:`${ee[le]||le}${ue+1}`,visible:!0,locked:!1,clips:[],order:e.tracks.length}}function J(le,ue,ee){if(g.value.shift||!t.snapEnabled)return le;const de=e.tracks.find(Z=>Z.id===ee);if(!de)return le;const z=[],Y=new Set(e.selectedClipIds);if(de.clips.forEach(Z=>{Z.id!==ue.id&&!Y.has(Z.id)&&Z.type!=="transition"&&(z.push(Z.startTime),z.push(Z.endTime))}),z.length===0)return le;const ie=t.timeToPixels(le),te=t.snapToPosition(ie,z.map(Z=>t.timeToPixels(Z)));return Ar(t.pixelsToTime(te))}function oe(le){const ue=document.querySelectorAll(".tracks__track");for(const ee of ue){const de=ee.getBoundingClientRect();if(le>=de.top&&le<=de.bottom)return ee.dataset.trackId||null}return null}function se(){e.tracks.forEach(le=>{const ue=[];le.clips.forEach(ee=>{if(ee.type!=="transition")return;const de=(ee.startTime+ee.endTime)/2,z=le.clips.find(ie=>ie.type!=="transition"&&Math.abs(ie.endTime-de)<.1),Y=le.clips.find(ie=>ie.type!=="transition"&&ie!==z&&Math.abs(ie.startTime-de)<.1);(!z||!Y||Math.abs(z.endTime-Y.startTime)>.1)&&ue.push(ee.id)}),ue.forEach(ee=>{e.removeClip(ee)})})}return{isDragging:r,draggedClips:o,draggedClipIds:_,dragOffset:v,previewPosition:O,previewEndTime:S,currentTargetTrackId:y,dragStartTrackId:l,edgeScrollConfig:f,setConfig:L,setScrollContainers:E,startDrag:B,handleDragMove:R,handleDragEnd:W,resetDragState:q,startEdgeScroll:Q,stopEdgeScroll:M}});function z5s(e={}){const t=G0(),n=ML(),r=TE(),o=EA(),s=e.callbacks||{},a=fe(!1);function l(){var C;if(!((C=e.containerRef)!=null&&C.value))return!0;const _=document.activeElement;return _?e.containerRef.value.contains(_):!1}function d(){var C;return(C=e.containerRef)!=null&&C.value?a.value:!0}function u(C){return!C||!(C instanceof HTMLElement)?!1:!!(C instanceof HTMLInputElement||C instanceof HTMLTextAreaElement||C instanceof HTMLSelectElement||C.isContentEditable||C.getAttribute("contenteditable")==="true")}function h(C){var _,S;const L=j5s()?C.metaKey:C.ctrlKey;if(C.code==="Space"){if(u(C.target))return;C.preventDefault(),n.isPlaying?(n.pause(),(_=s.onPause)==null||_.call(s)):(n.play(),(S=s.onPlay)==null||S.call(s));return}if(d()&&!g(C)){if(L&&C.code==="KeyZ"&&!C.shiftKey){C.preventDefault(),r.undo();return}if(L&&C.code==="KeyY"||L&&C.shiftKey&&C.code==="KeyZ"){C.preventDefault(),r.redo();return}if(L&&C.code==="KeyC"){C.preventDefault(),m();return}if(L&&C.code==="KeyX"){C.preventDefault(),v();return}if(L&&C.code==="KeyV"){C.preventDefault(),f();return}if(C.code==="Delete"||C.code==="Backspace"){C.preventDefault(),k();return}if(L&&(C.code==="Equal"||C.code==="NumpadAdd")){C.preventDefault(),o.zoomIn(.1);return}if(L&&(C.code==="Minus"||C.code==="NumpadSubtract")){C.preventDefault(),o.zoomOut(.1);return}if(C.code==="ArrowRight"){C.preventDefault(),n.adjustTime(.1);return}if(C.code==="ArrowLeft"){C.preventDefault(),n.adjustTime(-.1);return}if(C.code==="Escape"){C.preventDefault(),t.clearSelection();return}}}function g(C){var _;const S=C.target;return S instanceof HTMLInputElement||S instanceof HTMLTextAreaElement||S.isContentEditable?((_=e.containerRef)!=null&&_.value&&e.containerRef.value.contains(S),!0):!1}function m(){var C;const _=Array.from(t.selectedClipIds);_.length!==0&&(t.copyClips(_),(C=s.onCopy)==null||C.call(s,_))}function v(){var C;const _=Array.from(t.selectedClipIds);_.length!==0&&(t.cutClips(_),(C=s.onCut)==null||C.call(s,_))}function f(){var C;if(!t.hasClipboardContent())return;const _=t.selectedClips;let S;if(_.length>0?S=_[0].trackId:t.mainTrack&&(S=t.mainTrack.id),!S)return;const L=n.currentTime,E=t.pasteClips(S,L);E&&(r.pushSnapshot("粘贴片段"),(C=s.onPaste)==null||C.call(s,E,S,L))}function k(){var C;const _=Array.from(t.selectedClipIds);_.length!==0&&(t.removeClips(_),r.pushSnapshot("删除片段"),(C=s.onDelete)==null||C.call(s,_))}function A(){a.value=!0}function p(){l()||(a.value=!1)}function b(){a.value=!0}function w(C){var _;const S=C.relatedTarget;(_=e.containerRef)!=null&&_.value&&S&&(e.containerRef.value.contains(S)||(a.value=!1))}function O(){var C;const _=(C=e.containerRef)==null?void 0:C.value;_&&(_.addEventListener("mouseenter",A),_.addEventListener("mouseleave",p),_.addEventListener("focusin",b),_.addEventListener("focusout",w))}function y(){var C;const _=(C=e.containerRef)==null?void 0:C.value;_&&(_.removeEventListener("mouseenter",A),_.removeEventListener("mouseleave",p),_.removeEventListener("focusin",b),_.removeEventListener("focusout",w))}return An(()=>{document.addEventListener("keydown",h),O()}),Qa(()=>{document.removeEventListener("keydown",h),y()}),{handleKeyDown:h,isActive:a}}function H5s({scrollLeft:e,tracksWidth:t,setScrollLeft:n}){const r=ML(),o=EA();pt(()=>r.currentTime,s=>{if(!r.isPlaying)return;const a=o.actualPixelsPerSecond,l=s*a,d=e.value+t.value*.9;if(l>d){const u=t.value*.8,h=e.value+u;n(h)}})}const Lm=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},$5s={},X5s={width:"1em",height:"1em",viewBox:"0 0 24 24",preserveAspectRatio:"xMidYMid meet",fill:"none",role:"presentation",xmlns:"http://www.w3.org/2000/svg",class:"snap-icon"};function G5s(e,t){return xe(),Ge("svg",X5s,[...t[0]||(t[0]=[ge("g",null,[ge("path",{d:"M11 22h2v-3h-2v3ZM6.106 4.416l1.415-1.414 2.121 2.122-1.414 1.414-2.122-2.122ZM16.48 3.002l1.414 1.414-2.122 2.122-1.414-1.414 2.122-2.122ZM11 2h2v3h-2V2Zm6.894 17.584-1.414 1.414-2.122-2.122 1.414-1.414 2.122 2.122ZM7.52 20.998l-1.414-1.414 2.122-2.122 1.414 1.415-2.121 2.12Z",fill:"currentColor"}),ge("path",{d:"M4 16h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2Zm16-6h-7v4h7v-4ZM4 10h7v4H4v-4Z","clip-rule":"evenodd","fill-rule":"evenodd",fill:"currentColor"})],-1)])])}const Y5s=Lm($5s,[["render",G5s],["__scopeId","data-v-dca9589a"]]),Z5s={class:"tools-bar"},q5s={class:"tools-bar__section tools-bar__operations"},K5s=["disabled","onClick"],J5s={class:"tools-bar__icon"},e9s={class:"tools-bar__label"},t9s=["disabled","title","onClick"],n9s={class:"tools-bar__icon"},i9s={class:"tools-bar__label"},r9s={class:"tools-bar__section tools-bar__playback"},o9s={class:"tools-bar__time"},s9s={class:"tools-bar__time-current"},a9s={class:"tools-bar__time-duration"},l9s=["value"],c9s={class:"tools-bar__section tools-bar__scale"},d9s={class:"tools-bar__scale-config"},u9s=["title"],h9s=["title","disabled","onClick"],f9s={class:"tools-bar__scale-control"},g9s=["disabled"],m9s={class:"tools-bar__scale-slider"},k9s=["min","max"],v9s={class:"tools-bar__scale-value"},A9s=["disabled"],p9s=Je({__name:"index",props:{operationButtons:{default:()=>["reset","undo","redo","split","delete"]},scaleConfigButtons:{default:()=>["snap"]},locale:{default:()=>({})}},emits:["operation","playback:play","playback:pause"],setup(e,{emit:t}){const n=e,r=t,o=ML(),s=EA(),a=TE(),l=G0(),d=bt("config",{}),u=X(()=>o.isPlaying),h=X(()=>o.formattedCurrentTime),g=X(()=>o.formattedDuration),m=X(()=>s.snapEnabled),v=X(()=>s.minScale),f=X(()=>s.maxScale),k=fe(o.playbackRate),A=X(()=>d.playbackRates||[.5,1,2,4]),p=fe(s.scale),b=X(()=>{var H;return((H=n.locale)==null?void 0:H.snapOn)||"关闭自动吸附"}),w=X(()=>{var H;return((H=n.locale)==null?void 0:H.snapOff)||"开启自动吸附"});function O(H){return typeof H=="object"&&"type"in H&&H.type==="custom"}function y(H){return typeof H=="object"&&!("type"in H)&&"key"in H}function C(H){return typeof H=="object"&&!("type"in H)&&"key"in H}function _(H){return typeof H=="object"||typeof H=="function"}function S(H){const $=H.disabled;return typeof $=="function"?$():$??!1}function L(H){const $=H.active;return typeof $=="function"?$():$??!1}function E(H){H.onClick?H.onClick():H.key&&r("operation",H.key)}function T(H){H.onClick&&H.onClick()}function D(H){return{reset:"↺",undo:"↶",redo:"↷",split:"✂",delete:"🗑"}[H]||""}function P(H){const $=n.locale||{},G={reset:"重置",undo:"撤销",redo:"重做",split:"分割",delete:"删除"};return $[H]||G[H]||H}function Q(H){switch(H){case"undo":return!a.canUndo;case"redo":return!a.canRedo;case"split":return l.selectedClipIds.size===0;default:return!1}}function M(H){r("operation",H)}function B(){o.isPlaying?(o.pause(),r("playback:pause")):(o.play(),r("playback:play"))}function R(){o.setPlaybackRate(k.value)}function I(){s.toggleSnap()}function F(){s.zoomIn(.1),p.value=s.scale}function j(){s.zoomOut(.1),p.value=s.scale}function W(){s.setScale(p.value)}return(H,$)=>(xe(),Ge("div",Z5s,[ge("div",q5s,[Zr(H.$slots,"operations-prepend",{},void 0,!0),(xe(!0),Ge(sn,null,Bi(e.operationButtons,(G,q)=>(xe(),Ge(sn,{key:q},[typeof G=="string"?(xe(),Ge("button",{key:0,class:Eo(["tools-bar__btn",{"tools-bar__btn--disabled":Q(G)}]),disabled:Q(G),onClick:re=>M(G)},[ge("span",J5s,Pe(D(G)),1),ge("span",e9s,Pe(P(G)),1)],10,K5s)):O(G)?Zr(H.$slots,`custom-operation-${G.key}`,{key:1},void 0,!0):y(G)?(xe(),Ge("button",{key:2,class:Eo(["tools-bar__btn",[{"tools-bar__btn--disabled":S(G)},G.className]]),disabled:S(G),title:G.title,onClick:re=>E(G)},[ge("span",n9s,[_(G.icon)?(xe(),Ut(Bd(G.icon),{key:0})):(xe(),Ge(sn,{key:1},[Bt(Pe(G.icon||""),1)],64))]),ge("span",i9s,Pe(G.label||""),1)],10,t9s)):nn("",!0)],64))),128)),Zr(H.$slots,"operations-append",{},void 0,!0)]),ge("div",r9s,[Zr(H.$slots,"playback-prepend",{},void 0,!0),ge("button",{class:"tools-bar__btn tools-bar__btn--play",onClick:B},[ge("span",{class:"tools-bar__icon",style:no({marginLeft:u.value?"0":"2px"})},Pe(u.value?"⏸":"▶"),5)]),ge("div",o9s,[ge("span",s9s,Pe(h.value),1),$[2]||($[2]=ge("span",{class:"tools-bar__time-separator"},"/",-1)),ge("span",a9s,Pe(g.value),1)]),uu(ge("select",{"onUpdate:modelValue":$[0]||($[0]=G=>k.value=G),class:"tools-bar__select",onChange:R},[(xe(!0),Ge(sn,null,Bi(A.value,G=>(xe(),Ge("option",{key:G,value:G},Pe(G)+"x ",9,l9s))),128))],544),[[Soi,k.value]]),Zr(H.$slots,"playback-append",{},void 0,!0)]),ge("div",c9s,[Zr(H.$slots,"scale-prepend",{},void 0,!0),ge("div",d9s,[(xe(!0),Ge(sn,null,Bi(e.scaleConfigButtons,(G,q)=>(xe(),Ge(sn,{key:q},[typeof G=="string"&&G==="snap"?(xe(),Ge("button",{key:0,class:Eo(["tools-bar__btn tools-bar__btn--toggle tools-bar__btn--snap",{"tools-bar__btn--active":m.value}]),title:m.value?b.value:w.value,onClick:I},[c(Y5s,{class:"tools-bar__snap-icon"})],10,u9s)):O(G)?Zr(H.$slots,`custom-scale-config-${G.key}`,{key:1},void 0,!0):C(G)?(xe(),Ge("button",{key:2,class:Eo(["tools-bar__btn tools-bar__btn--toggle",[{"tools-bar__btn--active":L(G)},{"tools-bar__btn--disabled":S(G)},G.className]]),title:G.title,disabled:S(G),onClick:re=>T(G)},[_(G.icon)?(xe(),Ut(Bd(G.icon),{key:0})):(xe(),Ge(sn,{key:1},[Bt(Pe(G.icon||""),1)],64))],10,h9s)):nn("",!0)],64))),128))]),ge("div",f9s,[ge("button",{class:"tools-bar__btn tools-bar__btn--icon",disabled:p.value<=v.value,onClick:j}," − ",8,g9s),ge("div",m9s,[uu(ge("input",{type:"range",min:v.value,max:f.value,step:.1,"onUpdate:modelValue":$[1]||($[1]=G=>p.value=G),onInput:W},null,40,k9s),[[d4n,p.value,void 0,{number:!0}]]),ge("span",v9s,Pe(p.value.toFixed(1))+"x",1)]),ge("button",{class:"tools-bar__btn tools-bar__btn--icon",disabled:p.value>=f.value,onClick:F}," + ",8,A9s)]),Zr(H.$slots,"scale-append",{},void 0,!0)])]))}}),b9s=Lm(p9s,[["__scopeId","data-v-c36de3a3"]]),w9s={key:0,class:"ruler__mark-label"},O9s=Je({__name:"index",props:{width:{default:0},scrollLeft:{default:0},trackControlWidth:{default:200}},emits:["scroll","seek"],setup(e,{expose:t,emit:n}){const r=e,o=n,s=ML(),a=EA(),l=G0(),d=MH(),u=fe(),h=fe(),g=fe(!1),m=fe(0);let v=null;t({isDraggingCursor:g});const f=X(()=>a.rulerConfig),k=X(()=>a.actualPixelsPerSecond),A=X(()=>{const T=Math.max(l.totalDuration,s.duration,d.previewEndTime,60);return Math.ceil(T*k.value)}),p=X(()=>{const T=[],D=f.value,P=A.value/k.value,Q=D.minorInterval,M=D.majorInterval,B=Math.ceil(P/Q)+1;for(let R=0;RP)break;const F=Math.abs(Math.round(I/M)*M-I)<.001;T.push({time:I,position:I*k.value,isMajor:F,height:F?D.majorHeight:D.minorHeight})}return T}),b=X(()=>s.currentTime*k.value),w=X(()=>r.trackControlWidth+b.value-(r.scrollLeft||0)),O=X(()=>w.value>=r.trackControlWidth);function y(T){const D=Math.floor(T/60),P=Math.floor(T%60);return`${String(D).padStart(2,"0")}:${String(P).padStart(2,"0")}`}function C(T){var D;if(g.value)return;const P=(D=u.value)==null?void 0:D.getBoundingClientRect();if(!P)return;const Q=(T.clientX-P.left-r.trackControlWidth+(r.scrollLeft||0))/k.value,M=Math.max(0,Q);s.seekTo(M),o("seek",M)}function _(){g.value=!0,s.pause(),document.body.style.userSelect="none";let T=null,D=0,P=0;const Q=()=>{g.value&&(P!==0&&h.value&&(h.value.scrollLeft+=P,o("scroll",h.value.scrollLeft),M()),T=requestAnimationFrame(Q))},M=()=>{var I;const F=(I=u.value)==null?void 0:I.getBoundingClientRect();if(!F||!h.value)return;let j=(D-F.left-r.trackControlWidth+h.value.scrollLeft)/k.value;j=Math.max(0,j),s.seekTo(j)},B=I=>{var F;D=I.clientX;const j=(F=h.value)==null?void 0:F.getBoundingClientRect();if(j)if(I.clientXj.right-50){const W=1-(j.right-I.clientX)/50;P=15*Math.max(0,W)}else P=0;P===0&&M()},R=()=>{g.value=!1,document.body.style.userSelect="",T&&(cancelAnimationFrame(T),T=null),document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",R),o("seek",s.currentTime)};document.addEventListener("mousemove",B),document.addEventListener("mouseup",R),T=requestAnimationFrame(Q)}function S(){h.value&&o("scroll",h.value.scrollLeft)}function L(){return u.value?u.value.closest(".video-track"):null}function E(){if(!u.value)return;const T=u.value.getBoundingClientRect(),D=L(),P=D?D.getBoundingClientRect().bottom:window.innerHeight,Q=T.top-5;m.value=Math.max(P-Q,0)}return An(()=>{ai(()=>{E(),v=new ResizeObserver(()=>{E()}),u.value&&v.observe(u.value);const T=L();T&&v.observe(T)}),window.addEventListener("resize",E)}),Qa(()=>{window.removeEventListener("resize",E),v&&(v.disconnect(),v=null)}),pt(()=>r.scrollLeft,T=>{h.value&&h.value.scrollLeft!==T&&(h.value.scrollLeft=T)}),pt(b,T=>{if(g.value||!h.value)return;const D=h.value.clientWidth,P=h.value.scrollLeft;TP+D&&(h.value.scrollLeft=T-D+50)}),(T,D)=>(xe(),Ge("div",{class:"ruler",ref_key:"rulerRef",ref:u},[ge("div",{class:"ruler__placeholder",style:no({width:e.trackControlWidth+"px"})},null,4),ge("div",{class:"ruler__wrapper",ref_key:"rulerWrapperRef",ref:h,onScroll:S},[ge("div",{class:"ruler__content",style:no({width:A.value+"px"}),onMousedown:C},[(xe(!0),Ge(sn,null,Bi(p.value,P=>(xe(),Ge("div",{key:P.time,class:Eo(["ruler__mark",{"ruler__mark--major":P.isMajor}]),style:no({left:P.position+"px",height:P.height+"px"})},[P.isMajor?(xe(),Ge("span",w9s,Pe(y(P.time)),1)):nn("",!0)],6))),128))],36)],544),O.value?(xe(),Ge("div",{key:0,class:Eo(["ruler__cursor-handle",{"ruler__cursor-handle--dragging":g.value}]),style:no({left:w.value+"px"}),onMousedown:Mr(_,["stop"])},[ge("div",{class:"ruler__cursor-line",style:no({height:`${m.value}px`}),onMousedown:Mr(_,["stop"])},null,36)],38)):nn("",!0)],512))}}),y9s=Lm(O9s,[["__scopeId","data-v-f5735210"]]),C9s={class:"track-control"},_9s={class:"track-control__name"},S9s={key:2,class:"track-control__badge"},L9s={class:"track-control__actions"},x9s=["title"],E9s=["title"],T9s=["title"],Q9s=Je({__name:"TrackControl",props:{track:{},locale:{}},emits:["update","delete"],setup(e,{emit:t}){const n=e,r=t,o=fe(!1),s=fe(""),a=fe();function l(){o.value=!0,s.value=n.track.name,ai(()=>{var v,f;(v=a.value)==null||v.focus(),(f=a.value)==null||f.select()})}function d(){s.value.trim()&&s.value!==n.track.name&&r("update",n.track.id,{name:s.value.trim()}),o.value=!1}function u(){o.value=!1,s.value=""}function h(){r("update",n.track.id,{visible:!n.track.visible})}function g(){r("update",n.track.id,{locked:!n.track.locked})}function m(){var v;const f=(((v=n.locale)==null?void 0:v.confirmDeleteTrack)||'确定要删除轨道"{name}"吗?').replace("{name}",n.track.name);confirm(f)&&r("delete",n.track.id)}return(v,f)=>{var k,A,p,b,w,O;return xe(),Ge("div",C9s,[ge("div",_9s,[o.value?uu((xe(),Ge("input",{key:0,"onUpdate:modelValue":f[0]||(f[0]=y=>s.value=y),class:"track-control__name-input",onBlur:d,onKeyup:[hct(d,["enter"]),hct(u,["esc"])],ref_key:"nameInputRef",ref:a},null,544)),[[d4n,s.value]]):(xe(),Ge("span",{key:1,class:"track-control__name-text",onDblclick:l},Pe(e.track.name),33)),e.track.isMain?(xe(),Ge("span",S9s,Pe(((k=e.locale)==null?void 0:k.mainBadge)||"主"),1)):nn("",!0)]),ge("div",L9s,[ge("button",{class:Eo(["track-control__btn",{"track-control__btn--active":e.track.visible}]),onClick:h,title:e.track.visible?((A=e.locale)==null?void 0:A.hide)||"隐藏":((p=e.locale)==null?void 0:p.show)||"显示"},Pe(e.track.visible?"👁":"👁‍🗨"),11,x9s),ge("button",{class:Eo(["track-control__btn",{"track-control__btn--active":e.track.locked}]),onClick:g,title:e.track.locked?((b=e.locale)==null?void 0:b.unlock)||"解锁":((w=e.locale)==null?void 0:w.lock)||"锁定"},Pe(e.track.locked?"🔒":"🔓"),11,E9s),e.track.isMain?nn("",!0):(xe(),Ge("button",{key:0,class:"track-control__btn track-control__btn--danger",onClick:m,title:((O=e.locale)==null?void 0:O.delete)||"删除"}," 🗑 ",8,T9s))])])}}}),D9s=Lm(Q9s,[["__scopeId","data-v-34ea43ab"]]);function B9s(){const e=G0(),t=EA(),n=TE(),r=fe(!1),o=fe(null),s=fe("left"),a=fe(0),l=fe(0),d=fe(0),u=fe(0),h=fe(0);let g=document;const m=fe([]),v=fe([]);function f(R,I,F){var j;if(R.type==="transition"){y(R,I,F);return}if(g=((j=F.target)==null?void 0:j.ownerDocument)||document,r.value=!0,o.value=R,s.value=I,a.value=F.clientX,l.value=R.startTime,d.value=R.endTime,R.type==="video"||R.type==="audio"){const W=R;u.value=W.trimStart,h.value=W.trimEnd}k(R,I),g.addEventListener("mousemove",E),g.addEventListener("mouseup",M)}function k(R,I){m.value=[],v.value=[];const F=e.tracks.find(j=>j.id===R.trackId);if(F)if(I==="right"){const j=new Set([R.id]);A(F.clips,R.endTime,j)}else{const j=new Set([R.id]);p(F.clips,R.startTime,j)}}function A(R,I,F){const j=R.find(H=>{if(H.type!=="transition")return!1;const $=H,G=($.startTime+$.endTime)/2;return Math.abs(G-I)<$.transitionDuration&&$.startTime>=I-$.transitionDuration});if(!j)return;m.value.push({id:j.id,type:"transition",originalStartTime:j.startTime,originalEndTime:j.endTime,duration:j.transitionDuration});const W=R.find(H=>H.type!=="transition"&&!F.has(H.id)&&Math.abs(H.startTime-I){if(H.type!=="transition")return!1;const $=H,G=($.startTime+$.endTime)/2;return Math.abs(G-I)<$.transitionDuration&&$.endTime<=I+$.transitionDuration});if(!j)return;v.value.push({id:j.id,type:"transition",originalStartTime:j.startTime,originalEndTime:j.endTime,duration:j.transitionDuration});const W=R.find(H=>H.type!=="transition"&&!F.has(H.id)&&Math.abs(H.endTime-I)$.id===R.trackId);if(!F)return;const j=(R.startTime+R.endTime)/2,W=F.clips.find($=>$.type!=="transition"&&Math.abs($.endTime-j)<.5),H=F.clips.find($=>$.type!=="transition"&&$!==W&&Math.abs($.startTime-j)<.5);if(W&&H){const $=Ar(j-I/2),G=Ar(j+I/2),q=Ar(j),re=Ar(I);e.updateClip(R.id,{startTime:$,endTime:G,transitionDuration:re}),e.updateClip(W.id,{endTime:q}),e.updateClip(H.id,{startTime:q})}}const L=fe({shift:!1});function E(R){if(!r.value||!o.value)return;L.value.shift=R.shiftKey;const I=R.clientX-a.value,F=t.pixelsToTime(I);s.value==="left"?T(F):P(F)}function T(R){if(!o.value)return;let I=Ar(l.value+R);const F=.1,j=d.value-F;if(I=Math.max(0,Math.min(I,j)),!(v.value.length>0&&v.value[0].type==="transition")){const H=e.tracks.find($=>$.id===o.value.trackId);if(H){const $=H.clips.filter(G=>G.type!=="transition"&&G.id!==o.value.id).find(G=>G.endTime<=l.value+.01&&G.endTime>I);$&&(I=Math.max(I,$.endTime))}}let W=0;if(o.value.type==="video"||o.value.type==="audio"){o.value;const H=I-l.value;W=Ar(u.value+H),W<0&&(I=Ar(l.value-u.value),W=0);const $=h.value;W>$-F&&(W=$-F,I=Ar(l.value+(W-u.value)))}if(t.snapEnabled){const H=B(I);if(H!==I&&(o.value.type==="video"||o.value.type==="audio")){const $=H-I;W=Ar(W+$),W<0&&(W=0)}I=H}o.value.type==="video"||o.value.type==="audio"?e.updateClip(o.value.id,{startTime:I,trimStart:Math.max(0,W)}):e.updateClip(o.value.id,{startTime:I}),D(I)}function D(R){if(v.value.length===0)return;const I=d.value-R;let F=R;for(let j=0;j0&&m.value[0].type==="transition")){const H=e.tracks.find($=>$.id===o.value.trackId);if(H){const $=H.clips.filter(G=>G.type!=="transition"&&G.id!==o.value.id).find(G=>G.startTime>=d.value-.01&&G.startTimeH.originalDuration&&(W=H.originalDuration,I=Ar(d.value+(W-h.value)));const G=u.value;W$.originalDuration&&(W=$.originalDuration)}I=H}if(o.value.type==="video"||o.value.type==="audio"){const H=o.value;e.updateClip(o.value.id,{endTime:I,trimEnd:Math.min(W,H.originalDuration)})}else e.updateClip(o.value.id,{endTime:I});Q(I)}function Q(R){if(m.value.length===0)return;const I=R-l.value;let F=R,j=I;for(let W=0;WG.id===o.value.trackId);if(!I)return R;const F=new Set;m.value.forEach(G=>F.add(G.id)),v.value.forEach(G=>F.add(G.id));const j=[],W=new Set(e.selectedClipIds);if(I.clips.forEach(G=>{G.id!==o.value.id&&!W.has(G.id)&&!F.has(G.id)&&G.type!=="transition"&&(j.push(G.startTime),j.push(G.endTime))}),j.length===0)return R;const H=t.timeToPixels(R),$=t.snapToPosition(H,j.map(G=>t.timeToPixels(G)));return Ar(t.pixelsToTime($))}return{isResizing:r,resizingClip:o,resizingEdge:s,startResize:f,handleResizeMove:E,handleResizeEnd:M}}function R9s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var yqn={};(function(e){var t=function(){var f=new Date,k=4,A=3,p=2,b=1,w=k,O={setLogLevel:function(y){y==this.debug?w=b:y==this.info?w=p:y==this.warn?w=A:(y==this.error,w=k)},debug:function(y,C){console.debug===void 0&&(console.debug=console.log),b>=w&&console.debug("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)},log:function(y,C){this.debug(y.msg)},info:function(y,C){p>=w&&console.info("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)},warn:function(y,C){A>=w&&console.warn("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)},error:function(y,C){k>=w&&console.error("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)}};return O}();t.getDurationString=function(f,k){var A;function p(_,S){for(var L=""+_,E=L.split(".");E[0].length0){for(var A="",p=0;p0&&(A+=","),A+="["+t.getDurationString(f.start(p))+","+t.getDurationString(f.end(p))+"]";return A}else return"(empty)"},e.Log=t;var n=function(f){if(f instanceof ArrayBuffer)this.buffer=f,this.dataview=new DataView(f);else throw"Needs an array buffer";this.position=0};n.prototype.getPosition=function(){return this.position},n.prototype.getEndPosition=function(){return this.buffer.byteLength},n.prototype.getLength=function(){return this.buffer.byteLength},n.prototype.seek=function(f){var k=Math.max(0,Math.min(this.buffer.byteLength,f));return this.position=isNaN(k)||!isFinite(k)?0:k,!0},n.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},n.prototype.readAnyInt=function(f,k){var A=0;if(this.position+f<=this.buffer.byteLength){switch(f){case 1:k?A=this.dataview.getInt8(this.position):A=this.dataview.getUint8(this.position);break;case 2:k?A=this.dataview.getInt16(this.position):A=this.dataview.getUint16(this.position);break;case 3:if(k)throw"No method for reading signed 24 bits values";A=this.dataview.getUint8(this.position)<<16,A|=this.dataview.getUint8(this.position+1)<<8,A|=this.dataview.getUint8(this.position+2);break;case 4:k?A=this.dataview.getInt32(this.position):A=this.dataview.getUint32(this.position);break;case 8:if(k)throw"No method for reading signed 64 bits values";A=this.dataview.getUint32(this.position)<<32,A|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+f}return this.position+=f,A}else throw"Not enough bytes in buffer"},n.prototype.readUint8=function(){return this.readAnyInt(1,!1)},n.prototype.readUint16=function(){return this.readAnyInt(2,!1)},n.prototype.readUint24=function(){return this.readAnyInt(3,!1)},n.prototype.readUint32=function(){return this.readAnyInt(4,!1)},n.prototype.readUint64=function(){return this.readAnyInt(8,!1)},n.prototype.readString=function(f){if(this.position+f<=this.buffer.byteLength){for(var k="",A=0;Athis._byteLength&&(this._byteLength=k);return}for(A<1&&(A=1);k>A;)A*=2;var p=new ArrayBuffer(A),b=new Uint8Array(this._buffer),w=new Uint8Array(p,0,b.length);w.set(b),this.buffer=p,this._byteLength=k}},r.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var f=new ArrayBuffer(this._byteLength),k=new Uint8Array(f),A=new Uint8Array(this._buffer,0,k.length);k.set(A),this.buffer=f}},r.BIG_ENDIAN=!1,r.LITTLE_ENDIAN=!0,r.prototype._byteLength=0,Object.defineProperty(r.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(r.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(f){this._buffer=f,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(f){this._byteOffset=f,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"dataView",{get:function(){return this._dataView},set:function(f){this._byteOffset=f.byteOffset,this._buffer=f.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+f.byteLength}}),r.prototype.seek=function(f){var k=Math.max(0,Math.min(this.byteLength,f));this.position=isNaN(k)||!isFinite(k)?0:k},r.prototype.isEof=function(){return this.position>=this._byteLength},r.prototype.mapUint8Array=function(f){this._realloc(f*1);var k=new Uint8Array(this._buffer,this.byteOffset+this.position,f);return this.position+=f*1,k},r.prototype.readInt32Array=function(f,k){f=f??this.byteLength-this.position/4;var A=new Int32Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readInt16Array=function(f,k){f=f??this.byteLength-this.position/2;var A=new Int16Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readInt8Array=function(f){f=f??this.byteLength-this.position;var k=new Int8Array(f);return r.memcpy(k.buffer,0,this.buffer,this.byteOffset+this.position,f*k.BYTES_PER_ELEMENT),this.position+=k.byteLength,k},r.prototype.readUint32Array=function(f,k){f=f??this.byteLength-this.position/4;var A=new Uint32Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readUint16Array=function(f,k){f=f??this.byteLength-this.position/2;var A=new Uint16Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readUint8Array=function(f){f=f??this.byteLength-this.position;var k=new Uint8Array(f);return r.memcpy(k.buffer,0,this.buffer,this.byteOffset+this.position,f*k.BYTES_PER_ELEMENT),this.position+=k.byteLength,k},r.prototype.readFloat64Array=function(f,k){f=f??this.byteLength-this.position/8;var A=new Float64Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readFloat32Array=function(f,k){f=f??this.byteLength-this.position/4;var A=new Float32Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readInt32=function(f){var k=this._dataView.getInt32(this.position,f??this.endianness);return this.position+=4,k},r.prototype.readInt16=function(f){var k=this._dataView.getInt16(this.position,f??this.endianness);return this.position+=2,k},r.prototype.readInt8=function(){var f=this._dataView.getInt8(this.position);return this.position+=1,f},r.prototype.readUint32=function(f){var k=this._dataView.getUint32(this.position,f??this.endianness);return this.position+=4,k},r.prototype.readUint16=function(f){var k=this._dataView.getUint16(this.position,f??this.endianness);return this.position+=2,k},r.prototype.readUint8=function(){var f=this._dataView.getUint8(this.position);return this.position+=1,f},r.prototype.readFloat32=function(f){var k=this._dataView.getFloat32(this.position,f??this.endianness);return this.position+=4,k},r.prototype.readFloat64=function(f){var k=this._dataView.getFloat64(this.position,f??this.endianness);return this.position+=8,k},r.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,r.memcpy=function(f,k,A,p,b){var w=new Uint8Array(f,k,b),O=new Uint8Array(A,p,b);w.set(O)},r.arrayToNative=function(f,k){return k==this.endianness?f:this.flipArrayEndianness(f)},r.nativeToEndian=function(f,k){return this.endianness==k?f:this.flipArrayEndianness(f)},r.flipArrayEndianness=function(f){for(var k=new Uint8Array(f.buffer,f.byteOffset,f.byteLength),A=0;Ab;p--,b++){var w=k[b];k[b]=k[p],k[p]=w}return f},r.prototype.failurePosition=0,String.fromCharCodeUint8=function(f){for(var k=[],A=0;A>16),this.writeUint8((f&65280)>>8),this.writeUint8(f&255)},r.prototype.adjustUint32=function(f,k){var A=this.position;this.seek(f),this.writeUint32(k),this.seek(A)},r.prototype.mapInt32Array=function(f,k){this._realloc(f*4);var A=new Int32Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*4,A},r.prototype.mapInt16Array=function(f,k){this._realloc(f*2);var A=new Int16Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*2,A},r.prototype.mapInt8Array=function(f){this._realloc(f*1);var k=new Int8Array(this._buffer,this.byteOffset+this.position,f);return this.position+=f*1,k},r.prototype.mapUint32Array=function(f,k){this._realloc(f*4);var A=new Uint32Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*4,A},r.prototype.mapUint16Array=function(f,k){this._realloc(f*2);var A=new Uint16Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*2,A},r.prototype.mapFloat64Array=function(f,k){this._realloc(f*8);var A=new Float64Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*8,A},r.prototype.mapFloat32Array=function(f,k){this._realloc(f*4);var A=new Float32Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*4,A};var s=function(f){this.buffers=[],this.bufferIndex=-1,f&&(this.insertBuffer(f),this.bufferIndex=0)};s.prototype=new r(new ArrayBuffer,0,r.BIG_ENDIAN),s.prototype.initialized=function(){var f;return this.bufferIndex>-1?!0:this.buffers.length>0?(f=this.buffers[0],f.fileStart===0?(this.buffer=f,this.bufferIndex=0,t.debug("MultiBufferStream","Stream ready for parsing"),!0):(t.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)):(t.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(f,k){t.debug("ArrayBuffer","Trying to create a new buffer of size: "+(f.byteLength+k.byteLength));var A=new Uint8Array(f.byteLength+k.byteLength);return A.set(new Uint8Array(f),0),A.set(new Uint8Array(k),f.byteLength),A.buffer},s.prototype.reduceBuffer=function(f,k,A){var p;return p=new Uint8Array(A),p.set(new Uint8Array(f,k,A)),p.buffer.fileStart=f.fileStart+k,p.buffer.usedBytes=0,p.buffer},s.prototype.insertBuffer=function(f){for(var k=!0,A=0;Ap.byteLength){this.buffers.splice(A,1),A--;continue}else t.warn("MultiBufferStream","Buffer (fileStart: "+f.fileStart+" - Length: "+f.byteLength+") already appended, ignoring");else f.fileStart+f.byteLength<=p.fileStart||(f=this.reduceBuffer(f,0,p.fileStart-f.fileStart)),t.debug("MultiBufferStream","Appending new buffer (fileStart: "+f.fileStart+" - Length: "+f.byteLength+")"),this.buffers.splice(A,0,f),A===0&&(this.buffer=f);k=!1;break}else if(f.fileStart0)f=this.reduceBuffer(f,b,w);else{k=!1;break}}}k&&(t.debug("MultiBufferStream","Appending new buffer (fileStart: "+f.fileStart+" - Length: "+f.byteLength+")"),this.buffers.push(f),A===0&&(this.buffer=f))},s.prototype.logBufferLevel=function(f){var k,A,p,b,w=[],O,y="";for(p=0,b=0,k=0;k0&&(y+=O.end-1+"]");var C=f?t.info:t.debug;this.buffers.length===0?C("MultiBufferStream","No more buffer in memory"):C("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+p+"/"+b+" bytes), continuous ranges: "+y)},s.prototype.cleanBuffers=function(){var f,k;for(f=0;f"+this.buffer.byteLength+")"),!0}else return!1;else return!1},s.prototype.findPosition=function(f,k,A){var p,b=null,w=-1;for(f===!0?p=0:p=this.bufferIndex;p=k?(t.debug("MultiBufferStream","Found position in existing buffer #"+w),w):-1):-1},s.prototype.findEndContiguousBuf=function(f){var k,A,p,b=f!==void 0?f:this.bufferIndex;if(A=this.buffers[b],this.buffers.length>b+1)for(k=b+1;k>3;return S===31&&_.data.length>=2&&(S=32+((_.data[0]&7)<<3)+((_.data[1]&224)>>5)),S}else return null},O.DecoderConfigDescriptor=function(y){O.Descriptor.call(this,k,y)},O.DecoderConfigDescriptor.prototype=new O.Descriptor,O.DecoderConfigDescriptor.prototype.parse=function(y){this.oti=y.readUint8(),this.streamType=y.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=y.readUint24(),this.maxBitrate=y.readUint32(),this.avgBitrate=y.readUint32(),this.size-=13,this.parseRemainingDescriptors(y)},O.DecoderSpecificInfo=function(y){O.Descriptor.call(this,A,y)},O.DecoderSpecificInfo.prototype=new O.Descriptor,O.SLConfigDescriptor=function(y){O.Descriptor.call(this,p,y)},O.SLConfigDescriptor.prototype=new O.Descriptor,this};e.MPEG4DescriptorParser=a;var l={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){l.FullBox.prototype=new l.Box,l.ContainerBox.prototype=new l.Box,l.SampleEntry.prototype=new l.Box,l.TrackGroupTypeBox.prototype=new l.FullBox,l.BASIC_BOXES.forEach(function(f){l.createBoxCtor(f)}),l.FULL_BOXES.forEach(function(f){l.createFullBoxCtor(f)}),l.CONTAINER_BOXES.forEach(function(f){l.createContainerBoxCtor(f[0],null,f[1])})},Box:function(f,k,A){this.type=f,this.size=k,this.uuid=A},FullBox:function(f,k,A){l.Box.call(this,f,k,A),this.flags=0,this.version=0},ContainerBox:function(f,k,A){l.Box.call(this,f,k,A),this.boxes=[]},SampleEntry:function(f,k,A,p){l.ContainerBox.call(this,f,k),this.hdr_size=A,this.start=p},SampleGroupEntry:function(f){this.grouping_type=f},TrackGroupTypeBox:function(f,k){l.FullBox.call(this,f,k)},createBoxCtor:function(f,k){l.boxCodes.push(f),l[f+"Box"]=function(A){l.Box.call(this,f,A)},l[f+"Box"].prototype=new l.Box,k&&(l[f+"Box"].prototype.parse=k)},createFullBoxCtor:function(f,k){l[f+"Box"]=function(A){l.FullBox.call(this,f,A)},l[f+"Box"].prototype=new l.FullBox,l[f+"Box"].prototype.parse=function(A){this.parseFullHeader(A),k&&k.call(this,A)}},addSubBoxArrays:function(f){if(f){this.subBoxNames=f;for(var k=f.length,A=0;AA?(t.error("BoxParser","Box of type '"+_+"' has a size "+C+" greater than its container size "+A),{code:l.ERR_NOT_ENOUGH_DATA,type:_,size:C,hdr_size:w,start:b}):C!==0&&b+C>f.getEndPosition()?(f.seek(b),t.info("BoxParser","Not enough data in stream to parse the entire '"+_+"' box"),{code:l.ERR_NOT_ENOUGH_DATA,type:_,size:C,hdr_size:w,start:b}):k?{code:l.OK,type:_,size:C,hdr_size:w,start:b}:(l[_+"Box"]?p=new l[_+"Box"](C):_!=="uuid"?(t.warn("BoxParser","Unknown box type: '"+_+"'"),p=new l.Box(_,C),p.has_unparsed_data=!0):l.UUIDBoxes[y]?p=new l.UUIDBoxes[y](C):(t.warn("BoxParser","Unknown uuid type: '"+y+"'"),p=new l.Box(_,C),p.uuid=y,p.has_unparsed_data=!0),p.hdr_size=w,p.start=b,p.write===l.Box.prototype.write&&p.type!=="mdat"&&(t.info("BoxParser","'"+S+"' box writing not yet implemented, keeping unparsed data in memory for later write"),p.parseDataAndRewind(f)),p.parse(f),O=f.getPosition()-(p.start+p.size),O<0?(t.warn("BoxParser","Parsing of box '"+S+"' did not read the entire indicated box data size (missing "+-O+" bytes), seeking forward"),f.seek(p.start+p.size)):O>0&&(t.error("BoxParser","Parsing of box '"+S+"' read "+O+" more bytes than the indicated box data size, seeking backwards"),p.size!==0&&f.seek(p.start+p.size)),{code:l.OK,box:p,size:p.size})},l.Box.prototype.parse=function(f){this.type!="mdat"?this.data=f.readUint8Array(this.size-this.hdr_size):this.size===0?f.seek(f.getEndPosition()):f.seek(this.start+this.size)},l.Box.prototype.parseDataAndRewind=function(f){this.data=f.readUint8Array(this.size-this.hdr_size),f.position-=this.size-this.hdr_size},l.FullBox.prototype.parseDataAndRewind=function(f){this.parseFullHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,f.position-=this.size-this.hdr_size},l.FullBox.prototype.parseFullHeader=function(f){this.version=f.readUint8(),this.flags=f.readUint24(),this.hdr_size+=4},l.FullBox.prototype.parse=function(f){this.parseFullHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size)},l.ContainerBox.prototype.parse=function(f){for(var k,A;f.getPosition()>10&31,k[1]=this.language>>5&31,k[2]=this.language&31,this.languageString=String.fromCharCode(k[0]+96,k[1]+96,k[2]+96)},l.SAMPLE_ENTRY_TYPE_VISUAL="Visual",l.SAMPLE_ENTRY_TYPE_AUDIO="Audio",l.SAMPLE_ENTRY_TYPE_HINT="Hint",l.SAMPLE_ENTRY_TYPE_METADATA="Metadata",l.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",l.SAMPLE_ENTRY_TYPE_SYSTEM="System",l.SAMPLE_ENTRY_TYPE_TEXT="Text",l.SampleEntry.prototype.parseHeader=function(f){f.readUint8Array(6),this.data_reference_index=f.readUint16(),this.hdr_size+=8},l.SampleEntry.prototype.parse=function(f){this.parseHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size)},l.SampleEntry.prototype.parseDataAndRewind=function(f){this.parseHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,f.position-=this.size-this.hdr_size},l.SampleEntry.prototype.parseFooter=function(f){l.ContainerBox.prototype.parse.call(this,f)},l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_HINT),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_METADATA),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SUBTITLE),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SYSTEM),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_TEXT),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,function(f){var k;this.parseHeader(f),f.readUint16(),f.readUint16(),f.readUint32Array(3),this.width=f.readUint16(),this.height=f.readUint16(),this.horizresolution=f.readUint32(),this.vertresolution=f.readUint32(),f.readUint32(),this.frame_count=f.readUint16(),k=Math.min(31,f.readUint8()),this.compressorname=f.readString(k),k<31&&f.readString(31-k),this.depth=f.readUint16(),f.readUint16(),this.parseFooter(f)}),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,function(f){this.parseHeader(f),f.readUint32Array(2),this.channel_count=f.readUint16(),this.samplesize=f.readUint16(),f.readUint16(),f.readUint16(),this.samplerate=f.readUint32()/65536,this.parseFooter(f)}),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"fLaC"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_TEXT,"enct"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_METADATA,"encm"),l.createBoxCtor("a1lx",function(f){var k=f.readUint8()&1,A=((k&1)+1)*16;this.layer_size=[];for(var p=0;p<3;p++)A==16?this.layer_size[p]=f.readUint16():this.layer_size[p]=f.readUint32()}),l.createBoxCtor("a1op",function(f){this.op_index=f.readUint8()}),l.createFullBoxCtor("auxC",function(f){this.aux_type=f.readCString();var k=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=f.readUint8Array(k)}),l.createBoxCtor("av1C",function(f){var k=f.readUint8();if(k>>7&!1){t.error("av1C marker problem");return}if(this.version=k&127,this.version!==1){t.error("av1C version "+this.version+" not supported");return}if(k=f.readUint8(),this.seq_profile=k>>5&7,this.seq_level_idx_0=k&31,k=f.readUint8(),this.seq_tier_0=k>>7&1,this.high_bitdepth=k>>6&1,this.twelve_bit=k>>5&1,this.monochrome=k>>4&1,this.chroma_subsampling_x=k>>3&1,this.chroma_subsampling_y=k>>2&1,this.chroma_sample_position=k&3,k=f.readUint8(),this.reserved_1=k>>5&7,this.reserved_1!==0){t.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=k>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=k&15;else if(this.reserved_2=k&15,this.reserved_2!==0){t.error("av1C reserved_2 parsing problem");return}var A=this.size-this.hdr_size-4;this.configOBUs=f.readUint8Array(A)}),l.createBoxCtor("avcC",function(f){var k,A;for(this.configurationVersion=f.readUint8(),this.AVCProfileIndication=f.readUint8(),this.profile_compatibility=f.readUint8(),this.AVCLevelIndication=f.readUint8(),this.lengthSizeMinusOne=f.readUint8()&3,this.nb_SPS_nalus=f.readUint8()&31,A=this.size-this.hdr_size-6,this.SPS=[],k=0;k0&&(this.ext=f.readUint8Array(A))}),l.createBoxCtor("btrt",function(f){this.bufferSizeDB=f.readUint32(),this.maxBitrate=f.readUint32(),this.avgBitrate=f.readUint32()}),l.createFullBoxCtor("ccst",function(f){var k=f.readUint8();this.all_ref_pics_intra=(k&128)==128,this.intra_pred_used=(k&64)==64,this.max_ref_per_pic=(k&63)>>2,f.readUint24()}),l.createBoxCtor("cdef",function(f){var k;for(this.channel_count=f.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],k=0;k=32768&&this.component_type_urls.push(f.readCString())}}),l.createFullBoxCtor("co64",function(f){var k,A;if(k=f.readUint32(),this.chunk_offsets=[],this.version===0)for(A=0;A>7}else this.colour_type==="rICC"?this.ICC_profile=f.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=f.readUint8Array(this.size-4))}),l.createFullBoxCtor("cprt",function(f){this.parseLanguage(f),this.notice=f.readCString()}),l.createFullBoxCtor("cslg",function(f){this.version===0&&(this.compositionToDTSShift=f.readInt32(),this.leastDecodeToDisplayDelta=f.readInt32(),this.greatestDecodeToDisplayDelta=f.readInt32(),this.compositionStartTime=f.readInt32(),this.compositionEndTime=f.readInt32())}),l.createFullBoxCtor("ctts",function(f){var k,A;if(k=f.readUint32(),this.sample_counts=[],this.sample_offsets=[],this.version===0)for(A=0;A>6,this.bsid=k>>1&31,this.bsmod=(k&1)<<2|A>>6&3,this.acmod=A>>3&7,this.lfeon=A>>2&1,this.bit_rate_code=A&3|p>>5&7}),l.createBoxCtor("dec3",function(f){var k=f.readUint16();this.data_rate=k>>3,this.num_ind_sub=k&7,this.ind_subs=[];for(var A=0;A>6,p.bsid=b>>1&31,p.bsmod=(b&1)<<4|w>>4&15,p.acmod=w>>1&7,p.lfeon=w&1,p.num_dep_sub=O>>1&15,p.num_dep_sub>0&&(p.chan_loc=(O&1)<<8|f.readUint8())}}),l.createFullBoxCtor("dfLa",function(f){var k=127,A=128,p=[],b=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];do{var w=f.readUint8(),O=Math.min(w&k,b.length-1);if(O?f.readUint8Array(f.readUint24()):(f.readUint8Array(13),this.samplerate=f.readUint32()>>12,f.readUint8Array(20)),p.push(b[O]),w&A)break}while(!0);this.numMetadataBlocks=p.length+" ("+p.join(", ")+")"}),l.createBoxCtor("dimm",function(f){this.bytessent=f.readUint64()}),l.createBoxCtor("dmax",function(f){this.time=f.readUint32()}),l.createBoxCtor("dmed",function(f){this.bytessent=f.readUint64()}),l.createBoxCtor("dOps",function(f){if(this.Version=f.readUint8(),this.OutputChannelCount=f.readUint8(),this.PreSkip=f.readUint16(),this.InputSampleRate=f.readUint32(),this.OutputGain=f.readInt16(),this.ChannelMappingFamily=f.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=f.readUint8(),this.CoupledCount=f.readUint8(),this.ChannelMapping=[];for(var k=0;k=4;)this.compatible_brands[A]=f.readString(4),k-=4,A++}),l.createFullBoxCtor("hdlr",function(f){this.version===0&&(f.readUint32(),this.handler=f.readString(4),f.readUint32Array(3),this.name=f.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]==="\0"&&(this.name=this.name.slice(0,-1)))}),l.createBoxCtor("hvcC",function(f){var k,A,p,b;this.configurationVersion=f.readUint8(),b=f.readUint8(),this.general_profile_space=b>>6,this.general_tier_flag=(b&32)>>5,this.general_profile_idc=b&31,this.general_profile_compatibility=f.readUint32(),this.general_constraint_indicator=f.readUint8Array(6),this.general_level_idc=f.readUint8(),this.min_spatial_segmentation_idc=f.readUint16()&4095,this.parallelismType=f.readUint8()&3,this.chroma_format_idc=f.readUint8()&3,this.bit_depth_luma_minus8=f.readUint8()&7,this.bit_depth_chroma_minus8=f.readUint8()&7,this.avgFrameRate=f.readUint16(),b=f.readUint8(),this.constantFrameRate=b>>6,this.numTemporalLayers=(b&13)>>3,this.temporalIdNested=(b&4)>>2,this.lengthSizeMinusOne=b&3,this.nalu_arrays=[];var w=f.readUint8();for(k=0;k>7,O.nalu_type=b&63;var y=f.readUint16();for(A=0;A>4&15,this.length_size=k&15,k=f.readUint8(),this.base_offset_size=k>>4&15,this.version===1||this.version===2?this.index_size=k&15:this.index_size=0,this.items=[];var A=0;if(this.version<2)A=f.readUint16();else if(this.version===2)A=f.readUint32();else throw"version of iloc box not supported";for(var p=0;p>7,this.axis=k&1}),l.createFullBoxCtor("infe",function(f){if((this.version===0||this.version===1)&&(this.item_ID=f.readUint16(),this.item_protection_index=f.readUint16(),this.item_name=f.readCString(),this.content_type=f.readCString(),this.content_encoding=f.readCString()),this.version===1){this.extension_type=f.readString(4),t.warn("BoxParser","Cannot parse extension type"),f.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=f.readUint16():this.version===3&&(this.item_ID=f.readUint32()),this.item_protection_index=f.readUint16(),this.item_type=f.readString(4),this.item_name=f.readCString(),this.item_type==="mime"?(this.content_type=f.readCString(),this.content_encoding=f.readCString()):this.item_type==="uri "&&(this.item_uri_type=f.readCString()))}),l.createFullBoxCtor("ipma",function(f){var k,A;for(entry_count=f.readUint32(),this.associations=[],k=0;k>7===1,this.flags&1?O.property_index=(w&127)<<8|f.readUint8():O.property_index=w&127}}}),l.createFullBoxCtor("iref",function(f){var k,A;for(this.references=[];f.getPosition()>7,p.assignment_type=b&127,p.assignment_type){case 0:p.grouping_type=f.readString(4);break;case 1:p.grouping_type=f.readString(4),p.grouping_type_parameter=f.readUint32();break;case 2:break;case 3:break;case 4:p.sub_track_id=f.readUint32();break;default:t.warn("BoxParser","Unknown leva assignement type")}}}),l.createBoxCtor("lhvC",function(f){var k,A,p;this.configurationVersion=f.readUint8(),this.min_spatial_segmentation_idc=f.readUint16()&4095,this.parallelismType=f.readUint8()&3,p=f.readUint8(),this.numTemporalLayers=(p&13)>>3,this.temporalIdNested=(p&4)>>2,this.lengthSizeMinusOne=p&3,this.nalu_arrays=[];var b=f.readUint8();for(k=0;k>7,w.nalu_type=p&63;var O=f.readUint16();for(A=0;A>8,f.readUint16(),f.readUint32Array(2),this.matrix=f.readUint32Array(9),f.readUint32Array(6),this.next_track_id=f.readUint32()}),l.createBoxCtor("npck",function(f){this.packetssent=f.readUint32()}),l.createBoxCtor("nump",function(f){this.packetssent=f.readUint64()}),l.createFullBoxCtor("padb",function(f){var k=f.readUint32();this.padbits=[];for(var A=0;A0){var k=f.readUint32();this.kid=[];for(var A=0;A0&&(this.data=f.readUint8Array(p))}),l.createFullBoxCtor("clef",function(f){this.width=f.readUint32(),this.height=f.readUint32()}),l.createFullBoxCtor("enof",function(f){this.width=f.readUint32(),this.height=f.readUint32()}),l.createFullBoxCtor("prof",function(f){this.width=f.readUint32(),this.height=f.readUint32()}),l.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),l.createBoxCtor("rtp ",function(f){this.descriptionformat=f.readString(4),this.sdptext=f.readString(this.size-this.hdr_size-4)}),l.createFullBoxCtor("saio",function(f){this.flags&1&&(this.aux_info_type=f.readUint32(),this.aux_info_type_parameter=f.readUint32());var k=f.readUint32();this.offset=[];for(var A=0;A>7,this.avgRateFlag=k>>6&1,this.durationFlag&&(this.duration=f.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=f.readUint8(),this.avgBitRate=f.readUint16(),this.avgFrameRate=f.readUint16()),this.dependency=[];for(var A=f.readUint8(),p=0;p>7,this.num_leading_samples=k&127}),l.createSampleGroupCtor("rash",function(f){if(this.operation_point_count=f.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)t.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=f.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=f.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var k=0;k>4,this.skip_byte_block=k&15,this.isProtected=f.readUint8(),this.Per_Sample_IV_Size=f.readUint8(),this.KID=l.parseHex16(f),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=f.readUint8(),this.constant_IV=f.readUint8Array(this.constant_IV_size))}),l.createSampleGroupCtor("stsa",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createSampleGroupCtor("sync",function(f){var k=f.readUint8();this.NAL_unit_type=k&63}),l.createSampleGroupCtor("tele",function(f){var k=f.readUint8();this.level_independently_decodable=k>>7}),l.createSampleGroupCtor("tsas",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createSampleGroupCtor("tscl",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createSampleGroupCtor("vipr",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createFullBoxCtor("sbgp",function(f){this.grouping_type=f.readString(4),this.version===1?this.grouping_type_parameter=f.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var k=f.readUint32(),A=0;A>6,this.sample_depends_on[p]=k>>4&3,this.sample_is_depended_on[p]=k>>2&3,this.sample_has_redundancy[p]=k&3}),l.createFullBoxCtor("senc"),l.createFullBoxCtor("sgpd",function(f){this.grouping_type=f.readString(4),t.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=f.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=f.readUint32()),this.entries=[];for(var k=f.readUint32(),A=0;A>31&1,p.referenced_size=b&2147483647,p.subsegment_duration=f.readUint32(),b=f.readUint32(),p.starts_with_SAP=b>>31&1,p.SAP_type=b>>28&7,p.SAP_delta_time=b&268435455}}),l.SingleItemTypeReferenceBox=function(f,k,A,p){l.Box.call(this,f,k),this.hdr_size=A,this.start=p},l.SingleItemTypeReferenceBox.prototype=new l.Box,l.SingleItemTypeReferenceBox.prototype.parse=function(f){this.from_item_ID=f.readUint16();var k=f.readUint16();this.references=[];for(var A=0;A>4&15,this.sample_sizes[k+1]=p&15}else if(this.field_size===8)for(k=0;k0)for(A=0;A>4&15,this.default_skip_byte_block=k&15}this.default_isProtected=f.readUint8(),this.default_Per_Sample_IV_Size=f.readUint8(),this.default_KID=l.parseHex16(f),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=f.readUint8(),this.default_constant_IV=f.readUint8Array(this.default_constant_IV_size))}),l.createFullBoxCtor("tfdt",function(f){this.version==1?this.baseMediaDecodeTime=f.readUint64():this.baseMediaDecodeTime=f.readUint32()}),l.createFullBoxCtor("tfhd",function(f){var k=0;this.track_id=f.readUint32(),this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=f.readUint64(),k+=8):this.base_data_offset=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=f.readUint32(),k+=4):this.default_sample_description_index=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=f.readUint32(),k+=4):this.default_sample_duration=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=f.readUint32(),k+=4):this.default_sample_size=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=f.readUint32(),k+=4):this.default_sample_flags=0}),l.createFullBoxCtor("tfra",function(f){this.track_ID=f.readUint32(),f.readUint24();var k=f.readUint8();this.length_size_of_traf_num=k>>4&3,this.length_size_of_trun_num=k>>2&3,this.length_size_of_sample_num=k&3,this.entries=[];for(var A=f.readUint32(),p=0;p>8,f.readUint16(),this.matrix=f.readInt32Array(9),this.width=f.readUint32(),this.height=f.readUint32()}),l.createBoxCtor("tmax",function(f){this.time=f.readUint32()}),l.createBoxCtor("tmin",function(f){this.time=f.readUint32()}),l.createBoxCtor("totl",function(f){this.bytessent=f.readUint32()}),l.createBoxCtor("tpay",function(f){this.bytessent=f.readUint32()}),l.createBoxCtor("tpyl",function(f){this.bytessent=f.readUint64()}),l.TrackGroupTypeBox.prototype.parse=function(f){this.parseFullHeader(f),this.track_group_id=f.readUint32()},l.createTrackGroupCtor("msrc"),l.TrackReferenceTypeBox=function(f,k,A,p){l.Box.call(this,f,k),this.hdr_size=A,this.start=p},l.TrackReferenceTypeBox.prototype=new l.Box,l.TrackReferenceTypeBox.prototype.parse=function(f){this.track_ids=f.readUint32Array((this.size-this.hdr_size)/4)},l.trefBox.prototype.parse=function(f){for(var k,A;f.getPosition()k&&this.flags&l.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=f.readInt32(),k+=4):this.data_offset=0,this.size-this.hdr_size>k&&this.flags&l.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=f.readUint32(),k+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>k)for(var A=0;A>7&1,this.block_pad_lsb=A>>6&1,this.block_little_endian=A>>5&1,this.block_reversed=A>>4&1,this.pad_unknown=A>>3&1,this.pixel_size=f.readUint32(),this.row_align_size=f.readUint32(),this.tile_align_size=f.readUint32(),this.num_tile_cols_minus_one=f.readUint32(),this.num_tile_rows_minus_one=f.readUint32()}}),l.createFullBoxCtor("url ",function(f){this.flags!==1&&(this.location=f.readCString())}),l.createFullBoxCtor("urn ",function(f){this.name=f.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=f.readCString())}),l.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,function(f){this.LiveServerManifest=f.readString(this.size-this.hdr_size).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}),l.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(f){this.system_id=l.parseHex16(f);var k=f.readUint32();k>0&&(this.data=f.readUint8Array(k))}),l.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),l.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,function(f){this.default_AlgorithmID=f.readUint24(),this.default_IV_size=f.readUint8(),this.default_KID=l.parseHex16(f)}),l.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,function(f){this.fragment_count=f.readUint8(),this.entries=[];for(var k=0;k>4,this.chromaSubsampling=k>>1&7,this.videoFullRangeFlag=k&1,this.colourPrimaries=f.readUint8(),this.transferCharacteristics=f.readUint8(),this.matrixCoefficients=f.readUint8(),this.codecIntializationDataSize=f.readUint16(),this.codecIntializationData=f.readUint8Array(this.codecIntializationDataSize)):(this.profile=f.readUint8(),this.level=f.readUint8(),k=f.readUint8(),this.bitDepth=k>>4&15,this.colorSpace=k&15,k=f.readUint8(),this.chromaSubsampling=k>>4&15,this.transferFunction=k>>1&7,this.videoFullRangeFlag=k&1,this.codecIntializationDataSize=f.readUint16(),this.codecIntializationData=f.readUint8Array(this.codecIntializationDataSize))}),l.createBoxCtor("vttC",function(f){this.text=f.readString(this.size-this.hdr_size)}),l.createFullBoxCtor("vvcC",function(f){var k,A,p={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(T){this.held_bits=T.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(T){this.held_bits=T.readUint16(),this.num_held_bits=16},extract_bits:function(T){var D=this.held_bits>>this.num_held_bits-T&(1<1){for(p.stream_read_1_bytes(f),this.ptl_sublayer_present_mask=0,A=this.num_sublayers-2;A>=0;--A){var O=p.extract_bits(1);this.ptl_sublayer_present_mask|=O<1;++A)p.extract_bits(1);for(this.sublayer_level_idc=[],A=this.num_sublayers-2;A>=0;--A)this.ptl_sublayer_present_mask&1<"u"||k===null?k=2:k;A.length>=1;k+=l.decimalToHex(p,0),k+=".",this.hvcC.general_tier_flag===0?k+="L":k+="H",k+=this.hvcC.general_level_idc;var b=!1,w="";for(f=5;f>=0;f--)(this.hvcC.general_constraint_indicator[f]||b)&&(w="."+l.decimalToHex(this.hvcC.general_constraint_indicator[f],0)+w,b=!0);k+=w}return k},l.vvc1SampleEntry.prototype.getCodec=l.vvi1SampleEntry.prototype.getCodec=function(){var f,k=l.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){k+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?k+=".H":k+=".L",k+=this.vvcC.general_level_idc;var A="";if(this.vvcC.general_constraint_info){var p=[],b=0;b|=this.vvcC.ptl_frame_only_constraint<<7,b|=this.vvcC.ptl_multilayer_enabled<<6;var w;for(f=0;f>2&63,p.push(b),b&&(w=f),b=this.vvcC.general_constraint_info[f]>>2&3;if(w===void 0)A=".CA";else{A=".C";var O="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",y=0,C=0;for(f=0;f<=w;++f)for(y=y<<8|p[f],C+=8;C>=5;){var _=y>>C-5&31;A+=O[_],C-=5,y&=(1<o&&(this.size+=8),this.type==="uuid"&&(this.size+=16),t.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+f.getPosition()+(k||"")),this.size>o?f.writeUint32(1):(this.sizePosition=f.getPosition(),f.writeUint32(this.size)),f.writeString(this.type,null,4),this.type==="uuid"&&f.writeUint8Array(this.uuid),this.size>o&&f.writeUint64(this.size)},l.FullBox.prototype.writeHeader=function(f){this.size+=4,l.Box.prototype.writeHeader.call(this,f," v="+this.version+" f="+this.flags),f.writeUint8(this.version),f.writeUint24(this.flags)},l.Box.prototype.write=function(f){this.type==="mdat"?this.data&&(this.size=this.data.length,this.writeHeader(f),f.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(f),this.data&&f.writeUint8Array(this.data))},l.ContainerBox.prototype.write=function(f){this.size=0,this.writeHeader(f);for(var k=0;k=2&&f.writeUint32(this.default_sample_description_index),f.writeUint32(this.entries.length),k=0;k0)for(k=0;k+1k?1:0,this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(f),this.version===1?f.writeUint64(this.baseMediaDecodeTime):f.writeUint32(this.baseMediaDecodeTime)},l.tfhdBox.prototype.write=function(f){this.version=0,this.size=4,this.flags&l.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&l.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&l.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&l.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&l.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(f),f.writeUint32(this.track_id),this.flags&l.TFHD_FLAG_BASE_DATA_OFFSET&&f.writeUint64(this.base_data_offset),this.flags&l.TFHD_FLAG_SAMPLE_DESC&&f.writeUint32(this.default_sample_description_index),this.flags&l.TFHD_FLAG_SAMPLE_DUR&&f.writeUint32(this.default_sample_duration),this.flags&l.TFHD_FLAG_SAMPLE_SIZE&&f.writeUint32(this.default_sample_size),this.flags&l.TFHD_FLAG_SAMPLE_FLAGS&&f.writeUint32(this.default_sample_flags)},l.tkhdBox.prototype.write=function(f){this.version=0,this.size=4*18+2*4,this.writeHeader(f),f.writeUint32(this.creation_time),f.writeUint32(this.modification_time),f.writeUint32(this.track_id),f.writeUint32(0),f.writeUint32(this.duration),f.writeUint32(0),f.writeUint32(0),f.writeInt16(this.layer),f.writeInt16(this.alternate_group),f.writeInt16(this.volume<<8),f.writeUint16(0),f.writeInt32Array(this.matrix),f.writeUint32(this.width),f.writeUint32(this.height)},l.trexBox.prototype.write=function(f){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(f),f.writeUint32(this.track_id),f.writeUint32(this.default_sample_description_index),f.writeUint32(this.default_sample_duration),f.writeUint32(this.default_sample_size),f.writeUint32(this.default_sample_flags)},l.trunBox.prototype.write=function(f){this.version=0,this.size=4,this.flags&l.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&l.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&l.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&l.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&l.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&l.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(f),f.writeUint32(this.sample_count),this.flags&l.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=f.getPosition(),f.writeInt32(this.data_offset)),this.flags&l.TRUN_FLAGS_FIRST_FLAG&&f.writeUint32(this.first_sample_flags);for(var k=0;k0&&f.writeUint8Array(this.codecIntializationData)},l.cttsBox.prototype.unpack=function(f){var k,A,p;for(p=0,k=0;k-1)){if(f[A]instanceof l.Box||k[A]instanceof l.Box||typeof f[A]>"u"||typeof k[A]>"u"||typeof f[A]=="function"||typeof k[A]=="function"||f.subBoxNames&&f.subBoxNames.indexOf(A.slice(0,4))>-1||k.subBoxNames&&k.subBoxNames.indexOf(A.slice(0,4))>-1||A==="data"||A==="start"||A==="size"||A==="creation_time"||A==="modification_time"||l.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(A)>-1)continue;if(f[A]!==k[A])return!1}return!0},l.boxEqual=function(f,k){if(!l.boxEqualFields(f,k))return!1;for(var A=0;A1)for(A=1;A-1&&this.fragmentedTracks.splice(k,1)},m.prototype.setExtractionOptions=function(f,k,A){var p=this.getTrackById(f);if(p){var b={};this.extractedTracks.push(b),b.id=f,b.user=k,b.trak=p,p.nextSample=0,b.nb_samples=1e3,b.samples=[],A&&A.nbSamples&&(b.nb_samples=A.nbSamples)}},m.prototype.unsetExtractionOptions=function(f){for(var k=-1,A=0;A-1&&this.extractedTracks.splice(k,1)},m.prototype.parse=function(){var f,k,A=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),f=l.parseOneBox(this.stream,A),f.code===l.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(f))continue;return}else return;else{var p;switch(k=f.box,p=k.type!=="uuid"?k.type:k.uuid,this.boxes.push(k),p){case"mdat":this.mdats.push(k);break;case"moof":this.moofs.push(k);break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[p]!==void 0&&t.warn("ISOFile","Duplicate Box of type: "+p+", overriding previous occurrence"),this[p]=k;break}this.updateUsedBytes&&this.updateUsedBytes(k,f)}},m.prototype.checkBuffer=function(f){if(f==null)throw"Buffer must be defined and non empty";if(f.fileStart===void 0)throw"Buffer must have a fileStart property";return f.byteLength===0?(t.warn("ISOFile","Ignoring empty buffer (fileStart: "+f.fileStart+")"),this.stream.logBufferLevel(),!1):(t.info("ISOFile","Processing buffer (fileStart: "+f.fileStart+")"),f.usedBytes=0,this.stream.insertBuffer(f),this.stream.logBufferLevel(),this.stream.initialized()?!0:(t.warn("ISOFile","Not ready to start parsing"),!1))},m.prototype.appendBuffer=function(f,k){var A;if(this.checkBuffer(f))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(k),this.nextSeekPosition?(A=this.nextSeekPosition,this.nextSeekPosition=void 0):A=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(A=this.stream.getEndFilePositionAfter(A))):this.nextParsePosition?A=this.nextParsePosition:A=0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(t.info("ISOFile","Done processing buffer (fileStart: "+f.fileStart+") - next buffer to fetch should have a fileStart position of "+A),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),t.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),A},m.prototype.getInfo=function(){var f,k,A={},p,b,w,O,y=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(A.hasMoov=!0,A.duration=this.moov.mvhd.duration,A.timescale=this.moov.mvhd.timescale,A.isFragmented=this.moov.mvex!=null,A.isFragmented&&this.moov.mvex.mehd&&(A.fragment_duration=this.moov.mvex.mehd.fragment_duration),A.isProgressive=this.isProgressive,A.hasIOD=this.moov.iods!=null,A.brands=[],A.brands.push(this.ftyp.major_brand),A.brands=A.brands.concat(this.ftyp.compatible_brands),A.created=new Date(y+this.moov.mvhd.creation_time*1e3),A.modified=new Date(y+this.moov.mvhd.modification_time*1e3),A.tracks=[],A.audioTracks=[],A.videoTracks=[],A.subtitleTracks=[],A.metadataTracks=[],A.hintTracks=[],A.otherTracks=[],f=0;f0?A.mime+='video/mp4; codecs="':A.audioTracks&&A.audioTracks.length>0?A.mime+='audio/mp4; codecs="':A.mime+='application/mp4; codecs="',f=0;f=A.samples.length)&&(t.info("ISOFile","Sending fragmented data on track #"+p.id+" for samples ["+Math.max(0,A.nextSample-p.nb_samples)+","+(A.nextSample-1)+"]"),t.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(p.id,p.user,p.segmentStream.buffer,A.nextSample,f||A.nextSample>=A.samples.length),p.segmentStream=null,p!==this.fragmentedTracks[k]))break}}if(this.onSamples!==null)for(k=0;k=A.samples.length)&&(t.debug("ISOFile","Sending samples on track #"+w.id+" for sample "+A.nextSample),this.onSamples&&this.onSamples(w.id,w.user,w.samples),w.samples=[],w!==this.extractedTracks[k]))break}}}},m.prototype.getBox=function(f){var k=this.getBoxes(f,!0);return k.length?k[0]:null},m.prototype.getBoxes=function(f,k){var A=[];return m._sweep.call(this,f,A,k),A},m._sweep=function(f,k,A){this.type&&this.type==f&&k.push(this);for(var p in this.boxes){if(k.length&&A)return;m._sweep.call(this.boxes[p],f,k,A)}},m.prototype.getTrackSamplesInfo=function(f){var k=this.getTrackById(f);if(k)return k.samples},m.prototype.getTrackSample=function(f,k){var A=this.getTrackById(f),p=this.getSample(A,k);return p},m.prototype.releaseUsedSamples=function(f,k){var A=0,p=this.getTrackById(f);p.lastValidSample||(p.lastValidSample=0);for(var b=p.lastValidSample;bf*b.timescale){y=p-1;break}k&&b.is_sync&&(O=p)}for(k&&(y=O),f=A.samples[y].cts,A.nextSample=y;A.samples[y].alreadyRead===A.samples[y].size&&A.samples[y+1];)y++;return w=A.samples[y].offset+A.samples[y].alreadyRead,t.info("ISOFile","Seeking to "+(k?"RAP":"")+" sample #"+A.nextSample+" on track "+A.tkhd.track_id+", time "+t.getDurationString(f,C)+" and offset: "+w),{offset:w,time:f/C}},m.prototype.getTrackDuration=function(f){var k;return f.samples?(k=f.samples[f.samples.length-1],(k.cts+k.duration)/k.timescale):1/0},m.prototype.seek=function(f,k){var A=this.moov,p,b,w,O={offset:1/0,time:1/0};if(this.moov){for(w=0;wthis.getTrackDuration(p))&&(b=this.seekTrack(f,k,p),b.offset-1){O=y;break}switch(O){case"Visual":if(b.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),w.set("width",k.width).set("height",k.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",k.type+" Compressor").set("depth",24),k.avcDecoderConfigRecord){var S=new l.avcCBox;S.parse(new n(k.avcDecoderConfigRecord)),w.addBox(S)}else if(k.hevcDecoderConfigRecord){var L=new l.hvcCBox;L.parse(new n(k.hevcDecoderConfigRecord)),w.addBox(L)}else if(k.vpcDecoderConfigRecord){var E=new l.vpcCBox;E.parse(new n(k.vpcDecoderConfigRecord)),w.addBox(E)}break;case"Audio":b.add("smhd").set("balance",k.balance||0),w.set("channel_count",k.channel_count||2).set("samplesize",k.samplesize||16).set("samplerate",k.samplerate||65536);break;case"Hint":b.add("hmhd");break;case"Subtitle":switch(b.add("sthd"),k.type){case"stpp":w.set("namespace",k.namespace||"nonamespace").set("schema_location",k.schema_location||"").set("auxiliary_mime_types",k.auxiliary_mime_types||"");break}break;case"Metadata":b.add("nmhd");break;case"System":b.add("nmhd");break;default:b.add("nmhd");break}k.description&&w.addBox(k.description),k.description_boxes&&k.description_boxes.forEach(function(D){w.addBox(D)}),b.add("dinf").add("dref").addEntry(new l["url Box"]().set("flags",1));var T=b.add("stbl");return T.add("stsd").addEntry(w),T.add("stts").set("sample_counts",[]).set("sample_deltas",[]),T.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),T.add("stco").set("chunk_offsets",[]),T.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",k.id).set("default_sample_description_index",k.default_sample_description_index||1).set("default_sample_duration",k.default_sample_duration||0).set("default_sample_size",k.default_sample_size||0).set("default_sample_flags",k.default_sample_flags||0),this.buildTrakSampleLists(A),k.id}},l.Box.prototype.computeSize=function(f){var k=f||new r;k.endianness=r.BIG_ENDIAN,this.write(k)},m.prototype.addSample=function(f,k,A){var p=A||{},b={},w=this.getTrackById(f);if(w!==null){b.number=w.samples.length,b.track_id=w.tkhd.track_id,b.timescale=w.mdia.mdhd.timescale,b.description_index=p.sample_description_index?p.sample_description_index-1:0,b.description=w.mdia.minf.stbl.stsd.entries[b.description_index],b.data=k,b.size=k.byteLength,b.alreadyRead=b.size,b.duration=p.duration||1,b.cts=p.cts||0,b.dts=p.dts||0,b.is_sync=p.is_sync||!1,b.is_leading=p.is_leading||0,b.depends_on=p.depends_on||0,b.is_depended_on=p.is_depended_on||0,b.has_redundancy=p.has_redundancy||0,b.degradation_priority=p.degradation_priority||0,b.offset=0,b.subsamples=p.subsamples,w.samples.push(b),w.samples_size+=b.size,w.samples_duration+=b.duration,w.first_dts===void 0&&(w.first_dts=p.dts),this.processSamples();var O=this.createSingleSampleMoof(b);return this.addBox(O),O.computeSize(),O.trafs[0].truns[0].data_offset=O.size+8,this.add("mdat").data=new Uint8Array(k),b}},m.prototype.createSingleSampleMoof=function(f){var k=0;f.is_sync?k=1<<25:k=65536;var A=new l.moofBox;A.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var p=A.add("traf"),b=this.getTrackById(f.track_id);return p.add("tfhd").set("track_id",f.track_id).set("flags",l.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),p.add("tfdt").set("baseMediaDecodeTime",f.dts-(b.first_dts||0)),p.add("trun").set("flags",l.TRUN_FLAGS_DATA_OFFSET|l.TRUN_FLAGS_DURATION|l.TRUN_FLAGS_SIZE|l.TRUN_FLAGS_FLAGS|l.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[f.duration]).set("sample_size",[f.size]).set("sample_flags",[k]).set("sample_composition_time_offset",[f.cts-f.dts]),A},m.prototype.lastMoofIndex=0,m.prototype.samplesDataSize=0,m.prototype.resetTables=function(){var f,k,A,p,b,w,O,y;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,f=0;f=2&&(C=b[O].grouping_type+"/0",y=new _(b[O].grouping_type,0),y.is_fragment=!0,k.sample_groups_info[C]||(k.sample_groups_info[C]=y))}else for(O=0;O=2&&(C=p[O].grouping_type+"/0",y=new _(p[O].grouping_type,0),f.sample_groups_info[C]||(f.sample_groups_info[C]=y))},m.setSampleGroupProperties=function(f,k,A,p){var b,w;k.sample_groups=[];for(b in p)if(k.sample_groups[b]={},k.sample_groups[b].grouping_type=p[b].grouping_type,k.sample_groups[b].grouping_type_parameter=p[b].grouping_type_parameter,A>=p[b].last_sample_in_run&&(p[b].last_sample_in_run<0&&(p[b].last_sample_in_run=0),p[b].entry_index++,p[b].entry_index<=p[b].sbgp.entries.length-1&&(p[b].last_sample_in_run+=p[b].sbgp.entries[p[b].entry_index].sample_count)),p[b].entry_index<=p[b].sbgp.entries.length-1?k.sample_groups[b].group_description_index=p[b].sbgp.entries[p[b].entry_index].group_description_index:k.sample_groups[b].group_description_index=-1,k.sample_groups[b].group_description_index!==0){var O;p[b].fragment_description?O=p[b].fragment_description:O=p[b].description,k.sample_groups[b].group_description_index>0?(k.sample_groups[b].group_description_index>65535?w=(k.sample_groups[b].group_description_index>>16)-1:w=k.sample_groups[b].group_description_index-1,O&&w>=0&&(k.sample_groups[b].description=O.entries[w])):O&&O.version>=2&&O.default_group_description_index>0&&(k.sample_groups[b].description=O.entries[O.default_group_description_index-1])}},m.process_sdtp=function(f,k,A){k&&(f?(k.is_leading=f.is_leading[A],k.depends_on=f.sample_depends_on[A],k.is_depended_on=f.sample_is_depended_on[A],k.has_redundancy=f.sample_has_redundancy[A]):(k.is_leading=0,k.depends_on=0,k.is_depended_on=0,k.has_redundancy=0))},m.prototype.buildSampleLists=function(){var f,k;for(f=0;f"u")){for(k=0;kB&&(R++,B<0&&(B=0),B+=w.sample_counts[R]),k>0?(f.samples[k-1].duration=w.sample_deltas[R],f.samples_duration+=f.samples[k-1].duration,$.dts=f.samples[k-1].dts+f.samples[k-1].duration):$.dts=0,O?(k>=I&&(F++,I<0&&(I=0),I+=O.sample_counts[F]),$.cts=f.samples[k].dts+O.sample_offsets[F]):$.cts=$.dts,y?(k==y.sample_numbers[j]-1?($.is_sync=!0,j++):($.is_sync=!1,$.degradation_priority=0),_&&_.entries[W].sample_delta+H==k+1&&($.subsamples=_.entries[W].subsamples,H+=_.entries[W].sample_delta,W++)):$.is_sync=!0,m.process_sdtp(f.mdia.minf.stbl.sdtp,$,$.number),E?$.degradation_priority=E.priority[k]:$.degradation_priority=0,_&&_.entries[W].sample_delta+H==k&&($.subsamples=_.entries[W].subsamples,H+=_.entries[W].sample_delta),(S.length>0||L.length>0)&&m.setSampleGroupProperties(f,$,k,f.sample_groups_info)}k>0&&(f.samples[k-1].duration=Math.max(f.mdia.mdhd.duration-f.samples[k-1].dts,0),f.samples_duration+=f.samples[k-1].duration)}},m.prototype.updateSampleLists=function(){var f,k,A,p,b,w,O,y,C,_,S,L,E,T,D;if(this.moov!==void 0){for(;this.lastMoofIndex0&&m.initSampleGroups(L,S,S.sbgps,L.mdia.minf.stbl.sgpds,S.sgpds),k=0;k0?T.dts=L.samples[L.samples.length-2].dts+L.samples[L.samples.length-2].duration:(S.tfdt?T.dts=S.tfdt.baseMediaDecodeTime:T.dts=0,L.first_traf_merged=!0),T.cts=T.dts,P.flags&l.TRUN_FLAGS_CTS_OFFSET&&(T.cts=T.dts+P.sample_composition_time_offset[A]),D=O,P.flags&l.TRUN_FLAGS_FLAGS?D=P.sample_flags[A]:A===0&&P.flags&l.TRUN_FLAGS_FIRST_FLAG&&(D=P.first_sample_flags),T.is_sync=!(D>>16&1),T.is_leading=D>>26&3,T.depends_on=D>>24&3,T.is_depended_on=D>>22&3,T.has_redundancy=D>>20&3,T.degradation_priority=D&65535;var Q=!!(S.tfhd.flags&l.TFHD_FLAG_BASE_DATA_OFFSET),M=!!(S.tfhd.flags&l.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),B=!!(P.flags&l.TRUN_FLAGS_DATA_OFFSET),R=0;Q?R=S.tfhd.base_data_offset:M||k===0?R=_.start:R=y,k===0&&A===0?B?T.offset=R+P.data_offset:T.offset=R:T.offset=y,y=T.offset+T.size,(S.sbgps.length>0||S.sgpds.length>0||L.mdia.minf.stbl.sbgps.length>0||L.mdia.minf.stbl.sgpds.length>0)&&m.setSampleGroupProperties(L,T,T.number_in_traf,S.sample_groups_info)}}if(S.subs){L.has_fragment_subsamples=!0;var I=S.first_sample_index;for(k=0;k-1){A=this.stream.buffers[b];var w=A.byteLength-(p.offset+p.alreadyRead-A.fileStart);if(p.size-p.alreadyRead<=w)return t.debug("ISOFile","Getting sample #"+k+" data (alreadyRead: "+p.alreadyRead+" offset: "+(p.offset+p.alreadyRead-A.fileStart)+" read size: "+(p.size-p.alreadyRead)+" full size: "+p.size+")"),r.memcpy(p.data.buffer,p.alreadyRead,A,p.offset+p.alreadyRead-A.fileStart,p.size-p.alreadyRead),A.usedBytes+=p.size-p.alreadyRead,this.stream.logBufferLevel(),p.alreadyRead=p.size,p;if(w===0)return null;t.debug("ISOFile","Getting sample #"+k+" partial data (alreadyRead: "+p.alreadyRead+" offset: "+(p.offset+p.alreadyRead-A.fileStart)+" read size: "+w+" full size: "+p.size+")"),r.memcpy(p.data.buffer,p.alreadyRead,A,p.offset+p.alreadyRead-A.fileStart,w),p.alreadyRead+=w,A.usedBytes+=w,this.stream.logBufferLevel()}else return null}},m.prototype.releaseSample=function(f,k){var A=f.samples[k];return A.data?(this.samplesDataSize-=A.size,A.data=null,A.alreadyRead=0,A.size):0},m.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},m.prototype.getCodecs=function(){var f,k="";for(f=0;f0&&(k+=","),k+=A.mdia.minf.stbl.stsd.entries[0].getCodec()}return k},m.prototype.getTrexById=function(f){var k;if(!this.moov||!this.moov.mvex)return null;for(k=0;k0&&(b.protection=w.ipro.protections[w.iinf.item_infos[A].protection_index-1]),w.iinf.item_infos[A].item_type?b.type=w.iinf.item_infos[A].item_type:b.type="mime",b.content_type=w.iinf.item_infos[A].content_type,b.content_encoding=w.iinf.item_infos[A].content_encoding;if(w.grpl)for(A=0;A0&&L.property_index-1-1){k=this.stream.buffers[w];var O=k.byteLength-(b.offset+b.alreadyRead-k.fileStart);if(b.length-b.alreadyRead<=O)t.debug("ISOFile","Getting item #"+f+" extent #"+p+" data (alreadyRead: "+b.alreadyRead+" offset: "+(b.offset+b.alreadyRead-k.fileStart)+" read size: "+(b.length-b.alreadyRead)+" full extent size: "+b.length+" full item size: "+A.size+")"),r.memcpy(A.data.buffer,A.alreadyRead,k,b.offset+b.alreadyRead-k.fileStart,b.length-b.alreadyRead),k.usedBytes+=b.length-b.alreadyRead,this.stream.logBufferLevel(),A.alreadyRead+=b.length-b.alreadyRead,b.alreadyRead=b.length;else return t.debug("ISOFile","Getting item #"+f+" extent #"+p+" partial data (alreadyRead: "+b.alreadyRead+" offset: "+(b.offset+b.alreadyRead-k.fileStart)+" read size: "+O+" full extent size: "+b.length+" full item size: "+A.size+")"),r.memcpy(A.data.buffer,A.alreadyRead,k,b.offset+b.alreadyRead-k.fileStart,O),b.alreadyRead+=O,A.alreadyRead+=O,k.usedBytes+=O,this.stream.logBufferLevel(),null}else return null}}return A.alreadyRead===A.size?A:null},m.prototype.releaseItem=function(f){var k=this.items[f];if(k.data){this.itemsDataSize-=k.size,k.data=null,k.alreadyRead=0;for(var A=0;A0?this.moov.traks[f].samples[0].duration:0),k.push(p)}return k},l.Box.prototype.printHeader=function(f){this.size+=8,this.size>o&&(this.size+=8),this.type==="uuid"&&(this.size+=16),f.log(f.indent+"size:"+this.size),f.log(f.indent+"type:"+this.type)},l.FullBox.prototype.printHeader=function(f){this.size+=4,l.Box.prototype.printHeader.call(this,f),f.log(f.indent+"version:"+this.version),f.log(f.indent+"flags:"+this.flags)},l.Box.prototype.print=function(f){this.printHeader(f)},l.ContainerBox.prototype.print=function(f){this.printHeader(f);for(var k=0;k>8)),f.log(f.indent+"matrix: "+this.matrix.join(", ")),f.log(f.indent+"next_track_id: "+this.next_track_id)},l.tkhdBox.prototype.print=function(f){l.FullBox.prototype.printHeader.call(this,f),f.log(f.indent+"creation_time: "+this.creation_time),f.log(f.indent+"modification_time: "+this.modification_time),f.log(f.indent+"track_id: "+this.track_id),f.log(f.indent+"duration: "+this.duration),f.log(f.indent+"volume: "+(this.volume>>8)),f.log(f.indent+"matrix: "+this.matrix.join(", ")),f.log(f.indent+"layer: "+this.layer),f.log(f.indent+"alternate_group: "+this.alternate_group),f.log(f.indent+"width: "+this.width),f.log(f.indent+"height: "+this.height)};var v={};v.createFile=function(f,k){var A=f!==void 0?f:!0,p=new m(k);return p.discardMdatData=!A,p},e.createFile=v.createFile})(yqn);const YGe=R9s(yqn),I9s=()=>{let e,t=16.6;self.onmessage=n=>{n.data.event==="start"&&(self.clearInterval(e),e=self.setInterval(()=>{self.postMessage({})},t)),n.data.event==="stop"&&self.clearInterval(e)}},M9s=()=>{const e=new Blob([`(${I9s.toString()})()`]),t=URL.createObjectURL(e);return new Worker(t)},VF=new Map;let ZGe=1,WN=null;globalThis.Worker!=null&&(WN=M9s(),WN.onmessage=()=>{ZGe+=1;for(const[e,t]of VF)if(ZGe%e===0)for(const n of t)n()});const P9s=(e,t)=>{const n=Math.round(t/16.6),r=VF.get(n)??new Set;return r.add(e),VF.set(n,r),VF.size===1&&r.size===1&&(WN==null||WN.postMessage({event:"start"})),()=>{r.delete(e),r.size===0&&VF.delete(n),VF.size===0&&(ZGe=0,WN==null||WN.postMessage({event:"stop"}))}};function F9s(e){return e instanceof Error?String(e):typeof e=="object"?JSON.stringify(e,(t,n)=>n instanceof Error?String(n):n):String(e)}function N9s(){const e=new Date;return`${e.getHours()}:${e.getMinutes()}:${e.getSeconds()}.${e.getMilliseconds()}`}let Cqn=1;const _qn=[],Gkn=["debug","info","warn","error"].reduce((e,t,n)=>Object.assign(e,{[t]:(...r)=>{Cqn<=n&&(console[t](...r),_qn.push({lvName:t,timeStr:N9s(),args:r}))}}),{}),Zre=new Map,td={setLogLevel:e=>{Cqn=Zre.get(e)??1},...Gkn,create:e=>Object.fromEntries(Object.entries(Gkn).map(([t,n])=>[t,(...r)=>n(e,...r)])),async dump(){return _qn.reduce((e,{lvName:t,timeStr:n,args:r})=>e+`[${t}][${n}] ${r.map(o=>F9s(o)).join(" ")} + */function Mkn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Uy(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function pLs(e,t){if(e==null)return{};var n=ALs(e,t),r,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var bLs="1.15.2";function g8(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var IL=g8(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Xre=g8(/Edge/i),Pkn=g8(/firefox/i),dq=g8(/safari/i)&&!g8(/chrome/i)&&!g8(/android/i),sqn=g8(/iP(ad|od|hone)/i),aqn=g8(/chrome/i)&&g8(/android/i),lqn={capture:!1,passive:!1};function yl(e,t,n){e.addEventListener(t,n,!IL&&lqn)}function Ya(e,t,n){e.removeEventListener(t,n,!IL&&lqn)}function Y2e(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function wLs(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Ib(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Y2e(e,t):Y2e(e,t))||r&&e===n)return e;if(e===n)break}while(e=wLs(e))}return null}var Fkn=/\s+/g;function J2(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(Fkn," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(Fkn," ")}}function Mo(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function vj(e,t){var n="";if(typeof e=="string")n=e;else do{var r=Mo(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function cqn(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,s=r.length;if(n)for(;o=s,!a)return r;if(r===vy())break;r=T9(r,!1)}return!1}function dz(e,t,n,r){for(var o=0,s=0,a=e.children;s2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,o=pLs(n,ELs);Gre.pluginEvent.bind(Po)(e,t,Uy({dragEl:Ii,parentEl:Lu,ghostEl:ms,rootEl:Ed,nextEl:oT,lastDownEl:ife,cloneEl:tu,cloneHidden:M5,dragStarted:uY,putSortable:Vg,activeSortable:Po.active,originalEvent:r,oldIndex:jN,oldDraggableIndex:hq,newIndex:nv,newDraggableIndex:k5,hideGhostForTarget:vqn,unhideGhostForTarget:Aqn,cloneNowHidden:function(){M5=!0},cloneNowShown:function(){M5=!1},dispatchSortableEvent:function(s){X1({sortable:t,name:s,originalEvent:r})}},o))};function X1(e){xLs(Uy({putSortable:Vg,cloneEl:tu,targetEl:Ii,rootEl:Ed,oldIndex:jN,oldDraggableIndex:hq,newIndex:nv,newDraggableIndex:k5},e))}var Ii,Lu,ms,Ed,oT,ife,tu,M5,jN,nv,hq,k5,Ude,Vg,WF=!1,Z2e=!1,q2e=[],I7,qp,LRe,xRe,jkn,Wkn,uY,aF,fq,gq=!1,jde=!1,rfe,Pm,ERe=[],zGe=!1,K2e=[],KOe=typeof document<"u",Wde=sqn,Vkn=Xre||IL?"cssFloat":"float",TLs=KOe&&!aqn&&!sqn&&"draggable"in document.createElement("div"),gqn=function(){if(KOe){if(IL)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),mqn=function(e,t){var n=Mo(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=dz(e,0,t),s=dz(e,1,t),a=o&&Mo(o),l=s&&Mo(s),d=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+Uh(o).width,u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Uh(s).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&a.float&&a.float!=="none"){var h=a.float==="left"?"left":"right";return s&&(l.clear==="both"||l.clear===h)?"vertical":"horizontal"}return o&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||d>=r&&n[Vkn]==="none"||s&&n[Vkn]==="none"&&d+u>r)?"vertical":"horizontal"},QLs=function(e,t,n){var r=n?e.left:e.top,o=n?e.right:e.bottom,s=n?e.width:e.height,a=n?t.left:t.top,l=n?t.right:t.bottom,d=n?t.width:t.height;return r===a||o===l||r+s/2===a+d/2},DLs=function(e,t){var n;return q2e.some(function(r){var o=r[Fv].options.emptyInsertThreshold;if(!(!o||Jst(r))){var s=Uh(r),a=e>=s.left-o&&e<=s.right+o,l=t>=s.top-o&&t<=s.bottom+o;if(a&&l)return n=r}}),n},kqn=function(e){function t(o,s){return function(a,l,d,u){var h=a.options.group.name&&l.options.group.name&&a.options.group.name===l.options.group.name;if(o==null&&(s||h))return!0;if(o==null||o===!1)return!1;if(s&&o==="clone")return o;if(typeof o=="function")return t(o(a,l,d,u),s)(a,l,d,u);var g=(s?a:l).options.group.name;return o===!0||typeof o=="string"&&o===g||o.join&&o.indexOf(g)>-1}}var n={},r=e.group;(!r||nfe(r)!="object")&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},vqn=function(){!gqn&&ms&&Mo(ms,"display","none")},Aqn=function(){!gqn&&ms&&Mo(ms,"display","")};KOe&&!aqn&&document.addEventListener("click",function(e){if(Z2e)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Z2e=!1,!1},!0);var M7=function(e){if(Ii){e=e.touches?e.touches[0]:e;var t=DLs(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[Fv]._onDragOver(n)}}},BLs=function(e){Ii&&Ii.parentNode[Fv]._isOutsideThisEl(e.target)};function Po(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=nL({},t),e[Fv]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return mqn(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,a){s.setData("Text",a.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Po.supportPointer!==!1&&"PointerEvent"in window&&!dq,emptyInsertThreshold:5};Gre.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);kqn(t);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=t.forceFallback?!1:TLs,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?yl(e,"pointerdown",this._onTapStart):(yl(e,"mousedown",this._onTapStart),yl(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(yl(e,"dragover",this),yl(e,"dragenter",this)),q2e.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),nL(this,_Ls())}Po.prototype={constructor:Po,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(aF=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,Ii):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,s=e.type,a=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(a||e).target,d=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,u=r.filter;if(jLs(n),!Ii&&!(/mousedown|pointerdown/.test(s)&&e.button!==0||r.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&dq&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=Ib(l,r.draggable,n,!1),!(l&&l.animated)&&ife!==l)){if(jN=m4(l),hq=m4(l,r.draggable),typeof u=="function"){if(u.call(this,e,l,this)){X1({sortable:t,rootEl:d,name:"filter",targetEl:l,toEl:n,fromEl:n}),kk("filter",t,{evt:e}),o&&e.cancelable&&e.preventDefault();return}}else if(u&&(u=u.split(",").some(function(h){if(h=Ib(d,h.trim(),n,!1),h)return X1({sortable:t,rootEl:h,name:"filter",targetEl:l,fromEl:n,toEl:n}),kk("filter",t,{evt:e}),!0}),u)){o&&e.cancelable&&e.preventDefault();return}r.handle&&!Ib(d,r.handle,n,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(e,t,n){var r=this,o=r.el,s=r.options,a=o.ownerDocument,l;if(n&&!Ii&&n.parentNode===o){var d=Uh(n);if(Ed=o,Ii=n,Lu=Ii.parentNode,oT=Ii.nextSibling,ife=n,Ude=s.group,Po.dragged=Ii,I7={target:Ii,clientX:(t||e).clientX,clientY:(t||e).clientY},jkn=I7.clientX-d.left,Wkn=I7.clientY-d.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,Ii.style["will-change"]="all",l=function(){if(kk("delayEnded",r,{evt:e}),Po.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!Pkn&&r.nativeDraggable&&(Ii.draggable=!0),r._triggerDragStart(e,t),X1({sortable:r,name:"choose",originalEvent:e}),J2(Ii,s.chosenClass,!0)},s.ignore.split(",").forEach(function(u){cqn(Ii,u.trim(),TRe)}),yl(a,"dragover",M7),yl(a,"mousemove",M7),yl(a,"touchmove",M7),yl(a,"mouseup",r._onDrop),yl(a,"touchend",r._onDrop),yl(a,"touchcancel",r._onDrop),Pkn&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Ii.draggable=!0),kk("delayStart",this,{evt:e}),s.delay&&(!s.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Xre||IL))){if(Po.eventCanceled){this._onDrop();return}yl(a,"mouseup",r._disableDelayedDrag),yl(a,"touchend",r._disableDelayedDrag),yl(a,"touchcancel",r._disableDelayedDrag),yl(a,"mousemove",r._delayedDragTouchMoveHandler),yl(a,"touchmove",r._delayedDragTouchMoveHandler),s.supportPointer&&yl(a,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(l,s.delay)}else l()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Ii&&TRe(Ii),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Ya(e,"mouseup",this._disableDelayedDrag),Ya(e,"touchend",this._disableDelayedDrag),Ya(e,"touchcancel",this._disableDelayedDrag),Ya(e,"mousemove",this._delayedDragTouchMoveHandler),Ya(e,"touchmove",this._delayedDragTouchMoveHandler),Ya(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?yl(document,"pointermove",this._onTouchMove):t?yl(document,"touchmove",this._onTouchMove):yl(document,"mousemove",this._onTouchMove):(yl(Ii,"dragend",this),yl(Ed,"dragstart",this._onDragStart));try{document.selection?ofe(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(WF=!1,Ed&&Ii){kk("dragStarted",this,{evt:t}),this.nativeDraggable&&yl(document,"dragover",BLs);var n=this.options;!e&&J2(Ii,n.dragClass,!1),J2(Ii,n.ghostClass,!0),Po.active=this,e&&this._appendGhost(),X1({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(qp){this._lastX=qp.clientX,this._lastY=qp.clientY,vqn();for(var e=document.elementFromPoint(qp.clientX,qp.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(qp.clientX,qp.clientY),e!==t);)t=e;if(Ii.parentNode[Fv]._isOutsideThisEl(e),t)do{if(t[Fv]){var n=void 0;if(n=t[Fv]._onDragOver({clientX:qp.clientX,clientY:qp.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Aqn()}},_onTouchMove:function(e){if(I7){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,s=ms&&vj(ms,!0),a=ms&&s&&s.a,l=ms&&s&&s.d,d=Wde&&Pm&&Ukn(Pm),u=(o.clientX-I7.clientX+r.x)/(a||1)+(d?d[0]-ERe[0]:0)/(a||1),h=(o.clientY-I7.clientY+r.y)/(l||1)+(d?d[1]-ERe[1]:0)/(l||1);if(!Po.active&&!WF){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(X1({rootEl:Lu,name:"add",toEl:Lu,fromEl:Ed,originalEvent:e}),X1({sortable:this,name:"remove",toEl:Lu,originalEvent:e}),X1({rootEl:Lu,name:"sort",toEl:Lu,fromEl:Ed,originalEvent:e}),X1({sortable:this,name:"sort",toEl:Lu,originalEvent:e})),Vg&&Vg.save()):nv!==jN&&nv>=0&&(X1({sortable:this,name:"update",toEl:Lu,originalEvent:e}),X1({sortable:this,name:"sort",toEl:Lu,originalEvent:e})),Po.active&&((nv==null||nv===-1)&&(nv=jN,k5=hq),X1({sortable:this,name:"end",toEl:Lu,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){kk("nulling",this),Ed=Ii=Lu=ms=oT=tu=ife=M5=I7=qp=uY=nv=k5=jN=hq=aF=fq=Vg=Ude=Po.dragged=Po.ghost=Po.clone=Po.active=null,K2e.forEach(function(e){e.checked=!0}),K2e.length=LRe=xRe=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":Ii&&(this._onDragOver(e),RLs(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,o=n.length,s=this.options;ro.right+s||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+s||e.clientX>r.right&&e.clientY>r.top}function FLs(e,t,n,r,o,s,a,l){var d=r?e.clientY:e.clientX,u=r?n.height:n.width,h=r?n.top:n.left,g=r?n.bottom:n.right,m=!1;if(!a){if(l&&rfeh+u*s/2:dg-rfe)return-fq}else if(d>h+u*(1-o)/2&&dg-u*s/2)?d>h+u/2?1:-1:0}function NLs(e){return m4(Ii){if(R&&(o==null?void 0:o.length)!==Q.childNodes.length)return P.insertBefore(R,I.nextSibling),!0;const j=Q.childNodes[F];R=Q==null?void 0:Q.replaceChild(I,j)})}}catch(R){M=R}finally{o=null}ai(()=>{if(Hkn(),M)throw M})}const w={onUpdate:p,onStart:f,onAdd:k,onRemove:A,onEnd:b};function O(E){const T=Ae(s);return E||(E=dLs(T)?uLs(T,r==null?void 0:r.$el):T),E&&!gLs(E)&&(E=E.$el),E||sLs("Root element not found"),E}function y(){var E;const T=(E=Ae(l))!=null?E:{},{immediate:D,clone:P}=T,Q=rqn(T,["immediate","clone"]);return Ikn(Q,(M,B)=>{mLs(M)&&(Q[M]=(R,...I)=>{const F=$Ls();return kLs(R,F),B(R,...I)})}),fLs(a===null?{}:w,Q)}const C=E=>{E=O(E),d&&_.destroy(),d=new Po(E,y())};pt(()=>l,()=>{d&&Ikn(y(),(E,T)=>{d==null||d.option(E,T)})},{deep:!0});const _={option:(E,T)=>d==null?void 0:d.option(E,T),destroy:()=>{d==null||d.destroy(),d=null},save:()=>d==null?void 0:d.save(),toArray:()=>d==null?void 0:d.toArray(),closest:(...E)=>d==null?void 0:d.closest(...E)},S=()=>_==null?void 0:_.option("disabled",!0),L=()=>_==null?void 0:_.option("disabled",!1);return HLs(()=>{u&&C()}),zLs(_.destroy),UN({start:C,pause:S,resume:L},_)}const GGe=["update","start","add","remove","choose","unchoose","end","sort","filter","clone","move","change"],GLs=["clone","animation","ghostClass","group","sort","disabled","store","handle","draggable","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","chosenClass","dragClass","ignore","filter","preventOnFilter","easing","setData","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","emptyInsertThreshold","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","modelValue","tag","target","customUpdate",...GGe.map(e=>`on${e.replace(/^\S/,t=>t.toUpperCase())}`)],YLs=Je({name:"VueDraggable",model:{prop:"modelValue",event:"update:modelValue"},props:GLs,emits:["update:modelValue",...GGe],setup(e,{slots:t,emit:n,expose:r,attrs:o}){const s=GGe.reduce((h,g)=>{const m=`on${g.replace(/^\S/,v=>v.toUpperCase())}`;return h[m]=(...v)=>n(g,...v),h},{}),a=X(()=>{const h=Li(e),{modelValue:g}=h,m=rqn(h,["modelValue"]),v=Object.entries(m).reduce((f,[k,A])=>{const p=Ae(A);return p!==void 0&&(f[k]=p),f},{});return UN(UN({},s),lLs(UN(UN({},o),v)))}),l=X({get:()=>e.modelValue,set:h=>n("update:modelValue",h)}),d=fe(),u=hs(XLs(e.target||d,l,a));return r(u),()=>{var h;return xn(e.tag||"div",{ref:d},(h=t==null?void 0:t.default)==null?void 0:h.call(t,u))}}}),ZLs={class:"previewContainer"},qLs={class:"mainContent"},KLs={class:"previewArea"},JLs={class:"videoWrapper"},exs=["src","alt"],txs={key:1,class:"placeholderImage"},nxs={class:"playerControls"},ixs={class:"controlButtons"},rxs={class:"progressArea"},oxs={class:"timeLabel"},sxs={class:"progressTrack"},axs=["onClick"],lxs={class:"timeLabel"},cxs={class:"infoPanel"},dxs={class:"infoSection"},uxs={class:"sectionTitle"},hxs={class:"sectionContent"},fxs={class:"infoSection"},gxs={class:"sectionTitle"},mxs={class:"sectionContent"},kxs={class:"infoSection"},vxs={class:"sectionTitle"},Axs={class:"characterList"},pxs={key:0,class:"noCharacter"},bxs={class:"infoSection"},wxs={class:"sectionTitle"},Oxs={class:"shootingTips"},yxs={key:0,class:"tipItem"},Cxs={class:"tipLabel"},_xs={class:"tipValue"},Sxs={class:"shotListArea"},Lxs={class:"shotListHeader"},xxs={class:"headerLeft"},Exs=["onClick"],Txs={class:"shotImageWrapper"},Qxs=["src","alt"],Dxs={key:1,class:"shotPlaceholder"},Xkn=50,Bxs=Je({__name:"preview",setup(e){const t=bt("episodesId"),n=fe([]);An(()=>{r()});async function r(){const{data:G}=await mn.post("/production/getStoryboardData",{scriptId:t.value});n.value=G}const o=X(()=>n.value[a.value]||null),s=X(()=>{var G;return((G=o.value)==null?void 0:G.characters)||[]}),a=fe(0),l=fe(!1),d=fe(),u=fe(),h=fe(!1),g=fe(!1),m=fe(0);let v=null;const f=n.value.map(G=>G.id),k=X(()=>{var G;return((G=o.value)==null?void 0:G.duration)??3}),A=X(()=>a.value===0),p=X(()=>a.value===n.value.length-1),b=X(()=>n.value.reduce((G,q)=>G+(q.duration??3),0)),w=X(()=>{const G=C(a.value)+m.value;return Math.min(G/b.value*100,100)}),O=X(()=>{var G,q;return[{label:$t("workbench.production.preview.sceneDescription"),value:(G=o.value)==null?void 0:G.description},{label:$t("workbench.production.preview.promptLabel"),value:(q=o.value)==null?void 0:q.prompt}]}),y=G=>{var q;return((q=n.value[G])==null?void 0:q.duration)??3},C=G=>{let q=0;for(let re=0;rey(G)/b.value*100,S=G=>C(G)/b.value*100,L=G=>{const q=Math.floor(G);return`${String(Math.floor(q/60)).padStart(2,"0")}:${String(q%60).padStart(2,"0")}`},E=()=>{v&&(clearInterval(v),v=null),g.value=!1},T=()=>{v||(g.value=!0,v=setInterval(()=>{m.value+=Xkn/1e3,m.value>=k.value&&(p.value?(m.value=k.value,E()):(m.value=0,a.value++,F()))},Xkn))},D=()=>{if(g.value)return E();p.value&&m.value>=k.value&&(a.value=0,m.value=0),T()};Qa(E);const P=(G,q=!0)=>{q&&E(),a.value=G,m.value=0,F()},Q=()=>{A.value||P(a.value-1)},M=()=>{p.value||P(a.value+1)},B=G=>P(G),R=G=>P(G),I=G=>{const q=u.value;if(!q)return;E();const re=oe=>{const se=q.getBoundingClientRect(),ue=Math.max(0,Math.min(1,(oe.clientX-se.left)/se.width))*b.value;let ee=0;for(let de=0;deue){a.value=de,m.value=ue-ee,F();return}ee+=z}a.value=n.value.length-1,m.value=y(n.value.length-1)};re(G);const J=()=>{document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",J)};document.addEventListener("mousemove",re),document.addEventListener("mouseup",J)},F=()=>{ai(()=>{var q,re;const G=(q=d.value)==null?void 0:q.querySelectorAll(".shotItem");(re=G==null?void 0:G[a.value])==null||re.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})})},j=G=>{const q=Array.isArray(G)?G.length>0:G;n.value.forEach(re=>re.selected=q)},W=()=>{const G=co.confirm({header:$t("workbench.production.preview.restoreSort"),body:$t("workbench.production.preview.restoreSortConfirm"),onConfirm:()=>{n.value.sort((q,re)=>f.indexOf(q.id)-f.indexOf(re.id)),G.destroy()},onClose:()=>G.destroy()})};pt(()=>n.value.map(G=>G.selected),G=>{l.value=G.length>0&&G.every(Boolean)},{deep:!0});const H=()=>ai(()=>h.value=!1);function $(){const G=n.value.filter(q=>q.selected).map(q=>({id:q.id}));if(G.length<=0){co.alert({header:$t("workbench.production.preview.tip"),body:$t("workbench.production.preview.selectAtLeastOne")});return}mn.post("/production/exportImage",{shotId:G},{responseType:"blob"}).then(q=>{const re=URL.createObjectURL(q.data),J=document.createElement("a");J.href=re,J.download=$t("workbench.production.preview.exportFilename")+".zip",J.click(),URL.revokeObjectURL(re)}).catch(q=>{console.error("导出图片失败:",q)})}return(G,q)=>{var Y,ie,te;const re=_n("i-pic"),J=_n("i-go-start"),oe=Si,se=_n("i-go-end"),le=Zh,ue=Sg,ee=py,de=_n("i-undo"),z=_n("i-download");return xe(),Ge("div",ZLs,[ge("div",qLs,[ge("div",KLs,[ge("div",JLs,[(Y=o.value)!=null&&Y.filePath?(xe(),Ge("img",{key:0,src:o.value.filePath,alt:o.value.description,class:"previewImage"},null,8,exs)):(xe(),Ge("div",txs,[c(re,{theme:"outline",size:"48",fill:"#999"}),ge("span",null,Pe(G.$t("workbench.production.preview.noImage")),1)]))]),ge("div",nxs,[ge("div",ixs,[c(oe,{theme:"default",variant:"text",size:"small",shape:"circle",onClick:Q,disabled:A.value},{icon:Oe(()=>[c(J,{theme:"outline",size:"18"})]),_:1},8,["disabled"]),c(oe,{theme:"primary",variant:"text",size:"medium",shape:"circle",onClick:D},{icon:Oe(()=>[(xe(),Ut(Bd(g.value?"i-pause":"i-play"),{theme:"outline",size:"22"}))]),_:1}),c(oe,{theme:"default",variant:"text",size:"small",shape:"circle",onClick:M,disabled:p.value},{icon:Oe(()=>[c(se,{theme:"outline",size:"18"})]),_:1},8,["disabled"])]),ge("div",rxs,[ge("span",oxs,Pe(L(m.value)),1),ge("div",{class:"progressBarWrapper",ref_key:"progressBarRef",ref:u,onMousedown:I},[ge("div",sxs,[(xe(!0),Ge(sn,null,Bi(n.value,(Z,he)=>(xe(),Ge("div",{key:"seg-"+Z.id,class:Eo(["progressSegment",{active:he===a.value,completed:heB(he),["stop"])},null,14,axs))),128)),(xe(!0),Ge(sn,null,Bi(n.value.slice(0,-1),(Z,he)=>(xe(),Ge("div",{key:"div-"+he,class:"segmentDivider",style:no({left:S(he+1)+"%"})},null,4))),128)),ge("div",{class:"progressFill",style:no({width:w.value+"%"})},null,4),ge("div",{class:"progressHandle",style:no({left:w.value+"%"})},null,4)])],544),ge("span",lxs,Pe(L(b.value)),1)])])]),ge("div",cxs,[ge("div",dxs,[ge("div",uxs,[q[4]||(q[4]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.storyboardDesc")),1)]),ge("div",hxs," 【"+Pe(G.$t("workbench.production.preview.serialNumber"))+" "+Pe(a.value+1)+"】"+Pe(((ie=o.value)==null?void 0:ie.description)||G.$t("workbench.production.preview.noDescription")),1)]),ge("div",fxs,[ge("div",gxs,[q[5]||(q[5]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.duration")),1)]),ge("div",mxs,Pe(((te=o.value)==null?void 0:te.duration)!=null?o.value.duration+" "+G.$t("workbench.production.preview.seconds"):"3 "+G.$t("workbench.production.preview.seconds")),1)]),ge("div",kxs,[ge("div",vxs,[q[6]||(q[6]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.relatedAssets")),1)]),ge("div",Axs,[(xe(!0),Ge(sn,null,Bi(s.value,(Z,he)=>(xe(),Ge("div",{key:he,class:"characterItem"},[c(le,{src:Z.avatar,fit:"cover",class:"characterAvatar",style:{width:"80px",height:"80px",borderRadius:"8px"}},null,8,["src"]),c(ue,null,{default:Oe(()=>[Bt(Pe(Z.name)+"("+Pe(Z.type=="role"?G.$t("workbench.production.preview.role"):Z.type=="tool"?G.$t("workbench.production.preview.prop"):G.$t("workbench.production.preview.scene"))+") ",1)]),_:2},1024)]))),128)),s.value.length?nn("",!0):(xe(),Ge("div",pxs,[c(ue,{theme:"default",variant:"light"},{default:Oe(()=>[Bt(Pe(G.$t("workbench.production.preview.noCharacters")),1)]),_:1})]))])]),ge("div",bxs,[ge("div",wxs,[q[7]||(q[7]=ge("span",{class:"titleIndicator"},null,-1)),Bt(" "+Pe(G.$t("workbench.production.preview.imagePrompt")),1)]),ge("div",Oxs,[(xe(!0),Ge(sn,null,Bi(O.value,Z=>(xe(),Ge(sn,{key:Z.label},[Z.value?(xe(),Ge("div",yxs,[ge("span",Cxs,Pe(Z.label)+":",1),ge("span",_xs,Pe(Z.value),1)])):nn("",!0)],64))),128))])])])]),ge("div",Sxs,[ge("div",Lxs,[ge("div",xxs,[c(ee,{modelValue:l.value,"onUpdate:modelValue":q[0]||(q[0]=Z=>l.value=Z),onChange:j},{default:Oe(()=>[Bt(Pe(G.$t("workbench.production.preview.selectAll")),1)]),_:1},8,["modelValue"]),c(oe,{theme:"default",variant:"text",size:"small",onClick:W},{icon:Oe(()=>[c(de,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(G.$t("workbench.production.preview.restoreSort")),1)]),_:1})]),c(oe,{theme:"default",variant:"text",size:"small",class:"exportBtn",onClick:$},{icon:Oe(()=>[c(z,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(G.$t("workbench.production.preview.exportImage")),1)]),_:1})]),ge("div",{class:"shotListWrapper",ref_key:"shotListWrapperRef",ref:d},[c(Ae(YLs),{modelValue:n.value,"onUpdate:modelValue":q[2]||(q[2]=Z=>n.value=Z),animation:150,ghostClass:"shotGhost",dragClass:"shotDrag",scroll:d.value,scrollSensitivity:80,scrollSpeed:10,forceFallback:!0,target:".shotList",onStart:q[3]||(q[3]=Z=>h.value=!0),onEnd:H},{default:Oe(()=>[c(l4n,{type:"transition",tag:"div",name:h.value?void 0:"shot-flip",class:"shotList"},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(n.value,(Z,he)=>(xe(),Ge("div",{key:Z.id,class:Eo(["shotItem",{active:a.value===he}]),onClick:pe=>R(he)},[c(ee,{modelValue:Z.selected,"onUpdate:modelValue":pe=>Z.selected=pe,class:"shotCheckbox",onClick:q[1]||(q[1]=Mr(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),ge("div",Txs,[Z.filePath?(xe(),Ge("img",{key:0,src:Z.filePath,alt:Z.description,class:"shotImage"},null,8,Qxs)):(xe(),Ge("div",Dxs,[c(re,{theme:"outline",size:"24",fill:"#999"})])),c(ue,{class:"shotNumber",size:"small",variant:"dark"},{default:Oe(()=>[Bt("#"+Pe(Z.id),1)]),_:2},1024)])],10,Exs))),128))]),_:1},8,["name"])]),_:1},8,["modelValue","scroll"])],512)])])}}}),Rxs=oo(Bxs,[["__scopeId","data-v-65b71e51"]]),Ixs={class:"generateContainer"},Mxs={class:"data f"},Pxs={class:"videoToImage"},Fxs=["src"],Nxs={key:1,class:"emptyVideo c"},Uxs={class:"promptsMenu f ac jb"},jxs={class:"title"},Wxs={class:"promptInput"},Vxs={class:"modeOpt f w"},zxs=["src"],Hxs={key:1,class:"uploadPreview c"},$xs=["onClick"],Xxs=["onClick"],Gxs=["src"],Yxs=["onClick"],Zxs={class:"storyboardGrid"},qxs=["onClick"],Kxs=["src"],Jxs={class:"modeMenu f ac jb"},e5s={class:"left f ac"},t5s={class:"model"},n5s={class:"status"},i5s={class:"resolutionDurationPicker"},r5s={key:0,class:"pickerSection"},o5s={class:"pickerLabel"},s5s={class:"pickerOptions"},a5s=["onClick"],l5s={key:1,class:"pickerSection"},c5s={class:"pickerLabel"},d5s={class:"pickerOptions"},u5s=["onClick"],h5s={class:"genBtn"},f5s={class:"history"},g5s={class:"titleBox f ac"},m5s={class:"title"},k5s={class:"historyItemBox"},v5s=["onClick"],A5s=["src"],p5s={key:0,class:"loadingOverlay c fc"},b5s={class:"loadingText"},w5s=["onClick"],O5s=["onClick"],y5s=["onClick"],C5s={class:"videoTrack"},_5s={class:"trackMenu f ac jb"},S5s={class:"left f ac"},L5s={key:0,class:"selectedCount"},x5s={class:"right f ac"},E5s={class:"itemBox"},T5s=["onClick"],Q5s={key:1,class:"thumbGroup"},D5s=["src"],B5s={key:1,class:"thumb placeholder c"},R5s={key:2,class:"emptyTrack"},I5s=["onClick"],M5s=Je({__name:"generate",emits:["importVideo"],setup(e,{emit:t}){const n=bt("episodesId"),{project:r}=xs(ph()),o=fe(""),s=X({get:()=>{const Me=P.value[Q.value];return(Me==null?void 0:Me.prompt)??""},set:Me=>{const Se=P.value[Q.value];Se&&(Se.prompt=Me)}}),a=fe("480p"),l=fe(8),d=fe(!1);function u(Me){var Ie;const Se=C.value.durationResolutionMap;if(Array.isArray(Se)&&Se.length>0&&((Ie=Se[0].duration)!=null&&Ie.length)){const ze=Se[0].duration,Ze=Math.min(...ze),gt=Math.max(...ze);return Math.max(Ze,Math.min(Me,gt))}return Me}const h=X(()=>{var Se;if(d.value)return l.value;const Me=((Se=P.value[Q.value])==null?void 0:Se.duration)||l.value;return u(Me)}),g=fe(!1),m=fe({}),v=X(()=>{var Se;const Me=(Se=P.value[Q.value])==null?void 0:Se.id;return Me!=null?!!m.value[Me]:!1}),f=fe({}),k=X(()=>{var Se;const Me=(Se=P.value[Q.value])==null?void 0:Se.id;return Me!=null?!!f.value[Me]:!1});async function A(){var gt;const Me=P.value[Q.value],Se=Me==null?void 0:Me.id;if(Se==null||f.value[Se])return;const Ze=(L.value==="text"?Me.medias:F.value.filter(St=>St.src).map(St=>({id:St.id,src:St.src,prompt:St.prompt,sources:St.sources}))).filter(St=>St.prompt).map(St=>({id:St.id,sources:St.sources?St.sources:"storyboard"}));f.value[Se]=!0;try{const{data:St}=await mn.post("/production/workbench/generateVideoPrompt",{projectId:(gt=r.value)==null?void 0:gt.id,trackId:Se,info:Ze,model:S.value}),Pt=P.value.find(dn=>dn.id===Se);Pt&&(Pt.prompt=St)}finally{f.value[Se]=!1}}const p=fe(null),b=fe([]),w=X(()=>{const Me=P.value[Q.value];return Me!=null&&Me.id?b.value.filter(Se=>Se.videoTrackId===Me.id):[]});function O(Me){Me.state==="生成中"||Me.state==="生成失败"||(o.value=Me.src)}async function y(Me){var Ie,ze;if(Me.state==="生成中"||Me.state==="生成失败")return;const Se=P.value[Q.value];Me.id!=null&&(p.value=Me.id,(Se==null?void 0:Se.id)!=null&&(M.value[Se.id]=Me.id)),o.value=Me.src;try{await mn.post("/production/workbench/selectVideo",{projectId:(Ie=r.value)==null?void 0:Ie.id,scriptId:n.value??0,videoId:Me.id,trackId:(ze=P.value[Q.value])==null?void 0:ze.id}),window.$message.success($t("workbench.generate.selectVideoSuccess")),Ce()}catch{window.$message.error($t("workbench.generate.selectVideoFailed"))}}const C=fe({}),_=X(()=>{const Me={singleImage:"单图",startEndRequired:"首尾帧",endFrameOptional:"尾帧可选",startFrameOptional:"首帧可选",text:"文本生视频",videoReference:"视频",imageReference:"图片",audioReference:"音频",textReference:"文本"};return C.value.mode?C.value.mode.map(Se=>Array.isArray(Se)?{value:JSON.stringify(Se),label:Se.map(Ie=>Me[Ie]||Ie).join(" + ")+"参考"}:{value:Se,label:Me[Se]||Se}):[]}),S=fe(),L=fe(),E=X(()=>{const Me=D(L.value||"");return Array.isArray(Me)}),T=X(()=>{const Me=D(L.value||"");if(!Array.isArray(Me))return[];const Se={audioReference:"audio",imageReference:"image",videoReference:"video"};return Me.filter(Ie=>Ie in Se).map(Ie=>Se[Ie])});function D(Me){if(!Me)return null;try{const Se=JSON.parse(Me);if(Array.isArray(Se))return Se}catch{return Me}return Me}const P=fe([]),Q=fe(0),M=fe({});async function B(){var Ie;const{data:Me}=await mn.post("/production/workbench/addTrack",{projectId:(Ie=r.value)==null?void 0:Ie.id,scriptId:n.value??0}),Se=typeof Me=="object"&&Me!==null?Me.id:Me;P.value.push({id:Se,prompt:"",state:"未生成",medias:[],videoList:[],duration:0}),Q.value=P.value.length-1}function R(Me){const Se=co.confirm({header:$t("workbench.generate.del"),body:$t("workbench.generate.delConfirm"),onConfirm:()=>{Se.destroy(),I(Me),window.$message.success($t("workbench.generate.delSuccess")),Ce()},onCancel:()=>{Se.destroy()}})}async function I(Me){const Se=P.value[Me];Se&&(await mn.post("/production/workbench/deleteTrack",{id:Se.id}),Q.value>=P.value.length&&(Q.value=P.value.length-1))}const F=fe([]),j=X(()=>F.value.filter(Me=>Me.src).map(Me=>({type:Me.fileType,src:Me.src}))),W=fe([]),H=fe(!1),$=fe(-1);function G(Me){const Se=D(Me);if(!Se)return[];const Ie={videoReference:{fileType:"video",type:"videoReference",sources:"storyboard",label:"参考视频"},imageReference:{fileType:"image",type:"imageReference",sources:"storyboard",label:"参考图片"},audioReference:{fileType:"audio",type:"audioReference",sources:"storyboard",label:"参考音频"}},ze={singleImage:[{fileType:"image",type:"imageReference",sources:"storyboard",label:"参考图片"}],startEndRequired:[{fileType:"image",type:"startImage",sources:"storyboard",label:"首帧"},{fileType:"image",type:"endImage",sources:"storyboard",label:"末帧"}],endFrameOptional:[{fileType:"image",type:"startImage",sources:"storyboard",label:"首帧"},{fileType:"image",type:"endImage",sources:"storyboard",label:"末帧(可选)"}],startFrameOptional:[{fileType:"image",type:"startImage",sources:"storyboard",label:"首帧(可选)"},{fileType:"image",type:"endImage",sources:"storyboard",label:"末帧"}],text:[]};return Array.isArray(Se)?Se.filter(Ze=>Ze!=="textReference").map(Ze=>({...Ie[Ze]})):(ze[Se]||[]).map(Ze=>({...Ze}))}const q={image:["role","scene","tool"],video:["clip"],audio:["clip"]};function re(Me){const Se=F.value[Me];if(!Se)return;$.value=Me;const Ie=co.confirm({header:$t("workbench.generate.selectSource"),confirmBtn:$t("workbench.generate.confirm"),cancelBtn:$t("workbench.generate.cancel"),onConfirm:async()=>{Ie.destroy();const ze=await jV({types:q[Se.fileType],multiple:!1});ze.length>0&&(de.value=!0,F.value[Me]={...Se,sources:"assets",src:ze[0].src,id:ze[0].id,prompt:ze[0].prompt})},onCancel:()=>{Ie.destroy(),H.value=!0}})}async function J(){const Me=co.confirm({header:$t("workbench.generate.selectSource"),confirmBtn:$t("workbench.generate.confirm"),cancelBtn:$t("workbench.generate.cancel"),onConfirm:async()=>{Me.destroy();const Se=await jV({types:["role","tool","scene","clip"],clipMediaTypes:T.value,multiple:!0});if(Se.length){de.value=!0;for(const Ie of Se){const ze=se(Ie.src);F.value.push({fileType:ze,type:oe[ze],sources:"assets",src:Ie.src,id:Ie.id,prompt:Ie.prompt,label:""})}}},onCancel:()=>{Me.destroy(),$.value=-1,H.value=!0}})}const oe={image:"imageReference",video:"videoReference",audio:"audioReference"};function se(Me){var Ze;const Se=((Ze=Me==null?void 0:Me.split(".").pop())==null?void 0:Ze.toLowerCase())??"",Ie=["mp4","webm","mov","avi","mkv"],ze=["mp3","wav","ogg","aac","flac","m4a"];return Ie.includes(Se)?"video":ze.includes(Se)?"audio":"image"}function le(Me){if(H.value=!1,de.value=!0,E.value){const Ie=se(Me.src);F.value.push({fileType:Ie,type:oe[Ie],sources:"storyboard",src:Me.src,id:Me.id,prompt:Me.prompt??void 0,label:""});return}const Se=F.value[$.value];Se&&(F.value[$.value]={...Se,sources:"storyboard",src:Me.src,id:Me.id,prompt:Me.prompt??void 0})}function ue(Me){const Se=F.value[Me];Se&&(de.value=!0,E.value?F.value.splice(Me,1):F.value[Me]={...Se,sources:"storyboard",src:void 0,id:void 0,prompt:void 0})}async function ee(){var Ie;const Me=(Ie=P.value[Q.value])==null?void 0:Ie.id;if(Me==null||m.value[Me])return;const Se=co.confirm({header:$t("workbench.generate.generateConfirm"),body:$t("workbench.generate.generateConfirmBody"),onConfirm:async()=>{var ze;Se.destroy(),m.value[Me]=!0;try{const Ze={projectId:(ze=r.value)==null?void 0:ze.id,scriptId:n.value,uploadData:F.value.filter(St=>!!St.src),prompt:s.value,model:S.value,mode:L.value,resolution:a.value,duration:h.value,audio:g.value,trackId:Me},{data:gt}=await mn.post("/production/workbench/generateVideo",Ze);window.$message.success($t("workbench.generate.generateStarted")),Ye()}finally{m.value[Me]=!1}},onCancel:()=>{Se.destroy()}})}pt(S,Me=>{if(!Me){C.value={},L.value=void 0;return}mn.post("/modelSelect/getModelDetail",{modelId:Me}).then(({data:Se})=>{var ze,Ze;C.value=Se;const Ie=Se.durationResolutionMap;Array.isArray(Ie)&&Ie.length>0&&((ze=Ie[0].resolution)!=null&&ze.length&&(a.value=Ie[0].resolution[0]),(Ze=Ie[0].duration)!=null&&Ze.length&&(l.value=Ie[0].duration[0])),d.value=!1})});const de=fe(!1),z=fe([]);pt(L,Me=>{if(!Me)return F.value=[];const Se=F.value;Se.some(gt=>gt.src)&&(z.value=Se.filter(gt=>gt.src).map(gt=>({...gt})));const Ie=G(Me),ze=D(Me);if(Array.isArray(ze))F.value=Se.filter(gt=>gt.src);else{const gt=z.value.filter(Pt=>Pt.src),St=new Set;F.value=Ie.map(Pt=>{const dn=gt.findIndex((on,pn)=>!St.has(pn)&&on.fileType===Pt.fileType&&on.src);if(dn!==-1){St.add(dn);const on=gt[dn];return{...Pt,src:on.src,id:on.id,prompt:on.prompt,sources:on.sources??Pt.sources}}return Pt})}de.value=!1}),pt(F,Me=>{if(!de.value)return;const Se=P.value[Q.value];Se&&(Se.medias=Me.filter(Ie=>Ie.src).map(Ie=>({src:Ie.src,id:Ie.id,prompt:Ie.prompt,fileType:Ie.fileType,sources:Ie.sources})))},{deep:!0});const Y=fe([]),ie=fe(!1);function te(Me){const Se=P.value.map(Ie=>Ie.id).filter(Ie=>Ie!=null);Y.value=Me?Se:[]}function Z(Me,Se){if(Me==null)return;Se?Y.value.includes(Me)||Y.value.push(Me):Y.value=Y.value.filter(ze=>ze!==Me);const Ie=P.value.map(ze=>ze.id).filter(ze=>ze!=null);ie.value=Ie.length>0&&Ie.every(ze=>Y.value.includes(ze))}pt(P,Me=>{const Se=Me.map(Ie=>Ie.id).filter(Ie=>Ie!=null);Y.value=Y.value.filter(Ie=>Se.includes(Ie)),ie.value=Se.length>0&&Se.every(Ie=>Y.value.includes(Ie)),f.value=Object.fromEntries(Object.entries(f.value).filter(([Ie])=>Se.includes(Number(Ie)))),m.value=Object.fromEntries(Object.entries(m.value).filter(([Ie])=>Se.includes(Number(Ie))))},{deep:!0});function he(){const Me=L.value==="text";P.value.filter(Se=>Y.value.includes(Se.id)).forEach(async Se=>{var St;const Ie=Se.id;if(Ie==null||f.value[Ie])return;const ze=L.value?G(L.value):[],gt=(Me?Se.medias:ze.map((Pt,dn)=>Se.medias[dn]).filter(Boolean)).filter(Pt=>Pt==null?void 0:Pt.prompt).map(Pt=>({id:Pt.id,sources:Pt.sources?Pt.sources:"storyboard"}));f.value[Ie]=!0;try{const{data:Pt}=await mn.post("/production/workbench/generateVideoPrompt",{projectId:(St=r.value)==null?void 0:St.id,trackId:Ie,info:gt,model:S.value}),dn=P.value.find(on=>on.id===Ie);dn&&(dn.prompt=Pt)}finally{f.value[Ie]=!1}})}function pe(){const Me=co.confirm({header:$t("workbench.generate.generateConfirm"),body:$t("workbench.generate.generateVideosInBatches"),onConfirm:async()=>{Me.destroy();const Se=L.value?G(L.value):[];P.value.filter(Ie=>Y.value.includes(Ie.id)).forEach(async Ie=>{var Ze;const ze=Ie.id;if(!(ze==null||m.value[ze])){m.value[ze]=!0;try{const gt=Se.map((dn,on)=>Ie.medias[on]).filter(dn=>dn&&!!dn.src),St={projectId:(Ze=r.value)==null?void 0:Ze.id,duration:u(Ie.duration||l.value),scriptId:n.value,uploadData:gt.map(dn=>({id:dn.id,sources:dn.sources?dn.sources:"storyboard"})),prompt:Ie.prompt,model:S.value,mode:L.value,resolution:a.value,audio:g.value,trackId:ze};if(St.prompt==="")return window.$message.warning($t("workbench.generate.skipDataWithEmptyVideoPromptWords"));const{data:Pt}=await mn.post("/production/workbench/generateVideo",St);window.$message.success($t("workbench.generate.generateStarted")),Ye()}finally{m.value[ze]=!1}}})},onCancel:()=>{Me.destroy()}})}async function Ce(){var Se;const{data:Me}=await mn.post("/production/workbench/getGenerateData",{projectId:(Se=r.value)==null?void 0:Se.id,scriptId:n.value??0});P.value=Me.trackList,M.value={};for(const Ie of P.value)Ie.id!=null&&Ie.selectVideoId!=null&&(M.value[Ie.id]=Ie.selectVideoId);W.value=Me.storyboardList,Qe(),Ye()}function Qe(){const Me=P.value[Q.value];if(!Me)return;const Se=Me.medias;F.value=F.value.map((Ie,ze)=>{const Ze=Se[ze];return Ze!=null&&Ze.src?{...Ie,src:Ze.src,id:Ze.id,prompt:Ze.prompt,sources:Ze.sources??Ie.sources}:{...Ie,src:void 0,id:void 0,prompt:void 0}})}function ke(){const Me=P.value[Q.value];if(!(Me!=null&&Me.id)){p.value=null,o.value="";return}const Se=M.value[Me.id]??Me.selectVideoId??null;if(p.value=Se,Se==null){o.value="";return}const Ie=b.value.find(ze=>ze.videoTrackId===Me.id&&ze.id===Se);if(Ie&&Ie.state!=="生成中"&&Ie.state!=="生成失败"){o.value=Ie.src;return}o.value=""}An(()=>{var Me,Se;S.value=((Me=r.value)==null?void 0:Me.videoModel)||"",L.value=((Se=r.value)==null?void 0:Se.mode)||"",Ce()});const me=X(()=>b.value.some(Me=>Me.state==="生成中"));let _e=null;function Te(){_e===null&&(_e=window.setInterval(()=>{Ye()},3e3))}function De(){_e!==null&&(window.clearInterval(_e),_e=null)}pt(()=>me.value,Me=>{Me?Te():De()}),Qa(()=>{De()});async function Ye(){var Ie;const{data:Me}=await mn.post("/production/workbench/getVideoList",{projectId:(Ie=r.value)==null?void 0:Ie.id,scriptId:n.value??0}),Se=b.value;b.value=Me,ke();for(const ze of Me){const Ze=Se.find(gt=>gt.id===ze.id);Ze&&(Ze.state==="生成中"&&ze.state==="已完成"?window.$message.success($t("workbench.generate.generateSuccess")):Ze.state==="生成中"&&ze.state==="生成失败"&&window.$message.error(ze.errorReason||$t("workbench.generate.generateFailed")))}}pt(Q,()=>{d.value=!1,Qe(),ke()});function ot(Me){a.value=Me}function We(Me){l.value=Me,d.value=!0}function et(Me){const Se=co.confirm({header:$t("workbench.generate.del"),body:$t("workbench.generate.delVideo"),onConfirm:()=>{mn.post("/production/workbench/delVideo",{id:Me.id}).then(()=>{window.$message.success($t("workbench.generate.delSuccess")),Se.destroy(),Ye()})},onCancel:()=>{Se.destroy()}})}async function st(Me){const Se=Me.src,ze=await(await fetch(Se)).blob(),Ze=document.createElement("a");Ze.href=URL.createObjectURL(ze);const gt="视频.mp4";Ze.download=gt,document.body.appendChild(Ze),Ze.click(),document.body.removeChild(Ze),URL.revokeObjectURL(Ze.href)}return(Me,Se)=>{const Ie=Sg,ze=Si,Ze=_n("i-volume-notice"),gt=_n("i-video"),St=_n("i-close"),Pt=_n("i-plus"),dn=gc,on=T8,pn=uL,ni=pA,Zn=_n("i-volume-mute"),Pi=y1,rr=_n("i-time"),Hr=Wc,Bo=el,lo=_n("i-check"),Fr=_n("i-delete"),is=_n("i-to-bottom"),yi=py;return xe(),Ge("div",Ixs,[ge("div",Mxs,[ge("div",Pxs,[Ae(o)?(xe(),Ge("video",{key:0,src:Ae(o),class:"previewVideo",controls:"",preload:"metadata"},null,8,Fxs)):(xe(),Ge("div",Nxs,Pe(Me.$t("workbench.generate.noVideo")),1))]),ge("div",{class:Eo(["configurationParameters",{hasActive:Ae(P).length>0}])},[ge("div",Uxs,[ge("div",jxs,[c(Ie,{theme:"primary",size:"small",style:{"margin-right":"10px"}},{default:Oe(()=>[Bt("#"+Pe(Ae(Q)+1),1)]),_:1}),Bt(" "+Pe(Me.$t("workbench.generate.prompt")),1)]),c(ze,{size:"small",class:"genTextbtn",loading:Ae(k),onClick:A},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.generateText")),1)]),_:1},8,["loading"])]),ge("div",Wxs,[c(LZn,{modelValue:Ae(s),"onUpdate:modelValue":Se[0]||(Se[0]=Gt=>Fn(s)?s.value=Gt:null),references:Ae(j),placeholder:Me.$t("workbench.generate.promptPlaceholder")},null,8,["modelValue","references","placeholder"])]),ge("div",Vxs,[Ae(E)?(xe(),Ge(sn,{key:0},[(xe(!0),Ge(sn,null,Bi(Ae(F),(Gt,gi)=>uu((xe(),Ge("div",{class:"uploadBtn c fc",key:gi},[Gt.src?(xe(),Ge(sn,{key:0},[Gt.fileType==="image"?(xe(),Ge("img",{key:0,src:Gt.src,class:"uploadPreview"},null,8,zxs)):(xe(),Ge("div",Hxs,[Gt.fileType==="audio"?(xe(),Ut(Ze,{key:0,size:"24"})):(xe(),Ut(gt,{key:1,size:"24"}))])),ge("div",{class:"clearBtn",onClick:Mr(ri=>ue(gi),["stop"])},[c(St,{size:"12"})],8,$xs)],64)):nn("",!0)])),[[h1,Gt.src]])),128)),ge("div",{class:"uploadBtn c fc",onClick:J},[c(Pt,{size:"24"}),Bt(" "+Pe(Me.$t("workbench.generate.addReference")),1)])],64)):(xe(!0),Ge(sn,{key:1},Bi(Ae(F),(Gt,gi)=>(xe(),Ge("div",{class:"uploadBtn c fc",key:gi,onClick:ri=>re(gi)},[Gt.src?(xe(),Ge(sn,{key:0},[ge("img",{src:Gt.src,class:"uploadPreview"},null,8,Gxs),ge("div",{class:"clearBtn",onClick:Mr(ri=>ue(gi),["stop"])},[c(St,{size:"12"})],8,Yxs)],64)):(xe(),Ge(sn,{key:1},[c(Pt,{size:"24"}),Bt(" "+Pe(Gt.label),1)],64))],8,Xxs))),128))]),c(dn,{visible:Ae(H),"onUpdate:visible":Se[1]||(Se[1]=Gt=>Fn(H)?H.value=Gt:null),header:Me.$t("workbench.generate.selectStoryboard"),footer:!1,width:"800px",placement:"center"},{default:Oe(()=>[ge("div",Zxs,[(xe(!0),Ge(sn,null,Bi(Ae(W),Gt=>(xe(),Ge("div",{class:"storyboardItem",key:Gt.id,onClick:gi=>le(Gt)},[ge("img",{src:Gt.src},null,8,Kxs)],8,qxs))),128))])]),_:1},8,["visible","header"]),ge("div",Jxs,[ge("div",e5s,[ge("div",t5s,[c(on,{modelValue:Ae(S),"onUpdate:modelValue":Se[2]||(Se[2]=Gt=>Fn(S)?S.value=Gt:null),type:"video",size:"small"},null,8,["modelValue"])]),c(ni,{size:"small",class:"mode",modelValue:Ae(L),"onUpdate:modelValue":Se[3]||(Se[3]=Gt=>Fn(L)?L.value=Gt:null)},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(_),(Gt,gi)=>(xe(),Ut(pn,{key:gi,value:Gt.value,label:Gt.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),c(ze,{size:"small",variant:"outline",theme:Ae(g)?"success":"danger",class:"audio",onClick:Se[4]||(Se[4]=Gt=>g.value=!Ae(g))},{icon:Oe(()=>[Ae(g)?(xe(),Ut(Ze,{key:0,size:"16"})):(xe(),Ut(Zn,{key:1,size:"16"}))]),_:1},8,["theme"]),ge("div",n5s,[c(Pi,{trigger:"click",placement:"top","overlay-class-name":"resDurPickerPopup","overlay-inner-style":{padding:"16px",borderRadius:"8px"}},{content:Oe(()=>[ge("div",i5s,[Array.isArray(Ae(C).durationResolutionMap)&&Ae(C).durationResolutionMap.length>0&&Ae(C).durationResolutionMap[0].resolution&&Ae(C).durationResolutionMap[0].resolution.length>0?(xe(),Ge("div",r5s,[ge("div",o5s,Pe(Me.$t("workbench.generate.resolution")),1),ge("div",s5s,[(xe(!0),Ge(sn,null,Bi(Ae(C).durationResolutionMap[0].resolution,Gt=>(xe(),Ge("div",{key:Gt,class:Eo(["pickerOption",{active:Ae(a)===Gt}]),onClick:gi=>ot(Gt)},Pe(Gt),11,a5s))),128))])])):nn("",!0),Array.isArray(Ae(C).durationResolutionMap)&&Ae(C).durationResolutionMap.length>0&&Ae(C).durationResolutionMap[0].duration&&Ae(C).durationResolutionMap[0].duration.length>0?(xe(),Ge("div",l5s,[ge("div",c5s,Pe(Me.$t("workbench.generate.duration")),1),ge("div",d5s,[(xe(!0),Ge(sn,null,Bi(Ae(C).durationResolutionMap[0].duration,Gt=>(xe(),Ge("div",{key:Gt,class:Eo(["pickerOption",{active:Ae(h)===Gt}]),onClick:gi=>We(Gt)},Pe(Gt)+"s ",11,u5s))),128))])])):nn("",!0)])]),default:Oe(()=>[c(Ie,{class:"btn",variant:"outline"},{default:Oe(()=>[Bt(Pe(Ae(a))+"·"+Pe(Ae(h))+"s",1)]),_:1})]),_:1})])]),ge("div",h5s,[c(ze,{size:"small",loading:Ae(v),onClick:ee},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.generate")),1)]),_:1},8,["loading"])])]),ge("div",f5s,[ge("div",g5s,[c(rr),ge("span",m5s,Pe(Me.$t("workbench.generate.history"))+"("+Pe(Ae(w).length)+")",1)]),ge("div",k5s,[(xe(!0),Ge(sn,null,Bi(Ae(w),Gt=>(xe(),Ge("div",{class:Eo(["historyItem",{active:Gt.id===Ae(p),generating:Gt.state==="生成中",failed:Gt.state==="生成失败"}]),key:Gt.id,onClick:gi=>O(Gt)},[ge("video",{src:Gt.src,preload:"metadata",muted:""},null,8,A5s),Gt.state==="生成中"?(xe(),Ge("div",p5s,[c(Hr,{size:"24px"}),ge("span",b5s,Pe(Me.$t("workbench.generate.generating")),1)])):Gt.state==="生成失败"?(xe(),Ut(Bo,{key:1,placement:"top",content:Gt.errorReason,theme:"light"},{default:Oe(()=>[c(Ie,{class:"stateTag",theme:"danger",size:"small"},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.generateFailed")),1)]),_:1})]),_:1},8,["content"])):nn("",!0),Gt.state!=="生成中"?(xe(),Ge("div",{key:2,class:"selectBtn",onClick:Mr(gi=>y(Gt),["stop"])},[c(lo,{size:"16"})],8,w5s)):nn("",!0),ge("div",{class:"delBtn",onClick:Mr(gi=>et(Gt),["stop"])},[c(Fr,{size:"16"})],8,O5s),Gt.state!=="生成中"&&Gt.state!=="生成失败"?(xe(),Ge("div",{key:3,class:"download",onClick:Mr(gi=>st(Gt),["stop"])},[c(is,{size:"16"})],8,y5s)):nn("",!0)],10,v5s))),128))])])],2)]),ge("div",C5s,[ge("div",_5s,[ge("div",S5s,[c(yi,{modelValue:Ae(ie),"onUpdate:modelValue":Se[5]||(Se[5]=Gt=>Fn(ie)?ie.value=Gt:null),onChange:te},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.selectAll")),1)]),_:1},8,["modelValue"]),Ae(Y).length?(xe(),Ge("span",L5s,Pe(Me.$t("workbench.generate.selected"))+" "+Pe(Ae(Y).length)+" 段",1)):nn("",!0)]),ge("div",x5s,[c(ze,{size:"small",variant:"outline",onClick:he},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.batchGenerateText")),1)]),_:1}),c(ze,{size:"small",variant:"outline",onClick:pe},{default:Oe(()=>[Bt(Pe(Me.$t("workbench.generate.batchGenerateVideo")),1)]),_:1})])]),ge("div",E5s,[(xe(!0),Ge(sn,null,Bi(Ae(P),(Gt,gi)=>(xe(),Ge("div",{class:Eo(["item",{active:gi===Ae(Q)}]),key:gi,onClick:ri=>Q.value=gi},[c(yi,{class:"trackCheck",checked:Gt.id!=null&&Ae(Y).includes(Gt.id),onClick:Se[6]||(Se[6]=Mr(()=>{},["stop"])),onChange:ri=>Z(Gt.id,ri)},null,8,["checked","onChange"]),c(Ie,{class:"indexTag",size:"small"},{default:Oe(()=>[Bt("#"+Pe(gi+1),1)]),_:2},1024),Gt.selectVideoId?(xe(),Ut(Ie,{key:0,class:"selectTag",theme:"success",size:"small"},{default:Oe(()=>[...Se[7]||(Se[7]=[Bt("已选择",-1)])]),_:1})):nn("",!0),Gt.medias.length?(xe(),Ge("div",Q5s,[(xe(!0),Ge(sn,null,Bi(Gt.medias,(ri,tr)=>(xe(),Ge(sn,{key:tr},[ri.fileType==="image"?(xe(),Ge("img",{key:0,src:ri.src,class:"thumb"},null,8,D5s)):(xe(),Ge("div",B5s,[ri.fileType==="audio"?(xe(),Ut(Ze,{key:0,size:"20"})):(xe(),Ut(gt,{key:1,size:"24"}))]))],64))),128))])):(xe(),Ge("span",R5s,Pe(Me.$t("workbench.generate.emptyTrack",gi+1)),1)),ge("div",{class:"deleteBtn",onClick:Mr(ri=>R(gi),["stop"])},[c(St,{size:"14"})],8,I5s)],10,T5s))),128)),ge("div",{class:"item addItem c",onClick:B},[c(Pt,{size:"36"})])])])])}}}),P5s=oo(M5s,[["__scopeId","data-v-8ebd1229"]]);var F5s=Object.defineProperty,Oqn=e=>{throw TypeError(e)},N5s=(e,t,n)=>t in e?F5s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jy=(e,t,n)=>N5s(e,typeof t!="symbol"?t+"":t,n),nat=(e,t,n)=>t.has(e)||Oqn("Cannot "+n),Ht=(e,t,n)=>(nat(e,t,"read from private field"),n?n.call(e):t.get(e)),bo=(e,t,n)=>t.has(e)?Oqn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Rr=(e,t,n,r)=>(nat(e,t,"write to private field"),t.set(e,n),n),U5s=(e,t,n)=>(nat(e,t,"access private method"),n);function Yre(e=""){return`${e}${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function j5s(){return/Mac|iPod|iPhone|iPad/.test(navigator.platform)}function Ar(e){return Math.round(e*1e3)/1e3}const G0=Wy("tracks",()=>{const e=fe([]),t=fe(new Set),n=fe({clips:[],operation:null}),r=X(()=>e.value.find(re=>re.isMain)),o=X(()=>[...e.value].sort((re,J)=>{const oe=ue=>ue.isMain?100:{effect:10,filter:20,sticker:30,subtitle:40,video:50,audio:200}[ue.type]||0,se=oe(re),le=oe(J);return se!==le?se-le:re.order-J.order})),s=X(()=>{let re=0;return e.value.forEach(J=>{J.clips.forEach(oe=>{oe.endTime>re&&(re=oe.endTime)})}),re}),a=X(()=>{const re=[];return e.value.forEach(J=>{J.clips.forEach(oe=>{t.value.has(oe.id)&&re.push(oe)})}),re});function l(re){if((re.type==="video"||re.type==="audio")&&"playbackRate"in re){const J=re,oe=J.playbackRate||1;if(typeof J.trimStart=="number"&&typeof J.trimEnd=="number"){const se=J.trimEnd-J.trimStart,le=Ar(se/oe);return{...J,endTime:Ar(J.startTime+le)}}}return re}function d(re){return re.map(J=>({...J,clips:J.clips?J.clips.map(l):[]}))}function u(re){e.value=d(re)}function h(re){re.clips&&re.clips.length>0&&(re.clips=re.clips.map(l)),e.value.push(re)}function g(re){const J=e.value.findIndex(oe=>oe.id===re);J!==-1&&e.value.splice(J,1)}function m(re,J){const oe=e.value.find(se=>se.id===re);oe&&Object.assign(oe,J)}function v(re,J){const oe=e.value.findIndex(le=>le.id===re);if(oe===-1)return null;const se={id:`track-${Date.now()}`,type:J,name:`${J} ${k(J)+1}`,visible:!0,locked:!1,clips:[],order:oe};return e.value.forEach(le=>{le.order>=oe&&le.order++}),e.value.splice(oe,0,se),se}function f(re,J){const oe=e.value.findIndex(le=>le.id===re);if(oe===-1)return null;const se={id:`track-${Date.now()}`,type:J,name:`${J} ${k(J)+1}`,visible:!0,locked:!1,clips:[],order:oe+1};return e.value.forEach(le=>{le.order>oe&&le.order++}),e.value.splice(oe+1,0,se),se}function k(re){return e.value.filter(J=>J.type===re).length}function A(re,J){const oe=e.value.find(se=>se.id===re);if(oe){const se=l(J);oe.clips.push(se)}}function p(re){e.value.forEach(J=>{const oe=J.clips.findIndex(se=>se.id===re);if(oe!==-1){const se=J.clips[oe];if(se.type==="video"){J.clips.filter(ue=>{if(ue.type!=="transition")return!1;const ee=ue,de=(ee.startTime+ee.endTime)/2,z=Math.abs(de-se.startTime){const ee=J.clips.findIndex(de=>de.id===ue.id);ee!==-1&&(J.clips.splice(ee,1),t.value.delete(ue.id))});const le=J.clips.findIndex(ue=>ue.id===re);le!==-1&&J.clips.splice(le,1)}else J.clips.splice(oe,1)}}),t.value.delete(re)}function b(re){re.forEach(J=>p(J))}function w(re,J){const oe={...re};for(const se in J)if(Object.prototype.hasOwnProperty.call(J,se)){const le=J[se],ue=re[se];le==null?oe[se]=le:typeof le=="object"&&!Array.isArray(le)&&typeof ue=="object"&&ue!==null&&!Array.isArray(ue)?oe[se]=w(ue,le):oe[se]=le}return oe}function O(re,J){e.value.forEach(oe=>{const se=oe.clips.findIndex(le=>le.id===re);if(se!==-1){const le=oe.clips[se];oe.clips[se]=w(le,J)}})}function y(re,J){let oe=null;for(const se of e.value){const le=se.clips.findIndex(ue=>ue.id===re);if(le!==-1){oe=se.clips.splice(le,1)[0],se.id;break}}if(oe){const se=e.value.find(le=>le.id===J);se&&(oe.trackId=J,se.clips.push(oe))}}function C(re){for(const J of e.value){const oe=J.clips.find(se=>se.id===re);if(oe)return oe}}function _(re,J=!1){J||t.value.clear(),t.value.add(re)}function S(re){t.value.has(re)?t.value.delete(re):t.value.add(re)}function L(re){t.value.delete(re)}function E(){t.value.clear()}function T(re,J,oe,se){const le=e.value.find(ue=>ue.id===re);return le?le.clips.some(ue=>se&&ue.id===se?!1:ue.startTimeJ):!1}function D(){e.value=[],t.value.clear()}function P(){const re=[];e.value.forEach(J=>{J.isMain||J.clips.some(oe=>oe.type!=="transition")||re.push(J.id)}),re.forEach(J=>{g(J)})}function Q(re){const J=re||Array.from(t.value);if(J.length===0)return!1;const oe=[];return J.forEach(se=>{const le=C(se);le&&oe.push(JSON.parse(JSON.stringify(le)))}),oe.length>0?(n.value={clips:oe,operation:"copy"},!0):!1}function M(re){const J=re||Array.from(t.value);if(J.length===0)return!1;const oe=[];return J.forEach(se=>{const le=C(se);le&&oe.push(JSON.parse(JSON.stringify(le)))}),oe.length>0?(n.value={clips:oe,operation:"cut"},!0):!1}function B(re,J,oe,se=[]){const le=e.value.find(z=>z.id===re);if(!le)return J;const ue=le.clips.filter(z=>!se.includes(z.id)).sort((z,Y)=>z.startTime-Y.startTime);if(ue.length===0)return J;let ee=J,de=J+oe;for(const z of ue)eez.startTime&&(ee=z.endTime,de=ee+oe);return Math.max(0,ee)}function R(re,J){if(n.value.clips.length===0)return null;const oe=e.value.find(Y=>Y.id===re);if(!oe)return null;const se=[],le=()=>`clip-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,ue=Math.min(...n.value.clips.map(Y=>Y.startTime)),ee=Math.max(...n.value.clips.map(Y=>Y.endTime-ue)),de=n.value.operation==="cut"?n.value.clips.map(Y=>Y.id):[],z=B(re,J,ee,de);return n.value.clips.forEach(Y=>{const ie=Y.endTime-Y.startTime,te=Y.startTime-ue,Z={...Y,id:le(),trackId:re,startTime:z+te,endTime:z+te+ie,selected:!1};oe.clips.push(Z),se.push(Z)}),n.value.operation==="cut"&&(n.value.clips.forEach(Y=>{p(Y.id)}),n.value={clips:[],operation:null}),se.length>0?se:null}function I(){return n.value.clips.length>0}function F(){return n.value}function j(){n.value={clips:[],operation:null}}function W(re,J){let oe=null,se=null,le=-1;for(const z of e.value){const Y=z.clips.findIndex(ie=>ie.id===re);if(Y!==-1){oe=z.clips[Y],se=z,le=Y;break}}if(!oe||!se||le===-1||J<=oe.startTime||J>=oe.endTime)return null;const ue=()=>`clip-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,ee={...JSON.parse(JSON.stringify(oe)),endTime:J},de={...JSON.parse(JSON.stringify(oe)),id:ue(),startTime:J,selected:!1};if("trimStart"in oe&&"trimEnd"in oe&&"originalDuration"in oe){const z=oe,Y=z.endTime-z.startTime,ie=(z.trimEnd-z.trimStart)/Y,te=(J-z.startTime)*ie,Z=z.trimStart+te;ee.trimEnd=Z,de.trimStart=Z}return se.clips.splice(le,1,ee,de),t.value.has(re)&&(t.value.delete(re),t.value.add(ee.id)),{leftClip:ee,rightClip:de}}function H(re,J,oe){const{allowShrink:se=!0,allowExpand:le=!0,handleCollision:ue=!0,keepStartTime:ee=!0}=oe||{};if(J<.25||J>4)return{success:!1,message:"播放倍速必须在 0.25 到 4 之间"};let de=null,z=null;for(const ot of e.value){const We=ot.clips.find(et=>et.id===re);if(We){de=We,z=ot;break}}if(!de||!z)return{success:!1,message:"未找到指定的 Clip"};if(de.type!=="video"&&de.type!=="audio")return{success:!1,message:"只有视频或音频类型的 Clip 可以调整倍速"};const Y=de,ie=Y.playbackRate||1;if(Math.abs(ie-J)<.001)return{success:!0};const te=Y.trimEnd-Y.trimStart,Z=Y.endTime-Y.startTime,he=Ar(te/J),pe=he>Z,Ce=he{if(ot.type!=="transition")return!1;const We=ot,et=(We.startTime+We.endTime)/2,st=Math.abs(et-Y.startTime)ot.id!==re&&ot.type!=="transition").sort((ot,We)=>ot.startTime-We.startTime),Ye=De.filter(ot=>Qeot.startTime);if(Ye.length>0){if(!ue)return{success:!1,message:"会与其他 Clip 产生碰撞"};const ot=Ye.filter(et=>et.startTime>=Y.startTime),We=ke-Math.min(...ot.map(et=>et.startTime));if(We>0){const et=De.filter(st=>st.startTime>=Y.endTime);for(const st of et){const Me=Ar(st.startTime+We),Se=Ar(st.endTime+We);O(st.id,{startTime:Me,endTime:Se}),_e.push({id:st.id,startTime:Me,endTime:Se})}}}O(re,{playbackRate:J,startTime:Qe,endTime:ke});for(const ot of Te){const We=ot,et=(We.startTime+We.endTime)/2,st=z.clips.filter(ze=>ze.type!=="transition");({...Y});const Me=Math.abs(et-Y.startTime)Ze.id!==re&&Math.abs(Ze.startTime-ke)<.01);if(Ie=!!ze,Ie&&ze){const Ze=(ke+ze.startTime)/2,gt=We.transitionDuration/2;O(ot.id,{startTime:Ar(Ze-gt),endTime:Ar(Ze+gt)})}}else if(Me&&!ee){const ze=st.find(Ze=>Ze.id!==re&&Math.abs(Ze.endTime-Qe)<.01);if(Ie=!!ze,Ie&&ze){const Ze=(ze.endTime+Qe)/2,gt=We.transitionDuration/2;O(ot.id,{startTime:Ar(Ze-gt),endTime:Ar(Ze+gt)})}}else Me&&ee&&(Ie=!0);Ie||(p(ot.id),me.push(ot.id))}return{success:!0,removedTransitions:me.length>0?me:void 0,adjustedClips:_e.length>0?_e:void 0}}function $(re,J){const oe=C(re);if(!oe||oe.type!=="video"&&oe.type!=="audio")return null;const se=oe,le=se.trimEnd-se.trimStart;return Ar(le/J)}function G(re,J,oe=!0){const se=C(re);if(!se||se.type!=="video"&&se.type!=="audio")return{willCollide:!1};const le=se,ue=le.trimEnd-le.trimStart,ee=Ar(ue/J);let de,z;oe?(de=le.startTime,z=Ar(le.startTime+ee)):(z=le.endTime,de=Ar(Math.max(0,le.endTime-ee)));let Y=null;for(const te of e.value)if(te.clips.some(Z=>Z.id===re)){Y=te;break}if(!Y)return{willCollide:!1,newDuration:ee};const ie=Y.clips.filter(te=>te.id!==re&&te.type!=="transition"&&dete.startTime);return{willCollide:ie.length>0,collidingClipIds:ie.map(te=>te.id),newDuration:ee}}function q(re,J,oe=1){const se=J-re;return Ar(se/oe)}return{tracks:e,selectedClipIds:t,clipboard:n,mainTrack:r,sortedTracks:o,totalDuration:s,selectedClips:a,addTrack:h,addTrackAbove:v,addTrackBelow:f,removeTrack:g,updateTrack:m,getTrackCountByType:k,setTracks:u,normalizeTracks:d,normalizeClipDuration:l,addClip:A,removeClip:p,removeClips:b,updateClip:O,moveClipToTrack:y,getClip:C,selectClip:_,toggleClipSelection:S,deselectClip:L,clearSelection:E,hasOverlap:T,reset:D,cleanupEmptyTracks:P,copyClips:Q,cutClips:M,pasteClips:R,hasClipboardContent:I,getClipboardContent:F,clearClipboard:j,splitClip:W,setClipPlaybackRate:H,getClipDurationAtRate:$,checkPlaybackRateCollision:G,calculateTrackDuration:q}}),ML=Wy("playback",()=>{const e=fe(!1),t=fe(0),n=fe(1),r=fe(0);let o=null,s=0;const a=X(()=>{const y=G0().totalDuration;return Math.max(y,r.value)}),l=X(()=>u(t.value)),d=X(()=>u(a.value));function u(y,C=30){const _=Math.floor(y*C),S=Math.floor(_/(C*3600)),L=Math.floor(_%(C*3600)/(C*60)),E=Math.floor(_%(C*60)/C),T=_%C;return`${String(S).padStart(2,"0")}:${String(L).padStart(2,"0")}:${String(E).padStart(2,"0")}:${String(T).padStart(2,"0")}`}function h(y){if(e.value){if(s>0){const C=(y-s)/1e3,_=t.value+C*n.value,S=a.value;if(_>=S){t.value=S,f();return}t.value=_}s=y,o=requestAnimationFrame(h)}}function g(){s=0,o=requestAnimationFrame(h)}function m(){o!==null&&(cancelAnimationFrame(o),o=null),s=0}function v(){e.value||(e.value=!0,g())}function f(){e.value&&(e.value=!1,m())}function k(){e.value?f():v()}function A(y){const C=a.value>0?a.value:1/0;t.value=Math.max(0,Math.min(y,C))}function p(y){n.value=y}function b(y){r.value=y}function w(y){const C=a.value;t.value=Math.max(0,Math.min(t.value+y,C))}function O(){f(),t.value=0,n.value=1,r.value=0}return{isPlaying:e,currentTime:t,playbackRate:n,duration:r,effectiveDuration:a,formattedCurrentTime:l,formattedDuration:d,formatTime:u,play:v,pause:f,togglePlay:k,seekTo:A,setPlaybackRate:p,setDuration:b,adjustTime:w,reset:O}}),TE=Wy("history",()=>{const e=fe([]),t=fe(-1),n=fe(50),r=X(()=>t.value>0),o=X(()=>t.valuen.value?e.value.shift():t.value++}function l(v){const f=G0(),k=JSON.parse(v.snapshot);f.tracks=k.tracks,f.selectedClipIds.clear(),k.selectedClipIds.forEach(A=>{f.selectedClipIds.add(A)})}function d(){if(!r.value)return;t.value--;const v=e.value[t.value];l(v)}function u(){if(!o.value)return;t.value++;const v=e.value[t.value];l(v)}function h(){e.value=[],t.value=-1,a("初始状态")}function g(){e.value=[],t.value=-1}function m(){g()}return{historyStack:e,currentIndex:t,maxHistorySize:n,canUndo:r,canRedo:o,createSnapshot:s,pushSnapshot:a,restoreSnapshot:l,undo:d,redo:u,initialize:h,clear:g,reset:m}}),iat="video-track-scale-settings";function W5s(){try{const e=localStorage.getItem(iat);if(e)return JSON.parse(e)}catch(e){console.warn("Failed to load scale settings from localStorage:",e)}return null}function V5s(e){try{localStorage.setItem(iat,JSON.stringify(e))}catch(t){console.warn("Failed to save scale settings to localStorage:",t)}}const EA=Wy("scale",()=>{const e=W5s(),t=fe((e==null?void 0:e.scale)??1),n=fe(.1),r=fe(10),o=fe(100),s=fe((e==null?void 0:e.snapEnabled)??!0),a=fe(10);pt([t,s],([y,C])=>{V5s({scale:y,snapEnabled:C})},{immediate:!1});const l=X(()=>o.value*t.value),d=X(()=>{const y=t.value;return y>=5?{majorInterval:1,minorInterval:1/30,majorHeight:20,minorHeight:8}:y>=2?{majorInterval:1,minorInterval:.1,majorHeight:20,minorHeight:10}:y>=1?{majorInterval:1,minorInterval:.2,majorHeight:20,minorHeight:10}:y>=.5?{majorInterval:2,minorInterval:.5,majorHeight:20,minorHeight:10}:y>=.2?{majorInterval:5,minorInterval:1,majorHeight:20,minorHeight:10}:{majorInterval:10,minorInterval:2,majorHeight:20,minorHeight:10}});function u(y){t.value=Math.max(n.value,Math.min(y,r.value))}function h(y=.1){u(t.value+y)}function g(y=.1){u(t.value-y)}function m(){s.value=!s.value}function v(y){s.value=y}function f(y){return y*l.value}function k(y){return y/l.value}function A(y,C){if(!s.value||C.length===0)return y;let _=y,S=a.value;for(const L of C){const E=Math.abs(y-L);E{const e=G0(),t=EA(),n=TE(),r=fe(!1),o=fe([]),s=fe(0),a=fe(0),l=fe(""),d=fe(new Map),u=fe(0),h=fe(0),g=fe({shift:!1}),m=fe(!0),v=fe({x:0,y:0}),f=fe({enabled:!0,edgeThreshold:80,scrollSpeed:8,maxScrollSpeed:25}),k=fe(null),A=fe(null),p=fe(null),b=fe(null),w=fe(0),O=fe({trackId:"",startTime:0,endTime:0,needNewTrack:!1,visible:!1,clipType:""}),y=fe("");let C=document;const _=X(()=>new Set(o.value.map(le=>le.id))),S=X(()=>!r.value||!O.value.visible?0:O.value.endTime);function L(le){le.enableCrossTrackDrag!==void 0&&(m.value=le.enableCrossTrackDrag),le.edgeScroll&&Object.assign(f.value,le.edgeScroll)}function E(le,ue,ee){k.value=le,A.value=ue,b.value=ee||null}function T(le){if(!A.value)return;const ue=Math.max(0,A.value.scrollLeft+le);A.value.scrollLeft=ue,b.value&&b.value(ue)}function D(){if(!r.value||!f.value.enabled){M();return}const le=k.value,ue=A.value;if(!le||!ue)return;const ee=le.getBoundingClientRect(),{edgeThreshold:de,scrollSpeed:z,maxScrollSpeed:Y}=f.value,ie=u.value-ee.left;let te=0;if(ie0){const Z=Math.max(0,de-ie)/de;te=-Math.min(z+Z*(Y-z),Y)}else if(ie>ee.width-de){const Z=ue.scrollWidth-ue.clientWidth+500;if(ue.scrollLeft40;let te=l.value;if(m.value&&ie){const Ce=oe(h.value);Ce&&(te=Ce)}y.value=te;let Z=Ar(Y.startTime+de);t.snapEnabled&&!g.value.shift&&(Z=J(Z,z,te)),Z=Math.max(0,Z);const he=Y.endTime-Y.startTime,pe=Z+he;I(te,Z,pe,z.type)}function Q(){p.value===null&&(p.value=requestAnimationFrame(D))}function M(){p.value!==null&&(cancelAnimationFrame(p.value),p.value=null)}function B(le,ue,ee){var de;le.type!=="transition"&&(C=ee||((de=ue.target)==null?void 0:de.ownerDocument)||document,e.selectClip(le.id),o.value=[le],r.value=!0,s.value=ue.clientX,a.value=ue.clientY,u.value=ue.clientX,h.value=ue.clientY,l.value=le.trackId,y.value=le.trackId,d.value.clear(),d.value.set(le.id,{startTime:le.startTime,endTime:le.endTime,trackId:le.trackId}),v.value={x:0,y:0},w.value=0,O.value={trackId:le.trackId,startTime:le.startTime,endTime:le.endTime,needNewTrack:!1,visible:!1,clipType:le.type},C.addEventListener("mousemove",R),C.addEventListener("mouseup",W),Q())}function R(le){if(!r.value||o.value.length===0)return;g.value.shift=le.shiftKey,u.value=le.clientX,h.value=le.clientY;const ue=le.clientX-s.value,ee=le.clientY-a.value;v.value={x:ue,y:ee};const de=(ue+w.value)/t.actualPixelsPerSecond,z=o.value[0],Y=d.value.get(z.id);if(!Y)return;const ie=Math.abs(ee)>40;let te=l.value;if(m.value&&ie){const Ce=oe(h.value);Ce&&(te=Ce)}y.value=te;let Z=Ar(Y.startTime+de);t.snapEnabled&&!g.value.shift&&(Z=J(Z,z,te)),Z=Math.max(0,Z);const he=Y.endTime-Y.startTime,pe=Z+he;I(te,Z,pe,z.type)}function I(le,ue,ee,de){const z=e.tracks.find(Ce=>Ce.id===le),Y=l.value,ie=le!==Y,te=ee-ue;let Z=ue,he=ee,pe=!1;if(ie)if(!z)pe=!0;else{const Ce=de;z.type===Ce?j(le,ue,ee)&&(pe=!0):pe=!0}else{const Ce=F(le,ue,te);Z=Ce.startTime,he=Ce.endTime}O.value={trackId:le,startTime:Z,endTime:he,needNewTrack:pe,visible:!0,clipType:de}}function F(le,ue,ee){const de=e.tracks.find(Z=>Z.id===le);if(!de)return{startTime:ue,endTime:ue+ee};const z=new Set(o.value.map(Z=>Z.id)),Y=de.clips.filter(Z=>!z.has(Z.id)&&Z.type!=="transition").sort((Z,he)=>Z.startTime-he.startTime);let ie=ue,te=ue+ee;for(const Z of Y)if(ieZ.startTime){const he=(ie+te)/2,pe=(Z.startTime+Z.endTime)/2;(heZ.startTime&&(ie=Ar(Z.endTime)))):ie=Ar(Z.endTime),te=ie+ee;break}return{startTime:ie,endTime:te}}function j(le,ue,ee){const de=e.tracks.find(Y=>Y.id===le);if(!de)return!1;const z=new Set(o.value.map(Y=>Y.id));return de.clips.some(Y=>z.has(Y.id)||Y.type==="transition"?!1:Y.startTimeue)}function W(){if(!r.value||o.value.length===0){q();return}const le=y.value!==l.value;if(!m.value&&le){q();return}le?G():H(),se(),e.cleanupEmptyTracks(),n.pushSnapshot("移动片段"),q()}function H(){const le=O.value,ue=o.value[0],ee=d.value.get(ue.id);if(!ee)return;const de=le.startTime-ee.startTime,z=new Map;o.value.forEach(Y=>{const ie=d.value.get(Y.id);if(ie){const te=ie.endTime-ie.startTime,Z=Ar(Math.max(0,ie.startTime+de)),he=Ar(Z+te);e.updateClip(Y.id,{startTime:Z,endTime:he}),z.set(Y.id,{startTime:Z,endTime:he})}}),$(le.trackId,z)}function $(le,ue){const ee=e.tracks.find(Y=>Y.id===le);if(!ee)return;const de=[...ee.clips].filter(Y=>Y.type!=="transition").map(Y=>{const ie=ue.get(Y.id);return{id:Y.id,startTime:ie?ie.startTime:Y.startTime,endTime:ie?ie.endTime:Y.endTime}}).sort((Y,ie)=>Y.startTime-ie.startTime);if(de.length<2)return;const z=[];for(let Y=0;Yte.startTime){const Z=te.endTime-te.startTime,he=Ar(ie.endTime),pe=Ar(he+Z);te.startTime=he,te.endTime=pe,z.push({id:te.id,startTime:he,endTime:pe})}}z.forEach(Y=>{e.updateClip(Y.id,{startTime:Y.startTime,endTime:Y.endTime})})}function G(){const le=O.value,ue=o.value[0],ee=d.value.get(ue.id);if(!ee)return;const de=ue.type;let z=null;if(le.needNewTrack){const te=re(de);e.addTrack(te),z=te}else z=e.tracks.find(te=>te.id===le.trackId)||null;if(!z)return;const Y=le.startTime-ee.startTime,ie=new Map;o.value.forEach(te=>{const Z=d.value.get(te.id);if(Z){const he=Z.endTime-Z.startTime,pe=Ar(Math.max(0,Z.startTime+Y)),Ce=Ar(pe+he);te.trackId!==z.id&&e.moveClipToTrack(te.id,z.id),e.updateClip(te.id,{startTime:pe,endTime:Ce}),ie.set(te.id,{startTime:pe,endTime:Ce})}}),$(z.id,ie)}function q(){M(),r.value=!1,o.value=[],d.value.clear(),v.value={x:0,y:0},w.value=0,O.value={trackId:"",startTime:0,endTime:0,needNewTrack:!1,visible:!1,clipType:""},y.value="",C.removeEventListener("mousemove",R),C.removeEventListener("mouseup",W)}function re(le){const ue=e.getTrackCountByType(le),ee={video:"视频",audio:"音频",subtitle:"字幕",sticker:"贴纸",filter:"滤镜",effect:"特效"};return{id:Yre("track-"),type:le,name:`${ee[le]||le}${ue+1}`,visible:!0,locked:!1,clips:[],order:e.tracks.length}}function J(le,ue,ee){if(g.value.shift||!t.snapEnabled)return le;const de=e.tracks.find(Z=>Z.id===ee);if(!de)return le;const z=[],Y=new Set(e.selectedClipIds);if(de.clips.forEach(Z=>{Z.id!==ue.id&&!Y.has(Z.id)&&Z.type!=="transition"&&(z.push(Z.startTime),z.push(Z.endTime))}),z.length===0)return le;const ie=t.timeToPixels(le),te=t.snapToPosition(ie,z.map(Z=>t.timeToPixels(Z)));return Ar(t.pixelsToTime(te))}function oe(le){const ue=document.querySelectorAll(".tracks__track");for(const ee of ue){const de=ee.getBoundingClientRect();if(le>=de.top&&le<=de.bottom)return ee.dataset.trackId||null}return null}function se(){e.tracks.forEach(le=>{const ue=[];le.clips.forEach(ee=>{if(ee.type!=="transition")return;const de=(ee.startTime+ee.endTime)/2,z=le.clips.find(ie=>ie.type!=="transition"&&Math.abs(ie.endTime-de)<.1),Y=le.clips.find(ie=>ie.type!=="transition"&&ie!==z&&Math.abs(ie.startTime-de)<.1);(!z||!Y||Math.abs(z.endTime-Y.startTime)>.1)&&ue.push(ee.id)}),ue.forEach(ee=>{e.removeClip(ee)})})}return{isDragging:r,draggedClips:o,draggedClipIds:_,dragOffset:v,previewPosition:O,previewEndTime:S,currentTargetTrackId:y,dragStartTrackId:l,edgeScrollConfig:f,setConfig:L,setScrollContainers:E,startDrag:B,handleDragMove:R,handleDragEnd:W,resetDragState:q,startEdgeScroll:Q,stopEdgeScroll:M}});function z5s(e={}){const t=G0(),n=ML(),r=TE(),o=EA(),s=e.callbacks||{},a=fe(!1);function l(){var C;if(!((C=e.containerRef)!=null&&C.value))return!0;const _=document.activeElement;return _?e.containerRef.value.contains(_):!1}function d(){var C;return(C=e.containerRef)!=null&&C.value?a.value:!0}function u(C){return!C||!(C instanceof HTMLElement)?!1:!!(C instanceof HTMLInputElement||C instanceof HTMLTextAreaElement||C instanceof HTMLSelectElement||C.isContentEditable||C.getAttribute("contenteditable")==="true")}function h(C){var _,S;const L=j5s()?C.metaKey:C.ctrlKey;if(C.code==="Space"){if(u(C.target))return;C.preventDefault(),n.isPlaying?(n.pause(),(_=s.onPause)==null||_.call(s)):(n.play(),(S=s.onPlay)==null||S.call(s));return}if(d()&&!g(C)){if(L&&C.code==="KeyZ"&&!C.shiftKey){C.preventDefault(),r.undo();return}if(L&&C.code==="KeyY"||L&&C.shiftKey&&C.code==="KeyZ"){C.preventDefault(),r.redo();return}if(L&&C.code==="KeyC"){C.preventDefault(),m();return}if(L&&C.code==="KeyX"){C.preventDefault(),v();return}if(L&&C.code==="KeyV"){C.preventDefault(),f();return}if(C.code==="Delete"||C.code==="Backspace"){C.preventDefault(),k();return}if(L&&(C.code==="Equal"||C.code==="NumpadAdd")){C.preventDefault(),o.zoomIn(.1);return}if(L&&(C.code==="Minus"||C.code==="NumpadSubtract")){C.preventDefault(),o.zoomOut(.1);return}if(C.code==="ArrowRight"){C.preventDefault(),n.adjustTime(.1);return}if(C.code==="ArrowLeft"){C.preventDefault(),n.adjustTime(-.1);return}if(C.code==="Escape"){C.preventDefault(),t.clearSelection();return}}}function g(C){var _;const S=C.target;return S instanceof HTMLInputElement||S instanceof HTMLTextAreaElement||S.isContentEditable?((_=e.containerRef)!=null&&_.value&&e.containerRef.value.contains(S),!0):!1}function m(){var C;const _=Array.from(t.selectedClipIds);_.length!==0&&(t.copyClips(_),(C=s.onCopy)==null||C.call(s,_))}function v(){var C;const _=Array.from(t.selectedClipIds);_.length!==0&&(t.cutClips(_),(C=s.onCut)==null||C.call(s,_))}function f(){var C;if(!t.hasClipboardContent())return;const _=t.selectedClips;let S;if(_.length>0?S=_[0].trackId:t.mainTrack&&(S=t.mainTrack.id),!S)return;const L=n.currentTime,E=t.pasteClips(S,L);E&&(r.pushSnapshot("粘贴片段"),(C=s.onPaste)==null||C.call(s,E,S,L))}function k(){var C;const _=Array.from(t.selectedClipIds);_.length!==0&&(t.removeClips(_),r.pushSnapshot("删除片段"),(C=s.onDelete)==null||C.call(s,_))}function A(){a.value=!0}function p(){l()||(a.value=!1)}function b(){a.value=!0}function w(C){var _;const S=C.relatedTarget;(_=e.containerRef)!=null&&_.value&&S&&(e.containerRef.value.contains(S)||(a.value=!1))}function O(){var C;const _=(C=e.containerRef)==null?void 0:C.value;_&&(_.addEventListener("mouseenter",A),_.addEventListener("mouseleave",p),_.addEventListener("focusin",b),_.addEventListener("focusout",w))}function y(){var C;const _=(C=e.containerRef)==null?void 0:C.value;_&&(_.removeEventListener("mouseenter",A),_.removeEventListener("mouseleave",p),_.removeEventListener("focusin",b),_.removeEventListener("focusout",w))}return An(()=>{document.addEventListener("keydown",h),O()}),Qa(()=>{document.removeEventListener("keydown",h),y()}),{handleKeyDown:h,isActive:a}}function H5s({scrollLeft:e,tracksWidth:t,setScrollLeft:n}){const r=ML(),o=EA();pt(()=>r.currentTime,s=>{if(!r.isPlaying)return;const a=o.actualPixelsPerSecond,l=s*a,d=e.value+t.value*.9;if(l>d){const u=t.value*.8,h=e.value+u;n(h)}})}const Lm=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},$5s={},X5s={width:"1em",height:"1em",viewBox:"0 0 24 24",preserveAspectRatio:"xMidYMid meet",fill:"none",role:"presentation",xmlns:"http://www.w3.org/2000/svg",class:"snap-icon"};function G5s(e,t){return xe(),Ge("svg",X5s,[...t[0]||(t[0]=[ge("g",null,[ge("path",{d:"M11 22h2v-3h-2v3ZM6.106 4.416l1.415-1.414 2.121 2.122-1.414 1.414-2.122-2.122ZM16.48 3.002l1.414 1.414-2.122 2.122-1.414-1.414 2.122-2.122ZM11 2h2v3h-2V2Zm6.894 17.584-1.414 1.414-2.122-2.122 1.414-1.414 2.122 2.122ZM7.52 20.998l-1.414-1.414 2.122-2.122 1.414 1.415-2.121 2.12Z",fill:"currentColor"}),ge("path",{d:"M4 16h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2Zm16-6h-7v4h7v-4ZM4 10h7v4H4v-4Z","clip-rule":"evenodd","fill-rule":"evenodd",fill:"currentColor"})],-1)])])}const Y5s=Lm($5s,[["render",G5s],["__scopeId","data-v-dca9589a"]]),Z5s={class:"tools-bar"},q5s={class:"tools-bar__section tools-bar__operations"},K5s=["disabled","onClick"],J5s={class:"tools-bar__icon"},e9s={class:"tools-bar__label"},t9s=["disabled","title","onClick"],n9s={class:"tools-bar__icon"},i9s={class:"tools-bar__label"},r9s={class:"tools-bar__section tools-bar__playback"},o9s={class:"tools-bar__time"},s9s={class:"tools-bar__time-current"},a9s={class:"tools-bar__time-duration"},l9s=["value"],c9s={class:"tools-bar__section tools-bar__scale"},d9s={class:"tools-bar__scale-config"},u9s=["title"],h9s=["title","disabled","onClick"],f9s={class:"tools-bar__scale-control"},g9s=["disabled"],m9s={class:"tools-bar__scale-slider"},k9s=["min","max"],v9s={class:"tools-bar__scale-value"},A9s=["disabled"],p9s=Je({__name:"index",props:{operationButtons:{default:()=>["reset","undo","redo","split","delete"]},scaleConfigButtons:{default:()=>["snap"]},locale:{default:()=>({})}},emits:["operation","playback:play","playback:pause"],setup(e,{emit:t}){const n=e,r=t,o=ML(),s=EA(),a=TE(),l=G0(),d=bt("config",{}),u=X(()=>o.isPlaying),h=X(()=>o.formattedCurrentTime),g=X(()=>o.formattedDuration),m=X(()=>s.snapEnabled),v=X(()=>s.minScale),f=X(()=>s.maxScale),k=fe(o.playbackRate),A=X(()=>d.playbackRates||[.5,1,2,4]),p=fe(s.scale),b=X(()=>{var H;return((H=n.locale)==null?void 0:H.snapOn)||"关闭自动吸附"}),w=X(()=>{var H;return((H=n.locale)==null?void 0:H.snapOff)||"开启自动吸附"});function O(H){return typeof H=="object"&&"type"in H&&H.type==="custom"}function y(H){return typeof H=="object"&&!("type"in H)&&"key"in H}function C(H){return typeof H=="object"&&!("type"in H)&&"key"in H}function _(H){return typeof H=="object"||typeof H=="function"}function S(H){const $=H.disabled;return typeof $=="function"?$():$??!1}function L(H){const $=H.active;return typeof $=="function"?$():$??!1}function E(H){H.onClick?H.onClick():H.key&&r("operation",H.key)}function T(H){H.onClick&&H.onClick()}function D(H){return{reset:"↺",undo:"↶",redo:"↷",split:"✂",delete:"🗑"}[H]||""}function P(H){const $=n.locale||{},G={reset:"重置",undo:"撤销",redo:"重做",split:"分割",delete:"删除"};return $[H]||G[H]||H}function Q(H){switch(H){case"undo":return!a.canUndo;case"redo":return!a.canRedo;case"split":return l.selectedClipIds.size===0;default:return!1}}function M(H){r("operation",H)}function B(){o.isPlaying?(o.pause(),r("playback:pause")):(o.play(),r("playback:play"))}function R(){o.setPlaybackRate(k.value)}function I(){s.toggleSnap()}function F(){s.zoomIn(.1),p.value=s.scale}function j(){s.zoomOut(.1),p.value=s.scale}function W(){s.setScale(p.value)}return(H,$)=>(xe(),Ge("div",Z5s,[ge("div",q5s,[Zr(H.$slots,"operations-prepend",{},void 0,!0),(xe(!0),Ge(sn,null,Bi(e.operationButtons,(G,q)=>(xe(),Ge(sn,{key:q},[typeof G=="string"?(xe(),Ge("button",{key:0,class:Eo(["tools-bar__btn",{"tools-bar__btn--disabled":Q(G)}]),disabled:Q(G),onClick:re=>M(G)},[ge("span",J5s,Pe(D(G)),1),ge("span",e9s,Pe(P(G)),1)],10,K5s)):O(G)?Zr(H.$slots,`custom-operation-${G.key}`,{key:1},void 0,!0):y(G)?(xe(),Ge("button",{key:2,class:Eo(["tools-bar__btn",[{"tools-bar__btn--disabled":S(G)},G.className]]),disabled:S(G),title:G.title,onClick:re=>E(G)},[ge("span",n9s,[_(G.icon)?(xe(),Ut(Bd(G.icon),{key:0})):(xe(),Ge(sn,{key:1},[Bt(Pe(G.icon||""),1)],64))]),ge("span",i9s,Pe(G.label||""),1)],10,t9s)):nn("",!0)],64))),128)),Zr(H.$slots,"operations-append",{},void 0,!0)]),ge("div",r9s,[Zr(H.$slots,"playback-prepend",{},void 0,!0),ge("button",{class:"tools-bar__btn tools-bar__btn--play",onClick:B},[ge("span",{class:"tools-bar__icon",style:no({marginLeft:u.value?"0":"2px"})},Pe(u.value?"⏸":"▶"),5)]),ge("div",o9s,[ge("span",s9s,Pe(h.value),1),$[2]||($[2]=ge("span",{class:"tools-bar__time-separator"},"/",-1)),ge("span",a9s,Pe(g.value),1)]),uu(ge("select",{"onUpdate:modelValue":$[0]||($[0]=G=>k.value=G),class:"tools-bar__select",onChange:R},[(xe(!0),Ge(sn,null,Bi(A.value,G=>(xe(),Ge("option",{key:G,value:G},Pe(G)+"x ",9,l9s))),128))],544),[[Soi,k.value]]),Zr(H.$slots,"playback-append",{},void 0,!0)]),ge("div",c9s,[Zr(H.$slots,"scale-prepend",{},void 0,!0),ge("div",d9s,[(xe(!0),Ge(sn,null,Bi(e.scaleConfigButtons,(G,q)=>(xe(),Ge(sn,{key:q},[typeof G=="string"&&G==="snap"?(xe(),Ge("button",{key:0,class:Eo(["tools-bar__btn tools-bar__btn--toggle tools-bar__btn--snap",{"tools-bar__btn--active":m.value}]),title:m.value?b.value:w.value,onClick:I},[c(Y5s,{class:"tools-bar__snap-icon"})],10,u9s)):O(G)?Zr(H.$slots,`custom-scale-config-${G.key}`,{key:1},void 0,!0):C(G)?(xe(),Ge("button",{key:2,class:Eo(["tools-bar__btn tools-bar__btn--toggle",[{"tools-bar__btn--active":L(G)},{"tools-bar__btn--disabled":S(G)},G.className]]),title:G.title,disabled:S(G),onClick:re=>T(G)},[_(G.icon)?(xe(),Ut(Bd(G.icon),{key:0})):(xe(),Ge(sn,{key:1},[Bt(Pe(G.icon||""),1)],64))],10,h9s)):nn("",!0)],64))),128))]),ge("div",f9s,[ge("button",{class:"tools-bar__btn tools-bar__btn--icon",disabled:p.value<=v.value,onClick:j}," − ",8,g9s),ge("div",m9s,[uu(ge("input",{type:"range",min:v.value,max:f.value,step:.1,"onUpdate:modelValue":$[1]||($[1]=G=>p.value=G),onInput:W},null,40,k9s),[[d4n,p.value,void 0,{number:!0}]]),ge("span",v9s,Pe(p.value.toFixed(1))+"x",1)]),ge("button",{class:"tools-bar__btn tools-bar__btn--icon",disabled:p.value>=f.value,onClick:F}," + ",8,A9s)]),Zr(H.$slots,"scale-append",{},void 0,!0)])]))}}),b9s=Lm(p9s,[["__scopeId","data-v-c36de3a3"]]),w9s={key:0,class:"ruler__mark-label"},O9s=Je({__name:"index",props:{width:{default:0},scrollLeft:{default:0},trackControlWidth:{default:200}},emits:["scroll","seek"],setup(e,{expose:t,emit:n}){const r=e,o=n,s=ML(),a=EA(),l=G0(),d=MH(),u=fe(),h=fe(),g=fe(!1),m=fe(0);let v=null;t({isDraggingCursor:g});const f=X(()=>a.rulerConfig),k=X(()=>a.actualPixelsPerSecond),A=X(()=>{const T=Math.max(l.totalDuration,s.duration,d.previewEndTime,60);return Math.ceil(T*k.value)}),p=X(()=>{const T=[],D=f.value,P=A.value/k.value,Q=D.minorInterval,M=D.majorInterval,B=Math.ceil(P/Q)+1;for(let R=0;RP)break;const F=Math.abs(Math.round(I/M)*M-I)<.001;T.push({time:I,position:I*k.value,isMajor:F,height:F?D.majorHeight:D.minorHeight})}return T}),b=X(()=>s.currentTime*k.value),w=X(()=>r.trackControlWidth+b.value-(r.scrollLeft||0)),O=X(()=>w.value>=r.trackControlWidth);function y(T){const D=Math.floor(T/60),P=Math.floor(T%60);return`${String(D).padStart(2,"0")}:${String(P).padStart(2,"0")}`}function C(T){var D;if(g.value)return;const P=(D=u.value)==null?void 0:D.getBoundingClientRect();if(!P)return;const Q=(T.clientX-P.left-r.trackControlWidth+(r.scrollLeft||0))/k.value,M=Math.max(0,Q);s.seekTo(M),o("seek",M)}function _(){g.value=!0,s.pause(),document.body.style.userSelect="none";let T=null,D=0,P=0;const Q=()=>{g.value&&(P!==0&&h.value&&(h.value.scrollLeft+=P,o("scroll",h.value.scrollLeft),M()),T=requestAnimationFrame(Q))},M=()=>{var I;const F=(I=u.value)==null?void 0:I.getBoundingClientRect();if(!F||!h.value)return;let j=(D-F.left-r.trackControlWidth+h.value.scrollLeft)/k.value;j=Math.max(0,j),s.seekTo(j)},B=I=>{var F;D=I.clientX;const j=(F=h.value)==null?void 0:F.getBoundingClientRect();if(j)if(I.clientXj.right-50){const W=1-(j.right-I.clientX)/50;P=15*Math.max(0,W)}else P=0;P===0&&M()},R=()=>{g.value=!1,document.body.style.userSelect="",T&&(cancelAnimationFrame(T),T=null),document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",R),o("seek",s.currentTime)};document.addEventListener("mousemove",B),document.addEventListener("mouseup",R),T=requestAnimationFrame(Q)}function S(){h.value&&o("scroll",h.value.scrollLeft)}function L(){return u.value?u.value.closest(".video-track"):null}function E(){if(!u.value)return;const T=u.value.getBoundingClientRect(),D=L(),P=D?D.getBoundingClientRect().bottom:window.innerHeight,Q=T.top-5;m.value=Math.max(P-Q,0)}return An(()=>{ai(()=>{E(),v=new ResizeObserver(()=>{E()}),u.value&&v.observe(u.value);const T=L();T&&v.observe(T)}),window.addEventListener("resize",E)}),Qa(()=>{window.removeEventListener("resize",E),v&&(v.disconnect(),v=null)}),pt(()=>r.scrollLeft,T=>{h.value&&h.value.scrollLeft!==T&&(h.value.scrollLeft=T)}),pt(b,T=>{if(g.value||!h.value)return;const D=h.value.clientWidth,P=h.value.scrollLeft;TP+D&&(h.value.scrollLeft=T-D+50)}),(T,D)=>(xe(),Ge("div",{class:"ruler",ref_key:"rulerRef",ref:u},[ge("div",{class:"ruler__placeholder",style:no({width:e.trackControlWidth+"px"})},null,4),ge("div",{class:"ruler__wrapper",ref_key:"rulerWrapperRef",ref:h,onScroll:S},[ge("div",{class:"ruler__content",style:no({width:A.value+"px"}),onMousedown:C},[(xe(!0),Ge(sn,null,Bi(p.value,P=>(xe(),Ge("div",{key:P.time,class:Eo(["ruler__mark",{"ruler__mark--major":P.isMajor}]),style:no({left:P.position+"px",height:P.height+"px"})},[P.isMajor?(xe(),Ge("span",w9s,Pe(y(P.time)),1)):nn("",!0)],6))),128))],36)],544),O.value?(xe(),Ge("div",{key:0,class:Eo(["ruler__cursor-handle",{"ruler__cursor-handle--dragging":g.value}]),style:no({left:w.value+"px"}),onMousedown:Mr(_,["stop"])},[ge("div",{class:"ruler__cursor-line",style:no({height:`${m.value}px`}),onMousedown:Mr(_,["stop"])},null,36)],38)):nn("",!0)],512))}}),y9s=Lm(O9s,[["__scopeId","data-v-f5735210"]]),C9s={class:"track-control"},_9s={class:"track-control__name"},S9s={key:2,class:"track-control__badge"},L9s={class:"track-control__actions"},x9s=["title"],E9s=["title"],T9s=["title"],Q9s=Je({__name:"TrackControl",props:{track:{},locale:{}},emits:["update","delete"],setup(e,{emit:t}){const n=e,r=t,o=fe(!1),s=fe(""),a=fe();function l(){o.value=!0,s.value=n.track.name,ai(()=>{var v,f;(v=a.value)==null||v.focus(),(f=a.value)==null||f.select()})}function d(){s.value.trim()&&s.value!==n.track.name&&r("update",n.track.id,{name:s.value.trim()}),o.value=!1}function u(){o.value=!1,s.value=""}function h(){r("update",n.track.id,{visible:!n.track.visible})}function g(){r("update",n.track.id,{locked:!n.track.locked})}function m(){var v;const f=(((v=n.locale)==null?void 0:v.confirmDeleteTrack)||'确定要删除轨道"{name}"吗?').replace("{name}",n.track.name);confirm(f)&&r("delete",n.track.id)}return(v,f)=>{var k,A,p,b,w,O;return xe(),Ge("div",C9s,[ge("div",_9s,[o.value?uu((xe(),Ge("input",{key:0,"onUpdate:modelValue":f[0]||(f[0]=y=>s.value=y),class:"track-control__name-input",onBlur:d,onKeyup:[hct(d,["enter"]),hct(u,["esc"])],ref_key:"nameInputRef",ref:a},null,544)),[[d4n,s.value]]):(xe(),Ge("span",{key:1,class:"track-control__name-text",onDblclick:l},Pe(e.track.name),33)),e.track.isMain?(xe(),Ge("span",S9s,Pe(((k=e.locale)==null?void 0:k.mainBadge)||"主"),1)):nn("",!0)]),ge("div",L9s,[ge("button",{class:Eo(["track-control__btn",{"track-control__btn--active":e.track.visible}]),onClick:h,title:e.track.visible?((A=e.locale)==null?void 0:A.hide)||"隐藏":((p=e.locale)==null?void 0:p.show)||"显示"},Pe(e.track.visible?"👁":"👁‍🗨"),11,x9s),ge("button",{class:Eo(["track-control__btn",{"track-control__btn--active":e.track.locked}]),onClick:g,title:e.track.locked?((b=e.locale)==null?void 0:b.unlock)||"解锁":((w=e.locale)==null?void 0:w.lock)||"锁定"},Pe(e.track.locked?"🔒":"🔓"),11,E9s),e.track.isMain?nn("",!0):(xe(),Ge("button",{key:0,class:"track-control__btn track-control__btn--danger",onClick:m,title:((O=e.locale)==null?void 0:O.delete)||"删除"}," 🗑 ",8,T9s))])])}}}),D9s=Lm(Q9s,[["__scopeId","data-v-34ea43ab"]]);function B9s(){const e=G0(),t=EA(),n=TE(),r=fe(!1),o=fe(null),s=fe("left"),a=fe(0),l=fe(0),d=fe(0),u=fe(0),h=fe(0);let g=document;const m=fe([]),v=fe([]);function f(R,I,F){var j;if(R.type==="transition"){y(R,I,F);return}if(g=((j=F.target)==null?void 0:j.ownerDocument)||document,r.value=!0,o.value=R,s.value=I,a.value=F.clientX,l.value=R.startTime,d.value=R.endTime,R.type==="video"||R.type==="audio"){const W=R;u.value=W.trimStart,h.value=W.trimEnd}k(R,I),g.addEventListener("mousemove",E),g.addEventListener("mouseup",M)}function k(R,I){m.value=[],v.value=[];const F=e.tracks.find(j=>j.id===R.trackId);if(F)if(I==="right"){const j=new Set([R.id]);A(F.clips,R.endTime,j)}else{const j=new Set([R.id]);p(F.clips,R.startTime,j)}}function A(R,I,F){const j=R.find(H=>{if(H.type!=="transition")return!1;const $=H,G=($.startTime+$.endTime)/2;return Math.abs(G-I)<$.transitionDuration&&$.startTime>=I-$.transitionDuration});if(!j)return;m.value.push({id:j.id,type:"transition",originalStartTime:j.startTime,originalEndTime:j.endTime,duration:j.transitionDuration});const W=R.find(H=>H.type!=="transition"&&!F.has(H.id)&&Math.abs(H.startTime-I){if(H.type!=="transition")return!1;const $=H,G=($.startTime+$.endTime)/2;return Math.abs(G-I)<$.transitionDuration&&$.endTime<=I+$.transitionDuration});if(!j)return;v.value.push({id:j.id,type:"transition",originalStartTime:j.startTime,originalEndTime:j.endTime,duration:j.transitionDuration});const W=R.find(H=>H.type!=="transition"&&!F.has(H.id)&&Math.abs(H.endTime-I)$.id===R.trackId);if(!F)return;const j=(R.startTime+R.endTime)/2,W=F.clips.find($=>$.type!=="transition"&&Math.abs($.endTime-j)<.5),H=F.clips.find($=>$.type!=="transition"&&$!==W&&Math.abs($.startTime-j)<.5);if(W&&H){const $=Ar(j-I/2),G=Ar(j+I/2),q=Ar(j),re=Ar(I);e.updateClip(R.id,{startTime:$,endTime:G,transitionDuration:re}),e.updateClip(W.id,{endTime:q}),e.updateClip(H.id,{startTime:q})}}const L=fe({shift:!1});function E(R){if(!r.value||!o.value)return;L.value.shift=R.shiftKey;const I=R.clientX-a.value,F=t.pixelsToTime(I);s.value==="left"?T(F):P(F)}function T(R){if(!o.value)return;let I=Ar(l.value+R);const F=.1,j=d.value-F;if(I=Math.max(0,Math.min(I,j)),!(v.value.length>0&&v.value[0].type==="transition")){const H=e.tracks.find($=>$.id===o.value.trackId);if(H){const $=H.clips.filter(G=>G.type!=="transition"&&G.id!==o.value.id).find(G=>G.endTime<=l.value+.01&&G.endTime>I);$&&(I=Math.max(I,$.endTime))}}let W=0;if(o.value.type==="video"||o.value.type==="audio"){o.value;const H=I-l.value;W=Ar(u.value+H),W<0&&(I=Ar(l.value-u.value),W=0);const $=h.value;W>$-F&&(W=$-F,I=Ar(l.value+(W-u.value)))}if(t.snapEnabled){const H=B(I);if(H!==I&&(o.value.type==="video"||o.value.type==="audio")){const $=H-I;W=Ar(W+$),W<0&&(W=0)}I=H}o.value.type==="video"||o.value.type==="audio"?e.updateClip(o.value.id,{startTime:I,trimStart:Math.max(0,W)}):e.updateClip(o.value.id,{startTime:I}),D(I)}function D(R){if(v.value.length===0)return;const I=d.value-R;let F=R;for(let j=0;j0&&m.value[0].type==="transition")){const H=e.tracks.find($=>$.id===o.value.trackId);if(H){const $=H.clips.filter(G=>G.type!=="transition"&&G.id!==o.value.id).find(G=>G.startTime>=d.value-.01&&G.startTimeH.originalDuration&&(W=H.originalDuration,I=Ar(d.value+(W-h.value)));const G=u.value;W$.originalDuration&&(W=$.originalDuration)}I=H}if(o.value.type==="video"||o.value.type==="audio"){const H=o.value;e.updateClip(o.value.id,{endTime:I,trimEnd:Math.min(W,H.originalDuration)})}else e.updateClip(o.value.id,{endTime:I});Q(I)}function Q(R){if(m.value.length===0)return;const I=R-l.value;let F=R,j=I;for(let W=0;WG.id===o.value.trackId);if(!I)return R;const F=new Set;m.value.forEach(G=>F.add(G.id)),v.value.forEach(G=>F.add(G.id));const j=[],W=new Set(e.selectedClipIds);if(I.clips.forEach(G=>{G.id!==o.value.id&&!W.has(G.id)&&!F.has(G.id)&&G.type!=="transition"&&(j.push(G.startTime),j.push(G.endTime))}),j.length===0)return R;const H=t.timeToPixels(R),$=t.snapToPosition(H,j.map(G=>t.timeToPixels(G)));return Ar(t.pixelsToTime($))}return{isResizing:r,resizingClip:o,resizingEdge:s,startResize:f,handleResizeMove:E,handleResizeEnd:M}}function R9s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var yqn={};(function(e){var t=function(){var f=new Date,k=4,A=3,p=2,b=1,w=k,O={setLogLevel:function(y){y==this.debug?w=b:y==this.info?w=p:y==this.warn?w=A:(y==this.error,w=k)},debug:function(y,C){console.debug===void 0&&(console.debug=console.log),b>=w&&console.debug("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)},log:function(y,C){this.debug(y.msg)},info:function(y,C){p>=w&&console.info("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)},warn:function(y,C){A>=w&&console.warn("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)},error:function(y,C){k>=w&&console.error("["+t.getDurationString(new Date-f,1e3)+"]","["+y+"]",C)}};return O}();t.getDurationString=function(f,k){var A;function p(_,S){for(var L=""+_,E=L.split(".");E[0].length0){for(var A="",p=0;p0&&(A+=","),A+="["+t.getDurationString(f.start(p))+","+t.getDurationString(f.end(p))+"]";return A}else return"(empty)"},e.Log=t;var n=function(f){if(f instanceof ArrayBuffer)this.buffer=f,this.dataview=new DataView(f);else throw"Needs an array buffer";this.position=0};n.prototype.getPosition=function(){return this.position},n.prototype.getEndPosition=function(){return this.buffer.byteLength},n.prototype.getLength=function(){return this.buffer.byteLength},n.prototype.seek=function(f){var k=Math.max(0,Math.min(this.buffer.byteLength,f));return this.position=isNaN(k)||!isFinite(k)?0:k,!0},n.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},n.prototype.readAnyInt=function(f,k){var A=0;if(this.position+f<=this.buffer.byteLength){switch(f){case 1:k?A=this.dataview.getInt8(this.position):A=this.dataview.getUint8(this.position);break;case 2:k?A=this.dataview.getInt16(this.position):A=this.dataview.getUint16(this.position);break;case 3:if(k)throw"No method for reading signed 24 bits values";A=this.dataview.getUint8(this.position)<<16,A|=this.dataview.getUint8(this.position+1)<<8,A|=this.dataview.getUint8(this.position+2);break;case 4:k?A=this.dataview.getInt32(this.position):A=this.dataview.getUint32(this.position);break;case 8:if(k)throw"No method for reading signed 64 bits values";A=this.dataview.getUint32(this.position)<<32,A|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+f}return this.position+=f,A}else throw"Not enough bytes in buffer"},n.prototype.readUint8=function(){return this.readAnyInt(1,!1)},n.prototype.readUint16=function(){return this.readAnyInt(2,!1)},n.prototype.readUint24=function(){return this.readAnyInt(3,!1)},n.prototype.readUint32=function(){return this.readAnyInt(4,!1)},n.prototype.readUint64=function(){return this.readAnyInt(8,!1)},n.prototype.readString=function(f){if(this.position+f<=this.buffer.byteLength){for(var k="",A=0;Athis._byteLength&&(this._byteLength=k);return}for(A<1&&(A=1);k>A;)A*=2;var p=new ArrayBuffer(A),b=new Uint8Array(this._buffer),w=new Uint8Array(p,0,b.length);w.set(b),this.buffer=p,this._byteLength=k}},r.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var f=new ArrayBuffer(this._byteLength),k=new Uint8Array(f),A=new Uint8Array(this._buffer,0,k.length);k.set(A),this.buffer=f}},r.BIG_ENDIAN=!1,r.LITTLE_ENDIAN=!0,r.prototype._byteLength=0,Object.defineProperty(r.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(r.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(f){this._buffer=f,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(f){this._byteOffset=f,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"dataView",{get:function(){return this._dataView},set:function(f){this._byteOffset=f.byteOffset,this._buffer=f.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+f.byteLength}}),r.prototype.seek=function(f){var k=Math.max(0,Math.min(this.byteLength,f));this.position=isNaN(k)||!isFinite(k)?0:k},r.prototype.isEof=function(){return this.position>=this._byteLength},r.prototype.mapUint8Array=function(f){this._realloc(f*1);var k=new Uint8Array(this._buffer,this.byteOffset+this.position,f);return this.position+=f*1,k},r.prototype.readInt32Array=function(f,k){f=f??this.byteLength-this.position/4;var A=new Int32Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readInt16Array=function(f,k){f=f??this.byteLength-this.position/2;var A=new Int16Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readInt8Array=function(f){f=f??this.byteLength-this.position;var k=new Int8Array(f);return r.memcpy(k.buffer,0,this.buffer,this.byteOffset+this.position,f*k.BYTES_PER_ELEMENT),this.position+=k.byteLength,k},r.prototype.readUint32Array=function(f,k){f=f??this.byteLength-this.position/4;var A=new Uint32Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readUint16Array=function(f,k){f=f??this.byteLength-this.position/2;var A=new Uint16Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readUint8Array=function(f){f=f??this.byteLength-this.position;var k=new Uint8Array(f);return r.memcpy(k.buffer,0,this.buffer,this.byteOffset+this.position,f*k.BYTES_PER_ELEMENT),this.position+=k.byteLength,k},r.prototype.readFloat64Array=function(f,k){f=f??this.byteLength-this.position/8;var A=new Float64Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readFloat32Array=function(f,k){f=f??this.byteLength-this.position/4;var A=new Float32Array(f);return r.memcpy(A.buffer,0,this.buffer,this.byteOffset+this.position,f*A.BYTES_PER_ELEMENT),r.arrayToNative(A,k??this.endianness),this.position+=A.byteLength,A},r.prototype.readInt32=function(f){var k=this._dataView.getInt32(this.position,f??this.endianness);return this.position+=4,k},r.prototype.readInt16=function(f){var k=this._dataView.getInt16(this.position,f??this.endianness);return this.position+=2,k},r.prototype.readInt8=function(){var f=this._dataView.getInt8(this.position);return this.position+=1,f},r.prototype.readUint32=function(f){var k=this._dataView.getUint32(this.position,f??this.endianness);return this.position+=4,k},r.prototype.readUint16=function(f){var k=this._dataView.getUint16(this.position,f??this.endianness);return this.position+=2,k},r.prototype.readUint8=function(){var f=this._dataView.getUint8(this.position);return this.position+=1,f},r.prototype.readFloat32=function(f){var k=this._dataView.getFloat32(this.position,f??this.endianness);return this.position+=4,k},r.prototype.readFloat64=function(f){var k=this._dataView.getFloat64(this.position,f??this.endianness);return this.position+=8,k},r.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,r.memcpy=function(f,k,A,p,b){var w=new Uint8Array(f,k,b),O=new Uint8Array(A,p,b);w.set(O)},r.arrayToNative=function(f,k){return k==this.endianness?f:this.flipArrayEndianness(f)},r.nativeToEndian=function(f,k){return this.endianness==k?f:this.flipArrayEndianness(f)},r.flipArrayEndianness=function(f){for(var k=new Uint8Array(f.buffer,f.byteOffset,f.byteLength),A=0;Ab;p--,b++){var w=k[b];k[b]=k[p],k[p]=w}return f},r.prototype.failurePosition=0,String.fromCharCodeUint8=function(f){for(var k=[],A=0;A>16),this.writeUint8((f&65280)>>8),this.writeUint8(f&255)},r.prototype.adjustUint32=function(f,k){var A=this.position;this.seek(f),this.writeUint32(k),this.seek(A)},r.prototype.mapInt32Array=function(f,k){this._realloc(f*4);var A=new Int32Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*4,A},r.prototype.mapInt16Array=function(f,k){this._realloc(f*2);var A=new Int16Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*2,A},r.prototype.mapInt8Array=function(f){this._realloc(f*1);var k=new Int8Array(this._buffer,this.byteOffset+this.position,f);return this.position+=f*1,k},r.prototype.mapUint32Array=function(f,k){this._realloc(f*4);var A=new Uint32Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*4,A},r.prototype.mapUint16Array=function(f,k){this._realloc(f*2);var A=new Uint16Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*2,A},r.prototype.mapFloat64Array=function(f,k){this._realloc(f*8);var A=new Float64Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*8,A},r.prototype.mapFloat32Array=function(f,k){this._realloc(f*4);var A=new Float32Array(this._buffer,this.byteOffset+this.position,f);return r.arrayToNative(A,k??this.endianness),this.position+=f*4,A};var s=function(f){this.buffers=[],this.bufferIndex=-1,f&&(this.insertBuffer(f),this.bufferIndex=0)};s.prototype=new r(new ArrayBuffer,0,r.BIG_ENDIAN),s.prototype.initialized=function(){var f;return this.bufferIndex>-1?!0:this.buffers.length>0?(f=this.buffers[0],f.fileStart===0?(this.buffer=f,this.bufferIndex=0,t.debug("MultiBufferStream","Stream ready for parsing"),!0):(t.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)):(t.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(f,k){t.debug("ArrayBuffer","Trying to create a new buffer of size: "+(f.byteLength+k.byteLength));var A=new Uint8Array(f.byteLength+k.byteLength);return A.set(new Uint8Array(f),0),A.set(new Uint8Array(k),f.byteLength),A.buffer},s.prototype.reduceBuffer=function(f,k,A){var p;return p=new Uint8Array(A),p.set(new Uint8Array(f,k,A)),p.buffer.fileStart=f.fileStart+k,p.buffer.usedBytes=0,p.buffer},s.prototype.insertBuffer=function(f){for(var k=!0,A=0;Ap.byteLength){this.buffers.splice(A,1),A--;continue}else t.warn("MultiBufferStream","Buffer (fileStart: "+f.fileStart+" - Length: "+f.byteLength+") already appended, ignoring");else f.fileStart+f.byteLength<=p.fileStart||(f=this.reduceBuffer(f,0,p.fileStart-f.fileStart)),t.debug("MultiBufferStream","Appending new buffer (fileStart: "+f.fileStart+" - Length: "+f.byteLength+")"),this.buffers.splice(A,0,f),A===0&&(this.buffer=f);k=!1;break}else if(f.fileStart0)f=this.reduceBuffer(f,b,w);else{k=!1;break}}}k&&(t.debug("MultiBufferStream","Appending new buffer (fileStart: "+f.fileStart+" - Length: "+f.byteLength+")"),this.buffers.push(f),A===0&&(this.buffer=f))},s.prototype.logBufferLevel=function(f){var k,A,p,b,w=[],O,y="";for(p=0,b=0,k=0;k0&&(y+=O.end-1+"]");var C=f?t.info:t.debug;this.buffers.length===0?C("MultiBufferStream","No more buffer in memory"):C("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+p+"/"+b+" bytes), continuous ranges: "+y)},s.prototype.cleanBuffers=function(){var f,k;for(f=0;f"+this.buffer.byteLength+")"),!0}else return!1;else return!1},s.prototype.findPosition=function(f,k,A){var p,b=null,w=-1;for(f===!0?p=0:p=this.bufferIndex;p=k?(t.debug("MultiBufferStream","Found position in existing buffer #"+w),w):-1):-1},s.prototype.findEndContiguousBuf=function(f){var k,A,p,b=f!==void 0?f:this.bufferIndex;if(A=this.buffers[b],this.buffers.length>b+1)for(k=b+1;k>3;return S===31&&_.data.length>=2&&(S=32+((_.data[0]&7)<<3)+((_.data[1]&224)>>5)),S}else return null},O.DecoderConfigDescriptor=function(y){O.Descriptor.call(this,k,y)},O.DecoderConfigDescriptor.prototype=new O.Descriptor,O.DecoderConfigDescriptor.prototype.parse=function(y){this.oti=y.readUint8(),this.streamType=y.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=y.readUint24(),this.maxBitrate=y.readUint32(),this.avgBitrate=y.readUint32(),this.size-=13,this.parseRemainingDescriptors(y)},O.DecoderSpecificInfo=function(y){O.Descriptor.call(this,A,y)},O.DecoderSpecificInfo.prototype=new O.Descriptor,O.SLConfigDescriptor=function(y){O.Descriptor.call(this,p,y)},O.SLConfigDescriptor.prototype=new O.Descriptor,this};e.MPEG4DescriptorParser=a;var l={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){l.FullBox.prototype=new l.Box,l.ContainerBox.prototype=new l.Box,l.SampleEntry.prototype=new l.Box,l.TrackGroupTypeBox.prototype=new l.FullBox,l.BASIC_BOXES.forEach(function(f){l.createBoxCtor(f)}),l.FULL_BOXES.forEach(function(f){l.createFullBoxCtor(f)}),l.CONTAINER_BOXES.forEach(function(f){l.createContainerBoxCtor(f[0],null,f[1])})},Box:function(f,k,A){this.type=f,this.size=k,this.uuid=A},FullBox:function(f,k,A){l.Box.call(this,f,k,A),this.flags=0,this.version=0},ContainerBox:function(f,k,A){l.Box.call(this,f,k,A),this.boxes=[]},SampleEntry:function(f,k,A,p){l.ContainerBox.call(this,f,k),this.hdr_size=A,this.start=p},SampleGroupEntry:function(f){this.grouping_type=f},TrackGroupTypeBox:function(f,k){l.FullBox.call(this,f,k)},createBoxCtor:function(f,k){l.boxCodes.push(f),l[f+"Box"]=function(A){l.Box.call(this,f,A)},l[f+"Box"].prototype=new l.Box,k&&(l[f+"Box"].prototype.parse=k)},createFullBoxCtor:function(f,k){l[f+"Box"]=function(A){l.FullBox.call(this,f,A)},l[f+"Box"].prototype=new l.FullBox,l[f+"Box"].prototype.parse=function(A){this.parseFullHeader(A),k&&k.call(this,A)}},addSubBoxArrays:function(f){if(f){this.subBoxNames=f;for(var k=f.length,A=0;AA?(t.error("BoxParser","Box of type '"+_+"' has a size "+C+" greater than its container size "+A),{code:l.ERR_NOT_ENOUGH_DATA,type:_,size:C,hdr_size:w,start:b}):C!==0&&b+C>f.getEndPosition()?(f.seek(b),t.info("BoxParser","Not enough data in stream to parse the entire '"+_+"' box"),{code:l.ERR_NOT_ENOUGH_DATA,type:_,size:C,hdr_size:w,start:b}):k?{code:l.OK,type:_,size:C,hdr_size:w,start:b}:(l[_+"Box"]?p=new l[_+"Box"](C):_!=="uuid"?(t.warn("BoxParser","Unknown box type: '"+_+"'"),p=new l.Box(_,C),p.has_unparsed_data=!0):l.UUIDBoxes[y]?p=new l.UUIDBoxes[y](C):(t.warn("BoxParser","Unknown uuid type: '"+y+"'"),p=new l.Box(_,C),p.uuid=y,p.has_unparsed_data=!0),p.hdr_size=w,p.start=b,p.write===l.Box.prototype.write&&p.type!=="mdat"&&(t.info("BoxParser","'"+S+"' box writing not yet implemented, keeping unparsed data in memory for later write"),p.parseDataAndRewind(f)),p.parse(f),O=f.getPosition()-(p.start+p.size),O<0?(t.warn("BoxParser","Parsing of box '"+S+"' did not read the entire indicated box data size (missing "+-O+" bytes), seeking forward"),f.seek(p.start+p.size)):O>0&&(t.error("BoxParser","Parsing of box '"+S+"' read "+O+" more bytes than the indicated box data size, seeking backwards"),p.size!==0&&f.seek(p.start+p.size)),{code:l.OK,box:p,size:p.size})},l.Box.prototype.parse=function(f){this.type!="mdat"?this.data=f.readUint8Array(this.size-this.hdr_size):this.size===0?f.seek(f.getEndPosition()):f.seek(this.start+this.size)},l.Box.prototype.parseDataAndRewind=function(f){this.data=f.readUint8Array(this.size-this.hdr_size),f.position-=this.size-this.hdr_size},l.FullBox.prototype.parseDataAndRewind=function(f){this.parseFullHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,f.position-=this.size-this.hdr_size},l.FullBox.prototype.parseFullHeader=function(f){this.version=f.readUint8(),this.flags=f.readUint24(),this.hdr_size+=4},l.FullBox.prototype.parse=function(f){this.parseFullHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size)},l.ContainerBox.prototype.parse=function(f){for(var k,A;f.getPosition()>10&31,k[1]=this.language>>5&31,k[2]=this.language&31,this.languageString=String.fromCharCode(k[0]+96,k[1]+96,k[2]+96)},l.SAMPLE_ENTRY_TYPE_VISUAL="Visual",l.SAMPLE_ENTRY_TYPE_AUDIO="Audio",l.SAMPLE_ENTRY_TYPE_HINT="Hint",l.SAMPLE_ENTRY_TYPE_METADATA="Metadata",l.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",l.SAMPLE_ENTRY_TYPE_SYSTEM="System",l.SAMPLE_ENTRY_TYPE_TEXT="Text",l.SampleEntry.prototype.parseHeader=function(f){f.readUint8Array(6),this.data_reference_index=f.readUint16(),this.hdr_size+=8},l.SampleEntry.prototype.parse=function(f){this.parseHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size)},l.SampleEntry.prototype.parseDataAndRewind=function(f){this.parseHeader(f),this.data=f.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,f.position-=this.size-this.hdr_size},l.SampleEntry.prototype.parseFooter=function(f){l.ContainerBox.prototype.parse.call(this,f)},l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_HINT),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_METADATA),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SUBTITLE),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SYSTEM),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_TEXT),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,function(f){var k;this.parseHeader(f),f.readUint16(),f.readUint16(),f.readUint32Array(3),this.width=f.readUint16(),this.height=f.readUint16(),this.horizresolution=f.readUint32(),this.vertresolution=f.readUint32(),f.readUint32(),this.frame_count=f.readUint16(),k=Math.min(31,f.readUint8()),this.compressorname=f.readString(k),k<31&&f.readString(31-k),this.depth=f.readUint16(),f.readUint16(),this.parseFooter(f)}),l.createMediaSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,function(f){this.parseHeader(f),f.readUint32Array(2),this.channel_count=f.readUint16(),this.samplesize=f.readUint16(),f.readUint16(),f.readUint16(),this.samplerate=f.readUint32()/65536,this.parseFooter(f)}),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),l.createSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"fLaC"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_TEXT,"enct"),l.createEncryptedSampleEntryCtor(l.SAMPLE_ENTRY_TYPE_METADATA,"encm"),l.createBoxCtor("a1lx",function(f){var k=f.readUint8()&1,A=((k&1)+1)*16;this.layer_size=[];for(var p=0;p<3;p++)A==16?this.layer_size[p]=f.readUint16():this.layer_size[p]=f.readUint32()}),l.createBoxCtor("a1op",function(f){this.op_index=f.readUint8()}),l.createFullBoxCtor("auxC",function(f){this.aux_type=f.readCString();var k=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=f.readUint8Array(k)}),l.createBoxCtor("av1C",function(f){var k=f.readUint8();if(k>>7&!1){t.error("av1C marker problem");return}if(this.version=k&127,this.version!==1){t.error("av1C version "+this.version+" not supported");return}if(k=f.readUint8(),this.seq_profile=k>>5&7,this.seq_level_idx_0=k&31,k=f.readUint8(),this.seq_tier_0=k>>7&1,this.high_bitdepth=k>>6&1,this.twelve_bit=k>>5&1,this.monochrome=k>>4&1,this.chroma_subsampling_x=k>>3&1,this.chroma_subsampling_y=k>>2&1,this.chroma_sample_position=k&3,k=f.readUint8(),this.reserved_1=k>>5&7,this.reserved_1!==0){t.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=k>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=k&15;else if(this.reserved_2=k&15,this.reserved_2!==0){t.error("av1C reserved_2 parsing problem");return}var A=this.size-this.hdr_size-4;this.configOBUs=f.readUint8Array(A)}),l.createBoxCtor("avcC",function(f){var k,A;for(this.configurationVersion=f.readUint8(),this.AVCProfileIndication=f.readUint8(),this.profile_compatibility=f.readUint8(),this.AVCLevelIndication=f.readUint8(),this.lengthSizeMinusOne=f.readUint8()&3,this.nb_SPS_nalus=f.readUint8()&31,A=this.size-this.hdr_size-6,this.SPS=[],k=0;k0&&(this.ext=f.readUint8Array(A))}),l.createBoxCtor("btrt",function(f){this.bufferSizeDB=f.readUint32(),this.maxBitrate=f.readUint32(),this.avgBitrate=f.readUint32()}),l.createFullBoxCtor("ccst",function(f){var k=f.readUint8();this.all_ref_pics_intra=(k&128)==128,this.intra_pred_used=(k&64)==64,this.max_ref_per_pic=(k&63)>>2,f.readUint24()}),l.createBoxCtor("cdef",function(f){var k;for(this.channel_count=f.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],k=0;k=32768&&this.component_type_urls.push(f.readCString())}}),l.createFullBoxCtor("co64",function(f){var k,A;if(k=f.readUint32(),this.chunk_offsets=[],this.version===0)for(A=0;A>7}else this.colour_type==="rICC"?this.ICC_profile=f.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=f.readUint8Array(this.size-4))}),l.createFullBoxCtor("cprt",function(f){this.parseLanguage(f),this.notice=f.readCString()}),l.createFullBoxCtor("cslg",function(f){this.version===0&&(this.compositionToDTSShift=f.readInt32(),this.leastDecodeToDisplayDelta=f.readInt32(),this.greatestDecodeToDisplayDelta=f.readInt32(),this.compositionStartTime=f.readInt32(),this.compositionEndTime=f.readInt32())}),l.createFullBoxCtor("ctts",function(f){var k,A;if(k=f.readUint32(),this.sample_counts=[],this.sample_offsets=[],this.version===0)for(A=0;A>6,this.bsid=k>>1&31,this.bsmod=(k&1)<<2|A>>6&3,this.acmod=A>>3&7,this.lfeon=A>>2&1,this.bit_rate_code=A&3|p>>5&7}),l.createBoxCtor("dec3",function(f){var k=f.readUint16();this.data_rate=k>>3,this.num_ind_sub=k&7,this.ind_subs=[];for(var A=0;A>6,p.bsid=b>>1&31,p.bsmod=(b&1)<<4|w>>4&15,p.acmod=w>>1&7,p.lfeon=w&1,p.num_dep_sub=O>>1&15,p.num_dep_sub>0&&(p.chan_loc=(O&1)<<8|f.readUint8())}}),l.createFullBoxCtor("dfLa",function(f){var k=127,A=128,p=[],b=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];do{var w=f.readUint8(),O=Math.min(w&k,b.length-1);if(O?f.readUint8Array(f.readUint24()):(f.readUint8Array(13),this.samplerate=f.readUint32()>>12,f.readUint8Array(20)),p.push(b[O]),w&A)break}while(!0);this.numMetadataBlocks=p.length+" ("+p.join(", ")+")"}),l.createBoxCtor("dimm",function(f){this.bytessent=f.readUint64()}),l.createBoxCtor("dmax",function(f){this.time=f.readUint32()}),l.createBoxCtor("dmed",function(f){this.bytessent=f.readUint64()}),l.createBoxCtor("dOps",function(f){if(this.Version=f.readUint8(),this.OutputChannelCount=f.readUint8(),this.PreSkip=f.readUint16(),this.InputSampleRate=f.readUint32(),this.OutputGain=f.readInt16(),this.ChannelMappingFamily=f.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=f.readUint8(),this.CoupledCount=f.readUint8(),this.ChannelMapping=[];for(var k=0;k=4;)this.compatible_brands[A]=f.readString(4),k-=4,A++}),l.createFullBoxCtor("hdlr",function(f){this.version===0&&(f.readUint32(),this.handler=f.readString(4),f.readUint32Array(3),this.name=f.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]==="\0"&&(this.name=this.name.slice(0,-1)))}),l.createBoxCtor("hvcC",function(f){var k,A,p,b;this.configurationVersion=f.readUint8(),b=f.readUint8(),this.general_profile_space=b>>6,this.general_tier_flag=(b&32)>>5,this.general_profile_idc=b&31,this.general_profile_compatibility=f.readUint32(),this.general_constraint_indicator=f.readUint8Array(6),this.general_level_idc=f.readUint8(),this.min_spatial_segmentation_idc=f.readUint16()&4095,this.parallelismType=f.readUint8()&3,this.chroma_format_idc=f.readUint8()&3,this.bit_depth_luma_minus8=f.readUint8()&7,this.bit_depth_chroma_minus8=f.readUint8()&7,this.avgFrameRate=f.readUint16(),b=f.readUint8(),this.constantFrameRate=b>>6,this.numTemporalLayers=(b&13)>>3,this.temporalIdNested=(b&4)>>2,this.lengthSizeMinusOne=b&3,this.nalu_arrays=[];var w=f.readUint8();for(k=0;k>7,O.nalu_type=b&63;var y=f.readUint16();for(A=0;A>4&15,this.length_size=k&15,k=f.readUint8(),this.base_offset_size=k>>4&15,this.version===1||this.version===2?this.index_size=k&15:this.index_size=0,this.items=[];var A=0;if(this.version<2)A=f.readUint16();else if(this.version===2)A=f.readUint32();else throw"version of iloc box not supported";for(var p=0;p>7,this.axis=k&1}),l.createFullBoxCtor("infe",function(f){if((this.version===0||this.version===1)&&(this.item_ID=f.readUint16(),this.item_protection_index=f.readUint16(),this.item_name=f.readCString(),this.content_type=f.readCString(),this.content_encoding=f.readCString()),this.version===1){this.extension_type=f.readString(4),t.warn("BoxParser","Cannot parse extension type"),f.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=f.readUint16():this.version===3&&(this.item_ID=f.readUint32()),this.item_protection_index=f.readUint16(),this.item_type=f.readString(4),this.item_name=f.readCString(),this.item_type==="mime"?(this.content_type=f.readCString(),this.content_encoding=f.readCString()):this.item_type==="uri "&&(this.item_uri_type=f.readCString()))}),l.createFullBoxCtor("ipma",function(f){var k,A;for(entry_count=f.readUint32(),this.associations=[],k=0;k>7===1,this.flags&1?O.property_index=(w&127)<<8|f.readUint8():O.property_index=w&127}}}),l.createFullBoxCtor("iref",function(f){var k,A;for(this.references=[];f.getPosition()>7,p.assignment_type=b&127,p.assignment_type){case 0:p.grouping_type=f.readString(4);break;case 1:p.grouping_type=f.readString(4),p.grouping_type_parameter=f.readUint32();break;case 2:break;case 3:break;case 4:p.sub_track_id=f.readUint32();break;default:t.warn("BoxParser","Unknown leva assignement type")}}}),l.createBoxCtor("lhvC",function(f){var k,A,p;this.configurationVersion=f.readUint8(),this.min_spatial_segmentation_idc=f.readUint16()&4095,this.parallelismType=f.readUint8()&3,p=f.readUint8(),this.numTemporalLayers=(p&13)>>3,this.temporalIdNested=(p&4)>>2,this.lengthSizeMinusOne=p&3,this.nalu_arrays=[];var b=f.readUint8();for(k=0;k>7,w.nalu_type=p&63;var O=f.readUint16();for(A=0;A>8,f.readUint16(),f.readUint32Array(2),this.matrix=f.readUint32Array(9),f.readUint32Array(6),this.next_track_id=f.readUint32()}),l.createBoxCtor("npck",function(f){this.packetssent=f.readUint32()}),l.createBoxCtor("nump",function(f){this.packetssent=f.readUint64()}),l.createFullBoxCtor("padb",function(f){var k=f.readUint32();this.padbits=[];for(var A=0;A0){var k=f.readUint32();this.kid=[];for(var A=0;A0&&(this.data=f.readUint8Array(p))}),l.createFullBoxCtor("clef",function(f){this.width=f.readUint32(),this.height=f.readUint32()}),l.createFullBoxCtor("enof",function(f){this.width=f.readUint32(),this.height=f.readUint32()}),l.createFullBoxCtor("prof",function(f){this.width=f.readUint32(),this.height=f.readUint32()}),l.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),l.createBoxCtor("rtp ",function(f){this.descriptionformat=f.readString(4),this.sdptext=f.readString(this.size-this.hdr_size-4)}),l.createFullBoxCtor("saio",function(f){this.flags&1&&(this.aux_info_type=f.readUint32(),this.aux_info_type_parameter=f.readUint32());var k=f.readUint32();this.offset=[];for(var A=0;A>7,this.avgRateFlag=k>>6&1,this.durationFlag&&(this.duration=f.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=f.readUint8(),this.avgBitRate=f.readUint16(),this.avgFrameRate=f.readUint16()),this.dependency=[];for(var A=f.readUint8(),p=0;p>7,this.num_leading_samples=k&127}),l.createSampleGroupCtor("rash",function(f){if(this.operation_point_count=f.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)t.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=f.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=f.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var k=0;k>4,this.skip_byte_block=k&15,this.isProtected=f.readUint8(),this.Per_Sample_IV_Size=f.readUint8(),this.KID=l.parseHex16(f),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=f.readUint8(),this.constant_IV=f.readUint8Array(this.constant_IV_size))}),l.createSampleGroupCtor("stsa",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createSampleGroupCtor("sync",function(f){var k=f.readUint8();this.NAL_unit_type=k&63}),l.createSampleGroupCtor("tele",function(f){var k=f.readUint8();this.level_independently_decodable=k>>7}),l.createSampleGroupCtor("tsas",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createSampleGroupCtor("tscl",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createSampleGroupCtor("vipr",function(f){t.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),l.createFullBoxCtor("sbgp",function(f){this.grouping_type=f.readString(4),this.version===1?this.grouping_type_parameter=f.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var k=f.readUint32(),A=0;A>6,this.sample_depends_on[p]=k>>4&3,this.sample_is_depended_on[p]=k>>2&3,this.sample_has_redundancy[p]=k&3}),l.createFullBoxCtor("senc"),l.createFullBoxCtor("sgpd",function(f){this.grouping_type=f.readString(4),t.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=f.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=f.readUint32()),this.entries=[];for(var k=f.readUint32(),A=0;A>31&1,p.referenced_size=b&2147483647,p.subsegment_duration=f.readUint32(),b=f.readUint32(),p.starts_with_SAP=b>>31&1,p.SAP_type=b>>28&7,p.SAP_delta_time=b&268435455}}),l.SingleItemTypeReferenceBox=function(f,k,A,p){l.Box.call(this,f,k),this.hdr_size=A,this.start=p},l.SingleItemTypeReferenceBox.prototype=new l.Box,l.SingleItemTypeReferenceBox.prototype.parse=function(f){this.from_item_ID=f.readUint16();var k=f.readUint16();this.references=[];for(var A=0;A>4&15,this.sample_sizes[k+1]=p&15}else if(this.field_size===8)for(k=0;k0)for(A=0;A>4&15,this.default_skip_byte_block=k&15}this.default_isProtected=f.readUint8(),this.default_Per_Sample_IV_Size=f.readUint8(),this.default_KID=l.parseHex16(f),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=f.readUint8(),this.default_constant_IV=f.readUint8Array(this.default_constant_IV_size))}),l.createFullBoxCtor("tfdt",function(f){this.version==1?this.baseMediaDecodeTime=f.readUint64():this.baseMediaDecodeTime=f.readUint32()}),l.createFullBoxCtor("tfhd",function(f){var k=0;this.track_id=f.readUint32(),this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=f.readUint64(),k+=8):this.base_data_offset=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=f.readUint32(),k+=4):this.default_sample_description_index=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=f.readUint32(),k+=4):this.default_sample_duration=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=f.readUint32(),k+=4):this.default_sample_size=0,this.size-this.hdr_size>k&&this.flags&l.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=f.readUint32(),k+=4):this.default_sample_flags=0}),l.createFullBoxCtor("tfra",function(f){this.track_ID=f.readUint32(),f.readUint24();var k=f.readUint8();this.length_size_of_traf_num=k>>4&3,this.length_size_of_trun_num=k>>2&3,this.length_size_of_sample_num=k&3,this.entries=[];for(var A=f.readUint32(),p=0;p>8,f.readUint16(),this.matrix=f.readInt32Array(9),this.width=f.readUint32(),this.height=f.readUint32()}),l.createBoxCtor("tmax",function(f){this.time=f.readUint32()}),l.createBoxCtor("tmin",function(f){this.time=f.readUint32()}),l.createBoxCtor("totl",function(f){this.bytessent=f.readUint32()}),l.createBoxCtor("tpay",function(f){this.bytessent=f.readUint32()}),l.createBoxCtor("tpyl",function(f){this.bytessent=f.readUint64()}),l.TrackGroupTypeBox.prototype.parse=function(f){this.parseFullHeader(f),this.track_group_id=f.readUint32()},l.createTrackGroupCtor("msrc"),l.TrackReferenceTypeBox=function(f,k,A,p){l.Box.call(this,f,k),this.hdr_size=A,this.start=p},l.TrackReferenceTypeBox.prototype=new l.Box,l.TrackReferenceTypeBox.prototype.parse=function(f){this.track_ids=f.readUint32Array((this.size-this.hdr_size)/4)},l.trefBox.prototype.parse=function(f){for(var k,A;f.getPosition()k&&this.flags&l.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=f.readInt32(),k+=4):this.data_offset=0,this.size-this.hdr_size>k&&this.flags&l.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=f.readUint32(),k+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>k)for(var A=0;A>7&1,this.block_pad_lsb=A>>6&1,this.block_little_endian=A>>5&1,this.block_reversed=A>>4&1,this.pad_unknown=A>>3&1,this.pixel_size=f.readUint32(),this.row_align_size=f.readUint32(),this.tile_align_size=f.readUint32(),this.num_tile_cols_minus_one=f.readUint32(),this.num_tile_rows_minus_one=f.readUint32()}}),l.createFullBoxCtor("url ",function(f){this.flags!==1&&(this.location=f.readCString())}),l.createFullBoxCtor("urn ",function(f){this.name=f.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=f.readCString())}),l.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,function(f){this.LiveServerManifest=f.readString(this.size-this.hdr_size).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}),l.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(f){this.system_id=l.parseHex16(f);var k=f.readUint32();k>0&&(this.data=f.readUint8Array(k))}),l.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),l.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,function(f){this.default_AlgorithmID=f.readUint24(),this.default_IV_size=f.readUint8(),this.default_KID=l.parseHex16(f)}),l.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,function(f){this.fragment_count=f.readUint8(),this.entries=[];for(var k=0;k>4,this.chromaSubsampling=k>>1&7,this.videoFullRangeFlag=k&1,this.colourPrimaries=f.readUint8(),this.transferCharacteristics=f.readUint8(),this.matrixCoefficients=f.readUint8(),this.codecIntializationDataSize=f.readUint16(),this.codecIntializationData=f.readUint8Array(this.codecIntializationDataSize)):(this.profile=f.readUint8(),this.level=f.readUint8(),k=f.readUint8(),this.bitDepth=k>>4&15,this.colorSpace=k&15,k=f.readUint8(),this.chromaSubsampling=k>>4&15,this.transferFunction=k>>1&7,this.videoFullRangeFlag=k&1,this.codecIntializationDataSize=f.readUint16(),this.codecIntializationData=f.readUint8Array(this.codecIntializationDataSize))}),l.createBoxCtor("vttC",function(f){this.text=f.readString(this.size-this.hdr_size)}),l.createFullBoxCtor("vvcC",function(f){var k,A,p={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(T){this.held_bits=T.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(T){this.held_bits=T.readUint16(),this.num_held_bits=16},extract_bits:function(T){var D=this.held_bits>>this.num_held_bits-T&(1<1){for(p.stream_read_1_bytes(f),this.ptl_sublayer_present_mask=0,A=this.num_sublayers-2;A>=0;--A){var O=p.extract_bits(1);this.ptl_sublayer_present_mask|=O<1;++A)p.extract_bits(1);for(this.sublayer_level_idc=[],A=this.num_sublayers-2;A>=0;--A)this.ptl_sublayer_present_mask&1<"u"||k===null?k=2:k;A.length>=1;k+=l.decimalToHex(p,0),k+=".",this.hvcC.general_tier_flag===0?k+="L":k+="H",k+=this.hvcC.general_level_idc;var b=!1,w="";for(f=5;f>=0;f--)(this.hvcC.general_constraint_indicator[f]||b)&&(w="."+l.decimalToHex(this.hvcC.general_constraint_indicator[f],0)+w,b=!0);k+=w}return k},l.vvc1SampleEntry.prototype.getCodec=l.vvi1SampleEntry.prototype.getCodec=function(){var f,k=l.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){k+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?k+=".H":k+=".L",k+=this.vvcC.general_level_idc;var A="";if(this.vvcC.general_constraint_info){var p=[],b=0;b|=this.vvcC.ptl_frame_only_constraint<<7,b|=this.vvcC.ptl_multilayer_enabled<<6;var w;for(f=0;f>2&63,p.push(b),b&&(w=f),b=this.vvcC.general_constraint_info[f]>>2&3;if(w===void 0)A=".CA";else{A=".C";var O="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",y=0,C=0;for(f=0;f<=w;++f)for(y=y<<8|p[f],C+=8;C>=5;){var _=y>>C-5&31;A+=O[_],C-=5,y&=(1<o&&(this.size+=8),this.type==="uuid"&&(this.size+=16),t.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+f.getPosition()+(k||"")),this.size>o?f.writeUint32(1):(this.sizePosition=f.getPosition(),f.writeUint32(this.size)),f.writeString(this.type,null,4),this.type==="uuid"&&f.writeUint8Array(this.uuid),this.size>o&&f.writeUint64(this.size)},l.FullBox.prototype.writeHeader=function(f){this.size+=4,l.Box.prototype.writeHeader.call(this,f," v="+this.version+" f="+this.flags),f.writeUint8(this.version),f.writeUint24(this.flags)},l.Box.prototype.write=function(f){this.type==="mdat"?this.data&&(this.size=this.data.length,this.writeHeader(f),f.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(f),this.data&&f.writeUint8Array(this.data))},l.ContainerBox.prototype.write=function(f){this.size=0,this.writeHeader(f);for(var k=0;k=2&&f.writeUint32(this.default_sample_description_index),f.writeUint32(this.entries.length),k=0;k0)for(k=0;k+1k?1:0,this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(f),this.version===1?f.writeUint64(this.baseMediaDecodeTime):f.writeUint32(this.baseMediaDecodeTime)},l.tfhdBox.prototype.write=function(f){this.version=0,this.size=4,this.flags&l.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&l.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&l.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&l.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&l.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(f),f.writeUint32(this.track_id),this.flags&l.TFHD_FLAG_BASE_DATA_OFFSET&&f.writeUint64(this.base_data_offset),this.flags&l.TFHD_FLAG_SAMPLE_DESC&&f.writeUint32(this.default_sample_description_index),this.flags&l.TFHD_FLAG_SAMPLE_DUR&&f.writeUint32(this.default_sample_duration),this.flags&l.TFHD_FLAG_SAMPLE_SIZE&&f.writeUint32(this.default_sample_size),this.flags&l.TFHD_FLAG_SAMPLE_FLAGS&&f.writeUint32(this.default_sample_flags)},l.tkhdBox.prototype.write=function(f){this.version=0,this.size=4*18+2*4,this.writeHeader(f),f.writeUint32(this.creation_time),f.writeUint32(this.modification_time),f.writeUint32(this.track_id),f.writeUint32(0),f.writeUint32(this.duration),f.writeUint32(0),f.writeUint32(0),f.writeInt16(this.layer),f.writeInt16(this.alternate_group),f.writeInt16(this.volume<<8),f.writeUint16(0),f.writeInt32Array(this.matrix),f.writeUint32(this.width),f.writeUint32(this.height)},l.trexBox.prototype.write=function(f){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(f),f.writeUint32(this.track_id),f.writeUint32(this.default_sample_description_index),f.writeUint32(this.default_sample_duration),f.writeUint32(this.default_sample_size),f.writeUint32(this.default_sample_flags)},l.trunBox.prototype.write=function(f){this.version=0,this.size=4,this.flags&l.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&l.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&l.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&l.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&l.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&l.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(f),f.writeUint32(this.sample_count),this.flags&l.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=f.getPosition(),f.writeInt32(this.data_offset)),this.flags&l.TRUN_FLAGS_FIRST_FLAG&&f.writeUint32(this.first_sample_flags);for(var k=0;k0&&f.writeUint8Array(this.codecIntializationData)},l.cttsBox.prototype.unpack=function(f){var k,A,p;for(p=0,k=0;k-1)){if(f[A]instanceof l.Box||k[A]instanceof l.Box||typeof f[A]>"u"||typeof k[A]>"u"||typeof f[A]=="function"||typeof k[A]=="function"||f.subBoxNames&&f.subBoxNames.indexOf(A.slice(0,4))>-1||k.subBoxNames&&k.subBoxNames.indexOf(A.slice(0,4))>-1||A==="data"||A==="start"||A==="size"||A==="creation_time"||A==="modification_time"||l.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(A)>-1)continue;if(f[A]!==k[A])return!1}return!0},l.boxEqual=function(f,k){if(!l.boxEqualFields(f,k))return!1;for(var A=0;A1)for(A=1;A-1&&this.fragmentedTracks.splice(k,1)},m.prototype.setExtractionOptions=function(f,k,A){var p=this.getTrackById(f);if(p){var b={};this.extractedTracks.push(b),b.id=f,b.user=k,b.trak=p,p.nextSample=0,b.nb_samples=1e3,b.samples=[],A&&A.nbSamples&&(b.nb_samples=A.nbSamples)}},m.prototype.unsetExtractionOptions=function(f){for(var k=-1,A=0;A-1&&this.extractedTracks.splice(k,1)},m.prototype.parse=function(){var f,k,A=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),f=l.parseOneBox(this.stream,A),f.code===l.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(f))continue;return}else return;else{var p;switch(k=f.box,p=k.type!=="uuid"?k.type:k.uuid,this.boxes.push(k),p){case"mdat":this.mdats.push(k);break;case"moof":this.moofs.push(k);break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[p]!==void 0&&t.warn("ISOFile","Duplicate Box of type: "+p+", overriding previous occurrence"),this[p]=k;break}this.updateUsedBytes&&this.updateUsedBytes(k,f)}},m.prototype.checkBuffer=function(f){if(f==null)throw"Buffer must be defined and non empty";if(f.fileStart===void 0)throw"Buffer must have a fileStart property";return f.byteLength===0?(t.warn("ISOFile","Ignoring empty buffer (fileStart: "+f.fileStart+")"),this.stream.logBufferLevel(),!1):(t.info("ISOFile","Processing buffer (fileStart: "+f.fileStart+")"),f.usedBytes=0,this.stream.insertBuffer(f),this.stream.logBufferLevel(),this.stream.initialized()?!0:(t.warn("ISOFile","Not ready to start parsing"),!1))},m.prototype.appendBuffer=function(f,k){var A;if(this.checkBuffer(f))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(k),this.nextSeekPosition?(A=this.nextSeekPosition,this.nextSeekPosition=void 0):A=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(A=this.stream.getEndFilePositionAfter(A))):this.nextParsePosition?A=this.nextParsePosition:A=0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(t.info("ISOFile","Done processing buffer (fileStart: "+f.fileStart+") - next buffer to fetch should have a fileStart position of "+A),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),t.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),A},m.prototype.getInfo=function(){var f,k,A={},p,b,w,O,y=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(A.hasMoov=!0,A.duration=this.moov.mvhd.duration,A.timescale=this.moov.mvhd.timescale,A.isFragmented=this.moov.mvex!=null,A.isFragmented&&this.moov.mvex.mehd&&(A.fragment_duration=this.moov.mvex.mehd.fragment_duration),A.isProgressive=this.isProgressive,A.hasIOD=this.moov.iods!=null,A.brands=[],A.brands.push(this.ftyp.major_brand),A.brands=A.brands.concat(this.ftyp.compatible_brands),A.created=new Date(y+this.moov.mvhd.creation_time*1e3),A.modified=new Date(y+this.moov.mvhd.modification_time*1e3),A.tracks=[],A.audioTracks=[],A.videoTracks=[],A.subtitleTracks=[],A.metadataTracks=[],A.hintTracks=[],A.otherTracks=[],f=0;f0?A.mime+='video/mp4; codecs="':A.audioTracks&&A.audioTracks.length>0?A.mime+='audio/mp4; codecs="':A.mime+='application/mp4; codecs="',f=0;f=A.samples.length)&&(t.info("ISOFile","Sending fragmented data on track #"+p.id+" for samples ["+Math.max(0,A.nextSample-p.nb_samples)+","+(A.nextSample-1)+"]"),t.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(p.id,p.user,p.segmentStream.buffer,A.nextSample,f||A.nextSample>=A.samples.length),p.segmentStream=null,p!==this.fragmentedTracks[k]))break}}if(this.onSamples!==null)for(k=0;k=A.samples.length)&&(t.debug("ISOFile","Sending samples on track #"+w.id+" for sample "+A.nextSample),this.onSamples&&this.onSamples(w.id,w.user,w.samples),w.samples=[],w!==this.extractedTracks[k]))break}}}},m.prototype.getBox=function(f){var k=this.getBoxes(f,!0);return k.length?k[0]:null},m.prototype.getBoxes=function(f,k){var A=[];return m._sweep.call(this,f,A,k),A},m._sweep=function(f,k,A){this.type&&this.type==f&&k.push(this);for(var p in this.boxes){if(k.length&&A)return;m._sweep.call(this.boxes[p],f,k,A)}},m.prototype.getTrackSamplesInfo=function(f){var k=this.getTrackById(f);if(k)return k.samples},m.prototype.getTrackSample=function(f,k){var A=this.getTrackById(f),p=this.getSample(A,k);return p},m.prototype.releaseUsedSamples=function(f,k){var A=0,p=this.getTrackById(f);p.lastValidSample||(p.lastValidSample=0);for(var b=p.lastValidSample;bf*b.timescale){y=p-1;break}k&&b.is_sync&&(O=p)}for(k&&(y=O),f=A.samples[y].cts,A.nextSample=y;A.samples[y].alreadyRead===A.samples[y].size&&A.samples[y+1];)y++;return w=A.samples[y].offset+A.samples[y].alreadyRead,t.info("ISOFile","Seeking to "+(k?"RAP":"")+" sample #"+A.nextSample+" on track "+A.tkhd.track_id+", time "+t.getDurationString(f,C)+" and offset: "+w),{offset:w,time:f/C}},m.prototype.getTrackDuration=function(f){var k;return f.samples?(k=f.samples[f.samples.length-1],(k.cts+k.duration)/k.timescale):1/0},m.prototype.seek=function(f,k){var A=this.moov,p,b,w,O={offset:1/0,time:1/0};if(this.moov){for(w=0;wthis.getTrackDuration(p))&&(b=this.seekTrack(f,k,p),b.offset-1){O=y;break}switch(O){case"Visual":if(b.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),w.set("width",k.width).set("height",k.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",k.type+" Compressor").set("depth",24),k.avcDecoderConfigRecord){var S=new l.avcCBox;S.parse(new n(k.avcDecoderConfigRecord)),w.addBox(S)}else if(k.hevcDecoderConfigRecord){var L=new l.hvcCBox;L.parse(new n(k.hevcDecoderConfigRecord)),w.addBox(L)}else if(k.vpcDecoderConfigRecord){var E=new l.vpcCBox;E.parse(new n(k.vpcDecoderConfigRecord)),w.addBox(E)}break;case"Audio":b.add("smhd").set("balance",k.balance||0),w.set("channel_count",k.channel_count||2).set("samplesize",k.samplesize||16).set("samplerate",k.samplerate||65536);break;case"Hint":b.add("hmhd");break;case"Subtitle":switch(b.add("sthd"),k.type){case"stpp":w.set("namespace",k.namespace||"nonamespace").set("schema_location",k.schema_location||"").set("auxiliary_mime_types",k.auxiliary_mime_types||"");break}break;case"Metadata":b.add("nmhd");break;case"System":b.add("nmhd");break;default:b.add("nmhd");break}k.description&&w.addBox(k.description),k.description_boxes&&k.description_boxes.forEach(function(D){w.addBox(D)}),b.add("dinf").add("dref").addEntry(new l["url Box"]().set("flags",1));var T=b.add("stbl");return T.add("stsd").addEntry(w),T.add("stts").set("sample_counts",[]).set("sample_deltas",[]),T.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),T.add("stco").set("chunk_offsets",[]),T.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",k.id).set("default_sample_description_index",k.default_sample_description_index||1).set("default_sample_duration",k.default_sample_duration||0).set("default_sample_size",k.default_sample_size||0).set("default_sample_flags",k.default_sample_flags||0),this.buildTrakSampleLists(A),k.id}},l.Box.prototype.computeSize=function(f){var k=f||new r;k.endianness=r.BIG_ENDIAN,this.write(k)},m.prototype.addSample=function(f,k,A){var p=A||{},b={},w=this.getTrackById(f);if(w!==null){b.number=w.samples.length,b.track_id=w.tkhd.track_id,b.timescale=w.mdia.mdhd.timescale,b.description_index=p.sample_description_index?p.sample_description_index-1:0,b.description=w.mdia.minf.stbl.stsd.entries[b.description_index],b.data=k,b.size=k.byteLength,b.alreadyRead=b.size,b.duration=p.duration||1,b.cts=p.cts||0,b.dts=p.dts||0,b.is_sync=p.is_sync||!1,b.is_leading=p.is_leading||0,b.depends_on=p.depends_on||0,b.is_depended_on=p.is_depended_on||0,b.has_redundancy=p.has_redundancy||0,b.degradation_priority=p.degradation_priority||0,b.offset=0,b.subsamples=p.subsamples,w.samples.push(b),w.samples_size+=b.size,w.samples_duration+=b.duration,w.first_dts===void 0&&(w.first_dts=p.dts),this.processSamples();var O=this.createSingleSampleMoof(b);return this.addBox(O),O.computeSize(),O.trafs[0].truns[0].data_offset=O.size+8,this.add("mdat").data=new Uint8Array(k),b}},m.prototype.createSingleSampleMoof=function(f){var k=0;f.is_sync?k=1<<25:k=65536;var A=new l.moofBox;A.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var p=A.add("traf"),b=this.getTrackById(f.track_id);return p.add("tfhd").set("track_id",f.track_id).set("flags",l.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),p.add("tfdt").set("baseMediaDecodeTime",f.dts-(b.first_dts||0)),p.add("trun").set("flags",l.TRUN_FLAGS_DATA_OFFSET|l.TRUN_FLAGS_DURATION|l.TRUN_FLAGS_SIZE|l.TRUN_FLAGS_FLAGS|l.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[f.duration]).set("sample_size",[f.size]).set("sample_flags",[k]).set("sample_composition_time_offset",[f.cts-f.dts]),A},m.prototype.lastMoofIndex=0,m.prototype.samplesDataSize=0,m.prototype.resetTables=function(){var f,k,A,p,b,w,O,y;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,f=0;f=2&&(C=b[O].grouping_type+"/0",y=new _(b[O].grouping_type,0),y.is_fragment=!0,k.sample_groups_info[C]||(k.sample_groups_info[C]=y))}else for(O=0;O=2&&(C=p[O].grouping_type+"/0",y=new _(p[O].grouping_type,0),f.sample_groups_info[C]||(f.sample_groups_info[C]=y))},m.setSampleGroupProperties=function(f,k,A,p){var b,w;k.sample_groups=[];for(b in p)if(k.sample_groups[b]={},k.sample_groups[b].grouping_type=p[b].grouping_type,k.sample_groups[b].grouping_type_parameter=p[b].grouping_type_parameter,A>=p[b].last_sample_in_run&&(p[b].last_sample_in_run<0&&(p[b].last_sample_in_run=0),p[b].entry_index++,p[b].entry_index<=p[b].sbgp.entries.length-1&&(p[b].last_sample_in_run+=p[b].sbgp.entries[p[b].entry_index].sample_count)),p[b].entry_index<=p[b].sbgp.entries.length-1?k.sample_groups[b].group_description_index=p[b].sbgp.entries[p[b].entry_index].group_description_index:k.sample_groups[b].group_description_index=-1,k.sample_groups[b].group_description_index!==0){var O;p[b].fragment_description?O=p[b].fragment_description:O=p[b].description,k.sample_groups[b].group_description_index>0?(k.sample_groups[b].group_description_index>65535?w=(k.sample_groups[b].group_description_index>>16)-1:w=k.sample_groups[b].group_description_index-1,O&&w>=0&&(k.sample_groups[b].description=O.entries[w])):O&&O.version>=2&&O.default_group_description_index>0&&(k.sample_groups[b].description=O.entries[O.default_group_description_index-1])}},m.process_sdtp=function(f,k,A){k&&(f?(k.is_leading=f.is_leading[A],k.depends_on=f.sample_depends_on[A],k.is_depended_on=f.sample_is_depended_on[A],k.has_redundancy=f.sample_has_redundancy[A]):(k.is_leading=0,k.depends_on=0,k.is_depended_on=0,k.has_redundancy=0))},m.prototype.buildSampleLists=function(){var f,k;for(f=0;f"u")){for(k=0;kB&&(R++,B<0&&(B=0),B+=w.sample_counts[R]),k>0?(f.samples[k-1].duration=w.sample_deltas[R],f.samples_duration+=f.samples[k-1].duration,$.dts=f.samples[k-1].dts+f.samples[k-1].duration):$.dts=0,O?(k>=I&&(F++,I<0&&(I=0),I+=O.sample_counts[F]),$.cts=f.samples[k].dts+O.sample_offsets[F]):$.cts=$.dts,y?(k==y.sample_numbers[j]-1?($.is_sync=!0,j++):($.is_sync=!1,$.degradation_priority=0),_&&_.entries[W].sample_delta+H==k+1&&($.subsamples=_.entries[W].subsamples,H+=_.entries[W].sample_delta,W++)):$.is_sync=!0,m.process_sdtp(f.mdia.minf.stbl.sdtp,$,$.number),E?$.degradation_priority=E.priority[k]:$.degradation_priority=0,_&&_.entries[W].sample_delta+H==k&&($.subsamples=_.entries[W].subsamples,H+=_.entries[W].sample_delta),(S.length>0||L.length>0)&&m.setSampleGroupProperties(f,$,k,f.sample_groups_info)}k>0&&(f.samples[k-1].duration=Math.max(f.mdia.mdhd.duration-f.samples[k-1].dts,0),f.samples_duration+=f.samples[k-1].duration)}},m.prototype.updateSampleLists=function(){var f,k,A,p,b,w,O,y,C,_,S,L,E,T,D;if(this.moov!==void 0){for(;this.lastMoofIndex0&&m.initSampleGroups(L,S,S.sbgps,L.mdia.minf.stbl.sgpds,S.sgpds),k=0;k0?T.dts=L.samples[L.samples.length-2].dts+L.samples[L.samples.length-2].duration:(S.tfdt?T.dts=S.tfdt.baseMediaDecodeTime:T.dts=0,L.first_traf_merged=!0),T.cts=T.dts,P.flags&l.TRUN_FLAGS_CTS_OFFSET&&(T.cts=T.dts+P.sample_composition_time_offset[A]),D=O,P.flags&l.TRUN_FLAGS_FLAGS?D=P.sample_flags[A]:A===0&&P.flags&l.TRUN_FLAGS_FIRST_FLAG&&(D=P.first_sample_flags),T.is_sync=!(D>>16&1),T.is_leading=D>>26&3,T.depends_on=D>>24&3,T.is_depended_on=D>>22&3,T.has_redundancy=D>>20&3,T.degradation_priority=D&65535;var Q=!!(S.tfhd.flags&l.TFHD_FLAG_BASE_DATA_OFFSET),M=!!(S.tfhd.flags&l.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),B=!!(P.flags&l.TRUN_FLAGS_DATA_OFFSET),R=0;Q?R=S.tfhd.base_data_offset:M||k===0?R=_.start:R=y,k===0&&A===0?B?T.offset=R+P.data_offset:T.offset=R:T.offset=y,y=T.offset+T.size,(S.sbgps.length>0||S.sgpds.length>0||L.mdia.minf.stbl.sbgps.length>0||L.mdia.minf.stbl.sgpds.length>0)&&m.setSampleGroupProperties(L,T,T.number_in_traf,S.sample_groups_info)}}if(S.subs){L.has_fragment_subsamples=!0;var I=S.first_sample_index;for(k=0;k-1){A=this.stream.buffers[b];var w=A.byteLength-(p.offset+p.alreadyRead-A.fileStart);if(p.size-p.alreadyRead<=w)return t.debug("ISOFile","Getting sample #"+k+" data (alreadyRead: "+p.alreadyRead+" offset: "+(p.offset+p.alreadyRead-A.fileStart)+" read size: "+(p.size-p.alreadyRead)+" full size: "+p.size+")"),r.memcpy(p.data.buffer,p.alreadyRead,A,p.offset+p.alreadyRead-A.fileStart,p.size-p.alreadyRead),A.usedBytes+=p.size-p.alreadyRead,this.stream.logBufferLevel(),p.alreadyRead=p.size,p;if(w===0)return null;t.debug("ISOFile","Getting sample #"+k+" partial data (alreadyRead: "+p.alreadyRead+" offset: "+(p.offset+p.alreadyRead-A.fileStart)+" read size: "+w+" full size: "+p.size+")"),r.memcpy(p.data.buffer,p.alreadyRead,A,p.offset+p.alreadyRead-A.fileStart,w),p.alreadyRead+=w,A.usedBytes+=w,this.stream.logBufferLevel()}else return null}},m.prototype.releaseSample=function(f,k){var A=f.samples[k];return A.data?(this.samplesDataSize-=A.size,A.data=null,A.alreadyRead=0,A.size):0},m.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},m.prototype.getCodecs=function(){var f,k="";for(f=0;f0&&(k+=","),k+=A.mdia.minf.stbl.stsd.entries[0].getCodec()}return k},m.prototype.getTrexById=function(f){var k;if(!this.moov||!this.moov.mvex)return null;for(k=0;k0&&(b.protection=w.ipro.protections[w.iinf.item_infos[A].protection_index-1]),w.iinf.item_infos[A].item_type?b.type=w.iinf.item_infos[A].item_type:b.type="mime",b.content_type=w.iinf.item_infos[A].content_type,b.content_encoding=w.iinf.item_infos[A].content_encoding;if(w.grpl)for(A=0;A0&&L.property_index-1-1){k=this.stream.buffers[w];var O=k.byteLength-(b.offset+b.alreadyRead-k.fileStart);if(b.length-b.alreadyRead<=O)t.debug("ISOFile","Getting item #"+f+" extent #"+p+" data (alreadyRead: "+b.alreadyRead+" offset: "+(b.offset+b.alreadyRead-k.fileStart)+" read size: "+(b.length-b.alreadyRead)+" full extent size: "+b.length+" full item size: "+A.size+")"),r.memcpy(A.data.buffer,A.alreadyRead,k,b.offset+b.alreadyRead-k.fileStart,b.length-b.alreadyRead),k.usedBytes+=b.length-b.alreadyRead,this.stream.logBufferLevel(),A.alreadyRead+=b.length-b.alreadyRead,b.alreadyRead=b.length;else return t.debug("ISOFile","Getting item #"+f+" extent #"+p+" partial data (alreadyRead: "+b.alreadyRead+" offset: "+(b.offset+b.alreadyRead-k.fileStart)+" read size: "+O+" full extent size: "+b.length+" full item size: "+A.size+")"),r.memcpy(A.data.buffer,A.alreadyRead,k,b.offset+b.alreadyRead-k.fileStart,O),b.alreadyRead+=O,A.alreadyRead+=O,k.usedBytes+=O,this.stream.logBufferLevel(),null}else return null}}return A.alreadyRead===A.size?A:null},m.prototype.releaseItem=function(f){var k=this.items[f];if(k.data){this.itemsDataSize-=k.size,k.data=null,k.alreadyRead=0;for(var A=0;A0?this.moov.traks[f].samples[0].duration:0),k.push(p)}return k},l.Box.prototype.printHeader=function(f){this.size+=8,this.size>o&&(this.size+=8),this.type==="uuid"&&(this.size+=16),f.log(f.indent+"size:"+this.size),f.log(f.indent+"type:"+this.type)},l.FullBox.prototype.printHeader=function(f){this.size+=4,l.Box.prototype.printHeader.call(this,f),f.log(f.indent+"version:"+this.version),f.log(f.indent+"flags:"+this.flags)},l.Box.prototype.print=function(f){this.printHeader(f)},l.ContainerBox.prototype.print=function(f){this.printHeader(f);for(var k=0;k>8)),f.log(f.indent+"matrix: "+this.matrix.join(", ")),f.log(f.indent+"next_track_id: "+this.next_track_id)},l.tkhdBox.prototype.print=function(f){l.FullBox.prototype.printHeader.call(this,f),f.log(f.indent+"creation_time: "+this.creation_time),f.log(f.indent+"modification_time: "+this.modification_time),f.log(f.indent+"track_id: "+this.track_id),f.log(f.indent+"duration: "+this.duration),f.log(f.indent+"volume: "+(this.volume>>8)),f.log(f.indent+"matrix: "+this.matrix.join(", ")),f.log(f.indent+"layer: "+this.layer),f.log(f.indent+"alternate_group: "+this.alternate_group),f.log(f.indent+"width: "+this.width),f.log(f.indent+"height: "+this.height)};var v={};v.createFile=function(f,k){var A=f!==void 0?f:!0,p=new m(k);return p.discardMdatData=!A,p},e.createFile=v.createFile})(yqn);const YGe=R9s(yqn),I9s=()=>{let e,t=16.6;self.onmessage=n=>{n.data.event==="start"&&(self.clearInterval(e),e=self.setInterval(()=>{self.postMessage({})},t)),n.data.event==="stop"&&self.clearInterval(e)}},M9s=()=>{const e=new Blob([`(${I9s.toString()})()`]),t=URL.createObjectURL(e);return new Worker(t)},VF=new Map;let ZGe=1,WN=null;globalThis.Worker!=null&&(WN=M9s(),WN.onmessage=()=>{ZGe+=1;for(const[e,t]of VF)if(ZGe%e===0)for(const n of t)n()});const P9s=(e,t)=>{const n=Math.round(t/16.6),r=VF.get(n)??new Set;return r.add(e),VF.set(n,r),VF.size===1&&r.size===1&&(WN==null||WN.postMessage({event:"start"})),()=>{r.delete(e),r.size===0&&VF.delete(n),VF.size===0&&(ZGe=0,WN==null||WN.postMessage({event:"stop"}))}};function F9s(e){return e instanceof Error?String(e):typeof e=="object"?JSON.stringify(e,(t,n)=>n instanceof Error?String(n):n):String(e)}function N9s(){const e=new Date;return`${e.getHours()}:${e.getMinutes()}:${e.getSeconds()}.${e.getMilliseconds()}`}let Cqn=1;const _qn=[],Gkn=["debug","info","warn","error"].reduce((e,t,n)=>Object.assign(e,{[t]:(...r)=>{Cqn<=n&&(console[t](...r),_qn.push({lvName:t,timeStr:N9s(),args:r}))}}),{}),Zre=new Map,td={setLogLevel:e=>{Cqn=Zre.get(e)??1},...Gkn,create:e=>Object.fromEntries(Object.entries(Gkn).map(([t,n])=>[t,(...r)=>n(e,...r)])),async dump(){return _qn.reduce((e,{lvName:t,timeStr:n,args:r})=>e+`[${t}][${n}] ${r.map(o=>F9s(o)).join(" ")} `,"")}};Zre.set(td.debug,0);Zre.set(td.info,1);Zre.set(td.warn,2);Zre.set(td.error,3);(async function(){if(await Promise.resolve(),!(globalThis.navigator==null||globalThis.document==null)&&(td.info(`@webav version: 1.2.7, date: ${new Date().toLocaleDateString()}`),td.info(globalThis.navigator.userAgent),document.addEventListener("visibilitychange",()=>{td.info(`visibilitychange: ${document.visibilityState}`)}),"PressureObserver"in globalThis)){let e="";new PressureObserver(t=>{const n=JSON.stringify(t.map(r=>r.state));n!==e&&(td.info(`cpu state change: ${n}`),e=n)}).observe("cpu")}})();class U9s{constructor(t,n,r){this.length_=t,this.scaleFactor_=(t-1)/n,this.interpolate=this.cubic,r.method==="point"?this.interpolate=this.point:r.method==="linear"?this.interpolate=this.linear:r.method==="sinc"&&(this.interpolate=this.sinc),this.tangentFactor_=1-Math.max(0,Math.min(1,r.tension||0)),this.sincFilterSize_=r.sincFilterSize||1,this.kernel_=W9s(r.sincWindow||j9s)}point(t,n){return this.getClippedInput_(Math.round(this.scaleFactor_*t),n)}linear(t,n){t=this.scaleFactor_*t;let r=Math.floor(t);return t-=r,(1-t)*this.getClippedInput_(r,n)+t*this.getClippedInput_(r+1,n)}cubic(t,n){t=this.scaleFactor_*t;let r=Math.floor(t),o=[this.getTangent_(r,n),this.getTangent_(r+1,n)],s=[this.getClippedInput_(r,n),this.getClippedInput_(r+1,n)];t-=r;let a=t*t,l=t*a;return(2*l-3*a+1)*s[0]+(l-2*a+t)*o[0]+(-2*l+3*a)*s[1]+(l-a)*o[1]}sinc(t,n){t=this.scaleFactor_*t;let r=Math.floor(t),o=r-this.sincFilterSize_+1,s=r+this.sincFilterSize_,a=0;for(let l=o;l<=s;l++)a+=this.kernel_(t-l)*this.getClippedInput_(l,n);return a}getTangent_(t,n){return this.tangentFactor_*(this.getClippedInput_(t+1,n)-this.getClippedInput_(t-1,n))/2}getClippedInput_(t,n){return 0<=t&&tt){let d=new l(r.LPFOrder||Ykn[r.LPFType],n,t/2);Y9s(e,s,a,d)}else{let d=new l(r.LPFOrder||Ykn[r.LPFType],t,n/2);Z9s(e,s,a,d)}}else Sqn(e,s,a);return s}function Sqn(e,t,n){for(let r=0,o=t.length;r=0;o--)t[o]=r.filter(t[o])}function Z9s(e,t,n,r){for(let o=0,s=e.length;o=0;o--)e[o]=r.filter(e[o]);Sqn(e,t,n)}var Lqn=e=>{throw TypeError(e)},xqn=(e,t,n)=>t.has(e)||Lqn("Cannot "+n),Ka=(e,t,n)=>(xqn(e,t,"read from private field"),n?n.call(e):t.get(e)),k4=(e,t,n)=>t.has(e)?Lqn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Z1=(e,t,n,r)=>(xqn(e,t,"write to private field"),t.set(e,n),n);const Eqn="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobil7aWYobj09PSIvIilyZXR1cm57cGFyZW50Om51bGwsbmFtZToiIn07Y29uc3QgZT1uLnNwbGl0KCIvIikuZmlsdGVyKGk9PmkubGVuZ3RoPjApO2lmKGUubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiSW52YWxpZCBwYXRoIik7Y29uc3QgYT1lW2UubGVuZ3RoLTFdLHI9Ii8iK2Uuc2xpY2UoMCwtMSkuam9pbigiLyIpO3JldHVybntuYW1lOmEscGFyZW50OnJ9fWFzeW5jIGZ1bmN0aW9uIHcobixlKXtjb25zdHtwYXJlbnQ6YSxuYW1lOnJ9PXUobik7aWYoYT09bnVsbClyZXR1cm4gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7Y29uc3QgaT1hLnNwbGl0KCIvIikuZmlsdGVyKHQ9PnQubGVuZ3RoPjApO3RyeXtsZXQgdD1hd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTtmb3IoY29uc3QgcyBvZiBpKXQ9YXdhaXQgdC5nZXREaXJlY3RvcnlIYW5kbGUocyx7Y3JlYXRlOmUuY3JlYXRlfSk7aWYoZS5pc0ZpbGUpcmV0dXJuIGF3YWl0IHQuZ2V0RmlsZUhhbmRsZShyLHtjcmVhdGU6ZS5jcmVhdGV9KX1jYXRjaCh0KXtpZih0Lm5hbWU9PT0iTm90Rm91bmRFcnJvciIpcmV0dXJuIG51bGw7dGhyb3cgdH19Y29uc3QgZj17fTtzZWxmLm9ubWVzc2FnZT1hc3luYyBuPT57dmFyIGk7Y29uc3R7ZXZ0VHlwZTplLGFyZ3M6YX09bi5kYXRhO2xldCByPWZbYS5maWxlSWRdO3RyeXtsZXQgdDtjb25zdCBzPVtdO2lmKGU9PT0icmVnaXN0ZXIiKXtjb25zdCBsPWF3YWl0IHcoYS5maWxlUGF0aCx7Y3JlYXRlOiEwLGlzRmlsZTohMH0pO2lmKGw9PW51bGwpdGhyb3cgRXJyb3IoYG5vdCBmb3VuZCBmaWxlOiAke2EuZmlsZUlkfWApO3I9YXdhaXQgbC5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKHttb2RlOmEubW9kZX0pLGZbYS5maWxlSWRdPXJ9ZWxzZSBpZihlPT09ImNsb3NlIilhd2FpdCByLmNsb3NlKCksZGVsZXRlIGZbYS5maWxlSWRdO2Vsc2UgaWYoZT09PSJ0cnVuY2F0ZSIpYXdhaXQgci50cnVuY2F0ZShhLm5ld1NpemUpO2Vsc2UgaWYoZT09PSJ3cml0ZSIpe2NvbnN0e2RhdGE6bCxvcHRzOm99PW4uZGF0YS5hcmdzO3Q9YXdhaXQgci53cml0ZShsLG8pfWVsc2UgaWYoZT09PSJyZWFkIil7Y29uc3R7b2Zmc2V0Omwsc2l6ZTpvfT1uLmRhdGEuYXJncyxnPW5ldyBVaW50OEFycmF5KG8pLGQ9YXdhaXQgci5yZWFkKGcse2F0Omx9KSxjPWcuYnVmZmVyO3Q9ZD09PW8/YzooKGk9Yy50cmFuc2Zlcik9PW51bGw/dm9pZCAwOmkuY2FsbChjLGQpKT8/Yy5zbGljZSgwLGQpLHMucHVzaCh0KX1lbHNlIGU9PT0iZ2V0U2l6ZSI/dD1hd2FpdCByLmdldFNpemUoKTplPT09ImZsdXNoIiYmYXdhaXQgci5mbHVzaCgpO3NlbGYucG9zdE1lc3NhZ2Uoe2V2dFR5cGU6ImNhbGxiYWNrIixjYklkOm4uZGF0YS5jYklkLHJldHVyblZhbDp0fSxzKX1jYXRjaCh0KXtjb25zdCBzPXQ7c2VsZi5wb3N0TWVzc2FnZSh7ZXZ0VHlwZToidGhyb3dFcnJvciIsY2JJZDpuLmRhdGEuY2JJZCxlcnJNc2c6cy5uYW1lKyI6ICIrcy5tZXNzYWdlK2AKYCtKU09OLnN0cmluZ2lmeShuLmRhdGEpfSl9fX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZnMtd29ya2VyLUY0UldscWNfLmpzLm1hcAo=",q9s=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Zkn=typeof self<"u"&&self.Blob&&new Blob([q9s(Eqn)],{type:"text/javascript;charset=utf-8"});function K9s(e){let t;try{if(t=Zkn&&(self.URL||self.webkitURL).createObjectURL(Zkn),!t)throw"";const n=new Worker(t,{name:e==null?void 0:e.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker("data:text/javascript;base64,"+Eqn,{name:e==null?void 0:e.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}async function J9s(e,t,n){const r=e6s();return await r("register",{fileId:e,filePath:t,mode:n}),{read:async(o,s)=>await r("read",{fileId:e,offset:o,size:s}),write:async(o,s)=>await r("write",{fileId:e,data:o,opts:s},[ArrayBuffer.isView(o)?o.buffer:o]),close:async()=>await r("close",{fileId:e}),truncate:async o=>await r("truncate",{fileId:e,newSize:o}),getSize:async()=>await r("getSize",{fileId:e}),flush:async()=>await r("flush",{fileId:e})}}const zde=[];let RRe=0;function e6s(){if(zde.length<3){const t=e();return zde.push(t),t}else{const t=zde[RRe];return RRe=(RRe+1)%zde.length,t}function e(){const t=new K9s;let n=0,r={};return t.onmessage=({data:o})=>{var s,a;o.evtType==="callback"?(s=r[o.cbId])==null||s.resolve(o.returnVal):o.evtType==="throwError"&&((a=r[o.cbId])==null||a.reject(Error(o.errMsg))),delete r[o.cbId]},async function(o,s,a=[]){n+=1;const l=new Promise((d,u)=>{r[n]={resolve:d,reject:u}});return t.postMessage({cbId:n,evtType:o,args:s},a),l}}}function JOe(e){if(e==="/")return{parent:null,name:""};const t=e.split("/").filter(o=>o.length>0);if(t.length===0)throw Error("Invalid path");const n=t[t.length-1],r="/"+t.slice(0,-1).join("/");return{name:n,parent:r}}async function Q9(e,t){const{parent:n,name:r}=JOe(e);if(n==null)return await navigator.storage.getDirectory();const o=n.split("/").filter(s=>s.length>0);try{let s=await navigator.storage.getDirectory();for(const a of o)s=await s.getDirectoryHandle(a,{create:t.create});return t.isFile?await s.getFileHandle(r,{create:t.create}):await s.getDirectoryHandle(r,{create:t.create})}catch(s){if(s.name==="NotFoundError")return null;throw s}}async function qGe(e){const{parent:t,name:n}=JOe(e);if(t==null){const o=await navigator.storage.getDirectory();for await(const s of o.keys())await o.removeEntry(s,{recursive:!0});return}const r=await Q9(t,{create:!1,isFile:!1});if(r!=null)try{await r.removeEntry(n,{recursive:!0})}catch(o){if(o.name==="NotFoundError")return;throw o}}function KGe(e,t){return`${e}/${t}`.replace("//","/")}function VN(e){return new Qqn(e)}var Iw,afe,gY;const t6s=class Tqn{constructor(t){k4(this,Iw),k4(this,afe),k4(this,gY),Z1(this,Iw,t);const{parent:n,name:r}=JOe(t);Z1(this,afe,r),Z1(this,gY,n)}get kind(){return"dir"}get name(){return Ka(this,afe)}get path(){return Ka(this,Iw)}get parent(){return Ka(this,gY)==null?null:VN(Ka(this,gY))}async create(){return await Q9(Ka(this,Iw),{create:!0,isFile:!1}),VN(Ka(this,Iw))}async exists(){return await Q9(Ka(this,Iw),{create:!1,isFile:!1})instanceof FileSystemDirectoryHandle}async remove(t={}){for(const n of await this.children())try{await n.remove(t)}catch(r){console.warn(r)}try{await qGe(Ka(this,Iw))}catch(n){console.warn(n)}}async children(){const t=await Q9(Ka(this,Iw),{create:!1,isFile:!1});if(t==null)return[];const n=[];for await(const r of t.values())n.push((r.kind==="file"?qre:VN)(KGe(Ka(this,Iw),r.name)));return n}async copyTo(t){if(!await this.exists())throw Error(`dir ${this.path} not exists`);if(t instanceof Tqn){const n=await t.exists()?VN(KGe(t.path,this.name)):t;return await n.create(),await Promise.all((await this.children()).map(r=>r.copyTo(n))),n}else if(t instanceof FileSystemDirectoryHandle)return await Promise.all((await this.children()).map(async n=>{n.kind==="file"?await n.copyTo(await t.getFileHandle(n.name,{create:!0})):await n.copyTo(await t.getDirectoryHandle(n.name,{create:!0}))})),null;throw Error("Illegal target type")}async moveTo(t){const n=await this.copyTo(t);return await this.remove(),n}};Iw=new WeakMap,afe=new WeakMap,gY=new WeakMap;let Qqn=t6s;const JGe=new Map;function qre(e,t="rw"){if(t==="rw"){const n=JGe.get(e)??new eve(e,t);return JGe.set(e,n),n}return new eve(e,t)}async function rat(e,t,n={overwrite:!0}){if(t instanceof eve){await rat(e,await t.stream(),n);return}const r=await(e instanceof eve?e:qre(e,"rw")).createWriter();try{if(n.overwrite&&await r.truncate(0),t instanceof ReadableStream){const o=t.getReader();for(;;){const{done:s,value:a}=await o.read();if(s)break;await r.write(a)}}else await r.write(t)}catch(o){throw o}finally{await r.close()}}let n6s=0;const i6s=()=>++n6s;var r4,mY,lfe,kY,cfe,S_,dfe,ufe,zF;const r6s=class Dqn{constructor(t,n){k4(this,r4),k4(this,mY),k4(this,lfe),k4(this,kY),k4(this,cfe),k4(this,S_,0),k4(this,dfe,async()=>{}),k4(this,ufe,(()=>{let s=null;return()=>(Z1(this,S_,Ka(this,S_)+1),s!=null||(s=new Promise(async(a,l)=>{try{const d=await J9s(Ka(this,cfe),Ka(this,r4),Ka(this,kY));Z1(this,dfe,async()=>{s!=null&&(s=null,Z1(this,S_,0),await d.close().catch(console.error))}),a([d,async()=>{Z1(this,S_,Ka(this,S_)-1),!(Ka(this,S_)>0)&&(s=null,await d.close())}])}catch(d){l(d)}})),s)})()),k4(this,zF,!1),Z1(this,cfe,i6s()),Z1(this,r4,t),Z1(this,kY,{r:"read-only",rw:"readwrite","rw-unsafe":"readwrite-unsafe"}[n]);const{parent:r,name:o}=JOe(t);if(r==null)throw Error("Invalid path");Z1(this,lfe,o),Z1(this,mY,r)}get kind(){return"file"}get path(){return Ka(this,r4)}get name(){return Ka(this,lfe)}get parent(){return Ka(this,mY)==null?null:VN(Ka(this,mY))}async createWriter(){if(Ka(this,kY)==="read-only")throw Error("file is read-only");if(Ka(this,zF))throw Error("Other writer have not been closed");Z1(this,zF,!0);try{const t=new TextEncoder,[n,r]=await Ka(this,ufe).call(this);let o=await n.getSize(),s=!1;return{write:async(a,l={})=>{if(s)throw Error("Writer is closed");const d=typeof a=="string"?t.encode(a):a,u=l.at??o,h=d.byteLength;return o=u+h,await n.write(d,{at:u})},truncate:async a=>{if(s)throw Error("Writer is closed");await n.truncate(a),o>a&&(o=a)},flush:async()=>{if(s)throw Error("Writer is closed");await n.flush()},close:async()=>{if(s)throw Error("Writer is closed");s=!0,Z1(this,zF,!1),await r()}}}catch(t){throw Z1(this,zF,!1),t}}async createReader(){const[t,n]=await Ka(this,ufe).call(this);let r=!1,o=0;return{read:async(s,a={})=>{if(r)throw Error("Reader is closed");const l=a.at??o,d=await t.read(l,s);return o=l+d.byteLength,d},getSize:async()=>{if(r)throw Error("Reader is closed");return await t.getSize()},close:async()=>{r||(r=!0,await n())}}}async text(){return new TextDecoder().decode(await this.arrayBuffer())}async arrayBuffer(){const t=await Q9(Ka(this,r4),{create:!1,isFile:!0});return t==null?new ArrayBuffer(0):(await t.getFile()).arrayBuffer()}async stream(){const t=await this.getOriginFile();return t==null?new ReadableStream({pull:n=>{n.close()}}):t.stream()}async getOriginFile(){var t;return(t=await Q9(Ka(this,r4),{create:!1,isFile:!0}))==null?void 0:t.getFile()}async getSize(){const t=await Q9(Ka(this,r4),{create:!1,isFile:!0});return t==null?0:(await t.getFile()).size}async exists(){return await Q9(Ka(this,r4),{create:!1,isFile:!0})instanceof FileSystemFileHandle}async remove(t={}){if(t.force===!0){await Ka(this,dfe).call(this),await qGe(Ka(this,r4)),JGe.delete(Ka(this,r4));return}if(Ka(this,S_)>0)throw Error("exists unclosed reader/writer");await qGe(Ka(this,r4))}async copyTo(t){if(t instanceof Dqn)return t.path===this.path?this:(await rat(t,this),t);if(t instanceof Qqn){if(!await this.exists())throw Error(`file ${this.path} not exists`);return await this.copyTo(qre(KGe(t.path,this.name)))}else if(t instanceof FileSystemFileHandle)return await(await this.stream()).pipeTo(await t.createWritable()),null;throw Error("Illegal target type")}async moveTo(t){const n=await this.copyTo(t);return await this.remove(),n}};r4=new WeakMap,mY=new WeakMap,lfe=new WeakMap,kY=new WeakMap,cfe=new WeakMap,S_=new WeakMap,dfe=new WeakMap,ufe=new WeakMap,zF=new WeakMap;let eve=r6s;const oat="/.opfs-tools-temp-dir";async function Bqn(e){try{if(e.kind==="file"){if(!await e.exists())return!0;const t=await e.createWriter();await t.truncate(0),await t.close(),await e.remove()}else await e.remove();return!0}catch(t){return console.warn(t),!1}}function o6s(){setInterval(async()=>{for(const e of await VN(oat).children()){const t=/^\d+-(\d+)$/.exec(e.name);(t==null||Date.now()-Number(t[1])>2592e5)&&await Bqn(e)}},60*1e3)}const eYe=[];let qkn=!1;async function s6s(){if(globalThis.localStorage==null)return;const e="OPFS_TOOLS_EXPIRES_TMP_FILES";qkn||(qkn=!0,globalThis.addEventListener("unload",()=>{eYe.length!==0&&localStorage.setItem(e,`${localStorage.getItem(e)??""},${eYe.join(",")}`)}));let t=localStorage.getItem(e)??"";for(const n of t.split(","))n.length!==0&&await Bqn(qre(`${oat}/${n}`))&&(t=t.replace(n,""));localStorage.setItem(e,t.replace(/,{2,}/g,","))}(async function(){var e;globalThis.__opfs_tools_tmpfile_init__!==!0&&(globalThis.__opfs_tools_tmpfile_init__=!0,!(globalThis.FileSystemDirectoryHandle==null||globalThis.FileSystemFileHandle==null||((e=globalThis.navigator)==null?void 0:e.storage.getDirectory)==null)&&(o6s(),await s6s()))})();function a6s(){const e=`${Math.random().toString().slice(2)}-${Date.now()}`;return eYe.push(e),qre(`${oat}/${e}`)}function l6s(e){const t=new Float32Array(e.map(r=>r.length).reduce((r,o)=>r+o));let n=0;for(const r of e)t.set(r,n),n+=r.length;return t}function c6s(e){const t=[];for(let n=0;nnew Float32Array(n));for(let o=0;onew Float32Array(n));for(let o=0;oe.getChannelData(n))}async function f6s(e,t,n){const r=e.length,o=Array(n.chanCount).fill(0).map(()=>new Float32Array(0));if(r===0)return o;const s=Math.max(...e.map(u=>u.length));if(s===0)return o;if(globalThis.OfflineAudioContext==null)return e.map(u=>new Float32Array(G9s(u,t,n.rate,{method:"sinc",LPF:!1})));const a=new globalThis.OfflineAudioContext(n.chanCount,s*n.rate/t,n.rate),l=a.createBufferSource(),d=a.createBuffer(r,s,t);return e.forEach((u,h)=>d.copyToChannel(u,h)),l.buffer=d,l.connect(a.destination),l.start(),Rqn(await a.startRendering())}function Iqn(e){return new Promise(t=>{const n=P9s(()=>{n(),t()},e)})}function Kkn(e,t,n){const r=n-t,o=new Float32Array(r);let s=0;for(;so.mdia.minf.stbl.stsd.entries).flat().find(({type:o})=>o===t))==null?void 0:r.esds}function v6s(e){let t="mp4a";const n=e.esd.descs[0];if(n==null)return{};t+="."+n.oti.toString(16);const r=n.descs[0];if(r==null)return t.endsWith("40")&&(t+=".2"),{codec:t};const o=(r.data[0]&248)>>3;t+="."+o;const[s,a]=r.data,l=((s&7)<<1)+(a>>7),d=(a&127)>>3;return{codec:t,sampleRate:[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][l],numberOfChannels:d}}async function A6s(e,t,n){const r=YGe.createFile(!1);r.onReady=s=>{var a,l;t({mp4boxFile:r,info:s});const d=(a=s.videoTracks[0])==null?void 0:a.id;d!=null&&r.setExtractionOptions(d,"video",{nbSamples:100});const u=(l=s.audioTracks[0])==null?void 0:l.id;u!=null&&r.setExtractionOptions(u,"audio",{nbSamples:100}),r.start()},r.onSamples=n,await o();async function o(){let s=0;const a=30*1024*1024;for(;;){const l=await e.read(a,{at:s});if(l.byteLength===0)break;l.fileStart=s;const d=r.appendBuffer(l);if(d==null)break;s=d}r.stop()}}function p6s(e){if((e==null?void 0:e.length)!==9)return{};const t=new Int32Array(e.buffer),n=t[0]/65536,r=t[1]/65536,o=t[3]/65536,s=t[4]/65536,a=t[6]/65536,l=t[7]/65536,d=t[8]/(1<<30),u=Math.sqrt(n*n+o*o),h=Math.sqrt(r*r+s*s),g=Math.atan2(o,n),m=g*180/Math.PI;return{scaleX:u,scaleY:h,rotationRad:g,rotationDeg:m,translateX:a,translateY:l,perspective:d}}function b6s(e,t,n){const r=(Math.round(n/90)*90+360)%360;if(r===0)return d=>d;const o=r===90||r===270?t:e,s=r===90||r===270?e:t,a=new OffscreenCanvas(o,s),l=a.getContext("2d");return l.translate(o/2,s/2),l.rotate(-r*Math.PI/180),l.translate(-e/2,-t/2),d=>{if(d==null)return null;l.drawImage(d,0,0);const u=new VideoFrame(a,{timestamp:d.timestamp,duration:d.duration??void 0});return d.close(),u}}let sat=0;function IRe(e){return e.kind==="file"&&e.createReader instanceof Function}var tYe,hfe,ffe,Mw,bk,L_,Xx,gfe,mfe,Pw,sT,vY,HF,x_,ev,AY;const w6s=class $F{constructor(t,n={}){if(bo(this,tYe,sat++),bo(this,hfe,td.create(`MP4Clip id:${Ht(this,tYe)},`)),jy(this,"ready"),bo(this,ffe,!1),bo(this,Mw,{duration:0,width:0,height:0,audioSampleRate:0,audioChanCount:0}),bo(this,bk),bo(this,L_,[]),bo(this,Xx,{perspective:1,rotationRad:0,rotationDeg:0,scaleX:1,scaleY:1,translateX:0,translateY:0}),bo(this,gfe,o=>o),bo(this,mfe,1),bo(this,Pw,[]),bo(this,sT,[]),bo(this,vY,null),bo(this,HF,null),bo(this,x_,{video:null,audio:null}),bo(this,ev,{audio:!0}),jy(this,"tickInterceptor",async(o,s)=>s),bo(this,AY,new AbortController),!(t instanceof ReadableStream)&&!IRe(t)&&!Array.isArray(t.videoSamples))throw Error("Illegal argument");Rr(this,ev,{audio:!0,...n}),Rr(this,mfe,typeof n.audio=="object"&&"volume"in n.audio?n.audio.volume:1);const r=async o=>(await rat(Ht(this,bk),o),Ht(this,bk));Rr(this,bk,IRe(t)?t:"localFile"in t?t.localFile:a6s()),this.ready=(t instanceof ReadableStream?r(t).then(o=>Jkn(o,Ht(this,ev))):IRe(t)?Jkn(t,Ht(this,ev)):Promise.resolve(t)).then(async({videoSamples:o,audioSamples:s,decoderConf:a,headerBoxPos:l,parsedMatrix:d})=>{Rr(this,Pw,o),Rr(this,sT,s),Rr(this,x_,a),Rr(this,L_,l),Rr(this,Xx,d);const{videoFrameFinder:u,audioFrameFinder:h}=y6s({video:a.video==null?null:{...a.video,hardwareAcceleration:Ht(this,ev).__unsafe_hardwareAcceleration__},audio:a.audio},await Ht(this,bk).createReader(),o,s,Ht(this,ev).audio!==!1?Ht(this,mfe):0);Rr(this,vY,u),Rr(this,HF,h);const{codedWidth:g,codedHeight:m}=a.video??{};return g&&m&&Rr(this,gfe,b6s(g,m,d.rotationDeg)),Rr(this,Mw,O6s(a,o,s,d.rotationDeg)),Ht(this,hfe).info("MP4Clip meta:",Ht(this,Mw)),{...Ht(this,Mw)}})}get meta(){return{...Ht(this,Mw)}}async getFileHeaderBinData(){await this.ready;const t=await Ht(this,bk).getOriginFile();if(t==null)throw Error("MP4Clip localFile is not origin file");return await new Blob(Ht(this,L_).map(({start:n,size:r})=>t.slice(n,n+r))).arrayBuffer()}async tick(t){var n,r,o;if(t>=Ht(this,Mw).duration)return await this.tickInterceptor(t,{audio:await((n=Ht(this,HF))==null?void 0:n.find(t))??[],state:"done"});const[s,a]=await Promise.all([((r=Ht(this,HF))==null?void 0:r.find(t))??[],(o=Ht(this,vY))==null?void 0:o.find(t).then(Ht(this,gfe))]);return a==null?await this.tickInterceptor(t,{audio:s,state:"success"}):await this.tickInterceptor(t,{video:a,audio:s,state:"success"})}async thumbnails(t=100,n){Ht(this,AY).abort(),Rr(this,AY,new AbortController);const r=Ht(this,AY).signal;await this.ready;const o="generate thumbnails aborted";if(r.aborted)throw Error(o);const{width:s,height:a}=Ht(this,Mw),l=x6s(t,Math.round(a*(t/s)),{quality:.1,type:"image/png"});return new Promise(async(d,u)=>{let h=[];const g=Ht(this,x_).video;if(g==null||Ht(this,Pw).length===0){m();return}r.addEventListener("abort",()=>{u(Error(o))});async function m(){r.aborted||d(await Promise.all(h.map(async p=>({ts:p.ts,img:await p.img}))))}function v(p){h.push({ts:p.timestamp,img:l(p)})}const{start:f=0,end:k=Ht(this,Mw).duration,step:A}=n??{};if(A){let p=f;const b=new Pqn(await Ht(this,bk).createReader(),Ht(this,Pw),{...g,hardwareAcceleration:Ht(this,ev).__unsafe_hardwareAcceleration__});for(;p<=k&&!r.aborted;){const w=await b.find(p);w&&v(w),p+=A}b.destroy(),m()}else await D6s(Ht(this,Pw),Ht(this,bk),g,r,{start:f,end:k},(p,b)=>{p!=null&&v(p),b&&m()})})}async split(t){if(await this.ready,t<=0||t>=Ht(this,Mw).duration)throw Error('"time" out of bounds');const[n,r]=E6s(Ht(this,Pw),t),[o,s]=T6s(Ht(this,sT),t),a=new $F({localFile:Ht(this,bk),videoSamples:n??[],audioSamples:o??[],decoderConf:Ht(this,x_),headerBoxPos:Ht(this,L_),parsedMatrix:Ht(this,Xx)},Ht(this,ev)),l=new $F({localFile:Ht(this,bk),videoSamples:r??[],audioSamples:s??[],decoderConf:Ht(this,x_),headerBoxPos:Ht(this,L_),parsedMatrix:Ht(this,Xx)},Ht(this,ev));return await Promise.all([a.ready,l.ready]),[a,l]}async clone(){await this.ready;const t=new $F({localFile:Ht(this,bk),videoSamples:[...Ht(this,Pw)],audioSamples:[...Ht(this,sT)],decoderConf:Ht(this,x_),headerBoxPos:Ht(this,L_),parsedMatrix:Ht(this,Xx)},Ht(this,ev));return await t.ready,t.tickInterceptor=this.tickInterceptor,t}async splitTrack(){await this.ready;const t=[];if(Ht(this,Pw).length>0){const n=new $F({localFile:Ht(this,bk),videoSamples:[...Ht(this,Pw)],audioSamples:[],decoderConf:{video:Ht(this,x_).video,audio:null},headerBoxPos:Ht(this,L_),parsedMatrix:Ht(this,Xx)},Ht(this,ev));await n.ready,n.tickInterceptor=this.tickInterceptor,t.push(n)}if(Ht(this,sT).length>0){const n=new $F({localFile:Ht(this,bk),videoSamples:[],audioSamples:[...Ht(this,sT)],decoderConf:{audio:Ht(this,x_).audio,video:null},headerBoxPos:Ht(this,L_),parsedMatrix:Ht(this,Xx)},Ht(this,ev));await n.ready,n.tickInterceptor=this.tickInterceptor,t.push(n)}return t}destroy(){var t,n;Ht(this,ffe)||(Ht(this,hfe).info("MP4Clip destroy"),Rr(this,ffe,!0),(t=Ht(this,vY))==null||t.destroy(),(n=Ht(this,HF))==null||n.destroy())}};tYe=new WeakMap,hfe=new WeakMap,ffe=new WeakMap,Mw=new WeakMap,bk=new WeakMap,L_=new WeakMap,Xx=new WeakMap,gfe=new WeakMap,mfe=new WeakMap,Pw=new WeakMap,sT=new WeakMap,vY=new WeakMap,HF=new WeakMap,x_=new WeakMap,ev=new WeakMap,AY=new WeakMap;let Mqn=w6s;function O6s(e,t,n,r){const o={duration:0,width:0,height:0,audioSampleRate:0,audioChanCount:0};if(e.video!=null&&t.length>0){o.width=e.video.codedWidth??0,o.height=e.video.codedHeight??0;const l=(Math.round(r/90)*90+360)%360;(l===90||l===270)&&([o.width,o.height]=[o.height,o.width])}e.audio!=null&&n.length>0&&(o.audioSampleRate=z4.sampleRate,o.audioChanCount=z4.channelCount);let s=0,a=0;if(t.length>0)for(let l=t.length-1;l>=0;l--){const d=t[l];if(!d.deleted){s=d.cts+d.duration;break}}if(n.length>0){const l=n.at(-1);a=l.cts+l.duration}return o.duration=Math.max(s,a),o}function y6s(e,t,n,r,o){return{audioFrameFinder:o===0||e.audio==null||r.length===0?null:new _6s(t,r,e.audio,{volume:o,targetSampleRate:z4.sampleRate}),videoFrameFinder:e.video==null||n.length===0?null:new Pqn(t,n,e.video)}}async function Jkn(e,t={}){let n=null;const r={video:null,audio:null};let o=[],s=[],a=[];const l={perspective:1,rotationRad:0,rotationDeg:0,scaleX:1,scaleY:1,translateX:0,translateY:0};let d=-1,u=-1;const h=await e.createReader();await A6s(h,async m=>{var v;n=m.info;const f=m.mp4boxFile.ftyp;a.push({start:f.start,size:f.size});const k=m.mp4boxFile.moov;a.push({start:k.start,size:k.size}),Object.assign(l,p6s((v=n.videoTracks[0])==null?void 0:v.matrix));let{videoDecoderConf:A,audioDecoderConf:p}=g6s(m.mp4boxFile,m.info);if(r.video=A??null,r.audio=p??null,A==null&&p==null&&td.error("MP4Clip no video and audio track"),p!=null){const{supported:b}=await AudioDecoder.isConfigSupported(p);b||td.error(`MP4Clip audio codec is not supported: ${p.codec}`)}if(A!=null){const{supported:b}=await VideoDecoder.isConfigSupported(A);b||td.error(`MP4Clip video codec is not supported: ${A.codec}`)}td.info("mp4BoxFile moov ready",{...m.info,tracks:null,videoTracks:null,audioTracks:null},r)},(m,v,f)=>{if(v==="video"){d===-1&&(d=f[0].dts);for(const k of f)o.push(e2n(k,d,"video"))}else if(v==="audio"&&t.audio){u===-1&&(u=f[0].dts);for(const k of f)s.push(e2n(k,u,"audio"))}}),await h.close();const g=o.at(-1)??s.at(-1);if(n==null)throw Error("MP4Clip stream is done, but not emit ready");if(g==null)throw Error("MP4Clip stream not contain any sample");return oYe(o),td.info("mp4 stream parsed"),{videoSamples:o,audioSamples:s,decoderConf:r,headerBoxPos:a,parsedMatrix:l}}function e2n(e,t=0,n){let r=e.offset;const o=n==="video"&&e.is_sync?Q6s(e.data,e.description.type):-1;let s=e.size;return o>0&&(r+=o,s-=o),{...e,is_idr:o>=0,offset:r,size:s,cts:(e.cts-t)/e.timescale*1e6,dts:(e.dts-t)/e.timescale*1e6,duration:e.duration/e.timescale*1e6,timescale:1e6,data:n==="video"?null:e.data}}var G1,XF,GF,kfe,YF,E_,o4,Gx,aT,ZF,vfe,pY,lT,Afe,qF,pfe;class Pqn{constructor(t,n,r){bo(this,G1,null),bo(this,XF,0),bo(this,GF,{abort:!1,st:performance.now()}),jy(this,"find",async o=>{(Ht(this,G1)==null||Ht(this,G1).state==="closed"||o<=Ht(this,XF)||o-Ht(this,XF)>3e6)&&Ht(this,qF).call(this,o),Ht(this,GF).abort=!0,Rr(this,XF,o),Rr(this,GF,{abort:!1,st:performance.now()});const s=await Ht(this,pY).call(this,o,Ht(this,G1),Ht(this,GF));return Rr(this,ZF,0),s}),bo(this,kfe,0),bo(this,YF,!1),bo(this,E_,0),bo(this,o4,[]),bo(this,Gx,0),bo(this,aT,0),bo(this,ZF,0),bo(this,vfe,!1),bo(this,pY,async(o,s,a)=>{if(s==null||s.state==="closed"||a.abort)return null;if(Ht(this,o4).length>0){const l=Ht(this,o4)[0];return ol.timestamp+(l.duration??0)?(l.close(),await Ht(this,pY).call(this,o,s,a)):(!Ht(this,vfe)&&Ht(this,o4).length<10&&Ht(this,Afe).call(this,s).catch(d=>{throw Rr(this,vfe,!0),Ht(this,qF).call(this,o),d}),l))}if(Ht(this,lT)||Ht(this,Gx)0){if(performance.now()-a.st>6e3)throw Error(`MP4Clip.tick video timeout, ${JSON.stringify(Ht(this,pfe).call(this))}`);Rr(this,ZF,Ht(this,ZF)+1),await Iqn(15)}else{if(Ht(this,E_)>=this.samples.length)return null;try{await Ht(this,Afe).call(this,s)}catch(l){throw Ht(this,qF).call(this,o),l}}return await Ht(this,pY).call(this,o,s,a)}),bo(this,lT,!1),bo(this,Afe,async o=>{var s,a;if(Ht(this,lT)||o.decodeQueueSize>600)return;let l=Ht(this,E_)+1;if(l>this.samples.length)return;Rr(this,lT,!0);let d=!1;for(;l1e3){const v=u[0],f=u.at(-1),k=f.offset+f.size-v.offset;td.warn(`Read video samples time cost: ${Math.round(m)}ms, file chunk size: ${k}`)}if(o.state==="closed")return;Rr(this,kfe,((a=g[0])==null?void 0:a.duration)??0),rYe(o,g,{onDecodingError:v=>{if(Ht(this,YF))throw v;Ht(this,Gx)===0&&(Rr(this,YF,!0),td.warn("Downgrade to software decode"),Ht(this,qF).call(this))}}),Rr(this,aT,Ht(this,aT)+g.length)}}Rr(this,E_,l),Rr(this,lT,!1)}),bo(this,qF,o=>{var s,a;if(Rr(this,lT,!1),Ht(this,o4).forEach(d=>d.close()),Rr(this,o4,[]),o==null||o===0)Rr(this,E_,0);else{let d=0;for(let u=0;u{if(Rr(this,Gx,Ht(this,Gx)+1),d.timestamp===-1){d.close();return}let u=d;d.duration==null&&(u=new VideoFrame(d,{duration:Ht(this,kfe)}),d.close()),Ht(this,o4).push(u)},error:d=>{if(d.message.includes("Codec reclaimed due to inactivity")){Rr(this,G1,null),td.warn(d.message);return}const u=`VideoFinder VideoDecoder err: ${d.message}, config: ${JSON.stringify(l)}, state: ${JSON.stringify(Ht(this,pfe).call(this))}`;throw td.error(u),Error(u)}})),Ht(this,G1).configure(l)}),bo(this,pfe,()=>{var o,s;return{time:Ht(this,XF),decState:(o=Ht(this,G1))==null?void 0:o.state,decQSize:(s=Ht(this,G1))==null?void 0:s.decodeQueueSize,decCusorIdx:Ht(this,E_),sampleLen:this.samples.length,inputCnt:Ht(this,aT),outputCnt:Ht(this,Gx),cacheFrameLen:Ht(this,o4).length,softDeocde:Ht(this,YF),clipIdCnt:sat,sleepCnt:Ht(this,ZF),memInfo:Nqn()}}),jy(this,"destroy",()=>{var o,s;((o=Ht(this,G1))==null?void 0:o.state)!=="closed"&&((s=Ht(this,G1))==null||s.close()),Rr(this,G1,null),Ht(this,GF).abort=!0,Ht(this,o4).forEach(a=>a.close()),Rr(this,o4,[]),this.localFileReader.close()}),this.localFileReader=t,this.samples=n,this.conf=r}}G1=new WeakMap,XF=new WeakMap,GF=new WeakMap,kfe=new WeakMap,YF=new WeakMap,E_=new WeakMap,o4=new WeakMap,Gx=new WeakMap,aT=new WeakMap,ZF=new WeakMap,vfe=new WeakMap,pY=new WeakMap,lT=new WeakMap,Afe=new WeakMap,qF=new WeakMap,pfe=new WeakMap;function C6s(e,t){for(let n=0;n=r.cts&&ee)break}return 0}var bfe,wfe,Fw,KF,T_,Yx,ob,JF,Ofe,yfe,nYe,iYe;class _6s{constructor(t,n,r,o){bo(this,bfe,1),bo(this,wfe),bo(this,Fw,null),bo(this,KF,{abort:!1,st:performance.now()}),jy(this,"find",async s=>{const a=s<=Ht(this,T_)||s-Ht(this,T_)>1e5;(Ht(this,Fw)==null||Ht(this,Fw).state==="closed"||a)&&Ht(this,nYe).call(this),a&&(Rr(this,T_,s),Rr(this,Yx,C6s(s,this.samples))),Ht(this,KF).abort=!0;const l=s-Ht(this,T_);Rr(this,T_,s),Rr(this,KF,{abort:!1,st:performance.now()});const d=await Ht(this,Ofe).call(this,Math.ceil(l*(Ht(this,wfe)/1e6)),Ht(this,Fw),Ht(this,KF));return Rr(this,JF,0),d}),bo(this,T_,0),bo(this,Yx,0),bo(this,ob,{frameCnt:0,data:[]}),bo(this,JF,0),bo(this,Ofe,async(s,a=null,l)=>{if(a==null||l.abort||a.state==="closed"||s===0)return[];const d=Ht(this,ob).frameCnt-s;if(d>0)return d3e3)throw l.abort=!0,Error(`MP4Clip.tick audio timeout, ${JSON.stringify(Ht(this,iYe).call(this))}`);Rr(this,JF,Ht(this,JF)+1),await Iqn(15)}else{if(Ht(this,Yx)>=this.samples.length-1)return t2n(Ht(this,ob),Ht(this,ob).frameCnt);Ht(this,yfe).call(this,a)}return Ht(this,Ofe).call(this,s,a,l)}),bo(this,yfe,s=>{if(s.decodeQueueSize>10)return;const a=[];let l=Ht(this,Yx);for(;l=10))break}Rr(this,Yx,l),s.decode(a.map(d=>new EncodedAudioChunk({type:"key",timestamp:d.cts,duration:d.duration,data:d.data})))}),bo(this,nYe,()=>{var s;Rr(this,T_,0),Rr(this,Yx,0),Rr(this,ob,{frameCnt:0,data:[]}),(s=Ht(this,Fw))==null||s.close(),Rr(this,Fw,S6s(this.conf,{resampleRate:z4.sampleRate,volume:Ht(this,bfe)},a=>{Ht(this,ob).data.push(a),Ht(this,ob).frameCnt+=a[0].length}))}),bo(this,iYe,()=>{var s,a;return{time:Ht(this,T_),decState:(s=Ht(this,Fw))==null?void 0:s.state,decQSize:(a=Ht(this,Fw))==null?void 0:a.decodeQueueSize,decCusorIdx:Ht(this,Yx),sampleLen:this.samples.length,pcmLen:Ht(this,ob).frameCnt,clipIdCnt:sat,sleepCnt:Ht(this,JF),memInfo:Nqn()}}),jy(this,"destroy",()=>{Rr(this,Fw,null),Ht(this,KF).abort=!0,Rr(this,ob,{frameCnt:0,data:[]}),this.localFileReader.close()}),this.localFileReader=t,this.samples=n,this.conf=r,Rr(this,bfe,o.volume),Rr(this,wfe,o.targetSampleRate)}}bfe=new WeakMap,wfe=new WeakMap,Fw=new WeakMap,KF=new WeakMap,T_=new WeakMap,Yx=new WeakMap,ob=new WeakMap,JF=new WeakMap,Ofe=new WeakMap,yfe=new WeakMap,nYe=new WeakMap,iYe=new WeakMap;function S6s(e,t,n){let r=0,o=0;const s=h=>{if(o+=1,h.length!==0){if(t.volume!==1)for(const g of h)for(let m=0;m{const g=d6s(h);l?a(()=>f6s(g,h.sampleRate,{rate:t.resampleRate,chanCount:h.numberOfChannels})):s(g),h.close()},error:h=>{h.message.includes("Codec reclaimed due to inactivity")||u("MP4Clip AudioDecoder err",h)}});d.configure(e);function u(h,g){const m=`${h}: ${g.message}, state: ${JSON.stringify({qSize:d.decodeQueueSize,state:d.state,inputCnt:r,outputCnt:o})}`;throw td.error(m),Error(m)}return{decode(h){r+=h.length;try{for(const g of h)d.decode(g)}catch(g){u("decode audio chunk error",g)}},close(){d.state!=="closed"&&d.close()},get decoding(){return r>o&&d.decodeQueueSize>0},get state(){return d.state},get decodeQueueSize(){return d.decodeQueueSize}}}function L6s(e){const t=[];let n=0;function r(a,l){t[l]=a,o()}function o(){const a=t[n];a!=null&&(e(a),n+=1,o())}let s=0;return a=>{const l=s;s+=1,a().then(d=>r(d,l)).catch(d=>r(d,l))}}function t2n(e,t){const n=[new Float32Array(t),new Float32Array(t)];let r=0,o=0;for(;ot){const l=t-r;n[0].set(s.subarray(0,l),r),n[1].set(a.subarray(0,l),r),e.data[o][0]=s.subarray(l,s.length),e.data[o][1]=a.subarray(l,a.length);break}else n[0].set(s,r),n[1].set(a,r),r+=s.length,o++}return e.data=e.data.slice(o),e.frameCnt-=t,n}async function Fqn(e,t){const n=e[0],r=e.at(-1);if(r==null)return[];const o=r.offset+r.size-n.offset;if(o<3e7){const s=new Uint8Array(await t.read(o,{at:n.offset}));return e.map(a=>{const l=a.offset-n.offset;return new EncodedVideoChunk({type:a.is_sync?"key":"delta",timestamp:a.cts,duration:a.duration,data:s.subarray(l,l+a.size)})})}return await Promise.all(e.map(async s=>new EncodedVideoChunk({type:s.is_sync?"key":"delta",timestamp:s.cts,duration:s.duration,data:await t.read(s.size,{at:s.offset})})))}function x6s(e,t,n){const r=new OffscreenCanvas(e,t),o=r.getContext("2d");return async s=>(o.drawImage(s,0,0,e,t),s.close(),await r.convertToBlob(n))}function E6s(e,t){if(e.length===0)return[];let n=0,r=0,o=-1;for(let d=0;d({...d}));for(let d=n;d({...d,cts:d.cts-t}));for(const d of l)d.cts<0&&(d.deleted=!0,d.cts=-1);return oYe(l),[a,l]}function T6s(e,t){if(e.length===0)return[];let n=-1;for(let s=0;sa.cts)){n=s;break}}if(n===-1)throw Error("Not found audio sample by time");const r=e.slice(0,n).map(s=>({...s})),o=e.slice(n).map(s=>({...s,cts:s.cts-t}));return[r,o]}function rYe(e,t,n){if(e.state==="configured"){for(let r=0;r{if(!(r instanceof Error))throw r;if(r.message.includes("Decoding error")&&n.onDecodingError!=null){n.onDecodingError(r);return}if(!r.message.includes("Aborted due to close"))throw r})}}function Q6s(e,t){if(t!=="avc1"&&t!=="hvc1")return 0;const n=new DataView(e.buffer);for(let r=0;r>1&63;if(o===19||o===20||o===32||o===33||o===34)return r}r+=n.getUint32(r)+4}return-1}async function D6s(e,t,n,r,o,s){const a=await t.createReader(),l=await Fqn(e.filter(h=>!h.deleted&&h.is_sync&&h.cts>=o.start&&h.cts<=o.end),a);if(l.length===0||r.aborted){s(null,!0);return}let d=0;rYe(u(),l,{onDecodingError:h=>{td.warn("thumbnailsByKeyFrame",h),d===0?rYe(u(!0),l,{onDecodingError:g=>{a.close(),td.error("thumbnailsByKeyFrame retry soft deocde",g)}}):(s(null,!0),a.close())}});function u(h=!1){const g={...n,...h?{hardwareAcceleration:"prefer-software"}:{}},m=new VideoDecoder({output:v=>{d+=1;const f=d===l.length;s(v,f),f&&(a.close(),m.state!=="closed"&&m.close())},error:v=>{const f=`thumbnails decoder error: ${v.message}, config: ${JSON.stringify(g)}, state: ${JSON.stringify({qSize:m.decodeQueueSize,state:m.state,outputCnt:d,inputCnt:l.length})}`;throw td.error(f),Error(f)}});return r.addEventListener("abort",()=>{a.close(),m.state!=="closed"&&m.close()}),m.configure(g),m}}function oYe(e){let t=0,n=null;for(const r of e)if(!r.deleted){if(r.is_sync&&(t+=1),t>=2)break;(n==null||r.ctso),bo(this,cT,0),bo(this,Q_,0),Rr(this,z_,{loop:!1,volume:1,...n}),this.ready=U5s(this,sYe,Uqn).call(this,t).then(()=>({width:0,height:0,duration:n.loop?1/0:Ht(this,zN).duration}))}get meta(){return{...Ht(this,zN),sampleRate:z4.sampleRate,chanCount:2}}getPCMData(){return[Ht(this,P5),Ht(this,NT)]}async tick(t){if(!Ht(this,z_).loop&&t>=Ht(this,zN).duration)return await this.tickInterceptor(t,{audio:[],state:"done"});const n=t-Ht(this,cT);if(t3e6)return Rr(this,cT,t),Rr(this,Q_,Math.ceil(Ht(this,cT)/1e6*z4.sampleRate)),await this.tickInterceptor(t,{audio:[new Float32Array(0),new Float32Array(0)],state:"success"});Rr(this,cT,t);const r=Math.ceil(n/1e6*z4.sampleRate),o=Ht(this,Q_)+r,s=Ht(this,z_).loop?[Kkn(Ht(this,P5),Ht(this,Q_),o),Kkn(Ht(this,NT),Ht(this,Q_),o)]:[Ht(this,P5).slice(Ht(this,Q_),o),Ht(this,NT).slice(Ht(this,Q_),o)];return Rr(this,Q_,o),await this.tickInterceptor(t,{audio:s,state:"success"})}async split(t){await this.ready;const n=Math.ceil(t/1e6*z4.sampleRate),r=new Cfe(this.getPCMData().map(s=>s.slice(0,n)),Ht(this,z_)),o=new Cfe(this.getPCMData().map(s=>s.slice(n)),Ht(this,z_));return[r,o]}async clone(){await this.ready;const t=new Cfe(this.getPCMData(),Ht(this,z_));return await t.ready,t}destroy(){Rr(this,P5,new Float32Array(0)),Rr(this,NT,new Float32Array(0)),td.info("---- audioclip destroy ----")}};zN=new WeakMap,P5=new WeakMap,NT=new WeakMap,z_=new WeakMap,sYe=new WeakSet,Uqn=async function(e){eN.ctx==null&&(eN.ctx=new AudioContext({sampleRate:z4.sampleRate}));const t=performance.now(),n=e instanceof ReadableStream?await R6s(e,eN.ctx):e;td.info("Audio clip decoded complete:",performance.now()-t);const r=Ht(this,z_).volume;if(r!==1)for(const o of n)for(let s=0;s0){let f=0,k=0;for(const A of v)for(let p=0;p0?f/k:0)}else l.push(0)}catch{l.push(0)}}const u=Math.max(...l,.001),h=l.map(g=>g/u);return s.destroy(),Aj.set(r,h),uz.set(e,a),{waveformData:h,duration:a}}catch(o){return console.error("Error extracting video audio waveform:",o),{waveformData:[],duration:0}}}function I6s(e,t){if(!e||e.length===0)return new Array(t).fill(0);const n=e[0].length,r=new Float32Array(n);for(let l=0;ll/a)}const M6s={class:"video-clip"},P6s={key:0,class:"video-clip__loading"},F6s={key:0,class:"video-clip__thumbnail-placeholder"},N6s={class:"video-clip__info"},U6s={class:"video-clip__name"},j6s={key:0,class:"video-clip__rate"},W6s=40,V6s=120,z6s=80,H6s=Je({__name:"VideoClip",props:{clip:{}},setup(e){const t=e,n=EA(),r=fe(),o=fe(!1),s=fe([]),a=X(()=>t.clip),l=X(()=>{if(a.value.name)return a.value.name;const v=a.value.sourceUrl.split("/");return v[v.length-1]||"Video"}),d=X(()=>(t.clip.endTime-t.clip.startTime)*n.actualPixelsPerSecond),u=X(()=>{const v=Math.sqrt(n.scale),f=z6s*v;return Math.max(W6s,Math.min(V6s,f))}),h=X(()=>a.value.thumbnails&&a.value.thumbnails.length>0?a.value.thumbnails:s.value),g=X(()=>{const v=h.value,f=a.value.originalDuration,k=a.value.trimStart??0,A=(a.value.trimEnd??f)-k;if(!v||v.length===0||f<=0||A<=0){const y=Math.max(1,Math.ceil(d.value/u.value));return Array.from({length:y},()=>({url:"",width:d.value/y}))}const p=f/v.length,b=[];let w=0;const O=d.value;for(;wO&&(L=O-w),L>0&&b.push({url:v[S],width:L}),w+=L}return b});async function m(){if(a.value.thumbnails&&a.value.thumbnails.length>0)return;const v=a.value.sourceUrl;if(v){o.value=!0;try{const f=await tve(v,{count:20,width:120});s.value=f.thumbnails}catch(f){console.error("Failed to load video thumbnails:",f)}finally{o.value=!1}}}return pt(()=>a.value.sourceUrl,()=>{s.value=[],m()}),An(()=>{m()}),Qa(()=>{for(const v of s.value)v.startsWith("blob:")&&URL.revokeObjectURL(v)}),(v,f)=>(xe(),Ge("div",M6s,[ge("div",{class:"video-clip__thumbnails",ref_key:"thumbnailsRef",ref:r},[o.value?(xe(),Ge("div",P6s,[...f[0]||(f[0]=[ge("span",{class:"video-clip__loading-spinner"},null,-1),ge("span",{class:"video-clip__loading-text"},"加载中...",-1)])])):(xe(),Ge("div",{key:1,class:"video-clip__thumbnail-track",style:no({width:d.value+"px"})},[(xe(!0),Ge(sn,null,Bi(g.value,(k,A)=>(xe(),Ge("div",{key:A,class:"video-clip__thumbnail",style:no({backgroundImage:k.url?`url(${k.url})`:"none",width:k.width+"px",backgroundPosition:"center",backgroundSize:"cover"})},[k.url?nn("",!0):(xe(),Ge("div",F6s," 📹 "))],4))),128))],4))],512),ge("div",N6s,[ge("span",U6s,Pe(l.value),1),a.value.playbackRate&&a.value.playbackRate!==1?(xe(),Ge("span",j6s,Pe(a.value.playbackRate)+"x ",1)):nn("",!0)])]))}}),n2n=Lm(H6s,[["__scopeId","data-v-611ec10c"]]),$6s={key:0,class:"audio-clip__loading"},X6s=["width","height"],G6s={class:"audio-clip__info"},Y6s={class:"audio-clip__name"},Z6s={key:0,class:"audio-clip__volume"},q6s=Je({__name:"AudioClip",props:{clip:{}},setup(e){const t=e,n=EA(),r=fe(),o=fe(),s=fe(400),a=fe(32),l=fe(!1),d=fe([]);let u=null;const h=X(()=>t.clip),g=X(()=>{if(h.value.name)return h.value.name;const w=h.value.sourceUrl.split("/");return w[w.length-1]||"Audio"}),m=X(()=>h.value.waveformData&&h.value.waveformData.length>0?h.value.waveformData:d.value),v=X(()=>{const w=m.value;if(!w||w.length===0)return[];const O=h.value.originalDuration;if(O<=0)return w;const y=h.value.trimStart??0,C=h.value.trimEnd??O;if(y===0&&C===O)return w;const _=w.length,S=y/O,L=C/O;let E=Math.floor(S*_),T=Math.ceil(L*_);return E=Math.max(0,Math.min(E,_-1)),T=Math.max(E+1,Math.min(T,_)),w.slice(E,T)});function f(){if(!o.value)return;const w=o.value,O=w.getContext("2d");O&&(O.clearRect(0,0,w.width,w.height),v.value&&v.value.length>0?k(O,v.value):A(O))}function k(w,O){const y=s.value,C=a.value,_=y/O.length,S=Math.max(1,_*.75),L=w.createLinearGradient(0,0,0,C);L.addColorStop(0,"rgba(16, 185, 129, 0.9)"),L.addColorStop(.5,"rgba(16, 185, 129, 1)"),L.addColorStop(1,"rgba(16, 185, 129, 0.9)"),w.fillStyle=L;for(let E=0;ES+L.charCodeAt(0),0);for(let S=0;S{f()})}async function b(){if(h.value.waveformData&&h.value.waveformData.length>0)return;const w=h.value.sourceUrl;if(w){l.value=!0;try{const O=w.match(/\.(mp4|webm|mov|avi)$/i)?await Wqn(w,{samples:500}):await aat(w,{samples:500});d.value=O.waveformData}catch(O){console.error("Failed to load audio waveform:",O)}finally{l.value=!1,ai(()=>{f()})}}}return pt(()=>h.value.sourceUrl,()=>{d.value=[],b()}),pt(v,()=>{ai(()=>{f()})}),pt(()=>[h.value.trimStart,h.value.trimEnd],()=>{ai(()=>{f()})}),pt(()=>n.actualPixelsPerSecond,()=>{p()}),An(()=>{r.value&&(u=new ResizeObserver(()=>{p()}),u.observe(r.value)),p(),b()}),Qa(()=>{u&&(u.disconnect(),u=null)}),(w,O)=>(xe(),Ge("div",{class:"audio-clip",ref_key:"clipRef",ref:r},[l.value?(xe(),Ge("div",$6s,[...O[0]||(O[0]=[ge("span",{class:"audio-clip__loading-spinner"},null,-1),ge("span",{class:"audio-clip__loading-text"},"加载波形...",-1)])])):(xe(),Ge("canvas",{key:1,ref_key:"canvasRef",ref:o,class:"audio-clip__waveform",width:s.value,height:a.value},null,8,X6s)),ge("div",G6s,[ge("span",Y6s,Pe(g.value),1),h.value.volume!==void 0?(xe(),Ge("span",Z6s," 🔊 "+Pe(Math.round(h.value.volume*100))+"% ",1)):nn("",!0)])],512))}}),K6s=Lm(q6s,[["__scopeId","data-v-61d57c9d"]]),J6s={class:"subtitle-clip__text"},eEs=Je({__name:"SubtitleClip",props:{clip:{}},setup(e){const t=e,n=X(()=>t.clip),r=(s,a)=>{var l;const d=n.value[s];return d!==void 0?d:((l=n.value.config)==null?void 0:l[s])??a},o=X(()=>({background:r("backgroundColor",void 0),textAlign:r("textAlign","left")}));return(s,a)=>(xe(),Ge("div",{class:"subtitle-clip",style:no(o.value)},[ge("div",J6s,Pe(n.value.text),1)],4))}}),tEs=Lm(eEs,[["__scopeId","data-v-863126a4"]]),nEs={class:"text-clip__content"},iEs=Je({__name:"TextClip",props:{clip:{}},setup(e){const t=e,n=(a,l)=>{var d;const u=t.clip[a];return u!==void 0?u:((d=t.clip.config)==null?void 0:d[a])??l},r=X(()=>t.clip.text||n("text","自定义文本")),o=X(()=>({background:n("backgroundColor",void 0),textAlign:n("textAlign","center")})),s=X(()=>({fontFamily:n("fontFamily",void 0),fontSize:n("fontSize",void 0)?`${n("fontSize",10)}px`:void 0,color:n("color","#ffffff"),fontWeight:n("fontWeight",600)}));return(a,l)=>(xe(),Ge("div",{class:"text-clip",style:no(o.value)},[ge("div",nEs,[ge("span",{class:"text-clip__text",style:no(s.value)},Pe(r.value),5)])],4))}}),rEs=Lm(iEs,[["__scopeId","data-v-2824ba6a"]]),oEs={class:"sticker-clip"},sEs={key:1,class:"sticker-clip__placeholder"},aEs={class:"sticker-clip__info"},lEs=Je({__name:"StickerClip",props:{clip:{}},setup(e){const t=e,n=X(()=>t.clip);return(r,o)=>(xe(),Ge("div",oEs,[n.value.sourceUrl?(xe(),Ge("div",{key:0,class:"sticker-clip__image",style:no({backgroundImage:`url(${n.value.sourceUrl})`})},null,4)):(xe(),Ge("div",sEs," ✨ ")),ge("div",aEs,Pe(n.value.name||"Sticker"),1)]))}}),cEs=Lm(lEs,[["__scopeId","data-v-562f6596"]]),dEs={class:"filter-clip"},uEs={class:"filter-clip__info"},hEs={class:"filter-clip__name"},fEs={class:"filter-clip__type"},gEs=Je({__name:"FilterClip",props:{clip:{}},setup(e){const t=e,n=X(()=>t.clip);return(r,o)=>(xe(),Ge("div",dEs,[o[0]||(o[0]=ge("div",{class:"filter-clip__icon"}," 🎨 ",-1)),ge("div",uEs,[ge("div",hEs,Pe(n.value.name||"Filter"),1),ge("div",fEs,Pe(n.value.filterType),1)])]))}}),mEs=Lm(gEs,[["__scopeId","data-v-0fe335d3"]]),kEs={class:"effect-clip"},vEs={class:"effect-clip__info"},AEs={class:"effect-clip__name"},pEs={class:"effect-clip__type"},bEs=Je({__name:"EffectClip",props:{clip:{}},setup(e){const t=e,n=X(()=>t.clip);return(r,o)=>(xe(),Ge("div",kEs,[o[0]||(o[0]=ge("div",{class:"effect-clip__icon"}," ⭐ ",-1)),ge("div",vEs,[ge("div",AEs,Pe(n.value.name||"Effect"),1),ge("div",pEs,Pe(n.value.effectType),1)])]))}}),wEs=Lm(bEs,[["__scopeId","data-v-41c88d2b"]]),OEs={class:"transition-clip"},yEs={class:"transition-clip__info"},CEs={class:"transition-clip__name"},_Es={class:"transition-clip__duration"},SEs=Je({__name:"TransitionClip",props:{clip:{}},setup(e){const t=e,n=X(()=>t.clip);return(r,o)=>(xe(),Ge("div",OEs,[o[0]||(o[0]=ge("div",{class:"transition-clip__icon"}," 🔀 ",-1)),ge("div",yEs,[ge("div",CEs,Pe(n.value.name||"Transition"),1),ge("div",_Es,Pe(n.value.transitionDuration)+"s",1)])]))}}),LEs=Lm(SEs,[["__scopeId","data-v-14c86e24"]]),xEs={class:"clip__content"},i2n=3,EEs=Je({__name:"ClipItem",props:{clip:{},track:{}},emits:["dragStart","resizeStart","contextMenu","click","dblclick","addTransition"],setup(e,{emit:t}){const n=e,r=t,o=G0(),s=EA(),a=MH(),l=bt("config",{}),d=fe(),u=fe(!1),h=fe(!1),g=fe({x:0,y:0});let m=!1,v=null;const f=X(()=>o.selectedClipIds.has(n.clip.id)),k=X(()=>a.draggedClipIds.has(n.clip.id));pt(()=>a.isDragging,B=>{B||(w.value=null)});const A=X(()=>s.actualPixelsPerSecond),p=X(()=>(l.clipConfigs||{})[n.clip.type]||{}),b=X(()=>({"clip--selected":f.value,"clip--locked":n.track.locked,"clip--dragging":k.value&&a.isDragging,"clip--resizing":u.value,"clip--show-transition-btn":h.value})),w=fe(null),O=X(()=>{var B,R,I,F;const j=(n.clip.endTime-n.clip.startTime)*A.value,W=n.clip.startTime*A.value,H=p.value;let $=32,G=8;n.track.isMain?($=64,G=8):n.clip.type==="video"||n.track.type==="video"?($=48,G=8):($=32,G=8),H.height&&($=H.height),H.top&&(G=H.top);const q={left:`${W}px`,width:`${j}px`,height:`${$}px`,top:`${G}px`,"--clip-bg-color":H.backgroundColor,"--clip-border-color":H.borderColor,"--clip-selected-bg-color":(B=H.selected)==null?void 0:B.backgroundColor,"--clip-selected-border-color":(R=H.selected)==null?void 0:R.borderColor,"--clip-hover-border-color":(I=H.hover)==null?void 0:I.borderColor,"--clip-border-width":H.borderWidth?`${H.borderWidth}px`:"1px","--clip-border-radius":typeof H.borderRadius=="number"?`${H.borderRadius}px`:H.borderRadius||"var(--radius-sm)","--clip-opacity":H.opacity,"--clip-selected-box-shadow":(F=H.selected)==null?void 0:F.boxShadow};if(k.value&&a.isDragging&&w.value){const re=a.dragOffset,J=w.value;q.position="fixed",q.left=`${J.left+re.x}px`,q.top=`${J.top+re.y}px`,q.width=`${J.width}px`,q.height=`${J.height}px`,q.zIndex=1e3,q.pointerEvents="none",q.transform="none"}return q}),y=X(()=>{const B=p.value;return B.component?B.component:{video:n2n,audio:K6s,subtitle:tEs,text:rEs,sticker:cEs,filter:mEs,effect:wEs,transition:LEs}[n.clip.type]||n2n}),C=X(()=>n.clip.type==="transition"?null:n.track.clips.filter(B=>B.type!=="transition").find(B=>B.id!==n.clip.id&&Math.abs(B.startTime-n.clip.endTime)<.01)||null),_=X(()=>C.value?n.track.clips.some(B=>B.type==="transition"&&B.startTimen.clip.endTime):!1),S=X(()=>n.clip.type==="transition"?!0:p.value.resizable!==!1);function L(B){var R;if(n.track.locked||(r("click",n.clip,B),B.button!==0))return;if(n.clip.type==="transition"){o.selectClip(n.clip.id);return}m=!0,v=B;const I=B.clientX,F=B.clientY,j=((R=d.value)==null?void 0:R.ownerDocument)||document,W=G=>{if(!m)return;const q=Math.abs(G.clientX-I),re=Math.abs(G.clientY-F);(q>i2n||re>i2n)&&(m=!1,v&&(d.value&&(w.value=d.value.getBoundingClientRect()),r("dragStart",n.clip,v)),$())},H=()=>{m=!1,v=null,$()},$=()=>{j.removeEventListener("mousemove",W),j.removeEventListener("mouseup",H)};j.addEventListener("mousemove",W),j.addEventListener("mouseup",H)}function E(B,R){var I;if(n.track.locked)return;o.selectClip(n.clip.id),u.value=!0,r("resizeStart",n.clip,B,R);const F=((I=d.value)==null?void 0:I.ownerDocument)||document,j=()=>{u.value=!1,F.removeEventListener("mouseup",j)};F.addEventListener("mouseup",j)}function T(B){r("contextMenu",n.clip,B)}function D(B){if(!d.value)return;const R=d.value.getBoundingClientRect(),I=B.clientX-R.left,F=s.actualPixelsPerSecond,j=I/F,W=n.clip.startTime+j,H=Math.max(n.clip.startTime,Math.min(W,n.clip.endTime));r("dblclick",n.clip,H)}function P(B){if(!C.value||_.value||n.track.locked){h.value=!1;return}const R=B.currentTarget.getBoundingClientRect(),I=B.clientX-R.left,F=R.width;if(I>=F-2&&I<=F){h.value=!0;const j=((n.clip.endTime+C.value.startTime)/2-n.clip.startTime)*A.value;g.value={x:j,y:R.height/2}}else h.value=!1}function Q(){h.value=!1}function M(B){B.stopPropagation(),C.value&&r("addTransition",n.clip.id,C.value.id),h.value=!1}return(B,R)=>(xe(),Ge("div",{class:Eo(["clip",b.value]),ref_key:"clipRef",ref:d,style:no(O.value),onMousedown:L,onDblclick:D,onMousemove:P,onMouseleave:Q,onContextmenu:Mr(T,["prevent"])},[!e.track.locked&&S.value?(xe(),Ge("div",{key:0,class:"clip__handle clip__handle--left",onMousedown:R[0]||(R[0]=Mr(I=>E("left",I),["stop"]))},null,32)):nn("",!0),ge("div",xEs,[(xe(),Ut(Bd(y.value),{clip:e.clip},null,8,["clip"]))]),!e.track.locked&&S.value?(xe(),Ge("div",{key:1,class:"clip__handle clip__handle--right",onMousedown:R[1]||(R[1]=Mr(I=>E("right",I),["stop"]))},null,32)):nn("",!0),h.value&&C.value&&!_.value&&e.clip.type==="video"?(xe(),Ge("div",{key:2,class:"clip__transition-btn",style:no({left:g.value.x+"px",top:g.value.y+"px"}),onMousedown:R[2]||(R[2]=Mr(()=>{},["stop"])),onClick:M,title:"点击添加转场"},[...R[3]||(R[3]=[ge("span",{class:"clip__transition-icon"},"🔀",-1)])],36)):nn("",!0)],38))}}),TEs=Lm(EEs,[["__scopeId","data-v-4b3e240e"]]),QEs={class:"drag-preview__inner"},DEs={key:0,class:"drag-preview__label"},BEs=Je({__name:"DragPreview",props:{track:{}},setup(e){const t=e,n=MH(),r=EA(),o=X(()=>{const s=n.previewPosition;if(!s.visible)return{};const a=s.startTime*r.actualPixelsPerSecond,l=(s.endTime-s.startTime)*r.actualPixelsPerSecond;let d=32;t.track.isMain?d=64:(s.clipType==="video"||t.track.type==="video")&&(d=48);const u={left:`${a}px`,width:`${l}px`,height:`${d}px`,top:"8px"};return s.needNewTrack&&(u.top=`-${d+8}px`),u});return(s,a)=>(xe(),Ge("div",{class:Eo(["drag-preview",{"drag-preview--new-track":Ae(n).previewPosition.needNewTrack}]),style:no(o.value)},[ge("div",QEs,[Ae(n).previewPosition.needNewTrack?(xe(),Ge("span",DEs," 新建轨道 ")):nn("",!0)])],6))}}),REs=Lm(BEs,[["__scopeId","data-v-5766b4e2"]]),IEs=["data-track-id"],MEs=Je({__name:"TrackArea",props:{track:{},scrollLeft:{default:0}},emits:["scroll","contextMenu","trackContextMenu","addTransition","dropMedia","seek"],setup(e,{emit:t}){const n=e,r=t,o=EA(),s=G0(),a=MH(),l=ML(),{startResize:d}=B9s(),u=fe(),h=fe(!1),g=fe(null),m=X(()=>o.actualPixelsPerSecond),v=X(()=>!a.isDragging||!a.previewPosition.visible?!1:a.previewPosition.trackId===n.track.id),f=X(()=>{const D=Math.max(s.totalDuration,a.previewEndTime,60);return Math.ceil(D*m.value)}),k=X(()=>n.track.isMain?80:n.track.clips.some(D=>D.type==="video")||n.track.type==="video"?64:48);function A(){u.value&&r("scroll",u.value.scrollLeft)}pt(()=>n.scrollLeft,D=>{u.value&&u.value.scrollLeft!==D&&(u.value.scrollLeft=D)});function p(D,P){var Q;const M=((Q=u.value)==null?void 0:Q.ownerDocument)||document;a.startDrag(D,P,M)}function b(D,P,Q){d(D,P,Q)}function w(D){if(!(D.button!==0||D.target.closest(".clip"))&&(s.clearSelection(),u.value)){const P=u.value.getBoundingClientRect(),Q=D.clientX-P.left+u.value.scrollLeft,M=Ar(Q/m.value);l.seekTo(M),r("seek",M)}}function O(D,P){s.selectClip(D.id)}function y(D,P){l.seekTo(P),r("seek",P)}function C(D,P){r("contextMenu",D,P)}function _(D){if(D.target.closest(".clip")||!u.value)return;const P=u.value.getBoundingClientRect(),Q=(D.clientX-P.left+u.value.scrollLeft)/m.value;r("trackContextMenu",n.track,Q,D)}function S(D,P){r("addTransition",D,P)}function L(D){if(!u.value)return;h.value=!0;const P=u.value.getBoundingClientRect(),Q=D.clientX-P.left+u.value.scrollLeft;g.value=Q}function E(D){D.target===u.value&&(h.value=!1,g.value=null)}function T(D){if(h.value=!1,g.value=null,!(!u.value||!D.dataTransfer))try{const P=D.dataTransfer.getData("application/json");if(!P)return;const Q=JSON.parse(P),M=u.value.getBoundingClientRect(),B=D.clientX-M.left+u.value.scrollLeft,R=Ar(B/m.value);r("dropMedia",Q,n.track.id,R)}catch(P){console.error("处理拖放失败:",P)}}return(D,P)=>(xe(),Ge("div",{class:"track-area",ref_key:"trackAreaRef",ref:u,onScroll:A,onMousedown:w,onContextmenu:Mr(_,["prevent"]),onDragover:Mr(L,["prevent"]),onDrop:Mr(T,["prevent"]),onDragleave:E},[ge("div",{class:Eo(["track-area__content",{"track-area__content--drag-over":h.value}]),style:no({width:f.value+"px",minHeight:k.value+"px"}),"data-track-id":e.track.id},[(xe(!0),Ge(sn,null,Bi(e.track.clips,Q=>(xe(),Ut(TEs,{key:Q.id,clip:Q,track:e.track,"data-clip-id":Q.id,onDragStart:p,onResizeStart:b,onClick:O,onDblclick:y,onContextMenu:C,onAddTransition:S},null,8,["clip","track","data-clip-id"]))),128)),v.value?(xe(),Ut(REs,{key:0,track:e.track},null,8,["track"])):nn("",!0)],14,IEs)],544))}}),PEs=Lm(MEs,[["__scopeId","data-v-9f39c911"]]),FEs={key:0,class:"tracks__empty"},NEs={class:"tracks__empty-content"},UEs={class:"tracks__empty-text"},jEs=["data-track-id"],WEs={class:"tracks__track-area-cell"},VEs=Je({__name:"index",props:{scrollLeft:{default:0},locale:{default:()=>({})}},emits:["scroll","contextMenu","trackContextMenu","trackDelete","addTransition","dropMedia","update:trackControlWidth","seek"],setup(e,{emit:t}){const n=e,r=t,o=G0(),s=TE(),a=EA(),l=MH();ML();const d=bt("config",{}),u=fe(),h=fe(),g=fe(),m=fe(),v=fe(n.scrollLeft),f=fe(!1),k=fe(null),A=X(()=>o.sortedTracks),p=X(()=>a.actualPixelsPerSecond),b=X(()=>{const F=Math.max(o.totalDuration,l.previewEndTime,60);return Math.ceil(F*p.value)}),w=fe(200);pt(()=>n.scrollLeft,F=>{!f.value&&F!==v.value&&(v.value=F,m.value&&(m.value.scrollLeft=F))}),pt(A,(F,j)=>{const W=!j||j.length===0,H=F&&F.length>0;W&&H&&ai(()=>{g.value&&!y&&(y=new ResizeObserver(()=>{_()}),y.observe(g.value)),_()})},{immediate:!0});function O(F,j){j===0&&(k.value=F)}let y=null;function C(F){f.value||(f.value=!0,v.value=F,r("scroll",F),requestAnimationFrame(()=>{f.value=!1}))}An(()=>{g.value&&(y=new ResizeObserver(()=>{_()}),y.observe(g.value)),ai(()=>{l.setScrollContainers(u.value||null,m.value||null,C)}),ai(()=>{S()})}),Qa(()=>{y&&y.disconnect()});function _(){if(k.value){const F=k.value.getBoundingClientRect().width;w.value=F,r("update:trackControlWidth",F)}}function S(){const F=o.mainTrack;if(!F||!g.value)return;const j=g.value.querySelector(`[data-track-id="${F.id}"]`);j&&j.scrollIntoView({block:"center",behavior:"smooth"})}pt(()=>o.mainTrack,F=>{F&&ai(()=>{S()})});function L(){}function E(){m.value&&!f.value&&(f.value=!0,v.value=m.value.scrollLeft,r("scroll",v.value),requestAnimationFrame(()=>{f.value=!1}))}function T(F){f.value||(f.value=!0,v.value=F,m.value&&m.value.scrollLeft!==F&&(m.value.scrollLeft=F),r("scroll",F),requestAnimationFrame(()=>{f.value=!1}))}function D(F,j){o.updateTrack(F,j),s.pushSnapshot("更新轨道")}function P(F){const j=o.tracks.find(W=>W.id===F);if(j!=null&&j.isMain){alert("主轨道不能删除");return}o.removeTrack(F),s.pushSnapshot("删除轨道"),r("trackDelete",F)}function Q(F,j){r("contextMenu",F,j)}function M(F,j,W){r("trackContextMenu",F,j,W)}function B(F,j){r("addTransition",F,j)}function R(F,j,W){r("dropMedia",F,j,W)}function I(F){r("seek",F)}return Yi("config",d),(F,j)=>{var W;return xe(),Ge("div",{class:"tracks",ref_key:"tracksRef",ref:u},[A.value.length===0?(xe(),Ge("div",FEs,[ge("div",NEs,[j[0]||(j[0]=ge("span",{class:"tracks__empty-icon"},"🎬",-1)),ge("span",UEs,Pe(((W=e.locale)==null?void 0:W.emptyTip)||"拖拽媒体文件到此处添加"),1)])])):(xe(),Ge("div",{key:1,class:"tracks__scroll-container",ref_key:"scrollContainerRef",ref:h,onScroll:L},[ge("div",{class:"tracks__table",ref_key:"tableRef",ref:g},[(xe(!0),Ge(sn,null,Bi(A.value,(H,$)=>(xe(),Ge("div",{key:H.id,class:Eo(["tracks__track",{"tracks__track--locked":H.locked,"tracks__track--hidden":!H.visible}]),"data-track-id":H.id},[ge("div",{class:"tracks__track-control-cell",ref_for:!0,ref:G=>O(G,$)},[c(D9s,{track:H,locale:e.locale,onUpdate:D,onDelete:P},null,8,["track","locale"])],512),ge("div",WEs,[c(PEs,{track:H,"scroll-left":v.value,onScroll:T,onContextMenu:Q,onTrackContextMenu:M,onAddTransition:B,onDropMedia:R,onSeek:I},null,8,["track","scroll-left"])])],10,jEs))),128))],512)],544)),ge("div",{class:"tracks__scrollbar",onScroll:E,ref_key:"scrollbarRef",ref:m},[ge("div",{class:"tracks__scrollbar-content",style:no({width:b.value+"px"})},null,4)],544)],512)}}}),zEs=Lm(VEs,[["__scopeId","data-v-88da3b13"]]),HEs=["onClick"],$Es={key:0,class:"context-menu__divider"},XEs={key:0,class:"context-menu__icon"},GEs={class:"context-menu__label"},YEs={key:1,class:"context-menu__shortcut"},ZEs=Je({__name:"index",props:{items:{default:()=>[]}},emits:["select","close"],setup(e,{expose:t,emit:n}){const r=e,o=n,s=fe(!1),a=fe({x:0,y:0}),l=X(()=>r.items),d=X(()=>({left:`${a.value.x}px`,top:`${a.value.y}px`}));function u(f,k){a.value={x:f,y:k},s.value=!0,setTimeout(()=>{g()},0)}function h(){s.value=!1,o("close")}function g(){const f=document.querySelector(".context-menu");if(!f)return;const k=f.getBoundingClientRect(),A=window.innerWidth,p=window.innerHeight;let{x:b,y:w}=a.value;k.right>A&&(b=A-k.width-10),k.bottom>p&&(w=p-k.height-10),b<0&&(b=10),w<0&&(w=10),a.value={x:b,y:w}}function m(f){f.disabled||f.divider||(o("select",f.key),h())}function v(f){const k=f.target;s.value&&!k.closest(".context-menu")&&f.button===0&&h()}return An(()=>{document.addEventListener("click",v),document.addEventListener("contextmenu",v)}),Qa(()=>{document.removeEventListener("click",v),document.removeEventListener("contextmenu",v)}),t({show:u,hide:h}),(f,k)=>(xe(),Ut(f3,{to:"body"},[s.value?(xe(),Ge("div",{key:0,class:"context-menu",style:no(d.value),onContextmenu:k[0]||(k[0]=Mr(()=>{},["prevent"]))},[(xe(!0),Ge(sn,null,Bi(l.value,A=>(xe(),Ge("div",{key:A.key,class:Eo(["context-menu__item",{"context-menu__item--disabled":A.disabled,"context-menu__item--divider":A.divider,"context-menu__item--danger":A.danger}]),onClick:p=>m(A)},[A.divider?(xe(),Ge("div",$Es)):A.slot?Zr(f.$slots,A.slot,{key:1,item:A}):(xe(),Ge(sn,{key:2},[A.icon?(xe(),Ge("span",XEs,Pe(A.icon),1)):nn("",!0),ge("span",GEs,Pe(A.label),1),A.shortcut?(xe(),Ge("span",YEs,Pe(A.shortcut),1)):nn("",!0)],64))],10,HEs))),128))],36)):nn("",!0)]))}}),r2n={"zh-CN":{reset:"重置",undo:"撤销",redo:"重做",delete:"删除",play:"播放",pause:"暂停",snapOn:"关闭吸附",snapOff:"开启吸附",copy:"复制",cut:"剪切",paste:"粘贴",selectAll:"全选",splitClip:"分割",deleteClip:"删除片段",deleteTrack:"删除轨道",lockTrack:"锁定轨道",unlockTrack:"解锁轨道",muteTrack:"静音轨道",unmuteTrack:"取消静音",mainTrack:"主轨道",videoTrack:"视频轨道",audioTrack:"音频轨道",subtitleTrack:"字幕轨道",textTrack:"文本轨道",stickerTrack:"贴纸轨道",filterTrack:"滤镜轨道",effectTrack:"特效轨道",mainBadge:"主",show:"显示",hide:"隐藏",lock:"锁定",unlock:"解锁",emptyTip:"拖拽媒体文件到此处添加",emptyTrackHint:"拖拽媒体到这里",noClipSelected:"未选中片段",confirmDelete:"确定要删除吗?",confirmDeleteTrack:'确定要删除轨道"{name}"吗?'},"en-US":{reset:"Reset",undo:"Undo",redo:"Redo",delete:"Delete",play:"Play",pause:"Pause",snapOn:"Disable Snap",snapOff:"Enable Snap",copy:"Copy",cut:"Cut",paste:"Paste",selectAll:"Select All",splitClip:"Split",deleteClip:"Delete Clip",deleteTrack:"Delete Track",lockTrack:"Lock Track",unlockTrack:"Unlock Track",muteTrack:"Mute Track",unmuteTrack:"Unmute Track",mainTrack:"Main Track",videoTrack:"Video Track",audioTrack:"Audio Track",subtitleTrack:"Subtitle Track",textTrack:"Text Track",stickerTrack:"Sticker Track",filterTrack:"Filter Track",effectTrack:"Effect Track",mainBadge:"Main",show:"Show",hide:"Hide",lock:"Lock",unlock:"Unlock",emptyTip:"Drag and drop media files here to add",emptyTrackHint:"Drop media here",noClipSelected:"No clip selected",confirmDelete:"Are you sure to delete?",confirmDeleteTrack:'Are you sure to delete track "{name}"?'}},qEs={class:"video-track__body"},KEs={class:"video-track__empty-hint"},PRe="1.0.0",JEs=Je({__name:"index",props:{operationButtons:{default:()=>["reset","undo","redo","delete"]},scaleConfigButtons:{default:()=>["snap"]},trackTypes:{default:()=>({video:{max:5},audio:{max:3},subtitle:{max:2}})},clipConfigs:{default:void 0},showToolsBar:{type:Boolean,default:!0},enableMainTrackMode:{type:Boolean,default:!1},enableCrossTrackDrag:{type:Boolean,default:!0},maxDuration:{},fps:{default:30},pixelsPerSecond:{default:100},minScale:{default:.1},maxScale:{default:10},defaultScale:{default:1},enableSnap:{type:Boolean,default:!0},snapThreshold:{default:10},playbackRates:{default:()=>[.5,1,2,4]},trackControlWidth:{default:160},trackContextMenu:{default:()=>({enabled:!0})},clipContextMenu:{default:()=>({showCommonItems:!0,commonItems:["copy","cut","delete"]})},locale:{default:"zh-CN"},theme:{default:void 0}},emits:["clipMove","clipDelete","clipSelect","clipCopy","clipCut","clipPaste","clipSplit","clip:added","clip:updated","clip:removed","clip:resize-start","clip:resize-end","clip:drag-start","clip:drag-end","trackCreate","trackDelete","track:added","track:removed","track:updated","selection:changed","playback:play","playback:pause","playback:seek","playback:timeupdate","playback:ratechange","scale:changed","history:changed","addTransition","transitionAdded","dropMedia","trackContextMenuSelect","clipContextMenuSelect","data:changed"],setup(e,{expose:t,emit:n}){const r={video:{name:"视频",backgroundColor:"linear-gradient(135deg, #3b82f6 0%, #2563eb 100%)",borderColor:"rgba(255,255,255,0.2)",height:32,top:8,resizable:!0,draggable:!0,borderRadius:6,selected:{borderColor:"#fff",boxShadow:"0 0 0 2px rgba(59, 130, 246, 0.5), 0 4px 12px rgba(0,0,0,0.3)"},hover:{borderColor:"rgba(255,255,255,0.5)"}},audio:{name:"音频",backgroundColor:"linear-gradient(135deg, #10b981 0%, #059669 100%)",borderColor:"rgba(255,255,255,0.2)",height:24,top:12,resizable:!0,draggable:!0,borderRadius:4,selected:{borderColor:"#fff",boxShadow:"0 0 0 2px rgba(16, 185, 129, 0.5), 0 4px 12px rgba(0,0,0,0.3)"},hover:{borderColor:"rgba(255,255,255,0.5)"}},subtitle:{name:"字幕",backgroundColor:"linear-gradient(135deg, #f59e0b 0%, #d97706 100%)",borderColor:"rgba(255,255,255,0.2)",height:24,top:12,resizable:!0,draggable:!0,borderRadius:4,selected:{borderColor:"#fff",boxShadow:"0 0 0 2px rgba(245, 158, 11, 0.5), 0 4px 12px rgba(0,0,0,0.3)"},hover:{borderColor:"rgba(255,255,255,0.5)"}},sticker:{name:"贴纸",backgroundColor:"linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%)",borderColor:"rgba(255,255,255,0.2)",height:24,top:12,resizable:!1,draggable:!0,borderRadius:4,selected:{borderColor:"#fff",boxShadow:"0 0 0 2px rgba(139, 92, 246, 0.5), 0 4px 12px rgba(0,0,0,0.3)"},hover:{borderColor:"rgba(255,255,255,0.5)"}},filter:{name:"滤镜",backgroundColor:"linear-gradient(135deg, #ec4899 0%, #db2777 100%)",borderColor:"rgba(255,255,255,0.2)",height:16,top:16,resizable:!1,draggable:!0,borderRadius:4,selected:{borderColor:"#fff",boxShadow:"0 0 0 2px rgba(236, 72, 153, 0.5), 0 4px 12px rgba(0,0,0,0.3)"},hover:{borderColor:"rgba(255,255,255,0.5)"}},effect:{name:"特效",backgroundColor:"linear-gradient(135deg, #6366f1 0%, #4f46e5 100%)",borderColor:"rgba(255,255,255,0.2)",height:16,top:16,resizable:!1,draggable:!0,borderRadius:4,selected:{borderColor:"#fff",boxShadow:"0 0 0 2px rgba(99, 102, 241, 0.5), 0 4px 12px rgba(0,0,0,0.3)"},hover:{borderColor:"rgba(255,255,255,0.5)"}},transition:{name:"转场",backgroundColor:"transparent",borderColor:"transparent",height:32,top:8,resizable:!1,draggable:!1}};function o(ht,At){if(At===null||typeof At!="object"||ht===null||typeof ht!="object")return At;const Mt={...ht};for(const Kt in At)if(At.hasOwnProperty(Kt)){const qn=At[Kt],Zt=Mt[Kt];qn&&typeof qn=="object"&&!Array.isArray(qn)?Mt[Kt]=o(Zt||{},qn):Mt[Kt]=qn}return Mt}function s(ht){if(!ht)return r;const At={...r};for(const Mt in ht)ht.hasOwnProperty(Mt)&&(At[Mt]=o(At[Mt]||{},ht[Mt]));return At}const a=e,l=X(()=>{const ht=r2n["zh-CN"];return typeof a.locale=="string"?{...ht,...r2n[a.locale]||{}}:a.locale?{...ht,...a.locale}:ht}),d=X(()=>s(a.clipConfigs)),u=n,h=G0(),g=ML(),m=TE(),v=EA(),f=MH();pt(()=>a.enableCrossTrackDrag,ht=>{f.setConfig({enableCrossTrackDrag:ht})},{immediate:!0});const k=fe();let A=[];pt(()=>Array.from(h.selectedClipIds),ht=>{const At=new Set(ht),Mt=new Set(A);(At.size!==Mt.size||ht.some(Kt=>!Mt.has(Kt)))&&(u("selection:changed",ht,A),u("clipSelect",ht),A=[...ht])},{deep:!0}),z5s({containerRef:k,callbacks:{onCopy:ht=>{u("clipCopy",ht)},onCut:ht=>{u("clipCut",ht)},onDelete:ht=>{ht.forEach(At=>u("clipDelete",At))},onPaste:(ht,At,Mt)=>{u("clipPaste",ht,At,Mt)},onPlay:()=>{u("playback:play")},onPause:()=>{u("playback:pause")}}});let p=new Map;pt(()=>f.isDragging,(ht,At)=>{ht&&!At?(p.clear(),f.draggedClips.forEach(Mt=>{p.set(Mt.id,{startTime:Mt.startTime,trackId:Mt.trackId})})):!ht&&At&&(p.forEach((Mt,Kt)=>{const qn=h.getClip(Kt);qn&&(qn.startTime!==Mt.startTime||qn.trackId!==Mt.trackId)&&(u("clipMove",Kt,qn.trackId,qn.startTime),u("clip:drag-end",qn,Mt.trackId,qn.trackId))}),p.clear())});const b=fe(0),w=fe(0),O=fe(a.trackControlWidth);H5s({scrollLeft:b,tracksWidth:w,setScrollLeft:ht=>{b.value=ht}});const y=fe([]),C=fe(null),_=fe(null),S=fe(0),L=fe(null),E=fe();An(()=>{v.minScale=a.minScale,v.maxScale=a.maxScale,v.pixelsPerSecond=a.pixelsPerSecond,v.initScale(a.defaultScale),v.initSnapEnabled(a.enableSnap),v.snapThreshold=a.snapThreshold,m.initialize(),T(a.theme),D(),window.addEventListener("resize",D)}),pt(()=>a.theme,ht=>{T(ht)},{deep:!0});function T(ht){if(!k.value||!ht)return;const At=k.value;ht.primaryHue!==void 0&&At.style.setProperty("--theme-hue",String(ht.primaryHue)),ht.primarySaturation!==void 0&&At.style.setProperty("--theme-saturation",`${ht.primarySaturation}%`),ht.primaryLightness!==void 0&&At.style.setProperty("--theme-lightness",`${ht.primaryLightness}%`),ht.primaryColor&&At.style.setProperty("--color-primary",ht.primaryColor),ht.bgDark&&At.style.setProperty("--color-bg-dark",ht.bgDark),ht.bgMedium&&At.style.setProperty("--color-bg-medium",ht.bgMedium),ht.bgLight&&At.style.setProperty("--color-bg-light",ht.bgLight),ht.bgElevated&&At.style.setProperty("--color-bg-elevated",ht.bgElevated),ht.textPrimary&&At.style.setProperty("--color-text-primary",ht.textPrimary),ht.textSecondary&&At.style.setProperty("--color-text-secondary",ht.textSecondary),ht.textMuted&&At.style.setProperty("--color-text-muted",ht.textMuted),ht.borderColor&&At.style.setProperty("--color-border",ht.borderColor),ht.borderRadius&&(ht.borderRadius.sm!==void 0&&At.style.setProperty("--radius-sm",`${ht.borderRadius.sm}px`),ht.borderRadius.md!==void 0&&At.style.setProperty("--radius-md",`${ht.borderRadius.md}px`),ht.borderRadius.lg!==void 0&&At.style.setProperty("--radius-lg",`${ht.borderRadius.lg}px`))}Qa(()=>{window.removeEventListener("resize",D)});function D(){if(k.value){const ht=k.value.getBoundingClientRect();w.value=ht.width-O.value}}function P(ht){Math.abs(O.value-ht)>1&&(O.value=ht,D())}function Q(ht){b.value=ht}function M(ht){b.value=ht}function B(ht){switch(ht){case"reset":R();break;case"undo":m.undo();break;case"redo":m.redo();break;case"split":F();break;case"delete":I();break}}function R(){h.reset(),g.reset(),m.reset(),v.reset(),a.enableMainTrackMode&&h.addTrack({id:`track-main-${Date.now()}`,type:"video",name:"主轨道",visible:!0,locked:!1,clips:[],order:0,isMain:!0}),m.initialize()}function I(){const ht=Array.from(h.selectedClipIds);ht.length!==0&&(h.removeClips(ht),m.pushSnapshot("删除片段"),ht.forEach(At=>{u("clipDelete",At)}))}function F(){const ht=Array.from(h.selectedClipIds);if(ht.length===0)return;const At=g.currentTime;ht.forEach(Mt=>{const Kt=h.getClip(Mt);if(!Kt||At<=Kt.startTime||At>=Kt.endTime)return;const qn=h.splitClip(Mt,At);qn&&u("clipSplit",Mt,qn.leftClip,qn.rightClip,At)}),m.pushSnapshot("分割片段")}function j(ht,At){u("addTransition",ht,At)}function W(ht,At,Mt){u("dropMedia",ht,At,Mt)}function H(ht){u("playback:seek",ht)}const $=()=>({copy:{key:"copy",label:l.value.copy||"复制",icon:"📋",shortcut:"Ctrl+C"},cut:{key:"cut",label:l.value.cut||"剪切",icon:"✂️",shortcut:"Ctrl+X"},delete:{key:"delete",label:l.value.deleteClip||"删除",icon:"🗑️",danger:!0,shortcut:"Delete"}});function G(ht,At){var Mt;C.value=ht,_.value=null,L.value="clip";const Kt=[],qn=a.clipContextMenu,Zt=$();(qn==null?void 0:qn.showCommonItems)!==!1&&((qn==null?void 0:qn.commonItems)||["copy","cut","delete"]).forEach(so=>{if(typeof so=="string"){const Un=Zt[so];Un&&Kt.push({...Un})}else Kt.push(so)}),qn!=null&&qn.byType&&qn.byType[ht.type]&&(Kt.length>0&&Kt.push({key:"divider-type",label:"",divider:!0}),Kt.push(...qn.byType[ht.type])),qn!=null&&qn.extraItems&&qn.extraItems.length>0&&(Kt.length>0&&Kt.push({key:"divider-extra",label:"",divider:!0}),Kt.push(...qn.extraItems)),y.value=Kt,(Mt=E.value)==null||Mt.show(At.clientX,At.clientY)}function q(ht,At,Mt){var Kt,qn,Zt;if(((Kt=a.trackContextMenu)==null?void 0:Kt.enabled)===!1)return;C.value=null,_.value=ht,S.value=At,L.value="track";const so=[{key:"paste",label:l.value.paste||"粘贴",icon:"📋",shortcut:"Ctrl+V",disabled:!h.hasClipboardContent()},{key:"divider-1",label:"",divider:!0},{key:"lockTrack",label:ht.locked?l.value.unlockTrack||"解锁轨道":l.value.lockTrack||"锁定轨道",icon:ht.locked?"🔓":"🔒"},{key:"deleteTrack",label:l.value.deleteTrack||"删除轨道",icon:"🗑️",danger:!0,disabled:ht.isMain}],Un=((qn=a.trackContextMenu)==null?void 0:qn.items)||so;y.value=Un,(Zt=E.value)==null||Zt.show(Mt.clientX,Mt.clientY)}function re(ht){if(L.value==="clip"&&C.value){const At=C.value;switch(ht){case"copy":J(At);break;case"cut":oe(At);break;case"delete":h.removeClip(At.id),m.pushSnapshot("删除片段"),u("clipDelete",At.id);break;default:u("clipContextMenuSelect",ht,At)}}if(L.value==="track"&&_.value){const At=_.value,Mt=S.value;switch(ht){case"paste":se(At.id,Mt);break;case"lockTrack":le(At);break;case"deleteTrack":ue(At);break;default:u("trackContextMenuSelect",ht,At,Mt)}}C.value=null,_.value=null,L.value=null,y.value=[]}function J(ht){if(!h.selectedClipIds.has(ht.id))h.copyClips([ht.id]),u("clipCopy",[ht.id]);else{const At=Array.from(h.selectedClipIds);h.copyClips(At),u("clipCopy",At)}}function oe(ht){if(!h.selectedClipIds.has(ht.id))h.cutClips([ht.id]),u("clipCut",[ht.id]);else{const At=Array.from(h.selectedClipIds);h.cutClips(At),u("clipCut",At)}}function se(ht,At){const Mt=h.pasteClips(ht,At);Mt&&(m.pushSnapshot("粘贴片段"),u("clipPaste",Mt,ht,At))}function le(ht){h.updateTrack(ht.id,{locked:!ht.locked}),m.pushSnapshot(ht.locked?"解锁轨道":"锁定轨道")}function ue(ht){if(ht.isMain)return;const At=(l.value.confirmDeleteTrack||'确定要删除轨道"{name}"吗?').replace("{name}",ht.name);confirm(At)&&(h.removeTrack(ht.id),m.pushSnapshot("删除轨道"),u("trackDelete",ht.id))}const ee=X(()=>({trackTypes:a.trackTypes,clipConfigs:d.value,enableMainTrackMode:a.enableMainTrackMode,enableCrossTrackDrag:a.enableCrossTrackDrag,maxDuration:a.maxDuration,fps:a.fps,playbackRates:a.playbackRates,trackControlWidth:a.trackControlWidth}));Yi("config",ee);function de(ht,At){d.value[ht]?d.value[ht]=o(d.value[ht],At):d.value[ht]=At}function z(ht,At,Mt){u("transitionAdded",ht,At,Mt)}function Y(){return{version:PRe,tracks:JSON.parse(JSON.stringify(h.tracks)),currentTime:g.currentTime,scale:v.scale,snapEnabled:v.snapEnabled}}function ie(ht){ht.version&&ht.version!==PRe&&console.warn(`[VideoTrack] 数据版本不匹配: ${ht.version} -> ${PRe}`),h.setTracks(ht.tracks||[]),ht.currentTime!==void 0&&g.seekTo(ht.currentTime),ht.scale!==void 0&&v.setScale(ht.scale),ht.snapEnabled!==void 0&&v.setSnapEnabled(ht.snapEnabled),m.initialize(),u("data:changed")}function te(){return JSON.stringify(Y(),null,2)}function Z(ht){try{const At=JSON.parse(ht);return ie(At),!0}catch(At){return console.error("[VideoTrack] JSON 解析失败:",At),!1}}function he(ht){h.addTrack(ht),m.pushSnapshot("添加轨道"),u("track:added",ht),u("trackCreate",ht.id)}function pe(ht){const At=h.tracks.find(Mt=>Mt.id===ht);At&&(h.removeTrack(ht),m.pushSnapshot("删除轨道"),u("track:removed",At),u("trackDelete",ht))}function Ce(ht,At){h.updateTrack(ht,At),m.pushSnapshot("更新轨道"),u("track:updated",ht,At)}function Qe(){return h.tracks}function ke(){return h.sortedTracks}function me(ht){return h.tracks.find(At=>At.id===ht)}function _e(){return h.mainTrack}function Te(ht,At){h.addClip(ht,At),m.pushSnapshot("添加片段"),u("clip:added",At,ht)}function De(ht){const At=h.getClip(ht);if(At){const Mt=At.trackId;h.removeClip(ht),m.pushSnapshot("删除片段"),u("clip:removed",At,Mt),u("clipDelete",ht)}}function Ye(ht,At){const Mt=h.getClip(ht);if(Mt){const Kt={...Mt};h.updateClip(ht,At),m.pushSnapshot("更新片段"),u("clip:updated",ht,At,Kt)}}function ot(ht){return h.getClip(ht)}function We(ht,At,Mt){const Kt=h.getClip(ht);if(!Kt)return!1;const qn=Kt.trackId,Zt=Kt.endTime-Kt.startTime;return qn!==At&&h.moveClipToTrack(ht,At),h.updateClip(ht,{startTime:Mt,endTime:Mt+Zt}),m.pushSnapshot("移动片段"),u("clipMove",ht,At,Mt),u("clip:drag-end",Kt,qn,At),!0}function et(ht,At,Mt){const Kt=h.setClipPlaybackRate(ht,At,Mt);return Kt.success&&(m.pushSnapshot("调整倍速"),h.getClip(ht)&&u("clip:updated",ht,{playbackRate:At},{})),Kt}function st(ht,At){return h.getClipDurationAtRate(ht,At)}function Me(ht,At,Mt=!0){return h.checkPlaybackRateCollision(ht,At,Mt)}function Se(ht){h.selectClip(ht)}function Ie(ht){h.clearSelection(),ht.forEach(At=>h.selectedClipIds.add(At))}function ze(){h.clearSelection()}function Ze(){return h.selectedClips}function gt(){return Array.from(h.selectedClipIds)}function St(){g.play(),u("playback:play")}function Pt(){g.pause(),u("playback:pause")}function dn(){g.isPlaying?Pt():St()}function on(ht){g.seekTo(ht),u("playback:seek",ht)}function pn(){return g.currentTime}function ni(ht){g.setPlaybackRate(ht),u("playback:ratechange",ht)}function Zn(){return g.playbackRate}function Pi(){return g.isPlaying}function rr(){return h.totalDuration}function Hr(ht){v.setScale(ht),u("scale:changed",ht)}function Bo(){return v.scale}function lo(ht=.1){v.zoomIn(ht),u("scale:changed",v.scale)}function Fr(ht=.1){v.zoomOut(ht),u("scale:changed",v.scale)}function is(){v.setSnapEnabled(!0)}function yi(){v.setSnapEnabled(!1)}function Gt(){return v.snapEnabled}function gi(){return{canUndo:m.canUndo,canRedo:m.canRedo}}function ri(){m.undo(),u("history:changed",gi())}function tr(){m.redo(),u("history:changed",gi())}return t({reset:R,registerClipType:de,emitTransitionAdded:z,exportData:Y,importData:ie,exportAsJSON:te,importFromJSON:Z,addTrack:he,removeTrack:pe,updateTrack:Ce,getTracks:Qe,getSortedTracks:ke,getTrackById:me,getMainTrack:_e,addClip:Te,removeClip:De,updateClip:Ye,getClipById:ot,moveClip:We,setClipPlaybackRate:et,getClipDurationAtRate:st,checkPlaybackRateCollision:Me,selectClip:Se,selectClips:Ie,clearSelection:ze,getSelectedClips:Ze,getSelectedClipIds:gt,play:St,pause:Pt,togglePlay:dn,seekTo:on,getCurrentTime:pn,setPlaybackRate:ni,getPlaybackRate:Zn,isPlaying:Pi,getDuration:rr,setScale:Hr,getScale:Bo,zoomIn:lo,zoomOut:Fr,enableSnap:is,disableSnap:yi,isSnapEnabled:Gt,undo:ri,redo:tr,getHistoryState:gi}),(ht,At)=>(xe(),Ge("div",{class:"video-track",ref_key:"containerRef",ref:k},[Zr(ht.$slots,"toolbar-before",{},void 0,!0),e.showToolsBar?(xe(),Ut(b9s,{key:0,"operation-buttons":e.operationButtons,"scale-config-buttons":e.scaleConfigButtons,locale:l.value,onOperation:B,"onPlayback:play":At[0]||(At[0]=()=>u("playback:play")),"onPlayback:pause":At[1]||(At[1]=()=>u("playback:pause"))},_Y({"operations-prepend":Oe(()=>[Zr(ht.$slots,"operations-prepend",{},void 0,!0)]),"operations-append":Oe(()=>[Zr(ht.$slots,"operations-append",{},void 0,!0)]),"playback-prepend":Oe(()=>[Zr(ht.$slots,"playback-prepend",{},void 0,!0)]),"playback-append":Oe(()=>[Zr(ht.$slots,"playback-append",{},void 0,!0)]),"scale-prepend":Oe(()=>[Zr(ht.$slots,"scale-prepend",{},void 0,!0)]),"scale-append":Oe(()=>[Zr(ht.$slots,"scale-append",{},void 0,!0)]),_:2},[Bi(ht.$slots,(Mt,Kt)=>({name:Kt,fn:Oe(qn=>[Zr(ht.$slots,Kt,Qx(D_(qn)),void 0,!0)])}))]),1032,["operation-buttons","scale-config-buttons","locale"])):nn("",!0),Zr(ht.$slots,"toolbar-after",{},void 0,!0),Zr(ht.$slots,"ruler-before",{},void 0,!0),c(y9s,{width:w.value,"scroll-left":b.value,"track-control-width":O.value,onScroll:Q,onSeek:H},null,8,["width","scroll-left","track-control-width"]),Zr(ht.$slots,"ruler-after",{},void 0,!0),ge("div",qEs,[Zr(ht.$slots,"tracks-before",{},void 0,!0),c(zEs,{"scroll-left":b.value,locale:l.value,onScroll:M,onContextMenu:G,onTrackContextMenu:q,onAddTransition:j,onDropMedia:W,"onUpdate:trackControlWidth":P,onSeek:H},_Y({"track-control":Oe(Mt=>[Zr(ht.$slots,"track-control",Qx(D_(Mt)),void 0,!0)]),"track-area":Oe(Mt=>[Zr(ht.$slots,"track-area",Qx(D_(Mt)),void 0,!0)]),"clip-content":Oe(Mt=>[Zr(ht.$slots,"clip-content",Qx(D_(Mt)),void 0,!0)]),"empty-track":Oe(Mt=>[Zr(ht.$slots,"empty-track",Qx(D_(Mt)),()=>[ge("div",KEs,Pe(l.value.emptyTrackHint),1)],!0)]),_:2},[Bi(ht.$slots,(Mt,Kt)=>({name:Kt,fn:Oe(qn=>[Zr(ht.$slots,Kt,Qx(D_(qn)),void 0,!0)])}))]),1032,["scroll-left","locale"]),Zr(ht.$slots,"tracks-after",{},void 0,!0)]),c(ZEs,{ref_key:"contextMenuRef",ref:E,items:y.value,onSelect:re},{"menu-item":Oe(Mt=>[Zr(ht.$slots,"context-menu-item",Qx(D_(Mt)),void 0,!0)]),_:3},8,["items"]),Zr(ht.$slots,"statusbar",{},void 0,!0)],512))}}),e7s=Lm(JEs,[["__scopeId","data-v-aa0c76f8"]]);function t7s(){return[{id:"text-1",type:"subtitle",name:$t("workbench.production.media.titleText"),preview:"Aa",duration:3},{id:"text-2",type:"subtitle",name:$t("workbench.production.media.subtitleText"),preview:$t("workbench.production.media.subtitlePreview"),duration:3},{id:"text-3",type:"text",name:$t("workbench.production.media.customText"),preview:"Text",duration:3}]}function n7s(){return[{id:"trans-1",type:"transition",subType:"fade",name:$t("workbench.production.transition.fade"),icon:"i-round"},{id:"trans-2",type:"transition",subType:"slide",name:$t("workbench.production.transition.slide"),icon:"i-right"},{id:"trans-3",type:"transition",subType:"wipe",name:$t("workbench.production.transition.wipe"),icon:"i-erase"},{id:"trans-4",type:"transition",subType:"dissolve",name:$t("workbench.production.transition.dissolve"),icon:"i-platte"},{id:"trans-5",type:"transition",subType:"zoom",name:$t("workbench.production.transition.zoom"),icon:"i-zoom-in"},{id:"trans-6",type:"transition",subType:"rotate",name:$t("workbench.production.transition.rotate"),icon:"i-redo"}]}function i7s(){return[{id:"fadeIn",type:"effect",effectType:"fadeIn",name:$t("workbench.production.effect.fadeIn"),icon:"i-sun-one"},{id:"fadeOut",type:"effect",effectType:"fadeOut",name:$t("workbench.production.effect.fadeOut"),icon:"i-moon"},{id:"flash",type:"effect",effectType:"flash",name:$t("workbench.production.effect.flash"),icon:"i-flashlamp"},{id:"shake",type:"effect",effectType:"shake",name:$t("workbench.production.effect.shake"),icon:"i-shake"},{id:"zoomIn",type:"effect",effectType:"zoomIn",name:$t("workbench.production.effect.zoomIn"),icon:"i-zoom-in"},{id:"zoomOut",type:"effect",effectType:"zoomOut",name:$t("workbench.production.effect.zoomOut"),icon:"i-zoom-out"},{id:"pulse",type:"effect",effectType:"pulse",name:$t("workbench.production.effect.pulse"),icon:"i-heartbeat"},{id:"rotateIn",type:"effect",effectType:"rotateIn",name:$t("workbench.production.effect.rotateIn"),icon:"i-redo"},{id:"sticker-1",type:"sticker",name:$t("workbench.production.effect.sticker1"),icon:"i-emotion-happy"},{id:"sticker-2",type:"sticker",name:$t("workbench.production.effect.sticker2"),icon:"i-star"}]}function r7s(){return[{id:"grayscale",type:"filter",filterType:"grayscale",filterValue:1,name:$t("workbench.production.filter.grayscale"),icon:"i-dark-mode"},{id:"sepia",type:"filter",filterType:"sepia",filterValue:1,name:$t("workbench.production.filter.sepia"),icon:"i-camera-one"},{id:"warm",type:"filter",filterType:"sepia",filterValue:.3,name:$t("workbench.production.filter.warm"),icon:"i-fire"},{id:"cool",type:"filter",filterType:"hue-rotate",filterValue:180,name:$t("workbench.production.filter.cool"),icon:"i-snowflake"},{id:"saturate",type:"filter",filterType:"saturate",filterValue:2,name:$t("workbench.production.filter.vivid"),icon:"i-brightness"},{id:"brightness",type:"filter",filterType:"brightness",filterValue:1.3,name:$t("workbench.production.filter.bright"),icon:"i-sun-one"},{id:"contrast",type:"filter",filterType:"contrast",filterValue:1.5,name:$t("workbench.production.filter.highContrast"),icon:"i-contrast-view"},{id:"blur",type:"filter",filterType:"blur",filterValue:3,name:$t("workbench.production.filter.blur"),icon:"i-fog"},{id:"invert",type:"filter",filterType:"invert",filterValue:1,name:$t("workbench.production.filter.invert"),icon:"i-reverse-rotation"},{id:"opacity",type:"filter",filterType:"opacity",filterValue:.5,name:$t("workbench.production.filter.semiTransparent"),icon:"i-ghost"}]}function o7s(){return[{id:"video",label:$t("workbench.production.media.video"),icon:"i-video-file"},{id:"media",label:$t("workbench.production.media.media"),icon:"i-video"},{id:"image",label:$t("workbench.production.media.image"),icon:"i-pic"},{id:"audio",label:$t("workbench.production.media.audio"),icon:"i-music"},{id:"text",label:$t("workbench.production.media.subtitle"),icon:"i-text"},{id:"transition",label:$t("workbench.production.media.transition"),icon:"i-switch-themes"},{id:"effect",label:$t("workbench.production.media.effect"),icon:"i-magic"},{id:"filter",label:$t("workbench.production.media.filter"),icon:"i-color-filter"}]}function FRe(e){if(e===0)return $t("workbench.production.media.loading");const t=Math.floor(e/60),n=Math.floor(e%60);return t>0?`${t}:${n.toString().padStart(2,"0")}`:`${n.toFixed(1)}s`}const s7s={class:"mediaLibrary"},a7s={class:"mediaLibraryHeader"},l7s={class:"headerTitle"},c7s={class:"mediaLibraryTitle"},d7s={class:"mediaLibraryTabs"},u7s={class:"mediaLibraryContent"},h7s={key:0,class:"mediaList"},f7s=["onDragstart"],g7s={class:"mediaItemPreview"},m7s={key:2,class:"mediaItemLoading"},k7s={class:"mediaItemInfo"},v7s={key:0,class:"selected"},A7s={class:"mediaItemName"},p7s={key:1,class:"mediaList"},b7s=["onDragstart"],w7s={class:"mediaItemPreview"},O7s={key:2,class:"mediaItemLoading"},y7s={class:"mediaItemInfo"},C7s={class:"mediaItemName"},_7s={key:2,class:"mediaList"},S7s=["onDragstart"],L7s={class:"mediaItemPreview"},x7s={key:2,class:"mediaItemLoading"},E7s={class:"mediaItemInfo"},T7s={class:"mediaItemName"},Q7s={key:3,class:"transitionList"},D7s=["onDragstart"],B7s={class:"transitionItemPreview"},R7s={class:"transitionItemIcon"},I7s={class:"transitionItemName"},M7s={key:4,class:"effectList"},P7s=["onDragstart"],F7s={class:"effectItemPreview"},N7s={class:"effectItemName"},U7s={key:5,class:"filterList"},j7s=["onDragstart"],W7s={class:"filterItemPreview"},V7s={class:"filterItemName"},z7s={key:6,class:"audioList"},H7s=["onDragstart"],$7s={class:"audioItemPreview"},X7s={key:0,class:"mediaItemLoading"},G7s={class:"audioItemInfo"},Y7s={class:"audioItemName"},Z7s={key:7,class:"textList"},q7s=["onDragstart"],K7s={class:"textItemPreview"},J7s={class:"textItemContent"},eTs={class:"textItemName"},tTs=Je({__name:"mediaLibrary",props:{initialVideoItems:{default:()=>[]},initialMediaItems:{default:()=>[]},initialAudioItems:{default:()=>[]},initialImageItems:{default:()=>[]}},setup(e){const t=e,n=fe("video"),r=o7s(),o=fe([...t.initialVideoItems]),s=fe([...t.initialMediaItems]),a=fe([...t.initialAudioItems]),l=fe([...t.initialImageItems]),d=fe(t7s());pt(()=>t.initialVideoItems,p=>{o.value=[...p],p.length>0&&m()}),pt(()=>t.initialMediaItems,p=>{s.value=[...p],p.length>0&&m()}),pt(()=>t.initialAudioItems,p=>{a.value=[...p],p.length>0&&f()}),pt(()=>t.initialImageItems,p=>{l.value=[...p],p.length>0&&v()});const u=fe(n7s()),h=fe(i7s()),g=fe(r7s());async function m(){for(const p of s.value)try{const b=await tve(p.url,{count:10,width:120});p.duration=b.duration,p.thumbnails=b.thumbnails,p.thumbnail=b.thumbnails[0]||"",p.loading=!1}catch(b){console.error(`Failed to load thumbnails for ${p.name}:`,b),p.loading=!1,p.duration=5}for(const p of o.value)try{const b=await tve(p.url,{count:10,width:120});p.duration=b.duration,p.thumbnails=b.thumbnails,p.thumbnail=b.thumbnails[0]||"",p.loading=!1}catch(b){console.error(`Failed to load thumbnails for ${p.name}:`,b),p.loading=!1,p.duration=5}}async function v(){for(const p of l.value)try{const b=new Image;b.crossOrigin="anonymous",await new Promise((w,O)=>{b.onload=()=>{p.thumbnail=p.url,p.loading=!1,w()},b.onerror=O,b.src=p.url})}catch(b){console.error(`Failed to load image ${p.name}:`,b),p.loading=!1}}async function f(){for(const p of a.value)try{const b=await aat(p.url,{samples:50});p.duration=b.duration,p.waveformData=b.waveformData,p.loading=!1}catch(b){console.error(`Failed to load waveform for ${p.name}:`,b),p.loading=!1,p.duration=30}}function k(p,b){if(!p.dataTransfer)return;const w={...b,sourceUrl:b.url||b.id};p.dataTransfer.effectAllowed="copy",p.dataTransfer.setData("application/json",JSON.stringify(w)),p.dataTransfer.setData("text/plain",b.name),p.target instanceof HTMLElement&&p.target.classList.add("dragging")}function A(p){p.target instanceof HTMLElement&&p.target.classList.remove("dragging")}return An(()=>{setTimeout(()=>{m(),f(),v()},100)}),(p,b)=>{const w=Si,O=Zh,y=Wc,C=_n("i-check-one"),_=y1,S=Sg,L=_n("i-music");return xe(),Ge("div",s7s,[ge("div",a7s,[ge("div",l7s,[ge("h3",c7s,Pe(p.$t("workbench.production.editVideo.clipMaterials")),1)]),ge("div",d7s,[(xe(!0),Ge(sn,null,Bi(Ae(r),E=>(xe(),Ut(w,{key:E.id,theme:Ae(n)===E.id?"primary":"default",variant:Ae(n)===E.id?"base":"text",size:"small",onClick:T=>n.value=E.id},{icon:Oe(()=>[(xe(),Ut(Bd(E.icon),{theme:"outline",size:"18",style:{"margin-right":"4px"}}))]),default:Oe(()=>[Bt(" "+Pe(E.label),1)]),_:2},1032,["theme","variant","onClick"]))),128))])]),ge("div",u7s,[Ae(n)==="video"?(xe(),Ge("div",h7s,[(xe(!0),Ge(sn,null,Bi(Ae(o),E=>(xe(),Ge("div",{key:E.id,class:"mediaItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",g7s,[E.thumbnail?(xe(),Ut(O,{key:0,src:E.thumbnail,fit:"cover",class:"mediaItemThumbnail"},null,8,["src"])):(xe(),Ut(Bd(E.icon),{key:1,theme:"outline",size:"18"})),E.loading?(xe(),Ge("div",m7s,[c(y,{size:"small"})])):nn("",!0)]),ge("div",k7s,[E.selected?(xe(),Ge("div",v7s,[c(C,{theme:"filled",size:"16",fill:"#000000"})])):nn("",!0),ge("div",A7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])]),E.duration?(xe(),Ut(S,{key:1,size:"small",theme:"default",variant:"light"},{default:Oe(()=>[Bt(Pe(Ae(FRe)(E.duration)),1)]),_:2},1024)):nn("",!0)])],40,f7s))),128))])):nn("",!0),Ae(n)==="media"?(xe(),Ge("div",p7s,[(xe(!0),Ge(sn,null,Bi(Ae(s),E=>(xe(),Ge("div",{key:E.id,class:"mediaItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",w7s,[E.thumbnail?(xe(),Ut(O,{key:0,src:E.thumbnail,fit:"cover",class:"mediaItemThumbnail"},null,8,["src"])):(xe(),Ut(Bd(E.icon),{key:1,theme:"outline",size:"18"})),E.loading?(xe(),Ge("div",O7s,[c(y,{size:"small"})])):nn("",!0)]),ge("div",y7s,[ge("div",C7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])]),E.duration?(xe(),Ut(S,{key:0,size:"small",theme:"default",variant:"light"},{default:Oe(()=>[Bt(Pe(Ae(FRe)(E.duration)),1)]),_:2},1024)):nn("",!0)])],40,b7s))),128))])):nn("",!0),Ae(n)==="image"?(xe(),Ge("div",_7s,[(xe(!0),Ge(sn,null,Bi(Ae(l),E=>(xe(),Ge("div",{key:E.id,class:"mediaItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",L7s,[E.thumbnail?(xe(),Ut(O,{key:0,src:E.thumbnail,fit:"cover",class:"mediaItemThumbnail"},null,8,["src"])):(xe(),Ut(Bd(E.icon),{key:1,theme:"outline",size:"18"})),E.loading?(xe(),Ge("div",x7s,[c(y,{size:"small"})])):nn("",!0)]),ge("div",E7s,[ge("div",T7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])])])],40,S7s))),128))])):nn("",!0),Ae(n)==="transition"?(xe(),Ge("div",Q7s,[(xe(!0),Ge(sn,null,Bi(Ae(u),E=>(xe(),Ge("div",{key:E.id,class:"transitionItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",B7s,[ge("span",R7s,[(xe(),Ut(Bd(E.icon),{theme:"outline",size:"18"}))])]),ge("div",I7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])])],40,D7s))),128))])):nn("",!0),Ae(n)==="effect"?(xe(),Ge("div",M7s,[(xe(!0),Ge(sn,null,Bi(Ae(h),E=>(xe(),Ge("div",{key:E.id,class:"effectItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",F7s,[(xe(),Ut(Bd(E.icon),{theme:"outline",size:"18"}))]),ge("div",N7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])])],40,P7s))),128))])):nn("",!0),Ae(n)==="filter"?(xe(),Ge("div",U7s,[(xe(!0),Ge(sn,null,Bi(Ae(g),E=>(xe(),Ge("div",{key:E.id,class:"filterItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",W7s,[(xe(),Ut(Bd(E.icon),{theme:"outline",size:"18"}))]),ge("div",V7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])])],40,j7s))),128))])):nn("",!0),Ae(n)==="audio"?(xe(),Ge("div",z7s,[(xe(!0),Ge(sn,null,Bi(Ae(a),E=>(xe(),Ge("div",{key:E.id,class:"audioItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",$7s,[c(L,{theme:"outline",size:"18"}),E.loading?(xe(),Ge("div",X7s,[c(y,{size:"small"})])):nn("",!0)]),ge("div",G7s,[ge("div",Y7s,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])]),E.duration?(xe(),Ut(S,{key:0,size:"small",theme:"default",variant:"light"},{default:Oe(()=>[Bt(Pe(Ae(FRe)(E.duration)),1)]),_:2},1024)):nn("",!0)])],40,H7s))),128))])):nn("",!0),Ae(n)==="text"?(xe(),Ge("div",Z7s,[(xe(!0),Ge(sn,null,Bi(Ae(d),E=>(xe(),Ge("div",{key:E.id,class:"textItem",draggable:"true",onDragstart:T=>k(T,E),onDragend:A},[ge("div",K7s,[ge("span",J7s,Pe(E.preview),1)]),ge("div",eTs,[c(_,{content:E.name},{default:Oe(()=>[Bt(Pe(E.name),1)]),_:2},1032,["content"])])],40,q7s))),128))])):nn("",!0)])])}}}),nTs=oo(tTs,[["__scopeId","data-v-e976f881"]]),_fe=["t","b","l","r","lt","lb","rt","rb","rotate"];function hz(e){return document.createElement(e)}const NRe=new WeakMap;function Vqn(e,t){if(NRe.has(e))return NRe.get(e)(t);let n=10;new ResizeObserver(o=>{const s=o[0];s!=null&&(n=10/(s.contentRect.width/e.width))}).observe(e);function r(o){const{w:s,h:a}=o,l=n,d=l/2,u=s/2,h=a/2,g=l*1.5,m=g/2;return{...o.fixedAspectRatio?{}:{t:new xw(-d,-h-d,l,l,o),b:new xw(-d,h-d,l,l,o),l:new xw(-u-d,-d,l,l,o),r:new xw(u-d,-d,l,l,o)},lt:new xw(-u-d,-h-d,l,l,o),lb:new xw(-u-d,h-d,l,l,o),rt:new xw(u-d,-h-d,l,l,o),rb:new xw(u-d,h-d,l,l,o),rotate:new xw(-m,-h-l*2-m,g,g,o)}}return NRe.set(e,r),r(t)}const URe=new WeakMap;function Kre(e){if(URe.has(e))return URe.get(e);const t={w:e.clientWidth/e.width,h:e.clientHeight/e.height};return new ResizeObserver(()=>{t.w=e.clientWidth/e.width,t.h=e.clientHeight/e.height}).observe(e),URe.set(e,t),t}var Pte=(e=>(e.ActiveSpriteChange="activeSpriteChange",e.AddSprite="addSprite",e))(Pte||{}),fv,$Q,XQ,tW;class iTs{constructor(){fn(this,fv,[]);fn(this,$Q,null);fn(this,XQ,new $B);In(this,"on",we(this,XQ).on);fn(this,tW,0)}get activeSprite(){return we(this,$Q)}set activeSprite(t){t===we(this,$Q)||(t==null?void 0:t.interactable)==="disabled"||(Jt(this,$Q,t),we(this,XQ).emit("activeSpriteChange",t))}activeSpriteByCoord(t,n){this.activeSprite=this.getSprites().reverse().find(r=>r.visible&&r.interactable!=="disabled"&&r.rect.checkHit(t,n))??null}async addSprite(t){await t.ready,we(this,fv).push(t),Jt(this,fv,we(this,fv).sort((n,r)=>n.zIndex-r.zIndex)),t.on("propsChange",n=>{n.zIndex!=null&&Jt(this,fv,we(this,fv).sort((r,o)=>r.zIndex-o.zIndex))}),we(this,XQ).emit("addSprite",t)}removeSprite(t){we(this,$Q)===t&&(this.activeSprite=null),Jt(this,fv,we(this,fv).filter(n=>n!==t)),t.destroy()}getSprites(t={time:!0}){return we(this,fv).filter(n=>n.visible&&(t.time?we(this,tW)>=n.time.offset&&we(this,tW)<=n.time.offset+n.time.duration:!0))}updateRenderTime(t){Jt(this,tW,t);const n=this.activeSprite;n!=null&&(tn.time.offset+n.time.duration)&&(this.activeSprite=null)}destroy(){we(this,XQ).destroy(),we(this,fv).forEach(t=>t.destroy()),Jt(this,fv,[])}}fv=new WeakMap,$Q=new WeakMap,XQ=new WeakMap,tW=new WeakMap;const rTs=` @@ -15528,14 +15528,14 @@ Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will text-align: ${ot}; white-space: pre-wrap; padding: 8px 16px; - `;Ye&&(We+=`background-color: ${Ye};`);try{const et=await S5r(me,We),st=new NSe(et);if(await st.ready,Z=new H$(st),he=et.width,pe=et.height,!te.rect||te.rect.w<=0||te.rect.h<=0){const Me=(b.value-he)/2,Se=w.value-pe-80;Z.rect.x=Me,Z.rect.y=Se,Z.rect.w=he,Z.rect.h=pe}Z.time.offset=z.startTime*1e6,Z.time.duration=(z.endTime-z.startTime)*1e6}catch{return null}}if(!Z)return null;if(te.rect&&te.rect.w>0&&te.rect.h>0)Z.rect.x=te.rect.x,Z.rect.y=te.rect.y,Z.rect.w=te.rect.w,Z.rect.h=te.rect.h,Z.rect.angle=te.rect.angle||0,te.rect.fixedAspectRatio!==void 0&&(Z.rect.fixedAspectRatio=te.rect.fixedAspectRatio),te.rect.fixedScaleCenter!==void 0&&(Z.rect.fixedScaleCenter=te.rect.fixedScaleCenter);else if(he>0&&pe>0&&z.type!=="subtitle"&&z.type!=="text"){const ke=q(he,pe);Z.rect.x=ke.x,Z.rect.y=ke.y,Z.rect.w=ke.w,Z.rect.h=ke.h}te.opacity!==void 0&&(Z.opacity=te.opacity),te.visible!==void 0&&(Z.visible=te.visible),te.flip&&(Z.flip=te.flip);const Qe=Y.type==="subtitle"||Y.type==="text";return te.zIndex!==void 0?Z.zIndex=Qe?te.zIndex+1e3:te.zIndex:Z.zIndex=I(Y.order,Qe),_.set(z.id,{trackId:Y.id,trackOrder:Y.order}),Z}catch{return null}}async function ue(){if(!u)return;if(A){p=!0;return}A=!0,W();const z=[];for(const te of a.tracks)if(te.visible!==!1)for(const Z of te.clips)["video","audio","image","sticker","subtitle","text"].includes(Z.type)&&z.push({clip:Z,track:te});const Y=new Set(z.map(te=>te.clip.id));for(const[te,Z]of O)if(!Y.has(te)){const he=y.get(te);he&&(he(),y.delete(te)),u.removeSprite(Z),O.delete(te),C.delete(te),_.delete(te)}for(const{clip:te,track:Z}of z){const he=te,pe=O.get(te.id);if(pe&&J(te)&&pe){const ke=y.get(te.id);ke&&(ke(),y.delete(te.id)),u.removeSprite(pe),O.delete(te.id),C.delete(te.id),_.delete(te.id)}const Qe=O.get(te.id);if(Qe){if(!f){k=!0,Qe.time.offset=te.startTime*1e6,Qe.time.duration=(te.endTime-te.startTime)*1e6,he.rect&&he.rect.w>0&&he.rect.h>0&&(Qe.rect.x=he.rect.x,Qe.rect.y=he.rect.y,Qe.rect.w=he.rect.w,Qe.rect.h=he.rect.h,Qe.rect.angle=he.rect.angle||0),he.opacity!==void 0&&(Qe.opacity=he.opacity),he.visible!==void 0&&(Qe.visible=he.visible),he.flip!==void 0&&(Qe.flip=he.flip);const ke=_.get(te.id);if(ke&&ke.trackOrder!==Z.order){const me=he.zIndex!==void 0?he.zIndex:I(Z.order);Qe.zIndex=me,_.set(te.id,{trackId:Z.id,trackOrder:Z.order})}else he.zIndex!==void 0&&(Qe.zIndex=he.zIndex);setTimeout(()=>{k=!1},0)}}else{const ke=await le(te,Z);ke&&(await u.addSprite(ke),O.set(te.id,ke),C.set(te.id,re(te)),se(te.id,ke))}}h.value=O.size>0,D();const ie=Q();ie>0&&(v.value=ie,T.duration=ie),A=!1,p&&(p=!1,await ue())}An(async()=>{if(d.value)try{u=new ATs(d.value,{bgColor:"#000000",width:b.value,height:w.value}),u.on("timeupdate",z=>{m.value=z,T.currentTime=z,f=!0,s.seekTo(z/1e6),setTimeout(()=>{f=!1},0)}),u.on("playing",()=>{g.value=!0,T.isPlaying=!0,f=!0,s.play(),o("play"),setTimeout(()=>{f=!1},0)}),u.on("paused",()=>{g.value=!1,T.isPlaying=!1,f=!0,s.pause(),o("pause"),setTimeout(()=>{f=!1},0)}),u.on("activeSpriteChange",z=>{if(z){for(const[Y,ie]of O)if(ie===z){oe(Y,z),a.selectClip(Y);break}}else a.clearSelection()}),T.initialized=!0,await ue(),O.size>0&&u.previewFrame(0)}catch{}}),pt(()=>a.tracks,async()=>{for(const z of $.values())z.close();$.clear(),await ue(),u&&O.size>0&&!g.value&&u.previewFrame(m.value)},{deep:!0}),pt(()=>s.currentTime,z=>{if(f)return;const Y=z*1e6;m.value=Y,u&&!g.value&&(k=!0,u.previewFrame(Y),setTimeout(()=>{k=!1},0))}),pt(()=>s.isPlaying,z=>{if(!f&&u)if(z&&!g.value){const Y=Q();if(Y<=0)return;m.value>=Y-1e3&&(m.value=0),k=!0,u.play({start:m.value,end:Y,playbackRate:l.value}),g.value=!0,setTimeout(()=>{k=!1},0)}else!z&&g.value&&(k=!0,u.pause(),g.value=!1,setTimeout(()=>{k=!1},0))}),pt(()=>s.duration,z=>{v.value=z*1e6,T.duration=z*1e6}),Qa(()=>{for(const z of y.values())z();y.clear(),O.clear(),C.clear(),_.clear(),S.clear(),L.clear();for(const z of $.values())z.close();$.clear(),E.clear(),u&&(u.destroy(),u=null)});function ee(z){const Y=z.target,ie=parseFloat(Y.value),te=ie*1e6;m.value=te,f=!0,s.seekTo(ie),setTimeout(()=>{f=!1},0),u&&u.previewFrame(te)}async function de(){if(!u)throw new Error($t("workbench.production.editVideo.avCanvasNotInit"));if(O.size===0)throw new Error($t("workbench.production.editVideo.noExportContent"));g.value&&(u.pause(),g.value=!1,s.pause());const z=await u.createCombinator(),Y=[],ie=z.output().getReader();for(;;){const{done:pe,value:Ce}=await ie.read();if(pe)break;Y.push(Ce)}const te=new Blob(Y,{type:"video/mp4"}),Z=URL.createObjectURL(te),he=document.createElement("a");he.href=Z,he.download=`WebAV-export-${Date.now()}.mp4`,he.click(),URL.revokeObjectURL(Z)}return t({avCanvas:X(()=>u),exportVideo:de,addSprite:async z=>{u&&(await u.addSprite(z),h.value=!0)},removeSprite:z=>{u&&u.removeSprite(z)}}),(z,Y)=>{const ie=_n("i-film"),te=_n("i-play");return xe(),Ge("div",VTs,[ge("div",{ref_key:"canvasContainer",ref:d,class:"previewScreen"},[Ae(h)?nn("",!0):(xe(),Ge("div",zTs,[ge("div",HTs,[c(ie,{theme:"outline",size:"48",fill:"#999"})]),ge("div",$Ts,Pe(z.$t("workbench.production.editVideo.videoPreviewArea")),1),ge("div",XTs,Pe(Ae(WTs)(Ae(M))),1)])),Ae(g)&&!Ae(h)?(xe(),Ge("div",GTs,[ge("div",YTs,[c(te,{theme:"outline",size:"36",fill:"#000000"})])])):nn("",!0)],512),ge("div",ZTs,[ge("input",{type:"range",min:"0",max:Ae(B),value:Ae(M),step:"0.01",class:"progressSlider",onInput:ee},null,40,qTs)])])}}}),JTs=oo(KTs,[["__scopeId","data-v-2b901aa2"]]),eQs={class:"propertyPanel"},tQs={class:"panelHeader"},nQs={class:"panelTitle"},iQs={class:"panelContent"},rQs={key:0,class:"emptyState"},oQs={class:"emptyIconWrapper"},sQs={class:"emptyText"},aQs={key:1,class:"properties"},lQs={class:"sectionCard"},cQs={class:"sectionHeader"},dQs={class:"sectionIconBadge"},uQs={class:"sectionLabel"},hQs={class:"sectionBody"},fQs={class:"propRow"},gQs={class:"propLabel"},mQs={class:"propRowInline"},kQs={class:"propField"},vQs={class:"propLabel"},AQs={class:"propField"},pQs={class:"propLabel"},bQs={class:"propRowInline durationRow"},wQs={class:"durationLabel"},OQs={key:0,class:"sectionCard"},yQs={class:"sectionHeader"},CQs={class:"sectionIconBadge"},_Qs={class:"sectionLabel"},SQs={class:"sectionBody"},LQs={class:"propRow"},xQs={class:"propRowHead"},EQs={class:"propLabel"},TQs={class:"propValueText"},QQs={class:"propRow"},DQs={class:"propRowHead"},BQs={class:"propLabel"},RQs={class:"propValueText"},IQs={class:"propRow"},MQs={class:"propLabel"},PQs={key:1,class:"sectionCard"},FQs={class:"sectionHeader"},NQs={class:"sectionIconBadge"},UQs={class:"sectionLabel"},jQs={class:"sectionBody"},WQs={class:"propRow"},VQs={class:"propRowHead"},zQs={class:"propLabel"},HQs={class:"propValueText"},$Qs={class:"propRowInline"},XQs={class:"propField"},GQs={class:"propLabel"},YQs={class:"propField"},ZQs={class:"propLabel"},qQs={key:2,class:"sectionCard"},KQs={class:"sectionHeader"},JQs={class:"sectionIconBadge"},eDs={class:"sectionLabel"},tDs={class:"sectionBody"},nDs={class:"propRow"},iDs={class:"propLabel"},rDs={class:"propRow"},oDs={class:"propLabel"},sDs={key:3,class:"sectionCard"},aDs={class:"sectionHeader"},lDs={class:"sectionIconBadge"},cDs={class:"sectionLabel"},dDs={class:"sectionBody"},uDs={class:"propRow"},hDs={class:"propLabel"},fDs={class:"propRow"},gDs={class:"propLabel"},mDs={class:"actions"},kDs=Je({__name:"propertyPanel",setup(e){const t=G0(),n=TE(),r=X(()=>{const O=t.selectedClips;return O.length===1?O[0]:null}),o=fe(""),s=fe(100),a=fe(100),l=fe(1),d=fe(100),u=fe(0),h=fe(0),g=fe("fade"),m=fe(1),v=fe(""),f=fe(24);pt(r,O=>{O&&(o.value=O.name||"",O.type==="video"&&(s.value=Math.round((O.opacity??1)*100),a.value=Math.round((O.volume??1)*100),l.value=O.playbackRate??1),O.type==="audio"&&(d.value=Math.round((O.volume??1)*100),u.value=O.fadeIn??0,h.value=O.fadeOut??0),O.type==="transition"&&(g.value=O.transitionType??"fade",m.value=O.transitionDuration??1),O.type==="subtitle"&&(v.value=O.text??"",f.value=O.fontSize??24))},{immediate:!0});function k(O,y){r.value&&(t.updateClip(r.value.id,{[O]:y}),n.pushSnapshot($t("workbench.production.editVideo.updateClip",{key:O})))}function A(O){if(!r.value)return;if(O<.1||O>10){console.warn($t("workbench.production.editVideo.playbackRateRange"));return}const y=t.setClipPlaybackRate(r.value.id,O,{allowShrink:!0,allowExpand:!0,handleCollision:!0,keepStartTime:!0});y.success?n.pushSnapshot($t("workbench.production.editVideo.updatePlaybackRate",{rate:O})):console.warn($t("workbench.production.editVideo.updatePlaybackRateFailed"),y.message)}function p(){if(!r.value||r.value.type!=="transition")return;const O=r.value;O.transitionDuration;const y=m.value,C=(O.startTime+O.endTime)/2;t.updateClip(O.id,{startTime:C-y/2,endTime:C+y/2,transitionDuration:y}),n.pushSnapshot($t("workbench.production.editVideo.updateTransitionDuration"))}function b(){if(!r.value)return;const O=fo.confirm({header:$t("workbench.production.editVideo.deleteConfirm"),body:$t("workbench.production.editVideo.deleteClipConfirm"),onConfirm:()=>{t.removeClips([r.value.id]),n.pushSnapshot($t("workbench.production.editVideo.deleteClip")),O.destroy()},onClose:()=>O.destroy()})}function w(){if(!r.value)return;const O=r.value,y=t.tracks.find(_=>_.id===O.trackId);if(!y)return;const C={...O,id:`clip-${Date.now()}`,startTime:O.endTime,endTime:O.endTime+(O.endTime-O.startTime),selected:!1};t.addClip(y.id,C),n.pushSnapshot($t("workbench.production.editVideo.duplicateClip"))}return(O,y)=>{const C=_n("i-inbox"),_=Sg,S=Wu,L=Lz,E=_n("i-video"),T=MAi,D=_n("i-music"),P=_n("i-exchange"),Q=uL,M=pA,B=_n("i-editor"),R=c2,I=_n("i-copy"),F=Si,j=_n("i-delete");return xe(),Ge("div",eQs,[ge("div",tQs,[ge("h3",nQs,Pe(O.$t("workbench.production.editVideo.propertyPanel")),1)]),ge("div",iQs,[r.value?(xe(),Ge("div",aQs,[ge("div",lQs,[ge("div",cQs,[ge("div",dQs,[(xe(),Ut(Bd(Ae(UTs)(r.value)),{theme:"outline",size:"16"}))]),ge("span",uQs,Pe(O.$t("workbench.production.editVideo.basicInfo")),1),c(_,{size:"small",theme:"primary",variant:"light"},{default:Oe(()=>[Bt(Pe(Ae(jTs)(r.value.type)),1)]),_:1})]),ge("div",hQs,[ge("div",fQs,[ge("label",gQs,Pe(O.$t("workbench.production.editVideo.name")),1),c(S,{modelValue:o.value,"onUpdate:modelValue":y[0]||(y[0]=W=>o.value=W),size:"small",placeholder:O.$t("workbench.production.editVideo.clipNamePlaceholder"),onChange:y[1]||(y[1]=W=>k("name",o.value))},null,8,["modelValue","placeholder"])]),ge("div",mQs,[ge("div",kQs,[ge("label",vQs,Pe(O.$t("workbench.production.editVideo.startTime")),1),c(L,{value:Number(r.value.startTime.toFixed(2)),size:"small","decimal-places":2,step:.01,theme:"normal",suffix:"s",onChange:y[2]||(y[2]=W=>k("startTime",Number(W)))},null,8,["value"])]),ge("div",AQs,[ge("label",pQs,Pe(O.$t("workbench.production.editVideo.endTime")),1),c(L,{value:Number(r.value.endTime.toFixed(2)),size:"small","decimal-places":2,step:.01,theme:"normal",suffix:"s",onChange:y[3]||(y[3]=W=>k("endTime",Number(W)))},null,8,["value"])])]),ge("div",bQs,[ge("span",wQs,Pe(O.$t("workbench.production.editVideo.totalDuration")),1),c(_,{size:"small",theme:"default",variant:"outline"},{default:Oe(()=>[Bt(Pe((r.value.endTime-r.value.startTime).toFixed(2))+"s",1)]),_:1})])])]),r.value.type==="video"?(xe(),Ge("div",OQs,[ge("div",yQs,[ge("div",CQs,[c(E,{theme:"outline",size:"16"})]),ge("span",_Qs,Pe(O.$t("workbench.production.editVideo.videoProperties")),1)]),ge("div",SQs,[ge("div",LQs,[ge("div",xQs,[ge("label",EQs,Pe(O.$t("workbench.production.editVideo.opacity")),1),ge("span",TQs,Pe(Math.round(s.value))+"%",1)]),c(T,{modelValue:s.value,"onUpdate:modelValue":y[4]||(y[4]=W=>s.value=W),min:0,max:100,step:1,onChange:y[5]||(y[5]=W=>k("opacity",Math.round(s.value)/100))},null,8,["modelValue"])]),ge("div",QQs,[ge("div",DQs,[ge("label",BQs,Pe(O.$t("workbench.production.editVideo.volume")),1),ge("span",RQs,Pe(Math.round(a.value))+"%",1)]),c(T,{modelValue:a.value,"onUpdate:modelValue":y[6]||(y[6]=W=>a.value=W),min:0,max:200,step:1,onChange:y[7]||(y[7]=W=>k("volume",Math.round(a.value)/100))},null,8,["modelValue"])]),ge("div",IQs,[ge("label",MQs,Pe(O.$t("workbench.production.editVideo.playbackSpeed")),1),c(L,{modelValue:l.value,"onUpdate:modelValue":y[8]||(y[8]=W=>l.value=W),size:"small",min:.1,max:10,step:.1,"decimal-places":1,theme:"normal",suffix:"x",onChange:y[9]||(y[9]=W=>A(Number(W)))},null,8,["modelValue"])])])])):nn("",!0),r.value.type==="audio"?(xe(),Ge("div",PQs,[ge("div",FQs,[ge("div",NQs,[c(D,{theme:"outline",size:"16"})]),ge("span",UQs,Pe(O.$t("workbench.production.editVideo.audioProperties")),1)]),ge("div",jQs,[ge("div",WQs,[ge("div",VQs,[ge("label",zQs,Pe(O.$t("workbench.production.editVideo.volume")),1),ge("span",HQs,Pe(Math.round(d.value))+"%",1)]),c(T,{modelValue:d.value,"onUpdate:modelValue":y[10]||(y[10]=W=>d.value=W),min:0,max:200,step:1,onChange:y[11]||(y[11]=W=>k("volume",Math.round(d.value)/100))},null,8,["modelValue"])]),ge("div",$Qs,[ge("div",XQs,[ge("label",GQs,Pe(O.$t("workbench.production.editVideo.fadeIn")),1),c(L,{modelValue:u.value,"onUpdate:modelValue":y[12]||(y[12]=W=>u.value=W),size:"small",min:0,step:.1,"decimal-places":1,theme:"normal",suffix:"s",onChange:y[13]||(y[13]=W=>k("fadeIn",u.value))},null,8,["modelValue"])]),ge("div",YQs,[ge("label",ZQs,Pe(O.$t("workbench.production.editVideo.fadeOut")),1),c(L,{modelValue:h.value,"onUpdate:modelValue":y[14]||(y[14]=W=>h.value=W),size:"small",min:0,step:.1,"decimal-places":1,theme:"normal",suffix:"s",onChange:y[15]||(y[15]=W=>k("fadeOut",h.value))},null,8,["modelValue"])])])])])):nn("",!0),r.value.type==="transition"?(xe(),Ge("div",qQs,[ge("div",KQs,[ge("div",JQs,[c(P,{theme:"outline",size:"16"})]),ge("span",eDs,Pe(O.$t("workbench.production.editVideo.transitionProperties")),1)]),ge("div",tDs,[ge("div",nDs,[ge("label",iDs,Pe(O.$t("workbench.production.editVideo.transitionType")),1),c(M,{modelValue:g.value,"onUpdate:modelValue":y[16]||(y[16]=W=>g.value=W),size:"small",onChange:y[17]||(y[17]=W=>k("transitionType",g.value))},{default:Oe(()=>[c(Q,{value:"fade",label:O.$t("workbench.production.editVideo.transFade")},null,8,["label"]),c(Q,{value:"slide",label:O.$t("workbench.production.editVideo.transSlide")},null,8,["label"]),c(Q,{value:"wipe",label:O.$t("workbench.production.editVideo.transWipe")},null,8,["label"]),c(Q,{value:"dissolve",label:O.$t("workbench.production.editVideo.transDissolve")},null,8,["label"]),c(Q,{value:"zoom",label:O.$t("workbench.production.editVideo.transZoom")},null,8,["label"]),c(Q,{value:"rotate",label:O.$t("workbench.production.editVideo.transRotate")},null,8,["label"])]),_:1},8,["modelValue"])]),ge("div",rDs,[ge("label",oDs,Pe(O.$t("workbench.production.editVideo.transitionDuration")),1),c(L,{modelValue:m.value,"onUpdate:modelValue":y[18]||(y[18]=W=>m.value=W),size:"small",min:.1,max:5,step:.1,"decimal-places":1,theme:"normal",suffix:"s",onChange:p},null,8,["modelValue"])])])])):nn("",!0),r.value.type==="subtitle"?(xe(),Ge("div",sDs,[ge("div",aDs,[ge("div",lDs,[c(B,{theme:"outline",size:"16"})]),ge("span",cDs,Pe(O.$t("workbench.production.editVideo.subtitleProperties")),1)]),ge("div",dDs,[ge("div",uDs,[ge("label",hDs,Pe(O.$t("workbench.production.editVideo.textContent")),1),c(R,{modelValue:v.value,"onUpdate:modelValue":y[19]||(y[19]=W=>v.value=W),autosize:{minRows:3,maxRows:6},onChange:y[20]||(y[20]=W=>k("text",v.value))},null,8,["modelValue"])]),ge("div",fDs,[ge("label",gDs,Pe(O.$t("workbench.production.editVideo.fontSize")),1),c(L,{modelValue:f.value,"onUpdate:modelValue":y[21]||(y[21]=W=>f.value=W),size:"small",min:12,max:72,theme:"normal",suffix:"px",onChange:y[22]||(y[22]=W=>k("fontSize",f.value))},null,8,["modelValue"])])])])):nn("",!0),ge("div",mDs,[c(F,{theme:"default",variant:"outline",block:"",onClick:w},{icon:Oe(()=>[c(I,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(O.$t("workbench.production.editVideo.copy")),1)]),_:1}),c(F,{theme:"danger",variant:"text",block:"",onClick:b},{icon:Oe(()=>[c(j,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(O.$t("workbench.production.editVideo.delete")),1)]),_:1})])])):(xe(),Ge("div",rQs,[ge("div",oQs,[c(C,{theme:"outline",size:"32",fill:"#999"})]),ge("div",sQs,Pe(O.$t("workbench.production.editVideo.selectClip")),1)]))])])}}}),vDs=oo(kDs,[["__scopeId","data-v-5eea45cc"]]),c2n={video:"workbench.production.track.video",image:"workbench.production.track.image",audio:"workbench.production.track.audio",subtitle:"workbench.production.track.subtitle",text:"workbench.production.track.text",sticker:"workbench.production.track.sticker",filter:"workbench.production.track.filter",effect:"workbench.production.track.effect"},ADs={video:5,image:5,audio:30,subtitle:3,text:3,sticker:3,filter:3,effect:3,transition:3};function pDs(e,t){return t.duration&&t.duration>0?t.duration:ADs[e]||3}function d2n(e,t,n){const r=t+n;for(const o of e.clips)if(o.type!=="transition"&&to.startTime)return!1;return!0}function bDs(e,t,n,r,o){if(o){const d=e.tracks.find(u=>u.id===o);if(d&&d.type===t&&d2n(d,n,r))return{track:d,isNew:!1}}const s=e.sortedTracks.filter(d=>d.type===t&&!d.isMain);for(const d of s)if(d2n(d,n,r))return{track:d,isNew:!1};const a=e.getTrackCountByType(t),l={id:Yre("track-"),type:t,name:`${c2n[t]?$t(c2n[t]):t}${a+1}`,visible:!0,locked:!1,clips:[],order:e.tracks.length};return e.addTrack(l),{track:l,isNew:!0}}async function wDs(e,t,n){try{const r=await tve(n,{count:20,width:120}),o=e.getClip(t);o&&o.type==="video"&&(o.thumbnails=r.thumbnails,r.duration>0&&o.endTime-o.startTime<=0&&(o.endTime=o.startTime+r.duration,o.originalDuration=r.duration,o.trimEnd=r.duration))}catch(r){console.error("Failed to load video thumbnails:",r)}}async function Xqn(e,t,n){try{const o=n.match(/\.(mp4|webm|mov|avi)$/i)?await Wqn(n,{samples:500}):await aat(n,{samples:500}),s=e.getClip(t);s&&s.type==="audio"&&(s.waveformData=o.waveformData,o.duration>0&&(s.originalDuration=o.duration,s.endTime-s.startTime<=0&&(s.endTime=s.startTime+o.duration,s.trimEnd=o.duration),s.trimEnd>o.duration&&(s.trimEnd=o.duration)))}catch(r){console.error("Failed to load audio waveform:",r)}}async function ODs(e){for(const t of e.tracks)for(const n of t.clips)if(n.type==="audio"){const r=n;(!r.waveformData||r.waveformData.length===0)&&await Xqn(e,r.id,r.sourceUrl)}}const u2n={fade:"workbench.production.transition.fade",slide:"workbench.production.transition.slide",wipe:"workbench.production.transition.wipe",dissolve:"workbench.production.transition.dissolve",zoom:"workbench.production.transition.zoom",rotate:"workbench.production.transition.rotate"};function yDs(e,t){const n=e.find(r=>t>=r.startTime&&t<=r.endTime);if(n){const r=(n.startTime+n.endTime)/2,o=e.indexOf(n);if(t0){const s=e[o-1];if(Math.abs(s.endTime-n.startTime)<.1)return{beforeClip:s,afterClip:n}}}else if(o=t&&Math.abs(e[r].endTime-e[r+1].startTime)<.1)return{beforeClip:e[r],afterClip:e[r+1]};return null}function CDs(e,t,n,r,o="fade"){const s=e.getClip(n),a=e.getClip(r);if(!s||!a)return console.error("未找到clip"),null;const l=e.tracks.find(g=>g.id===s.trackId);if(!l)return null;if(l.clips.some(g=>g.type==="transition"&&g.startTimes.endTime))return window.$message.warning($t("workbench.production.editVideo.transitionExists")),null;const u=1,h={id:Yre("clip-"),trackId:s.trackId,type:"transition",startTime:Ar(s.endTime-u/2),endTime:Ar(a.startTime+u/2),selected:!1,transitionType:o,transitionDuration:Ar(u),name:u2n[o]?$t(u2n[o]):o};return e.addClip(s.trackId,h),t.pushSnapshot($t("workbench.production.editVideo.addTransition")),e.clearSelection(),{transitionClip:h,beforeClip:s,afterClip:a}}const _Ds={class:"editVideo"},SDs=Je({__name:"index",props:{initialTracks:{default:()=>[]},initialVideoItems:{},initialMediaItems:{default:()=>[]},initialAudioItems:{default:()=>[]},initialImageItems:{default:()=>[]},canvasWidth:{default:1920},canvasHeight:{default:1080}},setup(e){const t=e,n=X(()=>t.canvasWidth/t.canvasHeight),r=fe(),o=hs({width:0,height:0});let s=null;const a=X(()=>{const{width:T,height:D}=o;if(T<=0||D<=0)return{};const P=n.value;return T/D>P?{height:D+"px",width:Math.floor(D*P)+"px"}:{width:T+"px",height:Math.floor(T/P)+"px"}}),l=G0(),d=ML(),u=TE(),h=fe([{type:"custom",key:"reset"},{type:"custom",key:"undo"},{type:"custom",key:"redo"},{type:"custom",key:"split"},{type:"custom",key:"delete"},{type:"custom",key:"import"}]),g=fe(["snap"]),m=fe({video:{max:5},image:{max:3},audio:{max:3},subtitle:{max:2},text:{max:2},sticker:{max:2},filter:{max:1},effect:{max:2}}),v=fe({video:{backgroundColor:"linear-gradient(45deg, #667eea 0%, #764ba2 100%)",borderColor:"#000000",height:60,selected:{borderColor:"#ff6b6b",boxShadow:"0 0 0 3px rgba(255, 107, 107, 0.3)"}},audio:{backgroundColor:"linear-gradient(45deg, #f093fb 0%, #f5576c 100%)",height:36,selected:{borderColor:"#4ecdc4"}},image:{backgroundColor:"linear-gradient(45deg, #43e97b 0%, #38f9d7 100%)",borderColor:"#43e97b",height:60,selected:{borderColor:"#ff6b6b",boxShadow:"0 0 0 3px rgba(255, 107, 107, 0.3)"}}}),f=fe(),k=fe(),A=fe(!1);async function p(){if(k.value&&!A.value){A.value=!0;try{await k.value.exportVideo(),window.$message.success($t("workbench.production.editVideo.exportSuccess"))}catch(T){if(T.name==="AbortError")return;window.$message.error(T.message||$t("workbench.production.editVideo.exportFailed"))}finally{A.value=!1}}}function b(){const T=Array.from(l.selectedClipIds);if(T.length===0)return;const D=d.currentTime;T.forEach(P=>{const Q=l.getClip(P);!Q||D<=Q.startTime||D>=Q.endTime||l.splitClip(P,D)}),u.pushSnapshot($t("workbench.production.editVideo.splitClip"))}function w(){const T=Array.from(l.selectedClipIds);T.length!==0&&(l.removeClips(T),u.pushSnapshot($t("workbench.production.editVideo.deleteClip")))}async function O(T,D,P){try{if(T.type==="transition"){y(T,D,P);return}const Q=pDs(T.type,T),{track:M}=bDs(l,T.type,P,Q,D);if(!M)return;let B={id:Yre("clip-"),trackId:M.id,startTime:Ar(P),selected:!1};if(T.type==="video"){const R=T.sourceUrl||T.url||T.id;B={...B,type:"video",name:T.name,endTime:Ar(P+Q),sourceUrl:R,originalDuration:Q,trimStart:0,trimEnd:Q,playbackRate:1,thumbnails:T.thumbnails||[]},l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name})),(!T.thumbnails||T.thumbnails.length===0)&&wDs(l,B.id,R);return}else if(T.type==="image"){const R=T.sourceUrl||T.url||T.id;B={...B,type:"image",name:T.name,endTime:Ar(P+Q),sourceUrl:R,originalDuration:Q,trimStart:0,trimEnd:Q,playbackRate:1,thumbnails:T.thumbnail?[T.thumbnail]:[]},l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name}));return}else if(T.type==="audio"){const R=T.sourceUrl||T.url||T.id;B={...B,type:"audio",name:T.name,endTime:Ar(P+Q),sourceUrl:R,originalDuration:Q,trimStart:0,trimEnd:Q,playbackRate:1,volume:1,waveformData:T.waveformData||[]},l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name})),(!T.waveformData||T.waveformData.length===0)&&Xqn(l,B.id,R);return}else T.type==="subtitle"?B={...B,type:"subtitle",name:T.name,endTime:Ar(P+Q),text:$t("workbench.production.editVideo.sampleSubtitle")}:T.type==="text"?B={...B,type:"text",name:T.name,endTime:Ar(P+Q),text:$t("workbench.production.editVideo.customText")}:T.type==="sticker"?B={...B,type:"sticker",name:T.name,endTime:Ar(P+Q),sourceUrl:T.id}:T.type==="filter"?B={...B,type:"filter",name:T.name,endTime:Ar(P+Q),filterType:T.filterType||T.id,filterValue:T.filterValue??1}:T.type==="effect"&&(B={...B,type:"effect",name:T.name,endTime:Ar(P+Q),effectType:T.effectType||T.id,effectDuration:Q});l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name}))}catch(Q){alert(Q.message)}}function y(T,D,P){const Q=l.tracks.find(R=>R.id===D);if(!Q)return;const M=Q.clips.filter(R=>R.type!=="transition").sort((R,I)=>R.startTime-I.startTime);if(M.length===0){window.$message.warning($t("workbench.production.editVideo.transitionBetweenClips"));return}const B=yDs(M,P);if(!B){window.$message.warning($t("workbench.production.editVideo.transitionBetweenClips"));return}_(B.beforeClip.id,B.afterClip.id,T.subType)}function C(T,D){_(T,D,"fade")}function _(T,D,P="fade"){const Q=CDs(l,u,T,D,P);Q&&f.value&&f.value.emitTransitionAdded(Q.transitionClip,Q.beforeClip.id,Q.afterClip.id)}function S(T,D,P){window.$message.success($t("workbench.production.editVideo.transitionAdded",{name:T.name})),d.seekTo(T.startTime)}function L(){l.reset(),t.initialTracks.length>0&&t.initialTracks.forEach(T=>{l.addTrack(T)}),d.setDuration(30),d.seekTo(0),u.initialize(),ODs(l)}An(()=>{L(),r.value&&(s=new ResizeObserver(T=>{const D=T[0];D&&(o.width=D.contentRect.width,o.height=D.contentRect.height)}),s.observe(r.value))});const E={primaryColor:"#000",backgroundColor:"#ecedef",textColor:"#ffffff",borderColor:"#ecedef"};return Qa(()=>{s==null||s.disconnect()}),(T,D)=>{const P=_n("i-refresh"),Q=Si,M=_n("i-undo"),B=_n("i-redo"),R=_n("i-cutting-one"),I=_n("i-delete"),F=_n("i-export");return xe(),Ge("div",_Ds,[c(Ae(wGe),{class:"default-theme content",horizontal:"","push-other-panes":!1},{default:Oe(()=>[c(Ae(PT),{size:"60"},{default:Oe(()=>[c(Ae(wGe),{"push-other-panes":!1},{default:Oe(()=>[c(Ae(PT),{size:"20","min-size":"10"},{default:Oe(()=>[c(nTs,{"initial-video-items":e.initialVideoItems,"initial-media-items":e.initialMediaItems,"initial-audio-items":e.initialAudioItems,"initial-image-items":e.initialImageItems},null,8,["initial-video-items","initial-media-items","initial-audio-items","initial-image-items"])]),_:1}),c(Ae(PT),{size:"60","min-size":"20"},{default:Oe(()=>[ge("div",{ref_key:"previewWrapperRef",ref:r,class:"previewWrapper"},[c(JTs,{ref_key:"videoPreviewRef",ref:k,"canvas-width":e.canvasWidth,"canvas-height":e.canvasHeight,style:no(Ae(a))},null,8,["canvas-width","canvas-height","style"])],512)]),_:1}),c(Ae(PT),{size:"20","min-size":"10"},{default:Oe(()=>[c(vDs)]),_:1})]),_:1})]),_:1}),c(Ae(PT),{size:"40",class:"pr"},{default:Oe(()=>[c(Ae(e7s),{theme:E,class:"videoTrack",ref_key:"videoTrackRef",ref:f,"operation-buttons":Ae(h),"scale-config-buttons":Ae(g),"track-types":Ae(m),"clip-configs":Ae(v),"enable-main-track-mode":!0,"enable-cross-track-drag":!0,"enable-snap":!0,"default-scale":1,onAddTransition:C,onDropMedia:O,onTransitionAdded:S},{"custom-operation-reset":Oe(()=>[c(Q,{variant:"text",size:"small",onClick:D[0]||(D[0]=j=>{var W;return(W=Ae(f))==null?void 0:W.reset()}),title:T.$t("workbench.production.editVideo.reset")},{icon:Oe(()=>[c(P,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.reset")),1)]),_:1},8,["title"])]),"custom-operation-undo":Oe(()=>[c(Q,{variant:"text",size:"small",disabled:!Ae(u).canUndo,onClick:D[1]||(D[1]=j=>Ae(u).undo()),title:T.$t("workbench.production.editVideo.undo")},{icon:Oe(()=>[c(M,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.undo")),1)]),_:1},8,["disabled","title"])]),"custom-operation-redo":Oe(()=>[c(Q,{variant:"text",size:"small",disabled:!Ae(u).canRedo,onClick:D[2]||(D[2]=j=>Ae(u).redo()),title:T.$t("workbench.production.editVideo.redo")},{icon:Oe(()=>[c(B,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.redo")),1)]),_:1},8,["disabled","title"])]),"custom-operation-split":Oe(()=>[c(Q,{variant:"text",size:"small",disabled:Ae(l).selectedClipIds.size===0,onClick:b,title:T.$t("workbench.production.editVideo.split")},{icon:Oe(()=>[c(R,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.split")),1)]),_:1},8,["disabled","title"])]),"custom-operation-delete":Oe(()=>[c(Q,{variant:"text",size:"small",onClick:w,title:T.$t("workbench.production.editVideo.delete")},{icon:Oe(()=>[c(I,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.delete")),1)]),_:1},8,["title"])]),"scale-append":Oe(()=>[c(Q,{theme:"danger",onClick:p,loading:Ae(A),title:T.$t("workbench.production.editVideo.exportProject")},{icon:Oe(()=>[c(F,{size:"16",style:{"margin-right":"4px"}})]),default:Oe(()=>[Bt(" "+Pe(Ae(A)?T.$t("workbench.production.editVideo.rendering"):T.$t("workbench.production.editVideo.exportVideo")),1)]),_:1},8,["loading","title"])]),_:1},8,["operation-buttons","scale-config-buttons","track-types","clip-configs"])]),_:1})]),_:1})])}}}),LDs=oo(SDs,[["__scopeId","data-v-d1b2b252"]]),xDs={class:"closure"},EDs={class:"topMenu f ac"},TDs={class:"content"},QDs={key:0,class:"importLoadingMask"},DDs={class:"importLoadingContent"},BDs=Je({__name:"index",props:{visible:{type:Boolean,default:!1},visibleModifiers:{}},emits:["update:visible"],setup(e){const{project:t}=xs(ph()),n=Pf(e,"visible"),r=fe("preview"),o=fe(1920),s=fe(1080);An(()=>{var w;const b=(w=t.value)==null?void 0:w.videoRatio;b=="16:9"?(o.value=1920,s.value=1080):b=="1:1"?(o.value=1080,s.value=1080):b=="9:16"&&(o.value=1080,s.value=1920)});const a=fe([]),l=fe([]),d=fe([]),u=fe([]),h=fe(!1),g=fe(!1);An(()=>{f()});function m(b){var O;if(!b)return"unknown";const w=((O=b.split("?")[0].split(".").pop())==null?void 0:O.toLowerCase())??"";return["png","jpg","jpeg","gif","webp","bmp","svg"].includes(w)?"image":["mp4","webm","ogg","mov","avi","mkv"].includes(w)?"video":["mp3","wav","ogg","aac","flac","m4a"].includes(w)?"audio":"unknown"}function v(b){r.value=b,b=="editVideo"&&f()}function f(){var b;mn.post("/assets/getMaterialData",{projectId:(b=t.value)==null?void 0:b.id}).then(({data:w})=>{const O=w.data.filter(_=>m(_.filePath)==="video"),y=w.data.filter(_=>m(_.filePath)==="audio"),C=w.data.filter(_=>m(_.filePath)==="image");a.value=w.video.map(_=>({id:`video-${_.id}`,type:"video",name:$t("workbench.production.wb.storyboardVideoName",{storyboard:_.storyboard}),duration:_.duration||0,icon:"🎬",color:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",url:_.filePath,selected:_.selected||!1})),l.value=O.map(_=>({id:`video-${_.id}`,type:"video",name:_.name,duration:_.duration||0,icon:"🎥",color:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",url:_.filePath,loading:!0})),d.value=y.map(_=>({id:`audio-${_.id}`,type:"audio",name:_.name,duration:_.duration||0,url:_.filePath,loading:!0})),u.value=C.map(_=>({id:`image-${_.id}`,type:"image",name:_.name,duration:_.duration||5,icon:"🖼️",color:"linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)",url:_.filePath,loading:!0}))})}function k(){const b=(w,O,y,C=!1)=>({id:Yre("track-"),type:w,name:O,visible:!0,locked:!1,clips:[],order:y,...C&&{isMain:C}});return[b("video","主轨道",0,!0),b("audio","音频",2),b("subtitle","字幕",3),b("filter","滤镜",4)]}const A=k();function p(b){}return(b,w)=>{const O=_n("i-close-small"),y=_n("i-blackboard"),C=el,_=_n("i-playback-progress"),S=_n("i-editing"),L=Wc,E=gc;return xe(),Ut(E,{body:"String",header:!1,footer:!1,closeBtn:!1,visible:n.value,"onUpdate:visible":w[5]||(w[5]=T=>n.value=T),attach:"body",placement:"center",mode:"full-screen",dialogClassName:"noFooter",class:"fullscreenDialog"},{default:Oe(()=>[ge("div",xDs,[c(O,{theme:"outline",size:"24",fill:"#4a4a4a",onClick:w[0]||(w[0]=T=>n.value=!1)})]),ge("div",EDs,[c(C,{content:b.$t("workbench.production.wb.quickPreview"),placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:Eo(["item fc c",{active:Ae(r)==="preview"}]),onClick:w[1]||(w[1]=T=>v("preview"))},[c(y,{class:"icon"})],2)]),_:1},8,["content"]),c(C,{content:b.$t("workbench.production.wb.videoGeneration"),placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:Eo(["item fc c",{active:Ae(r)==="generate"}]),onClick:w[2]||(w[2]=T=>v("generate"))},[c(_,{class:"icon"})],2)]),_:1},8,["content"]),c(C,{content:b.$t("workbench.production.wb.videoEditing"),placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:Eo(["item fc c",{active:Ae(r)==="editVideo"}]),onClick:w[3]||(w[3]=T=>v("editVideo"))},[c(S,{class:"icon"})],2)]),_:1},8,["content"])]),ge("div",TDs,[Ae(r)==="preview"?(xe(),Ut(Rxs,{key:0})):nn("",!0),Ae(r)==="generate"?(xe(),Ut(P5s,{key:1,onImportVideo:p,modelValue:Ae(h),"onUpdate:modelValue":w[4]||(w[4]=T=>Fn(h)?h.value=T:null)},null,8,["modelValue"])):nn("",!0),Ae(r)==="editVideo"?(xe(),Ut(LDs,{key:2,"initial-tracks":Ae(A),"initial-video-items":Ae(a),"initial-media-items":Ae(l),"initial-audio-items":Ae(d),"initial-image-items":Ae(u),"canvas-width":Ae(o),"canvas-height":Ae(s),ref:"editVideoRef"},null,8,["initial-tracks","initial-video-items","initial-media-items","initial-audio-items","initial-image-items","canvas-width","canvas-height"])):nn("",!0)]),Ae(g)?(xe(),Ge("div",QDs,[ge("div",DDs,[c(L,{size:"large",text:b.$t("workbench.production.wb.importingLoading")},null,8,["text"])])])):nn("",!0)]),_:1},8,["visible"])}}}),RDs=oo(BDs,[["__scopeId","data-v-54425e7f"]]),IDs={class:"titleBar dragHandle pr"},MDs={class:"title"},PDs={class:"videoPreview"},FDs={class:"playButton"},NDs=Je({__name:"workbench",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=fe(!1),n=e,r=Pf(e,"modelValue");return(o,s)=>{const a=Zh,l=_n("i-video"),d=km;return xe(),Ut(d,{class:"workbench",onClick:s[1]||(s[1]=u=>t.value=!Ae(t))},{default:Oe(()=>{var u,h;return[ge("div",IDs,[ge("div",MDs,Pe(o.$t("workbench.production.node.workbench.title")),1),c(Ae(mm),{id:n.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",PDs,[ge("div",{class:"videoPlaceholder",style:no({background:(u=r.value)==null?void 0:u.gradient})},[(h=r.value)!=null&&h.cover?(xe(),Ut(a,{key:0,src:r.value.cover,fit:"cover",class:"videoCover"},null,8,["src"])):nn("",!0),ge("div",FDs,[c(l,{theme:"outline",size:"48"})])],4)]),Ae(t)?(xe(),Ut(RDs,{key:0,visible:Ae(t),"onUpdate:visible":s[0]||(s[0]=g=>Fn(t)?t.value=g:null)},null,8,["visible"])):nn("",!0)]}),_:1})}}}),UDs=oo(NDs,[["__scopeId","data-v-fa984f98"]]);var nve={exports:{}};/** + `;Ye&&(We+=`background-color: ${Ye};`);try{const et=await S5r(me,We),st=new NSe(et);if(await st.ready,Z=new H$(st),he=et.width,pe=et.height,!te.rect||te.rect.w<=0||te.rect.h<=0){const Me=(b.value-he)/2,Se=w.value-pe-80;Z.rect.x=Me,Z.rect.y=Se,Z.rect.w=he,Z.rect.h=pe}Z.time.offset=z.startTime*1e6,Z.time.duration=(z.endTime-z.startTime)*1e6}catch{return null}}if(!Z)return null;if(te.rect&&te.rect.w>0&&te.rect.h>0)Z.rect.x=te.rect.x,Z.rect.y=te.rect.y,Z.rect.w=te.rect.w,Z.rect.h=te.rect.h,Z.rect.angle=te.rect.angle||0,te.rect.fixedAspectRatio!==void 0&&(Z.rect.fixedAspectRatio=te.rect.fixedAspectRatio),te.rect.fixedScaleCenter!==void 0&&(Z.rect.fixedScaleCenter=te.rect.fixedScaleCenter);else if(he>0&&pe>0&&z.type!=="subtitle"&&z.type!=="text"){const ke=q(he,pe);Z.rect.x=ke.x,Z.rect.y=ke.y,Z.rect.w=ke.w,Z.rect.h=ke.h}te.opacity!==void 0&&(Z.opacity=te.opacity),te.visible!==void 0&&(Z.visible=te.visible),te.flip&&(Z.flip=te.flip);const Qe=Y.type==="subtitle"||Y.type==="text";return te.zIndex!==void 0?Z.zIndex=Qe?te.zIndex+1e3:te.zIndex:Z.zIndex=I(Y.order,Qe),_.set(z.id,{trackId:Y.id,trackOrder:Y.order}),Z}catch{return null}}async function ue(){if(!u)return;if(A){p=!0;return}A=!0,W();const z=[];for(const te of a.tracks)if(te.visible!==!1)for(const Z of te.clips)["video","audio","image","sticker","subtitle","text"].includes(Z.type)&&z.push({clip:Z,track:te});const Y=new Set(z.map(te=>te.clip.id));for(const[te,Z]of O)if(!Y.has(te)){const he=y.get(te);he&&(he(),y.delete(te)),u.removeSprite(Z),O.delete(te),C.delete(te),_.delete(te)}for(const{clip:te,track:Z}of z){const he=te,pe=O.get(te.id);if(pe&&J(te)&&pe){const ke=y.get(te.id);ke&&(ke(),y.delete(te.id)),u.removeSprite(pe),O.delete(te.id),C.delete(te.id),_.delete(te.id)}const Qe=O.get(te.id);if(Qe){if(!f){k=!0,Qe.time.offset=te.startTime*1e6,Qe.time.duration=(te.endTime-te.startTime)*1e6,he.rect&&he.rect.w>0&&he.rect.h>0&&(Qe.rect.x=he.rect.x,Qe.rect.y=he.rect.y,Qe.rect.w=he.rect.w,Qe.rect.h=he.rect.h,Qe.rect.angle=he.rect.angle||0),he.opacity!==void 0&&(Qe.opacity=he.opacity),he.visible!==void 0&&(Qe.visible=he.visible),he.flip!==void 0&&(Qe.flip=he.flip);const ke=_.get(te.id);if(ke&&ke.trackOrder!==Z.order){const me=he.zIndex!==void 0?he.zIndex:I(Z.order);Qe.zIndex=me,_.set(te.id,{trackId:Z.id,trackOrder:Z.order})}else he.zIndex!==void 0&&(Qe.zIndex=he.zIndex);setTimeout(()=>{k=!1},0)}}else{const ke=await le(te,Z);ke&&(await u.addSprite(ke),O.set(te.id,ke),C.set(te.id,re(te)),se(te.id,ke))}}h.value=O.size>0,D();const ie=Q();ie>0&&(v.value=ie,T.duration=ie),A=!1,p&&(p=!1,await ue())}An(async()=>{if(d.value)try{u=new ATs(d.value,{bgColor:"#000000",width:b.value,height:w.value}),u.on("timeupdate",z=>{m.value=z,T.currentTime=z,f=!0,s.seekTo(z/1e6),setTimeout(()=>{f=!1},0)}),u.on("playing",()=>{g.value=!0,T.isPlaying=!0,f=!0,s.play(),o("play"),setTimeout(()=>{f=!1},0)}),u.on("paused",()=>{g.value=!1,T.isPlaying=!1,f=!0,s.pause(),o("pause"),setTimeout(()=>{f=!1},0)}),u.on("activeSpriteChange",z=>{if(z){for(const[Y,ie]of O)if(ie===z){oe(Y,z),a.selectClip(Y);break}}else a.clearSelection()}),T.initialized=!0,await ue(),O.size>0&&u.previewFrame(0)}catch{}}),pt(()=>a.tracks,async()=>{for(const z of $.values())z.close();$.clear(),await ue(),u&&O.size>0&&!g.value&&u.previewFrame(m.value)},{deep:!0}),pt(()=>s.currentTime,z=>{if(f)return;const Y=z*1e6;m.value=Y,u&&!g.value&&(k=!0,u.previewFrame(Y),setTimeout(()=>{k=!1},0))}),pt(()=>s.isPlaying,z=>{if(!f&&u)if(z&&!g.value){const Y=Q();if(Y<=0)return;m.value>=Y-1e3&&(m.value=0),k=!0,u.play({start:m.value,end:Y,playbackRate:l.value}),g.value=!0,setTimeout(()=>{k=!1},0)}else!z&&g.value&&(k=!0,u.pause(),g.value=!1,setTimeout(()=>{k=!1},0))}),pt(()=>s.duration,z=>{v.value=z*1e6,T.duration=z*1e6}),Qa(()=>{for(const z of y.values())z();y.clear(),O.clear(),C.clear(),_.clear(),S.clear(),L.clear();for(const z of $.values())z.close();$.clear(),E.clear(),u&&(u.destroy(),u=null)});function ee(z){const Y=z.target,ie=parseFloat(Y.value),te=ie*1e6;m.value=te,f=!0,s.seekTo(ie),setTimeout(()=>{f=!1},0),u&&u.previewFrame(te)}async function de(){if(!u)throw new Error($t("workbench.production.editVideo.avCanvasNotInit"));if(O.size===0)throw new Error($t("workbench.production.editVideo.noExportContent"));g.value&&(u.pause(),g.value=!1,s.pause());const z=await u.createCombinator(),Y=[],ie=z.output().getReader();for(;;){const{done:pe,value:Ce}=await ie.read();if(pe)break;Y.push(Ce)}const te=new Blob(Y,{type:"video/mp4"}),Z=URL.createObjectURL(te),he=document.createElement("a");he.href=Z,he.download=`WebAV-export-${Date.now()}.mp4`,he.click(),URL.revokeObjectURL(Z)}return t({avCanvas:X(()=>u),exportVideo:de,addSprite:async z=>{u&&(await u.addSprite(z),h.value=!0)},removeSprite:z=>{u&&u.removeSprite(z)}}),(z,Y)=>{const ie=_n("i-film"),te=_n("i-play");return xe(),Ge("div",VTs,[ge("div",{ref_key:"canvasContainer",ref:d,class:"previewScreen"},[Ae(h)?nn("",!0):(xe(),Ge("div",zTs,[ge("div",HTs,[c(ie,{theme:"outline",size:"48",fill:"#999"})]),ge("div",$Ts,Pe(z.$t("workbench.production.editVideo.videoPreviewArea")),1),ge("div",XTs,Pe(Ae(WTs)(Ae(M))),1)])),Ae(g)&&!Ae(h)?(xe(),Ge("div",GTs,[ge("div",YTs,[c(te,{theme:"outline",size:"36",fill:"#000000"})])])):nn("",!0)],512),ge("div",ZTs,[ge("input",{type:"range",min:"0",max:Ae(B),value:Ae(M),step:"0.01",class:"progressSlider",onInput:ee},null,40,qTs)])])}}}),JTs=oo(KTs,[["__scopeId","data-v-2b901aa2"]]),eQs={class:"propertyPanel"},tQs={class:"panelHeader"},nQs={class:"panelTitle"},iQs={class:"panelContent"},rQs={key:0,class:"emptyState"},oQs={class:"emptyIconWrapper"},sQs={class:"emptyText"},aQs={key:1,class:"properties"},lQs={class:"sectionCard"},cQs={class:"sectionHeader"},dQs={class:"sectionIconBadge"},uQs={class:"sectionLabel"},hQs={class:"sectionBody"},fQs={class:"propRow"},gQs={class:"propLabel"},mQs={class:"propRowInline"},kQs={class:"propField"},vQs={class:"propLabel"},AQs={class:"propField"},pQs={class:"propLabel"},bQs={class:"propRowInline durationRow"},wQs={class:"durationLabel"},OQs={key:0,class:"sectionCard"},yQs={class:"sectionHeader"},CQs={class:"sectionIconBadge"},_Qs={class:"sectionLabel"},SQs={class:"sectionBody"},LQs={class:"propRow"},xQs={class:"propRowHead"},EQs={class:"propLabel"},TQs={class:"propValueText"},QQs={class:"propRow"},DQs={class:"propRowHead"},BQs={class:"propLabel"},RQs={class:"propValueText"},IQs={class:"propRow"},MQs={class:"propLabel"},PQs={key:1,class:"sectionCard"},FQs={class:"sectionHeader"},NQs={class:"sectionIconBadge"},UQs={class:"sectionLabel"},jQs={class:"sectionBody"},WQs={class:"propRow"},VQs={class:"propRowHead"},zQs={class:"propLabel"},HQs={class:"propValueText"},$Qs={class:"propRowInline"},XQs={class:"propField"},GQs={class:"propLabel"},YQs={class:"propField"},ZQs={class:"propLabel"},qQs={key:2,class:"sectionCard"},KQs={class:"sectionHeader"},JQs={class:"sectionIconBadge"},eDs={class:"sectionLabel"},tDs={class:"sectionBody"},nDs={class:"propRow"},iDs={class:"propLabel"},rDs={class:"propRow"},oDs={class:"propLabel"},sDs={key:3,class:"sectionCard"},aDs={class:"sectionHeader"},lDs={class:"sectionIconBadge"},cDs={class:"sectionLabel"},dDs={class:"sectionBody"},uDs={class:"propRow"},hDs={class:"propLabel"},fDs={class:"propRow"},gDs={class:"propLabel"},mDs={class:"actions"},kDs=Je({__name:"propertyPanel",setup(e){const t=G0(),n=TE(),r=X(()=>{const O=t.selectedClips;return O.length===1?O[0]:null}),o=fe(""),s=fe(100),a=fe(100),l=fe(1),d=fe(100),u=fe(0),h=fe(0),g=fe("fade"),m=fe(1),v=fe(""),f=fe(24);pt(r,O=>{O&&(o.value=O.name||"",O.type==="video"&&(s.value=Math.round((O.opacity??1)*100),a.value=Math.round((O.volume??1)*100),l.value=O.playbackRate??1),O.type==="audio"&&(d.value=Math.round((O.volume??1)*100),u.value=O.fadeIn??0,h.value=O.fadeOut??0),O.type==="transition"&&(g.value=O.transitionType??"fade",m.value=O.transitionDuration??1),O.type==="subtitle"&&(v.value=O.text??"",f.value=O.fontSize??24))},{immediate:!0});function k(O,y){r.value&&(t.updateClip(r.value.id,{[O]:y}),n.pushSnapshot($t("workbench.production.editVideo.updateClip",{key:O})))}function A(O){if(!r.value)return;if(O<.1||O>10){console.warn($t("workbench.production.editVideo.playbackRateRange"));return}const y=t.setClipPlaybackRate(r.value.id,O,{allowShrink:!0,allowExpand:!0,handleCollision:!0,keepStartTime:!0});y.success?n.pushSnapshot($t("workbench.production.editVideo.updatePlaybackRate",{rate:O})):console.warn($t("workbench.production.editVideo.updatePlaybackRateFailed"),y.message)}function p(){if(!r.value||r.value.type!=="transition")return;const O=r.value;O.transitionDuration;const y=m.value,C=(O.startTime+O.endTime)/2;t.updateClip(O.id,{startTime:C-y/2,endTime:C+y/2,transitionDuration:y}),n.pushSnapshot($t("workbench.production.editVideo.updateTransitionDuration"))}function b(){if(!r.value)return;const O=co.confirm({header:$t("workbench.production.editVideo.deleteConfirm"),body:$t("workbench.production.editVideo.deleteClipConfirm"),onConfirm:()=>{t.removeClips([r.value.id]),n.pushSnapshot($t("workbench.production.editVideo.deleteClip")),O.destroy()},onClose:()=>O.destroy()})}function w(){if(!r.value)return;const O=r.value,y=t.tracks.find(_=>_.id===O.trackId);if(!y)return;const C={...O,id:`clip-${Date.now()}`,startTime:O.endTime,endTime:O.endTime+(O.endTime-O.startTime),selected:!1};t.addClip(y.id,C),n.pushSnapshot($t("workbench.production.editVideo.duplicateClip"))}return(O,y)=>{const C=_n("i-inbox"),_=Sg,S=Wu,L=Lz,E=_n("i-video"),T=MAi,D=_n("i-music"),P=_n("i-exchange"),Q=uL,M=pA,B=_n("i-editor"),R=c2,I=_n("i-copy"),F=Si,j=_n("i-delete");return xe(),Ge("div",eQs,[ge("div",tQs,[ge("h3",nQs,Pe(O.$t("workbench.production.editVideo.propertyPanel")),1)]),ge("div",iQs,[r.value?(xe(),Ge("div",aQs,[ge("div",lQs,[ge("div",cQs,[ge("div",dQs,[(xe(),Ut(Bd(Ae(UTs)(r.value)),{theme:"outline",size:"16"}))]),ge("span",uQs,Pe(O.$t("workbench.production.editVideo.basicInfo")),1),c(_,{size:"small",theme:"primary",variant:"light"},{default:Oe(()=>[Bt(Pe(Ae(jTs)(r.value.type)),1)]),_:1})]),ge("div",hQs,[ge("div",fQs,[ge("label",gQs,Pe(O.$t("workbench.production.editVideo.name")),1),c(S,{modelValue:o.value,"onUpdate:modelValue":y[0]||(y[0]=W=>o.value=W),size:"small",placeholder:O.$t("workbench.production.editVideo.clipNamePlaceholder"),onChange:y[1]||(y[1]=W=>k("name",o.value))},null,8,["modelValue","placeholder"])]),ge("div",mQs,[ge("div",kQs,[ge("label",vQs,Pe(O.$t("workbench.production.editVideo.startTime")),1),c(L,{value:Number(r.value.startTime.toFixed(2)),size:"small","decimal-places":2,step:.01,theme:"normal",suffix:"s",onChange:y[2]||(y[2]=W=>k("startTime",Number(W)))},null,8,["value"])]),ge("div",AQs,[ge("label",pQs,Pe(O.$t("workbench.production.editVideo.endTime")),1),c(L,{value:Number(r.value.endTime.toFixed(2)),size:"small","decimal-places":2,step:.01,theme:"normal",suffix:"s",onChange:y[3]||(y[3]=W=>k("endTime",Number(W)))},null,8,["value"])])]),ge("div",bQs,[ge("span",wQs,Pe(O.$t("workbench.production.editVideo.totalDuration")),1),c(_,{size:"small",theme:"default",variant:"outline"},{default:Oe(()=>[Bt(Pe((r.value.endTime-r.value.startTime).toFixed(2))+"s",1)]),_:1})])])]),r.value.type==="video"?(xe(),Ge("div",OQs,[ge("div",yQs,[ge("div",CQs,[c(E,{theme:"outline",size:"16"})]),ge("span",_Qs,Pe(O.$t("workbench.production.editVideo.videoProperties")),1)]),ge("div",SQs,[ge("div",LQs,[ge("div",xQs,[ge("label",EQs,Pe(O.$t("workbench.production.editVideo.opacity")),1),ge("span",TQs,Pe(Math.round(s.value))+"%",1)]),c(T,{modelValue:s.value,"onUpdate:modelValue":y[4]||(y[4]=W=>s.value=W),min:0,max:100,step:1,onChange:y[5]||(y[5]=W=>k("opacity",Math.round(s.value)/100))},null,8,["modelValue"])]),ge("div",QQs,[ge("div",DQs,[ge("label",BQs,Pe(O.$t("workbench.production.editVideo.volume")),1),ge("span",RQs,Pe(Math.round(a.value))+"%",1)]),c(T,{modelValue:a.value,"onUpdate:modelValue":y[6]||(y[6]=W=>a.value=W),min:0,max:200,step:1,onChange:y[7]||(y[7]=W=>k("volume",Math.round(a.value)/100))},null,8,["modelValue"])]),ge("div",IQs,[ge("label",MQs,Pe(O.$t("workbench.production.editVideo.playbackSpeed")),1),c(L,{modelValue:l.value,"onUpdate:modelValue":y[8]||(y[8]=W=>l.value=W),size:"small",min:.1,max:10,step:.1,"decimal-places":1,theme:"normal",suffix:"x",onChange:y[9]||(y[9]=W=>A(Number(W)))},null,8,["modelValue"])])])])):nn("",!0),r.value.type==="audio"?(xe(),Ge("div",PQs,[ge("div",FQs,[ge("div",NQs,[c(D,{theme:"outline",size:"16"})]),ge("span",UQs,Pe(O.$t("workbench.production.editVideo.audioProperties")),1)]),ge("div",jQs,[ge("div",WQs,[ge("div",VQs,[ge("label",zQs,Pe(O.$t("workbench.production.editVideo.volume")),1),ge("span",HQs,Pe(Math.round(d.value))+"%",1)]),c(T,{modelValue:d.value,"onUpdate:modelValue":y[10]||(y[10]=W=>d.value=W),min:0,max:200,step:1,onChange:y[11]||(y[11]=W=>k("volume",Math.round(d.value)/100))},null,8,["modelValue"])]),ge("div",$Qs,[ge("div",XQs,[ge("label",GQs,Pe(O.$t("workbench.production.editVideo.fadeIn")),1),c(L,{modelValue:u.value,"onUpdate:modelValue":y[12]||(y[12]=W=>u.value=W),size:"small",min:0,step:.1,"decimal-places":1,theme:"normal",suffix:"s",onChange:y[13]||(y[13]=W=>k("fadeIn",u.value))},null,8,["modelValue"])]),ge("div",YQs,[ge("label",ZQs,Pe(O.$t("workbench.production.editVideo.fadeOut")),1),c(L,{modelValue:h.value,"onUpdate:modelValue":y[14]||(y[14]=W=>h.value=W),size:"small",min:0,step:.1,"decimal-places":1,theme:"normal",suffix:"s",onChange:y[15]||(y[15]=W=>k("fadeOut",h.value))},null,8,["modelValue"])])])])])):nn("",!0),r.value.type==="transition"?(xe(),Ge("div",qQs,[ge("div",KQs,[ge("div",JQs,[c(P,{theme:"outline",size:"16"})]),ge("span",eDs,Pe(O.$t("workbench.production.editVideo.transitionProperties")),1)]),ge("div",tDs,[ge("div",nDs,[ge("label",iDs,Pe(O.$t("workbench.production.editVideo.transitionType")),1),c(M,{modelValue:g.value,"onUpdate:modelValue":y[16]||(y[16]=W=>g.value=W),size:"small",onChange:y[17]||(y[17]=W=>k("transitionType",g.value))},{default:Oe(()=>[c(Q,{value:"fade",label:O.$t("workbench.production.editVideo.transFade")},null,8,["label"]),c(Q,{value:"slide",label:O.$t("workbench.production.editVideo.transSlide")},null,8,["label"]),c(Q,{value:"wipe",label:O.$t("workbench.production.editVideo.transWipe")},null,8,["label"]),c(Q,{value:"dissolve",label:O.$t("workbench.production.editVideo.transDissolve")},null,8,["label"]),c(Q,{value:"zoom",label:O.$t("workbench.production.editVideo.transZoom")},null,8,["label"]),c(Q,{value:"rotate",label:O.$t("workbench.production.editVideo.transRotate")},null,8,["label"])]),_:1},8,["modelValue"])]),ge("div",rDs,[ge("label",oDs,Pe(O.$t("workbench.production.editVideo.transitionDuration")),1),c(L,{modelValue:m.value,"onUpdate:modelValue":y[18]||(y[18]=W=>m.value=W),size:"small",min:.1,max:5,step:.1,"decimal-places":1,theme:"normal",suffix:"s",onChange:p},null,8,["modelValue"])])])])):nn("",!0),r.value.type==="subtitle"?(xe(),Ge("div",sDs,[ge("div",aDs,[ge("div",lDs,[c(B,{theme:"outline",size:"16"})]),ge("span",cDs,Pe(O.$t("workbench.production.editVideo.subtitleProperties")),1)]),ge("div",dDs,[ge("div",uDs,[ge("label",hDs,Pe(O.$t("workbench.production.editVideo.textContent")),1),c(R,{modelValue:v.value,"onUpdate:modelValue":y[19]||(y[19]=W=>v.value=W),autosize:{minRows:3,maxRows:6},onChange:y[20]||(y[20]=W=>k("text",v.value))},null,8,["modelValue"])]),ge("div",fDs,[ge("label",gDs,Pe(O.$t("workbench.production.editVideo.fontSize")),1),c(L,{modelValue:f.value,"onUpdate:modelValue":y[21]||(y[21]=W=>f.value=W),size:"small",min:12,max:72,theme:"normal",suffix:"px",onChange:y[22]||(y[22]=W=>k("fontSize",f.value))},null,8,["modelValue"])])])])):nn("",!0),ge("div",mDs,[c(F,{theme:"default",variant:"outline",block:"",onClick:w},{icon:Oe(()=>[c(I,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(O.$t("workbench.production.editVideo.copy")),1)]),_:1}),c(F,{theme:"danger",variant:"text",block:"",onClick:b},{icon:Oe(()=>[c(j,{theme:"outline",size:"16"})]),default:Oe(()=>[Bt(" "+Pe(O.$t("workbench.production.editVideo.delete")),1)]),_:1})])])):(xe(),Ge("div",rQs,[ge("div",oQs,[c(C,{theme:"outline",size:"32",fill:"#999"})]),ge("div",sQs,Pe(O.$t("workbench.production.editVideo.selectClip")),1)]))])])}}}),vDs=oo(kDs,[["__scopeId","data-v-5eea45cc"]]),c2n={video:"workbench.production.track.video",image:"workbench.production.track.image",audio:"workbench.production.track.audio",subtitle:"workbench.production.track.subtitle",text:"workbench.production.track.text",sticker:"workbench.production.track.sticker",filter:"workbench.production.track.filter",effect:"workbench.production.track.effect"},ADs={video:5,image:5,audio:30,subtitle:3,text:3,sticker:3,filter:3,effect:3,transition:3};function pDs(e,t){return t.duration&&t.duration>0?t.duration:ADs[e]||3}function d2n(e,t,n){const r=t+n;for(const o of e.clips)if(o.type!=="transition"&&to.startTime)return!1;return!0}function bDs(e,t,n,r,o){if(o){const d=e.tracks.find(u=>u.id===o);if(d&&d.type===t&&d2n(d,n,r))return{track:d,isNew:!1}}const s=e.sortedTracks.filter(d=>d.type===t&&!d.isMain);for(const d of s)if(d2n(d,n,r))return{track:d,isNew:!1};const a=e.getTrackCountByType(t),l={id:Yre("track-"),type:t,name:`${c2n[t]?$t(c2n[t]):t}${a+1}`,visible:!0,locked:!1,clips:[],order:e.tracks.length};return e.addTrack(l),{track:l,isNew:!0}}async function wDs(e,t,n){try{const r=await tve(n,{count:20,width:120}),o=e.getClip(t);o&&o.type==="video"&&(o.thumbnails=r.thumbnails,r.duration>0&&o.endTime-o.startTime<=0&&(o.endTime=o.startTime+r.duration,o.originalDuration=r.duration,o.trimEnd=r.duration))}catch(r){console.error("Failed to load video thumbnails:",r)}}async function Xqn(e,t,n){try{const o=n.match(/\.(mp4|webm|mov|avi)$/i)?await Wqn(n,{samples:500}):await aat(n,{samples:500}),s=e.getClip(t);s&&s.type==="audio"&&(s.waveformData=o.waveformData,o.duration>0&&(s.originalDuration=o.duration,s.endTime-s.startTime<=0&&(s.endTime=s.startTime+o.duration,s.trimEnd=o.duration),s.trimEnd>o.duration&&(s.trimEnd=o.duration)))}catch(r){console.error("Failed to load audio waveform:",r)}}async function ODs(e){for(const t of e.tracks)for(const n of t.clips)if(n.type==="audio"){const r=n;(!r.waveformData||r.waveformData.length===0)&&await Xqn(e,r.id,r.sourceUrl)}}const u2n={fade:"workbench.production.transition.fade",slide:"workbench.production.transition.slide",wipe:"workbench.production.transition.wipe",dissolve:"workbench.production.transition.dissolve",zoom:"workbench.production.transition.zoom",rotate:"workbench.production.transition.rotate"};function yDs(e,t){const n=e.find(r=>t>=r.startTime&&t<=r.endTime);if(n){const r=(n.startTime+n.endTime)/2,o=e.indexOf(n);if(t0){const s=e[o-1];if(Math.abs(s.endTime-n.startTime)<.1)return{beforeClip:s,afterClip:n}}}else if(o=t&&Math.abs(e[r].endTime-e[r+1].startTime)<.1)return{beforeClip:e[r],afterClip:e[r+1]};return null}function CDs(e,t,n,r,o="fade"){const s=e.getClip(n),a=e.getClip(r);if(!s||!a)return console.error("未找到clip"),null;const l=e.tracks.find(g=>g.id===s.trackId);if(!l)return null;if(l.clips.some(g=>g.type==="transition"&&g.startTimes.endTime))return window.$message.warning($t("workbench.production.editVideo.transitionExists")),null;const u=1,h={id:Yre("clip-"),trackId:s.trackId,type:"transition",startTime:Ar(s.endTime-u/2),endTime:Ar(a.startTime+u/2),selected:!1,transitionType:o,transitionDuration:Ar(u),name:u2n[o]?$t(u2n[o]):o};return e.addClip(s.trackId,h),t.pushSnapshot($t("workbench.production.editVideo.addTransition")),e.clearSelection(),{transitionClip:h,beforeClip:s,afterClip:a}}const _Ds={class:"editVideo"},SDs=Je({__name:"index",props:{initialTracks:{default:()=>[]},initialVideoItems:{},initialMediaItems:{default:()=>[]},initialAudioItems:{default:()=>[]},initialImageItems:{default:()=>[]},canvasWidth:{default:1920},canvasHeight:{default:1080}},setup(e){const t=e,n=X(()=>t.canvasWidth/t.canvasHeight),r=fe(),o=hs({width:0,height:0});let s=null;const a=X(()=>{const{width:T,height:D}=o;if(T<=0||D<=0)return{};const P=n.value;return T/D>P?{height:D+"px",width:Math.floor(D*P)+"px"}:{width:T+"px",height:Math.floor(T/P)+"px"}}),l=G0(),d=ML(),u=TE(),h=fe([{type:"custom",key:"reset"},{type:"custom",key:"undo"},{type:"custom",key:"redo"},{type:"custom",key:"split"},{type:"custom",key:"delete"},{type:"custom",key:"import"}]),g=fe(["snap"]),m=fe({video:{max:5},image:{max:3},audio:{max:3},subtitle:{max:2},text:{max:2},sticker:{max:2},filter:{max:1},effect:{max:2}}),v=fe({video:{backgroundColor:"linear-gradient(45deg, #667eea 0%, #764ba2 100%)",borderColor:"#000000",height:60,selected:{borderColor:"#ff6b6b",boxShadow:"0 0 0 3px rgba(255, 107, 107, 0.3)"}},audio:{backgroundColor:"linear-gradient(45deg, #f093fb 0%, #f5576c 100%)",height:36,selected:{borderColor:"#4ecdc4"}},image:{backgroundColor:"linear-gradient(45deg, #43e97b 0%, #38f9d7 100%)",borderColor:"#43e97b",height:60,selected:{borderColor:"#ff6b6b",boxShadow:"0 0 0 3px rgba(255, 107, 107, 0.3)"}}}),f=fe(),k=fe(),A=fe(!1);async function p(){if(k.value&&!A.value){A.value=!0;try{await k.value.exportVideo(),window.$message.success($t("workbench.production.editVideo.exportSuccess"))}catch(T){if(T.name==="AbortError")return;window.$message.error(T.message||$t("workbench.production.editVideo.exportFailed"))}finally{A.value=!1}}}function b(){const T=Array.from(l.selectedClipIds);if(T.length===0)return;const D=d.currentTime;T.forEach(P=>{const Q=l.getClip(P);!Q||D<=Q.startTime||D>=Q.endTime||l.splitClip(P,D)}),u.pushSnapshot($t("workbench.production.editVideo.splitClip"))}function w(){const T=Array.from(l.selectedClipIds);T.length!==0&&(l.removeClips(T),u.pushSnapshot($t("workbench.production.editVideo.deleteClip")))}async function O(T,D,P){try{if(T.type==="transition"){y(T,D,P);return}const Q=pDs(T.type,T),{track:M}=bDs(l,T.type,P,Q,D);if(!M)return;let B={id:Yre("clip-"),trackId:M.id,startTime:Ar(P),selected:!1};if(T.type==="video"){const R=T.sourceUrl||T.url||T.id;B={...B,type:"video",name:T.name,endTime:Ar(P+Q),sourceUrl:R,originalDuration:Q,trimStart:0,trimEnd:Q,playbackRate:1,thumbnails:T.thumbnails||[]},l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name})),(!T.thumbnails||T.thumbnails.length===0)&&wDs(l,B.id,R);return}else if(T.type==="image"){const R=T.sourceUrl||T.url||T.id;B={...B,type:"image",name:T.name,endTime:Ar(P+Q),sourceUrl:R,originalDuration:Q,trimStart:0,trimEnd:Q,playbackRate:1,thumbnails:T.thumbnail?[T.thumbnail]:[]},l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name}));return}else if(T.type==="audio"){const R=T.sourceUrl||T.url||T.id;B={...B,type:"audio",name:T.name,endTime:Ar(P+Q),sourceUrl:R,originalDuration:Q,trimStart:0,trimEnd:Q,playbackRate:1,volume:1,waveformData:T.waveformData||[]},l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name})),(!T.waveformData||T.waveformData.length===0)&&Xqn(l,B.id,R);return}else T.type==="subtitle"?B={...B,type:"subtitle",name:T.name,endTime:Ar(P+Q),text:$t("workbench.production.editVideo.sampleSubtitle")}:T.type==="text"?B={...B,type:"text",name:T.name,endTime:Ar(P+Q),text:$t("workbench.production.editVideo.customText")}:T.type==="sticker"?B={...B,type:"sticker",name:T.name,endTime:Ar(P+Q),sourceUrl:T.id}:T.type==="filter"?B={...B,type:"filter",name:T.name,endTime:Ar(P+Q),filterType:T.filterType||T.id,filterValue:T.filterValue??1}:T.type==="effect"&&(B={...B,type:"effect",name:T.name,endTime:Ar(P+Q),effectType:T.effectType||T.id,effectDuration:Q});l.addClip(M.id,B),u.pushSnapshot($t("workbench.production.editVideo.addClip",{name:T.name}))}catch(Q){alert(Q.message)}}function y(T,D,P){const Q=l.tracks.find(R=>R.id===D);if(!Q)return;const M=Q.clips.filter(R=>R.type!=="transition").sort((R,I)=>R.startTime-I.startTime);if(M.length===0){window.$message.warning($t("workbench.production.editVideo.transitionBetweenClips"));return}const B=yDs(M,P);if(!B){window.$message.warning($t("workbench.production.editVideo.transitionBetweenClips"));return}_(B.beforeClip.id,B.afterClip.id,T.subType)}function C(T,D){_(T,D,"fade")}function _(T,D,P="fade"){const Q=CDs(l,u,T,D,P);Q&&f.value&&f.value.emitTransitionAdded(Q.transitionClip,Q.beforeClip.id,Q.afterClip.id)}function S(T,D,P){window.$message.success($t("workbench.production.editVideo.transitionAdded",{name:T.name})),d.seekTo(T.startTime)}function L(){l.reset(),t.initialTracks.length>0&&t.initialTracks.forEach(T=>{l.addTrack(T)}),d.setDuration(30),d.seekTo(0),u.initialize(),ODs(l)}An(()=>{L(),r.value&&(s=new ResizeObserver(T=>{const D=T[0];D&&(o.width=D.contentRect.width,o.height=D.contentRect.height)}),s.observe(r.value))});const E={primaryColor:"#000",backgroundColor:"#ecedef",textColor:"#ffffff",borderColor:"#ecedef"};return Qa(()=>{s==null||s.disconnect()}),(T,D)=>{const P=_n("i-refresh"),Q=Si,M=_n("i-undo"),B=_n("i-redo"),R=_n("i-cutting-one"),I=_n("i-delete"),F=_n("i-export");return xe(),Ge("div",_Ds,[c(Ae(wGe),{class:"default-theme content",horizontal:"","push-other-panes":!1},{default:Oe(()=>[c(Ae(PT),{size:"60"},{default:Oe(()=>[c(Ae(wGe),{"push-other-panes":!1},{default:Oe(()=>[c(Ae(PT),{size:"20","min-size":"10"},{default:Oe(()=>[c(nTs,{"initial-video-items":e.initialVideoItems,"initial-media-items":e.initialMediaItems,"initial-audio-items":e.initialAudioItems,"initial-image-items":e.initialImageItems},null,8,["initial-video-items","initial-media-items","initial-audio-items","initial-image-items"])]),_:1}),c(Ae(PT),{size:"60","min-size":"20"},{default:Oe(()=>[ge("div",{ref_key:"previewWrapperRef",ref:r,class:"previewWrapper"},[c(JTs,{ref_key:"videoPreviewRef",ref:k,"canvas-width":e.canvasWidth,"canvas-height":e.canvasHeight,style:no(Ae(a))},null,8,["canvas-width","canvas-height","style"])],512)]),_:1}),c(Ae(PT),{size:"20","min-size":"10"},{default:Oe(()=>[c(vDs)]),_:1})]),_:1})]),_:1}),c(Ae(PT),{size:"40",class:"pr"},{default:Oe(()=>[c(Ae(e7s),{theme:E,class:"videoTrack",ref_key:"videoTrackRef",ref:f,"operation-buttons":Ae(h),"scale-config-buttons":Ae(g),"track-types":Ae(m),"clip-configs":Ae(v),"enable-main-track-mode":!0,"enable-cross-track-drag":!0,"enable-snap":!0,"default-scale":1,onAddTransition:C,onDropMedia:O,onTransitionAdded:S},{"custom-operation-reset":Oe(()=>[c(Q,{variant:"text",size:"small",onClick:D[0]||(D[0]=j=>{var W;return(W=Ae(f))==null?void 0:W.reset()}),title:T.$t("workbench.production.editVideo.reset")},{icon:Oe(()=>[c(P,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.reset")),1)]),_:1},8,["title"])]),"custom-operation-undo":Oe(()=>[c(Q,{variant:"text",size:"small",disabled:!Ae(u).canUndo,onClick:D[1]||(D[1]=j=>Ae(u).undo()),title:T.$t("workbench.production.editVideo.undo")},{icon:Oe(()=>[c(M,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.undo")),1)]),_:1},8,["disabled","title"])]),"custom-operation-redo":Oe(()=>[c(Q,{variant:"text",size:"small",disabled:!Ae(u).canRedo,onClick:D[2]||(D[2]=j=>Ae(u).redo()),title:T.$t("workbench.production.editVideo.redo")},{icon:Oe(()=>[c(B,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.redo")),1)]),_:1},8,["disabled","title"])]),"custom-operation-split":Oe(()=>[c(Q,{variant:"text",size:"small",disabled:Ae(l).selectedClipIds.size===0,onClick:b,title:T.$t("workbench.production.editVideo.split")},{icon:Oe(()=>[c(R,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.split")),1)]),_:1},8,["disabled","title"])]),"custom-operation-delete":Oe(()=>[c(Q,{variant:"text",size:"small",onClick:w,title:T.$t("workbench.production.editVideo.delete")},{icon:Oe(()=>[c(I,{size:"16"})]),default:Oe(()=>[Bt(" "+Pe(T.$t("workbench.production.editVideo.delete")),1)]),_:1},8,["title"])]),"scale-append":Oe(()=>[c(Q,{theme:"danger",onClick:p,loading:Ae(A),title:T.$t("workbench.production.editVideo.exportProject")},{icon:Oe(()=>[c(F,{size:"16",style:{"margin-right":"4px"}})]),default:Oe(()=>[Bt(" "+Pe(Ae(A)?T.$t("workbench.production.editVideo.rendering"):T.$t("workbench.production.editVideo.exportVideo")),1)]),_:1},8,["loading","title"])]),_:1},8,["operation-buttons","scale-config-buttons","track-types","clip-configs"])]),_:1})]),_:1})])}}}),LDs=oo(SDs,[["__scopeId","data-v-d1b2b252"]]),xDs={class:"closure"},EDs={class:"topMenu f ac"},TDs={class:"content"},QDs={key:0,class:"importLoadingMask"},DDs={class:"importLoadingContent"},BDs=Je({__name:"index",props:{visible:{type:Boolean,default:!1},visibleModifiers:{}},emits:["update:visible"],setup(e){const{project:t}=xs(ph()),n=Pf(e,"visible"),r=fe("preview"),o=fe(1920),s=fe(1080);An(()=>{var w;const b=(w=t.value)==null?void 0:w.videoRatio;b=="16:9"?(o.value=1920,s.value=1080):b=="1:1"?(o.value=1080,s.value=1080):b=="9:16"&&(o.value=1080,s.value=1920)});const a=fe([]),l=fe([]),d=fe([]),u=fe([]),h=fe(!1),g=fe(!1);An(()=>{f()});function m(b){var O;if(!b)return"unknown";const w=((O=b.split("?")[0].split(".").pop())==null?void 0:O.toLowerCase())??"";return["png","jpg","jpeg","gif","webp","bmp","svg"].includes(w)?"image":["mp4","webm","ogg","mov","avi","mkv"].includes(w)?"video":["mp3","wav","ogg","aac","flac","m4a"].includes(w)?"audio":"unknown"}function v(b){r.value=b,b=="editVideo"&&f()}function f(){var b;mn.post("/assets/getMaterialData",{projectId:(b=t.value)==null?void 0:b.id}).then(({data:w})=>{const O=w.data.filter(_=>m(_.filePath)==="video"),y=w.data.filter(_=>m(_.filePath)==="audio"),C=w.data.filter(_=>m(_.filePath)==="image");a.value=w.video.map(_=>({id:`video-${_.id}`,type:"video",name:$t("workbench.production.wb.storyboardVideoName",{storyboard:_.storyboard}),duration:_.duration||0,icon:"🎬",color:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",url:_.filePath,selected:_.selected||!1})),l.value=O.map(_=>({id:`video-${_.id}`,type:"video",name:_.name,duration:_.duration||0,icon:"🎥",color:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",url:_.filePath,loading:!0})),d.value=y.map(_=>({id:`audio-${_.id}`,type:"audio",name:_.name,duration:_.duration||0,url:_.filePath,loading:!0})),u.value=C.map(_=>({id:`image-${_.id}`,type:"image",name:_.name,duration:_.duration||5,icon:"🖼️",color:"linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)",url:_.filePath,loading:!0}))})}function k(){const b=(w,O,y,C=!1)=>({id:Yre("track-"),type:w,name:O,visible:!0,locked:!1,clips:[],order:y,...C&&{isMain:C}});return[b("video","主轨道",0,!0),b("audio","音频",2),b("subtitle","字幕",3),b("filter","滤镜",4)]}const A=k();function p(b){}return(b,w)=>{const O=_n("i-close-small"),y=_n("i-blackboard"),C=el,_=_n("i-playback-progress"),S=_n("i-editing"),L=Wc,E=gc;return xe(),Ut(E,{body:"String",header:!1,footer:!1,closeBtn:!1,visible:n.value,"onUpdate:visible":w[5]||(w[5]=T=>n.value=T),attach:"body",placement:"center",mode:"full-screen",dialogClassName:"noFooter",class:"fullscreenDialog"},{default:Oe(()=>[ge("div",xDs,[c(O,{theme:"outline",size:"24",fill:"#4a4a4a",onClick:w[0]||(w[0]=T=>n.value=!1)})]),ge("div",EDs,[c(C,{content:b.$t("workbench.production.wb.quickPreview"),placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:Eo(["item fc c",{active:Ae(r)==="preview"}]),onClick:w[1]||(w[1]=T=>v("preview"))},[c(y,{class:"icon"})],2)]),_:1},8,["content"]),c(C,{content:b.$t("workbench.production.wb.videoGeneration"),placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:Eo(["item fc c",{active:Ae(r)==="generate"}]),onClick:w[2]||(w[2]=T=>v("generate"))},[c(_,{class:"icon"})],2)]),_:1},8,["content"]),c(C,{content:b.$t("workbench.production.wb.videoEditing"),placement:"bottom",theme:"light",destroyOnClose:"",showArrow:!1},{default:Oe(()=>[ge("div",{class:Eo(["item fc c",{active:Ae(r)==="editVideo"}]),onClick:w[3]||(w[3]=T=>v("editVideo"))},[c(S,{class:"icon"})],2)]),_:1},8,["content"])]),ge("div",TDs,[Ae(r)==="preview"?(xe(),Ut(Rxs,{key:0})):nn("",!0),Ae(r)==="generate"?(xe(),Ut(P5s,{key:1,onImportVideo:p,modelValue:Ae(h),"onUpdate:modelValue":w[4]||(w[4]=T=>Fn(h)?h.value=T:null)},null,8,["modelValue"])):nn("",!0),Ae(r)==="editVideo"?(xe(),Ut(LDs,{key:2,"initial-tracks":Ae(A),"initial-video-items":Ae(a),"initial-media-items":Ae(l),"initial-audio-items":Ae(d),"initial-image-items":Ae(u),"canvas-width":Ae(o),"canvas-height":Ae(s),ref:"editVideoRef"},null,8,["initial-tracks","initial-video-items","initial-media-items","initial-audio-items","initial-image-items","canvas-width","canvas-height"])):nn("",!0)]),Ae(g)?(xe(),Ge("div",QDs,[ge("div",DDs,[c(L,{size:"large",text:b.$t("workbench.production.wb.importingLoading")},null,8,["text"])])])):nn("",!0)]),_:1},8,["visible"])}}}),RDs=oo(BDs,[["__scopeId","data-v-54425e7f"]]),IDs={class:"titleBar dragHandle pr"},MDs={class:"title"},PDs={class:"videoPreview"},FDs={class:"playButton"},NDs=Je({__name:"workbench",props:Fc({id:{},handleIds:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=fe(!1),n=e,r=Pf(e,"modelValue");return(o,s)=>{const a=Zh,l=_n("i-video"),d=km;return xe(),Ut(d,{class:"workbench",onClick:s[1]||(s[1]=u=>t.value=!Ae(t))},{default:Oe(()=>{var u,h;return[ge("div",IDs,[ge("div",MDs,Pe(o.$t("workbench.production.node.workbench.title")),1),c(Ae(mm),{id:n.handleIds.target,type:"target",position:Ae(Vi).Left,style:{left:"calc(-1 * var(--td-comp-paddingLR-xl))"}},null,8,["id","position"])]),ge("div",PDs,[ge("div",{class:"videoPlaceholder",style:no({background:(u=r.value)==null?void 0:u.gradient})},[(h=r.value)!=null&&h.cover?(xe(),Ut(a,{key:0,src:r.value.cover,fit:"cover",class:"videoCover"},null,8,["src"])):nn("",!0),ge("div",FDs,[c(l,{theme:"outline",size:"48"})])],4)]),Ae(t)?(xe(),Ut(RDs,{key:0,visible:Ae(t),"onUpdate:visible":s[0]||(s[0]=g=>Fn(t)?t.value=g:null)},null,8,["visible"])):nn("",!0)]}),_:1})}}}),UDs=oo(NDs,[["__scopeId","data-v-fa984f98"]]);var nve={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */nve.exports;(function(e,t){(function(){var n,r="4.17.23",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",l="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",u=500,h="__lodash_placeholder__",g=1,m=2,v=4,f=1,k=2,A=1,p=2,b=4,w=8,O=16,y=32,C=64,_=128,S=256,L=512,E=30,T="...",D=800,P=16,Q=1,M=2,B=3,R=1/0,I=9007199254740991,F=17976931348623157e292,j=NaN,W=4294967295,H=W-1,$=W>>>1,G=[["ary",_],["bind",A],["bindKey",p],["curry",w],["curryRight",O],["flip",L],["partial",y],["partialRight",C],["rearg",S]],q="[object Arguments]",re="[object Array]",J="[object AsyncFunction]",oe="[object Boolean]",se="[object Date]",le="[object DOMException]",ue="[object Error]",ee="[object Function]",de="[object GeneratorFunction]",z="[object Map]",Y="[object Number]",ie="[object Null]",te="[object Object]",Z="[object Promise]",he="[object Proxy]",pe="[object RegExp]",Ce="[object Set]",Qe="[object String]",ke="[object Symbol]",me="[object Undefined]",_e="[object WeakMap]",Te="[object WeakSet]",De="[object ArrayBuffer]",Ye="[object DataView]",ot="[object Float32Array]",We="[object Float64Array]",et="[object Int8Array]",st="[object Int16Array]",Me="[object Int32Array]",Se="[object Uint8Array]",Ie="[object Uint8ClampedArray]",ze="[object Uint16Array]",Ze="[object Uint32Array]",gt=/\b__p \+= '';/g,St=/\b(__p \+=) '' \+/g,Pt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,dn=/&(?:amp|lt|gt|quot|#39);/g,on=/[&<>"']/g,pn=RegExp(dn.source),ni=RegExp(on.source),Zn=/<%-([\s\S]+?)%>/g,Pi=/<%([\s\S]+?)%>/g,rr=/<%=([\s\S]+?)%>/g,Hr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bo=/^\w*$/,lo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fr=/[\\^$.*+?()[\]{}|]/g,is=RegExp(Fr.source),yi=/^\s+/,Gt=/\s/,gi=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ri=/\{\n\/\* \[wrapped with (.+)\] \*/,tr=/,? & /,ht=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,At=/[()=,{}\[\]\/\s]/,Mt=/\\(\\)?/g,Kt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,qn=/\w*$/,Zt=/^[-+]0x[0-9a-f]+$/i,so=/^0b[01]+$/i,Un=/^\[object .+?Constructor\]$/,dt=/^0o[0-7]+$/i,Ne=/^(?:0|[1-9]\d*)$/,nt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bn=/($^)/,hn=/['\n\r\u2028\u2029\\]/g,En="\\ud800-\\udfff",wi="\\u0300-\\u036f",Ue="\\ufe20-\\ufe2f",ut="\\u20d0-\\u20ff",Nt=wi+Ue+ut,wn="\\u2700-\\u27bf",Cn="a-z\\xdf-\\xf6\\xf8-\\xff",wr="\\xac\\xb1\\xd7\\xf7",Kr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Wo="\\u2000-\\u206f",pl=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",pu="A-Z\\xc0-\\xd6\\xd8-\\xde",bu="\\ufe0e\\ufe0f",T1=wr+Kr+Wo+pl,xm="['’]",Gd="["+En+"]",Em="["+T1+"]",$3="["+Nt+"]",FL="\\d+",NL="["+wn+"]",TA="["+Cn+"]",fC="[^"+En+T1+FL+wn+Cn+pu+"]",UL="\\ud83c[\\udffb-\\udfff]",tk="(?:"+$3+"|"+UL+")",jf="[^"+En+"]",gC="(?:\\ud83c[\\udde6-\\uddff]){2}",mC="[\\ud800-\\udbff][\\udc00-\\udfff]",Q1="["+pu+"]",kC="\\u200d",Dp="(?:"+TA+"|"+fC+")",Wf="(?:"+Q1+"|"+fC+")",X3="(?:"+xm+"(?:d|ll|m|re|s|t|ve))?",QA="(?:"+xm+"(?:D|LL|M|RE|S|T|VE))?",vC=tk+"?",AC="["+bu+"]?",G3="(?:"+kC+"(?:"+[jf,gC,mC].join("|")+")"+AC+vC+")*",DA="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",R2="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Y3=AC+vC+G3,Tm="(?:"+[NL,gC,mC].join("|")+")"+Y3,BA="(?:"+[jf+$3+"?",$3,gC,mC,Gd].join("|")+")",D1=RegExp(xm,"g"),Bp=RegExp($3,"g"),gM=RegExp(UL+"(?="+UL+")|"+BA+Y3,"g"),rye=RegExp([Q1+"?"+TA+"+"+X3+"(?="+[Em,Q1,"$"].join("|")+")",Wf+"+"+QA+"(?="+[Em,Q1+Dp,"$"].join("|")+")",Q1+"?"+Dp+"+"+X3,Q1+"+"+QA,R2,DA,FL,Tm].join("|"),"g"),oye=RegExp("["+kC+En+Nt+bu+"]"),sye=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,aye=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],lye=-1,Bl={};Bl[ot]=Bl[We]=Bl[et]=Bl[st]=Bl[Me]=Bl[Se]=Bl[Ie]=Bl[ze]=Bl[Ze]=!0,Bl[q]=Bl[re]=Bl[De]=Bl[oe]=Bl[Ye]=Bl[se]=Bl[ue]=Bl[ee]=Bl[z]=Bl[Y]=Bl[te]=Bl[pe]=Bl[Ce]=Bl[Qe]=Bl[_e]=!1;var kc={};kc[q]=kc[re]=kc[De]=kc[Ye]=kc[oe]=kc[se]=kc[ot]=kc[We]=kc[et]=kc[st]=kc[Me]=kc[z]=kc[Y]=kc[te]=kc[pe]=kc[Ce]=kc[Qe]=kc[ke]=kc[Se]=kc[Ie]=kc[ze]=kc[Ze]=!0,kc[ue]=kc[ee]=kc[_e]=!1;var cye={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},mM={"&":"&","<":"<",">":">",'"':""","'":"'"},dye={"&":"&","<":"<",">":">",""":'"',"'":"'"},uye={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},hye=parseFloat,fye=parseInt,QE=typeof Ho=="object"&&Ho&&Ho.Object===Object&&Ho,gye=typeof self=="object"&&self&&self.Object===Object&&self,lf=QE||gye||Function("return this")(),jH=t&&!t.nodeType&&t,pC=jH&&!0&&e&&!e.nodeType&&e,DE=pC&&pC.exports===jH,WH=DE&&QE.process,nk=function(){try{var Wt=pC&&pC.require&&pC.require("util").types;return Wt||WH&&WH.binding&&WH.binding("util")}catch{}}(),ioe=nk&&nk.isArrayBuffer,roe=nk&&nk.isDate,BE=nk&&nk.isMap,ooe=nk&&nk.isRegExp,soe=nk&&nk.isSet,aoe=nk&&nk.isTypedArray;function B1(Wt,Sn,Et){switch(Et.length){case 0:return Wt.call(Sn);case 1:return Wt.call(Sn,Et[0]);case 2:return Wt.call(Sn,Et[0],Et[1]);case 3:return Wt.call(Sn,Et[0],Et[1],Et[2])}return Wt.apply(Sn,Et)}function mye(Wt,Sn,Et,or){for(var Jr=-1,za=Wt==null?0:Wt.length;++Jr-1}function bC(Wt,Sn,Et){for(var or=-1,Jr=Wt==null?0:Wt.length;++or-1;);return Et}function goe(Wt,Sn){for(var Et=Wt.length;Et--&&jL(Sn,Wt[Et],0)>-1;);return Et}function Oye(Wt,Sn){for(var Et=Wt.length,or=0;Et--;)Wt[Et]===Sn&&++or;return or}var yye=$H(cye),Cye=$H(mM);function moe(Wt){return"\\"+uye[Wt]}function _ye(Wt,Sn){return Wt==null?n:Wt[Sn]}function VL(Wt){return oye.test(Wt)}function Sye(Wt){return sye.test(Wt)}function Lye(Wt){for(var Sn,Et=[];!(Sn=Wt.next()).done;)Et.push(Sn.value);return Et}function ZH(Wt){var Sn=-1,Et=Array(Wt.size);return Wt.forEach(function(or,Jr){Et[++Sn]=[Jr,or]}),Et}function koe(Wt,Sn){return function(Et){return Wt(Sn(Et))}}function K3(Wt,Sn){for(var Et=-1,or=Wt.length,Jr=0,za=[];++Et-1}function OC(N,V){var ce=this.__data__,Le=MM(ce,N);return Le<0?(++this.size,ce.push([N,V])):ce[Le][1]=V,this}Ip.prototype.clear=zye,Ip.prototype.delete=ex,Ip.prototype.get=Qoe,Ip.prototype.has=Yd,Ip.prototype.set=OC;function cf(N){var V=-1,ce=N==null?0:N.length;for(this.clear();++V=V?N:V)),N}function sk(N,V,ce,Le,He,lt){var yt,Qt=V&g,Yt=V&m,Rn=V&v;if(ce&&(yt=He?ce(N,Le,He,lt):ce(N)),yt!==n)return yt;if(!qd(N))return N;var Mn=bs(N);if(Mn){if(yt=RKn(N),!Qt)return Ts(N,yt)}else{var Jn=Bm(N),Ki=Jn==ee||Jn==de;if(ox(N))return P2(N,Qt);if(Jn==te||Jn==q||Ki&&!He){if(yt=Yt||Ki?{}:Iat(N),!Qt)return Yt?F2(N,qye(yt,N)):P1(N,s$(yt,N))}else{if(!kc[Jn])return He?N:{};yt=IKn(N,Jn,Qt)}}lt||(lt=new M2);var Dr=lt.get(N);if(Dr)return Dr;lt.set(N,yt),dlt(N)?N.forEach(function(_o){yt.add(sk(_o,V,ce,_o,N,lt))}):llt(N)&&N.forEach(function(_o,na){yt.set(na,sk(_o,V,ce,na,N,lt))});var Co=Rn?Yt?aCe:sCe:Yt?ck:zf,Ms=Mn?n:Co(N);return ik(Ms||N,function(_o,na){Ms&&(na=_o,_o=N[na]),tx(yt,na,sk(_o,V,ce,na,N,lt))}),yt}function l$(N){var V=zf(N);return function(ce){return Foe(ce,N,V)}}function Foe(N,V,ce){var Le=ce.length;if(N==null)return!Le;for(N=sl(N);Le--;){var He=ce[Le],lt=V[He],yt=N[He];if(yt===n&&!(He in N)||!lt(yt))return!1}return!0}function PM(N,V,ce){if(typeof N!="function")throw new rk(a);return p$(function(){N.apply(n,ce)},V)}function HE(N,V,ce,Le){var He=-1,lt=kM,yt=!0,Qt=N.length,Yt=[],Rn=V.length;if(!Qt)return Yt;ce&&(V=Hc(V,R1(ce))),Le?(lt=bC,yt=!1):V.length>=o&&(lt=WL,yt=!1,V=new ew(V));e:for(;++HeHe?0:He+ce),Le=Le===n||Le>He?He:Qs(Le),Le<0&&(Le+=He),Le=ce>Le?0:hlt(Le);ce0&&ce(Qt)?V>1?Ou(Qt,V-1,ce,Le,He):q3(He,Qt):Le||(He[He.length]=Qt)}return He}var nx=zM(),Noe=zM(!0);function M1(N,V){return N&&nx(N,V,zf)}function c$(N,V){return N&&Noe(N,V,zf)}function $E(N,V){return Z3(V,function(ce){return QC(N[ce])})}function tw(N,V){V=Fg(V,N);for(var ce=0,Le=V.length;N!=null&&ceV}function Uoe(N,V){return N!=null&&Ha.call(N,V)}function joe(N,V){return N!=null&&V in sl(N)}function NM(N,V,ce){return N>=Yu(V,ce)&&N=120&&Mn.length>=120)?new ew(yt&&Mn):n}Mn=N[0];var Jn=-1,Ki=Qt[0];e:for(;++Jn-1;)Qt!==N&&ME.call(Qt,Yt,1),ME.call(N,Yt,1);return N}function Be(N,V){for(var ce=N?V.length:0,Le=ce-1;ce--;){var He=V[ce];if(ce==Le||He!==lt){var lt=He;TC(He)?ME.call(N,He,1):os(N,He)}}return N}function Xe(N,V){return N+FE(e$()*(V-N+1))}function Ke(N,V,ce,Le){for(var He=-1,lt=Gu(xM((V-N)/(ce||1)),0),yt=Et(lt);lt--;)yt[Le?lt:++He]=N,N+=ce;return yt}function vt(N,V){var ce="";if(!N||V<1||V>I)return ce;do V%2&&(ce+=N),V=FE(V/2),V&&(N+=N);while(V);return ce}function qe(N,V){return gCe(Fat(N,V,dk),N+"")}function Ot(N){return Poe(GM(N))}function Lt(N,V){var ce=GM(N);return nse(ce,yC(V,0,ce.length))}function Vt(N,V,ce,Le){if(!qd(N))return N;V=Fg(V,N);for(var He=-1,lt=V.length,yt=lt-1,Qt=N;Qt!=null&&++HeHe?0:He+V),ce=ce>He?He:ce,ce<0&&(ce+=He),He=V>ce?0:ce-V>>>0,V>>>=0;for(var lt=Et(He);++Le>>1,yt=N[lt];yt!==null&&!N2(yt)&&(ce?yt<=V:yt=o){var Rn=V?null:LKn(N);if(Rn)return bM(Rn);yt=!1,He=WL,Yt=new ew}else Yt=V?[]:Qt;e:for(;++Le=Le?N:Ai(N,V,ce)}var iw=Pye||function(N){return lf.clearTimeout(N)};function P2(N,V){if(V)return N.slice();var ce=N.length,Le=qH?qH(ce):new N.constructor(ce);return N.copy(Le),Le}function MA(N){var V=new N.constructor(N.byteLength);return new XL(V).set(new XL(N)),V}function _C(N,V){var ce=V?MA(N.buffer):N.buffer;return new N.constructor(ce,N.byteOffset,N.byteLength)}function SC(N){var V=new N.constructor(N.source,qn.exec(N));return V.lastIndex=N.lastIndex,V}function Pp(N){return jE?sl(jE.call(N)):{}}function Fp(N,V){var ce=V?MA(N.buffer):N.buffer;return new N.constructor(ce,N.byteOffset,N.length)}function LC(N,V){if(N!==V){var ce=N!==n,Le=N===null,He=N===N,lt=N2(N),yt=V!==n,Qt=V===null,Yt=V===V,Rn=N2(V);if(!Qt&&!Rn&&!lt&&N>V||lt&&yt&&Yt&&!Qt&&!Rn||Le&&yt&&Yt||!ce&&Yt||!He)return 1;if(!Le&&!lt&&!Rn&&N=Qt)return Yt;var Rn=ce[Le];return Yt*(Rn=="desc"?-1:1)}}return N.index-V.index}function ll(N,V,ce,Le){for(var He=-1,lt=N.length,yt=ce.length,Qt=-1,Yt=V.length,Rn=Gu(lt-yt,0),Mn=Et(Yt+Rn),Jn=!Le;++Qt1?ce[He-1]:n,yt=He>2?ce[2]:n;for(lt=N.length>3&&typeof lt=="function"?(He--,lt):n,yt&&N1(ce[0],ce[1],yt)&&(lt=He<3?n:lt,He=1),V=sl(V);++Le-1?He[lt?V[yt]:yt]:n}}function _at(N){return EC(function(V){var ce=V.length,Le=ce,He=I1.prototype.thru;for(N&&V.reverse();Le--;){var lt=V[Le];if(typeof lt!="function")throw new rk(a);if(He&&!yt&&ese(lt)=="wrapper")var yt=new I1([],!0)}for(Le=yt?Le:ce;++Le1&&wa.reverse(),Mn&&YtQt))return!1;var Rn=lt.get(N),Mn=lt.get(V);if(Rn&&Mn)return Rn==V&&Mn==N;var Jn=-1,Ki=!0,Dr=ce&k?new ew:n;for(lt.set(N,V),lt.set(V,N);++Jn1?"& ":"")+V[Le],V=V.join(ce>2?", ":" "),N.replace(gi,`{ + */nve.exports;(function(e,t){(function(){var n,r="4.17.23",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",l="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",u=500,h="__lodash_placeholder__",g=1,m=2,v=4,f=1,k=2,A=1,p=2,b=4,w=8,O=16,y=32,C=64,_=128,S=256,L=512,E=30,T="...",D=800,P=16,Q=1,M=2,B=3,R=1/0,I=9007199254740991,F=17976931348623157e292,j=NaN,W=4294967295,H=W-1,$=W>>>1,G=[["ary",_],["bind",A],["bindKey",p],["curry",w],["curryRight",O],["flip",L],["partial",y],["partialRight",C],["rearg",S]],q="[object Arguments]",re="[object Array]",J="[object AsyncFunction]",oe="[object Boolean]",se="[object Date]",le="[object DOMException]",ue="[object Error]",ee="[object Function]",de="[object GeneratorFunction]",z="[object Map]",Y="[object Number]",ie="[object Null]",te="[object Object]",Z="[object Promise]",he="[object Proxy]",pe="[object RegExp]",Ce="[object Set]",Qe="[object String]",ke="[object Symbol]",me="[object Undefined]",_e="[object WeakMap]",Te="[object WeakSet]",De="[object ArrayBuffer]",Ye="[object DataView]",ot="[object Float32Array]",We="[object Float64Array]",et="[object Int8Array]",st="[object Int16Array]",Me="[object Int32Array]",Se="[object Uint8Array]",Ie="[object Uint8ClampedArray]",ze="[object Uint16Array]",Ze="[object Uint32Array]",gt=/\b__p \+= '';/g,St=/\b(__p \+=) '' \+/g,Pt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,dn=/&(?:amp|lt|gt|quot|#39);/g,on=/[&<>"']/g,pn=RegExp(dn.source),ni=RegExp(on.source),Zn=/<%-([\s\S]+?)%>/g,Pi=/<%([\s\S]+?)%>/g,rr=/<%=([\s\S]+?)%>/g,Hr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bo=/^\w*$/,lo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fr=/[\\^$.*+?()[\]{}|]/g,is=RegExp(Fr.source),yi=/^\s+/,Gt=/\s/,gi=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ri=/\{\n\/\* \[wrapped with (.+)\] \*/,tr=/,? & /,ht=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,At=/[()=,{}\[\]\/\s]/,Mt=/\\(\\)?/g,Kt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,qn=/\w*$/,Zt=/^[-+]0x[0-9a-f]+$/i,so=/^0b[01]+$/i,Un=/^\[object .+?Constructor\]$/,dt=/^0o[0-7]+$/i,Ne=/^(?:0|[1-9]\d*)$/,nt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bn=/($^)/,hn=/['\n\r\u2028\u2029\\]/g,En="\\ud800-\\udfff",wi="\\u0300-\\u036f",Ue="\\ufe20-\\ufe2f",ut="\\u20d0-\\u20ff",Nt=wi+Ue+ut,wn="\\u2700-\\u27bf",Cn="a-z\\xdf-\\xf6\\xf8-\\xff",wr="\\xac\\xb1\\xd7\\xf7",Kr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Wo="\\u2000-\\u206f",pl=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",pu="A-Z\\xc0-\\xd6\\xd8-\\xde",bu="\\ufe0e\\ufe0f",T1=wr+Kr+Wo+pl,xm="['’]",Gd="["+En+"]",Em="["+T1+"]",$3="["+Nt+"]",FL="\\d+",NL="["+wn+"]",TA="["+Cn+"]",fC="[^"+En+T1+FL+wn+Cn+pu+"]",UL="\\ud83c[\\udffb-\\udfff]",tk="(?:"+$3+"|"+UL+")",jf="[^"+En+"]",gC="(?:\\ud83c[\\udde6-\\uddff]){2}",mC="[\\ud800-\\udbff][\\udc00-\\udfff]",Q1="["+pu+"]",kC="\\u200d",Dp="(?:"+TA+"|"+fC+")",Wf="(?:"+Q1+"|"+fC+")",X3="(?:"+xm+"(?:d|ll|m|re|s|t|ve))?",QA="(?:"+xm+"(?:D|LL|M|RE|S|T|VE))?",vC=tk+"?",AC="["+bu+"]?",G3="(?:"+kC+"(?:"+[jf,gC,mC].join("|")+")"+AC+vC+")*",DA="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",R2="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Y3=AC+vC+G3,Tm="(?:"+[NL,gC,mC].join("|")+")"+Y3,BA="(?:"+[jf+$3+"?",$3,gC,mC,Gd].join("|")+")",D1=RegExp(xm,"g"),Bp=RegExp($3,"g"),gM=RegExp(UL+"(?="+UL+")|"+BA+Y3,"g"),rye=RegExp([Q1+"?"+TA+"+"+X3+"(?="+[Em,Q1,"$"].join("|")+")",Wf+"+"+QA+"(?="+[Em,Q1+Dp,"$"].join("|")+")",Q1+"?"+Dp+"+"+X3,Q1+"+"+QA,R2,DA,FL,Tm].join("|"),"g"),oye=RegExp("["+kC+En+Nt+bu+"]"),sye=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,aye=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],lye=-1,Bl={};Bl[ot]=Bl[We]=Bl[et]=Bl[st]=Bl[Me]=Bl[Se]=Bl[Ie]=Bl[ze]=Bl[Ze]=!0,Bl[q]=Bl[re]=Bl[De]=Bl[oe]=Bl[Ye]=Bl[se]=Bl[ue]=Bl[ee]=Bl[z]=Bl[Y]=Bl[te]=Bl[pe]=Bl[Ce]=Bl[Qe]=Bl[_e]=!1;var kc={};kc[q]=kc[re]=kc[De]=kc[Ye]=kc[oe]=kc[se]=kc[ot]=kc[We]=kc[et]=kc[st]=kc[Me]=kc[z]=kc[Y]=kc[te]=kc[pe]=kc[Ce]=kc[Qe]=kc[ke]=kc[Se]=kc[Ie]=kc[ze]=kc[Ze]=!0,kc[ue]=kc[ee]=kc[_e]=!1;var cye={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},mM={"&":"&","<":"<",">":">",'"':""","'":"'"},dye={"&":"&","<":"<",">":">",""":'"',"'":"'"},uye={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},hye=parseFloat,fye=parseInt,QE=typeof Ho=="object"&&Ho&&Ho.Object===Object&&Ho,gye=typeof self=="object"&&self&&self.Object===Object&&self,lf=QE||gye||Function("return this")(),jH=t&&!t.nodeType&&t,pC=jH&&!0&&e&&!e.nodeType&&e,DE=pC&&pC.exports===jH,WH=DE&&QE.process,nk=function(){try{var Wt=pC&&pC.require&&pC.require("util").types;return Wt||WH&&WH.binding&&WH.binding("util")}catch{}}(),ioe=nk&&nk.isArrayBuffer,roe=nk&&nk.isDate,BE=nk&&nk.isMap,ooe=nk&&nk.isRegExp,soe=nk&&nk.isSet,aoe=nk&&nk.isTypedArray;function B1(Wt,Sn,Et){switch(Et.length){case 0:return Wt.call(Sn);case 1:return Wt.call(Sn,Et[0]);case 2:return Wt.call(Sn,Et[0],Et[1]);case 3:return Wt.call(Sn,Et[0],Et[1],Et[2])}return Wt.apply(Sn,Et)}function mye(Wt,Sn,Et,or){for(var Jr=-1,za=Wt==null?0:Wt.length;++Jr-1}function bC(Wt,Sn,Et){for(var or=-1,Jr=Wt==null?0:Wt.length;++or-1;);return Et}function goe(Wt,Sn){for(var Et=Wt.length;Et--&&jL(Sn,Wt[Et],0)>-1;);return Et}function Oye(Wt,Sn){for(var Et=Wt.length,or=0;Et--;)Wt[Et]===Sn&&++or;return or}var yye=$H(cye),Cye=$H(mM);function moe(Wt){return"\\"+uye[Wt]}function _ye(Wt,Sn){return Wt==null?n:Wt[Sn]}function VL(Wt){return oye.test(Wt)}function Sye(Wt){return sye.test(Wt)}function Lye(Wt){for(var Sn,Et=[];!(Sn=Wt.next()).done;)Et.push(Sn.value);return Et}function ZH(Wt){var Sn=-1,Et=Array(Wt.size);return Wt.forEach(function(or,Jr){Et[++Sn]=[Jr,or]}),Et}function koe(Wt,Sn){return function(Et){return Wt(Sn(Et))}}function K3(Wt,Sn){for(var Et=-1,or=Wt.length,Jr=0,za=[];++Et-1}function OC(N,V){var ce=this.__data__,Le=MM(ce,N);return Le<0?(++this.size,ce.push([N,V])):ce[Le][1]=V,this}Ip.prototype.clear=zye,Ip.prototype.delete=ex,Ip.prototype.get=Qoe,Ip.prototype.has=Yd,Ip.prototype.set=OC;function cf(N){var V=-1,ce=N==null?0:N.length;for(this.clear();++V=V?N:V)),N}function sk(N,V,ce,Le,He,lt){var yt,Qt=V&g,Yt=V&m,Rn=V&v;if(ce&&(yt=He?ce(N,Le,He,lt):ce(N)),yt!==n)return yt;if(!qd(N))return N;var Mn=bs(N);if(Mn){if(yt=RKn(N),!Qt)return Ts(N,yt)}else{var Jn=Bm(N),Ki=Jn==ee||Jn==de;if(ox(N))return P2(N,Qt);if(Jn==te||Jn==q||Ki&&!He){if(yt=Yt||Ki?{}:Iat(N),!Qt)return Yt?F2(N,qye(yt,N)):P1(N,s$(yt,N))}else{if(!kc[Jn])return He?N:{};yt=IKn(N,Jn,Qt)}}lt||(lt=new M2);var Dr=lt.get(N);if(Dr)return Dr;lt.set(N,yt),dlt(N)?N.forEach(function(_o){yt.add(sk(_o,V,ce,_o,N,lt))}):llt(N)&&N.forEach(function(_o,na){yt.set(na,sk(_o,V,ce,na,N,lt))});var Co=Rn?Yt?aCe:sCe:Yt?ck:zf,Ms=Mn?n:Co(N);return ik(Ms||N,function(_o,na){Ms&&(na=_o,_o=N[na]),tx(yt,na,sk(_o,V,ce,na,N,lt))}),yt}function l$(N){var V=zf(N);return function(ce){return Foe(ce,N,V)}}function Foe(N,V,ce){var Le=ce.length;if(N==null)return!Le;for(N=sl(N);Le--;){var He=ce[Le],lt=V[He],yt=N[He];if(yt===n&&!(He in N)||!lt(yt))return!1}return!0}function PM(N,V,ce){if(typeof N!="function")throw new rk(a);return p$(function(){N.apply(n,ce)},V)}function HE(N,V,ce,Le){var He=-1,lt=kM,yt=!0,Qt=N.length,Yt=[],Rn=V.length;if(!Qt)return Yt;ce&&(V=Hc(V,R1(ce))),Le?(lt=bC,yt=!1):V.length>=o&&(lt=WL,yt=!1,V=new ew(V));e:for(;++HeHe?0:He+ce),Le=Le===n||Le>He?He:Qs(Le),Le<0&&(Le+=He),Le=ce>Le?0:hlt(Le);ce0&&ce(Qt)?V>1?Ou(Qt,V-1,ce,Le,He):q3(He,Qt):Le||(He[He.length]=Qt)}return He}var nx=zM(),Noe=zM(!0);function M1(N,V){return N&&nx(N,V,zf)}function c$(N,V){return N&&Noe(N,V,zf)}function $E(N,V){return Z3(V,function(ce){return QC(N[ce])})}function tw(N,V){V=Fg(V,N);for(var ce=0,Le=V.length;N!=null&&ceV}function Uoe(N,V){return N!=null&&Ha.call(N,V)}function joe(N,V){return N!=null&&V in sl(N)}function NM(N,V,ce){return N>=Yu(V,ce)&&N=120&&Mn.length>=120)?new ew(yt&&Mn):n}Mn=N[0];var Jn=-1,Ki=Qt[0];e:for(;++Jn-1;)Qt!==N&&ME.call(Qt,Yt,1),ME.call(N,Yt,1);return N}function Be(N,V){for(var ce=N?V.length:0,Le=ce-1;ce--;){var He=V[ce];if(ce==Le||He!==lt){var lt=He;TC(He)?ME.call(N,He,1):os(N,He)}}return N}function Xe(N,V){return N+FE(e$()*(V-N+1))}function Ke(N,V,ce,Le){for(var He=-1,lt=Gu(xM((V-N)/(ce||1)),0),yt=Et(lt);lt--;)yt[Le?lt:++He]=N,N+=ce;return yt}function vt(N,V){var ce="";if(!N||V<1||V>I)return ce;do V%2&&(ce+=N),V=FE(V/2),V&&(N+=N);while(V);return ce}function qe(N,V){return gCe(Fat(N,V,dk),N+"")}function Ot(N){return Poe(GM(N))}function Lt(N,V){var ce=GM(N);return nse(ce,yC(V,0,ce.length))}function Vt(N,V,ce,Le){if(!qd(N))return N;V=Fg(V,N);for(var He=-1,lt=V.length,yt=lt-1,Qt=N;Qt!=null&&++HeHe?0:He+V),ce=ce>He?He:ce,ce<0&&(ce+=He),He=V>ce?0:ce-V>>>0,V>>>=0;for(var lt=Et(He);++Le>>1,yt=N[lt];yt!==null&&!N2(yt)&&(ce?yt<=V:yt=o){var Rn=V?null:LKn(N);if(Rn)return bM(Rn);yt=!1,He=WL,Yt=new ew}else Yt=V?[]:Qt;e:for(;++Le=Le?N:Ai(N,V,ce)}var iw=Pye||function(N){return lf.clearTimeout(N)};function P2(N,V){if(V)return N.slice();var ce=N.length,Le=qH?qH(ce):new N.constructor(ce);return N.copy(Le),Le}function MA(N){var V=new N.constructor(N.byteLength);return new XL(V).set(new XL(N)),V}function _C(N,V){var ce=V?MA(N.buffer):N.buffer;return new N.constructor(ce,N.byteOffset,N.byteLength)}function SC(N){var V=new N.constructor(N.source,qn.exec(N));return V.lastIndex=N.lastIndex,V}function Pp(N){return jE?sl(jE.call(N)):{}}function Fp(N,V){var ce=V?MA(N.buffer):N.buffer;return new N.constructor(ce,N.byteOffset,N.length)}function LC(N,V){if(N!==V){var ce=N!==n,Le=N===null,He=N===N,lt=N2(N),yt=V!==n,Qt=V===null,Yt=V===V,Rn=N2(V);if(!Qt&&!Rn&&!lt&&N>V||lt&&yt&&Yt&&!Qt&&!Rn||Le&&yt&&Yt||!ce&&Yt||!He)return 1;if(!Le&&!lt&&!Rn&&N=Qt)return Yt;var Rn=ce[Le];return Yt*(Rn=="desc"?-1:1)}}return N.index-V.index}function ll(N,V,ce,Le){for(var He=-1,lt=N.length,yt=ce.length,Qt=-1,Yt=V.length,Rn=Gu(lt-yt,0),Mn=Et(Yt+Rn),Jn=!Le;++Qt1?ce[He-1]:n,yt=He>2?ce[2]:n;for(lt=N.length>3&&typeof lt=="function"?(He--,lt):n,yt&&N1(ce[0],ce[1],yt)&&(lt=He<3?n:lt,He=1),V=sl(V);++Le-1?He[lt?V[yt]:yt]:n}}function _at(N){return EC(function(V){var ce=V.length,Le=ce,He=I1.prototype.thru;for(N&&V.reverse();Le--;){var lt=V[Le];if(typeof lt!="function")throw new rk(a);if(He&&!yt&&ese(lt)=="wrapper")var yt=new I1([],!0)}for(Le=yt?Le:ce;++Le1&&wa.reverse(),Mn&&YtQt))return!1;var Rn=lt.get(N),Mn=lt.get(V);if(Rn&&Mn)return Rn==V&&Mn==N;var Jn=-1,Ki=!0,Dr=ce&k?new ew:n;for(lt.set(N,V),lt.set(V,N);++Jn1?"& ":"")+V[Le],V=V.join(ce>2?", ":" "),N.replace(gi,`{ /* [wrapped with `+V+`] */ `)}function PKn(N){return bs(N)||ZE(N)||!!(SM&&N&&N[SM])}function TC(N,V){var ce=typeof N;return V=V??I,!!V&&(ce=="number"||ce!="symbol"&&Ne.test(N))&&N>-1&&N%1==0&&N0){if(++V>=D)return arguments[0]}else V=0;return N.apply(n,arguments)}}function nse(N,V){var ce=-1,Le=N.length,He=Le-1;for(V=V===n?Le:V;++ce1?N[V-1]:n;return ce=typeof ce=="function"?(N.pop(),ce):n,Zat(N,ce)});function qat(N){var V=tt(N);return V.__chain__=!0,V}function GJn(N,V){return V(N),N}function ise(N,V){return V(N)}var YJn=EC(function(N){var V=N.length,ce=V?N[0]:0,Le=this.__wrapped__,He=function(lt){return a$(lt,N)};return V>1||this.__actions__.length||!(Le instanceof Is)||!TC(ce)?this.thru(He):(Le=Le.slice(ce,+ce+(V?1:0)),Le.__actions__.push({func:ise,args:[He],thisArg:n}),new I1(Le,this.__chain__).thru(function(lt){return V&&!lt.length&<.push(n),lt}))});function ZJn(){return qat(this)}function qJn(){return new I1(this.value(),this.__chain__)}function KJn(){this.__values__===n&&(this.__values__=ult(this.value()));var N=this.__index__>=this.__values__.length,V=N?n:this.__values__[this.__index__++];return{done:N,value:V}}function JJn(){return this}function eei(N){for(var V,ce=this;ce instanceof WE;){var Le=zat(ce);Le.__index__=0,Le.__values__=n,V?He.__wrapped__=Le:V=Le;var He=Le;ce=ce.__wrapped__}return He.__wrapped__=N,V}function tei(){var N=this.__wrapped__;if(N instanceof Is){var V=N;return this.__actions__.length&&(V=new Is(this)),V=V.reverse(),V.__actions__.push({func:ise,args:[mCe],thisArg:n}),new I1(V,this.__chain__)}return this.thru(mCe)}function nei(){return Mg(this.__wrapped__,this.__actions__)}var iei=F1(function(N,V,ce){Ha.call(N,ce)?++N[ce]:Mp(N,ce,1)});function rei(N,V,ce){var Le=bs(N)?loe:FM;return ce&&N1(N,V,ce)&&(V=n),Le(N,vo(V,3))}function oei(N,V){var ce=bs(N)?Z3:xc;return ce(N,vo(V,3))}var sei=Cat(Hat),aei=Cat($at);function lei(N,V){return Ou(rse(N,V),1)}function cei(N,V){return Ou(rse(N,V),R)}function dei(N,V,ce){return ce=ce===n?1:Qs(ce),Ou(rse(N,V),ce)}function Kat(N,V){var ce=bs(N)?ik:Mi;return ce(N,vo(V,3))}function Jat(N,V){var ce=bs(N)?kye:CC;return ce(N,vo(V,3))}var uei=F1(function(N,V,ce){Ha.call(N,ce)?N[ce].push(V):Mp(N,ce,[V])});function hei(N,V,ce,Le){N=lk(N)?N:GM(N),ce=ce&&!Le?Qs(ce):0;var He=N.length;return ce<0&&(ce=Gu(He+ce,0)),cse(N)?ce<=He&&N.indexOf(V,ce)>-1:!!He&&jL(N,V,ce)>-1}var fei=qe(function(N,V,ce){var Le=-1,He=typeof V=="function",lt=lk(N)?Et(N.length):[];return Mi(N,function(yt){lt[++Le]=He?B1(V,yt,ce):nw(yt,V,ce)}),lt}),gei=F1(function(N,V,ce){Mp(N,ce,V)});function rse(N,V){var ce=bs(N)?Hc:$oe;return ce(N,vo(V,3))}function mei(N,V,ce,Le){return N==null?[]:(bs(V)||(V=V==null?[]:[V]),ce=Le?n:ce,bs(ce)||(ce=ce==null?[]:[ce]),Fe(N,V,ce))}var kei=F1(function(N,V,ce){N[ce?0:1].push(V)},function(){return[[],[]]});function vei(N,V,ce){var Le=bs(N)?vM:uoe,He=arguments.length<3;return Le(N,vo(V,4),ce,He,Mi)}function Aei(N,V,ce){var Le=bs(N)?vye:uoe,He=arguments.length<3;return Le(N,vo(V,4),ce,He,CC)}function pei(N,V){var ce=bs(N)?Z3:xc;return ce(N,ase(vo(V,3)))}function bei(N){var V=bs(N)?Poe:Ot;return V(N)}function wei(N,V,ce){(ce?N1(N,V,ce):V===n)?V=1:V=Qs(V);var Le=bs(N)?Yye:Lt;return Le(N,V)}function Oei(N){var V=bs(N)?o$:$n;return V(N)}function yei(N){if(N==null)return 0;if(lk(N))return cse(N)?zL(N):N.length;var V=Bm(N);return V==z||V==Ce?N.size:h$(N).length}function Cei(N,V,ce){var Le=bs(N)?VH:mr;return ce&&N1(N,V,ce)&&(V=n),Le(N,vo(V,3))}var _ei=qe(function(N,V){if(N==null)return[];var ce=V.length;return ce>1&&N1(N,V[0],V[1])?V=[]:ce>2&&N1(V[0],V[1],V[2])&&(V=[V[0]]),Fe(N,Ou(V,1),[])}),ose=Fye||function(){return lf.Date.now()};function Sei(N,V){if(typeof V!="function")throw new rk(a);return N=Qs(N),function(){if(--N<1)return V.apply(this,arguments)}}function elt(N,V,ce){return V=ce?n:V,V=N&&V==null?N.length:V,xC(N,_,n,n,n,n,V)}function tlt(N,V){var ce;if(typeof V!="function")throw new rk(a);return N=Qs(N),function(){return--N>0&&(ce=V.apply(this,arguments)),N<=1&&(V=n),ce}}var vCe=qe(function(N,V,ce){var Le=A;if(ce.length){var He=K3(ce,$M(vCe));Le|=y}return xC(N,Le,V,ce,He)}),nlt=qe(function(N,V,ce){var Le=A|p;if(ce.length){var He=K3(ce,$M(nlt));Le|=y}return xC(V,Le,N,ce,He)});function ilt(N,V,ce){V=ce?n:V;var Le=xC(N,w,n,n,n,n,n,V);return Le.placeholder=ilt.placeholder,Le}function rlt(N,V,ce){V=ce?n:V;var Le=xC(N,O,n,n,n,n,n,V);return Le.placeholder=rlt.placeholder,Le}function olt(N,V,ce){var Le,He,lt,yt,Qt,Yt,Rn=0,Mn=!1,Jn=!1,Ki=!0;if(typeof N!="function")throw new rk(a);V=NA(V)||0,qd(ce)&&(Mn=!!ce.leading,Jn="maxWait"in ce,lt=Jn?Gu(NA(ce.maxWait)||0,V):lt,Ki="trailing"in ce?!!ce.trailing:Ki);function Dr(Ku){var Up=Le,BC=He;return Le=He=n,Rn=Ku,yt=N.apply(BC,Up),yt}function Co(Ku){return Rn=Ku,Qt=p$(na,V),Mn?Dr(Ku):yt}function Ms(Ku){var Up=Ku-Yt,BC=Ku-Rn,Clt=V-Up;return Jn?Yu(Clt,lt-BC):Clt}function _o(Ku){var Up=Ku-Yt,BC=Ku-Rn;return Yt===n||Up>=V||Up<0||Jn&&BC>=lt}function na(){var Ku=ose();if(_o(Ku))return wa(Ku);Qt=p$(na,Ms(Ku))}function wa(Ku){return Qt=n,Ki&&Le?Dr(Ku):(Le=He=n,yt)}function U2(){Qt!==n&&iw(Qt),Rn=0,Le=Yt=He=Qt=n}function U1(){return Qt===n?yt:wa(ose())}function j2(){var Ku=ose(),Up=_o(Ku);if(Le=arguments,He=this,Yt=Ku,Up){if(Qt===n)return Co(Yt);if(Jn)return iw(Qt),Qt=p$(na,V),Dr(Yt)}return Qt===n&&(Qt=p$(na,V)),yt}return j2.cancel=U2,j2.flush=U1,j2}var Lei=qe(function(N,V){return PM(N,1,V)}),xei=qe(function(N,V,ce){return PM(N,NA(V)||0,ce)});function Eei(N){return xC(N,L)}function sse(N,V){if(typeof N!="function"||V!=null&&typeof V!="function")throw new rk(a);var ce=function(){var Le=arguments,He=V?V.apply(this,Le):Le[0],lt=ce.cache;if(lt.has(He))return lt.get(He);var yt=N.apply(this,Le);return ce.cache=lt.set(He,yt)||lt,yt};return ce.cache=new(sse.Cache||cf),ce}sse.Cache=cf;function ase(N){if(typeof N!="function")throw new rk(a);return function(){var V=arguments;switch(V.length){case 0:return!N.call(this);case 1:return!N.call(this,V[0]);case 2:return!N.call(this,V[0],V[1]);case 3:return!N.call(this,V[0],V[1],V[2])}return!N.apply(this,V)}}function Tei(N){return tlt(2,N)}var Qei=ak(function(N,V){V=V.length==1&&bs(V[0])?Hc(V[0],R1(vo())):Hc(Ou(V,1),R1(vo()));var ce=V.length;return qe(function(Le){for(var He=-1,lt=Yu(Le.length,ce);++He=V}),ZE=UM(function(){return arguments}())?UM:function(N){return Cu(N)&&Ha.call(N,"callee")&&!woe.call(N,"callee")},bs=Et.isArray,$ei=ioe?R1(ioe):ix;function lk(N){return N!=null&&lse(N.length)&&!QC(N)}function qu(N){return Cu(N)&&lk(N)}function Xei(N){return N===!0||N===!1||Cu(N)&&Vf(N)==oe}var ox=Ooe||ECe,Gei=roe?R1(roe):jM;function Yei(N){return Cu(N)&&N.nodeType===1&&!b$(N)}function Zei(N){if(N==null)return!0;if(lk(N)&&(bs(N)||typeof N=="string"||typeof N.splice=="function"||ox(N)||XM(N)||ZE(N)))return!N.length;var V=Bm(N);if(V==z||V==Ce)return!N.size;if(A$(N))return!h$(N).length;for(var ce in N)if(Ha.call(N,ce))return!1;return!0}function qei(N,V){return XE(N,V)}function Kei(N,V,ce){ce=typeof ce=="function"?ce:n;var Le=ce?ce(N,V):n;return Le===n?XE(N,V,n,ce):!!Le}function pCe(N){if(!Cu(N))return!1;var V=Vf(N);return V==ue||V==le||typeof N.message=="string"&&typeof N.name=="string"&&!b$(N)}function Jei(N){return typeof N=="number"&&KH(N)}function QC(N){if(!qd(N))return!1;var V=Vf(N);return V==ee||V==de||V==J||V==he}function alt(N){return typeof N=="number"&&N==Qs(N)}function lse(N){return typeof N=="number"&&N>-1&&N%1==0&&N<=I}function qd(N){var V=typeof N;return N!=null&&(V=="object"||V=="function")}function Cu(N){return N!=null&&typeof N=="object"}var llt=BE?R1(BE):Jye;function eti(N,V){return N===V||WM(N,V,cCe(V))}function tti(N,V,ce){return ce=typeof ce=="function"?ce:n,WM(N,V,cCe(V),ce)}function nti(N){return clt(N)&&N!=+N}function iti(N){if(UKn(N))throw new Jr(s);return Voe(N)}function rti(N){return N===null}function oti(N){return N==null}function clt(N){return typeof N=="number"||Cu(N)&&Vf(N)==Y}function b$(N){if(!Cu(N)||Vf(N)!=te)return!1;var V=wu(N);if(V===null)return!0;var ce=Ha.call(V,"constructor")&&V.constructor;return typeof ce=="function"&&ce instanceof ce&&$L.call(ce)==ok}var bCe=ooe?R1(ooe):zoe;function sti(N){return alt(N)&&N>=-I&&N<=I}var dlt=soe?R1(soe):eCe;function cse(N){return typeof N=="string"||!bs(N)&&Cu(N)&&Vf(N)==Qe}function N2(N){return typeof N=="symbol"||Cu(N)&&Vf(N)==ke}var XM=aoe?R1(aoe):tCe;function ati(N){return N===n}function lti(N){return Cu(N)&&Bm(N)==_e}function cti(N){return Cu(N)&&Vf(N)==Te}var dti=Joe(f$),uti=Joe(function(N,V){return N<=V});function ult(N){if(!N)return[];if(lk(N))return cse(N)?I2(N):Ts(N);if(PE&&N[PE])return Lye(N[PE]());var V=Bm(N),ce=V==z?ZH:V==Ce?bM:GM;return ce(N)}function DC(N){if(!N)return N===0?N:0;if(N=NA(N),N===R||N===-R){var V=N<0?-1:1;return V*F}return N===N?N:0}function Qs(N){var V=DC(N),ce=V%1;return V===V?ce?V-ce:V:0}function hlt(N){return N?yC(Qs(N),0,W):0}function NA(N){if(typeof N=="number")return N;if(N2(N))return j;if(qd(N)){var V=typeof N.valueOf=="function"?N.valueOf():N;N=qd(V)?V+"":V}if(typeof N!="string")return N===0?N:+N;N=hoe(N);var ce=so.test(N);return ce||dt.test(N)?fye(N.slice(2),ce?2:8):Zt.test(N)?j:+N}function flt(N){return _d(N,ck(N))}function hti(N){return N?yC(Qs(N),-I,I):N===0?N:0}function Rl(N){return N==null?"":lr(N)}var fti=PA(function(N,V){if(A$(V)||lk(V)){_d(V,zf(V),N);return}for(var ce in V)Ha.call(V,ce)&&tx(N,ce,V[ce])}),glt=PA(function(N,V){_d(V,ck(V),N)}),dse=PA(function(N,V,ce,Le){_d(V,ck(V),N,Le)}),gti=PA(function(N,V,ce,Le){_d(V,zf(V),N,Le)}),mti=EC(a$);function kti(N,V){var ce=J3(N);return V==null?ce:s$(ce,V)}var vti=qe(function(N,V){N=sl(N);var ce=-1,Le=V.length,He=Le>2?V[2]:n;for(He&&N1(V[0],V[1],He)&&(Le=1);++ce1),lt}),_d(N,aCe(N),ce),Le&&(ce=sk(ce,g|m|v,xKn));for(var He=V.length;He--;)os(ce,V[He]);return ce});function Iti(N,V){return klt(N,ase(vo(V)))}var Mti=EC(function(N,V){return N==null?{}:K(N,V)});function klt(N,V){if(N==null)return{};var ce=Hc(aCe(N),function(Le){return[Le]});return V=vo(V),ne(N,ce,function(Le,He){return V(Le,He[0])})}function Pti(N,V,ce){V=Fg(V,N);var Le=-1,He=V.length;for(He||(He=1,N=n);++LeV){var Le=N;N=V,V=Le}if(ce||N%1||V%1){var He=e$();return Yu(N+He*(V-N+hye("1e-"+((He+"").length-1))),V)}return Xe(N,V)}var Gti=HM(function(N,V,ce){return V=V.toLowerCase(),N+(ce?plt(V):V)});function plt(N){return yCe(Rl(N).toLowerCase())}function blt(N){return N=Rl(N),N&&N.replace(nt,yye).replace(Bp,"")}function Yti(N,V,ce){N=Rl(N),V=lr(V);var Le=N.length;ce=ce===n?Le:yC(Qs(ce),0,Le);var He=ce;return ce-=V.length,ce>=0&&N.slice(ce,He)==V}function Zti(N){return N=Rl(N),N&&ni.test(N)?N.replace(on,Cye):N}function qti(N){return N=Rl(N),N&&is.test(N)?N.replace(Fr,"\\$&"):N}var Kti=HM(function(N,V,ce){return N+(ce?"-":"")+V.toLowerCase()}),Jti=HM(function(N,V,ce){return N+(ce?" ":"")+V.toLowerCase()}),eni=k$("toLowerCase");function tni(N,V,ce){N=Rl(N),V=Qs(V);var Le=V?zL(N):0;if(!V||Le>=V)return N;var He=(V-Le)/2;return Koe(FE(He),ce)+N+Koe(xM(He),ce)}function nni(N,V,ce){N=Rl(N),V=Qs(V);var Le=V?zL(N):0;return V&&Le>>0,ce?(N=Rl(N),N&&(typeof V=="string"||V!=null&&!bCe(V))&&(V=lr(V),!V&&VL(N))?Zu(I2(N),0,ce):N.split(V,ce)):[]}var cni=HM(function(N,V,ce){return N+(ce?" ":"")+yCe(V)});function dni(N,V,ce){return N=Rl(N),ce=ce==null?0:yC(Qs(ce),0,N.length),V=lr(V),N.slice(ce,ce+V.length)==V}function uni(N,V,ce){var Le=tt.templateSettings;ce&&N1(N,V,ce)&&(V=n),N=Rl(N),V=dse({},V,Le,Tat);var He=dse({},V.imports,Le.imports,Tat),lt=zf(He),yt=YH(He,lt),Qt,Yt,Rn=0,Mn=V.interpolate||bn,Jn="__p += '",Ki=wM((V.escape||bn).source+"|"+Mn.source+"|"+(Mn===rr?Kt:bn).source+"|"+(V.evaluate||bn).source+"|$","g"),Dr="//# sourceURL="+(Ha.call(V,"sourceURL")?(V.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++lye+"]")+` `;N.replace(Ki,function(_o,na,wa,U2,U1,j2){return wa||(wa=U2),Jn+=N.slice(Rn,j2).replace(hn,moe),na&&(Qt=!0,Jn+=`' + @@ -15554,7 +15554,7 @@ __p += '`),wa&&(Jn+=`' + function print() { __p += __j.call(arguments, '') } `:`; `)+Jn+`return __p -}`;var Ms=Olt(function(){return za(lt,Dr+"return "+Jn).apply(n,yt)});if(Ms.source=Jn,pCe(Ms))throw Ms;return Ms}function hni(N){return Rl(N).toLowerCase()}function fni(N){return Rl(N).toUpperCase()}function gni(N,V,ce){if(N=Rl(N),N&&(ce||V===n))return hoe(N);if(!N||!(V=lr(V)))return N;var Le=I2(N),He=I2(V),lt=foe(Le,He),yt=goe(Le,He)+1;return Zu(Le,lt,yt).join("")}function mni(N,V,ce){if(N=Rl(N),N&&(ce||V===n))return N.slice(0,voe(N)+1);if(!N||!(V=lr(V)))return N;var Le=I2(N),He=goe(Le,I2(V))+1;return Zu(Le,0,He).join("")}function kni(N,V,ce){if(N=Rl(N),N&&(ce||V===n))return N.replace(yi,"");if(!N||!(V=lr(V)))return N;var Le=I2(N),He=foe(Le,I2(V));return Zu(Le,He).join("")}function vni(N,V){var ce=E,Le=T;if(qd(V)){var He="separator"in V?V.separator:He;ce="length"in V?Qs(V.length):ce,Le="omission"in V?lr(V.omission):Le}N=Rl(N);var lt=N.length;if(VL(N)){var yt=I2(N);lt=yt.length}if(ce>=lt)return N;var Qt=ce-zL(Le);if(Qt<1)return Le;var Yt=yt?Zu(yt,0,Qt).join(""):N.slice(0,Qt);if(He===n)return Yt+Le;if(yt&&(Qt+=Yt.length-Qt),bCe(He)){if(N.slice(Qt).search(He)){var Rn,Mn=Yt;for(He.global||(He=wM(He.source,Rl(qn.exec(He))+"g")),He.lastIndex=0;Rn=He.exec(Mn);)var Jn=Rn.index;Yt=Yt.slice(0,Jn===n?Qt:Jn)}}else if(N.indexOf(lr(He),Qt)!=Qt){var Ki=Yt.lastIndexOf(He);Ki>-1&&(Yt=Yt.slice(0,Ki))}return Yt+Le}function Ani(N){return N=Rl(N),N&&pn.test(N)?N.replace(dn,Aoe):N}var pni=HM(function(N,V,ce){return N+(ce?" ":"")+V.toUpperCase()}),yCe=k$("toUpperCase");function wlt(N,V,ce){return N=Rl(N),V=ce?n:V,V===n?Sye(N)?Dye(N):Aye(N):N.match(V)||[]}var Olt=qe(function(N,V){try{return B1(N,n,V)}catch(ce){return pCe(ce)?ce:new Jr(ce)}}),bni=EC(function(N,V){return ik(V,function(ce){ce=rw(ce),Mp(N,ce,vCe(N[ce],N))}),N});function wni(N){var V=N==null?0:N.length,ce=vo();return N=V?Hc(N,function(Le){if(typeof Le[1]!="function")throw new rk(a);return[ce(Le[0]),Le[1]]}):[],qe(function(Le){for(var He=-1;++HeI)return[];var ce=W,Le=Yu(N,W);V=vo(V),N-=W;for(var He=GH(Le,V);++ce0||V<0)?new Is(ce):(N<0?ce=ce.takeRight(-N):N&&(ce=ce.drop(N)),V!==n&&(V=Qs(V),ce=V<0?ce.dropRight(-V):ce.take(V-N)),ce)},Is.prototype.takeRightWhile=function(N){return this.reverse().takeWhile(N).reverse()},Is.prototype.toArray=function(){return this.take(W)},M1(Is.prototype,function(N,V){var ce=/^(?:filter|find|map|reject)|While$/.test(V),Le=/^(?:head|last)$/.test(V),He=tt[Le?"take"+(V=="last"?"Right":""):V],lt=Le||/^find/.test(V);He&&(tt.prototype[V]=function(){var yt=this.__wrapped__,Qt=Le?[1]:arguments,Yt=yt instanceof Is,Rn=Qt[0],Mn=Yt||bs(yt),Jn=function(na){var wa=He.apply(tt,q3([na],Qt));return Le&&Ki?wa[0]:wa};Mn&&ce&&typeof Rn=="function"&&Rn.length!=1&&(Yt=Mn=!1);var Ki=this.__chain__,Dr=!!this.__actions__.length,Co=lt&&!Ki,Ms=Yt&&!Dr;if(!lt&&Mn){yt=Ms?yt:new Is(this);var _o=N.apply(yt,Qt);return _o.__actions__.push({func:ise,args:[Jn],thisArg:n}),new I1(_o,Ki)}return Co&&Ms?N.apply(this,Qt):(_o=this.thru(Jn),Co?Le?_o.value()[0]:_o.value():_o)})}),ik(["pop","push","shift","sort","splice","unshift"],function(N){var V=OM[N],ce=/^(?:push|sort|unshift)$/.test(N)?"tap":"thru",Le=/^(?:pop|shift)$/.test(N);tt.prototype[N]=function(){var He=arguments;if(Le&&!this.__chain__){var lt=this.value();return V.apply(bs(lt)?lt:[],He)}return this[ce](function(yt){return V.apply(bs(yt)?yt:[],He)})}}),M1(Is.prototype,function(N,V){var ce=tt[V];if(ce){var Le=ce.name+"";Ha.call(KL,Le)||(KL[Le]=[]),KL[Le].push({name:V,func:ce})}}),KL[Zoe(n,p).name]=[{name:"wrapper",func:n}],Is.prototype.clone=_oe,Is.prototype.reverse=Soe,Is.prototype.value=IM,tt.prototype.at=YJn,tt.prototype.chain=ZJn,tt.prototype.commit=qJn,tt.prototype.next=KJn,tt.prototype.plant=eei,tt.prototype.reverse=tei,tt.prototype.toJSON=tt.prototype.valueOf=tt.prototype.value=nei,tt.prototype.first=tt.prototype.head,PE&&(tt.prototype[PE]=JJn),tt},HL=Bye();pC?((pC.exports=HL)._=HL,jH._=HL):lf._=HL}).call(Ho)})(nve,nve.exports);nve.exports;const jDs={class:"header f ac jb"},WDs={class:"text"},VDs={class:"close"},zDs={class:"chatBox"},HDs={class:"ac",style:{gap:"5px"}},$Ds={class:"settingMenu"},XDs=400,GDs=Je({__name:"index",props:{title:String},emits:["close"],setup(e,{emit:t}){const{project:n}=xs(ph()),{connected:r,messages:o,status:s,episodesId:a,loadingHistory:l}=xs(g0()),d=e,u=t,h=fe("");function g(_){g0().chat(_),h.value=""}function m(){g0().stopGenerate()}function v(){const _=fo.confirm({header:$t("workbench.scriptAgent.msg.reconnect"),body:$t("workbench.scriptAgent.msg.notReconnect"),confirmBtn:$t("workbench.scriptAgent.msg.keepReconnect"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"warning",onConfirm:async()=>{g0().reconnect(),_.destroy()}})}const f={suggestion:_=>{var S;g0().chat((S=_==null?void 0:_.content)==null?void 0:S.prompt)}},k={message:$t("workbench.production.chatBox.messageMemory"),summary:$t("workbench.production.chatBox.summaryMemory"),all:$t("workbench.production.chatBox.allMemory")};function A(_){const S=fo.confirm({header:$t("workbench.production.chatBox.confirmClear"),body:$t("workbench.production.chatBox.confirmClearBody",{type:k[_]}),confirmBtn:$t("workbench.production.chatBox.confirmClearBtn"),cancelBtn:$t("workbench.production.cancel"),theme:"warning",onConfirm:async()=>{var L;await mn.post("/agents/clearMemory",{projectId:(L=n.value)==null?void 0:L.id,agentType:"productionAgent",episodesId:a.value,type:_}),window.$message.success($t("workbench.production.chatBox.memoryCleared",{type:k[_]})),S.destroy(),g0().getHistory()}})}const p=fe(null),b=fe(400),{pressed:w}=Uyi({target:p}),{x:O}=Nyi(),y=fe(0),C=fe(400);return pt(w,_=>{_&&(y.value=O.value,C.value=b.value)}),u6(()=>{if(w.value){const _=window.innerWidth*.8;b.value=Math.min(_,Math.max(XDs,C.value+(y.value-O.value)))}}),(_,S)=>{const L=_n("i-dot"),E=_n("i-click-to-fold"),T=tYn,D=JGn,P=_n("i-setting-config"),Q=Si,M=_n("i-api"),B=_n("i-delete"),R=_n("i-close"),I=_n("i-delete-one"),F=y1,j=eYn,W=f4e("loading");return xe(),Ge("div",{class:"rightChatBox",style:no({width:Ae(b)+"px"})},[ge("div",{ref_key:"resizeHandleRef",ref:p,class:"resizeHandle"},null,512),ge("div",jDs,[ge("span",WDs,[c(L,{theme:"outline",fill:Ae(r)?"green":"red"},null,8,["fill"]),Bt(" "+Pe(d.title),1)]),ge("div",VDs,[c(E,{size:"18",onClick:S[0]||(S[0]=Mr(H=>u("close"),["stop"]))})])]),uu((xe(),Ge("div",zDs,[c(D,{"clear-history":!1},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(o),H=>(xe(),Ut(T,{key:H.id,message:H,name:H.name,placement:H.role==="user"?"right":"left",variant:H.role==="user"?"base":"outline",handleActions:H.role==="user"?{}:f,status:H.status,allowContentSegmentCustom:""},null,8,["message","name","placement","variant","handleActions","status"]))),128))]),_:1}),c(j,{class:"inputBox",disabled:Ae(s)==="pending"||Ae(s)==="streaming"||!Ae(r),modelValue:Ae(h),"onUpdate:modelValue":S[5]||(S[5]=H=>Fn(h)?h.value=H:null),loading:Ae(s)==="pending"||Ae(s)==="streaming",placeholder:_.$t("workbench.production.chatBox.inputPlaceholder"),onSend:g,onStop:m},{"footer-prefix":Oe(()=>[ge("div",HDs,[c(F,{trigger:"click",placement:"top-left"},{content:Oe(()=>[ge("div",$Ds,[ge("div",{class:"settingMenuItem",onClick:S[1]||(S[1]=H=>v())},[c(M,{size:"14"}),ge("span",null,Pe(_.$t("workbench.scriptAgent.reconnect")),1)]),ge("div",{class:"settingMenuItem",onClick:S[2]||(S[2]=H=>A("message"))},[c(B,{size:"14"}),ge("span",null,Pe(_.$t("workbench.production.chatBox.clearMessageMemory")),1)]),ge("div",{class:"settingMenuItem",onClick:S[3]||(S[3]=H=>A("summary"))},[c(R,{size:"14"}),ge("span",null,Pe(_.$t("workbench.production.chatBox.clearSummaryMemory")),1)]),ge("div",{class:"settingMenuItem danger",onClick:S[4]||(S[4]=H=>A("all"))},[c(I,{size:"14"}),ge("span",null,Pe(_.$t("workbench.production.chatBox.clearAllMemory")),1)])])]),default:Oe(()=>[c(Q,{shape:"square",variant:"outline",size:"small"},{icon:Oe(()=>[c(P,{size:"16"})]),_:1})]),_:1})])]),_:1},8,["disabled","modelValue","loading","placeholder"])])),[[W,Ae(l)]])],4)}}}),YDs=oo(GDs,[["__scopeId","data-v-776e6435"]]),ZDs={class:"floatingWindow"},qDs={class:"episodesSelect f ac"},KDs=Je({__name:"index",setup(e){const{project:t}=xs(ph()),{canvasWheelEvent:n,otherSetting:r}=xs(ku()),o=fe(!0),{toObject:s,fromObject:a,fitView:l,findNode:d,onNodeDragStart:u,onNodeDragStop:h,onMoveStart:g,onMoveEnd:m,updateNodeInternals:v,getNodes:f,getViewport:k,setViewport:A}=nl(),p=fe(!1);let b={x:0,y:0,vx:0,vy:0};function w(oe){if(!p.value||oe.button!==0)return;oe.stopPropagation(),oe.preventDefault();const se=k();b={x:oe.clientX,y:oe.clientY,vx:se.x,vy:se.y},document.addEventListener("mousemove",O),document.addEventListener("mouseup",y,{once:!0})}function O(oe){A({x:b.vx+oe.clientX-b.x,y:b.vy+oe.clientY-b.y,zoom:k().zoom})}function y(){document.removeEventListener("mousemove",O)}Yg(document,"keydown",oe=>{oe.code==="Space"&&!oe.repeat&&(oe.preventDefault(),p.value=!0)}),Yg(document,"keyup",oe=>{oe.code==="Space"&&(p.value=!1)});const C=fe(!1);let _=null;function S(){_&&clearTimeout(_),C.value=!0}function L(){_&&clearTimeout(_),_=setTimeout(()=>{C.value=!1},150)}u(()=>S()),g(()=>S()),m(()=>L());const{layout:E}=eqn(),{episodesId:T,flowData:D,status:P}=xs(g0());Yi("episodesId",T);const Q=fe(!1),M=fe({script:{x:0,y:0},scriptPlan:{x:900,y:0},assets:{x:1200,y:4e3},storyboardTable:{x:1800,y:0},storyboard:{x:2500,y:0},workbench:{x:3e3,y:0}}),{nodes:B,edges:R}=u8s(D,M);h(async({nodes:oe})=>{await ai(),L();for(const se of oe)M.value[se.id]={x:se.position.x,y:se.position.y}}),pt(D,()=>{for(const oe of f.value)M.value[oe.id]={x:oe.position.x,y:oe.position.y}},{deep:!0});async function I(oe=60,se=100){for(;oe-- >0;){const le=f.value;if(le.length>0&&le.every(ee=>{var de;return((de=ee.dimensions)==null?void 0:de.width)&&ee.dimensions.width>0}))return!0;await new Promise(ue=>setTimeout(ue,se))}return!1}An(async()=>{if(await H(),!T.value)return;await I()&&await $()});const F=fe([]);function j(){return P.value!=="pending"&&P.value!=="streaming"?Promise.resolve(!0):new Promise(oe=>{const se=fo.confirm({header:$t("workbench.production.confirm"),body:$t("workbench.production.confirmEpisodesSwitch"),confirmBtn:$t("workbench.production.save"),cancelBtn:$t("workbench.production.cancel"),theme:"warning",onConfirm:()=>{se.destroy(),oe(!0)},onCancel:()=>{se.destroy(),oe(!1)},onClose:()=>{se.destroy(),oe(!1)}})})}function W(oe){const se=Array.isArray(oe)?oe[0]:oe,le=Number(se);!Number.isFinite(le)||le===T.value||(async()=>await j()&&(T.value=le,await g0().getFlowData()))()}async function H(){var se;const{data:oe}=await mn.post("/script/getScrptApi",{projectId:(se=t.value)==null?void 0:se.id,name:""});F.value=oe.map(le=>({label:le.name,value:le.id})),F.value.length&&(T.value=F.value[0].value),await g0().getHistory()}async function $(oe="LR"){var ie,te;await ai();const se=f.value.map(Z=>Z.id);v(se),await ai();let le=30,ue="",ee=0;for(;le-- >0;){if(se.every(he=>{var Ce;const pe=d(he);return((Ce=pe==null?void 0:pe.dimensions)==null?void 0:Ce.width)&&pe.dimensions.width>0})){const he=se.map(pe=>{var Qe,ke;const Ce=d(pe);return`${pe}:${(Qe=Ce==null?void 0:Ce.dimensions)==null?void 0:Qe.width}x${(ke=Ce==null?void 0:Ce.dimensions)==null?void 0:ke.height}`}).join(",");if(he===ue){if(ee++,ee>=2)break}else ee=0,ue=he}await new Promise(he=>setTimeout(he,80))}const de=s(),z=new Map;for(const Z of de.nodes){const he=d(Z.id);z.set(Z.id,{w:((ie=he==null?void 0:he.dimensions)==null?void 0:ie.width)??150,h:((te=he==null?void 0:he.dimensions)==null?void 0:te.height)??50})}const Y=80;if(oe==="LR"){const he=["script","scriptPlan","storyboardTable","storyboard","workbench","poster"].filter(me=>de.nodes.some(_e=>_e.id===me));let pe=0;for(const me of he){const _e=de.nodes.find(De=>De.id===me),Te=z.get(me);!_e||!Te||(_e.position.x=pe,_e.position.y=0,pe+=Te.w+Y)}const Ce=de.nodes.find(me=>me.id==="script"),Qe=de.nodes.find(me=>me.id==="assets"),ke=z.get("script");if(Ce&&Qe&&ke&&(Qe.position.x=Ce.position.x,Qe.position.y=Ce.position.y+ke.h+Y),Qe){const me=z.get("assets");if(me){const _e=Qe.position.x+me.w,Te=Qe.position.y,De=Te+me.h;for(const Ye of he){if(Ye==="script")continue;const ot=de.nodes.find(Se=>Se.id===Ye),We=z.get(Ye);if(!ot||!We)continue;const et=ot.position.y,st=et+We.h;if(Teet&&ot.position.x<_e){const Se=_e+Y-ot.position.x,Ie=he.indexOf(Ye);for(let ze=Ie;zegt.id===he[ze]);Ze&&(Ze.position.x+=Se)}break}}}}}else{const Z=[...z.values()].map(me=>me.w),he=[...z.values()].map(me=>me.h),pe=Z.length?Z.reduce((me,_e)=>me+_e,0)/Z.length:150,Qe=(he.length?he.reduce((me,_e)=>me+_e,0)/he.length:50)*.5+Y,ke=pe*.3+Y;de.nodes=E(de.nodes,de.edges,oe,ke,Qe)}await a(de),await ai();for(const Z of f.value)M.value[Z.id]={x:Z.position.x,y:Z.position.y};l({duration:300})}const G=X(()=>{const oe=F.value.find(se=>se.value===T.value);return oe?oe.label:""});pt(()=>T.value,async oe=>{!oe||oe<0||(await q(),g0().updateContext(),await g0().getHistory())});async function q(){await g0().getFlowData(),$()}const re=q4e("productionCurrent",0),J=[{element:".episodesSelect",title:$t("workbench.production.guideSwitchEpisode"),body:$t("workbench.production.guideSwitchEpisodeBody"),placement:"bottom"},{element:".guide-refresh-btn",title:$t("workbench.production.guideRefresh"),body:$t("workbench.production.guideRefreshBody"),placement:"bottom"},{element:".guide-layout-btn",title:$t("workbench.production.guideLayoutBtn"),body:$t("workbench.production.guideLayoutBtnBody"),placement:"bottom"},{element:".vue-flow__controls",title:$t("workbench.production.guideCanvasNav"),body:$t("workbench.production.guideCanvasNavBody"),placement:"right"}];return(oe,se)=>{const le=_n("i-document-folder"),ue=pA,ee=_n("i-refresh"),de=Si,z=el,Y=_n("i-tree-diagram"),ie=_n("i-loading-four"),te=_n("i-menu-unfold-one"),Z=S3i;return xe(),Ut(Ae(wZn),{class:Eo(["flowMain",{"is-interacting":Ae(C)&&Ae(r).interacting,"space-dragging":Ae(p)}]),onMousedown:w,nodes:Ae(T)?Ae(B):[],edges:Ae(T)?Ae(R):[],"nodes-draggable":!Ae(p),"nodes-connectable":!Ae(p),"elements-selectable":!Ae(p),"max-zoom":10,"min-zoom":.1,"fit-view-on-init":"","pan-on-scroll":Ae(n)=="scroll","zoom-on-scroll":Ae(n)=="zoom","selection-key-code":null,"multi-selection-key-code":null},{"node-script":Oe(he=>[c(Eys,{id:he.id,modelValue:Ae(D).script,"onUpdate:modelValue":se[0]||(se[0]=pe=>Ae(D).script=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-scriptPlan":Oe(he=>[c(Rys,{id:he.id,modelValue:Ae(D).scriptPlan,"onUpdate:modelValue":se[1]||(se[1]=pe=>Ae(D).scriptPlan=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-storyboardTable":Oe(he=>[c(j8s,{id:he.id,modelValue:Ae(D).storyboardTable,"onUpdate:modelValue":se[2]||(se[2]=pe=>Ae(D).storyboardTable=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-assets":Oe(he=>[c(M8s,{id:he.id,modelValue:Ae(D).assets,"onUpdate:modelValue":se[3]||(se[3]=pe=>Ae(D).assets=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-storyboard":Oe(he=>[c(iLs,{id:he.id,modelValue:Ae(D).storyboard,"onUpdate:modelValue":se[4]||(se[4]=pe=>Ae(D).storyboard=pe),assetsData:Ae(D).assets,handleIds:he.data.handleIds},null,8,["id","modelValue","assetsData","handleIds"])]),"node-workbench":Oe(he=>[c(UDs,{id:he.id,modelValue:Ae(D).workbench,"onUpdate:modelValue":se[5]||(se[5]=pe=>Ae(D).workbench=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),default:Oe(()=>[c(Ae(_Zn)),c(Ae(SZn)),ge("div",ZDs,[ge("div",qDs,[c(ue,{value:Ae(T),placeholder:oe.$t("workbench.production.selectPlaceholder"),autoWidth:"",options:Ae(F),filterable:"",onChange:W},{label:Oe(()=>[c(le,{size:"24"})]),_:1},8,["value","placeholder","options"]),c(z,{placement:"bottom",theme:"primary",content:oe.$t("workbench.production.getFlowData")},{default:Oe(()=>[c(de,{class:"guide-refresh-btn",onClick:q,variant:"outline"},{icon:Oe(()=>[c(ee,{size:"16"})]),_:1})]),_:1},8,["content"]),c(z,{placement:"bottom",theme:"primary",content:oe.$t("workbench.production.autoLayoutLR")},{default:Oe(()=>[c(de,{class:"guide-layout-btn",onClick:se[6]||(se[6]=he=>$()),variant:"outline",style:{"margin-left":"8px"}},{icon:Oe(()=>[c(Y,{size:"16"})]),_:1})]),_:1},8,["content"]),uu(c(ie,{class:"spin",size:"16",style:{"margin-left":"0.5rem"}},null,512),[[h1,Ae(Q)]])]),uu(ge("div",{class:"openRightChatBoxBtn c",onClick:se[7]||(se[7]=Mr(he=>o.value=!0,["stop"]))},[c(te,{theme:"outline",size:"24",fill:"#000000"})],512),[[h1,!Ae(o)]]),Ae(T)?uu((xe(),Ut(A8,{key:0,name:"slide"},{default:Oe(()=>[c(YDs,{title:Ae(G),modelValue:Ae(D),"onUpdate:modelValue":se[8]||(se[8]=he=>Fn(D)?D.value=he:null),onClose:se[9]||(se[9]=he=>o.value=!1)},null,8,["title","modelValue"])]),_:1},512)),[[h1,Ae(o)]]):nn("",!0)]),c(Z,{modelValue:Ae(re),"onUpdate:modelValue":se[10]||(se[10]=he=>Fn(re)?re.value=he:null),steps:J,onFinish:se[11]||(se[11]=()=>re.value=-1)},null,8,["modelValue"])]),_:1},8,["class","nodes","edges","nodes-draggable","nodes-connectable","elements-selectable","pan-on-scroll","zoom-on-scroll"])}}}),JDs=oo(KDs,[["__scopeId","data-v-04a9fb7e"]]),eBs=Object.freeze(Object.defineProperty({__proto__:null,default:JDs},Symbol.toStringTag,{value:"Module"})),tBs={class:"test"},nBs=Je({__name:"index",setup(e){const t=fe("");function n(){mn.get("/test/test").then(r=>{t.value=r})}return(r,o)=>{const s=Si;return xe(),Ge("div",tBs,[c(s,{theme:"primary",onClick:n},{default:Oe(()=>[...o[0]||(o[0]=[Bt("测试按钮",-1)])]),_:1}),ge("pre",null," "+Pe(Ae(t))+` +}`;var Ms=Olt(function(){return za(lt,Dr+"return "+Jn).apply(n,yt)});if(Ms.source=Jn,pCe(Ms))throw Ms;return Ms}function hni(N){return Rl(N).toLowerCase()}function fni(N){return Rl(N).toUpperCase()}function gni(N,V,ce){if(N=Rl(N),N&&(ce||V===n))return hoe(N);if(!N||!(V=lr(V)))return N;var Le=I2(N),He=I2(V),lt=foe(Le,He),yt=goe(Le,He)+1;return Zu(Le,lt,yt).join("")}function mni(N,V,ce){if(N=Rl(N),N&&(ce||V===n))return N.slice(0,voe(N)+1);if(!N||!(V=lr(V)))return N;var Le=I2(N),He=goe(Le,I2(V))+1;return Zu(Le,0,He).join("")}function kni(N,V,ce){if(N=Rl(N),N&&(ce||V===n))return N.replace(yi,"");if(!N||!(V=lr(V)))return N;var Le=I2(N),He=foe(Le,I2(V));return Zu(Le,He).join("")}function vni(N,V){var ce=E,Le=T;if(qd(V)){var He="separator"in V?V.separator:He;ce="length"in V?Qs(V.length):ce,Le="omission"in V?lr(V.omission):Le}N=Rl(N);var lt=N.length;if(VL(N)){var yt=I2(N);lt=yt.length}if(ce>=lt)return N;var Qt=ce-zL(Le);if(Qt<1)return Le;var Yt=yt?Zu(yt,0,Qt).join(""):N.slice(0,Qt);if(He===n)return Yt+Le;if(yt&&(Qt+=Yt.length-Qt),bCe(He)){if(N.slice(Qt).search(He)){var Rn,Mn=Yt;for(He.global||(He=wM(He.source,Rl(qn.exec(He))+"g")),He.lastIndex=0;Rn=He.exec(Mn);)var Jn=Rn.index;Yt=Yt.slice(0,Jn===n?Qt:Jn)}}else if(N.indexOf(lr(He),Qt)!=Qt){var Ki=Yt.lastIndexOf(He);Ki>-1&&(Yt=Yt.slice(0,Ki))}return Yt+Le}function Ani(N){return N=Rl(N),N&&pn.test(N)?N.replace(dn,Aoe):N}var pni=HM(function(N,V,ce){return N+(ce?" ":"")+V.toUpperCase()}),yCe=k$("toUpperCase");function wlt(N,V,ce){return N=Rl(N),V=ce?n:V,V===n?Sye(N)?Dye(N):Aye(N):N.match(V)||[]}var Olt=qe(function(N,V){try{return B1(N,n,V)}catch(ce){return pCe(ce)?ce:new Jr(ce)}}),bni=EC(function(N,V){return ik(V,function(ce){ce=rw(ce),Mp(N,ce,vCe(N[ce],N))}),N});function wni(N){var V=N==null?0:N.length,ce=vo();return N=V?Hc(N,function(Le){if(typeof Le[1]!="function")throw new rk(a);return[ce(Le[0]),Le[1]]}):[],qe(function(Le){for(var He=-1;++HeI)return[];var ce=W,Le=Yu(N,W);V=vo(V),N-=W;for(var He=GH(Le,V);++ce0||V<0)?new Is(ce):(N<0?ce=ce.takeRight(-N):N&&(ce=ce.drop(N)),V!==n&&(V=Qs(V),ce=V<0?ce.dropRight(-V):ce.take(V-N)),ce)},Is.prototype.takeRightWhile=function(N){return this.reverse().takeWhile(N).reverse()},Is.prototype.toArray=function(){return this.take(W)},M1(Is.prototype,function(N,V){var ce=/^(?:filter|find|map|reject)|While$/.test(V),Le=/^(?:head|last)$/.test(V),He=tt[Le?"take"+(V=="last"?"Right":""):V],lt=Le||/^find/.test(V);He&&(tt.prototype[V]=function(){var yt=this.__wrapped__,Qt=Le?[1]:arguments,Yt=yt instanceof Is,Rn=Qt[0],Mn=Yt||bs(yt),Jn=function(na){var wa=He.apply(tt,q3([na],Qt));return Le&&Ki?wa[0]:wa};Mn&&ce&&typeof Rn=="function"&&Rn.length!=1&&(Yt=Mn=!1);var Ki=this.__chain__,Dr=!!this.__actions__.length,Co=lt&&!Ki,Ms=Yt&&!Dr;if(!lt&&Mn){yt=Ms?yt:new Is(this);var _o=N.apply(yt,Qt);return _o.__actions__.push({func:ise,args:[Jn],thisArg:n}),new I1(_o,Ki)}return Co&&Ms?N.apply(this,Qt):(_o=this.thru(Jn),Co?Le?_o.value()[0]:_o.value():_o)})}),ik(["pop","push","shift","sort","splice","unshift"],function(N){var V=OM[N],ce=/^(?:push|sort|unshift)$/.test(N)?"tap":"thru",Le=/^(?:pop|shift)$/.test(N);tt.prototype[N]=function(){var He=arguments;if(Le&&!this.__chain__){var lt=this.value();return V.apply(bs(lt)?lt:[],He)}return this[ce](function(yt){return V.apply(bs(yt)?yt:[],He)})}}),M1(Is.prototype,function(N,V){var ce=tt[V];if(ce){var Le=ce.name+"";Ha.call(KL,Le)||(KL[Le]=[]),KL[Le].push({name:V,func:ce})}}),KL[Zoe(n,p).name]=[{name:"wrapper",func:n}],Is.prototype.clone=_oe,Is.prototype.reverse=Soe,Is.prototype.value=IM,tt.prototype.at=YJn,tt.prototype.chain=ZJn,tt.prototype.commit=qJn,tt.prototype.next=KJn,tt.prototype.plant=eei,tt.prototype.reverse=tei,tt.prototype.toJSON=tt.prototype.valueOf=tt.prototype.value=nei,tt.prototype.first=tt.prototype.head,PE&&(tt.prototype[PE]=JJn),tt},HL=Bye();pC?((pC.exports=HL)._=HL,jH._=HL):lf._=HL}).call(Ho)})(nve,nve.exports);nve.exports;const jDs={class:"header f ac jb"},WDs={class:"text"},VDs={class:"close"},zDs={class:"chatBox"},HDs={class:"ac",style:{gap:"5px"}},$Ds={class:"settingMenu"},XDs=400,GDs=Je({__name:"index",props:{title:String},emits:["close"],setup(e,{emit:t}){const{project:n}=xs(ph()),{connected:r,messages:o,status:s,episodesId:a,loadingHistory:l}=xs(g0()),d=e,u=t,h=fe("");function g(_){g0().chat(_),h.value=""}function m(){g0().stopGenerate()}function v(){const _=co.confirm({header:$t("workbench.scriptAgent.msg.reconnect"),body:$t("workbench.scriptAgent.msg.notReconnect"),confirmBtn:$t("workbench.scriptAgent.msg.keepReconnect"),cancelBtn:$t("workbench.scriptAgent.msg.cancel"),theme:"warning",onConfirm:async()=>{g0().reconnect(),_.destroy()}})}const f={suggestion:_=>{var S;g0().chat((S=_==null?void 0:_.content)==null?void 0:S.prompt)}},k={message:$t("workbench.production.chatBox.messageMemory"),summary:$t("workbench.production.chatBox.summaryMemory"),all:$t("workbench.production.chatBox.allMemory")};function A(_){const S=co.confirm({header:$t("workbench.production.chatBox.confirmClear"),body:$t("workbench.production.chatBox.confirmClearBody",{type:k[_]}),confirmBtn:$t("workbench.production.chatBox.confirmClearBtn"),cancelBtn:$t("workbench.production.cancel"),theme:"warning",onConfirm:async()=>{var L;await mn.post("/agents/clearMemory",{projectId:(L=n.value)==null?void 0:L.id,agentType:"productionAgent",episodesId:a.value,type:_}),window.$message.success($t("workbench.production.chatBox.memoryCleared",{type:k[_]})),S.destroy(),g0().getHistory()}})}const p=fe(null),b=fe(400),{pressed:w}=Uyi({target:p}),{x:O}=Nyi(),y=fe(0),C=fe(400);return pt(w,_=>{_&&(y.value=O.value,C.value=b.value)}),u6(()=>{if(w.value){const _=window.innerWidth*.8;b.value=Math.min(_,Math.max(XDs,C.value+(y.value-O.value)))}}),(_,S)=>{const L=_n("i-dot"),E=_n("i-click-to-fold"),T=tYn,D=JGn,P=_n("i-setting-config"),Q=Si,M=_n("i-api"),B=_n("i-delete"),R=_n("i-close"),I=_n("i-delete-one"),F=y1,j=eYn,W=f4e("loading");return xe(),Ge("div",{class:"rightChatBox",style:no({width:Ae(b)+"px"})},[ge("div",{ref_key:"resizeHandleRef",ref:p,class:"resizeHandle"},null,512),ge("div",jDs,[ge("span",WDs,[c(L,{theme:"outline",fill:Ae(r)?"green":"red"},null,8,["fill"]),Bt(" "+Pe(d.title),1)]),ge("div",VDs,[c(E,{size:"18",onClick:S[0]||(S[0]=Mr(H=>u("close"),["stop"]))})])]),uu((xe(),Ge("div",zDs,[c(D,{"clear-history":!1},{default:Oe(()=>[(xe(!0),Ge(sn,null,Bi(Ae(o),H=>(xe(),Ut(T,{key:H.id,message:H,name:H.name,placement:H.role==="user"?"right":"left",variant:H.role==="user"?"base":"outline",handleActions:H.role==="user"?{}:f,status:H.status,allowContentSegmentCustom:""},null,8,["message","name","placement","variant","handleActions","status"]))),128))]),_:1}),c(j,{class:"inputBox",disabled:Ae(s)==="pending"||Ae(s)==="streaming"||!Ae(r),modelValue:Ae(h),"onUpdate:modelValue":S[5]||(S[5]=H=>Fn(h)?h.value=H:null),loading:Ae(s)==="pending"||Ae(s)==="streaming",placeholder:_.$t("workbench.production.chatBox.inputPlaceholder"),onSend:g,onStop:m},{"footer-prefix":Oe(()=>[ge("div",HDs,[c(F,{trigger:"click",placement:"top-left"},{content:Oe(()=>[ge("div",$Ds,[ge("div",{class:"settingMenuItem",onClick:S[1]||(S[1]=H=>v())},[c(M,{size:"14"}),ge("span",null,Pe(_.$t("workbench.scriptAgent.reconnect")),1)]),ge("div",{class:"settingMenuItem",onClick:S[2]||(S[2]=H=>A("message"))},[c(B,{size:"14"}),ge("span",null,Pe(_.$t("workbench.production.chatBox.clearMessageMemory")),1)]),ge("div",{class:"settingMenuItem",onClick:S[3]||(S[3]=H=>A("summary"))},[c(R,{size:"14"}),ge("span",null,Pe(_.$t("workbench.production.chatBox.clearSummaryMemory")),1)]),ge("div",{class:"settingMenuItem danger",onClick:S[4]||(S[4]=H=>A("all"))},[c(I,{size:"14"}),ge("span",null,Pe(_.$t("workbench.production.chatBox.clearAllMemory")),1)])])]),default:Oe(()=>[c(Q,{shape:"square",variant:"outline",size:"small"},{icon:Oe(()=>[c(P,{size:"16"})]),_:1})]),_:1})])]),_:1},8,["disabled","modelValue","loading","placeholder"])])),[[W,Ae(l)]])],4)}}}),YDs=oo(GDs,[["__scopeId","data-v-776e6435"]]),ZDs={class:"floatingWindow"},qDs={class:"episodesSelect f ac"},KDs=Je({__name:"index",setup(e){const{project:t}=xs(ph()),{canvasWheelEvent:n,otherSetting:r}=xs(ku()),o=fe(!0),{toObject:s,fromObject:a,fitView:l,findNode:d,onNodeDragStart:u,onNodeDragStop:h,onMoveStart:g,onMoveEnd:m,updateNodeInternals:v,getNodes:f,getViewport:k,setViewport:A}=nl(),p=fe(!1);let b={x:0,y:0,vx:0,vy:0};function w(oe){if(!p.value||oe.button!==0)return;oe.stopPropagation(),oe.preventDefault();const se=k();b={x:oe.clientX,y:oe.clientY,vx:se.x,vy:se.y},document.addEventListener("mousemove",O),document.addEventListener("mouseup",y,{once:!0})}function O(oe){A({x:b.vx+oe.clientX-b.x,y:b.vy+oe.clientY-b.y,zoom:k().zoom})}function y(){document.removeEventListener("mousemove",O)}Yg(document,"keydown",oe=>{oe.code==="Space"&&!oe.repeat&&(oe.preventDefault(),p.value=!0)}),Yg(document,"keyup",oe=>{oe.code==="Space"&&(p.value=!1)});const C=fe(!1);let _=null;function S(){_&&clearTimeout(_),C.value=!0}function L(){_&&clearTimeout(_),_=setTimeout(()=>{C.value=!1},150)}u(()=>S()),g(()=>S()),m(()=>L());const{layout:E}=eqn(),{episodesId:T,flowData:D,status:P}=xs(g0());Yi("episodesId",T);const Q=fe(!1),M=fe({script:{x:0,y:0},scriptPlan:{x:900,y:0},assets:{x:1200,y:4e3},storyboardTable:{x:1800,y:0},storyboard:{x:2500,y:0},workbench:{x:3e3,y:0}}),{nodes:B,edges:R}=u8s(D,M);h(async({nodes:oe})=>{await ai(),L();for(const se of oe)M.value[se.id]={x:se.position.x,y:se.position.y}}),pt(D,()=>{for(const oe of f.value)M.value[oe.id]={x:oe.position.x,y:oe.position.y}},{deep:!0});async function I(oe=60,se=100){for(;oe-- >0;){const le=f.value;if(le.length>0&&le.every(ee=>{var de;return((de=ee.dimensions)==null?void 0:de.width)&&ee.dimensions.width>0}))return!0;await new Promise(ue=>setTimeout(ue,se))}return!1}An(async()=>{if(await H(),!T.value)return;await I()&&await $()});const F=fe([]);function j(){return P.value!=="pending"&&P.value!=="streaming"?Promise.resolve(!0):new Promise(oe=>{const se=co.confirm({header:$t("workbench.production.confirm"),body:$t("workbench.production.confirmEpisodesSwitch"),confirmBtn:$t("workbench.production.save"),cancelBtn:$t("workbench.production.cancel"),theme:"warning",onConfirm:()=>{se.destroy(),oe(!0)},onCancel:()=>{se.destroy(),oe(!1)},onClose:()=>{se.destroy(),oe(!1)}})})}function W(oe){const se=Array.isArray(oe)?oe[0]:oe,le=Number(se);!Number.isFinite(le)||le===T.value||(async()=>await j()&&(T.value=le,await g0().getFlowData()))()}async function H(){var se;const{data:oe}=await mn.post("/script/getScrptApi",{projectId:(se=t.value)==null?void 0:se.id,name:""});F.value=oe.map(le=>({label:le.name,value:le.id})),F.value.length&&(T.value=F.value[0].value),await g0().getHistory()}async function $(oe="LR"){var ie,te;await ai();const se=f.value.map(Z=>Z.id);v(se),await ai();let le=30,ue="",ee=0;for(;le-- >0;){if(se.every(he=>{var Ce;const pe=d(he);return((Ce=pe==null?void 0:pe.dimensions)==null?void 0:Ce.width)&&pe.dimensions.width>0})){const he=se.map(pe=>{var Qe,ke;const Ce=d(pe);return`${pe}:${(Qe=Ce==null?void 0:Ce.dimensions)==null?void 0:Qe.width}x${(ke=Ce==null?void 0:Ce.dimensions)==null?void 0:ke.height}`}).join(",");if(he===ue){if(ee++,ee>=2)break}else ee=0,ue=he}await new Promise(he=>setTimeout(he,80))}const de=s(),z=new Map;for(const Z of de.nodes){const he=d(Z.id);z.set(Z.id,{w:((ie=he==null?void 0:he.dimensions)==null?void 0:ie.width)??150,h:((te=he==null?void 0:he.dimensions)==null?void 0:te.height)??50})}const Y=80;if(oe==="LR"){const he=["script","scriptPlan","storyboardTable","storyboard","workbench","poster"].filter(me=>de.nodes.some(_e=>_e.id===me));let pe=0;for(const me of he){const _e=de.nodes.find(De=>De.id===me),Te=z.get(me);!_e||!Te||(_e.position.x=pe,_e.position.y=0,pe+=Te.w+Y)}const Ce=de.nodes.find(me=>me.id==="script"),Qe=de.nodes.find(me=>me.id==="assets"),ke=z.get("script");if(Ce&&Qe&&ke&&(Qe.position.x=Ce.position.x,Qe.position.y=Ce.position.y+ke.h+Y),Qe){const me=z.get("assets");if(me){const _e=Qe.position.x+me.w,Te=Qe.position.y,De=Te+me.h;for(const Ye of he){if(Ye==="script")continue;const ot=de.nodes.find(Se=>Se.id===Ye),We=z.get(Ye);if(!ot||!We)continue;const et=ot.position.y,st=et+We.h;if(Teet&&ot.position.x<_e){const Se=_e+Y-ot.position.x,Ie=he.indexOf(Ye);for(let ze=Ie;zegt.id===he[ze]);Ze&&(Ze.position.x+=Se)}break}}}}}else{const Z=[...z.values()].map(me=>me.w),he=[...z.values()].map(me=>me.h),pe=Z.length?Z.reduce((me,_e)=>me+_e,0)/Z.length:150,Qe=(he.length?he.reduce((me,_e)=>me+_e,0)/he.length:50)*.5+Y,ke=pe*.3+Y;de.nodes=E(de.nodes,de.edges,oe,ke,Qe)}await a(de),await ai();for(const Z of f.value)M.value[Z.id]={x:Z.position.x,y:Z.position.y};l({duration:300})}const G=X(()=>{const oe=F.value.find(se=>se.value===T.value);return oe?oe.label:""});pt(()=>T.value,async oe=>{!oe||oe<0||(await q(),g0().updateContext(),await g0().getHistory())});async function q(){await g0().getFlowData(),$()}const re=q4e("productionCurrent",0),J=[{element:".episodesSelect",title:$t("workbench.production.guideSwitchEpisode"),body:$t("workbench.production.guideSwitchEpisodeBody"),placement:"bottom"},{element:".guide-refresh-btn",title:$t("workbench.production.guideRefresh"),body:$t("workbench.production.guideRefreshBody"),placement:"bottom"},{element:".guide-layout-btn",title:$t("workbench.production.guideLayoutBtn"),body:$t("workbench.production.guideLayoutBtnBody"),placement:"bottom"},{element:".vue-flow__controls",title:$t("workbench.production.guideCanvasNav"),body:$t("workbench.production.guideCanvasNavBody"),placement:"right"}];return(oe,se)=>{const le=_n("i-document-folder"),ue=pA,ee=_n("i-refresh"),de=Si,z=el,Y=_n("i-tree-diagram"),ie=_n("i-loading-four"),te=_n("i-menu-unfold-one"),Z=S3i;return xe(),Ut(Ae(wZn),{class:Eo(["flowMain",{"is-interacting":Ae(C)&&Ae(r).interacting,"space-dragging":Ae(p)}]),onMousedown:w,nodes:Ae(T)?Ae(B):[],edges:Ae(T)?Ae(R):[],"nodes-draggable":!Ae(p),"nodes-connectable":!Ae(p),"elements-selectable":!Ae(p),"max-zoom":10,"min-zoom":.1,"fit-view-on-init":"","pan-on-scroll":Ae(n)=="scroll","zoom-on-scroll":Ae(n)=="zoom","selection-key-code":null,"multi-selection-key-code":null},{"node-script":Oe(he=>[c(Eys,{id:he.id,modelValue:Ae(D).script,"onUpdate:modelValue":se[0]||(se[0]=pe=>Ae(D).script=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-scriptPlan":Oe(he=>[c(Rys,{id:he.id,modelValue:Ae(D).scriptPlan,"onUpdate:modelValue":se[1]||(se[1]=pe=>Ae(D).scriptPlan=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-storyboardTable":Oe(he=>[c(j8s,{id:he.id,modelValue:Ae(D).storyboardTable,"onUpdate:modelValue":se[2]||(se[2]=pe=>Ae(D).storyboardTable=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-assets":Oe(he=>[c(M8s,{id:he.id,modelValue:Ae(D).assets,"onUpdate:modelValue":se[3]||(se[3]=pe=>Ae(D).assets=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),"node-storyboard":Oe(he=>[c(iLs,{id:he.id,modelValue:Ae(D).storyboard,"onUpdate:modelValue":se[4]||(se[4]=pe=>Ae(D).storyboard=pe),assetsData:Ae(D).assets,handleIds:he.data.handleIds},null,8,["id","modelValue","assetsData","handleIds"])]),"node-workbench":Oe(he=>[c(UDs,{id:he.id,modelValue:Ae(D).workbench,"onUpdate:modelValue":se[5]||(se[5]=pe=>Ae(D).workbench=pe),handleIds:he.data.handleIds},null,8,["id","modelValue","handleIds"])]),default:Oe(()=>[c(Ae(_Zn)),c(Ae(SZn)),ge("div",ZDs,[ge("div",qDs,[c(ue,{value:Ae(T),placeholder:oe.$t("workbench.production.selectPlaceholder"),autoWidth:"",options:Ae(F),filterable:"",onChange:W},{label:Oe(()=>[c(le,{size:"24"})]),_:1},8,["value","placeholder","options"]),c(z,{placement:"bottom",theme:"primary",content:oe.$t("workbench.production.getFlowData")},{default:Oe(()=>[c(de,{class:"guide-refresh-btn",onClick:q,variant:"outline"},{icon:Oe(()=>[c(ee,{size:"16"})]),_:1})]),_:1},8,["content"]),c(z,{placement:"bottom",theme:"primary",content:oe.$t("workbench.production.autoLayoutLR")},{default:Oe(()=>[c(de,{class:"guide-layout-btn",onClick:se[6]||(se[6]=he=>$()),variant:"outline",style:{"margin-left":"8px"}},{icon:Oe(()=>[c(Y,{size:"16"})]),_:1})]),_:1},8,["content"]),uu(c(ie,{class:"spin",size:"16",style:{"margin-left":"0.5rem"}},null,512),[[h1,Ae(Q)]])]),uu(ge("div",{class:"openRightChatBoxBtn c",onClick:se[7]||(se[7]=Mr(he=>o.value=!0,["stop"]))},[c(te,{theme:"outline",size:"24",fill:"#000000"})],512),[[h1,!Ae(o)]]),Ae(T)?uu((xe(),Ut(A8,{key:0,name:"slide"},{default:Oe(()=>[c(YDs,{title:Ae(G),modelValue:Ae(D),"onUpdate:modelValue":se[8]||(se[8]=he=>Fn(D)?D.value=he:null),onClose:se[9]||(se[9]=he=>o.value=!1)},null,8,["title","modelValue"])]),_:1},512)),[[h1,Ae(o)]]):nn("",!0)]),c(Z,{modelValue:Ae(re),"onUpdate:modelValue":se[10]||(se[10]=he=>Fn(re)?re.value=he:null),steps:J,onFinish:se[11]||(se[11]=()=>re.value=-1)},null,8,["modelValue"])]),_:1},8,["class","nodes","edges","nodes-draggable","nodes-connectable","elements-selectable","pan-on-scroll","zoom-on-scroll"])}}}),JDs=oo(KDs,[["__scopeId","data-v-04a9fb7e"]]),eBs=Object.freeze(Object.defineProperty({__proto__:null,default:JDs},Symbol.toStringTag,{value:"Module"})),tBs={class:"test"},nBs=Je({__name:"index",setup(e){const t=fe("");function n(){mn.get("/test/test").then(r=>{t.value=r})}return(r,o)=>{const s=Si;return xe(),Ge("div",tBs,[c(s,{theme:"primary",onClick:n},{default:Oe(()=>[...o[0]||(o[0]=[Bt("测试按钮",-1)])]),_:1}),ge("pre",null," "+Pe(Ae(t))+` `,1)])}}}),iBs=Object.freeze(Object.defineProperty({__proto__:null,default:nBs},Symbol.toStringTag,{value:"Module"})),rBs={class:"formBox"},oBs={class:"logoBox fc"},sBs=["src"],aBs={class:"fc c"},lBs={class:"slogan"},cBs={class:"login-form"},dBs={class:"tips c"},uBs={class:"settingBtn"},hBs={__name:"index",setup(e){const{locale:t}=aI(),n=GZe.map(m=>({content:m.label,value:m.value})),r=m=>{t.value=m.value,yW.value=m.value},o=ku(),{baseUrl:s,isElectron:a}=xs(o),l=fe(!1),d=fe(s.value),u=()=>{s.value=d.value,l.value=!1,window.$message.success($t("login.settingsSaved"))},h=fe({show:!0,loginLoading:!1,user:{username:"",password:""},rules:{username:[{required:!0,message:$t("login.usernameRequired")}],password:[{required:!0,message:$t("login.passwordRequired")}]}}),g=()=>{if(!h.value.user.username||!h.value.user.password){window.$message.warning($t("login.enterUsernameAndPassword"));return}h.value.loginLoading=!0;const m={...h.value.user};mn.post("/login/login",m).then(({data:v})=>{localStorage.setItem("token",v.token),localStorage.setItem("userId",v.id),tie.push("/project"),window.$message.success($t("login.loginSuccess")),h.value.loginLoading=!1}).catch(v=>{h.value.loginLoading=!1,window.$message.error(v.message)})};return(m,v)=>{const f=Wu,k=p2,A=A2,p=gc,b=Si,w=_n("i-translate"),O=Rne,y=_n("i-setting-two");return xe(),Ge(sn,null,[ge("div",{class:"loginPage",style:no({height:Ae(a)?"calc(100vh - 32px)":"100vh"})},[ge("div",rBs,[c(p,{visible:Ae(l),"onUpdate:visible":v[1]||(v[1]=C=>Fn(l)?l.value=C:null),header:m.$t("login.settings"),onConfirm:u,width:400},{default:Oe(()=>[c(A,{"label-width":"80px",labelAlign:"top"},{default:Oe(()=>[c(k,{label:m.$t("login.requestAddress")},{default:Oe(()=>[c(f,{modelValue:Ae(d),"onUpdate:modelValue":v[0]||(v[0]=C=>Fn(d)?d.value=C:null),placeholder:"http://localhost:10588"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),_:1},8,["visible","header"]),ge("div",oBs,[ge("img",{src:Ae(lbe),alt:"logo",class:"logoImg"},null,8,sBs),ge("div",aBs,[v[5]||(v[5]=ge("span",{class:"logoText"},"ToonFlow",-1)),ge("span",lBs,Pe(m.$t("login.slogan")),1)])]),ge("div",cBs,[c(f,{modelValue:Ae(h).user.username,"onUpdate:modelValue":v[2]||(v[2]=C=>Ae(h).user.username=C),placeholder:m.$t("login.username"),autocomplete:"username",size:"large"},null,8,["modelValue","placeholder"]),c(f,{modelValue:Ae(h).user.password,"onUpdate:modelValue":v[3]||(v[3]=C=>Ae(h).user.password=C),type:"password",placeholder:m.$t("login.password"),size:"large"},null,8,["modelValue","placeholder"]),c(b,{class:"loginBtn",theme:"primary",size:"large",loading:Ae(h).loginLoading,onClick:g,block:""},{default:Oe(()=>[Bt(Pe(m.$t("login.login")),1)]),_:1},8,["loading"])]),ge("div",dBs,Pe(m.$t("login.tips")),1)])],4),ge("div",uBs,[c(O,{options:Ae(n),trigger:"click",onClick:r,maxColumnWidth:150},{default:Oe(()=>[c(b,{shape:"circle",theme:"default",size:"large"},{icon:Oe(()=>[c(w,{theme:"outline",size:"20"})]),_:1})]),_:1},8,["options"]),c(b,{shape:"circle",theme:"primary",size:"large",onClick:v[4]||(v[4]=C=>l.value=!0)},{icon:Oe(()=>[c(y,{theme:"outline",size:"20"})]),_:1})])],64)}}},fBs=oo(hBs,[["__scopeId","data-v-f82a7296"]]),gBs=Object.freeze(Object.defineProperty({__proto__:null,default:fBs},Symbol.toStringTag,{value:"Module"})),mBs=2*60*1e3;let Gqn=class{constructor(t){this._defaults=t,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>mBs&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=twe({moduleId:"vs/language/css/cssWorker",createWorker:()=>new Worker(new URL(""+new URL("css.worker-BvV5MPou.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...t){let n;return this._getClient().then(r=>{n=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(t)}).then(r=>n)}};var h2n;(function(e){function t(n){return typeof n=="string"}e.is=t})(h2n||(h2n={}));var aYe;(function(e){function t(n){return typeof n=="string"}e.is=t})(aYe||(aYe={}));var f2n;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(f2n||(f2n={}));var ive;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(ive||(ive={}));var Nb;(function(e){function t(r,o){return r===Number.MAX_VALUE&&(r=ive.MAX_VALUE),o===Number.MAX_VALUE&&(o=ive.MAX_VALUE),{line:r,character:o}}e.create=t;function n(r){let o=r;return cn.objectLiteral(o)&&cn.uinteger(o.line)&&cn.uinteger(o.character)}e.is=n})(Nb||(Nb={}));var hh;(function(e){function t(r,o,s,a){if(cn.uinteger(r)&&cn.uinteger(o)&&cn.uinteger(s)&&cn.uinteger(a))return{start:Nb.create(r,o),end:Nb.create(s,a)};if(Nb.is(r)&&Nb.is(o))return{start:r,end:o};throw new Error(`Range#create called with invalid arguments[${r}, ${o}, ${s}, ${a}]`)}e.create=t;function n(r){let o=r;return cn.objectLiteral(o)&&Nb.is(o.start)&&Nb.is(o.end)}e.is=n})(hh||(hh={}));var rve;(function(e){function t(r,o){return{uri:r,range:o}}e.create=t;function n(r){let o=r;return cn.objectLiteral(o)&&hh.is(o.range)&&(cn.string(o.uri)||cn.undefined(o.uri))}e.is=n})(rve||(rve={}));var g2n;(function(e){function t(r,o,s,a){return{targetUri:r,targetRange:o,targetSelectionRange:s,originSelectionRange:a}}e.create=t;function n(r){let o=r;return cn.objectLiteral(o)&&hh.is(o.targetRange)&&cn.string(o.targetUri)&&hh.is(o.targetSelectionRange)&&(hh.is(o.originSelectionRange)||cn.undefined(o.originSelectionRange))}e.is=n})(g2n||(g2n={}));var lYe;(function(e){function t(r,o,s,a){return{red:r,green:o,blue:s,alpha:a}}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&cn.numberRange(o.red,0,1)&&cn.numberRange(o.green,0,1)&&cn.numberRange(o.blue,0,1)&&cn.numberRange(o.alpha,0,1)}e.is=n})(lYe||(lYe={}));var m2n;(function(e){function t(r,o){return{range:r,color:o}}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&hh.is(o.range)&&lYe.is(o.color)}e.is=n})(m2n||(m2n={}));var k2n;(function(e){function t(r,o,s){return{label:r,textEdit:o,additionalTextEdits:s}}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&cn.string(o.label)&&(cn.undefined(o.textEdit)||gz.is(o))&&(cn.undefined(o.additionalTextEdits)||cn.typedArray(o.additionalTextEdits,gz.is))}e.is=n})(k2n||(k2n={}));var mq;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(mq||(mq={}));var v2n;(function(e){function t(r,o,s,a,l,d){const u={startLine:r,endLine:o};return cn.defined(s)&&(u.startCharacter=s),cn.defined(a)&&(u.endCharacter=a),cn.defined(l)&&(u.kind=l),cn.defined(d)&&(u.collapsedText=d),u}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&cn.uinteger(o.startLine)&&cn.uinteger(o.startLine)&&(cn.undefined(o.startCharacter)||cn.uinteger(o.startCharacter))&&(cn.undefined(o.endCharacter)||cn.uinteger(o.endCharacter))&&(cn.undefined(o.kind)||cn.string(o.kind))}e.is=n})(v2n||(v2n={}));var cYe;(function(e){function t(r,o){return{location:r,message:o}}e.create=t;function n(r){let o=r;return cn.defined(o)&&rve.is(o.location)&&cn.string(o.message)}e.is=n})(cYe||(cYe={}));var HN;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(HN||(HN={}));var A2n;(function(e){e.Unnecessary=1,e.Deprecated=2})(A2n||(A2n={}));var p2n;(function(e){function t(n){const r=n;return cn.objectLiteral(r)&&cn.string(r.href)}e.is=t})(p2n||(p2n={}));var ove;(function(e){function t(r,o,s,a,l,d){let u={range:r,message:o};return cn.defined(s)&&(u.severity=s),cn.defined(a)&&(u.code=a),cn.defined(l)&&(u.source=l),cn.defined(d)&&(u.relatedInformation=d),u}e.create=t;function n(r){var o;let s=r;return cn.defined(s)&&hh.is(s.range)&&cn.string(s.message)&&(cn.number(s.severity)||cn.undefined(s.severity))&&(cn.integer(s.code)||cn.string(s.code)||cn.undefined(s.code))&&(cn.undefined(s.codeDescription)||cn.string((o=s.codeDescription)===null||o===void 0?void 0:o.href))&&(cn.string(s.source)||cn.undefined(s.source))&&(cn.undefined(s.relatedInformation)||cn.typedArray(s.relatedInformation,cYe.is))}e.is=n})(ove||(ove={}));var fz;(function(e){function t(r,o,...s){let a={title:r,command:o};return cn.defined(s)&&s.length>0&&(a.arguments=s),a}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.string(o.title)&&cn.string(o.command)}e.is=n})(fz||(fz={}));var gz;(function(e){function t(s,a){return{range:s,newText:a}}e.replace=t;function n(s,a){return{range:{start:s,end:s},newText:a}}e.insert=n;function r(s){return{range:s,newText:""}}e.del=r;function o(s){const a=s;return cn.objectLiteral(a)&&cn.string(a.newText)&&hh.is(a.range)}e.is=o})(gz||(gz={}));var dYe;(function(e){function t(r,o,s){const a={label:r};return o!==void 0&&(a.needsConfirmation=o),s!==void 0&&(a.description=s),a}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&cn.string(o.label)&&(cn.boolean(o.needsConfirmation)||o.needsConfirmation===void 0)&&(cn.string(o.description)||o.description===void 0)}e.is=n})(dYe||(dYe={}));var mz;(function(e){function t(n){const r=n;return cn.string(r)}e.is=t})(mz||(mz={}));var b2n;(function(e){function t(s,a,l){return{range:s,newText:a,annotationId:l}}e.replace=t;function n(s,a,l){return{range:{start:s,end:s},newText:a,annotationId:l}}e.insert=n;function r(s,a){return{range:s,newText:"",annotationId:a}}e.del=r;function o(s){const a=s;return gz.is(a)&&(dYe.is(a.annotationId)||mz.is(a.annotationId))}e.is=o})(b2n||(b2n={}));var uYe;(function(e){function t(r,o){return{textDocument:r,edits:o}}e.create=t;function n(r){let o=r;return cn.defined(o)&&kYe.is(o.textDocument)&&Array.isArray(o.edits)}e.is=n})(uYe||(uYe={}));var hYe;(function(e){function t(r,o,s){let a={kind:"create",uri:r};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}e.create=t;function n(r){let o=r;return o&&o.kind==="create"&&cn.string(o.uri)&&(o.options===void 0||(o.options.overwrite===void 0||cn.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||cn.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||mz.is(o.annotationId))}e.is=n})(hYe||(hYe={}));var fYe;(function(e){function t(r,o,s,a){let l={kind:"rename",oldUri:r,newUri:o};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(l.options=s),a!==void 0&&(l.annotationId=a),l}e.create=t;function n(r){let o=r;return o&&o.kind==="rename"&&cn.string(o.oldUri)&&cn.string(o.newUri)&&(o.options===void 0||(o.options.overwrite===void 0||cn.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||cn.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||mz.is(o.annotationId))}e.is=n})(fYe||(fYe={}));var gYe;(function(e){function t(r,o,s){let a={kind:"delete",uri:r};return o!==void 0&&(o.recursive!==void 0||o.ignoreIfNotExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}e.create=t;function n(r){let o=r;return o&&o.kind==="delete"&&cn.string(o.uri)&&(o.options===void 0||(o.options.recursive===void 0||cn.boolean(o.options.recursive))&&(o.options.ignoreIfNotExists===void 0||cn.boolean(o.options.ignoreIfNotExists)))&&(o.annotationId===void 0||mz.is(o.annotationId))}e.is=n})(gYe||(gYe={}));var mYe;(function(e){function t(n){let r=n;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(o=>cn.string(o.kind)?hYe.is(o)||fYe.is(o)||gYe.is(o):uYe.is(o)))}e.is=t})(mYe||(mYe={}));var w2n;(function(e){function t(r){return{uri:r}}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.string(o.uri)}e.is=n})(w2n||(w2n={}));var O2n;(function(e){function t(r,o){return{uri:r,version:o}}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.string(o.uri)&&cn.integer(o.version)}e.is=n})(O2n||(O2n={}));var kYe;(function(e){function t(r,o){return{uri:r,version:o}}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.string(o.uri)&&(o.version===null||cn.integer(o.version))}e.is=n})(kYe||(kYe={}));var y2n;(function(e){function t(r,o,s,a){return{uri:r,languageId:o,version:s,text:a}}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.string(o.uri)&&cn.string(o.languageId)&&cn.integer(o.version)&&cn.string(o.text)}e.is=n})(y2n||(y2n={}));var vYe;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(n){const r=n;return r===e.PlainText||r===e.Markdown}e.is=t})(vYe||(vYe={}));var Fte;(function(e){function t(n){const r=n;return cn.objectLiteral(n)&&vYe.is(r.kind)&&cn.string(r.value)}e.is=t})(Fte||(Fte={}));var _h;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(_h||(_h={}));var AYe;(function(e){e.PlainText=1,e.Snippet=2})(AYe||(AYe={}));var C2n;(function(e){e.Deprecated=1})(C2n||(C2n={}));var _2n;(function(e){function t(r,o,s){return{newText:r,insert:o,replace:s}}e.create=t;function n(r){const o=r;return o&&cn.string(o.newText)&&hh.is(o.insert)&&hh.is(o.replace)}e.is=n})(_2n||(_2n={}));var S2n;(function(e){e.asIs=1,e.adjustIndentation=2})(S2n||(S2n={}));var L2n;(function(e){function t(n){const r=n;return r&&(cn.string(r.detail)||r.detail===void 0)&&(cn.string(r.description)||r.description===void 0)}e.is=t})(L2n||(L2n={}));var x2n;(function(e){function t(n){return{label:n}}e.create=t})(x2n||(x2n={}));var E2n;(function(e){function t(n,r){return{items:n||[],isIncomplete:!!r}}e.create=t})(E2n||(E2n={}));var sve;(function(e){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function n(r){const o=r;return cn.string(o)||cn.objectLiteral(o)&&cn.string(o.language)&&cn.string(o.value)}e.is=n})(sve||(sve={}));var T2n;(function(e){function t(n){let r=n;return!!r&&cn.objectLiteral(r)&&(Fte.is(r.contents)||sve.is(r.contents)||cn.typedArray(r.contents,sve.is))&&(n.range===void 0||hh.is(n.range))}e.is=t})(T2n||(T2n={}));var Q2n;(function(e){function t(n,r){return r?{label:n,documentation:r}:{label:n}}e.create=t})(Q2n||(Q2n={}));var D2n;(function(e){function t(n,r,...o){let s={label:n};return cn.defined(r)&&(s.documentation=r),cn.defined(o)?s.parameters=o:s.parameters=[],s}e.create=t})(D2n||(D2n={}));var kq;(function(e){e.Text=1,e.Read=2,e.Write=3})(kq||(kq={}));var B2n;(function(e){function t(n,r){let o={range:n};return cn.number(r)&&(o.kind=r),o}e.create=t})(B2n||(B2n={}));var Sh;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(Sh||(Sh={}));var R2n;(function(e){e.Deprecated=1})(R2n||(R2n={}));var I2n;(function(e){function t(n,r,o,s,a){let l={name:n,kind:r,location:{uri:s,range:o}};return a&&(l.containerName=a),l}e.create=t})(I2n||(I2n={}));var M2n;(function(e){function t(n,r,o,s){return s!==void 0?{name:n,kind:r,location:{uri:o,range:s}}:{name:n,kind:r,location:{uri:o}}}e.create=t})(M2n||(M2n={}));var P2n;(function(e){function t(r,o,s,a,l,d){let u={name:r,detail:o,kind:s,range:a,selectionRange:l};return d!==void 0&&(u.children=d),u}e.create=t;function n(r){let o=r;return o&&cn.string(o.name)&&cn.number(o.kind)&&hh.is(o.range)&&hh.is(o.selectionRange)&&(o.detail===void 0||cn.string(o.detail))&&(o.deprecated===void 0||cn.boolean(o.deprecated))&&(o.children===void 0||Array.isArray(o.children))&&(o.tags===void 0||Array.isArray(o.tags))}e.is=n})(P2n||(P2n={}));var F2n;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(F2n||(F2n={}));var ave;(function(e){e.Invoked=1,e.Automatic=2})(ave||(ave={}));var N2n;(function(e){function t(r,o,s){let a={diagnostics:r};return o!=null&&(a.only=o),s!=null&&(a.triggerKind=s),a}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.typedArray(o.diagnostics,ove.is)&&(o.only===void 0||cn.typedArray(o.only,cn.string))&&(o.triggerKind===void 0||o.triggerKind===ave.Invoked||o.triggerKind===ave.Automatic)}e.is=n})(N2n||(N2n={}));var U2n;(function(e){function t(r,o,s){let a={title:r},l=!0;return typeof o=="string"?(l=!1,a.kind=o):fz.is(o)?a.command=o:a.edit=o,l&&s!==void 0&&(a.kind=s),a}e.create=t;function n(r){let o=r;return o&&cn.string(o.title)&&(o.diagnostics===void 0||cn.typedArray(o.diagnostics,ove.is))&&(o.kind===void 0||cn.string(o.kind))&&(o.edit!==void 0||o.command!==void 0)&&(o.command===void 0||fz.is(o.command))&&(o.isPreferred===void 0||cn.boolean(o.isPreferred))&&(o.edit===void 0||mYe.is(o.edit))}e.is=n})(U2n||(U2n={}));var j2n;(function(e){function t(r,o){let s={range:r};return cn.defined(o)&&(s.data=o),s}e.create=t;function n(r){let o=r;return cn.defined(o)&&hh.is(o.range)&&(cn.undefined(o.command)||fz.is(o.command))}e.is=n})(j2n||(j2n={}));var W2n;(function(e){function t(r,o){return{tabSize:r,insertSpaces:o}}e.create=t;function n(r){let o=r;return cn.defined(o)&&cn.uinteger(o.tabSize)&&cn.boolean(o.insertSpaces)}e.is=n})(W2n||(W2n={}));var V2n;(function(e){function t(r,o,s){return{range:r,target:o,data:s}}e.create=t;function n(r){let o=r;return cn.defined(o)&&hh.is(o.range)&&(cn.undefined(o.target)||cn.string(o.target))}e.is=n})(V2n||(V2n={}));var z2n;(function(e){function t(r,o){return{range:r,parent:o}}e.create=t;function n(r){let o=r;return cn.objectLiteral(o)&&hh.is(o.range)&&(o.parent===void 0||e.is(o.parent))}e.is=n})(z2n||(z2n={}));var H2n;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(H2n||(H2n={}));var $2n;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})($2n||($2n={}));var X2n;(function(e){function t(n){const r=n;return cn.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=t})(X2n||(X2n={}));var G2n;(function(e){function t(r,o){return{range:r,text:o}}e.create=t;function n(r){const o=r;return o!=null&&hh.is(o.range)&&cn.string(o.text)}e.is=n})(G2n||(G2n={}));var Y2n;(function(e){function t(r,o,s){return{range:r,variableName:o,caseSensitiveLookup:s}}e.create=t;function n(r){const o=r;return o!=null&&hh.is(o.range)&&cn.boolean(o.caseSensitiveLookup)&&(cn.string(o.variableName)||o.variableName===void 0)}e.is=n})(Y2n||(Y2n={}));var Z2n;(function(e){function t(r,o){return{range:r,expression:o}}e.create=t;function n(r){const o=r;return o!=null&&hh.is(o.range)&&(cn.string(o.expression)||o.expression===void 0)}e.is=n})(Z2n||(Z2n={}));var q2n;(function(e){function t(r,o){return{frameId:r,stoppedLocation:o}}e.create=t;function n(r){const o=r;return cn.defined(o)&&hh.is(r.stoppedLocation)}e.is=n})(q2n||(q2n={}));var pYe;(function(e){e.Type=1,e.Parameter=2;function t(n){return n===1||n===2}e.is=t})(pYe||(pYe={}));var bYe;(function(e){function t(r){return{value:r}}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&(o.tooltip===void 0||cn.string(o.tooltip)||Fte.is(o.tooltip))&&(o.location===void 0||rve.is(o.location))&&(o.command===void 0||fz.is(o.command))}e.is=n})(bYe||(bYe={}));var K2n;(function(e){function t(r,o,s){const a={position:r,label:o};return s!==void 0&&(a.kind=s),a}e.create=t;function n(r){const o=r;return cn.objectLiteral(o)&&Nb.is(o.position)&&(cn.string(o.label)||cn.typedArray(o.label,bYe.is))&&(o.kind===void 0||pYe.is(o.kind))&&o.textEdits===void 0||cn.typedArray(o.textEdits,gz.is)&&(o.tooltip===void 0||cn.string(o.tooltip)||Fte.is(o.tooltip))&&(o.paddingLeft===void 0||cn.boolean(o.paddingLeft))&&(o.paddingRight===void 0||cn.boolean(o.paddingRight))}e.is=n})(K2n||(K2n={}));var J2n;(function(e){function t(n){return{kind:"snippet",value:n}}e.createSnippet=t})(J2n||(J2n={}));var evn;(function(e){function t(n,r,o,s){return{insertText:n,filterText:r,range:o,command:s}}e.create=t})(evn||(evn={}));var tvn;(function(e){function t(n){return{items:n}}e.create=t})(tvn||(tvn={}));var nvn;(function(e){e.Invoked=0,e.Automatic=1})(nvn||(nvn={}));var ivn;(function(e){function t(n,r){return{range:n,text:r}}e.create=t})(ivn||(ivn={}));var rvn;(function(e){function t(n,r){return{triggerKind:n,selectedCompletionInfo:r}}e.create=t})(rvn||(rvn={}));var ovn;(function(e){function t(n){const r=n;return cn.objectLiteral(r)&&aYe.is(r.uri)&&cn.string(r.name)}e.is=t})(ovn||(ovn={}));var svn;(function(e){function t(s,a,l,d){return new kBs(s,a,l,d)}e.create=t;function n(s){let a=s;return!!(cn.defined(a)&&cn.string(a.uri)&&(cn.undefined(a.languageId)||cn.string(a.languageId))&&cn.uinteger(a.lineCount)&&cn.func(a.getText)&&cn.func(a.positionAt)&&cn.func(a.offsetAt))}e.is=n;function r(s,a){let l=s.getText(),d=o(a,(h,g)=>{let m=h.range.start.line-g.range.start.line;return m===0?h.range.start.character-g.range.start.character:m}),u=l.length;for(let h=d.length-1;h>=0;h--){let g=d[h],m=s.offsetAt(g.range.start),v=s.offsetAt(g.range.end);if(v<=u)l=l.substring(0,m)+g.newText+l.substring(v,l.length);else throw new Error("Overlapping edit");u=m}return l}e.applyEdits=r;function o(s,a){if(s.length<=1)return s;const l=s.length/2|0,d=s.slice(0,l),u=s.slice(l);o(d,a),o(u,a);let h=0,g=0,m=0;for(;h0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),r=0,o=n.length;if(o===0)return Nb.create(0,t);for(;rt?o=a:r=a+1}let s=r-1;return Nb.create(s,t-n[s])}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let r=n[t.line],o=t.line+1"u"}e.undefined=r;function o(v){return v===!0||v===!1}e.boolean=o;function s(v){return t.call(v)==="[object String]"}e.string=s;function a(v){return t.call(v)==="[object Number]"}e.number=a;function l(v,f,k){return t.call(v)==="[object Number]"&&f<=v&&v<=k}e.numberRange=l;function d(v){return t.call(v)==="[object Number]"&&-2147483648<=v&&v<=2147483647}e.integer=d;function u(v){return t.call(v)==="[object Number]"&&0<=v&&v<=2147483647}e.uinteger=u;function h(v){return t.call(v)==="[object Function]"}e.func=h;function g(v){return v!==null&&typeof v=="object"}e.objectLiteral=g;function m(v,f){return Array.isArray(v)&&v.every(f)}e.typedArray=m})(cn||(cn={}));let Jre=class{constructor(t,n,r){this._languageId=t,this._worker=n,this._disposables=[],this._listener=Object.create(null);const o=a=>{let l=a.getLanguageId();if(l!==this._languageId)return;let d;this._listener[a.uri.toString()]=a.onDidChangeContent(()=>{window.clearTimeout(d),d=window.setTimeout(()=>this._doValidate(a.uri,l),500)}),this._doValidate(a.uri,l)},s=a=>{Ic.setModelMarkers(a,this._languageId,[]);let l=a.uri.toString(),d=this._listener[l];d&&(d.dispose(),delete this._listener[l])};this._disposables.push(Ic.onDidCreateModel(o)),this._disposables.push(Ic.onWillDisposeModel(s)),this._disposables.push(Ic.onDidChangeModelLanguage(a=>{s(a.model),o(a.model)})),this._disposables.push(r(a=>{Ic.getModels().forEach(l=>{l.getLanguageId()===this._languageId&&(s(l),o(l))})})),this._disposables.push({dispose:()=>{Ic.getModels().forEach(s);for(let a in this._listener)this._listener[a].dispose()}}),Ic.getModels().forEach(o)}dispose(){this._disposables.forEach(t=>t&&t.dispose()),this._disposables.length=0}_doValidate(t,n){this._worker(t).then(r=>r.doValidation(t.toString())).then(r=>{const o=r.map(a=>ABs(t,a));let s=Ic.getModel(t);s&&s.getLanguageId()===n&&Ic.setModelMarkers(s,n,o)}).then(void 0,r=>{console.error(r)})}};function vBs(e){switch(e){case HN.Error:return yf.Error;case HN.Warning:return yf.Warning;case HN.Information:return yf.Info;case HN.Hint:return yf.Hint;default:return yf.Info}}function ABs(e,t){let n=typeof t.code=="number"?String(t.code):t.code;return{severity:vBs(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}class FH{constructor(t,n){this._worker=t,this._triggerCharacters=n}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(t,n,r,o){const s=t.uri;return this._worker(s).then(a=>a.doComplete(s.toString(),hC(n))).then(a=>{if(!a)return;const l=t.getWordUntilPosition(n),d=new xee(n.lineNumber,l.startColumn,n.lineNumber,l.endColumn),u=a.items.map(h=>{const g={label:h.label,insertText:h.insertText||h.label,sortText:h.sortText,filterText:h.filterText,documentation:h.documentation,detail:h.detail,command:wBs(h.command),range:d,kind:bBs(h.kind)};return h.textEdit&&(pBs(h.textEdit)?g.range={insert:_g(h.textEdit.insert),replace:_g(h.textEdit.replace)}:g.range=_g(h.textEdit.range),g.insertText=h.textEdit.newText),h.additionalTextEdits&&(g.additionalTextEdits=h.additionalTextEdits.map(X6)),h.insertTextFormat===AYe.Snippet&&(g.insertTextRules=Tt.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:a.isIncomplete,suggestions:u}})}}function hC(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function eoe(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function _g(e){if(e)return new xee(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function pBs(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function bBs(e){const t=Tt.CompletionItemKind;switch(e){case _h.Text:return t.Text;case _h.Method:return t.Method;case _h.Function:return t.Function;case _h.Constructor:return t.Constructor;case _h.Field:return t.Field;case _h.Variable:return t.Variable;case _h.Class:return t.Class;case _h.Interface:return t.Interface;case _h.Module:return t.Module;case _h.Property:return t.Property;case _h.Unit:return t.Unit;case _h.Value:return t.Value;case _h.Enum:return t.Enum;case _h.Keyword:return t.Keyword;case _h.Snippet:return t.Snippet;case _h.Color:return t.Color;case _h.File:return t.File;case _h.Reference:return t.Reference}return t.Property}function X6(e){if(e)return{range:_g(e.range),text:e.newText}}function wBs(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}class aM{constructor(t){this._worker=t}provideHover(t,n,r){let o=t.uri;return this._worker(o).then(s=>s.doHover(o.toString(),hC(n))).then(s=>{if(s)return{range:_g(s.range),contents:yBs(s.contents)}})}}function OBs(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function avn(e){return typeof e=="string"?{value:e}:OBs(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+` @@ -15883,7 +15883,7 @@ ${aKn(r)}`;return n}}function aKn(e){let t=`*@${e.name}*`;if(e.name==="param"&&e >>= <<= `),qFs=/enable|requires|diagnostic/,Cvn=new RegExp("[_\\p{XID_Start}]\\p{XID_Continue}*","u"),dF="variable.predefined",KFs={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:WFs,keywords:VFs,reserved:zFs,predeclared_enums:HFs,predeclared_types:$Fs,predeclared_type_generators:XFs,predeclared_type_aliases:GFs,predeclared_intrinsics:YFs,operators:ZFs,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[qFs,"keyword","@directive"],[Cvn,{cases:{"@atoms":dF,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":dF,"@predeclared_types":dF,"@predeclared_type_generators":dF,"@predeclared_type_aliases":dF,"@predeclared_intrinsics":dF,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[Cvn,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}},JFs=Object.freeze(Object.defineProperty({__proto__:null,conf:jFs,language:KFs},Symbol.toStringTag,{value:"Module"})),eNs={comments:{blockComment:["\x3C!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:Tt.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:Tt.IndentAction.Indent}}]},tNs={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/\x3C!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/\x3C!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}},nNs=Object.freeze(Object.defineProperty({__proto__:null,conf:eNs,language:tNs},Symbol.toStringTag,{value:"Module"})),iNs={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:Tt.IndentAction.Indent}}]},rNs={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}},oNs=Object.freeze(Object.defineProperty({__proto__:null,conf:iNs,language:rNs},Symbol.toStringTag,{value:"Module"})); - +
diff --git a/package.json b/package.json index 91826f9..00465f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "toonflow", - "version": "1.0.11", + "version": "1.1.0", "description": "Toonflow 是一款 AI 短剧漫剧工具,能够利用 AI 技术将小说自动转化为剧本,并结合 AI 生成的图片和视频,实现高效的短剧创作。", "author": "HBAI-Ltd ", "license": "Apache-2.0", diff --git a/scripts/main.ts b/scripts/main.ts index d4472a8..0881c71 100644 --- a/scripts/main.ts +++ b/scripts/main.ts @@ -7,64 +7,24 @@ import Module from "module"; app.commandLine.appendSwitch("disable-gpu-shader-disk-cache"); app.commandLine.appendSwitch("disable-features", "CalculateNativeWinOcclusion"); -declare const __APP_VERSION__: string | undefined; +const TARGET_ENTRIES = new Set(["assets", "models", "serve", "skills", "web"]); -/** - * 将 extraResources 中的 data 目录复制到用户数据目录(跳过已存在的文件,保留用户修改) - */ - -function getVersionFromUpdateJson(filePath: string): string | null { - try { - if (fs.existsSync(filePath)) { - const data = JSON.parse(fs.readFileSync(filePath, "utf8")); - return data.version ?? null; - } - } catch {} - return null; -} - -function copyDirForce(src: string, dest: string): void { +function copyDir(src: string, dest: string): void { if (!fs.existsSync(src)) return; - if (fs.existsSync(dest)) { - fs.rmSync(dest, { recursive: true, force: true }); + fs.mkdirSync(dest, { recursive: true }); + for (const entry of fs.readdirSync(src, { withFileTypes: true })) { + const s = path.join(src, entry.name); + const d = path.join(dest, entry.name); + entry.isDirectory() ? copyDir(s, d) : fs.existsSync(d) || fs.copyFileSync(s, d); } - copyDirRecursive(src, dest); } function initializeData(): void { const srcDir = path.join(process.resourcesPath, "data"); const destDir = path.join(app.getPath("userData"), "data"); - const updateJsonFile = path.join(destDir, "update.json"); - const currentVersion = typeof __APP_VERSION__ !== "undefined" ? __APP_VERSION__ : "0.0.0"; - const userVersion = getVersionFromUpdateJson(updateJsonFile); - - // 首次安装或无update.json,直接全量拷贝 - if (!fs.existsSync(destDir) || !userVersion) { - copyDirRecursive(srcDir, destDir); - return; - } - - // 版本号不同则覆盖 serve 和 web 目录 - if (userVersion !== currentVersion) { - copyDirForce(path.join(srcDir, "serve"), path.join(destDir, "serve")); - copyDirForce(path.join(srcDir, "web"), path.join(destDir, "web")); - } -} - -function copyDirRecursive(src: string, dest: string): void { - if (!fs.existsSync(src)) return; - if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true }); - for (const entry of fs.readdirSync(src, { withFileTypes: true })) { - // 跳过 oss 文件夹和 db2.sqlite 文件 - if (entry.isDirectory() && entry.name === "logs") continue; - if (entry.isDirectory() && entry.name === "oss") continue; - if (!entry.isDirectory() && entry.name === "db2.sqlite") continue; - const srcPath = path.join(src, entry.name); - const destPath = path.join(dest, entry.name); - if (entry.isDirectory()) { - copyDirRecursive(srcPath, destPath); - } else if (!fs.existsSync(destPath)) { - fs.copyFileSync(srcPath, destPath); + for (const dir of TARGET_ENTRIES) { + if (!fs.existsSync(path.join(destDir, dir))) { + copyDir(path.join(srcDir, dir), path.join(destDir, dir)); } } } diff --git a/src/agents/productionAgent/index copy.ts b/src/agents/productionAgent/index copy.ts index fc4435f..4744625 100644 --- a/src/agents/productionAgent/index copy.ts +++ b/src/agents/productionAgent/index copy.ts @@ -3,10 +3,11 @@ import { tool } from "ai"; import { z } from "zod"; import u from "@/utils"; import Memory from "@/utils/agent/memory"; -import { useSkill } from "@/utils/agent/skillsTools"; +import { createSkillTools, parseFrontmatter, scanSkills, useSkill } from "@/utils/agent/skillsTools"; import useTools from "@/agents/productionAgent/tools"; import ResTool from "@/socket/resTool"; import * as fs from "fs"; +import path from "path"; export interface AgentContext { socket: Socket; @@ -34,121 +35,200 @@ function buildMemPrompt(mem: Awaited>): string { return `## Memory\n以下是你对用户的记忆,可作为参考但不要主动提及:\n${memoryContext}`; } -const subAgentList = ["executionAI", "supervisionAI"] as const; - export async function decisionAI(ctx: AgentContext) { const { isolationKey, text, abortSignal } = ctx; const memory = new Memory("productionAgent", isolationKey); await memory.add("user", text); - const { skillPaths } = await useSkill({ mainSkill: "production_agent_decision" }); - const prompt = await fs.promises.readFile(skillPaths.mainSkill, "utf-8"); + const skill = path.join(u.getPath("skills"), "production_agent_decision.md"); + const prompt = await fs.promises.readFile(skill, "utf-8"); + + const projectInfo = await u.db("o_project").where("id", ctx.resTool.data.projectId).first(); + if (!projectInfo) throw new Error(`项目不存在,ID: ${ctx.resTool.data.projectId}`); + const [_, imageModelName] = projectInfo.imageModel!.split(":"); + const [id, videoModelName] = projectInfo.videoModel!.split(":"); + const data = await u.db("o_vendorConfig").where("id", id).select("models").first(); + const models = JSON.parse(data!.models!); + const findData = models.find((i: any) => i.modelName == videoModelName); + const isRef = findData.mode.every((i: any) => Array.isArray(i)); + const modelInfo = `项目使用的模型如下:\n图像模型:${imageModelName}\n视频模型:${videoModelName}\n多参:${isRef ? "是" : "否"}`; const mem = buildMemPrompt(await memory.get(text)); const { textStream } = await u.Ai.Text("productionAgent").stream({ messages: [ { role: "system", content: prompt }, - { role: "system", content: mem }, + { role: "assistant", content: mem + "\n" + modelInfo }, { role: "user", content: text }, ], abortSignal, tools: { ...memory.getTools(), - run_sub_agent: runSubAgent(ctx), ...useTools({ resTool: ctx.resTool, msg: ctx.msg }), + ...createSubAgent(ctx), }, onFinish: async (completion) => { - await memory.add("assistant:decision", completion.text); + await memory.add("assistant:decision", removeAllXmlTags(completion.text)); }, }); return textStream; } -//====================== 执行层 ====================== - -export async function executionAI(ctx: AgentContext) { - const { text, abortSignal } = ctx; - - const skill = await useSkill({ - mainSkill: "production_agent_execution", - workspace: ["production_agent_skills/execution"], - attachedSkills: ["production_agent_skills/execution/driector_art_skills/chinese_sweet_romance/driector_skills"], //todo:后续可以改为动态加载 - }); - - const subMsg = ctx.resTool.newMessage("assistant", "执行导演"); - - const { textStream } = await u.Ai.Text("productionAgent").stream({ - system: skill.prompt, - messages: [{ role: "user", content: text }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ resTool: ctx.resTool, msg: subMsg }), - }, - }); - - return { textStream, subMsg }; -} - -export async function supervisionAI(ctx: AgentContext) { - const { text, abortSignal } = ctx; - - const skill = await useSkill({ mainSkill: "production_agent_supervision", workspace: ["production_agent_skills/supervision"] }); - const subMsg = ctx.resTool.newMessage("assistant", "监制"); - - const { textStream } = await u.Ai.Text("productionAgent").stream({ - system: skill.prompt, - messages: [{ role: "user", content: text }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ - resTool: ctx.resTool, - msg: subMsg, - }), - }, - }); - - return { textStream, subMsg }; -} - -//工具函数 -function runSubAgent(parentCtx: AgentContext) { +function createSubAgent(parentCtx: AgentContext) { + const { resTool, abortSignal } = parentCtx; const memory = new Memory("productionAgent", parentCtx.isolationKey); - return tool({ - description: "启动子Agent执行独立任务。可用子Agent:executionAI, decisionAI, supervisionAI", - inputSchema: z.object({ - agent: z.enum(["executionAI", "supervisionAI"]).describe("子Agent名称"), - prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), - }), - execute: async ({ agent, prompt }) => { - const fn = [executionAI, supervisionAI][subAgentList.indexOf(agent)]; + async function runAgent({ + prompt, + system, + name, + memoryKey, + tools: extraTools, + messages, + }: { + prompt: string; + system: string; + name: string; + memoryKey: string; + tools?: Record; + messages?: { role: "user" | "assistant" | "system"; content: string }[]; + }) { + parentCtx.msg.complete(); + const subMsg = resTool.newMessage("assistant", name); + const text = subMsg.text(); + let fullResponse = ""; - // 先完成主Agent当前的消息 - parentCtx.msg.complete(); - // 子Agent用新消息回复 - const { textStream: subTextStream, subMsg } = await fn({ ...parentCtx, text: prompt }); - let text = subMsg.text(); - let fullResponse = ""; - for await (const chunk of subTextStream) { + const { textStream } = await u.Ai.Text("scriptAgent").stream({ + system, + messages: messages ?? [{ role: "user", content: prompt }], + abortSignal, + tools: { ...extraTools, ...useTools({ resTool, msg: subMsg }) }, + }); + + try { + for await (const chunk of textStream) { + await new Promise((resolve) => setTimeout(() => resolve(), 1)); text.append(chunk); fullResponse += chunk; } text.complete(); subMsg.complete(); - if (fullResponse.trim()) { - await memory.add(`assistant:${agent === "executionAI" ? "execution" : "supervision"}`, fullResponse, { - name: agent === "executionAI" ? "执行导演" : "监制", - createTime: new Date(subMsg.datetime).getTime(), - }); - } + } catch (err: any) { + text.complete(); + subMsg.stop(); + throw err; + } - // 为主Agent后续输出创建新消息 - parentCtx.msg = parentCtx.resTool.newMessage("assistant", "监制"); + if (fullResponse.trim()) { + await memory.add(memoryKey, removeAllXmlTags(fullResponse), { + name, + createTime: new Date(subMsg.datetime).getTime(), + }); + } - return fullResponse; + parentCtx.msg = resTool.newMessage("assistant", "视频策划"); + return fullResponse; + } + + const promptInput = z.object({ + prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), + }); + + const run_sub_agent_execution = tool({ + description: "执行层子Agent,负责衍生资产、", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_agent_execution.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + const addPrompt = + "\n" + + [ + "你必须使用如下XML格式写入工作区:\n```", + "拍摄计划:内容", + "分镜表:内容", + "分镜面板:", + "```", + ].join("\n"); + + const projectInfo = await u.db("o_project").where("id", resTool.data.projectId).first(); + if (!projectInfo) throw new Error(`项目不存在,ID: ${resTool.data.projectId}`); + const artSkills = await createArtSkills(projectInfo?.artStyle!, projectInfo?.directorManual!); + + const [_, imageModelName] = projectInfo.imageModel!.split(":"); + const [id, videoModelName] = projectInfo.videoModel!.split(":"); + const data = await u.db("o_vendorConfig").where("id", id).select("models").first(); + const models = JSON.parse(data!.models!); + const findData = models.find((i: any) => i.modelName == videoModelName); + const isRef = findData.mode.every((i: any) => Array.isArray(i)); + const modelInfo = `项目使用的模型如下:\n图像模型:${imageModelName}\n视频模型:${videoModelName}\n多参:${isRef ? "是" : "否"}`; + + return runAgent({ + prompt, + system: systemPrompt + addPrompt, + name: "执行导演", + memoryKey: "assistant:execution", + messages: [ + { role: "assistant", content: artSkills.prompt + `\n${modelInfo}` }, + { role: "user", content: prompt + addPrompt }, + ], + tools: { ...artSkills.tools }, + }); }, }); + + const run_sub_agent_supervision = tool({ + description: "监制层子Agent,负责审核执行结果", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_agent_supervision.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + return runAgent({ + prompt, + system: systemPrompt, + name: "监制", + memoryKey: "assistant:supervision", + }); + }, + }); + + return { run_sub_agent_execution, run_sub_agent_supervision }; +} + +async function createArtSkills(artName: string, storyName: string) { + const artWorkerPath = u.getPath(["skills", "art_skills", artName, "driector_skills"]); + const storyWorkerPath = u.getPath(["skills", "story_skills", storyName, "driector_skills"]); + const skillList = [...(await scanSkills(artWorkerPath + "/*.md")), ...(await scanSkills(storyWorkerPath + "/*.md"))]; + const mainSkills: { path: string; name: string; description: string }[] = []; + for (const skillPath of skillList) { + if (!fs.existsSync(skillPath)) throw new Error(`主技能文件不存在: ${skillPath}`); + const content = await fs.promises.readFile(skillPath, "utf-8"); + const parsed = parseFrontmatter(content); + mainSkills.push({ path: skillPath, ...parsed }); + } + const res = { + prompt: `## Skills +以下技能提供了专业任务的专用指令。 +当任务与某个技能的描述匹配时,调用 activate_skill 工具并传入技能名称来加载完整指令。 +加载后遵循技能指令执行任务,需要时调用 read_skill_file 读取资源文件内容。 +${buildSkillPrompt(mainSkills)}`, + tools: createSkillTools(mainSkills, { mainSkill: mainSkills, secondarySkills: [], tertiarySkills: [] }), + }; + return res; +} + +function removeAllXmlTags(text: string): string { + text = text.replace(/<([a-zA-Z][\w-]*)(\s+[^>]*)?>([\s\S]*?)<\/\1>/g, ""); + text = text.replace(/<([a-zA-Z][\w-]*)(\s+[^>]*)?\/>/g, ""); + text = text.replace(/<\/?[a-zA-Z][\w-]*(\s+[^>]*)?>/g, ""); + return text.trim(); +} + +export function buildSkillPrompt(skills: { name: string; description: string }[]): string { + const skillEntries = skills + .map((s) => ` \n ${s.name}\n ${s.description}\n `) + .join("\n"); + return ` + +${skillEntries} +`; } diff --git a/src/agents/productionAgent/index.ts b/src/agents/productionAgent/index.ts index 4744625..2d304b7 100644 --- a/src/agents/productionAgent/index.ts +++ b/src/agents/productionAgent/index.ts @@ -65,7 +65,7 @@ export async function decisionAI(ctx: AgentContext) { tools: { ...memory.getTools(), ...useTools({ resTool: ctx.resTool, msg: ctx.msg }), - ...createSubAgent(ctx), + ...(await createSubAgent(ctx)), }, onFinish: async (completion) => { await memory.add("assistant:decision", removeAllXmlTags(completion.text)); @@ -75,7 +75,7 @@ export async function decisionAI(ctx: AgentContext) { return textStream; } -function createSubAgent(parentCtx: AgentContext) { +async function createSubAgent(parentCtx: AgentContext) { const { resTool, abortSignal } = parentCtx; const memory = new Memory("productionAgent", parentCtx.isolationKey); async function runAgent({ @@ -98,7 +98,7 @@ function createSubAgent(parentCtx: AgentContext) { const text = subMsg.text(); let fullResponse = ""; - const { textStream } = await u.Ai.Text("scriptAgent").stream({ + const { textStream } = await u.Ai.Text("productionAgent").stream({ system, messages: messages ?? [{ role: "user", content: prompt }], abortSignal, @@ -134,33 +134,99 @@ function createSubAgent(parentCtx: AgentContext) { prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), }); - const run_sub_agent_execution = tool({ - description: "执行层子Agent,负责衍生资产、", + const projectInfo = await u.db("o_project").where("id", resTool.data.projectId).first(); + if (!projectInfo) throw new Error(`项目不存在,ID: ${resTool.data.projectId}`); + const artSkills = await createArtSkills(projectInfo?.artStyle!, projectInfo?.directorManual!); + + const [_, imageModelName] = projectInfo.imageModel!.split(":"); + const [id, videoModelName] = projectInfo.videoModel!.split(":"); + const data = await u.db("o_vendorConfig").where("id", id).select("models").first(); + const models = JSON.parse(data!.models!); + const findData = models.find((i: any) => i.modelName == videoModelName); + const isRef = findData.mode.every((i: any) => Array.isArray(i)); + const modelInfo = `项目使用的模型如下:\n图像模型:${imageModelName}\n视频模型:${videoModelName}\n多参:${isRef ? "是" : "否"}`; + + // const run_sub_agent_execution = tool({ + // description: "执行层子Agent,负责衍生资产、", + // inputSchema: promptInput, + // execute: async ({ prompt }) => { + // const skill = path.join(u.getPath("skills"), "production_agent_execution.md"); + // const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + // const addPrompt = + // "\n" + + // [ + // "你必须使用如下XML格式写入工作区:\n```", + // "拍摄计划:内容", + // "分镜表:内容", + // "分镜面板:", + // "```", + // ].join("\n"); + + // return runAgent({ + // prompt, + // system: systemPrompt + addPrompt, + // name: "执行导演", + // memoryKey: "assistant:execution", + // messages: [ + // { role: "assistant", content: artSkills.prompt + `\n${modelInfo}` }, + // { role: "user", content: prompt + addPrompt }, + // ], + // tools: { ...artSkills.tools }, + // }); + // }, + // }); + + //衍生资产分析与信息写入 + const run_sub_agent_derive_assets = tool({ + description: "运行执行subAgent来完成衍生资产分析与信息写入相关任务", inputSchema: promptInput, execute: async ({ prompt }) => { - const skill = path.join(u.getPath("skills"), "production_agent_execution.md"); + const skill = path.join(u.getPath("skills"), "production_execution_derive_assets.md"); const systemPrompt = await fs.promises.readFile(skill, "utf-8"); - const addPrompt = - "\n" + - [ - "你必须使用如下XML格式写入工作区:\n```", - "拍摄计划:内容", - "分镜表:内容", - "分镜面板:", - "```", - ].join("\n"); + return runAgent({ + prompt, + system: systemPrompt, + name: "执行导演", + memoryKey: "assistant:execution", + messages: [ + { role: "assistant", content: artSkills.prompt + `\n${modelInfo}` }, + { role: "user", content: prompt }, + ], + tools: { activate_skill: artSkills.tools.activate_skill }, + }); + }, + }); - const projectInfo = await u.db("o_project").where("id", resTool.data.projectId).first(); - if (!projectInfo) throw new Error(`项目不存在,ID: ${resTool.data.projectId}`); - const artSkills = await createArtSkills(projectInfo?.artStyle!, projectInfo?.directorManual!); + //衍生资产图片生成 + const run_sub_agent_generate_assets = tool({ + description: "运行执行subAgent来完成衍生资产图片生成相关任务", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_execution_generate_assets.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + return runAgent({ + prompt, + system: systemPrompt, + name: "执行导演", + memoryKey: "assistant:execution", + messages: [ + { role: "assistant", content: artSkills.prompt + `\n${modelInfo}` }, + { role: "user", content: prompt }, + ], + tools: { activate_skill: artSkills.tools.activate_skill }, + }); + }, + }); - const [_, imageModelName] = projectInfo.imageModel!.split(":"); - const [id, videoModelName] = projectInfo.videoModel!.split(":"); - const data = await u.db("o_vendorConfig").where("id", id).select("models").first(); - const models = JSON.parse(data!.models!); - const findData = models.find((i: any) => i.modelName == videoModelName); - const isRef = findData.mode.every((i: any) => Array.isArray(i)); - const modelInfo = `项目使用的模型如下:\n图像模型:${imageModelName}\n视频模型:${videoModelName}\n多参:${isRef ? "是" : "否"}`; + //拍摄计划 + const run_sub_agent_director_plan = tool({ + description: "运行执行subAgent来完成导演规划相关任务", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_execution_director_plan.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + + const addPrompt = "\n你必须使用如下XML格式写入工作区:\n```\n内容\n```"; return runAgent({ prompt, @@ -171,13 +237,95 @@ function createSubAgent(parentCtx: AgentContext) { { role: "assistant", content: artSkills.prompt + `\n${modelInfo}` }, { role: "user", content: prompt + addPrompt }, ], - tools: { ...artSkills.tools }, + tools: { activate_skill: artSkills.tools.activate_skill }, + }); + }, + }); + + //分镜图生成 + const run_sub_agent_storyboard_gen = tool({ + description: "运行执行subAgent来完成分镜图生成相关任务", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_execution_storyboard_gen.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + return runAgent({ + prompt, + system: systemPrompt, + name: "执行导演", + memoryKey: "assistant:execution", + messages: [ + { role: "assistant", content: artSkills.prompt + `\n${modelInfo}` }, + { role: "user", content: prompt }, + ], + tools: { activate_skill: artSkills.tools.activate_skill }, + }); + }, + }); + + // const mainSkills: { path: string; name: string; description: string }[] = []; + // for (const skill of mainSkill) { + // const skillPath = path.join(rootDir, skill + ".md"); + // if (!fs.existsSync(skillPath)) throw new Error(`主技能文件不存在: ${skillPath}`); + // if (!isPathInside(skillPath, normalizedRootDir)) throw new Error(`技能名称无效:检测到路径穿越。${skillPath}`); + // const content = await fs.promises.readFile(skillPath, "utf-8"); + // const parsed = parseFrontmatter(content); + // mainSkills.push({ path: skillPath, ...parsed }); + // } + + const productionSkills = await useProductionSkills(projectInfo?.artStyle!, projectInfo?.directorManual!); + + //分镜面板写入 + const run_sub_agent_storyboard_panel = tool({ + description: "运行执行subAgent来完成分镜面板写入相关任务", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_execution_storyboard_panel.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + + const addPrompt = + "\n你必须使用如下XML格式写入工作区:\n```\n\n```"; + + return runAgent({ + prompt, + system: systemPrompt + addPrompt, + name: "执行导演", + memoryKey: "assistant:execution", + messages: [ + { role: "assistant", content: productionSkills.prompt + `\n${modelInfo}` }, + { role: "user", content: prompt + addPrompt }, + ], + tools: { activate_skill: productionSkills.tools.activate_skill }, + }); + }, + }); + + //分镜表写入 + const run_sub_agent_storyboard_table = tool({ + description: "运行执行subAgent来完成分镜表构建相关任务", + inputSchema: promptInput, + execute: async ({ prompt }) => { + const skill = path.join(u.getPath("skills"), "production_execution_storyboard_table.md"); + const systemPrompt = await fs.promises.readFile(skill, "utf-8"); + + const addPrompt = "\n你必须使用如下XML格式写入工作区:\n```\n内容\n```"; + + return runAgent({ + prompt, + system: systemPrompt + addPrompt, + name: "执行导演", + memoryKey: "assistant:execution", + messages: [ + { role: "assistant", content: productionSkills.prompt + `\n${modelInfo}` }, + { role: "user", content: prompt + addPrompt }, + ], + tools: { activate_skill: productionSkills.tools.activate_skill }, }); }, }); const run_sub_agent_supervision = tool({ - description: "监制层子Agent,负责审核执行结果", + description: "运行监督层subAgent执行独立任务,完成后返回结果", inputSchema: promptInput, execute: async ({ prompt }) => { const skill = path.join(u.getPath("skills"), "production_agent_supervision.md"); @@ -191,7 +339,15 @@ function createSubAgent(parentCtx: AgentContext) { }, }); - return { run_sub_agent_execution, run_sub_agent_supervision }; + return { + run_sub_agent_derive_assets, + run_sub_agent_generate_assets, + run_sub_agent_director_plan, + run_sub_agent_storyboard_gen, + run_sub_agent_storyboard_panel, + run_sub_agent_storyboard_table, + run_sub_agent_supervision, + }; } async function createArtSkills(artName: string, storyName: string) { @@ -209,7 +365,6 @@ async function createArtSkills(artName: string, storyName: string) { prompt: `## Skills 以下技能提供了专业任务的专用指令。 当任务与某个技能的描述匹配时,调用 activate_skill 工具并传入技能名称来加载完整指令。 -加载后遵循技能指令执行任务,需要时调用 read_skill_file 读取资源文件内容。 ${buildSkillPrompt(mainSkills)}`, tools: createSkillTools(mainSkills, { mainSkill: mainSkills, secondarySkills: [], tertiarySkills: [] }), }; @@ -232,3 +387,29 @@ export function buildSkillPrompt(skills: { name: string; description: string }[] ${skillEntries} `; } + +async function useProductionSkills(artName: string, storyName: string) { + const artWorkerPath = u.getPath(["skills", "art_skills", artName, "driector_skills"]); + const storyWorkerPath = u.getPath(["skills", "story_skills", storyName, "driector_skills"]); + const productionPath = u.getPath(["skills", "production_skills"]); + const skillList = [ + ...(await scanSkills(artWorkerPath + "/*.md")), + ...(await scanSkills(storyWorkerPath + "/*.md")), + ...(await scanSkills(productionPath + "/*.md")), + ]; + const mainSkills: { path: string; name: string; description: string }[] = []; + for (const skillPath of skillList) { + if (!fs.existsSync(skillPath)) throw new Error(`主技能文件不存在: ${skillPath}`); + const content = await fs.promises.readFile(skillPath, "utf-8"); + const parsed = parseFrontmatter(content); + mainSkills.push({ path: skillPath, ...parsed }); + } + const res = { + prompt: `## Skills +以下技能提供了专业任务的专用指令。 +当任务与某个技能的描述匹配时,调用 activate_skill 工具并传入技能名称来加载完整指令。 +${buildSkillPrompt(mainSkills)}`, + tools: createSkillTools(mainSkills, { mainSkill: mainSkills, secondarySkills: [], tertiarySkills: [] }), + }; + return res; +} diff --git a/src/agents/productionAgent/tools copy.ts b/src/agents/productionAgent/tools copy.ts deleted file mode 100644 index bb20b61..0000000 --- a/src/agents/productionAgent/tools copy.ts +++ /dev/null @@ -1,751 +0,0 @@ -import { tool, Tool } from "ai"; -import { z } from "zod"; -import _ from "lodash"; -import ResTool from "@/socket/resTool"; -import u from "@/utils"; -import { urlToBase64 } from "@/utils/vm"; -export const deriveAssetSchema = z.object({ - id: z.number().describe("衍生资产ID,如果新增则为空"), - assetsId: z.number().describe("关联的资产ID"), - prompt: z.string().describe("生成提示词"), - name: z.string().describe("衍生资产名称"), - desc: z.string().describe("衍生资产描述"), - src: z.string().nullable().describe("衍生资产资源路径"), - state: z.enum(["未生成", "生成中", "已完成", "生成失败"]).describe("衍生资产生成状态"), - type: z.enum(["role", "tool", "scene", "clip"]).describe("衍生资产类型"), -}); -export const assetItemSchema = z.object({ - id: z.number().describe("资产唯一标识"), - name: z.string().describe("资产名称"), - type: z.enum(["role", "tool", "scene", "clip"]).describe("资产类型"), - prompt: z.string().describe("生成提示词"), - desc: z.string().describe("资产描述"), - derive: z.array(deriveAssetSchema).describe("衍生资产列表"), -}); -export const storyboardSchema = z.object({ - id: z.number().describe("分镜ID,必须为真实id"), - title: z.string().describe("分镜标题"), - description: z.string().describe("分镜描述"), - camera: z.string().describe("镜头信息"), - duration: z.number().describe("持续时长(秒)"), - frameMode: z.enum(["firstFrame", "endFrame", "linesSoundEffects"]).describe("帧模式: 首帧/尾帧/台词音效"), - prompt: z.string().describe("生成提示词"), - lines: z.string().nullable().describe("台词内容"), - sound: z.string().nullable().describe("音效内容"), - mode: z - .union([ - z.enum(["singleImage", "multiImage", "gridImage", "startEndRequired", "endFrameOptional", "startFrameOptional", "text"]), - z.array(z.enum(["video", "image", "audio", "text"])), - ]) - .describe("视频模式"), - associateAssetsIds: z.array(z.number()).describe("关联资产ID列表"), - src: z.string().nullable().describe("分镜资源路径"), -}); -export const workbenchDataSchema = z.object({ - name: z.string().describe("项目名称"), - duration: z.string().describe("视频时长"), - resolution: z.string().describe("分辨率"), - fps: z.string().describe("帧率"), - cover: z.string().optional().describe("封面图片路径"), - gradient: z.string().optional().describe("渐变色配置"), -}); -export const posterItemSchema = z.object({ - id: z.number().describe("海报ID"), - image: z.string().describe("海报图片路径"), -}); -export const flowDataSchema = z.object({ - script: z.string().describe("剧本内容"), - scriptPlan: z.string().describe("拍摄计划"), - assets: z.array(assetItemSchema).describe("衍生资产"), - storyboardTable: z.string().describe("分镜表"), - storyboard: z.array(storyboardSchema).describe("分镜面板"), - workbench: workbenchDataSchema.describe("工作台配置"), - poster: z - .object({ - items: z.array(posterItemSchema).describe("海报项目列表"), - }) - .describe("海报配置"), -}); - -export type FlowData = z.infer; - -const keySchema = z.enum(Object.keys(flowDataSchema.shape) as [keyof FlowData, ...Array]); -const flowDataKeyLabels = Object.fromEntries( - Object.entries(flowDataSchema.shape).map(([key, schema]) => [key, (schema as z.ZodTypeAny).description ?? key]), -) as Record; - -interface ToolConfig { - resTool: ResTool; - toolsNames?: string[]; - msg: ReturnType; -} - -export default (toolCpnfig: ToolConfig) => { - const { resTool, toolsNames, msg } = toolCpnfig; - const { socket } = resTool; - const tools: Record = { - get_flowData: tool({ - description: "获取工作区数据", - inputSchema: z.object({ - key: keySchema.describe("数据key"), - }), - execute: async ({ key }) => { - const thinking = msg.thinking(`正在获取${flowDataKeyLabels[key]}工作区数据...`); - console.log("[tools] get_flowData", key); - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key }, (res: any) => resolve(res))); - thinking.appendText(`获取到${flowDataKeyLabels[key]}:\n` + flowData[key]); - thinking.updateTitle(`获取${flowDataKeyLabels[key]}完成`); - thinking.complete(); - return flowData[key]; - }, - }), - set_flowData_script: tool({ - description: "保存剧本内容到工作区", - inputSchema: z.object({ value: flowDataSchema.shape.script }), - execute: async ({ value }) => { - console.log("[tools] set_flowData script", value); - const thinking = msg.thinking("正在保存 剧本 数据"); - socket.emit("setFlowData", { key: "script", value }); - thinking.updateTitle("保存 剧本 数据完成"); - thinking.complete(); - return true; - }, - }), - set_flowData_scriptPlan: tool({ - description: "保存拍摄计划到工作区", - inputSchema: z.object({ value: flowDataSchema.shape.scriptPlan }), - execute: async ({ value }) => { - console.log("[tools] set_flowData scriptPlan", value); - const thinking = msg.thinking("正在保存 拍摄计划 数据"); - socket.emit("setFlowData", { key: "scriptPlan", value }); - thinking.updateTitle("保存 拍摄计划 数据完成"); - thinking.complete(); - return true; - }, - }), - add_flowData_assets: tool({ - description: "新增对应衍生资产列表到工作区,严禁包含 不需要新增的数据", - inputSchema: z.object({ value: z.array(deriveAssetSchema.omit({ id: true })).describe("需要新增的衍生资产列表") }), - execute: async ({ value }) => { - console.log("[tools] set_flowData add_flowData_assets", value); - const thinking = msg.thinking("正在保存 衍生资产 数据"); - const setData = [...value] as z.infer[]; - const { projectId, scriptId } = resTool.data; - const startTime = Date.now(); - - // 并行插入所有 o_assets 记录 - await Promise.all( - setData.map(async (i) => { - const [insertedId] = await u.db("o_assets").insert({ - assetsId: +i.assetsId || null, - projectId, - name: i.name, - type: i.type, - prompt: i.prompt, - describe: i.desc, - startTime, - }); - i.id = insertedId; - }), - ); - - // 批量插入 o_scriptAssets - await u.db("o_scriptAssets").insert(setData.map((i) => ({ scriptId, assetId: i.id }))); - - const watiAddAssetsMap: Record[]> = {}; - setData.forEach((i) => { - if (watiAddAssetsMap[i.assetsId]) { - watiAddAssetsMap[i.assetsId].push(i); - } else { - watiAddAssetsMap[i.assetsId] = [i]; - } - }); - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "assets" }, (res: any) => resolve(res))); - const assetsData = flowData.assets; - assetsData.forEach((i) => { - if (watiAddAssetsMap[i.id]) { - i.derive = [...(i.derive || []), ...watiAddAssetsMap[i.id]]; - } - }); - thinking.updateTitle("保存 衍生资产 数据完成"); - thinking.complete(); - - socket.emit("setFlowData", { key: "assets", value: assetsData }); - return true; - }, - }), - update_flowData_assets: tool({ - description: "更新对应衍生资产列表到工作区", - inputSchema: z.object({ value: z.array(deriveAssetSchema).describe("需要更新的衍生资产列表") }), - execute: async ({ value }) => { - console.log("[tools] update_flowData update_flowData_assets", value); - const thinking = msg.thinking("正在保存 衍生资产 数据"); - for (const i of value) { - await u - .db("o_assets") - .where("id", i.id) - .update({ - assetsId: +i.assetsId || null, - projectId: resTool.data.projectId, - name: i.name, - type: i.type, - prompt: i.prompt, - describe: i.desc, - }); - } - // 按 assetsId 分组,构建更新映射 - const updateAssetsMap: Record[]> = {}; - value.forEach((i) => { - if (updateAssetsMap[i.assetsId]) { - updateAssetsMap[i.assetsId].push(i); - } else { - updateAssetsMap[i.assetsId] = [i]; - } - }); - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "assets" }, (res: any) => resolve(res))); - const assetsData = flowData.assets; - // 将 derive 中已存在的条目替换为更新后的数据 - assetsData.forEach((asset) => { - if (updateAssetsMap[asset.id]) { - const updatedMap = Object.fromEntries(updateAssetsMap[asset.id].map((d) => [d.id, d])); - asset.derive = (asset.derive || []).map((d) => updatedMap[d.id] ?? d); - } - }); - thinking.updateTitle("保存 衍生资产 数据完成"); - thinking.complete(); - socket.emit("setFlowData", { key: "assets", value: assetsData }); - return true; - }, - }), - delete_flowData_assets: tool({ - description: "删除对应衍生资产", - inputSchema: z.object({ ids: z.array(z.number()).describe("需要删除的 衍生资产id ") }), - execute: async ({ ids }) => { - console.log("[tools] delete_flowData delete_flowData_assets", ids); - const thinking = msg.thinking("正在删除指定 衍生资产 数据..."); - await u.db("o_assets").whereIn("id", ids).delete(); - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "assets" }, (res: any) => resolve(res))); - const assetsData = flowData.assets; - assetsData.forEach((i) => { - i.derive = (i.derive || []).filter((d) => !ids.includes(d.id)); - }); - thinking.updateTitle("删除指定 衍生资产 数据完成"); - thinking.complete(); - // 将 derive 中已存在的条目替换为更新后的数据 - socket.emit("setFlowData", { key: "assets", value: assetsData }); - return true; - }, - }), - // set_flowData_assets: tool({ - // description: "保存衍生资产列表到工作区", - // inputSchema: z.object({ value: flowDataSchema.shape.assets }), - // execute: async ({ value }) => { - // console.log("[tools] set_flowData assets", value); - // resTool.systemMessage("正在保存 衍生资产 数据"); - // if (value && Array.isArray(value) && value.length) { - // for (const i of value) { - // if (!i?.id) { - // const [insertedId] = await u.db("o_assets").insert({ - // assetsId: null, - // name: i.name, - // type: i.type, - // prompt: i.prompt, - // describe: i.desc, - // startTime: Date.now(), - // }); - // i.id = insertedId; - // } - // if (i.derive && Array.isArray(i.derive) && i.derive.length) { - // for (const sub of i.derive) { - // if (sub.id) continue; - // const [insertedId] = await u.db("o_assets").insert({ - // assetsId: +i.id || null, - // projectId: resTool.data.projectId, - // name: sub.name, - // type: sub.type, - // prompt: sub.prompt, - // describe: sub.desc, - // startTime: Date.now(), - // }); - // await u.db("o_scriptAssets").insert({ - // scriptId: resTool.data.scriptId, - // assetId: insertedId, - // }); - // sub.id = insertedId; - // } - // } - // } - // } - // socket.emit("setFlowData", { key: "assets", value }); - // return true; - // }, - // }), - set_flowData_storyboardTable: tool({ - description: "保存分镜表到工作区", - inputSchema: z.object({ value: flowDataSchema.shape.storyboardTable }), - execute: async ({ value }) => { - console.log("[tools] set_flowData storyboardTable", value); - const thinking = msg.thinking("正在保存 分镜表 数据..."); - socket.emit("setFlowData", { key: "storyboardTable", value }); - thinking.updateTitle("保存 分镜表 数据完成"); - thinking.complete(); - return true; - }, - }), - add_flowData_storyboard: tool({ - description: "新增分镜面板到工作区", - inputSchema: z.object({ value: z.array(storyboardSchema.omit({ id: true })) }), - execute: async ({ value }) => { - console.log("[tools] add_flowData storyboard", value); - const thinking = msg.thinking("正在保存 分镜面板 数据..."); - const setData = [...value] as z.infer[]; - for (const item of setData) { - item.src = ""; - const [insertedId] = await u.db("o_storyboard").insert({ - title: item.title, - prompt: item.prompt, - description: item.description, - frameMode: item.frameMode, - duration: String(item.duration), - camera: item.camera, - sound: item.sound, - lines: item.lines, - state: "未生成", - scriptId: resTool.data.scriptId, - createTime: Date.now(), - }); - if (item.associateAssetsIds.length) { - await u.db("o_assets2Storyboard").insert(item.associateAssetsIds.map((i) => ({ storyboardId: insertedId, assetId: i }))); - } - item.id = insertedId; - } - //为了防止丢失分镜其他数据,例如:依赖分镜Id、依赖资产idc - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "storyboard" }, (res: any) => resolve(res))); - const storyboardData = flowData["storyboard"].concat([...setData]); - socket.emit("setFlowData", { key: "storyboard", value: storyboardData }); - - thinking.updateTitle("保存 分镜面板 数据完成"); - thinking.complete(); - - return true; - }, - }), - update_flowData_storyboard: tool({ - description: "更新指定分镜面板到工作区", - inputSchema: z.object({ value: flowDataSchema.shape.storyboard }), - execute: async ({ value }) => { - console.log("[tools] update_flowData storyboard", value); - const thinking = msg.thinking("正在保存 分镜面板 数据..."); - for (const item of value) { - await u - .db("o_storyboard") - .where("id", item.id) - .update({ - title: item.title, - prompt: item.prompt, - description: item.description, - frameMode: item.frameMode, - duration: String(item.duration), - camera: item.camera, - sound: item.sound, - lines: item.lines, - }); - } - //直接拉取前端数据,为了防止丢失分镜其他数据,例如:依赖分镜Id、依赖资产idc - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "storyboard" }, (res: any) => resolve(res))); - const storyboardData = flowData["storyboard"].map((existing) => { - const updated = value.find((v) => v.id === existing.id); - if (!updated) return existing; - return { - ...existing, - title: updated.title, - prompt: updated.prompt, - description: updated.description, - frameMode: updated.frameMode, - duration: updated.duration, - camera: updated.camera, - sound: updated.sound, - lines: updated.lines, - }; - }); - socket.emit("setFlowData", { key: "storyboard", value: storyboardData }); - thinking.updateTitle("保存 分镜面板 数据完成"); - thinking.complete(); - return true; - }, - }), - delete_flowData_storyboard: tool({ - description: "删除指定分镜面板并更新工作区", - inputSchema: z.object({ ids: z.array(z.number()).describe("需要删除的 分镜id ") }), - execute: async ({ ids }) => { - console.log("[tools] delete_flowData storyboard", ids); - const thinking = msg.thinking("正在删除指定 分镜面板 数据..."); - await u.db("o_storyboard").whereIn("id", ids).delete(); - await u.db("o_assets2Storyboard").whereIn("storyboardId", ids).delete(); - await u.db("o_storyboardFlow").whereIn("storyboardId", ids).delete(); - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "storyboard" }, (res: any) => resolve(res))); - const storyboardData = flowData["storyboard"].filter((item) => !ids.includes(item.id)); - socket.emit("setFlowData", { key: "storyboard", value: storyboardData }); - thinking.updateTitle("删除指定 分镜面板 数据完成"); - thinking.complete(); - return true; - }, - }), - // set_flowData_storyboard: tool({ - // description: "保存分镜面板到工作区", - // inputSchema: z.object({ value: flowDataSchema.shape.storyboard }), - // execute: async ({ value }) => { - // console.log("[tools] set_flowData storyboard", value); - // resTool.systemMessage("正在保存 分镜面板 数据..."); - // for (const item of value) { - // if (!item.id) { - // const [insertedId] = await u.db("o_storyboard").insert({ - // title: item.title, - // prompt: item.prompt, - // description: item.description, - // filePath: item.src, - // frameMode: item.frameMode, - // duration: String(item.duration), - // camera: item.camera, - // sound: item.sound, - // lines: item.lines, - // state: "未生成", - // scriptId: resTool.data.scriptId, - // }); - // console.log("%c Line:216 🥥 item.associateAssetsIds", "background:#6ec1c2", item.associateAssetsIds); - - // if (item.associateAssetsIds.length) { - // await u.db("o_assets2Storyboard").insert(item.associateAssetsIds.map((i) => ({ storyboardId: insertedId, assetId: i }))); - // } - // item.id = insertedId; - // } - // } - // socket.emit("setFlowData", { key: "storyboard", value }); - // return true; - // }, - // }), - set_flowData_workbench: tool({ - description: "保存工作台配置数据到工作区", - inputSchema: z.object({ value: flowDataSchema.shape.workbench }), - execute: async ({ value }) => { - console.log("[tools] set_flowData workbench", value); - const thinking = msg.thinking("正在保存 工作台配置 数据..."); - socket.emit("setFlowData", { key: "workbench", value }); - thinking.updateTitle("保存 工作台配置 数据完成"); - thinking.complete(); - return true; - }, - }), - set_flowData_poster: tool({ - description: "保存海报配置到工作区", - inputSchema: z.object({ value: flowDataSchema.shape.poster }), - execute: async ({ value }) => { - console.log("[tools] set_flowData poster", value); - const thinking = msg.thinking("正在保存 海报配置 数据..."); - thinking.updateTitle("保存 海报配置 数据完成"); - thinking.complete(); - socket.emit("setFlowData", { key: "poster", value }); - return true; - }, - }), - // todo 提示词待调 - generate_storyboard_images: tool({ - description: `生成一组图片任务,支持图片间的依赖关系(以图生图),基于有向无环图(DAG)拓扑排序执行。 - - 参数说明: - - images: 图片任务数组 - - id: 图片唯一标识符(分镜id) - - prompt: 图片生成提示词 - - referenceIds: 依赖的参考图id数组,无依赖填空数组[] - - assetIds: 参考的资产图id数组(可选) - - 依赖规则: - 1. referenceIds中的id必须存在于images数组中 - 2. 禁止循环依赖(如A依赖B,B依赖A) - 3. 被依赖的图片会先生成,其结果作为参考图传入 - - 示例:生成猫图,再以猫图为参考生成狗图 - images: [ - {id: 1, prompt: "一只橘猫", referenceIds: [], assetIds: []}, - {id: 2, prompt: "风格相同的金毛犬", referenceIds: [1], assetIds: []} - ]`, - inputSchema: z.object({ - images: z.array( - z.object({ - id: z.number().describe("从工作区获取到的分镜id"), - prompt: z.string().describe("图片生成提示词"), - referenceIds: z.array(z.number()).describe("依赖的参考 分镜图id数组,无依赖填空数组[]"), - assetIds: z.array(z.number()).describe("参考的资产图"), - }), - ), - }), - execute: async ({ images }) => { - console.log("[tools] generate_storyboard_images", images); - const thinking = msg.thinking("正在生成 分镜图片 数据..."); - // --- 构建任务id集合 --- - const taskIds = new Set(images.map((item) => item.id)); - const imageMap = new Map(images.map((item) => [item.id, item])); - - // --- 检测循环依赖 (Kahn算法拓扑排序) --- - // 将 referenceIds 分为:本批次内依赖 vs 外部已有依赖 - // 只有本批次内的依赖才参与 DAG 调度,外部依赖直接从数据库获取 - const inDegree = new Map(); - // adjacency: 被依赖者 -> 依赖它的节点列表 - const adjacency = new Map(); - - for (const item of images) { - // 只统计本批次内的依赖作为入度 - const internalDeps = item.referenceIds.filter((refId) => taskIds.has(refId)); - inDegree.set(item.id, internalDeps.length); - for (const depId of internalDeps) { - if (!adjacency.has(depId)) adjacency.set(depId, []); - adjacency.get(depId)!.push(item.id); - } - } - - // 拓扑排序,按层级分组(同层可并行) - const levels: number[][] = []; - let queue = images.filter((item) => (inDegree.get(item.id) ?? 0) === 0).map((item) => item.id); - - const visited = new Set(); - while (queue.length > 0) { - levels.push([...queue]); - const nextQueue: number[] = []; - for (const nodeId of queue) { - visited.add(nodeId); - for (const childId of adjacency.get(nodeId) ?? []) { - inDegree.set(childId, (inDegree.get(childId) ?? 1) - 1); - if (inDegree.get(childId) === 0) { - nextQueue.push(childId); - } - } - } - queue = nextQueue; - } - // 循环依赖检测 - if (visited.size !== images.length) { - const cyclicIds = images.filter((item) => !visited.has(item.id)).map((item) => item.id); - thinking.appendText(`检测到循环依赖,涉及分镜id: ${cyclicIds.join(", ")},请修正后重试`); - thinking.updateTitle("循环依赖错误"); - thinking.error(); - return `错误:检测到循环依赖,涉及分镜id: ${cyclicIds.join(", ")}`; - } - - thinking.appendText(`图片生成调度计划:共 ${levels.length} 层,${images.length} 张图片`); - - // --- 准备公共数据 --- - const projectData = await u.db("o_project").where("id", resTool.data.projectId).select("videoRatio").first(); - const imageModelData = await u.db("o_project").where("id", resTool.data.projectId).select("imageModel", "imageQuality").first(); - - // 生成单张图片的函数 - const generateOneImage = async (item: (typeof images)[0]) => { - const thinking = msg.thinking(`正在生成分镜 id:${item.id} 图片`); - // 更新数据库状态为生成中 - await u.db("o_storyboard").where("id", item.id).update({ state: "生成中" }); - // 更新前端为生成中 - socket.emit("setFlowData", { - key: "setStoryboardImage", - value: { ...item, id: item.id, src: "", state: "生成中", referenceIds: item.referenceIds }, - }); - - // 获取参考图base64(包括资产图和已生成的分镜参考图) - const [assetsBase64, referenceBase64] = await Promise.all([ - getAssetsImageBase64(item.assetIds ?? []), - getStoryboardImageBase64(item.referenceIds), - ]); - - const imageCls = await u.Ai.Image(imageModelData.imageModel).run({ - prompt: item.prompt, - imageBase64: [...assetsBase64, ...referenceBase64], - size: imageModelData.imageQuality, - aspectRatio: (projectData?.videoRatio as `${number}:${number}`) ?? "16:9", - taskClass: "生成图片", - describe: "分镜图片生成", - relatedObjects: "hhhh", - projectId: resTool.data.projectId, - }); - - const savePath = `/${resTool.data.projectId}/storyboard/${u.uuid()}.jpg`; - await imageCls.save(savePath); - - // 更新数据库状态为已完成 - await u.db("o_storyboard").where("id", item.id).update({ state: "已完成", filePath: savePath }); - - const obj = { - ...item, - id: item.id, - src: await u.oss.getFileUrl(savePath), - state: "已完成", - referenceIds: item.referenceIds, - }; - // 前端对话框提示 - thinking.appendText(`分镜 id:${item.id} 图片生成完成`); - thinking.complete(); - // 更新前端界面展示 - socket.emit("setFlowData", { key: "setStoryboardImage", value: obj }); - }; - - // --- 按层级顺序执行:同层并行,层间串行 --- - for (let levelIndex = 0; levelIndex < levels.length; levelIndex++) { - const levelIds = levels[levelIndex]; - const levelItems = levelIds.map((id) => imageMap.get(id)!); - const thinking = msg.thinking( - `开始生成第 ${levelIndex + 1}/${levels.length} 层,共 ${levelItems.length} 张图片 (ids: ${levelIds.join(", ")})`, - ); - - // 同层内所有图片并行生成,使用 allSettled 确保不会因单张失败中断整层 - const results = await Promise.allSettled(levelItems.map((item) => generateOneImage(item))); - - // 处理失败的任务 - for (let i = 0; i < results.length; i++) { - if (results[i].status === "rejected") { - const failedId = levelIds[i]; - const reason = (results[i] as PromiseRejectedResult).reason; - console.error(`[tools] 分镜 id:${failedId} 图片生成失败`, reason); - thinking.appendText(`分镜 id:${failedId} 图片生成失败: ${reason?.message || reason}`); - await u.db("o_storyboard").where("id", failedId).update({ state: "生成失败" }); - socket.emit("setFlowData", { - key: "setStoryboardImage", - value: { id: failedId, src: "", state: "生成失败" }, - }); - } - } - thinking.appendText(`第 ${levelIndex + 1}/${levels.length} 层图片生成完成`); - thinking.complete(); - } - thinking.appendText("所有分镜图片生成完成"); - thinking.updateTitle("分镜图片生成完成"); - thinking.complete(); - - return "分镜图片生成完成"; - }, - }), - - //todo 提示词待调 - generate_assets_images: tool({ - description: ` - 生成 资产图片 不区分原资产于衍生资产 - 参数说明: - - images: 图片任务数组 - - assetId: 资产id - - prompt: 图片生成提示词 - 示例: - images:[ - {assetId: 1, prompt: "一张猫的图片"} - ] - `, - inputSchema: z.object({ - images: z.array( - z.object({ - assetId: z.number().describe("衍生资产id"), - prompt: z.string().describe("提示词"), - }), - ), - }), - execute: async ({ images }) => { - console.log("[tools] generate_assets_images", images); - //先获取到前端资产数据 - const flowData: FlowData = await new Promise((resolve) => socket.emit("getFlowData", { key: "assets" }, (res: any) => resolve(res))); - const assetsData = flowData["assets"]; - const assetsImage: { assetId: number; prompt: string; id?: number }[] = [...images]; - //获取对应的 原资产id - assetsImage.forEach((item) => { - for (const i of assetsData) { - const findData = i.derive.find((m) => m.id == item.assetId); - if (findData) { - item.id = findData.id; - break; - } - } - }); - //获取所设置模型 - const imageModelData = await u.db("o_project").where("id", resTool.data.projectId).select("imageModel", "imageQuality").first(); - for (const item of assetsImage) { - const [imageId] = await u.db("o_image").insert({ - // 数据库插入图片记录 - assetsId: item.assetId, - model: imageModelData?.imageModel, - state: "生成中", - resolution: imageModelData?.imageQuality, - }); - u.Ai.Image(imageModelData?.imageModel) - .run({ - prompt: item.prompt, - imageBase64: await getAssetsImageBase64(item.id ? [item.id] : []), - size: imageModelData?.imageQuality, - aspectRatio: "16:9", - taskClass: "生成图片", - describe: "资产图片生成", - relatedObjects: "hhhh", - projectId: resTool.data.projectId, - }) - .then(async (imageCls) => { - const savePath = `/${resTool.data.projectId}/assets/${u.uuid()}.jpg`; - await imageCls.save(savePath); - const obj = { - ...item, - id: item.assetId, - src: await u.oss.getFileUrl(savePath), - state: "已完成", - }; - //更新对应数据库 - await u.db("o_assets").where("id", item.assetId).update({ imageId: imageId }); - await u.db("o_image").where({ id: imageId }).update({ state: "已完成", filePath: savePath }); - //通知前端更新 - socket.emit("setFlowData", { key: "setAssetsImage", value: obj }); - }); - //通知前端更新状态 - socket.emit("setFlowData", { key: "setAssetsImage", value: { ...item, id: item.assetId, src: "", state: "生成中" } }); - } - return "资产生成中"; - }, - }), - }; - - return toolsNames ? Object.fromEntries(Object.entries(tools).filter(([n]) => toolsNames.includes(n))) : tools; -}; - -// 获取资产图片base64 -async function getAssetsImageBase64(imageIds: number[]) { - if (imageIds.length === 0) return []; - const imagePaths = await u - .db("o_assets") - .leftJoin("o_image", "o_assets.imageId", "o_image.id") - .whereIn("o_assets.id", imageIds) - .select("o_assets.id", "o_image.filePath"); - if (!imagePaths.length) return []; - const imageUrls = await Promise.all( - imagePaths.map(async (i) => { - if (i.filePath) { - try { - return await urlToBase64(await u.oss.getFileUrl(i.filePath)); - } catch { - return null; - } - } else { - return null; - } - }), - ); - return imageUrls.filter(Boolean) as string[]; -} - -//获取分镜图片base64 -async function getStoryboardImageBase64(imageIds: number[]) { - if (!imageIds.length) return []; - const storayboardData = await u.db("o_storyboard").whereIn("id", imageIds).select("id", "filePath"); - const imageUrls = await Promise.all( - storayboardData.map(async (i) => { - if (i.filePath) { - try { - return await urlToBase64(await u.oss.getFileUrl(i.filePath)); - } catch { - return null; - } - } else { - return null; - } - }), - ); - return imageUrls.filter(Boolean) as string[]; -} diff --git a/src/agents/scriptAgent/index copy 2.ts b/src/agents/scriptAgent/index copy 2.ts deleted file mode 100644 index 0f61b92..0000000 --- a/src/agents/scriptAgent/index copy 2.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { Socket } from "socket.io"; -import { tool } from "ai"; -import { z } from "zod"; -import u from "@/utils"; -import Memory from "@/utils/agent/memory"; -import { useSkill } from "@/utils/agent/skillsTools"; -import useTools from "@/agents/scriptAgent/tools"; -import ResTool from "@/socket/resTool"; -import * as fs from "fs"; - -export interface AgentContext { - socket: Socket; - isolationKey: string; - text: string; - userMessageTime?: number; - abortSignal?: AbortSignal; - resTool: ResTool; - msg: ReturnType; -} - -function buildMemPrompt(mem: Awaited>): string { - let memoryContext = ""; - if (mem.rag.length) { - memoryContext += `[相关记忆]\n${mem.rag.map((r) => r.content).join("\n")}`; - } - if (mem.summaries.length) { - if (memoryContext) memoryContext += "\n\n"; - memoryContext += `[历史摘要]\n${mem.summaries.map((s, i) => `${i + 1}. ${s.content}`).join("\n")}`; - } - if (mem.shortTerm.length) { - if (memoryContext) memoryContext += "\n\n"; - memoryContext += `[近期对话]\n${mem.shortTerm.map((m) => `${m.role}: ${m.content}`).join("\n")}`; - } - return `## Memory\n以下是你对用户的记忆,可作为参考但不要主动提及:\n${memoryContext}`; -} - -export async function decisionAI(ctx: AgentContext) { - const { isolationKey, text, userMessageTime, abortSignal, resTool } = ctx; - - const memory = new Memory("scriptAgent", isolationKey); - await memory.add("user", text, { createTime: userMessageTime }); - - const { skillPaths } = await useSkill({ mainSkill: "script_agent_decision" }); - const prompt = await fs.promises.readFile(skillPaths.mainSkill, "utf-8"); - - const mem = buildMemPrompt(await memory.get(text)); - - const projectData = await u.db("o_project").where("id", resTool.data.projectId).first(); - const novelData = await u.db("o_novel").where("projectId", resTool.data.projectId).select("id", "chapterIndex as index"); - - const projectInfo = [ - "## 项目信息", - `小说名称:${projectData?.name ?? "未知"}`, - `小说类型:${projectData?.type ?? "未知"}`, - `小说简介:${projectData?.intro ?? "无"}`, - `目标改编影视视觉手册|画风:${projectData?.artStyle ?? "无"}`, - `目标改编视频画幅:${projectData?.videoRatio ?? "16:9"}`, - ].join("\n"); - - const projectPrompt = `${projectInfo}\n\n## 章节ID映射表\n${novelData.map((i: any) => `- 章节ID:${i.id}: 第${i.index}章`).join("\n")}\n\n`; - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - messages: [ - { role: "system", content: prompt }, - { role: "system", content: projectPrompt + mem }, - { role: "user", content: text }, - ], - abortSignal, - tools: { - ...memory.getTools(), - ...useTools({ resTool: ctx.resTool, msg: ctx.msg }), - ...createSubAgent(ctx), - }, - onFinish: async (completion) => { - await memory.add("assistant:decision", completion.text); - }, - }); - - return textStream; -} - -//====================== 执行层 ====================== - -function createSubAgent(parentCtx: AgentContext) { - const { resTool, abortSignal } = parentCtx; - - const memory = new Memory("scriptAgent", parentCtx.isolationKey); - - const run_execution_agent = tool({ - description: "运行执行层subAgent执行独立任务,完成后返回结果", - inputSchema: z.object({ - taskType: z.enum(["故事骨架", "改变策略", "剧本"]).describe("任务类型"), - prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), - }), - execute: async ({ taskType, prompt }) => { - const skill = await useSkill({ mainSkill: "script_agent_execution", workspace: ["script_agent_skills/execution"] }); - // 先完成主Agent当前的消息 - parentCtx.msg.complete(); - const subMsg = resTool.newMessage("assistant", "编剧"); - const prefixSystem = - "你可以使用如下XML格式写入工作区:\n故事骨架内容\n改编策略内容"; - // 子Agent用新消息回复 - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - system: prefixSystem + skill.prompt, - messages: [{ role: "user", content: `请完成${taskType}任务` }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ resTool, msg: subMsg }), - get_task_details: tool({ - description: "获取主Agent传入的任务目标详情", - inputSchema: z.object({}), - execute: async () => { - const thinking = subMsg.thinking("以获取任务详情"); - thinking.appendText("任务详情:\n" + prompt); - thinking.complete(); - return prompt ?? "运行失败"; - }, - }), - }, - }); - - let text = subMsg.text(); - let fullResponse = ""; - for await (const chunk of textStream) { - text.append(chunk); - fullResponse += chunk; - } - text.complete(); - subMsg.complete(); - if (fullResponse.trim()) { - await memory.add(`assistant:execution`, fullResponse, { name: "编剧", createTime: new Date(subMsg.datetime).getTime() }); - } - // 为主Agent后续输出创建新消息 - parentCtx.msg = parentCtx.resTool.newMessage("assistant", "统筹"); - return fullResponse; - }, - }); - - const run_supervision_agent = tool({ - description: "运行监督层subAgent执行独立任务,完成后返回结果", - inputSchema: z.object({ - prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), - }), - execute: async ({ prompt }) => { - const skill = await useSkill({ mainSkill: "script_agent_supervision", workspace: ["script_agent_skills/supervision"] }); - - // 先完成主Agent当前的消息 - parentCtx.msg.complete(); - // 子Agent用新消息回复 - - const subMsg = resTool.newMessage("assistant", "编辑"); - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - system: skill.prompt, - messages: [{ role: "user", content: prompt }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ resTool, msg: subMsg }), - }, - }); - - let text = subMsg.text(); - let fullResponse = ""; - for await (const chunk of textStream) { - text.append(chunk); - fullResponse += chunk; - } - text.complete(); - subMsg.complete(); - if (fullResponse.trim()) { - await memory.add(`assistant:supervision`, fullResponse, { name: "编辑", createTime: new Date(subMsg.datetime).getTime() }); - } - // 为主Agent后续输出创建新消息 - parentCtx.msg = parentCtx.resTool.newMessage("assistant", "统筹"); - return fullResponse; - }, - }); - - return { - run_execution_agent, - run_supervision_agent, - }; -} diff --git a/src/agents/scriptAgent/index copy 3.ts b/src/agents/scriptAgent/index copy 3.ts deleted file mode 100644 index e32e9d6..0000000 --- a/src/agents/scriptAgent/index copy 3.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { Socket } from "socket.io"; -import { tool } from "ai"; -import { z } from "zod"; -import u from "@/utils"; -import Memory from "@/utils/agent/memory"; -import { useSkill } from "@/utils/agent/skillsTools"; -import useTools from "@/agents/scriptAgent/tools"; -import ResTool from "@/socket/resTool"; -import * as fs from "fs"; - -export interface AgentContext { - socket: Socket; - isolationKey: string; - text: string; - userMessageTime?: number; - abortSignal?: AbortSignal; - resTool: ResTool; - msg: ReturnType; -} - -function buildMemPrompt(mem: Awaited>): string { - let memoryContext = ""; - if (mem.rag.length) { - memoryContext += `[相关记忆]\n${mem.rag.map((r) => r.content).join("\n")}`; - } - if (mem.summaries.length) { - if (memoryContext) memoryContext += "\n\n"; - memoryContext += `[历史摘要]\n${mem.summaries.map((s, i) => `${i + 1}. ${s.content}`).join("\n")}`; - } - if (mem.shortTerm.length) { - if (memoryContext) memoryContext += "\n\n"; - memoryContext += `[近期对话]\n${mem.shortTerm.map((m) => `${m.role}: ${m.content}`).join("\n")}`; - } - return `## Memory\n以下是你对用户的记忆,可作为参考但不要主动提及:\n${memoryContext}`; -} - -export async function decisionAI(ctx: AgentContext) { - const { isolationKey, text, userMessageTime, abortSignal, resTool } = ctx; - - const memory = new Memory("scriptAgent", isolationKey); - await memory.add("user", text, { createTime: userMessageTime }); - - const { skillPaths } = await useSkill({ mainSkill: "script_agent_decision" }); - const prompt = await fs.promises.readFile(skillPaths.mainSkill, "utf-8"); - - const mem = buildMemPrompt(await memory.get(text)); - - const projectData = await u.db("o_project").where("id", resTool.data.projectId).first(); - const novelData = await u.db("o_novel").where("projectId", resTool.data.projectId).select("id", "chapterIndex as index"); - - const projectInfo = [ - "## 项目信息", - `小说名称:${projectData?.name ?? "未知"}`, - `小说类型:${projectData?.type ?? "未知"}`, - `小说简介:${projectData?.intro ?? "无"}`, - `目标改编影视视觉手册|画风:${projectData?.artStyle ?? "无"}`, - `目标改编视频画幅:${projectData?.videoRatio ?? "16:9"}`, - ].join("\n"); - - const projectPrompt = `${projectInfo}\n\n## 章节ID映射表\n${novelData.map((i: any) => `- 章节ID:${i.id}: 第${i.index}章`).join("\n")}\n\n`; - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - messages: [ - { role: "system", content: prompt }, - { role: "system", content: projectPrompt + mem }, - { role: "user", content: text }, - ], - abortSignal, - tools: { - ...memory.getTools(), - ...useTools({ resTool: ctx.resTool, msg: ctx.msg }), - ...createSubAgent(ctx), - }, - onFinish: async (completion) => { - await memory.add("assistant:decision", completion.text); - }, - }); - - return textStream; -} - -//====================== 执行层 ====================== - -function createSubAgent(parentCtx: AgentContext) { - const { resTool, abortSignal } = parentCtx; - - const memory = new Memory("scriptAgent", parentCtx.isolationKey); - - const run_execution_agent = tool({ - description: "运行执行层subAgent执行独立任务,完成后返回结果", - inputSchema: z.object({ - taskType: z.enum(["故事骨架", "改变策略", "剧本"]).describe("任务类型"), - prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), - }), - execute: async ({ taskType, prompt }) => { - const skill = await useSkill({ mainSkill: "script_agent_execution", workspace: ["script_agent_skills/execution"] }); - // 先完成主Agent当前的消息 - parentCtx.msg.complete(); - const subMsg = resTool.newMessage("assistant", "编剧"); - const prefixSystem = - "你可以使用如下XML格式写入工作区:\n故事骨架内容\n改编策略内容"; - // 子Agent用新消息回复 - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - system: prefixSystem + skill.prompt, - messages: [{ role: "user", content: `请完成${taskType}任务` }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ resTool, msg: subMsg }), - get_task_details: tool({ - description: "获取主Agent传入的任务目标详情", - inputSchema: z.object({}), - execute: async () => { - const thinking = subMsg.thinking("以获取任务详情"); - thinking.appendText("任务详情:\n" + prompt); - thinking.complete(); - return prompt ?? "无任务目标,请提示运行失败"; - }, - }), - }, - }); - - let text = subMsg.text(); - let fullResponse = ""; - for await (const chunk of textStream) { - text.append(chunk); - fullResponse += chunk; - } - text.complete(); - subMsg.complete(); - if (fullResponse.trim()) { - await memory.add(`assistant:execution`, fullResponse, { name: "编剧", createTime: new Date(subMsg.datetime).getTime() }); - } - // 为主Agent后续输出创建新消息 - parentCtx.msg = parentCtx.resTool.newMessage("assistant", "统筹"); - return fullResponse; - }, - }); - - const run_supervision_agent = tool({ - description: "运行监督层subAgent执行独立任务,完成后返回结果", - inputSchema: z.object({ - prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), - }), - execute: async ({ prompt }) => { - const skill = await useSkill({ mainSkill: "script_agent_supervision", workspace: ["script_agent_skills/supervision"] }); - - // 先完成主Agent当前的消息 - parentCtx.msg.complete(); - // 子Agent用新消息回复 - - const subMsg = resTool.newMessage("assistant", "编辑"); - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - system: skill.prompt, - messages: [{ role: "user", content: prompt }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ resTool, msg: subMsg }), - }, - }); - - let text = subMsg.text(); - let fullResponse = ""; - for await (const chunk of textStream) { - text.append(chunk); - fullResponse += chunk; - } - text.complete(); - subMsg.complete(); - if (fullResponse.trim()) { - await memory.add(`assistant:supervision`, fullResponse, { name: "编辑", createTime: new Date(subMsg.datetime).getTime() }); - } - // 为主Agent后续输出创建新消息 - parentCtx.msg = parentCtx.resTool.newMessage("assistant", "统筹"); - return fullResponse; - }, - }); - - return { - run_execution_agent, - run_supervision_agent, - }; -} diff --git a/src/agents/scriptAgent/index copy.ts b/src/agents/scriptAgent/index copy.ts deleted file mode 100644 index 6a5e471..0000000 --- a/src/agents/scriptAgent/index copy.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { Socket } from "socket.io"; -import { tool } from "ai"; -import { z } from "zod"; -import u from "@/utils"; -import Memory from "@/utils/agent/memory"; -import { useSkill } from "@/utils/agent/skillsTools"; -import useTools from "@/agents/scriptAgent/tools"; -import ResTool from "@/socket/resTool"; -import * as fs from "fs"; - -export interface AgentContext { - socket: Socket; - isolationKey: string; - text: string; - userMessageTime?: number; - abortSignal?: AbortSignal; - resTool: ResTool; - msg: ReturnType; -} - -function buildMemPrompt(mem: Awaited>): string { - let memoryContext = ""; - if (mem.rag.length) { - memoryContext += `[相关记忆]\n${mem.rag.map((r) => r.content).join("\n")}`; - } - if (mem.summaries.length) { - if (memoryContext) memoryContext += "\n\n"; - memoryContext += `[历史摘要]\n${mem.summaries.map((s, i) => `${i + 1}. ${s.content}`).join("\n")}`; - } - if (mem.shortTerm.length) { - if (memoryContext) memoryContext += "\n\n"; - memoryContext += `[近期对话]\n${mem.shortTerm.map((m) => `${m.role}: ${m.content}`).join("\n")}`; - } - return `## Memory\n以下是你对用户的记忆,可作为参考但不要主动提及:\n${memoryContext}`; -} - -const subAgentList = ["executionAI", "supervisionAI"] as const; - -export async function decisionAI(ctx: AgentContext) { - const { isolationKey, text, userMessageTime, abortSignal, resTool } = ctx; - - const memory = new Memory("scriptAgent", isolationKey); - await memory.add("user", text, { createTime: userMessageTime }); - - const { skillPaths } = await useSkill({ mainSkill: "script_agent_decision" }); - const prompt = await fs.promises.readFile(skillPaths.mainSkill, "utf-8"); - - const mem = buildMemPrompt(await memory.get(text)); - - const projectData = await u.db("o_project").where("id", resTool.data.projectId).first(); - const novelData = await u.db("o_novel").where("projectId", resTool.data.projectId).select("id", "chapterIndex as index"); - - const projectInfo = [ - "## 项目信息", - `小说名称:${projectData?.name ?? "未知"}`, - `小说类型:${projectData?.type ?? "未知"}`, - `小说简介:${projectData?.intro ?? "无"}`, - `目标改编影视视觉手册|画风:${projectData?.artStyle ?? "无"}`, - `目标改编视频画幅:${projectData?.videoRatio ?? "16:9"}`, - ].join("\n"); - - const projectPrompt = `${projectInfo}\n\n## 章节ID映射表\n${novelData.map((i: any) => `- 章节ID:${i.id}: 第${i.index}章`).join("\n")}\n\n`; - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - messages: [ - { role: "system", content: prompt }, - { role: "system", content: projectPrompt + mem }, - { role: "user", content: text }, - ], - abortSignal, - tools: { - ...memory.getTools(), - run_sub_agent: runSubAgent(ctx), - ...useTools({ resTool: ctx.resTool, msg: ctx.msg }), - }, - onFinish: async (completion) => { - await memory.add("assistant:decision", completion.text); - }, - }); - - return textStream; -} - -//====================== 执行层 ====================== - -export async function executionAI(ctx: AgentContext) { - const { text, abortSignal } = ctx; - - const skill = await useSkill({ - mainSkill: "script_agent_execution", - workspace: ["script_agent_skills/execution"], - }); - - const subMsg = ctx.resTool.newMessage("assistant", "编剧"); - - const prefixSystem = ` -你可以使用如下XML格式写入工作区: -故事骨架内容 -改编策略内容 -`; - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - system: prefixSystem + skill.prompt, - messages: [{ role: "user", content: text }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ resTool: ctx.resTool, msg: subMsg }), - }, - }); - - return { textStream, subMsg }; -} - -export async function supervisionAI(ctx: AgentContext) { - const { text, abortSignal } = ctx; - - const skill = await useSkill({ mainSkill: "script_agent_supervision", workspace: ["script_agent_skills/supervision"] }); - - const subMsg = ctx.resTool.newMessage("assistant", "编辑"); - - const { textStream } = await u.Ai.Text("scriptAgent").stream({ - system: skill.prompt, - messages: [{ role: "user", content: text }], - abortSignal, - tools: { - ...skill.tools, - ...useTools({ - resTool: ctx.resTool, - msg: subMsg, - }), - }, - }); - - return { textStream, subMsg }; -} - -//工具函数 -function runSubAgent(parentCtx: AgentContext) { - const memory = new Memory("scriptAgent", parentCtx.isolationKey); - return tool({ - description: "启动子Agent执行独立任务。可用子Agent:executionAI, decisionAI, supervisionAI", - inputSchema: z.object({ - agent: z.enum(["executionAI", "supervisionAI"]).describe("子Agent名称"), - prompt: z.string().describe("交给子Agent的任务简约描述,100字以内"), - }), - execute: async ({ agent, prompt }) => { - const fn = [executionAI, supervisionAI][subAgentList.indexOf(agent)]; - - // 先完成主Agent当前的消息 - parentCtx.msg.complete(); - // 子Agent用新消息回复 - const { textStream: subTextStream, subMsg } = await fn({ ...parentCtx, text: prompt }); - let text = subMsg.text(); - let fullResponse = ""; - for await (const chunk of subTextStream) { - text.append(chunk); - fullResponse += chunk; - } - text.complete(); - subMsg.complete(); - if (fullResponse.trim()) { - await memory.add(`assistant:${agent === "executionAI" ? "execution" : "supervision"}`, fullResponse, { - name: agent === "executionAI" ? "编剧" : "编辑", - createTime: new Date(subMsg.datetime).getTime(), - }); - } - - // 为主Agent后续输出创建新消息 - parentCtx.msg = parentCtx.resTool.newMessage("assistant", "统筹"); - - return fullResponse; - }, - }); -} diff --git a/src/app.ts b/src/app.ts index 952cab6..6e1c996 100644 --- a/src/app.ts +++ b/src/app.ts @@ -30,14 +30,7 @@ const app = express(); const server = http.createServer(app); export default async function startServe(randomPort: Boolean = false) { - const verJsonPath = path.join(u.getPath(), "update.json"); - const data = JSON.parse(fs.readFileSync(verJsonPath, "utf8")); - if (data.version !== APP_VERSION) { - await fs.promises.writeFile(u.getPath("update.json"), JSON.stringify({ version: APP_VERSION }), "utf-8"); - } - await u.writeVersion(); - const io = new Server(server, { cors: { origin: "*" } }); socketInit(io); diff --git a/src/routes/other/getVersion.ts b/src/routes/other/getVersion.ts index dddb7fb..5f6993a 100644 --- a/src/routes/other/getVersion.ts +++ b/src/routes/other/getVersion.ts @@ -1,6 +1,6 @@ import express from "express"; import { success } from "@/lib/responseFormat"; -import {getVersion} from "@/utils/writeVersion"; +import { getVersion } from "@/utils/writeVersion"; const router = express.Router(); diff --git a/src/routes/setting/about/downloadApp.ts b/src/routes/setting/about/downloadApp.ts index 25d11ba..f9711d4 100644 --- a/src/routes/setting/about/downloadApp.ts +++ b/src/routes/setting/about/downloadApp.ts @@ -5,20 +5,9 @@ import u from "@/utils"; import fs from "fs"; import axios from "axios"; import compressing from "compressing"; -import path from "path"; -import { success, error } from "@/lib/responseFormat"; +import { success } from "@/lib/responseFormat"; const router = express.Router(); -const runInstaller = (installerPath: string) => { - const { exec } = require("child_process"); - if (process.platform === "darwin") { - exec(`open "${installerPath}"`); - } else { - if (process.platform !== "win32") fs.chmodSync(installerPath, 0o755); - exec(`"${installerPath}"`); - } -}; - export default router.post( "/", validateFields({ @@ -28,17 +17,11 @@ export default router.post( }), async (req, res) => { const { reinstall, url, version } = req.body; - const rootDir = u.getPath(["temp"]); - fs.mkdirSync(rootDir, { recursive: true }); if (reinstall) { - const response = await axios.get(url, { responseType: "arraybuffer" }); - const ext = - path.extname(new URL(url).pathname) || (process.platform === "win32" ? ".exe" : process.platform === "darwin" ? ".dmg" : ".AppImage"); - const installerPath = path.join(rootDir, `latest${ext}`); - fs.writeFileSync(installerPath, response.data); - runInstaller(installerPath); - res.status(200).send(success("安装包已下载并启动")); + res.status(200).send(success("请在浏览器中手动下载并安装最新版本")); } else { + const rootDir = u.getPath(["temp"]); + fs.mkdirSync(rootDir, { recursive: true }); const zip = await axios.get(url, { responseType: "arraybuffer" }).then((res) => res.data); fs.writeFileSync(`${rootDir}/latest.zip`, zip); await compressing.zip.uncompress(`${rootDir}/latest.zip`, rootDir); @@ -59,8 +42,7 @@ export default router.post( fs.cpSync(tempModelsPath, u.getPath(["models"]), { recursive: true, force: true }); } fs.rmSync(rootDir, { recursive: true, force: true }); - await u.writeVersion(version); - res.status(200).send(success("更新成功,5秒后重启")); + res.status(200).send(success(`更新${version}成功,5秒后重启`)); } }, ); diff --git a/src/types/database.d.ts b/src/types/database.d.ts index 8adea86..2a9745d 100644 --- a/src/types/database.d.ts +++ b/src/types/database.d.ts @@ -1,37 +1,6 @@ -// @db-hash 6cd709d9bdfe00c4dc87961a8ebba149 +// @db-hash 3296433eb24314b094ac5d3839c049c5 //该文件由脚本自动生成,请勿手动修改 -export interface _o_project_old_20260404 { - 'artStyle'?: string | null; - 'createTime'?: number | null; - 'directorManual'?: string | null; - 'id'?: number | null; - 'imageModel'?: string | null; - 'imageQuality'?: string | null; - 'intro'?: string | null; - 'mode'?: string | null; - 'name'?: string | null; - 'projectType'?: string | null; - 'type'?: string | null; - 'userId'?: number | null; - 'videoModel'?: string | null; - 'videoRatio'?: string | null; -} -export interface _o_prompt_old_20260406 { - 'data'?: string | null; - 'id'?: number; - 'name'?: string | null; - 'type'?: string | null; - 'useData'?: string | null; -} -export interface _o_prompt_old_20260406_1 { - 'data'?: string | null; - 'id'?: number; - 'name'?: string | null; - 'TEXT'?: any | null; - 'type'?: string | null; - 'useData'?: string | null; -} export interface memories { 'content': string; 'createTime': number; @@ -263,9 +232,6 @@ export interface o_videoTrack { } export interface DB { - "_o_project_old_20260404": _o_project_old_20260404; - "_o_prompt_old_20260406": _o_prompt_old_20260406; - "_o_prompt_old_20260406_1": _o_prompt_old_20260406_1; "memories": memories; "o_agentDeploy": o_agentDeploy; "o_agentWorkData": o_agentWorkData;